Post by laurits on Max lines of code, codesys CNC ?
CODESYS Forge
talk
(Post)
Testing Codesys CNC. SMC Interpolator Throws me an error if my code surpass approximately 32000 lines of code. (SMC_CNC_INTERNAL_ERROR) What is the max lines of code SMC Interpoltor can handle ? I've been thinking breaking the code up into smaller sections, but that gives me a lot problems later if i want to use "Blocksearch" etc. I need to run approximately 2000000 lines of code.
Last updated: 2025-06-01
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 programmer on 3.5 P20 hangs - no response
CODESYS Forge
talk
(Post)
hi imdatatas, thanks for your suggestion! I added the process execution to be sure. In the meantime I reïnstall Windows but it dind't help directly. Finally I deleted CodeMeter Runtime Server after Codesys installation. Because this Service was not able to start. And it works (for now) :)!
Last updated: 2025-06-25
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 ustad41 on Cam Blending
CODESYS Forge
talk
(Post)
Hi everybody, I want to execute more than once cam fb simultaneously so blending cam and thus blending velocity without stop motion. But as far I know codesys dont support directly cam blending. But I beleeive there is a some solving. I request your support. But there is important thing is I want to change cam table cam on the fly. For example FlyingSaw application change cutting lenght.
Last updated: 2025-08-01
Post by llewv123 on Codesys Control for RPi and Waveshare AD/DA hat
CODESYS Forge
talk
(Post)
Good day, I am attempting to use a Waveshare AD/DA precision HAT with RPi 4B+, using Codesys Control for Rpi. The waveshare hat uses SPI. I am successfully using the RPi GPIO (inputs and outputs) but do not know how to access the AD/DA channels. Any help would be appreciated.
Last updated: 2025-08-04
Post by r0udy on Adress problem
CODESYS Forge
talk
(Post)
Hi, I 've just started a new project. Translating SoMachine (SCHNEIDER) to CODESYS 3.5.18//DEMO (EATON XC303) I succeed (I think so) to copy FB, STRUCT,... and I also integrated old library. When I build F11, I have a first problem : - Adress out of rang - Overlay It's strange, usually %ML100 > %MB800 Here ONLINE: %ML100 > %MB100 !! I don't understand why ? And idea ? Thanks
Last updated: 2025-08-06
Post by williamjmak1 on Current Visu name without Current Visu Variable
CODESYS Forge
talk
(Post)
Hello everyone, I was just wondering if anybody knows if there's a way to pull the string name of the current visualization without using the current visu variable. I'm working on a project where we don't want web clients to change the current visualization on the HMI of the machine. Thanks!!
Last updated: 2025-08-07
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 ulvis on Where to find the OPC-UA Information Model Repository
CODESYS Forge
talk
(Post)
Now, for CODESYS v3.5 SP21 I can no longer find the "OPC UA Information Model Repository" entry to add as a command. In the "Tools" menu it is listed but greyed out, reporting "Plug-in is not available". So how do I add the Plug-in?
Last updated: 2025-08-14
Post by mqi2r on Newly created texlists wont appear in the selection dropdown
CODESYS Forge
talk
(Post)
For anyone with this issue, you may need to: Open the text list properties (right-click the text list once you create it). Select the Text List tab. Change the Download by option to Visualization. I was fighting this for so long. Once you do that, you should find your text list appears in the drop down when editing a visualisation.
Last updated: 2025-08-19
Post by raamkumar on exple1
CODESYS Forge
talk
(Post)
```structured text VAR bStartButton : BOOL; // Start button input bStopButton : BOOL; // Stop button input bMotorRunning : BOOL := FALSE; // Motor running status END_VAR // Motor control logic IF bStartButton AND NOT bMotorRunning THEN bMotorRunning := TRUE; // Start motor END_IF; IF bStopButton THEN bMotorRunning := FALSE; // Stop motor END_IF; // Output to motor driver (replace with your actual output) // Assume 'qMotor' is a boolean output to the motor driver. qMotor := bMotorRunning;
Last updated: 2025-08-23
Post by wagokurt on CODESYS Visualization M License Fails to activate on Linux SL
CODESYS Forge
talk
(Post)
The fix for this is when you install the control SL license, there is a checkbox for the Visu S license option. You must click this option. The Visu M is technically an upgrade to the Visu S, if this is license is not installed them the Visu M will fail as shown above. Thanks JoJo for the solution!
Last updated: 2025-08-25
Post by timvh on update data/tim
CODESYS Forge
talk
(Post)
Change the actual time of your PLC. How to do this sometimes depends on the PLC you use. Please contact the vendor of the PLC to get this information. Or see the following example for using CODESYS date and time functions: https://forge.codesys.com/prj/codesys-example/date-and-time/home/Home/
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 jcarter on Webvisu Combined Authentication
CODESYS Forge
talk
(Post)
Is there a way to have both a Public No Login Screens with Screens that do require login and File Transfer? My Idea is to have the default page be View Only with a Login Button in the Corner and then Once Logged In you can change settings and download files depending on your user group.
Last updated: 2025-08-28
Post by gunstr on CODESYS control on RPi starts, shortly runs, then exits
CODESYS Forge
talk
(Post)
I now tried to install 4.17.0.0 on a fully clean installations: A brand new RPi 4B Install latest Raspberry Pi OS Lite, Release date 13 May 2025, 64bit run sudo apt update && sudo apt full-upgrade When asked - Select to install the updated version of '/etc/initramfs-tools/initramfs.conf' Install CODESYS Control for Raspberry Pi SL. version 4.17.0.0 Log output: [INFORMATION] Connected successfully! [INFORMATION] Successfully connected to target (192.168.0.197) [WARNING] No supported container engine found on device. You have to install a supported container engine to use Virtual Control. Please contact the Administrator of the device. [WARNING] Error detecting container architecture [INFORMATION] Finished reading device information [ERROR] Error output: /var/lib/dpkg/info/codesyscontrol.postinst: 88: check_legacy_extensionapi_folder: not found [INFORMATION] Standard output: Selecting previously unselected package codesyscontrol. [INFORMATION] Standard output: (Reading database ... 76772 files and directories currently installed.) [INFORMATION] Standard output: Preparing to unpack .../codesyscontrol_raspberry_4.17.0.0_all.deb ... [INFORMATION] Standard output: Unpacking codesyscontrol (4.17.0.0) ... [INFORMATION] Standard output: Setting up codesyscontrol (4.17.0.0) ... [INFORMATION] Standard output: make config rw [INFORMATION] Standard output: set folder permissions [INFORMATION] Standard output: prepare permissions [INFORMATION] Standard output: check legacy extension api folder [INFORMATION] Standard output: create and install daemon [INFORMATION] Standard output: codesyscontrol started [WARNING] Unable to detect Raspberry Pi Architecture. Setting armv6l as default, you can change this through the settings panel. [INFORMATION] Standard output: codesyscontrol stopped [ERROR] Expected exit value of command failed: expected 0, received 1 [WARNING] Error setting the Raspberry Pi Architecture [ERROR] Error installing codesyscontrol If I read the log correctly the control is actually installed but cannot start. I'm running out of ideas how to proceeed now, any suggestions are welcome.
Last updated: 2025-09-03
Post by leandroct on Creating Boot Application not working
CODESYS Forge
talk
(Post)
I did these steps and it worked: - Copied Application.app and Application.crc to the Folder C:\ProgramData\CODESYS\CODESYSControlWinV3x64\ID_of_CPU\PlcLogic\Application\ copied the visu folder content to the folder C:\ProgramData\CODESYS\CODESYSControlWinV3x64\ID_of_CPU\PlcLogic\Application\visu\ Changed by Notepad the CODESYSControl.cfg at the folder C:\ProgramData\CODESYS\CODESYSControlWinV3x64\ID_ of_CPU\ Where is [CmpApp], adding a line with: Application.1=Application
Last updated: 2025-09-04
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 beavel on Opening and saving files with fileOpenSave dialog
CODESYS Forge
talk
(Post)
1 + Replying in hopes of getting an answer here. I would also like to modify the look of the FileOpenSave Dialog. I have successfully adjusted the looks of the User management Dialogs but can not find a library file to adjust this particular one. Any help would be helpful. @thk @eschwellinger @sheberle .
Last updated: 2025-09-08
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)
For reference, it was just me being unfamiliar with EtherCAT in CoDeSys. Anyone with knowledge who would have opened the ScanResult screenshot would have identified that the preceding EK1100 was the device missing in the library. Bottom line - Do something else for a while and then get back at it with fresh eyes!
Last updated: 2025-09-08
Post by rickwot809 on Codesys Soft PLC OPC UA server
CODESYS Forge
talk
(Post)
Enabling Anonymous Login 1. Navigate to 'Device' > 'Communication Settings' > 'Device'. 2. Next, click on 'Change Runtime Security Policy'. 3. In the new window, find and check the box for 'Allow anonymous login'. After completing these steps, you should be able to communicate with the OPC UA server.
Last updated: 2025-09-11
Post by blitz on Latch alarm variables from the PLC runtime
CODESYS Forge
talk
(Post)
Hi, I have a question. Does anyone know a way to change latch alarm variables from the PLC runtime? In the help there is a method described: https://content.helpme-codesys.com/en/libs/AlarmManager/Current/Interfaces/pou-IAlarm3/SetLatchVarValue.html but I don’t know how to use it correctly.
Last updated: 2025-09-23
Post by pernockham on Gateway in China - "Gateway not connected"
CODESYS Forge
talk
(Post)
Gateway and runtime (Control for linux SL) on a debian linux. Thanks for your check. Good to know. I will probably travel there in about a months time so that will give me better possibility for further testing. (on a side note, I dont get mail-updates on forum-subscriptions, need to check the topics manually)
Last updated: 2025-09-26
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.