FORUM CTRLX AUTOMATION
ctrlX World Partner Apps for ctrlX AUTOMATION
04-15-2024 03:26 PM
I have a problem with setting the outputs of my IO card. The systeem I have is an CtrlX core with a plc program, a ctrlx drive and a beckhoff bus coupler (EK1100) station with an 16 output card (2809).
I've succesfully configured the IO configuration and have no errors in my system.
If I don't add the output card to my plc program then I can set the output with the help of the datalayer with no problem. But when I add the output card to my plc program then for whatever reason my outputs keeps getting written over by something to 0. After adding the outputs to my plc program it's also not possible anymore to set the outputs with the datalayer.
Because the system is not giving me any errors I don't know why and how the system keeps overwriting these outputs. Even if I don't use the outputs in my PLC program they still keep getting overwritten. I want to know what is causing this problem and how to fix it because right now I don't know where to start looking to fix this.
Solved! Go to Solution.
04-16-2024 02:45 AM
In my opinion, you may want to set it as enabled2 here
04-16-2024 07:20 AM - edited 04-16-2024 10:32 AM
Could you be a bit more precise how you add the IOs to the PLC and how they are written?
So when I get it right you are in a first place using the data layer viewer in the ctrlX OS web UI to set the outputs.
Afterwards you add the IOs to the data layer realtime in your PLC program and still try to write it via the data layer viewer.
Did you set the variables to be updated always, as it seems on your screenshot? Then they will be always used in the PLC.
In this case the PLC will update your IOs cyclically (as kind of master over these IOs) and as they are known as false they also will be again set to that value. You would need to write the corresponding PLC variable to change the value which can be published via the data layer.
Which behaviour did you expect? Could you send us the device description used?
04-16-2024 09:55 AM
Thanks for the fast response.
For adding the io's to my plc program I clicked on Datalayer_Realtime and select realtime data. Then from the ethercat master I selected my drive parameters that I needed and my Output card
I also checked if the updated always was enabled but this is disabled.
I understand when the output is false that when I use the datalayer the output can be overwritten. But the problem is when I set the output to High in my PLC program the output starts blinking. I attached a video file where you can see the blinking. I only set the variable on one place to true and never to false. The blinking problem also occurs when I try to use the output pin from my drive.
So what I see is that something in the datalayer is overwriting my outputs because my plc program sets the value to true and never to false. I made a trace to make sure of this.
The end goal is to set the outputs correctly in my plc program and that it won't effect the rest of the system.
04-29-2024 03:13 PM
I've found the cause why my outputs weren't working correctly. The problem started when I added the axis interface template to my project. Somewhere in the demo code in the axis interface it overwrites the datalayer. I don't know exactly where it does this but after I deleted the demo programs from my project I didn't have any problem anymore with my outputs and controlling my axis.