Post by charly29160 on WebVisu scaling regression in V3.5.22 P2: frame size jumps when switching visualizations
CODESYS Forge
talk
(Post)
Environment: - CODESYS V3.5.22 Patch 2 - CODESYS Control for Raspberry Pi MC SL - WebVisu in browser Problem: When switching between visualizations using a Register element (Registerkarten), the displayed frame size jumps incorrectly after returning to a previously viewed visualization. This behavior was introduced in V3.5.22 Patch 2. The same project worked correctly in V3.5.21 Patch 4. WebVisu settings in V3.5.21 (working): - Scaling: Isotropisch - Automatisch ermittelte Clientgröße verwenden: active - All visualizations: Automatisch erkannte Visualisierungsgröße Workaround?
Last updated: 2026-06-15
Post by william on Unit testing support / libraries for EcoStruxure Machine Expert (CODESYS)
CODESYS Forge
talk
(Post)
Hi, We are investigating available libraries and frameworks for automated PLC unit testing in Schneider EcoStruxure Machine Expert. Specifically, we are looking for: Assertion libraries or test frameworks compatible with Machine Expert CODESYS‑based solutions that are not TwinCAT‑specific Any official or community‑recommended approach for unit testing FB/FC logic offline We have found several open‑source examples, but many appear to be TwinCAT‑dependent and therefore not compatible. Are there any known libraries, best practices, or recommended approaches for implementing unit tests in Machine Expert? Thanks in advance.
Last updated: 2026-02-19
Post by reinier-geers on draw 1000 nails the easy way
CODESYS Forge
talk
(Post)
Because codesys dont has a draw command like Circle in Qbasic ( 20 years ago ) i want to draw 1000 nails, and then move them in the screen when they needed. I dont know if codesys can handle this. But is ther an easy way to draw 1000 nails with every single one has a pointer for movement, color and invisable. Of is there a linux command to draw a circle so i can do it with a process command
Last updated: 2026-05-06
Post by eschwellinger on cannot connect ot linux runtime: device does not answer the scanrequest
CODESYS Forge
talk
(Post)
for me looks like you do not use latest CODESYS IDE version, there is a known bug if you use a newer runtime your are forced to use a more complex password as user for the login. The old IDE version does not show this problem on login. so either update CODESYS or use a pw which meet the complexity requirements.
Last updated: 2026-06-11
Post by thomasgaab on EVC - issues assigning variables from VarGlobal lists
CODESYS Forge
talk
(Post)
Updated the Codesys Safety SIL2 package from v3.5.18.1 to v3.5.22.10 Codesys Version 64 3.5.18.0 After the update the assignment of variables from different VarGlobal lists was unstable. Selecting one group could cause another group to be deselected after code generation. I was unable to perform a compilation were all variables maintained the selection after code generation. Rolled back to the older version and the issue seem to be mostly solved.
Last updated: 2026-06-17
Post by hwillems on Ranges, Lambdas, on Fixed arrays of structs
CODESYS Forge
talk
(Post)
I do datastructures and algorithms in Codesys. For example a Struct of Person with thing's like IdNumber, Name, Age etc. as example. Now i do all kind of calculations, filters. So i have this pretty big Fixed Array with Structs. On this struct i want to do simple stuff you can do easily in C++/Python/Rust etc. For example i want to do this: AvererageAge := Average(Peoples.Age); Then it will return the average of all members ages. Or Sort struct on age etc. Or sort on alphabetical Name. Or use Lambda functions to filter/mutate out things like, filter out everybody above 18 years old. Or remove people who it's name start with "A". Currently i have to write my own custom function for example sorting on Age. And make a super specific function based on that particulare datastructure. Here an Example: (*Before calling this FIlter method, set the mNodeFilterSwitch to the desired filter.*) CASE mNodeFilterSelect OF (********************************[ Status Filters ]***********************************) NodeID: FOR x := ACS_OUT_BEGIN TO ACS_OUT_END BY 1 DO FOR y := ACS_IN_BEGIN TO ACS_IN_END BY 1 DO IF marrNode[y].Status.oiNodeID > marrNode[y + 1].Status.oiNodeID THEN mNodeTemp := marrNode[y + 1]; marrNode[y + 1] := marrNode[y]; marrNode[y] := mNodeTemp; END_IF; END_FOR; END_FOR; Started: FOR x := DES_OUT_BEGIN TO DES_OUT_END BY -1 DO FOR y := DES_IN_BEGIN TO DES_IN_END BY -1 DO IF marrNode[y].Status.oxStarted > marrNode[y - 1].Status.oxStarted THEN mNodeTemp := marrNode[y - 1]; marrNode[y - 1] := marrNode[y]; marrNode[y] := mNodeTemp; END_IF; END_FOR; END_FOR; Starting: FOR x := DES_OUT_BEGIN TO DES_OUT_END BY -1 DO FOR y := DES_IN_BEGIN TO DES_IN_END BY -1 DO IF marrNode[y].Status.oxStarting > marrNode[y - 1].Status.oxStarting THEN mNodeTemp := marrNode[y - 1]; marrNode[y - 1] := marrNode[y]; marrNode[y] := mNodeTemp; END_IF; END_FOR; END_FOR; END_CASE; I have like 30+ of these in the enum. Not really DRY code right? These are custom made bubble sort filters in a function. You pass in the Datastructure, and say what function you want. (This is an enum collection of sorting functions) And then the Array with Nodes of Structs gets ordered. Why can't we have Iterators and Lambda's and build in standard functions like regular languages? Also i use bubble sort because it's the easiest to implement because i can't get this to code DRY. Problem with ST (Even the new one with classes) that it's very limited for programming datastructures and algorithms. Yes you still not want dynamic memory and you need to choose the correct algorithm so you know the most extreme edge cases regarding the time it takes to execute the algorithms.(Real-time execution) How are other people dealing with this? Here for example saw some software using an adjusted ST language and having FOR EACH possibility: https://www.fernhillsoftware.com/help/iec-61131/structured-text/st-for-each.html You can then build your own custom Iterator functions. I wish the IEC 61131-3 standard would be more expressive and having more standard modern features, but still keep close to the fact of no dynamics memory and real-time systems.
Last updated: 2023-08-31
Post by brouwyka on JSONByteArrayWriter string result incorrect order
CODESYS Forge
talk
(Post)
Hi @TimvH, As discussed in our email contact, your example does not actually test/reproduce the bug I am describing: Adding to the JSON builder on later cycles works fine. Your example works because you do the following: 1. You finish the first cycle (xFirst) with adding an object to the array with 2 fields; 2. When the next cycle is triggered (xAdd), you immediately start with adding another object to that array. This works fine as the last thing you did before #2 was the addition of the array and an object to it. To reproduce the bug you should be doing the following instead, as I showed with the code I shared with my first post: 1. Create the array - save the index that is returned; 2. Add an item, either a primitive or an object, to the array; 3. Add an item outside the array (anything: a primitive, a new array, a nested object, etc); 4. Add another item to the array using the index you saved at #1. You will now see, as I shared in my initial post, that the second item is placed completely outside the root JSON object. This also happens to anything else you try to add after step #4: everything after this point will be added outside the root JSON object: the JSON is completely broken. Important to note is that this not only happens with arrays, but also with nested JSON objects. Once you add something outside of a nested JSON object, you can no longer add anything to that nested JSON object, as that causes the exact same bug. This also applies to arrays of objects, so if in your test you had tried adding a new key-value pair to the first nested object in your array after you created the second nested object, you would also run into this bug. It seems that the JSONByteArrayWriter (I haven't tested the other writers in the JSON Utilities SL library, so I don't know if they suffer from the same problem) simply does not handle any JSON fields that add brackets (so arrays with "[" & "]" and nested objects with "{" & "}") well, and closes them prematurely instead of checking if any later JSONElements in the JSONData's array belong to any of these bracketed fields. After reviewing the objects & functions of the JSON Utilities SL library, my guess is that either the JSONByteArrayWriter linearly goes through the array of JSONElements in the JSONData and only checks the diParentIndex of each JSONElement in direct ascending order, OR if it does use the JSONElement.GetChildren(); method, that this method is either broken and doesn't give all children correctly to the writer. Neither explains why everything completely breaks, and you cannot even add to the root JSON object anymore, however, so there is probably more than just that going wrong in the writer. To me, after a full week of testing and attempting workarounds, this seems like a bug in the library that needs to be fixed by Codesys, as I cannot see anything wrong in the JSONData constructed by the JSONBuilder - this seems purely a problem in the writer.
Last updated: 2026-06-15
Post by jinlee on Dynamic I/Os Mapping
CODESYS Forge
talk
(Post)
Hi there, I will give it a try. Thank you very much.
Last updated: 2023-08-19
Post by vincentger on Raspberry Pi Control SL MC - Restoring License not working anymore!
CODESYS Forge
talk
(Post)
Running into the same problem restoring a Runtime 4.4.0.0 device on a now 4.8.0.0 device.
Last updated: 2023-08-21
Post by kreisfilho on Same program to more than one PLC
CODESYS Forge
talk
(Post)
Hi, How can I assign a monitor (non touch) connected to a Raspberry pi (via HDMI) as visualization output?
Last updated: 2023-08-23
How to call the same program from library and get the vars updated.
CODESYS Forge
talk
(Thread)
How to call the same program from library and get the vars updated.
Last updated: 2023-08-23
Post by smercante on Unable to Import PLC Open XML from Easy Remote IO
CODESYS Forge
talk
(Post)
Hello dear. I have the same problem. Could you solve it? Do you use GLV variables?
Last updated: 2023-08-24
Post by i-campbell on Ping By Name
CODESYS Forge
talk
(Post)
https://content.helpme-codesys.com/en/libs/Net%20Base%20Services/3.5.19.20/NetBaseServices/Function-Blocks/IP/fld-IP.html resolve hostname and ping?
Last updated: 2023-08-24
Post by jegerjon on Same program to more than one PLC
CODESYS Forge
talk
(Post)
I guess you could archive the project, open the archive and go online. Is that suffiecient for your use case?
Last updated: 2023-08-25
Post by i-campbell on Ping By Name
CODESYS Forge
talk
(Post)
What library is that? Net Base Services Is there a version 9.2 ? I've not heard of a version 9.2
Last updated: 2023-08-25
Post by totorovic on CSVReaderInit returns error : INVALID_HANDLE
CODESYS Forge
talk
(Post)
Hello, Can we please have some details about the error : INVALID_HANDLE? So we can try to avoid it.
Last updated: 2023-08-28
Post by eschwellinger on v3.5 SP19 - Modbus TCP Devices - Channel Limit?
CODESYS Forge
talk
(Post)
think this will be solved with 4.3.0.0 version.- sorry i was wrong with this..4.4.0.0
Last updated: 2023-08-28
How to configure CODESYSControl_User.cfg in order to use a specific network card for OPCUA Server
CODESYS Forge
talk
(Thread)
How to configure CODESYSControl_User.cfg in order to use a specific network card for OPCUA Server
Last updated: 2023-08-28
Post by eschwellinger on v3.5 SP19 - Modbus TCP Devices - Channel Limit?
CODESYS Forge
talk
(Post)
Guess you could just add two modbus slaves with the same ip, to enlarge the 10 channel limit.
Last updated: 2023-08-28
Post by reinier-geers on Trun off webvisu
CODESYS Forge
talk
(Post)
How do i see if Webvisu is active and how to shot down if i dont want webvisu?
Last updated: 2023-08-29
Post by timvh on eCockpit - unable to start simulation
CODESYS Forge
talk
(Post)
You need to start the application, see the "start" option at the top left (next to close simulation).
Last updated: 2023-08-31
Post by marekxc on Trun off webvisu
CODESYS Forge
talk
(Post)
Click Visualisation with the left mouse button. Next click right mosue button Select Properties In window select TAB Build and Select "Exclude from Build"
Last updated: 2023-09-01
Post by fefefede on Error C0521 - unknow compiler
CODESYS Forge
talk
(Post)
Hello and thanks for reply. I not have "Libray Manager" on "Update Device". I not try to open project but i open Codesys and then create a new project and when try to generate code i have the error :/ I notiche a strnge situation. I have two different software on my pc: CODESYS V3.5 SP15 Patch 4 (with this my new program not work but can open and work with some course example); CODESYS V3.5 SP19 Patch 2 (with this my custom program work) Wich version i must be choose? Why i have two different version? Thanks
Last updated: 2023-09-02
Post by janderson on Ethercat scan for devices not picking up EL7041 as a softmotion axis
CODESYS Forge
talk
(Post)
also my ethercat bus won't run.
Last updated: 2023-09-02
Post by jegerjon on VPN
CODESYS Forge
talk
(Post)
Hi, witch VPN provider for remote PLC Acess do you use/recomend? Preferedbly one where you can Grant certain users acess to specific controllers.
Last updated: 2023-09-06
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.