Post by totorovic on Hard shutdown: no code on device after power on
CODESYS Forge
talk
(Post)
I think that the .err file is the .app file renamed by Codesys, so it is compiled. We met this behaviour one time, it was because the runtime goes in exception due to bad Ethercat cables.
Last updated: 2024-10-03
Post by codesysbeginner on Alarms Placeholder
CODESYS Forge
talk
(Post)
Hi, Yes this should be possible, you should find the CodesysControl.cfg file on your plc. Open this with a text editor, and change the placeholder filepath for alarms. You can find the Placeholder filepath in the CodesysControl file under Sysfile.
Last updated: 2024-10-09
Post by codesysbeginner on Alarms Placeholder
CODESYS Forge
talk
(Post)
Hi, Yes this should be possible, you should find the CodesysControl.cfg file on your plc. Open this with a text editor, and change the placeholder filepath for alarms. You can find the Placeholder filepath in the CodesysControl file under [Sysfile]
Last updated: 2024-10-09
Post by codesysbeginner on Alarms Placeholder
CODESYS Forge
talk
(Post)
Hi, Yes this should be possible, you should find the CodesysControl.cfg file on your plc. Open this with a text editor, and change the placeholder filepath for alarms. You can find the Placeholder filepath in the CodesysControl file under [Sysfile]
Last updated: 2024-10-09
Post by codesysbeginner on Alarms Placeholder
CODESYS Forge
talk
(Post)
Hi, Yes this should be possible, you should find the CodesysControl.cfg file on your plc. Open this with a text editor, and change the placeholder filepath for alarms. You can find the Placeholder filepath in the CodesysControl file under [Sysfile]
Last updated: 2024-10-09
Post by codesysbeginner on Alarms Placeholder
CODESYS Forge
talk
(Post)
Hi, Yes this should be possible, you should find the CodesysControl.cfg file on your plc. Open this with a text editor, and change the placeholder filepath for alarms. You can find the Placeholder filepath in the CodesysControl file under [Sysfile]
Last updated: 2024-10-09
Post by codesysbeginner on Alarms Placeholder
CODESYS Forge
talk
(Post)
Hi, Yes this should be possible, you should find the CodesysControl.cfg file on your plc. Open this with a text editor, and change the placeholder filepath for alarms. You can find the Placeholder filepath in the CodesysControl file under Sysfile
Last updated: 2024-10-09
Post by codesysbeginner on Alarms Placeholder
CODESYS Forge
talk
(Post)
Hi, Yes this should be possible, you should find the CodesysControl.cfg file on your plc. Open this with a text editor, and change the placeholder filepath for alarms. You can find the Placeholder filepath in the CodesysControl file under Sysfile
Last updated: 2024-10-09
Post by codesysbeginner on Alarms Placeholder
CODESYS Forge
talk
(Post)
Hi, Yes this should be possible, you should find the CodesysControl.cfg file on your plc. Open this with a text editor, and change the placeholder filepath for alarms. You can find the Placeholder filepath in the CodesysControl file under Sysfile.
Last updated: 2024-10-09
Post by navan on codesys FileOpen operation denied from pc folder v3.5.20.10
CODESYS Forge
talk
(Post)
Codesys version 3.5.16.40 using file open from pc no issues. Version 3.5.20.10 have issue open file from pc any solution. thanks
Last updated: 2024-11-01
Post by timvh on File access operation denied
CODESYS Forge
talk
(Post)
Go in Windows to this location. Right click on this file and go to properties. Is it in Read-only state? Then CODESYS cannot open in Write mode.
Last updated: 2024-11-09
Post by s1mon on Two OneWireMaster on one Raspberry PI 5
CODESYS Forge
talk
(Post)
Thx for the hint. It works if I add following line to the .cfg file. PlaceholderFilePath.2=/sys/devices/w1_bus_master2, $OneWire2$ Is there a documentation how to modify this config file? Will this be overwritten if I do an update of the CodesysControl Runtime?
Last updated: 2025-06-13
Post by nielscho on Saving "Input/output names" in a DCF file
CODESYS Forge
talk
(Post)
Hello i have the same question but for Codesys 3.5. alternativley, could somebody name a Programm to create a DCF file out of an EDS? best regards
Last updated: 2025-07-02
Post by pernockham on AC Persistence - values are not read from file during start?
CODESYS Forge
talk
(Post)
For the protocol. What also works is to do the process via ssh (using runtime on linux) sudo /etc/init.d/codesyscontrol stop modify the persistence file values sudo /etc/init.d/codesyscontrol start
Last updated: 2025-09-03
CSV_Write_read: a sample program for the CODESYS Control WinV3 writing and reading 1000 records of CSV data in a file ...
CODESYS Forge
talk
(Thread)
CSV_Write_read: a sample program for the CODESYS Control WinV3 writing and reading 1000 records of CSV data in a file ...
Last updated: 2023-08-08
[Error when Install Codesys for Beaglebone black ver4.0.0] cannot access '/sys/bus/i2c/devices/0-0050/at24-0/nvmem': No such file or directory
CODESYS Forge
talk
(Thread)
[Error when Install Codesys for Beaglebone black ver4.0.0] cannot access '/sys/bus/i2c/devices/0-0050/at24-0/nvmem': No such file or directory
Last updated: 2021-11-21
Post by meldawltly on Excel to Codesys 3.5
CODESYS Forge
talk
(Post)
Hello everyone, I have an excel file that i want to import into codesys3.5. Any idea how and what libraries can i use? To more clarify i have a table in codesys and i want to import my excel file into this table/ Thank you
Last updated: 2023-12-11
Post by meldawltly on Excel to Codesys 3.5
CODESYS Forge
talk
(Post)
Hello everyone, I have an excel file that i want to import into codesys3.5. Any idea how and what libraries can i use? To more clarify i have a table in codesys and i want to import my excel file into this table/ Thank you
Last updated: 2023-12-11
Post by voffi on Creating Symbol Config File from Python
CODESYS Forge
talk
(Post)
Hello! One can create a symbol config entry in CODESYS by using create_symbol_config in a python script. Is there a way to create the xml symbol config file (!) from within a python script without going online? Thank you!
Last updated: 2023-12-12
Post by ewi04 on SysDirRead - miss 1 file in the folder list research
CODESYS Forge
talk
(Post)
Hello, I also had this problem. I was able to solve it with the CAA File library. Here the example page: https://content.helpme-codesys.com/en/libs/CAA%20File/Current/Examples.html
Last updated: 2023-12-13
Post by gabrielmorte on PackML from Store
CODESYS Forge
talk
(Post)
Hi, I am trying to find the PackML_Example.project file. There is only a library available in the store. Could you please help me with the example file?
Last updated: 2024-01-31
Post by gabrielmorte on PackML_example.project no longer available?
CODESYS Forge
talk
(Post)
Hi, I am trying to find the PackML_Example.project file. There is only a library available in the store. Can someone please help me with the .project file? Thanks in advance.
Last updated: 2024-01-31
CNC - system goes to X=0 Y=0 before CNC file execution starts, how to avoid that?
CODESYS Forge
talk
(Thread)
CNC - system goes to X=0 Y=0 before CNC file execution starts, how to avoid that?
Last updated: 2024-05-07
Post by paulg on CODESYSControl_User.cfg - link to documentation?
CODESYS Forge
talk
(Post)
Is there somewhere in the Codesys help files that generally details what configuration options are available for this file, and what details it logs regarding the configuration file? Or is that going to differ by libraries being used? Thanks!
Last updated: 2024-06-11
Post by brouwyka on JSONByteArrayWriter string result incorrect order
CODESYS Forge
talk
(Post)
Hello everybody! We are currently working on implementing a call to an API that tracks data sent to it through a JSON body. Versions: CODESYS V3.5 SP19 Patch 7 using IIOT Libraries SL license, specifically JSON Utilities SL version 1.13.0.0. For simplicity, let's say we want to construct the following JSON body for our request (simplified to just 1 key-value pair in each of the array objects to keep things shorter, but we'd have multiple fields in each in reality): { "id": "machine_1", "readings": [ { "temp_mid": 153.8 }, { "temp_mid": 98.3 } ], "status": "RUNNING" } However, our "readings" data is added over time, not in creation, so calls to the builder would be somewhat out of order. In a simplified manner, our calls would look like this: jsonBuilder(pJsonData := JsonData, diRootObj => rootJsonIndex); // rootJsonIndex = 0. // Set "id" at root JSON object. wsValue := "machine_1"; jsonBuilder.SetKeyWithValue("id", wsValue, diParentIndex := rootJsonIndex); // JSONData KEY: diParentIndex = 0 & diIndex = 1, VALUE: diParentIndex = 1 & diIndex = 2. // ... Time passes, we get our first reading to add ... // The "readings" array does not exist yet, so we make it first at root JSON object before adding our first reading. readingsJsonArrayIndex := jsonBuilder.SetKeyWithArray("readings", diParentIndex := rootJsonIndex); // JSONData KEY: diParentIndex = 0 & diIndex = 3, VALUE: diParentIndex = 3 & diIndex = 4. // Then add the first reading, for which we first have to make an object. readingsJsonArrayObjectIndex := jsonBuilder.SetObject(diParentIndex := readingsJsonArrayIndex); // JSONData OBJECT: diParentIndex = 4 & diIndex = 5. // And then we add the field(s) in the object for the first reading. // NOTE the use of `readingsJsonArrayObjectIndex` so we set the field(s) in the first object in the array. rValue := 153.8; jsonBuilder.SetKeyWithValue("temp_mid", wsValue, diParentIndex := readingsJsonArrayObjectIndex); // JSONData KEY: diParentIndex = 5 & diIndex = 6, VALUE: diParentIndex = 6 & diIndex = 7. // ... Time passes, we want to add another root-JSON-level field ... // Set "status" at root JSON object. wsValue := "RUNNING"; jsonBuilder.SetKeyWithValue("status", wsValue, diParentIndex := rootJsonIndex); // JSONData KEY: diParentIndex = 0 & diIndex = 8, VALUE: diParentIndex = 8 & diIndex = 9. // ... Time passes, we want to add a second reading ... // "readings" array exists, so add the second reading, but first we have to make another object. // NOTE the re-use of the earlier stored `readingsJsonArrayIndex`, so we add the new object to that previously created array. readingsJsonArrayObjectIndex := jsonBuilder.SetObject(diParentIndex := readingsJsonArrayIndex); // JSONData OBJECT: diParentIndex = 4 & diIndex = 10. // And then we add the field(s) in the object for the first reading. // NOTE the use of `readingsJsonArrayObjectIndex` so we set the field(s) in the SECOND(, new) object in the array. rValue := 98.3; jsonBuilder.SetKeyWithValue("temp_mid", wsValue, diParentIndex := rootJsonIndex); // JSONData KEY: diParentIndex = 10 & diIndex = 11, VALUE: diParentIndex = 11 & diIndex = 12. // ... Finally, we want to send to the API, so we must convert the builder to data the client accepts as a body ... xTestWriteToJsonArray := TRUE; jsonArrayWriter( xExecute := xTestWriteToJsonArray, pwData := ADR(jsonDataString), udiSize := SIZEOF(jsonDataString), jsonData := JsonData^ ); IF jsonArrayWriter.xDone THEN // The writer was successful, the `jsonDataString` VAR should now contain a WString copy of the JSON object from the builder. xTestWriteToJsonArray := FALSE; END_IF We see that the JsonData STRUCT is correctly organised (in terms of the diParentIndex & diIndex set by it for each JsonElement) as we expect, as outlined in my comments in the simplified code above. However, as soon as we pass it to the jsonArrayWriter (which is a JSON.JSONByteArrayWriter), the resulting jsonDataString does not match our expectations, instead coming out like this: { "id": "machine_1", "readings": [ { "temp_mid": 153.8 } ] } { "temp_mid": 98.3 } "status": "RUNNING" The behaviour of the JSONByteArrayWriter thus seems to be the problem here. It does not seem to correctly process the children of JsonElements that are ARRAYs when additions to them are done broken up by additions to the lower level JSON OBJECT they are a part of. We have confirmed this by changing the order of the calls in our example to add both readings before adding the "status", in which case we get our expected outcome. However, in reality this is not possible for us - additions to any of the JSON's objects, arrays or array objects may happen at any time after other fields elsewhere in the JSON have been added. Does anyone know a way around this, a fix, or knows a solution we simply have not found? This same phenomenon was also noted on this forum by user @ryusoup at the end of 2023 (https://forge.codesys.com/forge/talk/Engineering/thread/c45929e2f1/#e27f) and user @mtho in early 2024 (https://forge.codesys.com/forge/talk/Engineering/thread/cd1bb450db/#1292) but both topics received no activity beyond both users' opening posts. Looking through the release notes of all the versions of the JSON Utilities SL library, I also did not see any remarks on resolutions of bugs in this vain. Thanks in advance for the assistance!
Last updated: 2026-06-10
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.