Hello,
One question. I have the following:
* CIFX 50-RE PC card
* Installed it in Windows XP, cifX setup & test work fine
* I have put EtherCAT Slave software on it (0.96.0)
* Compiled examples from the CD, work fine
BUT:
Do I have enough to have an EtherCAT slave? Can it work with Win XP? I need just inputs/outputs using CoE (that is, PDO), nothing fancy!
Anyone knows something about it? Am I missing something?
Regards,
DN
Hello,
well, yes, there is only one example (Toolkitsample.cpp), I wasn't really precise. I played with it a bit, and everything "works", but in fact does not.
Somehow my card is always in INIT. I have set in ECAT_DPM_WARMSTART_REQ_T ulSystemFlags to 0, thereby clearing the app_controlled flag. I know I'm missing something, but I don't know what.
Best regards,
dn
Hilscher Gesellschaft für Systemautomation mbH
Hi DN,
What EtherCAT master do you have connected?
Greets,
code-small
Hi everyone,
I'm using EtherCAT Studio .net from Koenig PA.
Best regards,
DN
Hilscher Gesellschaft für Systemautomation mbH
Hi Dn,
That is actually all what is required to build a small EtherCAT system. However, did you put the XML file into the master's Device Description File repository? Have you tried the 4 Byte In/ 4 Byte Out configuration?
What values do you use for the warmstart message?
There is no problem with Win XP.
Greets,
code-small
Hi,
I've a similar problem with the CIFX50RE. I've had some performance problem with an older firmware version. I requested a new version from Hilscher support following the advice from code-small and got version 0.97.1 Build 2. Problem is, I can't get the card to work at all with this version anymore. It is refusing to go from INIT to PREOP with 0x0016 set in the Al-Status register, which translates afaik into "Invalid mailbox configuration". I've tried using TwinCat and the IgH-Master. My warmstart parameters are set to:
VENDOR_ID = 0x00000044 PRODUCT_CODE = 0x6e657478 REVISION_NUMBER = 0x00050000 SERIAL_NUMBER = 0x00000003 INPUT_LENGTH = 4 OUTPUT_LENGTH = 4 IO_DATA_STATUS = 0 WATCHDOG_TIME = 0 BUS_STARTUP = manual (I've tried automatic, too) COMMUNICATION_SYSTEM = Ethercat
Maybe these problems are related, so I've decided to post this here and start no new thread.
Regards
Thomas
Hello everyone,
since there is (at least) two ways to program for the Hilscher EtherCAT slave, I'm asking myself is dual-memory approach enough, i.e. is there something that must done with stack task to enable the whole thing?!
Best regards,
DN
Hilscher Gesellschaft für Systemautomation mbH
Hi,
@DN:
No, the minimum requirement for the EtherCAT slave is that the Warmstart Message is sent and confirmed successfully.
If configured to manual, you have to set the BusOn additionally.
@all:
the current warmstart values for the standard configuration of the cifX is:
all cifX EtherCAT Slave firmware versions from V0.97.0.0 on
VENDOR_ID = 0x00000044 PRODUCT_CODE = 0x00000001 REVISION_NUMBER = 0x00020000
Have you got a XML file with the firmware? If not, please request the current one from netX support.
The current XML file delivered with the firmware is matching those values.
@th_elste:
Please can you add the firmware version of the old version.
The error "Invalid mailbox configuration" is caused by having the wrong XML file selected by TwinCAT.
The change of the XML file happened on the switch to V0.97.0.0 which relates to an update of the ESC implementation.
Please check if you got a XML file delivered with the firmware. Otherwise, be advised to request one from netX support.
Greets,
code-small
Hello,
I got the XML (Hilscher cifX RE.xml) with the new firmware (0.97.1 build 2), but when I looked inside I found:
ProductCode="#x00000001" RevisionNo="#x00010000"
Is the different revision a problem?
I additionally found out that the König PA EtherCAT master (in trace mode) shows messages like this all the time:
ECATMaster [00000bec][E]Command: Process frame error: invalid working counter for acyclic command (Cmd:4, Addr: 0x013003e9, Read diagnostic slave state)(received value is #0).
Anyone having any idea?
Thanks everyone,
DN
Hilscher Gesellschaft für Systemautomation mbH
Hi Dn,
Somewhy you got the wrong XML file.
Please request a new file for the cifX which contains RevisionNo="#x0020000".
There have been changes which render XML files not usable which were working with firmware version before V0.97.0.0 .
Greets,
code-small
Hi,
I've received a new XML file from Hilscher support today, too. The card seems to be working again.
Thanks for your advice
Thomas
Hi,
Thomas, can you describe here what is your configuration? I got the XML as well, but it didn't help.
Best regards,
DN
Hello DN,
I'm using the card under Linux with the Hilscher C-Toolkit (slightly modified), so I've no idea, if this works for the Windows driver as well. But these are my warmstart parameters:
# Bootloader to use BOOTLOADER = /usr/share/libcifxtk/NXCIF50-RTE-922.bin# Firmwarefile to use
FIRMWARE = /usr/share/libcifxtk/ecscifx.mod# Vendor ID of the Ethercat-Slave (default 0x00000044)
VENDOR_ID = 0x00000044# Product Code of the Ethercat-Slave (default 0x6e657478)
PRODUCT_CODE = 0x00000001# Revision Number (default 0x00050000)
REVISION_NUMBER = 0x00020000# Serial Number (default 0x00000003)
SERIAL_NUMBER = 0x00000000# Process Data input length 0-64 Bytes (default 4)
INPUT_LENGTH = 4# Process Data ouput length, 0-64 Bytes (default 4)
OUTPUT_LENGTH = 4# I/O Data status size, 0,1 or 4 Bytes (default 0)
IO_DATA_STATUS = 0# Watchdog timeout, 0-65535, 0 means off (default 0)
WATCHDOG_TIME = 0# Bus Startup type, automatic or manual (default manual)
BUS_STARTUP = manual# Communictation System to use, Ethercat (default Ethercat)
COMMUNICATION_SYSTEM = Ethercat
(Don't mind the syntax. I'm using a text based config file for the toolkit.)
Greets
Thomas
Hi thomas,
I'm using this:
packECAT.tData.ulWatchdogTime = 10000; packECAT.tData.ulVendorId = 0x00000044; packECAT.tData.ulProductCode = 0x00000001; packECAT.tData.ulRevisionNumber = 0x00020000; packECAT.tData.ulProcessDataInputSize = 4; packECAT.tData.ulProcessDataOutputSize = 4;
Best regards
DN
Hello DN,
the only difference between our settings seems to be the watchdog time. I've never used the watchdog so far and have therefore always set it to 0.
The only other thing I'm doing after the firmware is downloaded to the netX is setting the bits APP_COS_APP_READY, APP_COS_BUS_ON, APP_COS_BUS_ON_ENABLE in the application change of state register in the control block of the com channel located at 0x308 in the DPM (netX_DPM_Interface_Rev04.pdf, page 51).
Greets
Thomas
Andreas Jacob
Hilscher Gesellschaft fuer Systemautomation mbH
Hi DN,
what kind of "Compiled examples from the CD" do you have ? As I know is the only existing example from the cifX CD the C-Toolkit example.
But anyway, yes you have enough with the cifX card and the stack to have an EtherCAT Slave device.