Post by gseidel on Scara3 kinematic robot error
CODESYS Forge
talk
(Post)
Hi aniket-b, this error has nothing to do with the scara3 kinematics, or robotics, or SoftMotion. It means that the EtherCAT bus is not synchronized. The usual cause is that the realtime of the PLC is not sufficient. See https://content.helpme-codesys.com/en/CODESYS%20SoftMotion/_sm_basic_common_errors.html for details and ways to solve the problem. You can also check the PLC log for additional information about the error. Best regards, Georg
Last updated: 2025-12-23
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 axberry on CODESYS Control for Raspberry Pi 5 - "Hardware version or firmware version not supported" on Rev 1.1, persists across multiple runtime versions and OS images
CODESYS Forge
talk
(Post)
Hi, I'm trying to run CODESYS Control for Raspberry Pi SL on a Raspberry Pi 5, and the runtime consistently fails to start with the following error when launched manually: ooops... this runtime was built for RASPBERRYPI. Hardware version or firmware version not supported! (-18, 0x00000BB8, 0xFFFFFFFB) Hardware: Raspberry Pi 5 Model B Rev 1.1 Revision code: d04171 CPU: aarch64, BCM2712 Serial number is correctly exposed via /proc/cpuinfo and /proc/device-tree/serial-number /proc/device-tree/model correctly reports "Raspberry Pi 5 Model B" What I've tried (all resulting in the same error): CODESYS Control for Raspberry Pi SL 4.11.0.0 (SDK 3.5.19.61) β the version that introduced Pi 5 support CODESYS Control for Raspberry Pi SL 4.21.0.0 (SDK 3.5.22.20) β latest available Raspberry Pi OS Bookworm (64-bit) with kernel 6.12.93+rpt-rpi-2712 (June 2026 build) Fresh install on Raspberry Pi OS Bookworm (64-bit) with an older image from November 24, 2025 β same error, ruling out a kernel-version regression Bootloader/EEPROM confirmed up to date (rpi-eeprom-update reports "up to date") Clean purge and reinstall of the codesyscontrol package each time (verified via dpkg -l, no leftover files) Verified /etc/codesyscontrol/3S.dat correctly symlinks to /etc/codesyscontrol/3S_aarch64.dat The service starts (systemctl status briefly shows active (running) with a real PID under /opt/codesys/bin/codesyscontrol.bin), but crashes shortly after and the process disappears β port 11740 never opens. Since this happens identically across two different runtime versions and two different OS images (5+ months apart), it doesn't seem to be a kernel/firmware timing issue. Could this be specific to the Rev 1.1 board revision, or is there a known issue with the hardware detection logic in the SL runtime that I should be aware of? Happy to provide full debug logs (-d flag output) or journalctl output if useful. Thanks in advance!
Last updated: 2026-08-10
Post by dmb-fan on From target start Win OnScreenKeyboard
CODESYS Forge
talk
(Post)
Hi ! I am get crazy.... I try to start osk.exe from Visu or PLC. From Visu I can't load it, always error (It change from programm execute always to load receipe ..!?!?) From PLC always freeze of PLC, - I allowed the win service of the PLC the data exchange between desktop and service - I allowed in ..user.cfg [SysProcess] Command=AllowAll Shutdown with SysProcessExecuteCommand works, but 'osk.exe' or the complete path always crashed the system. And like always: No documentation. Just guessing. Or know somebody more and have a link for me? THANKS !
Last updated: 2026-10-27
Post by gseidel on Axis directions in CNC editor not using right-hand rule?
CODESYS Forge
talk
(Post)
Hi bertus, the coordinate systems used in SoftMotion CNC are all right-handed. The CNC editor uses isometric projection. This can be confusing, as in your example. The y-axis seems to point into the screen, away from the viewer. However, this is just an optical effect. If you turn on the (experimental) perspective projection (must be added to the CNC tool bar using tools->customize), you can see that the coordinate system is in fact right-handed. Best regards, Georg
Last updated: 2026-01-07
Post by srinidhi on Pilz PBRT Robot with CoDeSys
CODESYS Forge
talk
(Post)
If anyone here are working with robots and using Codesys to control it and implement tasks, Please let me know. I am currently in my Master thesis and i need some advice on this. We have Pilz Robot with Codesys and I am trying to proceed with certain tasks but have no documentation for it. Would be helpful if anyone of you can suggest and help connect with the right people.
Last updated: 2026-05-10
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 dhumphries on Codesys Installation problem
CODESYS Forge
talk
(Post)
Installing codesys has been the biggest point of frustration for me and is the reason I'm currently working on building a VM just for the codesys engineering software so once I get a working installation I can copy the VM to new workstations instead of fighting with the installer every time I get a workstation upgrade. The best advice I've gotten in the past is to uninstall everything and start over, this is successful 50% of the time. Also don't install the latest version it's usually less stable than an older one ironically.
Last updated: 2026-08-10
Post by luca03 on OPC UA information model into the Communication Manager
CODESYS Forge
talk
(Post)
Hello, unfortunately I am unable to load an OPC UA information model as a NodeSet2.xml file into the CODESYS Communication Manager. Importing via Tools -> OPC UA Information Model Repository still works, but when I try to load the model explicitly, CODESYS crashes without displaying an error message. Has anyone else encountered this problem, or does anyone have any suggestions? Thanks in advance
Last updated: 2026-08-22
Post by jgalaska on SMC_Trafo 6DOF Config Error
CODESYS Forge
talk
(Post)
Hello, Recently I was trying to run 6DOF robot in codesys via SMC_Trafo_ArticulatedRobot_6DOF, unfortunately no matter what parameters I tried, it always outputs InvalidConfig Error. I saw the same issue in a topic: https://forge.codesys.com/forge/talk/Motion/thread/16e1f0327f/ But if I understand correctly, the user solved it by developing his own version of this block. I wanted to know if it is a bug in the library (SM3_CNC 4.20.0.0) or am I doing something wrong? Can anyone confirm that they can use the FB without it reporing the Error? Kind regards,
Last updated: 2026-01-21
Post by aapostolidis on _NEW when used with classes and interfaces. Interface shows "Hidden Instance" in watch.
CODESYS Forge
talk
(Post)
Hello, im using dynamic memory allocation with the NEW()-operator. When i instanciate a class with the NEW()-operator and want to debug/watch the interface of the class, the watch is only showing "Hidden Instance" (See attached screenshot). Is there any possibility to debug the interface data ? The interface is working properly but the debugging by the watch is not possible, what is a big disadvantage. Thank you. Best Regards, Alexander
Last updated: 2026-03-24
Post by lofty on CODESYS Download Issue
CODESYS Forge
talk
(Post)
I am attempting to install CODESYS 3.5.22.20 and the installer gets stuck at "Install Package CODESYS Compatibility Package 3.5.17.20" every single time. I've tried reinstalling the software multiple times and the same issue persists. I've tried running the installer as an administrator and even turned off my virus protection and the same issue persists. I've attached a photo for reference. Has anyone run into this issue before or have any idea what I can do to complete the install?
Last updated: 2026-05-26
Post by tarek on How to add/Scan devicenet Master/Slave
CODESYS Forge
talk
(Post)
Hello, i have a similar problem with this. Im using an EL6752 from Beckhoff DeviceNet Master and i dont have an EDS for the comms with the slave (EVO GT II Valve). In CODESYS they dont let me put a digital slave. My question, how can i add a slave in the EL6752 the Process data mapping to see values. I cant add a DeviceNet slave in the tree, thanks
Last updated: 2026-09-14
Post by dmb-fan on From target start Win OnScreenKeyboard
CODESYS Forge
talk
(Post)
Hi ! I am get crazy.... I try to start osk.exe from Visu or PLC. From Visu I can't load it, always error (It change from programm execute always to load receipe ..!?!?) From PLC always freeze of PLC, - I allowed the win service of the PLC the data exchange between desktop and service - I allowed in ..user.cfg [SysProcess] Command=AllowAll Shutdown with SysProcessExecuteCommand works, but 'osk.exe' or the complete path always crashed the system. And like always: No documentation. Just guessing. Or know somebody more and have a link for me? THANKS !
Last updated: 2026-10-27
Post by scoob on ModbusFB - Slow Response Time
CODESYS Forge
talk
(Post)
Hello, I have been trying to use the ModbusFB functions so I can put some code into libraries, but it seems to be very slow for me. I have a Modbus device with 100ms registers. I previously setup 10 channels in the 'traditional' Modbus Slave with channels and mappings - and set a cyclic trigger at 100ms - this worked fine. I then tried the ModbusFB example, and setup reading the same 10 blocks of modbus addresses, copying the example and putting all of the requests into an array and triggering the requests sequentially. I timed how long the requests are taking to get round to each one, and it is around 1s 450ms. How do I speed this up to match the cyclic time? IF NOT(init) THEN init := TRUE; // Set the required IP address: ipAddress[0] := 192; ipAddress[1] := 168; ipAddress[2] := 1; ipAddress[3] := 10; // Pass the required IP address to the clinet FB: client_NetworkSwitch.aIPaddr := ipAddress; client_NetworkSwitch.udiLogOptions := (ModbusFB.LoggingOptions.ClientConnectDisconnect OR ModbusFB.LoggingOptions.ClientReceivedValidReplies); // Try to connect the client client_NetworkSwitch(xConnect:=TRUE); // Configure all the channels to read connecting them to the client: portStatus_Request(rClient := client_NetworkSwitch, uiStartItem := 4096, uiQuantity := 32, pData := ADR(portStatus), udiReplyTimeout := udiReplyTimeout); portSpeed_Request(rClient := client_NetworkSwitch, uiStartItem := 4352, uiQuantity := 32, pData := ADR(portSpeed)); flowControl_Request(rClient := client_NetworkSwitch, uiStartItem := 4608, uiQuantity := 32, pData := ADR(flowControl)); linkUpCounter_Request(rClient := client_NetworkSwitch, uiStartItem := 5888, uiQuantity := 32, pData := ADR(linkUpCounter)); txPacketCounter1_Request(rClient := client_NetworkSwitch, uiStartItem := 8192, uiQuantity := 100, pData := ADR(txPacketCounter1)); txPacketCounter2_Request(rClient := client_NetworkSwitch, uiStartItem := 8292, uiQuantity := 28, pData := ADR(txPacketCounter2)); rxPacketCounter1_Request(rClient := client_NetworkSwitch, uiStartItem := 8448, uiQuantity := 100, pData := ADR(rxPacketCounter1)); rxPacketCounter2_Request(rClient := client_NetworkSwitch, uiStartItem := 8548, uiQuantity := 28, pData := ADR(rxPacketCounter2)); txErrors_Request(rClient := client_NetworkSwitch, uiStartItem := 8704, uiQuantity := 64, pData := ADR(txErrors)); rxErrors_Request(rClient := client_NetworkSwitch, uiStartItem := 8960, uiQuantity := 64, pData := ADR(rxErrors)); // Trigger all client requests initially FOR clientRequestsCnt := 0 TO (SIZEOF(clientRequests)/SIZEOF(clientRequests[0]))-1 DO pClientRequest := clientRequests[clientRequestsCnt]; pClientRequest^.xExecute := TRUE; END_FOR // Prepare sequential trigger / control of client requests. clientRequestsCnt := 0; pClientRequest := clientRequests[clientRequestsCnt]; END_IF // Call the client to do request processing: client_NetworkSwitch(); // Now we trigger client request sequentially ... IF NOT pClientRequest^.xExecute AND NOT pClientRequest^.xDone AND run AND client_NetworkSwitch.xConnected THEN pClientRequest^.xExecute := TRUE; END_IF // .. and check result/error IF pClientRequest^.xExecute AND run AND client_NetworkSwitch.xConnected THEN IF pClientRequest^.xDone THEN // Prepare next trigger of client request (a rising edge of xExecute) pClientRequest^.xExecute := FALSE; IF clientRequestsCnt < SIZEOF(clientRequests)/SIZEOF(clientRequests[0])-1 THEN // next client request clientRequestsCnt := clientRequestsCnt + 1; ELSE clientRequestsIterationCounter := clientRequestsIterationCounter + 1; clientRequestsCnt := 0; END_IF pClientRequest := clientRequests[clientRequestsCnt]; END_IF END_IF I did try a semi-coded way using the IoDrvModbusTCP library, and setting the slave com settings, then 10 commands and 10 requests, then using a TP on xDone as a pause, before triggering another request - this is time the delay is around 120ms - so the device is fine with the speed, just something I am doing wrong in the ModbusFB method I am sure.
Last updated: 2024-04-26
Post by timvh on Sorting array of any-sized structure
CODESYS Forge
talk
(Post)
Look all the way at the end of the link below. This provides a way to use arrays with various lengths: https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_datatype_array.html
Last updated: 2023-08-18
Post by eschwellinger on communication
CODESYS Forge
talk
(Post)
depends on if you use PFC200 SL from CODESYS store or the Wago target for the PFC. If you use the SL product you need to setup the interface by a plcshell command...
Last updated: 2023-08-19
Post by jegerjon on Find index based on values
CODESYS Forge
talk
(Post)
Hi, I need to figure out witch indexes of an Array containing the highest and lowest values. Typically search for the 5 lowest values and result the indexnumbers containing the 5 lovest values. is there a library for this, or codeexample?
Last updated: 2023-08-20
Post by jegerjon on Find index based on values
CODESYS Forge
talk
(Post)
Hi, I need to figure out witch indexes of an Array containing the highest and lowest values. Typically search for the 5 lowest values and result the indexnumbers containing the 5 lovest values. is there a library for this, or codeexample?
Last updated: 2023-08-20
Post by kunz on Profinet Device keeps abort connection with AR alarm.ind(err)
CODESYS Forge
talk
(Post)
Can somebody explain what the error Connection aborted: AR alarm.ind(err) exactly mean? I have the same Problem and dont know how to solve the issue
Last updated: 2023-08-21
Post by yr00 on OPC UA datasource low read frequency
CODESYS Forge
talk
(Post)
Hello everyone, I am trying to test the OPC UA client feature in Codesys. My setup is the following; I have a Codesys simulation/ visualization running on Control Win V3. My OPC UA server is hosted on a Siemens 1518 PLC using PLCSim Advanced. The setup is completely virtual so there are no really PLCs. Everything is on my laptop. Writing data from the Codesys simualtion to the server is very quick. I have a PLC program running on another 1500 PLC which reads data from simulation via the server, and changes in the simulation (e.g. button pressed) appear within hundreds of miliseconds if not tens of miliseconds in my PLC program. However, when it comes to reading data from the OPC UA Server by Codesys, it taks around 1-2s. I connected a UAExpert client and it gets update very quickly so I am fairly sure the problem is with Codesys. I have tried changing the update rate in datasource -> General and Diagnosis, but it doesn't seem to have an effect. Do you guys have any suggestion on what I can do?
Last updated: 2023-08-29
Post by reinier-geers on Ping By Name
CODESYS Forge
talk
(Post)
To bad. Controller uses Version 9.2 But i dont see a lower version of net bas Service. Maybe i can try a linux command.
Last updated: 2023-08-29
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.