Post by pafarrell on EtherCAT quick start for advanced programmers
CODESYS Forge
talk
(Post)
It would be great if there was a thread that had some quick-start links for basic how-to. But one that advanced programmers can jump into. I found this video playlist by SoftMotion-Black, which was very, very helpful: https://www.youtube.com/playlist?list=PLkc8m2OD0r9xJyfTiCBb1vuU_d2yBhjZ_ This person has some other great vids like creating your own custom library, which is awesome for OEMS.
Last updated: 2025-05-14
Post by lbouchard on CANOpen SIL2 error: UNSAFESTACK_NOT_OPERATIONAL
CODESYS Forge
talk
(Post)
Hello, Working in 3.5 SP11 32 bit and using the 3S CANopenSafety Slave 3.5.11.0 library on an IFM CR711S. The 3SCSSD.CANOpenDevicesSIL2 function block keeps throwing "UNSAFESTACK_NOT_OPERATIONAL" Additionally, the Status of the device gives "There was an error accessing an I/O parameter". Any ideas on where my issues may lay? I have not found any good documentation that would explain the issue.
Last updated: 2025-05-23
Post by bjohnson on Failed to instantiate the frame window error
CODESYS Forge
talk
(Post)
IT updated a group policy that caused this issue. We resolved by going to Local Group Policy Editor > Local Computer Policy > Computer Configuration > Windows Settings> Security Settings > Local Policies > Security Options. Set "System Cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing" to DISABLED
Last updated: 2025-05-23
Post by naduley on Multiple Branches
CODESYS Forge
talk
(Post)
I am trying to create multiple branches in my project and I keep getting gaps in the ladder logic "wiring". I'm not sure if this is a graphical error or something else but every thing I've tried to do to correct it does not work. Has anyone else run into this or know how to correct it?
Last updated: 2025-06-04
Post by jeindhoven on Deploying to raspberry pi 5 hangs
CODESYS Forge
talk
(Post)
Yep sure, though now that i think of it, its a pi 4. My bad. The whole ordeal was necessary to use the VGA666 adapter. That needs the old graphical system and GPIO directly on the CPU. Edit: Putty on the virtual development machine connects fine. But i did change the login/pw. The account is still a sudo'er so that should be all right. Edit2: Sorry i get a "Comment rate limit exceeded" from the forum. Then i'll add it as edit here. So i have tried the stock raspberry pi image on a different pi5 (truly 5 this time). Packages updated. Standard password. Same symptoms, no runtime deployed and long hang time. Versions of this pi: pi@raspberrypi:~ $ uname -a Linux raspberrypi 6.12.25+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 (2025-04-30) aarch64 GNU/Linux pi@raspberrypi:~ $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm pi@raspberrypi:~ $ apt list --installed | grep openssh-server openssh-server/stable,now 1:9.2p1-2+deb12u6 arm64 [installed,automatic] Attached is the Device information and error text that Codesys comes up with. Edit 3 (Comment rate limit, otherwise it would be a new post) Now i have tried booting an older native Windows 10 machine (no virtualization), and it just works as expected. I have now a raspberry pi 4 and raspberry pi 5 with version 4.16.0.0 of the control application. Windows 10 native: build 19045 (same as virtualised Win 10), same .NET version, same CODESYS version. It seems that running CODESYS virtualized somehow messes with the deployment?
Last updated: 2025-06-23
Post by imdatatas on 3.5 P20 hangs - no response
CODESYS Forge
talk
(Post)
Hi, You can give a try it by adding "Codesys.exe" in the "Exclusions > Process" section of the Windows Security Center or your antivirus program. I hope it works for your situation. Antivirus programs check many things during both the installation or startup of an application, and may be slow down or block some functions. Regards Imdat
Last updated: 2025-06-25
Post by arwie on Use MC_Home without enabling the drive for homing method 35
CODESYS Forge
talk
(Post)
This is a homing routine which is controlled by setting mode of operation and started by setting a bit in the control word. If MC_Home is not usable for this homing method then I need to implement the same functionality. But how?
Last updated: 2025-06-25
Post by paulpotat on Where can I find a list of all available runtime configuration parameters ?
CODESYS Forge
talk
(Post)
Hello, I was wondering if there is a list somewhere of all the parameters that can be used inside the "/etc/codesyscontrol/CODESYSControl_User.cfg" configuration file ? I searched the documentation but didn't find anything. If it doesn't exist, that would be nice to have a little bit more documentation about this file :) Thank you for your help, BR
Last updated: 2025-07-10
Post by wbj0t on one variable signed to modbus tcp server device and modbus serial device
CODESYS Forge
talk
(Post)
Hi. Raspberry pi 4 runtime. Runtime version 4.16, IDE version 3.5.21. Is it possible write new value for variable via modbus tcp or serial devices when both enabled? As I see - not. What can I do? It is terrible restriction.
Last updated: 2025-07-17
Post by timvh on Reading multiple lines from csv file
CODESYS Forge
talk
(Post)
Not sure, but maybe before you enter step 5, set i, lineindex and charIndex to 0. And the buffer variable should have a size bigger than 1 line. Additionally I think you should set bufferstart to 0 before you enter step 5. And in the OSCAT function you always point to the buffer address, but shouldn't this be (buffer + bufferstart)?
Last updated: 2025-07-23
Post by jampid on SFC comments in program
CODESYS Forge
talk
(Post)
Bonjour, Dans les propriétés des étapes et des transitions, tu peux définir les commantaires.Ensuite, il faut activer les commentaires dans OUTILS/OPTIONS/SFC et cocher les cases Commentaires pour les étapes et les transiti deons. Il en est de même pour les MACRO, les SAUTS et les ACTIONS CEI
Last updated: 2025-07-24
Post by davemansell on control loop library IIR filter
CODESYS Forge
talk
(Post)
Hi there i am experimenting with the IIR filter from the control loop library but have been unable to get it to function no matter what inputs I set I get errorID of wrong_configuration (3). Does someone have a working example that they can share. Best regards Dave
Last updated: 2025-07-29
Post by artplc on 3.5 P20 hangs - no response
CODESYS Forge
talk
(Post)
Subject: Solution: CODESYS Freezes Linked to Large Symbol Configuration (OPC UA) Hello everyone, I was experiencing the same problem as many here: CODESYS (v3.5 SP20+) freezing during compilation and download, especially on projects that use OPC UA for SCADA. The only workaround was to run Build > Clean all before every download. I believe I have found the root cause and a permanent solution. The Problem: The issue is directly related to a large Symbol Configuration. In my project, I only need about 700 tags for OPC UA, but the Symbol Configuration list was showing over 250,000 tags. This is because it automatically includes all variables from Global Variable Lists (GVLs) and other memory areas. When any static variable is changed, the IDE tries to rebuild this enormous list, causing it to freeze for several minutes. The Solution: Instead of letting CODESYS export every variable by default, you can use a pragma to tell it which variables or GVLs to exclude from the symbol export process. Place the following pragma at the top of any GVL or data structure that you do not want to be part of the symbol configuration: 1 {attribute 'symbol' := 'none'} 2 VAR_GLOBAL 3 // All variables in this GVL will now be excluded from the 4 // Symbol Configuration by default. 5 InternalVariable1 : INT; 6 InternalVariable2 : BOOL; 7 END_VAR After adding this pragma to all the GVLs that were not needed for OPC UA, the number of tags in my Symbol Configuration dropped to the correct amount. The compilation and download process is now fast again, with no freezing. This method is much more efficient than manually managing the symbol list in the editor. I hope this helps others who are facing this frustrating issue. Best regards.
Last updated: 2025-08-10
Post by akrawczyk on Dynamically enabling/disabling Modbus slave devices in runtime (performance issue with timeouts)
CODESYS Forge
talk
(Post)
Hi everyone, I'm working on a CODESYS-based project running on a Weintek cMT2078X HMI with a built-in CODESYS runtime. The system communicates with multiple Modbus RTU slave devices, arranged in a cascade. The number of connected units can vary between 2 and 8, depending on the installation. Each slave has 17 Modbus channels, which are polled cyclically every 5 seconds. The issue is that when fewer devices are physically connected (e.g. only 3 out of 8), the Modbus master still attempts to communicate with all configured slaves. This leads to massive delays due to timeouts (currently 200ms per channel). For one disconnected device, that’s: 17 × 200ms = 3.4 seconds of delay per polling cycle, and this quickly multiplies with each additional missing slave. This behavior significantly degrades the system's performance and responsiveness. We attempted a workaround where we tried to trigger polling based on a variable in the PLC program, but this caused instability and even led to hardware hangs/freezes on the cMT2078X – likely due to clashes in how the Modbus polling engine and program logic interact at runtime. My main questions are: Is there a way in CODESYS to dynamically enable/disable Modbus slave devices at runtime, using a BOOL or INT variable (e.g. indicating number of active slaves)? Can devices or channels be conditionally polled or temporarily disabled without removing them from the device tree? Are there any best practices or examples for handling variable numbers of Modbus slaves in scalable systems like this? Would splitting communication across tasks or interfaces help reduce the impact of timeouts? Any advice, documentation references, or architectural suggestions would be extremely helpful. I'm looking for a robust way to dynamically scale slave polling without degrading system stability or performance. Thanks in advance!
Last updated: 2025-08-11
Post by dkugler on Mail_Service_SL Lib
CODESYS Forge
talk
(Post)
ich meine mich zu erinnern, dass ich schon FB's hatte, die Fehlermeldungen mit löschen des Enable/Execute Bits abgelöscht haben. Dann würde bei dir sobald das Error Bit gesetzt wird, nichts mehr drin stehen. Vielleicht wäre es ein Versuch wert, den String vor dem zurücksetzen des Execute in eine Variable zu speichern, ob dann was drin steht und danach erst ablöschen?
Last updated: 2025-08-20
Post by davemansell on explicit cast ENUM to UINT and vice versa
CODESYS Forge
talk
(Post)
This is from sometime ago but below might help someone else; this could be done via POINTERS. Make sure you protect for NULL pointers etc if you take this approach. // DECLARATION myEnumValue : enumMyEnum; u8 : USINT; pmyEnumValue : POINTER TO enumMyEnum; pu8 : POINTER TO USINT; // CODE pu8 := ADR(u8); pmyEnumValue := pu8; myEnumValue := pmyEnumValue^; // dereference the pointer
Last updated: 2025-08-21
Post by davemansell on explicit cast ENUM to UINT and vice versa
CODESYS Forge
talk
(Post)
This is from sometime ago but below might help you could do this via POINTERS. Make sure you protect for NULL pointers etc if you take this approach. // DECLARATION myEnumValue : enumMyEnum; u8 : USINT; pmyEnumValue : POINTER TO enumMyEnum; pu8 : POINTER TO USINT; // CODE pmyEnumValue := pu8; myEnumValue := pmyEnumValue^; // dereference the pointer
Last updated: 2025-08-21
Post by stevens on No option to create "Parameter List" in library
CODESYS Forge
talk
(Post)
I am struggling with this issue right now (again). I have nested structures with configurable array sizes. In the past I ever used parameter list. Very easy way! As of now I cannot find any solution. Ridiculous that they deprecated it without an alternative solution.
Last updated: 2025-08-26
Post by sandro66 on Application-based license Modbus Channels
CODESYS Forge
talk
(Post)
Hi, I imported an old project created with version 3.51.20.50 into the new version 3.51.21.20. I'm using ModbusFB.ClientTCP v4.5.0.0. Strangely, I can no longer download the project due to a licensing issue I didn't have before. The number of Modbus channels has gone from 1 to 54!, and there's no license that would work. Can anyone tell me where I'm going wrong? Thanks Sandro
Last updated: 2025-08-27
Post by eksheep on Unit Tests and C007: Unknown Type
CODESYS Forge
talk
(Post)
Hello, I am attempting to implement unit tests for my POUs. When building and running the unit tests I receive error C007: Unknown Type for all types defined in the library, Standard, 3.5.18.0. Which is included in the POU Library Manager. Any input would be appreciated. TIA.
Last updated: 2025-08-27
Post by onstage on Unable to add EL6751 to Control RTE V3 on W11 IoT LTSC using Eng. V3.5 SP21
CODESYS Forge
talk
(Post)
I have working EtherCAT since it can be scanned for slaves, but then I'm stuck getting the information that the device isn't found in the repo. As far as I can see both revisions does however exist in the device repo. Component added in the Configfile. Anyone with some similar experiences?
Last updated: 2025-09-04
Post by kporter on Removing <Empty> node in Device Tree
CODESYS Forge
talk
(Post)
I initially created a SoftMotion axis for my EtherCAT CoE drive. I wanted to change it to use SoftMotionLight so I deleted the SM node, which left an <empty> node. I created the SML device, but the <empty> node remains. How can I remove that from the tree? </empty></empty>
Last updated: 2025-09-06
Post by gseidel on The default ramp type selection in SoftMotion V4.18.0.0 is Quadratic
CODESYS Forge
talk
(Post)
Hi imdatatas, thanks for your feedback. This change was intentional, as the quadratic ramp type has many advantages over the trapez ramptype. Sorry to hear it causes problems in your situation. Can you please shortly explain the nature of the problems? Best regards, Georg
Last updated: 2025-09-08
Post by gseidel on Dynamic target position tracking
CODESYS Forge
talk
(Post)
Hi kporter, a more direct way would be to use SMC_FollowPosition to write the set positions directly to the servo drive. This FB has reacts on changes of the fSetPosition on each call, without a need for a rising edge on Execute. See https://content.helpme-codesys.com/en/libs/SM3_Basic/Current/SM3_Basic/POUs/Movement/Direct/SMC_FollowPosition.html. Best regards, Georg
Last updated: 2025-09-08
Post by kio123 on SysFileOpen not working
CODESYS Forge
talk
(Post)
I have exactly the same problem and tried entering “ForceIecFilePath=0” in the file “CODESYSControl.cfg” ([SysFile]). Unfortunately, this was unsuccessful. Can anyone help in the meantime, e.g., with some sample code or with the FAQ that TimvH refers to above (link no longer works)? Many thanks and best regards
Last updated: 2025-09-15
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.