Showing results for 
Search instead for 
Did you mean: 

PLC can't read inputs but can set outputs

PLC can't read inputs but can set outputs

Established Member

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 


Community Moderator
Community Moderator

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.

Established Member

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.

Here the same issue. Encoder cable of servodrive was malfunctioning. As a result the ServoDrive ethercatbus node didn't go to OP mode. We were able to control outputs in the remote I/O unit but inputs were not read by the datalayer.

We solved the encoder cable issue and the inputs were read again.

@Rexroth development: Shouldn't this be considered as a design fault? A malfunctioning encodercable should not lead to a complete fall-out of the entire machine / system