Post by scarter on Import/Export PLCOpen xml Task Configuration
CODESYS Forge
talk
(Post)
I'm Having the same issue. If I highlight PLC Logic and import it erases everything else and replaces the Task config. If I highlight the Application I get the same result. Simple manual fix is click and drag the task config onto the origional Application, and delete the second one. Easy fix but not the expected result of importing task config.
Last updated: 2024-01-17
Post by stuartjr on Disabling forcing of specific variables
CODESYS Forge
talk
(Post)
I also thought that if I had logic writing a value to this variable, then it would override the force anyway, since I thought that the force request was only applied at the beginning and end of the PLC scan. But this doesn't seem to be the case, the force persists throughout the logic regardless of what I write to the variable with logic
Last updated: 2024-03-15
Post by wiresplus on How to display the application name on a visualization (V3.5.16)
CODESYS Forge
talk
(Post)
Hello! I would like to display the project name on the HMI The project name contains the version number That way, a tech knows which version is loaded on the PLC. Is the a standard way to display this, or do I have to hard-code into the HMI (not ideal)?
Last updated: 2024-05-13
Post by dogulas on OPC UA C# client connecting to OPC UA CODESYS server
CODESYS Forge
talk
(Post)
Ok, I have a simple test environment. From C#, using OPC UA, I can read DINTs, write DINTs, read Structs, but when I try to write a struct I get BadNotWritable. I am using Communication Manager, OPC UA Server, and IEC Symbol Publishing. I have a struct defined with one single DINT in it. The instance of the struct is in GVL. The struct is marked read/write in IEC Symbol Publishing. Any ideas? Pointers are welcome. public static async Task WriteStructA(byte[] structAData) { if (_session == null) throw new Exception("session is null"); // create a RequestHeader RequestHeader requestHeader = new RequestHeader { Timestamp = DateTime.UtcNow, TimeoutHint = 30000 // timeout in milliseconds }; // create an ExtensionObject to wrap the value to be written ExtensionObject extensionObject = new ExtensionObject( new ExpandedNodeId("GVL_StructA", 5), structAData ); // create a WriteValue object to hold the value to be written WriteValue writeValue = new WriteValue { NodeId = _structANodeId, AttributeId = Attributes.Value, Value = new DataValue(extensionObject) }; // put the WriteValue object into a WriteValueCollection object WriteValueCollection writeValueCollection = new WriteValueCollection() { writeValue }; // perform the write operation asynchronously WriteResponse writeResponse = await _session.WriteAsync( requestHeader, writeValueCollection, CancellationToken.None ); // check the result of the write operation if (writeResponse.Results[0] != StatusCodes.Good) throw new Exception("Write failed: " + writeResponse.Results[0]); }
Last updated: 2024-12-17
Post by macros8 on Alarm Management - latched variable represented as Text list
CODESYS Forge
talk
(Post)
Hi, I haven´t noticed you put the comment here. I thing it´s a bit different. What I want is to have detail errors of technology in data type e.g. INT. This variable I would latch to the corresponding error msg but I would like to get it convert to text from the text list and not keep it in INT form. Example. Main error Valve Error: SubErrors 1 - Both sensors 2 - Not retracted in time 3 - Not pulled out in time In HMI Main error + latch SubErrors => "Valve Error: Both sensors" The benefit is that text lists are part of translation and can be easily manipulated. I know I can create whole string msg in PLC but then, it lose advantage of Alarm management. Thanks. M.
Last updated: 2023-11-07
Post by h4sanb on Load (or Read) File from PLC
CODESYS Forge
talk
(Post)
I want to download program from existing PLC and upload to new PLC. How to do it?
Last updated: 2024-01-09
Post by ttvs on See if application is running
CODESYS Forge
talk
(Post)
Hello, Is it possible to check if PLC application is running or stopped from linux shell? I am using codesys control for linux arm64sl. Tried accessing the plc shell, but get auth errors. Also, when starting/stopping the program via plc shell from codesys IDE it doesnt report that information to log
Last updated: 2026-07-10
Post by bingo on PLC Shell commands via ST Code
CODESYS Forge
talk
(Post)
Suppose you need to switch PLC IP dynamically between 192.168.1.10\192.168.2.10, First, set PLC IP to 192.16.1.10. Create a PGVL with a flag ‘xUseSecondry’ xUseSecondry : bool ; create a function that use socket to update IP: FUNCTION fSwitchIP : bool VAR_INPUT useMainIP:bool; END_VAR --------------------------------CODE------ if useMainIP then SysSockSetIPAddress(‘0’, ‘192.168.1.10’); PGVL.xUseSecondry := 0; else SysSockSetIPAddress(‘0’, ‘192.168.2.10’); PGVL.xUseSecondry := 1; end_if Now, if during execution, you need to switch IP, call the function ‘fSwitchIP()’, Set input to 1 for main IP, 0 for secondary IP. In order to set secondary IP at startup, you can do the following: in your PLC_PRG add a flag: xInit : bool := 1 ; and the code: if xInit then if PGVL.xUseSecondry then fSwitchIP(0); end_if xInit := 0 ; end_if *Alternative way is to use system events.
Last updated: 2025-03-03
Post by codesysbeginner on Eaton XC303 - USB Mounting / Trend manager
CODESYS Forge
talk
(Post)
Hi, For a project I am using the trendmanager functionality, I changed the placeholder filepath to which the SQL database is saved to: home/disk_usb, $trend$. Which only works as long as the usb was mounted to the PLC at boot. However, I'd like to be able to switch the USB's out if they break or for data analysis. However when a new (or the same) USB is plugged back in the shortcut doens't exist on the device anymore. Also in the device directory under root/mnt/ a new folder appears SDB1 in addition to SDA1 to which the Trendmanager was originally writing. The SDA1 folder is empty/unreachable while the new SDB1 folder has the contents of the USB drive. I tried disabling the trendmanger while unplugging the USB's however this doesn't work. My question, how do I make it so that when I plug a USB drive back in, it will be mounted to SDA1 instead of SDB1? Kind Regards
Last updated: 2024-10-09
Post by dkugler on Step motor ECT60 Ethercat in codesys 3.5
CODESYS Forge
talk
(Post)
double click the master and the ECT60 and have a look what's shown in the tap online, state and log?
Last updated: 2024-08-14
Post by rmaas on Direct Pointers in IOMapping for EtherCAT with IoDrvEthercatLib.ETCSlave_Dia
CODESYS Forge
talk
(Post)
The reference used is the ethercat slave name. For example in this screenshot the reference would be: EL1809_1
Last updated: 2024-02-13
Post by dhumphries on How to address visualization change with button press...
CODESYS Forge
talk
(Post)
you can configure the button actions in the hotkey tab in the visualization.
Last updated: 2024-03-15
Post by arundara on Variable Sync Issue In Soft Plc Redundancy
CODESYS Forge
talk
(Post)
Hello, I was trying to create a redundancy POC for our application where we read data from few modbus tcp devices. As there is a limitaion that modbus tcp device support only for single master device, we wanted to test how the variable sync happens in redundancy mode. For that i have used the redundancy sample code added a variable "b" under a condition. What i observed was while active controller is running, if passive controller is powerup, passive controller is able to sync all the data configured for redundacny. But after that the variable data which resided under a condition is not synching from active to passive controller. I have attached the image where i have highlighter the variable. Can some help me to understand how redundacny work in codesys soft plc and if there is a solution to sync variable which are under condition, please explain the same or suggestion to achieve the same. Hardware - Raspberry Pi (2 qty) Redundancy licence used - yes in both controllers. Codesys runtime - 4.9.0.0 Codesys software version - V3.5 SP19 if i have posted this question in wrong section, please do let me know in whcih section i have to post this question.
Last updated: 2023-12-01
Post by alex00 on DCS / Central Engineering with Codesys support
CODESYS Forge
talk
(Post)
Hello together I'm currently investing in possibilities to have a central engineering software / system for Codesys based controllers. Something like a DCS / SCADA depending on where you see the functionality. We plan to use more or less vanilla codesys. The tool should support the following: - Connect to multiple PLC's in a project to see its variables and debug it. - Central Engineering capabilities (for example shared libraries in a project). - Download the new code / binaries to the plc. - Maybe have functionality to combine visualization elements and logic together. - See the live status variables on all the systems (crosscommunication). I see that codesys theoretically supports engineering of multiple PLC's, but I couldnt find to much functionality for a DCS type of operation, but that could be lack of knowledge. Any tips from you? Is Codesys good enough for this and maybe there are some manufacturers which build around it? Or are there good tools on the market with Codesys support (and the engineering is separate, but download to codesys possible). The use case is distributed energy installations like Heating pumps, Photovoltaics, etc. All these installations should have a PLC with codesys installed and run in one larger network, the PLC's are connected via VPN. Thanks for your inputs Greetings
Last updated: 2024-02-19
Post by alex00 on DCS / Central Engineering for Codesys
CODESYS Forge
talk
(Post)
Hello together I'm currently investing in possibilities to have a central engineering software / system for Codesys based controllers. Something like a DCS / SCADA depending on where you see the functionality. We plan to use more or less vanilla codesys. The tool should support the following: - Connect to multiple PLC's in a project to see its variables and debug it. - Central Engineering capabilities (for example shared libraries in a project). - Download the new code / binaries to the plc. - Maybe have functionality to combine visualization elements and logic together. - See the live status variables on all the systems (crosscommunication). I see that codesys theoretically supports engineering of multiple PLC's, but I couldnt find to much functionality for a DCS type of operation, but that could be lack of knowledge. Any tips from you? Is Codesys good enough for this and maybe there are some manufacturers which build around it? Or are there good tools on the market with Codesys support (and the engineering is separate, but download to codesys possible). The use case is distributed energy installations like Heating pumps, Photovoltaics, etc. All these installations should have a PLC with codesys installed and run in one larger network, the PLC's are connected via VPN. Thanks for your inputs Greetings
Last updated: 2024-02-19
Post by imdatatas on CFC editor: enable inline value entry on unconnected input pins (as in Ladder Logic editor)
CODESYS Forge
talk
(Post)
In the CODESYS Ladder Logic editor, there's a really practical feature available while logged in (online) to the PLC: for an existing function block (e.g. TON or MC_MoveAbsolute), double-clicking on an unconnected input pin directly opens a value entry window right in the editor — with no need to assign any variable — and you can type a value directly. Likewise, if the input pin is of an ENUM or STRUCT type, it lets you pick a value of that type straight from a dropdown list. It also doesn't require assigning a variable or adding it to a watch list, etc. Unfortunately, in the CFC editor you can't write values directly to those unconnected input pins the way you can in Ladder — CFC only supports monitoring/display there. I wish this existing Ladder editor feature were also available in CFC — it would make the CFC editor far more usable. I think this would be a relatively small addition to the CFC editor, but it would make a real difference in daily commissioning and debugging work. It would be great to hear the development team's thoughts on whether this could be considered for a future release. Thanks in advance for reading!
Last updated: 2026-09-10
Post by gurke258 on EL2911
CODESYS Forge
talk
(Post)
Hello, sorry to open this again. I can't find the right ESI for EL1918 as Safety PLC.. I only have the one without safety PLC. I look on Beckhoff website but i didnt found it. Can anyone help me? EDIT: I found it :)
Last updated: 2023-10-12
Post by ralfki on PLC shell
CODESYS Forge
talk
(Post)
Hello together, hopefully somebody could help me. I wanted to import a certificate to trusted folder using the plc shell (cert-import). Does somebody know how I can do it with the library CmpPLCShell Thank you for your support.
Last updated: 2024-11-20
Post by bingo on PLC Shell commands via ST Code
CODESYS Forge
talk
(Post)
For a permanent change, you may need to update the PLC configuration file or set the IP at startup using retained variables.
Last updated: 2025-03-02
Post by milan-svarny on Redundancy problem - primary PLC suddenly goes to simulation state
CODESYS Forge
talk
(Post)
Hi Ivanmaltar, please , did you solve the problem? i have the same case. Second PLC is going suddenly to Sim. state Thank you
Last updated: 2025-06-18
SP16 P5. Does not open the pop-up window from option "Update device" (main PLC) and "add device) Ethernet device or CAN device
CODESYS Forge
talk
(Thread)
SP16 P5. Does not open the pop-up window from option "Update device" (main PLC) and "add device) Ethernet device or CAN device
Last updated: 2023-06-29
ac_persistence not working when creating a Boot Application but works with a Direct Download to the PLC
CODESYS Forge
talk
(Thread)
ac_persistence not working when creating a Boot Application but works with a Direct Download to the PLC
Last updated: 2024-02-27
Post by jmfernandes on OpenDir always in error
CODESYS Forge
talk
(Post)
Hello I'm trying to use DirOpen to access a directory where then I can read/list the files inside. But I can't list any files because DirOpen.xError is always true. In eError the message is this: " ERROR_UNKNOWN Local library error ID (0: no error; 5101: time out)**** " I have in the file explorer the path 'C:\CodesysTest\Aluminium' and to make sure I also created in the plc a folder to 'prj/Recipes/Aluminium'. I tried using the different paths, but in both it happens the same thing.Inside the folder Aluminium there is two csv files, that I want to list. I added in the library manager CAA Files and CAA Types. I am using the example of https://content.helpme-codesys.com/en/libs/CAA%20File/Current/Examples.html#directory but not matter what I do, I can't get the list the names of the files. What am I missing?
Last updated: 2024-07-31
Post by pjoret on IFM CR711S Can Low Level Library Use
CODESYS Forge
talk
(Post)
Hello, I'm using CR711S from IFM and I would like to use the CAA Can Low Level in de Safety part. I already use it on the Standard part and it works properly. I would like to know if there is some restriction on using it on the safepart of the PLC (I tried but my PCL put himself in Stop...) ? And if you have some example or even a forum with some types on IFM and CoDeSys, I would Take It. Have a nice Day.
Last updated: 2024-04-03
Post by nz-dave on *exception* [processorloadwatchdog] occurred in: app=[all], task=[all]
CODESYS Forge
talk
(Post)
Can anyone shed some light on this issue im having. at random, sometimes days, sometimes weeks or months. i get this error and have to reset the plc. Im using a Weintek HMI with ethernet/ip remote io and vsd. i have tried increasing my task times and watchdogs. and when i view my PLCload in the shell its normally around 3-4%, highest ive ever seen is 7%. Nothing i do seems to help the issue. Could the HMI's Codesys CPU be getting to hot do to high ambient temp?
Last updated: 2026-02-01
To search for an exact phrase, put it in quotes. Example: "getting started docs"
To exclude a word or phrase, put a dash in front of it. Example: docs -help
To search on specific fields, use these field names instead of a general text search. You can group with AND or OR.