Hi,
I use a cifX50 PCI-Card as EtherCAT-Master. My Slave is a Beckhoff BK1120 with a pair of digital and a pair of analog in-/outputs.
In Sycon.net i imported the Beckhoff device desciption files and created a new project. I attached a cifX-card as my master and a BK1120 as slave. After downloading the configuration to the master, the slave resets and then goes to PRE-OPERATIONAL state. Reading SDO objects via CoE now works. Right-click on the master icon and choosing 'diagnostic' brings up a window. The LEDs Run, Operate and BusOn are green, the LED Ready is yellow, all other LEDs are off. In the window Tools->IO Monitor comes up the warning 'COM-flag not set'.
How can i get the slave in operational state for cyclic communication?
I use:
Windows XP
Sycon.net for netX 1.104 (Build 90622)
cifX Firmware: EtherCAT Master v2.3.0
In Sycon.net in the slave configuration in the process data information are shown the SyncManagers 2 and 3 for output and input with 0 Byte each. But i cant edit that. The PDO assigment on the right side of the configuration window i cant edit, too.
Also in the master configuration window under "FMMU/SyncMan" the lengths are 0 Byte and the "Address Table" is empty.
Physically i have connected a 4DI, 4 DO, 2AI and 2AO module to the slave.
How can i change the configured slave length?
Hello HilscherUser,
here comes two problems together.
1.) The Hilscher SyCon.net is currently NOT able to configure the BK1120. The IO-Lengths are set to 0, which is obviously wrong. There is no possibility to change them. However you can use TwinCAT (from Beckhoff) or the EtherCAT Configurator (from the ETG) to create a valid configuration. Export it, name it "ethercat.xml" and download it to "PORT_0" of the cifx master.
2.) There is a problem with the Distributed Clocks if the BK1120 is the FIRST slave in the line. AFAIK the slave lies about the Distributed Clocks capability. So the master assumes, that the BK1120 could be the Distributed Clocks master for all other slaves... which fails. As a workaround, put the slaves in annother order. (I know that it is not possible to reorder the slaves if you only have one.)
Johnny
I created a configuration with TwinCat, exported it as ethercat.xml and downloaded it to channel 0 via the cifX Test Application. After that i have done a channel reset => the slave only comes into pre operational state. (In TwinCAT i get him to operational state with this configuration)
What about the Distributed Clocks thing? I only have 1 slave (BK1120) connected to the master. What can i do here? Is it possible to disable the Distributed Clocks functionality in the slave?
Hello HilscherUser,
It would help to put a slave with Distributed Clocks ability in front of the BK1120. AFAIK the slave tells the master that it could be the (Distributed Clocks) Master Clock. If the master want to configure the Master Clock the slave rejects this. Thats why the bus does not start. Sorry there is no workaround to disable the Distributed Clocks in the master.
Johnny
So it is not possible to get work the Hilscher EtherCAT master with the BK1120?
Hello HilscherUser,
you are right, in your case it is not possible to get the BK1120 running with the Hilscher master.
Johnny
So it is a bug in the slave, is that right? But why can TwinCAT set the slave to Operational state then?
Is there a possibility to completely disable Distributed Clocks in the SLAVE?
Hello HilscherUser,
I guess that TwinCAT knows which slaves really supports Distributed Clocks and ignores the BK1120. AFAIK it is not possible to modify the settings in the slave.
Johnny
Hello,
it seems, that I have a very similar problem. I am using a Hilscher cifX card as master, and a Beckhoff ET1815 IP core as slave. The slave works fine with TwinCAT and a simple ethernet card, but I have to use it with the Hilscher cifX card. I have already tried the followings:
None of these were working, I kept to get the same error messages: COM-flag not set. When I looked deeper in the Diagnostic menu in SYCON, I noticed, that the SLAVE_INITCMD_WKC_ERROR counter was increasing (and the SLAVE_INITCMD_RESPONSE_ERROR counter too).
My question is the same: how can I get the slave into operational state? (Is it possible? Is there a workaround?)
thanks
sandmann
Hilscher Gesellschaft für Systemautomation mbH
Hi sandmann,
Could you send a wireshark trace, the used TwinCAT project and the exported XML file through the Hilscher support?
Add your description there as well, so that it gets together with your information (wireshark etc.).
Greetz,
code-small
I will do that, however, the problem was solved.
We made a few Wireshark traces last week, and discovered, that in every case (even without the DC tag in the device description file and the slave EEPROM; with only one slave without DC or with two slaves, one with DC) the cifX card tried to access the DC area with broadcast write.
- The slave without DC did not increment the work counter, so with 2 slaves, the master got an answer with WC set to 1, and with 1 slave WC was 0.
-In both cases, the master ended up in an infinite cycle, reading the slave state (in the case of 2 slaves, it tried to write and read the DC area too).
The TwinCAT did not use broadcast write, the slaves were addressed separately, and it only accessed the DC area of the NXIO card.
My colleague made some modifications in the slave IP and we generated a network description file with TwinCAT, and downloaded it to the cifX card through it's driver, and it is working. (The SYCON generated network description file did not work.)
sandmann
Hello Sandmann,
Hello HilscherUser,
There is a new EtherCAT Master firmware available. In the version 2.4.X are some major changes about the Distributed Clocks stuff included. I have tested the BK1120 szenario sucessfully with this version.
Please update to the new version (available on the latest CIFX CD). However, an update of the firmware also requires an update of the Sycon.net configurator.
If there are still any problems, please let me know.
Johnny
Not working yet. The master configures the slave, that's ok, it gets to operational state. But the data that I get from the driver is empty (zeros everywhere). I made a log, the master gets every data from the slave, but probably thinks that it is not valid.
I don't know, if it is a problem, but it's my only guess: every time the master issues an LRD, the index in the ethercat datagram is 0x01, and in every broadcast read it is 0x02. If this index identifies the packet in the master, shouldn't it increment, like it does for the other commands?
Hello sandmann,
do I understand you right now:
-you have two slaves connected
-both are in OPERATIONAL
-the data you read on the host is 0x0
-you use now an updated sycon.net and the Master FW V2.4.X?
Please check the Protocol Interface Manual of the EtherCAT Master Revision 10, Chapter 4.1.1:
##########################################
...
Versions prior V2.4 have the following behaviour:
If a configuration was created with TwinCAT or the EtherCAT Configurator, the given offsets of the
inputs and outputs must be shifted by 10 byte to the left.
E.g. if an input is configured at bit offset 312 (39 byte offset), then it can be found at bit offset 232 (29
byte offset). If an output is configured at bit offset 208 (26 byte offset), it can be found at bit offset 128
(16 byte offset).
Versions since V2.4 don’t have such an offset when the configuration was done with TwinCAT or the
EtherCAT Configurator!
If a configuration was created with the Hilscher SyCon.net, there are NO such offsets.
##################################################
I guess you read the data with an offset. Now this offset is gone.
Please confirm this with the IO-Monitor in Sycon. Behind the process data are a few addtional bytes. At least one of them shall be 0x8, reflecting the current slave state (logical OR of all slaves).
Johnny
A W
Hi,
looks like a problem with the I/O lengths.
You should check, if the lengths displayed in the SyCon.Net match the actual ones sent and received by the slave. Maybe there is a difference in what the slave is configured to send and what the master expects according to the device description.
Regards,
AW