For a fast monitoring system I am using Ethercat oversampling and timestamping inputs.
As the customers has a lot of different configurations out in the field, we went for a dynamic Ethercat configuration. Already got the whole detection chain working but now I am stuck since two days in debugging the configuration.
Here are my quesitons:
I extended the dynamic config example for the EL3632
This leads to a PLL Error for these devices. I double and triple checked the configuraton, but cannot find the issue.
There seems to be one difference: the config dialog creates a startup parameter: 16#10F3:16#05, Name: Command_0, Value:0. Bitlen: 16, Stop on fault: false, jumpt at fault: false: next line: 0
a) I do not find information on how to set this in my code. Can you help me there?
b) Without trying to set the value, I get a PLL error for these devices in the master log. Is the config wrong?
c) Do I need to set the Master to Autoconfigure or Manual?
I used autoconfigure for my tests. The stack creates input data addresses for the slaves input data range (pSlaves[i].InputData) which are different from those created when I use the Engineering tools dialogs to configure Ethercat. Specifically, the addresses seem to be aligned at 16 byte boundaries when they are created using the engineering tool, but may appear at uneven addresses when I use the script in dynamic config.
I did not try to access ULINT at uneven addresses yet, but I am suspecting this may be a problem.
Do I need to manually align the addresses ?
Any help is appreciated...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ah - forgot another question as it may be related to the PLL problem:
I am executing a 4ms cycle. I do not call (from what I know) the Ethercat_MAster periodically in my program. The bus cycle task is set to the Ethercat task. I would assume that the master should send 250 frames per second. Yet, the status of the master says it transmits 500 frames per second which would indicate that the master is called twice. Any ideas there?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I can confirm that at my 4ms EtherCAT Master the frames per second is equal at round about 500 with Codesys SP19. The same program at SP16 it was at 380-430 f/sec. for me it will be interesting too, whats the reason is for this high frame count/sec? I havn't had the time to use a paket sniffer and analyse all the frames. I can't help with your other questions, sorry.
π
1
Last edit: dkugler 2024-09-19
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Everyone,
For a fast monitoring system I am using Ethercat oversampling and timestamping inputs.
As the customers has a lot of different configurations out in the field, we went for a dynamic Ethercat configuration. Already got the whole detection chain working but now I am stuck since two days in debugging the configuration.
Here are my quesitons:
I extended the dynamic config example for the EL3632
This leads to a PLL Error for these devices. I double and triple checked the configuraton, but cannot find the issue.
There seems to be one difference: the config dialog creates a startup parameter: 16#10F3:16#05, Name: Command_0, Value:0. Bitlen: 16, Stop on fault: false, jumpt at fault: false: next line: 0
a) I do not find information on how to set this in my code. Can you help me there?
b) Without trying to set the value, I get a PLL error for these devices in the master log. Is the config wrong?
c) Do I need to set the Master to Autoconfigure or Manual?
I used autoconfigure for my tests. The stack creates input data addresses for the slaves input data range (pSlaves[i].InputData) which are different from those created when I use the Engineering tools dialogs to configure Ethercat. Specifically, the addresses seem to be aligned at 16 byte boundaries when they are created using the engineering tool, but may appear at uneven addresses when I use the script in dynamic config.
I did not try to access ULINT at uneven addresses yet, but I am suspecting this may be a problem.
Do I need to manually align the addresses ?
Any help is appreciated...
more posts ...
Ah - forgot another question as it may be related to the PLL problem:
I am executing a 4ms cycle. I do not call (from what I know) the Ethercat_MAster periodically in my program. The bus cycle task is set to the Ethercat task. I would assume that the master should send 250 frames per second. Yet, the status of the master says it transmits 500 frames per second which would indicate that the master is called twice. Any ideas there?
Could anyone support me here?
I can confirm that at my 4ms EtherCAT Master the frames per second is equal at round about 500 with Codesys SP19. The same program at SP16 it was at 380-430 f/sec. for me it will be interesting too, whats the reason is for this high frame count/sec? I havn't had the time to use a paket sniffer and analyse all the frames. I can't help with your other questions, sorry.
Last edit: dkugler 2024-09-19
BTW - I had a chat with a Beckhoff support engineer. He explained that if you use sync0 and sync1, two frames per cycle are expected.
start point for doing this is for sure this example here:
https://content.helpme-codesys.com/en/libs/EtherCATStack/Current/EtherCATStack/pou-ETCMasterStack/DynamicConfig/fld-DynamicConfig.html