I have a program where I have a CtrlX drive with an integrated core. This drive communicates with ethercat to an io module. This module has 1 16 channel input module and 2 16 output channel. When I add the ethercat_master_instance_ethercatmaster and have linked the correct channels to the correct variables then my problem occured that my program isn't seeing the inputs. My inputs are always false and they won't change. On the IO module I see the leds so I know that the inputs are active. It is possible for me to set the outputs in my program. And because I can set the outputs I don't know where the problem lies. I want to know why I can't read the inputs in my program, do I need to do something extra in the IO engineering? Or do I need to look at something else.
Thanks in advance
Solved! Go to Solution.
You can check in the Data Layer viewer if the variables are there and working independent of your PLC first. (ctrlX CORE WebUI/Startpage -> Settings -> Data Layer, "fieldbuses/ethercat/master/instances/ethercatmaster/realtime_data/input/data")
As a suggestion please beware that the variables linked to the inputs need to be used at least once somewhere in the code or the IO settings "always updating" (not recommended for production) need to be set.
To really know what is happening we would have to have a look to your program code. You could send me a private message with your contact data so we can check together.
I have to say i have also found this strange behavior yesterday.
PLC engineering was not able to write on some variables. Even though they were writable on datalayer.
What solved the problem was to create a new ethercat configuration and load it to the core again.
The problem has been solved.
The problem was that my drive had some wrong settings because of this it wasn't able to read the inputs from my io module. But strangely it could set the outputs in the io module. So if you want to read the inputs from your IO station you need to make sure that the entire ethercat bus is correct.