Post by chir on SMC_REGULATOR_OR_START_NOT_SET issue
CODESYS Forge
talk
(Post)
Drive: Inovance MD520 In a project I add SoftMotion CiA402 Axis
Last updated: 2024-04-22
Post by eschwellinger on 3.5 P20 hangs - no response
CODESYS Forge
talk
(Post)
In which situation does this happen? With a special project?
Last updated: 2024-04-22
Post by benitohb on Error in simple division
CODESYS Forge
talk
(Post)
Hello. thanks for your help! you saved my life.
Last updated: 2024-04-25
Post by bartg on Open a POU in the editor via scripting
CODESYS Forge
talk
(Post)
Hi, I would like to automate opening some specific pous and visualisations in the codesys environment I found out that I can open it by using : system.commands["42f6acb9-bd6e-42e7-94bb-6e2a03973b83"].execute() But the POU has to be selected in the Devices or POUs navigator. Does anyone know how I can select a specific POU in the navigator? Or how I can open a specific POU? I can retreive the guid of the POU. Thx
Last updated: 2024-05-30
Post by micik on "CAA" meaning in library names
CODESYS Forge
talk
(Post)
Thank you very much for answering my question.
Last updated: 2024-05-31
Post by bschraud on Speicherbegrenzung für lokale Variablen
CODESYS Forge
talk
(Post)
Nach dem Verschieben des Arrays in die GVL verschwindet der Fehler.
Last updated: 2024-06-06
Post by eschwellinger on SysProcessExecuteCommand2 and CANopen Device
CODESYS Forge
talk
(Post)
please call sysproccess in an own task with low prio
Last updated: 2024-06-20
Post by tayhim on WAGO device in Codesys V3
CODESYS Forge
talk
(Post)
ela, how did you solve that problem?
Last updated: 2024-06-25
Post by sajid on NMEA Serial data read in Control win v3 x64
CODESYS Forge
talk
(Post)
I am using the SerialCom example program from the CODESYS website to read NMEA strings in CODESYS Control Win V3 x64 through a serial-to-USB converter. However, I occasionally receive only partial data or encounter errors in the received string. A screenshot of expected NMEA string attached for reference. Could you please advise on how to ensure the full NMEA string is received consistently? Error in strRead variable is <value of="" the="" expression="" cannot="" be="" retrieved=""></value>
Last updated: 2025-10-16
Post by sajid on NMEA Serial data read in Control win v3 x64
CODESYS Forge
talk
(Post)
I am using the SerialCom example program from the CODESYS website to read NMEA strings in CODESYS Control Win V3 x64 through a serial-to-USB converter. However, I occasionally receive only partial data or encounter errors in the received string. A screenshot of expected NMEA string attached for reference. Could you please advise on how to ensure the full NMEA string is received consistently? Error in strRead variable is <value of="" the="" expression="" cannot="" be="" retrieved=""></value>
Last updated: 2025-10-16
Post by dinesh-vamtec on SysProcessExecute
CODESYS Forge
talk
(Post)
I'm trying to open the Help.chm file in CodeSys ST, not working.
Last updated: 2025-10-24
Post by youness on CSVReaderInit returns error : INVALID_HANDLE
CODESYS Forge
talk
(Post)
I have Already the same problem when i'm trying to write data more than 10 times in the same file. In fact, i send my data periodicaly to a file that i configured to have permission of W/R in my CodesysContol.cfg. When the Error occurs, i must reboot my machine to success. It means that the problem isn't realted to a limitation of size, but a problem in the function supposed to handle the file. totorovic : allow me to know if you've found a solution to your problem. Thanks.
Last updated: 2025-11-26
Post by viteraplay17 on How to use MQTT in CODESYS Control Win V3
CODESYS Forge
talk
(Post)
Last updated: 2025-12-09
Post by nxbp on About Compatibility
CODESYS Forge
talk
(Post)
Let's say I have a CODESYS controller (PLC) with a runtime version around 3.5.19. If I use development software version 3.5.21.40 or a later version that will be released in the future for programming, could there be any problems or malfunctions in the controller's program execution or in the execution of the new, updated function blocks from the newer software? I mostly work with servo-based motion applications, so please keep that in mind when answering, and provide a detailed answer so I don't have to email you again about this topic.
Last updated: 2025-12-11
Post by eschwellinger on symbol config - IecVarAccRegisterInstance - error
CODESYS Forge
talk
(Post)
which plc in which version do you use?
Last updated: 2025-12-14
Post by eschwellinger on symbol config - IecVarAccRegisterInstance - error
CODESYS Forge
talk
(Post)
which plc in which version do you use?
Last updated: 2025-12-14
Post by bertus on Axis directions in CNC editor not using right-hand rule?
CODESYS Forge
talk
(Post)
Hello, Coming from robotics, I'm used to coordinate systems using the right-hand rule. But when I created below small NC program in the Codesys CNC editor, I noticed that the axis triad's Z-axis is flipped (see attached screenshot), resulting in left-hand rule. Is there a setting to change this? Or am I misunderstanding something in the CNC world? N000 G00 X0 Y0 N010 G01 X100 N020 G01 Y50 N030 G01 X0 N040 G01 Y0 N050 G01 Z25
Last updated: 2026-01-02
Post by timvh on History of Alarms
CODESYS Forge
talk
(Post)
It is most likely related to the existing alarm log files in the Control Win. Depending on how you start up the Control Win, you can find the files in: C:\Users\<user name="">\AppData\Roaming\CODESYS\CODESYSControlWinV3x64\<unique id="">\PlcLogic\alarms\ Or C:\Windows\System32\config\systemprofile\AppData\Roaming\CODESYS\CODESYSControlWinV3x64\<unique id="">\PlcLogic\alarms\</unique></unique></user> Delete the files in this folder, download your project again and start the application. PS, if you have an older version of CODESYS, the files are in: C:\ProgramData\CODESYS\CODESYSControlWinV3x64\<unique id="">\PlcLogic\alarms</unique>
Last updated: 2026-01-07
Post by timvh on KeyPad Function in Visualization to fill a table
CODESYS Forge
talk
(Post)
Create an array of STRING and 1 INT variable, e.g.: asMyString : ARRAY[0..9] OF STRING; iIndex : INT; Then place a "Table" object in the visualization: - link this to the string array variable. - Check the option "Use Template" - Then in the Input Configuration - add the "Write Variable" command Somewhere else add a "Combobox, array" - link this to the same array. - And link the index to the INT variable. In the Combobox, you can then select one of the strings from the array. The index variable will indicate which selection has been made.
Last updated: 2026-01-08
Post by eschwellinger on too much data for the controller
CODESYS Forge
talk
(Post)
Retains used in the project?
Last updated: 2026-06-02
Post by baltzer on ICertificateVerifier.VerifyCertificate doesn't appear to override an ERR_CERT_HAS_EXPIRED rejection in TCP_Client.Upgrade()
CODESYS Forge
talk
(Post)
Follow-up: working workaround found (routing TLS outside CODESYS) For anyone finding this thread later with the same problem (a third-party device presenting a self-signed and/or expired certificate that ICertificateVerifier/udiVerificationMode won't let you connect through) - we never got a working fix within NBS itself, but found a practical workaround worth sharing. Approach: run a local TLS-terminating proxy on the same host as the CODESYS runtime, and have CODESYS talk plain, unencrypted TCP to it instead of connecting to the remote device directly over TLS: CODESYS --plain TCP--> 127.0.0.1:<port> --stunnel/TLS--> <remote device>:<port> We used stunnel (client mode), with certificate verification explicitly disabled at that layer (verifyChain = no, verifyPeer = no) - a simple, well-documented one-line option, unlike anything we could get working inside NBS. Running it as a systemd service with Restart=always means it survives reboots and recovers automatically if the proxy or the remote device drops. On the CODESYS side, this required no changes beyond pointing TCP_Client at 127.0.0.1 instead of the device's real IP, and removing the TLSContext/ICertificateVerifier code entirely - the rest of our application-layer logic (framing, checksums, etc.) was completely unaffected, since none of that ever depended on where the TLS termination happened. Confirmed working end-to-end against a real device with an expired self-signed certificate, running on CODESYS Control for Raspberry Pi SL (Linux). We haven't yet set this up on Windows - stunnel does have Windows builds available, so the same general approach should be possible there too, but that combination isn't tested or confirmed by us at this point. Caveat: this only makes sense when the proxy and the CODESYS runtime are on the same trusted host (in our case, both on the same Raspberry Pi) - don't expose the proxy's plaintext side on a reachable network interface, since that would create an unauthenticated plaintext path to the device. The original question - whether there's a supported way to override an ERR_CERT_HAS_EXPIRED/self-signed rejection from within NBS's own TLSContext/ICertificateVerifier - remains open as far as we know. Still happy to hear from anyone who's solved that particular piece, since the workaround above is a practical detour rather than an actual answer to the original question.
Last updated: 2026-08-06
Post by imdatatas on MC_CamIn did not work properly with SMC_FreeEncoder on SoftMotion 4.17.0.0
CODESYS Forge
talk
(Post)
Hello, I am facing a problem with the new Softmotion 4.17.0.0 version. Has anyone encountered a similar problem, what is the solution? I would be happy if you could share it. Problem description: -- "SMC_FreeEncoder" encoder axis is the master, -- The motor of the servo driver on the EtherCAT bus is the slave axis. -- When the MC_CamIn block executed, the InSync output is activated. However, although the master encoder axis position value changes, there is no movement in the slave servo axis! Test steps: 1-) EtherCAT servo axis installed, configured and motion test was performed with MC_Jog. No problem. 2-) Softmotion general axis pool > SMC_FreeEncoder was added and pulse amount configuration was performed. No problem. 3-) Incremental encoder actual count value was transferred to the "SMC_FreeEncoder.diEncoderPosition" variable as DINT under the ethercat task in every cycle and the encoder axis position value was observed. No problem. 4-) A simple CAM table with a 1:1 ratio was created under the project tree. (For example: Simply, when the encoder rotates 1 turn, the motor will rotate 1 turn.) 5-) The SMC_FreeEncoder axis enabled with MC_Power and brought to the StandStill state. 6-) The MC_CamTableSelect block was run with default input values ​​(all absolute) and only the Cam table name was specified. The Done output was seen successfully. No problem. 7-) The MC_CamIn block was activated with default input values ​​(absolute) and only the master encoder axis name, slave servo axis name, CamTableID input pins was specified and then "Execute" input set to TRUE. 8-) The InSync output information of the MC_CamIn block observed as TRUE. However, although the encoder axis value changed, the position value of the slave axis did not change at all, it did not move. It always remained at 0.0mm. 9-) When I repeated the same steps above, only changing the master axis to SM_Drive_Virtual instead of FreeEncoder and gave movement to the virtual axis, this time the slave axis moved successfully. However, when the same steps and operations are performed with the same IDE just downgrade SoftMotion version from 4.17.0.0 to 4.10.0.0, everything works normally and without problems as expected in MC_CamIn block with FreeEncoder master. (By the way, The used IDE version is Codesys V3.5 SP20patch3.) Best Regards Imdat
Last updated: 2024-11-11
Post by elektron785 on GPIO mit Codesys Virtual Control for Linux ARM64 SL
CODESYS Forge
talk
(Post)
Hallo zusammen, ich möchte an einem Entwicklungsboard auf dem der i.MX 8M Plus von NXP aufgesteckt ist die vier zur Verfügung gestellten GPIOs als Ausgänge verwenden. Ich habe mir dazu die Readme-Datei des GPIO-Beispiels von "C:\Program Files\CODESYS 3.5.20.40\CODESYS\CODESYS Control SL Extension Package\4.14.0.0\Examples\GPIO" angeschaut Die Übersicht der verfügbaren GPIOs sieht folgendermaßen aus - wobei ich das auf die reduziert habe, die für mich von Interesse sind: gpiochip0: GPIOs 0-31, parent: platform/30200000.gpio, 30200000.gpio: gpio-0 (SODIMM206 ) gpio-1 (SODIMM208 ) gpio-2 ( ) gpio-3 ( ) gpio-4 ( |sd-vsel ) out hi gpio-5 (SODIMM210 ) gpio-6 (SODIMM212 ) gpio-7 (SODIMM216 ) gpio-8 (SODIMM218 ) gpio-9 ( ) gpio-10 ( ) gpio-11 (SODIMM16 ) gpio-12 (SODIMM155 |regulator-usb1-vbus ) out lo gpio-13 (SODIMM157 ) gpio-14 (SODIMM185 |regulator-usb2-vbus ) out hi gpio-15 (SODIMM91 )** Füge ich nun das GPIO (1 Bit)-Gerät in meinem Codesys-Programm hinzu funktioniert der Bus solange bis ich die Richtung in den GPIO-Parametern von "not used" auf "Output" stelle (siehe Bild gpio_parameter). Dann funktioniert nach Download der Bus nicht mehr. Gibt es noch eine andere Möglichkeit das zu steuern oder muss ich noch Einstellungen tätigen? Für die Zeile mit dem echo (export/unexport) aus dem Beispiel fehlen mir trotz sudo die Zugriffsrechte. "The Kernel Linux has deprecated GPIO user space SysFS. However, the kernel config CONFIGGPIOSYSFS is still enabled on Toradex's BSP to support customers using it in their legacy applications. You can check the configuration by running zcat /proc/config.gz | grep CONFIGGPIOSYSFS. For GPIO access from userspace, the new char device API, also known as libgpiod, must be used." Dies steht in der Verwendung der GPIOs - eine Ausführung des zcat-Kommandos liefert ein =y zurück.
Last updated: 2025-03-17
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 westcountryewe on ac_persistence not working when creating a Boot Application but works with a Direct Download to the PLC
CODESYS Forge
talk
(Post)
I am using V3.5 SP18 Patch 5. I have noticed that when I Create a Boot Application from CODESYS, and upload this to my PLC via a USB stick the AC_Persistence does not work and none of my values that are in my PersistenceChannel are retained. However, if I connect direct to my PLC and I perform a direct download of my CODESYS program, my values that are in my PersistenceChannel are retained and work as they should. This makes me wonder if there are files that are missing when a Boot Application is created. I have tried taking a backup of my configuration files after performing a direct download, which gives me the plclog.zip folder, and appears to have the ac_persistence folder present within the file structure, however when I replace the plclogic.zip with the same folder that was created when I created a Boot Application, it still does not work but I wonder whether this is because the ac_persistence folder isn't stored in the correct location for reading. The .app and .crc files are embedded within the plclogic.zip folder, which obviously when uploading need to be standalone files in the root directory of the USB, so the intention there is clearly to extract the .app and .crc files and put them into the correct location within the USB. I wonder if it could be the same for the ac_persistence folder? I have tried moving it to different locations but none have worked. Has anybody else discovered a fix for this? I know the short-term solution is to do a direct download to the PLC but there are some logistical reasons why this isn't neccesarily the best solution for us.
Last updated: 2024-02-27
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.