Post by imdatatas on Problem with edge gateway config mode
CODESYS Forge
talk
(Post)
I encountered the same problem. (Windows10 x64 single language OS). As @eschwellinger mentioned, I uninstalled the latest EdgeGateway version and installed version 3.5.20.0. Now, when I right-click and select "Allow Edge Gateway...", Config mode is activated without any error or warning window and I do not need to manually type [CmpEdgeGateway] for EdgeGateway version 3.5.20.0.
Last updated: 2025-02-04
Post by timvh on CoDeSys v3.5: creating libraries for both 32-bit and 64-bit controllers
CODESYS Forge
talk
(Post)
Yes, you are right. I think the help is pretty clear: https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_library_development.html It helps you to find errors in the source code of your library if you want to create a library which is using pointers and you want to use your library on 32 and/or 64 bit platforms.
Last updated: 2025-09-02
Post by mondinmr on What happened to Python?
CODESYS Forge
talk
(Post)
What happened to Python? I’ve just installed version 3.5.21.3 of the CODESYS development environment. I’m coming from 3.5.19.5. What happened to Python scripting! We rely heavily on it for the automatic generation of thousands of lines of code! It seems absurd to me that such an important feature has been removed!
Last updated: 2025-10-01
Post by preimesbergert on Codesys Control for Raspberry Pi 4.10.0.0 - Raspberry Pi OS > 2023-12-05
CODESYS Forge
talk
(Post)
Same issue here: Raspberry Pi 4 Model B HW 1.5 Regardless of the image (tried 32bit / 64bit version from Raspberry Pi Imager- all the "standard version") and with all tested Codesys Control versions (4.2.0, 4.8.0, 4.10.0) and regardless if single core / multicore / 64 bit variant.
Last updated: 2023-12-21
Post by peter-skokanek on Rpi install runtime licence on SP13
CODESYS Forge
talk
(Post)
Hi, I have an older project which has been running for years. Unfortunately I have to replace current Raspberry. I repplaced it by new rpi 3 with newest 32 bit Raspberry OS. I oredered a new runtime licence. When I try to activate it, the connection to target is interrupted immediatelly after press next button in the last step of instalation.
Last updated: 2024-01-08
Post by timvh on Sysfile inuts
CODESYS Forge
talk
(Post)
To prevent ambiguous use of this enumeration value. Let's say another ENUM is available in your project or in another library which has an enumeration value AM_WRITE, then it is not clear which AM_WRITE you want to assign. By this qualified access to the SysFile.AM_WRITE, it is completely clear for the compiler.
Last updated: 2024-01-14
Post by rmaas on Direct Pointers in IOMapping for EtherCAT with IoDrvEthercatLib.ETCSlave_Dia
CODESYS Forge
talk
(Post)
Hi, Im not sure if this is what you mean, but i do succesfully use the IoDrvEthercatLib.ETCSlave.InputData and IoDrvEthercatLib.ETCSlave.OutputData to read from and write to beckhoff DI and DO cards. Very convenient as you can make an FB with an VAR_IN_OUT of type IoDrvEthercatLib.ETCSlave and only have to pass the slave reference... So i am not using .ETCSlave_Diag but .ETCSlave...
Last updated: 2024-02-13
Post by alexgooi on Init Array input on a method
CODESYS Forge
talk
(Post)
Dear Forum, I would like to initialize an array input on a method. When I do this, I get the following error: "The type of ARRAY [1..2] OF BOOL cannot have a default value in this context." I attached a picture for more clarity. Is this simply not possible or is there a different way of tackling this problem? Thank you in advance
Last updated: 2024-02-26
Post by jaspergain on SoftMotion Axes issue
CODESYS Forge
talk
(Post)
Dear, We have an issue with SoftMotion and it's licensing. We don't use SoftMotion in this project. But a SoftMotion license is required by it. The License metrics tell's us there is a -1 Axes. Is there a way to reset this? Delete this? There was a MotionControl device in the project, but we have deleted this. But it stayed at -1. Thanks for you help.
Last updated: 2024-02-29
Post by dhumphries on Attempting customizing menus fails in LADDER environment; due to free CODESYS version ?
CODESYS Forge
talk
(Post)
You get fewer tools when you create a new POU and choose ladder diagram instead of ladder logic diagram. Create a new POU and select ladder logic diagram and you should find the additional tools you are looking for in the toolbox.
Last updated: 2024-03-11
Post by koehler on Codesys 3.5.12 Module not Found
CODESYS Forge
talk
(Post)
Hi there, I am getting troubles with a project. In the Hardware configuration I got some Lenze drives 9400. One of them got as status " Module not Found". Connection are good. ID Node of the Canopen network is also good. I don't find any reason for this status, nor any options to check.
Last updated: 2024-04-17
Post by yannickasselin on Linux ARM64 SL, GPIO Access
CODESYS Forge
talk
(Post)
A bit of work but maybe possible to make your own driver using "CODESYS Control SL Extension Package". Look at the "ExternalIoDrv" example. It is installed in "C:\Program Files\CODESYS 3.5.20.0\CODESYS\CODESYS Control SL Extension Package" when you install the "CODESYS Control for Linux SL".
Last updated: 2024-05-08
Post by pharus on Setup problems with PiXtend
CODESYS Forge
talk
(Post)
Hello all, I have an PiXtend V2L complete kit and installed everything like in the manual. Ive installed Codesys V3.5 S20 Codesys Control for Raspberry Pi PiXtend_V2_Professional_for_CODESYS.package But as soon as i Create a Project, i get a lot of error messages, and i cant find the PLC via Ethernet Thanks a lot
Last updated: 2024-06-19
Post by pharus on Setup problems with PiXtend
CODESYS Forge
talk
(Post)
Hello all, I have an PiXtend V2L complete kit and installed everything like in the manual. Ive installed Codesys V3.5 S20 Codesys Control for Raspberry Pi PiXtend_V2_Professional_for_CODESYS.package But as soon as i Create a Project, i get a lot of error messages, and i cant find the PLC via Ethernet Thanks a lot
Last updated: 2024-06-19
Post by pharus on Setup problems with PiXtend
CODESYS Forge
talk
(Post)
Hello all, I have an PiXtend V2L complete kit and installed everything like in the manual. Ive installed Codesys V3.5 S20 Codesys Control for Raspberry Pi PiXtend_V2_Professional_for_CODESYS.package But as soon as i Create a Project, i get a lot of error messages, and i cant find the PLC via Ethernet Thanks a lot
Last updated: 2024-06-19
Post by pharus on Setup problems with PiXtend
CODESYS Forge
talk
(Post)
Hello all, I have an PiXtend V2L complete kit and installed everything like in the manual. Ive installed Codesys V3.5 S20 Codesys Control for Raspberry Pi PiXtend_V2_Professional_for_CODESYS.package But as soon as i Create a Project, i get a lot of error messages, and i cant find the PLC via Ethernet Thanks a lot
Last updated: 2024-06-19
Post by denizerm on Deploy Control SL cant find Podman
CODESYS Forge
talk
(Post)
I found something that might be the main cause for this: /etc/os-release features the ID=debian entry on my reference system; When i temporarily override my DUTs os-release to feature ID=debian or similar its able to detect Podman. Is there a way to fix this behaviour?
Last updated: 2025-10-24
Post by kalmeyer on Stepper motor control with (SM_Drive_RaspStepper_direct)
CODESYS Forge
talk
(Post)
I AM VERY GRATEFUL FOR YOUR HELP. I HAVE INSTALLED: CODESYS SOFTMOTION VER. 4.19.0.0 AS SEEN IN THE ATTACHED FILE. BUT IT DOESN'T CHANGE THE FACT THAT I GET 6 ERRORS WHEN I HAVE INSTALLED SM_Drive_RaspiStepper_Direct DO YOU HAVE ANY SUGGESTIONS ON WHAT I CAN DO NOW? /KLAUS
Last updated: 2025-11-10
Post by blitz on Can't get SMC_SmoothPath to work
CODESYS Forge
talk
(Post)
Hi @bertus I have a similar situation: just like in your case I can see that rounding works correctly only for the first element, additionally in my case on a path made of lines where I am testing this every second line is skipped. The interpolator jumps to every second iActObjectSourceNo.
Last updated: 2026-01-07
Post by laurits on Max lines of code, codesys CNC ?
CODESYS Forge
talk
(Post)
Hi, yes now its working, to get "QUEUE.bFull" to work, I've had to set the "QUEUE.nNumReservedEntries" to 3. (I tried different values here, only effect for larger values i can see is the the queue capacity gets smaller.) I've noticed the movement is slowing down when it reaches the end of the "fill Up", must be because of the "checkVelocity" can only see the current "QUEUE". Any way of solving this ? BUF : ARRAY[0..20000] OF SMC_GEOINFO; xp : ARRAY[1..100000] OF REAL; yp : ARRAY[1..100000] OF REAL; CASE iState OF 000: IF R_TRIG_bStart.Q THEN iState := iState + 1; END_IF bReady := FALSE; //initialize Queue GEO.dT1:=0; GEO.dT2:=1; GEO.dToolRadius := 0; GEO.dVel := 15000; GEO.dVelEnd := 15000; GEO.dAccel := 2000; GEO.dDecel := 2000; GEO.iObjNo := 0; GEO.piDestPos.dX := 0; GEO.piDestPos.dY := 0; QUEUE.bEndOfList := FALSE; QUEUE.nPastMarker := -1; QUEUE.nWritePos := 0; QUEUE.pbyBuffer := ADR(BUF[0]); n := 0; sMC_CheckVelocities(bExecute:= FALSE); SM3_CNC.SMC_SetQueueCapacity(ADR(QUEUE), SIZEOF(BUF)); QUEUE.nNumReservedEntries := 3; 001: FOR i := 1 TO SIZEOF(xp)/SIZEOF(xp[1]) DO xp[i] := UDINT_TO_REAL(i) * 0.01; yp[i] := UDINT_TO_REAL(i) * 0.01; END_FOR iState := iState + 1; 002: WHILE NOT QUEUE.bFull DO // when the Queue is full, wait until it has been processed by the following FBs n := n + 1; GEO.iSourceLine_No := n; GEO.piStartPos := GEO.piDestPos; // copy last destination GEO.iMoveType := LIN; // generate linear movement GEO.iObjNo := GEO.iObjNo + 1; // calculate number GEO.piDestPos.dX := xp[n]; // generate position GEO.piDestPos.dY := yp[n]; SMC_CalcLengthGeo(pg := ADR(GEO)); // calculate length of object with the help of the standard function SMC_AppendObj(poq:=ADR(QUEUE), pgi:=ADR(GEO)); //append object to queue IF n = UDINT_TO_DINT( SIZEOF(xp)/SIZEOF(xp[1])) THEN // all target positions processed QUEUE.bEndOfList := TRUE; iState := iState + 1; EXIT; END_IF END_WHILE sMC_CheckVelocities(bExecute:= TRUE, poqDataIn:= ADR(QUEUE)); bReady := TRUE; // Send message to smc_interpolator to start 003:
Last updated: 2025-06-04
Post by xcqt on Oop best practice
CODESYS Forge
talk
(Post)
Hi all, I’m currently trying to improve my OOP structure in CODESYS and I’m looking for some input on how others approach this. I understand the basics like inheritance, interfaces, abstract FBs, methods, and properties, but I still struggle a bit with the overall architecture and what’s considered clean or scalable in bigger projects. As an example, I’m working on two different energy meter function blocks: FB_EnergyMeter_MQTT reads data from MQTT (strings) FB_EnergyMeter_Modbus reads data from Modbus (words) Both have their own Update() method and implement the same interface (something like IF_EnergyMeter). Later on, I’ll probably add more meter types, but they should all behave the same from the controller’s point of view. Now, there’s a FB_GridControl block that needs power data from these meters. I see two options here: Define the meter blocks inside FB_GridControl and call them directly (for example fbModbusMeter.UpdateModbus()). Keep the meter blocks outside and pass them into FB_GridControl as interface references, so the control block doesn’t know which specific type of meter it’s dealing with. Option 2 feels cleaner and more flexible to me, but I’m not entirely sure how to handle the data flow in that case. Should I pass the meter instance through an interface reference (REFERENCE TO IF_EnergyMeter)? Or is there a better way to link the external FBs to the control block? I’d like to hear how you structure this kind of setup or see an example from someone who has done something similar. EDIT: I think i need to do something like this fbModbusUpdateInput(wInput:= wWordValue); fbMqttUpdateInput(strInput:= strStringValue); IF bUseMqtt THEN Meter REF = fbMqttUpdateInput; ELSE Meter REF = fbModbusUpdateInput; END_IF fbControl.SetMeter(UsedMeter := Meter); Or am i thinking wrong? Thanks, Thomas
Last updated: 2025-10-16
Post by pernockham on Inheritence of struct,
CODESYS Forge
talk
(Post)
Im looking for a way to define predefined version of the same structures through "extends"/inheritance. What I want to do is best shown with an example: TYPE log_item_val_type : ( BOOL_ := 0, INT_, REAL_, STRING_ ); END_TYPE TYPE LOG_DATA_BASE STRUCT val_type : log_item_val_type; (* value, name etc *) ENDSTRUCT ENDTYPE (* this/below is not possible as I understand from the compiler?? *) TYPE LOG_DATA_BOOL extends LOG_DATA_BASE : STRUCT val_type : log_item_val_type := log_item_val_type.BOOL_; END_STRUCT END_TYPE TYPE LOG_DATA_INT extends LOG_DATA_BASE : STRUCT val_type : log_item_val_type := log_item_val_type.INT_; END_STRUCT END_TYPE etc. for LOG_DATA_REAL and ..STRING. The system will not allow me to "re-define" "val_type" however. Instead I must do the work-around of defining four different types with all fields individually defined. The benefit if I could extend the base item would be that Im (more) sure the structures are identical. In usage I can call in a specific type rather use the base type and assign which type. Usage by pointer/ref to log_data_base would also be easier.. (* Usage: *) log_data : log_data_int := (name, value etc.) (* Instead of: *) log_data : log_data_base := (name, value, val_type).. Is this possible to achieve in some way that I have missed?
Last updated: 2025-03-05
Post by gunstr on CODESYS control on RPi starts, shortly runs, then exits
CODESYS Forge
talk
(Post)
We have been using the Codesys Control for Rasberry Pi for several years in many installations without any major issues. But during summer the problem mentioned above has blocked further deliveries. We have made some minor upgrades to the application but I do not really see why that should have any impact. HW is Raspberry Pi 4B, 2GB OS is Booworm Lite Codesys control is version 4.15 (have just installed a few systems lately with this version) The system boots OK but after exactly 30 seconds Codesys is shut down and becomes unreachable. We have tested several different combinations: Upgrade of the Codeys Control to 4.16 Loading different Codesys applications Changing to 4GB version of the Raspberry Pi One of the test applications together with the 4GB HW seems to be stable, but all other combinations fails. Any suggestion what we can do to resolve is appreciated - this is a real business blocker now. Rgds
Last updated: 2025-09-02
Post by rabaggett on CODESYS control for Raspberry Pi 64 SL errors
CODESYS Forge
talk
(Post)
Hi, I am trying to create a project using a raspberry pi, I have added the modules for the Pi and MCP3008. I have encountered som errors that I don't know how to track down. 1. The GPIOs give preprocessor errors, but I read that this does not prevent compiling. This seems to be true. I can build the empty project with no errors. 2. After adding a SPI master and MCP3008, the preprocessor errors double, but seem similar and the project again builds with no errors. 3. I add a DUT and GVL, with a function, and I get the following errors. They remain even if I delete these things. ------ Build started: Application: Device.Application ------- Typify code... [ERROR] crr: C0032: Cannot convert type 'Unknown type: 'ADR(GVL_Io_17160064_c083_41f8_9e53_208be7537753_HPS_7.Io_17160064_c083_41f8_9e53_208be7537753_HPS_7)'' to type 'POINTER TO IoConfigParameter' [ERROR] crr: C0077: Unknown type: 'GVL_Io_17160064_c083_41f8_9e53_208be7537753_HPS_7.Io_17160064_c083_41f8_9e53_208be7537753_HPS_7' [ERROR] crr: C0046: Identifier 'GVL_Io_17160064_c083_41f8_9e53_208be7537753_HPS_7' not defined Compile complete -- 3 errors, 0 warnings I attach the project. What am I doing wrong? Thanks!
Last updated: 2024-05-02
Post by cmj-icsys on Custom configure tab in device editor
CODESYS Forge
talk
(Post)
Hi everyone, I’m developing a custom CODESYS I/O driver for my company’s device, and I’ve been studying the example projects in CODESYS V3.5 SP20 Patch 5. In the IOMappingExample.project, I noticed that EtherCAT devices provide additional configuration tabs in the Device Editor, such as General, Process Data, etc. However, for custom I/O driver examples (based on IoDrv), the Device Editor only shows the default tabs like <devicename> I/O Mapping or <devicename> Parameters.</devicename></devicename> I’d like to create custom tabs or configuration pages in the Device Editor (e.g., “General Settings”, “Communication”, etc.) to allow users to configure parameters in a more structured way. Could anyone explain: How to define and register custom tabs or UI pages in the Device Editor? What tools or SDKs are needed to create UI elements such as combo boxes or check boxes? How to bind those UI controls to device parameters defined in the XML (device description)? Any example, SDK reference, or documentation link would be really helpful. Thanks in advance!
Last updated: 2025-10-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.