-
Notifications
You must be signed in to change notification settings - Fork 655
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sensor not entering OP state #251
Comments
I'm also adding the Wireshark capture during |
Thanks for all the info. The strange thing is that there seems to be nothing wrong with the configuration. Both the eeprom (SII), xml (ESI) and wireshark show the same data. Still, going from pre-op to safe-op throws a slave error 0x001e invalid input configuration. My guess is there must be a timing issue in the slave. Could you test with twincat3 (can try out for free for 30 days) if you can get the slave to operational? And if yes, show me the wireshark trace. |
Thank you for getting back to me! I'm going to try TwinCAT 3, yes. But in the meantime, I have the following info: I have a ECAT master from Elmo Motion Control ("GMAS"), and I tried to use it to set up the ECAT configuration with the sensor. The strange thing is that, if I let it detect the sensor, it too will fail to bring it to OP state. However, when, on the master, I disable the use of the DC (see image below, Enable is unchecked), it can bring it into OPERATIONAL state and I can see process data coming in. Unfortunately, I don't think I can log this with Wireshark. I therefore suspect a clock issue, but don't know how to configure the equivalent timing on SOEM. I've attached the XML configuration file used by ELMO for this slave, and in the section, one can see the sequence of configuration commands. Again, I assume that SOEM actually performs most of them automatically based on the slave EEPROM data, but maybe I would have to perform some of them manually, but again, don't now why. Best, |
Hello Daniel, I guess you have given the solution to your problem already. The use of DC is most likely triggering the slave to behave wrongly. To test this, comment the following line in simple_test: I can see in the ESI that this slave has two modes, SM synchronous and SYNC0 synchronous. Perhaps the firmware in the slave has the wrong checks internally to decide in which mode it should go. |
Hello Arthur. If only... I tried that but the problem is the same (see attached Wireshark log, linux/simple_test.c with ec_configdc() commented out). |
Update. I tried to apply the PreOp -> SafeOp init as described in the sensor's XML configuration file (see above), and hence added the following in the P->S hook:
It now goes into OP mode. I'll keep debugging, but just a quick question: I don't know anything about those flags -- are there any defines I should use instead, on if so, which? |
Forgive my stupidity, but I just missed the very obvious thing in the beginning. I guess my cold interferes with my brain too much. The SM configuration SOEM tries is :
The length of input SM3 is written as 28. But in reality it should be 32. There are 8 objects of 32bits. The reason is that SOEM asks the PDO mapping from the slave with CompleteAccess and the slave answers with only 7 objects. So SOEM tries to do as the slave instructs. The error is in the slave returning too little objects from the SDO CA request. See line 270 of simple_test_wireshark. There are two solutions:
After ec_config_init() but before ex_config_map() you can do |
Thank you very much! This works like a charm! I forwarded your comments to the manufacturer, too. |
One last question: why is simple_test incrementing |
That is just the "simple" in simple_test. Just to show how one could manipulate the IOmap directly to transfer process data to the slaves. A test setup with a simple output slave will blink some leds. |
Hi,
I know that this sounds similar to many other posts here. But I've tried hard to find a solution and could use some help.
I'm trying to bring a force sensor into OP mode, but of course it fails with "StatusCode= 1e : Invalid input configuration". Unlike similar issues in this forum, the data dumped by slaveinfo looks good to me:
I've also attached the XML file for this device. I'm trying to use the "simple_test" example code, more or less as is, to enter OP mode. As you probably can tell, I'm not an expert in this domain, and any hint to what would be needed to fix this would be appreciated!
-- Daniel
SDO:
The text was updated successfully, but these errors were encountered: