Post by z870623 on About CPU Loading
CODESYS Forge
talk
(Post)
I am running a runtime environment on an ARM A35 dual-core processor (1.5GHz) and have encountered some issues. The CPU load (both CPU0 and CPU1) occasionally spikes above 50% before returning to normal, and this happens around 2-3 times per minute. At the same time, I’ve noticed that the Max Cycle Time in the Codesys monitoring screen shows much worse performance compared to the A53 (1.2GHz), with nearly double the cycle time. The optimizations I have made so far are as follows: Set the CPU to performance mode. Isolated CPUs: CPU0 is dedicated to running Linux services and the runtime itself, while CPU1 runs the EtherCAT task and the MainTask. Despite CPU1 only running these two tasks, the utilization still increases above 50%, which I find unreasonable. Additionally, I performed tests using cyclictest both without and with the runtime running. The performance is shown in the following image: From the results, I believe the CPU performance should be fine, but I am unsure why the monitoring results are not as expected. The testing outcomes should ideally be as close as possible to the cyclictest results. Does anyone have related solutions to this issue?
Last updated: 2024-10-14
Post by fajean on Issue with library updates
CODESYS Forge
talk
(Post)
We make heavy use of internally developed libraries, which are often nested on multiple levels. I routinely work simultaneously on several libraries along with a project that use them. I make changes to a library and immediately perform a download (online or otherwise) in the project. For the longest time, we had zero issue with this. But starting a good while back, with 3.5 SP19 I think, CODESYS started not noticing library updates in other instances most of the time. When the update is missed, the project sees no need to update the code, and any download ignores the new code. A "Clean all" does not solve the issue. But if I close and then re-open the project, then the new version is noticed and the download works. The other solution is saving the library to the registry multiple times (say, 20-30 times, less if lucky), and then at some point the project notices the changed library. I am now on SP21, and it is still not fixed. This is driving me mad, any tasks probably takes me double the time or more due to this problem. My colleague has the same problem on a separate computer. Is this a known issue? Is there a setting somewhere that changes how updates are checked? Thanks for any help!
Last updated: 2026-02-13
Post by murdemon on CNC Jumps G20 - SMC_NCInterpreter and long time to process
CODESYS Forge
talk
(Post)
N10 G01 X100 Y100 F100 N20 G00 X300 Y100 F100 N30 G00 X300 Y300 F100 N40 G00 X100 Y300 F100 N50 G00 X100 Y100 F100 + $R1$ N60 G75 N70 G20 L10 N100 M30
Last updated: 2024-08-03
Post by albertocamina on Login problem with FileTransfer on Raspberry Pi 5
CODESYS Forge
talk
(Post)
Dear @eschwellinger, I have been testing for some time and still i cannot find a sollution for this one. Any hint? Many thanks!:)
Last updated: 2024-09-24
Post by dangjoris on Missing function for ConfigGetParameterValueBool (SM3RaspiStepper)
CODESYS Forge
talk
(Post)
Hello, I've been trying to get the SM3RaspiStepper application working for a long time, but the function block with the function ConfigGetParameterValueBool and ConfigGetParameterValueLReal is always missing. Does anyone know how I can get them? I also added a screenshot.
Last updated: 2024-09-30
Post by mainak on OPC UA C# client connecting to OPC UA CODESYS server
CODESYS Forge
talk
(Post)
it could be due to security settings. In codesys IDE, go to device-> change run-time security policy, and click the checkbox that says "Allow anonymous login". try if this works.
Last updated: 2024-10-19
Post by gatto on library ModbusTCP Slave 4.1.0.0 - function block ModbusServer
CODESYS Forge
talk
(Post)
Hi, again after spending a lot of time finding more information with no results, by chance I changed the device ID from 1 to 255 and the transmission works. Unfortunately the documentation is very very poor.
Last updated: 2024-11-28
Post by nano on Overview codesyscontrol.cfg commands
CODESYS Forge
talk
(Post)
a overall-information doesn't exist public. i made a long time ago a library by catching all punluc settings and/or configfiles. if u have a special question, i'll try to find it out
Last updated: 2025-02-20
Post by giackanto on Eoe issues with Windows and Linux
CODESYS Forge
talk
(Post)
Hi eschwellinger, I changed the name to tap2 due to network issues with Debian (I don't know why it changes the tap0 IP every time the program restarts). Anyway, I think the tap name doesn't affect the connection.
Last updated: 2023-12-20
Post by reinier-geers on Time zone
CODESYS Forge
talk
(Post)
I use a controller with Linux. I try to change timezone. but no result. The command of codesys i dont understand ?? And Linux Commands dont work. It stays at +0 . I want Amsterdam
Last updated: 2023-12-29
Post by atone on System Date and Time Function
CODESYS Forge
talk
(Post)
SysTimeRtcConvertUtcToLocal is marked as obsolete, but there's not hint on the actual implementation. Which function should I use instead? Edit: even the new online help is still using SysTimeRtcConvertUtcToLocal as example...
Last updated: 2024-01-05
Post by mmpl on CAA Library Function
CODESYS Forge
talk
(Post)
I want to change date and time format. I am using CAA storage library function. I am not receiving any value in to output.
Last updated: 2024-04-16
Post by tvm on Timer On Vijeo
CODESYS Forge
talk
(Post)
Vijeo doesn't support TIME variables, so the easiest thing to do is convert to a STRING in your program, and use that variable. You could use TimeAsString:= TIME_TO_STRING(TimeVar) to get a string that looks like this: T#5h10m45s200ms
Last updated: 2024-05-07
Post by hwopereis on SFC Action problems
CODESYS Forge
talk
(Post)
Only logged in to agree with the above. So counter intuitive. Why does an associated action force the variable when the step it is associated to is not active? Makes no sense at all, is terrible to debug and costs a lot of time. Such as shame.
Last updated: 2024-05-27
Post by davidbo on *EXCEPTION* [ProsessorLoadWatchdog] codesys 3.5.11.40
CODESYS Forge
talk
(Post)
Under Application->"Task Configuration" you can find your task double click on that and you will see a fane to the right. You find the watchdog enable switch it off or increase the time
Last updated: 2025-11-17
Post by taqamert on CANopen PDO Issue with Pressure Sensor in Codesys
CODESYS Forge
talk
(Post)
Hello everyone, I am using an IFM CR0303 model PLC, which has a tilt sensor and a pressure sensor connected via CANopen. Both sensors are from the same brand (ATEK). I can read data from the tilt sensor without any issues, but I am unable to read data from the pressure sensor. I have added the EDS file in the PLC configuration and adjusted the node-ID settings. When I check with the PCAN-View application, I can see that the selected PDOs are coming through, but the data is not reaching the Codesys side. What could be the issue, and what can I try to resolve it? Can anyone help me?
Last updated: 2024-10-22
Post by alexgooi on Function Blocks and arrays of function blocks
CODESYS Forge
talk
(Post)
Hi Jack, I think you have to look at a FB in a different way. A Function block (Class) can contain its own data. In other words don't define loose data in your GVL, but define a instance of a FB (Object) in your GVL: Example: Function_Block Basic_Class VAR_INPUT Open_Command: BOOL; END_VAR VAR_OUTPUT Opened: BOOL; END_VAR if Open_Command then Opened := TRUE; ELSE Opened := FALSE; END_IF Global Variables Objects: ARRAY[1..100] OF Basic_Class; //Here you ar defining you objects END_VAR In your code you can directly acces the data and couple it to the IO: GVL.Objects[1].Open_Command := %IX0.0; %QX0.0 := GVL.Objects[1].Opened; //To call the code itself use: GVL.Objects[1](); If you want to take this a step further you are also able to add methods and properties to the FB/Class end thereby creating a OOIP program
Last updated: 2024-02-15
Post by aria13 on Has anyone fed ESP32 sensor data into CODESYS (via MQTT/Modbus)?
CODESYS Forge
talk
(Post)
Has anyone tried sending live sensor data from an ESP32 into a CODESYS runtime (for example via MQTT gateway or a Modbus bridge) to trigger PLC logic? I was reading an ESP32 → MQTT tutorial (https://www.theengineeringprojects.com/2021/11/esp32-mqtt.html) that shows how easy it is to publish sensor data from an ESP32, and I’m wondering how practical that is when tying the stream into industrial control software like CODESYS. I’ve also seen Arduino forum threads where people relay sensor streams to MQTT brokers and Raspberry Pi projects that bridge MQTT→Modbus, so I’m mainly curious about real-world issues: reliability, message latency, and simple patterns you’d recommend for safe PLC integration. Any tips, examples, or gotchas from folks who’ve done this?
Last updated: 2025-10-29
Post by tk096 on High Cycle Times for SoftMotion_PlanningTask when using AxisGroup
CODESYS Forge
talk
(Post)
Hi, under this circumstances the performance of a Raspberry Pi 4 should be sufficient to run a Softmotion robotics application. A closer look at the project would be required. Maybe you could contact the codesys support? Usually it is recommended to run the planning task cyclically every 2ms with task priority of 0 on a dedicated core. In the task configuration you can have a look at the average and maximum execution time of the planning task. You could use the function block SMC_TuneCPKernel (https://content.helpme-codesys.com/en/libs/SM3_Robotics/Current/SM3_Robotics/POUs/AdministrativeConfiguration/Computation/SMC_TuneCPKernel.html) to define suitable values for the parameters 'fSyncBufferDuration' and 'fPlanningInterval'. However, as previously mentioned, the performance of a Raspberry Pi 4 with realtime patch should be sufficient. The 'fPlanningInterval' parameter specifies the maximum planning step width in seconds. The cycle time of the planning task should not permanently exceed this value. A higher value reduces the computational effort, but can lead to a violation or no full utilization of the set limit values for velocity, acceleration and jerk. From a starting value of 0.016 seconds, the value should be increased gradually until the performance is acceptable. The parameter 'fSyncBufferDuration' specifies the size (in seconds) of the buffer between the planning and fieldbus task. The cycle time of the planning task must not exceed this value at peak times (this will lead to the error SMC_CP_QUEUE_UNDERRUN). A higher value can compensate for peaks in the cycle time of the planning task. At the same time, however, this also increases the latency for executing interrupts and aborting movements.
Last updated: 2024-03-22
Post by hoatran on Use third party actuator with IO-Link Master (IFM)
CODESYS Forge
talk
(Post)
The generic sensor FB is for controlling the sensor via its cyclic input (PDI) and output (PDO). In this case, ifm raw cyclic input and output data are WORDs (16 bits total) The PDO data from the Buerkert unit are SINT (8 bits) In this case, I would use the unpackword fb from the CAA memory library to unpack the valve feed back value into the appropriate location.
Last updated: 2024-04-23
Post by voffi on Converting UINT into bytes and converting 2Bytes into UINT
CODESYS Forge
talk
(Post)
There are some ways. One is to use SHR and SHL and it depends on your byte order in the data array. For Motorola byte order: PROGRAM PLC_PRG VAR u : UINT; byte_array_in : ARRAY [1..8] OF BYTE := [16#11, 16#12, 16#13, 16#14, 16#15, 16#16, 16#17]; byte_array_out : ARRAY [1..8] OF BYTE; END_VAR u := SHL(TO_UINT(byte_array_in[2]), 8) + TO_UINT(byte_array_in[1]); byte_array_out[1] := TO_BYTE(u); byte_array_out[2] := TO_BYTE(SHR(u, 8)); If it's Intel byte order just change 1 and 2 in the array indexes.
Last updated: 2023-12-07
Post by mani-i4point0 on Codesys (Ethernet IP Scanner ) and Python (Ethernet IP Adapter)
CODESYS Forge
talk
(Post)
Hi, I am currently developing the software to establish the communication and data transfer between Python Module as a Ethernet IP - Adapter coding is running my laptop and Codesys as a Ethernet IP scanner in the resperry PI hardware. I am trying to look for some available recourses online, Can anyone suggest me to develop this function in Codesys and Python ? Best Regards, Mani
Last updated: 2024-09-24
Post by dagsupport on CAA SerialCOM - hCom Reset max value 1023
CODESYS Forge
talk
(Post)
Hi everybody We are currently working on a project with an RS232 serial COM interface and using the CAA SerialCOM library. We have it working fine reading and writing data, although we have found an issue we cannot resolve and any suggestions would be helpful. We have noticed that after a while the RS232 stops working. We have tracked this down to the HANDLE hCom keeps increasing and when this reaches 1023 the COM returns an unknown error "5003". Is there a way to reset this hCom reference? Thanks Richard
Last updated: 2024-03-22
Post by shaun on GAMP 5 and 21 CFR Part 11
CODESYS Forge
talk
(Post)
Good day I have been asked to do a project. It is for a pharmaceutical application and data needs to be logged. The spec calls for the control system to comply with GAMP 5 and 21 CFR Part 11. From what I can find online it's got to do with electronic records and validation. Has anyone developed any software using this or are there codesys librarys that can make my life easier in writing this code
Last updated: 2025-10-22
Post by dwpessoa on CNC Jumps G20 - SMC_NCInterpreter and long time to process
CODESYS Forge
talk
(Post)
I am studying and developing a Softmotion+CNC system for a machine that executes multiple pieces. The G code program is written by the machine operator and each cycle execute 1 piece. The programs are large, exceeding 1000 lines and using up to 8 axes (X, Y, Z, A, B, C, P and Q). The machine needs to run cyclically, executing N pieces (selected by the Operator)... so I tested it using Looping and counters (G36 G37 and G20) and it worked, but it takes a long time to process, and the more pieces I need, the longer the processing time and this is totally impracticable. I found this solution which was very good, and for a few cycles it works well, but for 99999 pieces of a program with 1000 lines, it doesn't work very well... Another solution I tested is to maintain the interpolator with an automatic restart, that is, I load the program without looping (without G20) and give it another start as soon as it finishes. This partially resolved it, but there is still a delay in processing SMC_NCInterpreter in each restart :(. Another solution I thought of is to manually create the SMC_GEOINFO structure and then reuse it, avoinding the Interpreter, but reading the documentation and checking the structure filled by standard blocks, I noticed that there doesn't seem to be a "JUMP" function in the structure! In other words, the SMC_NCInterpreter actually keeps copying and copying the program section for each jump (G20)... If I repeat a 10-line program 1000 times, I will have a structure with more than 10000 lines... possibly this is the cause of take so long to process. Has anyone ever had a problem like this? I believe the same thing happens with typical applications with manipulator robots using Codesys in continuous cycles, and I would like to know if there is any solution, or even if I am misinterpreting the G20 question in SMC_GEOINFO. Thanks!
Last updated: 2023-09-20
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.