Post by jbcregen on Accessing parameters from a structure or function block with the web interface
CODESYS Forge
talk
(Post)
I have a project with hundreds of OPC-UA variables available on the network. A lot of these variables are used actively in various scripts that run in background in the OS (Linux). I'm experimenting with Automation Server and I have a hard time understanding how the web interface populates its parameters list for a given PLC (<plc details="" parameters="" for="" plc="" 'xyz'="">).</plc> In this page, it looks like the only variables available are the ones that are of a "base" type : bool, TIME, String, INT, etc. All the variables that are nested into function blocks or structures are not available in the web interface, even if they are available to any OPC-UA client. Is this a limitation of the Automation Server or is there something that can be done in Codesys?
Last updated: 2025-12-01
Post by tali on Configuration of disabled/deactivated visu elements
CODESYS Forge
talk
(Post)
would be great to have such fucntionality. Sometimes it is not clear for user which elemetns are blocked and which are not - the greyed out eleemtns are not so different for low resolution / low quality screeens. What I have in my mind as well is to have a possibility to detect the visu Element clicked on and get its Access Rights. If it is blocked/deactivated, the dialog can be rised with INFO 'please login first with proper rights'. It is possible now to have a Mose event Handler ( Examples -> EventHandler) and rise the dialog out of ST (Exapmpals -> ST Dialogs). I am struggling still with getting the separate Visu Element under the mouse and its structure info
Last updated: 2025-12-05
Post by timvh on Version management
CODESYS Forge
talk
(Post)
This depends on what you want to achieve with installing the latest version and how you manage your projects and repositories. Maybe you also want to update your device (right click on it to update) or maybe your device is depending on certain versions of libraries (go to the library manager in your project and download the missing libraries). An option is also to first create a projectarchive of the current project you have before you install a new version of CODESYS. Then you can open this projectarchive in the new CODESYS version. Especially if you install the latest version of CODESYS in a Sandbox.
Last updated: 2025-12-15
Post by gseidel on Can't get SMC_SmoothPath to work
CODESYS Forge
talk
(Post)
Hi bertus, I cannot see any problem in the code you posted. Just some ideas: What is the value of D_ANGLE_TOL? - Do you need the assignment bAbort := NOT bDecoder? Does it help to leave it out? Any errors (e.g. SMC_SmoothPath.Error/ErrorID) or PLC log messages? What if you comment out SMC_SmoothMerge and SMC_LimtiDynamics, is corner smoothing still not working? Is bDecode written from a different task (e.g. visu)? Then I would recommend to assign to a local variable (bDecodeLocal := bDecode) and use that for all FBs. Otherwise, FBs might see different values of bDecode in a single cycle, which will cause problems. Regards, Georg
Last updated: 2025-12-17
Post by eschwellinger on CmpCharDevice blocks gpiochip access on Raspberry Pi 5 since update from SP18 to SP21
CODESYS Forge
talk
(Post)
yes, this is a known issue which will be fixed with 3.5.23.0 .. soll will take some time. You need to switch back the runtime running not as dedicated user, like it was before 4.21.0.0 How to switch back you'll find here. ('Change service user' in the deploy tool) https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_linux_dedicated_user.html to sumerize both problems: 1. missing entries in CODESYSControl_Usr.cfg was the problem on Raspberry PI Runtime 2. Arm64 SL is running rootless by default since 4.21.0.0 ( Pi not by default you need to switch manually if needed due this GPIO restriction)
Last updated: 2026-07-22
Post by dhumphries on Deploy Codesys Control SL to a 'secure' device
CODESYS Forge
talk
(Post)
I have the same problem on a setup where I'm trying to load control SL onto a fresh installation of ubuntu server 22.04 (with sudo privileges,) I've done this in the past several times but only with codesys 3.5.19.x since updating to the new versions I'm having inconsistencies, either I can load the runtime but not login or I can't load the runtime at all. I appreciate there are new releases frequently, but it would be nice if there was a LTS version with some kind of documentation. I'm currently building a VM so I can install version 3.5.19.4 since this was the last version that worked for me. Adding additional versions through codesys installer has been unsuccessful, hopefully a fresh install on a virgin OS will be more successful.
Last updated: 2026-08-10
Post by pernockham on Images not shown in webvisu
CODESYS Forge
talk
(Post)
Two issues. Ive been struggling to get the user management the way I want it. I want to protect the device from unauthorized upload/download, but I do not want login requirement on webvisu. The combination that seems to work is to use "runtime device user management" while keeping the visu user management in "legacy mode"? Initially this seemed to work, but now images are not loaded when using direct access, while they are still shown if I access the webpage via Automation server. Im guessing its connected to the authorization changes? Anyone able to help out? Thanks Also, I read that legacy mode should be avoided, is it possible to use "runtime based visu user management" while keeping direct access to the webpage without login. System is a "Control for linux SL, version 4.20.0.0" Per
Last updated: 2026-04-10
Post by rau00 on Touch Probe 0x60B8 writting
CODESYS Forge
talk
(Post)
Hi erveyone, Rau here, first time asking on CODESYS Forge: When working with my servodrives, a special behaviour is required on dsp402 0x60B8 object, a control that is not supported by MC_TouchProbe. For this reason, I'd like to ask: Anyone knows if there is any way to bypass or change the softmotion axis writting into 0x60B8 object? My main problem is that MC_TouchProbe.TriggerInput.iTriggerNumber only allows to choose between TP 1 and TP 2 (not both at the same time). iTriggerNumber only allows values [0, 1, 2, 3], other values triggers an error in the FB, wether SMC_TP_COMM_ERROR for values [4, 5, 6, 7] and SMC_TRIGGER_OUT_OF_RANGE with any other value. Best regards, Guillem
Last updated: 2026-04-10
Post by cvrettacos-dse on Table Element Scroll Return
CODESYS Forge
talk
(Post)
Hello, I would like to use swipe/pan gestures to scroll a table visualization element (CODESYS 3.5.21.10) on a DSE M810 display. The swipe / pan gesture control works fine, however, I cannot figure out how to reset / navigate to the top of the table again with code. I have tried the Scrolling begin variable, and the visu manager is setting it to FALSE right away but the table doesn't actually scroll back to top. If I check the “Scroll elements with scrollbar” box, then the Scrolling begin variable works perfectly, but now the swipe/pan scrolling no longer works and you have to use the scrollbar. Is it possible to do what I've described? Any assitence you can provide is appreciated. Thanks.
Last updated: 2026-06-10
Post by brouwyka on JSONByteArrayWriter string result incorrect order
CODESYS Forge
talk
(Post)
Hi @TimvH, As discussed in our email contact, your example does not actually test/reproduce the bug I am describing: Adding to the JSON builder on later cycles works fine. Your example works because you do the following: 1. You finish the first cycle (xFirst) with adding an object to the array with 2 fields; 2. When the next cycle is triggered (xAdd), you immediately start with adding another object to that array. This works fine as the last thing you did before #2 was the addition of the array and an object to it. To reproduce the bug you should be doing the following instead, as I showed with the code I shared with my first post: 1. Create the array - save the index that is returned; 2. Add an item, either a primitive or an object, to the array; 3. Add an item outside the array (anything: a primitive, a new array, a nested object, etc); 4. Add another item to the array using the index you saved at #1. You will now see, as I shared in my initial post, that the second item is placed completely outside the root JSON object. This also happens to anything else you try to add after step #4: everything after this point will be added outside the root JSON object: the JSON is completely broken. Important to note is that this not only happens with arrays, but also with nested JSON objects. Once you add something outside of a nested JSON object, you can no longer add anything to that nested JSON object, as that causes the exact same bug. This also applies to arrays of objects, so if in your test you had tried adding a new key-value pair to the first nested object in your array after you created the second nested object, you would also run into this bug. It seems that the JSONByteArrayWriter (I haven't tested the other writers in the JSON Utilities SL library, so I don't know if they suffer from the same problem) simply does not handle any JSON fields that add brackets (so arrays with "[" & "]" and nested objects with "{" & "}") well, and closes them prematurely instead of checking if any later JSONElements in the JSONData's array belong to any of these bracketed fields. After reviewing the objects & functions of the JSON Utilities SL library, my guess is that either the JSONByteArrayWriter linearly goes through the array of JSONElements in the JSONData and only checks the diParentIndex of each JSONElement in direct ascending order, OR if it does use the JSONElement.GetChildren(); method, that this method is either broken and doesn't give all children correctly to the writer. Neither explains why everything completely breaks, and you cannot even add to the root JSON object anymore, however, so there is probably more than just that going wrong in the writer. To me, after a full week of testing and attempting workarounds, this seems like a bug in the library that needs to be fixed by Codesys, as I cannot see anything wrong in the JSONData constructed by the JSONBuilder - this seems purely a problem in the writer.
Last updated: 2026-06-15
Post by jari-koivuluoma on Comparing between SP19 patch 5 and patch 7
CODESYS Forge
talk
(Post)
Hello. Has anyone here used project compare tool across different versions of Codesys? I tried the compare of the title but it does not seem to do much. It lets me choose the project files and then seems to be comparing but no results are ever shown. If the compare tool cannot be used how else would I keep 2 nearly identical projects in sync when the versions differ? On the other hand it might be possible to just have one project but then I would need to use the older codesys with older target device description to develop for devices that have newer device description. Codesys will let me do that but its not recommending it. Any advice?
Last updated: 2026-08-20
Post by kporter on Codesys EtherCAT Driver (CmpEt1000MPD) can't set MAC address
CODESYS Forge
talk
(Post)
EtherCAT is a point-to-point protocol so it doesn't need a unique MAC address. It would be very useful to set the MAC address to 020000000000, the standard address for this kind of application. (The important bit is the 02 at the start of the address, which means locally-administered MAC.) The stock Windows driver can do this for my i210 card. But the CODESYS CmpEt1000MPD driver cannot. The image shows the setting with the Windows driver. If I set all my customers' cards to this address, then I don't need to deal with this when deploying my application. A simple PowerShell script can be used to set the MAC address once when the NIC is installed and the driver is changed.
Last updated: 2026-02-09
Post by konstantin on Lenze i950 Servo and WAGO PFC200
CODESYS Forge
talk
(Post)
Hello, basically the i950 drive support CiA402 Basic and CiA402 Advanced modes. I attached pictures of both mode supported functions. It also support CSP, VL, CSV and CST modes. It seems the homing mode is in CiA402 Advanced mode but how can you not have the homing mode in both modes? It is a vital part of any servo system. If I use the SoftMotion standard demo mode, I can move the servo absolute and relative but cannot home it. But in SoftMotion Light mode, I cannot execute any motion function. Here is the official manual for i950 servo drive - i950 Documentation Best Regards Konstantin Kolev
Last updated: 2026-02-13
Post by gseidel on CAM Motion Recover after STO
CODESYS Forge
talk
(Post)
Dear Mr. Kolev, I'm not sure I understood correctly. But this is my take on your question: When the STO of the slave is triggered, store the current master position (e.g. 225 units) After the reset of the slave error, call MC_SetPosition on the virtual master and reset it to the stored position (225 units) Optionally, before MC_CamIn is restartet, move the slave back to the slave position corresponding to the stored master position. (If you do this, no ramping in will be necessary) Restart MC_CamIn, with absolute master position and absolute slave position. Choose the StartMode that is appropriate for your machine. Best regards, Georg Seidel
Last updated: 2026-02-16
Post by gseidel on Absolute movement controlled by an external encoder.
CODESYS Forge
talk
(Post)
Hi polyautomacao, basically, there are two ways to approach this. My first choice would be to check whether your servo drives supports an external encoder, connect the encoder to the servo and configure the servo accordingly. In this case, you would not need to change anything in the CODESYS application. If that is not an option, you could use SM_DrivePosControl, a drive that closes the position loop in the PLC, and feed it with the external encoder positions. See (0). You can switch your servo drive to velocity control mode (SMC_SetControllerMode) and use SMC_FollowVelocity to apply the fSetVelocity of the SM_DrivePosControl to your servo. The MC_MoveAbsolute can then be performed on the SC_DrivePosControl Hope that helps. (0) https://content.helpme-codesys.com/en/CODESYS%20SoftMotion/_sm_example_poscontrol.html Best regards, Georg
Last updated: 2026-03-04
Post by poliautomacao on Absolute movement controlled by an external encoder.
CODESYS Forge
talk
(Post)
Hello, I made this configuration, I'm moving the encoder value to SM_Driver_PosControl.in.wActPosition. When I make the absolute movement of my PosControl axis, my physical drive axis rotates perfectly, but I noticed that the movement is not followed by the encoder. That is, if I hold the encoder and keep it in position 0, the PosControl axis makes the absolute movement of 314 mm and stops, which is strange because the encoder is at 0. Theoretically, the PosControl axis should accelerate to try to compensate for the movement error. I haven't yet achieved perfect functionality.
Last updated: 2026-03-24
Post by msegon on Send HTML body with Mail Service SL
CODESYS Forge
talk
(Post)
I'm trying to send a mail using Mail service SL. I would like the body to be in HTML format for a nicer look. Which I managed to do, but only if I don't send an attachment. Can someone help me with the settings on how to send an HTML body and attachment? I used the Mail Service SL Example project, the only thing I added in the "Main_PRG" code in line 51 under "SendMailFB" is "mimeType := 1". I'm using Library: Mail Service SL Library Documentation Company: CODESYS Title: Mail Service SL Version: 1.13.0.0 Categories: Application|Utils Namespace: MAIL Author: CODESYS Development GmbH Placeholder: Mail_Service_SL
Last updated: 2026-04-14
Post by cvrettacos-dse on How to reset scroll of a table element
CODESYS Forge
talk
(Post)
Hello, I would like to use swipe/pan gestures to scroll a table visualization element (CODESYS 3.5.21.10) ona DSE M810 display. The swipe / pan gesture control works fine, however, I cannot figure out how to reset / navigate to the top of the table again with code. I have tried the Scrolling begin variable, and the visu manager is setting it to FALSE right away but the table doesn't actually scroll back to top. If I check the “Scroll elements with scrollbar” box, then the Scrolling begin variable works perfectly, but now the swipe/pan scrolling no longer works and you have to use the scrollbar. Any assitence you can provide is appreciated. Thanks.
Last updated: 2026-04-21
Post by vstrom on Codesys v3.5.22.10 - Fail to create a project Archive
CODESYS Forge
talk
(Post)
Hi to all, I've created a project using the File->New Project-> Standard Project command. Then I've add the object "Visualization Manager" and then tried to create a project archive (File->Project Archive->Save Archive), but it fails with the error "Access to the path 'C:\Program Files\CODESYS 3.5.22.10\CODESYS\Common\3hxi4iod.put' is denied". The idicated file don't exist. First time of use of the new Codesys versionù, I've reinstalled the developement software but nothing change. If I don't add the Visualization part, the archive is created, it's seems to be a problem with the HMI part. Any ideas? Thanks
Last updated: 2026-04-22
Post by alexgooi on Network variable stops sending
CODESYS Forge
talk
(Post)
Hi Reinier, What usually works for me is settings it up in the following way: In the sender block make sure that the list identifier is unique for the whole installation (this is only relevant when you have multiple senders in 1 network). When you are linking the NVL to a file make sure that the path to this file doesn't change. In my experience the NVL stops working when you change the working directory and afterwards open the NVL in de Codesys IDE. If this doesn’t apply to you application, you could also try to change the port number, maybe there is an other process making use of port 1202. Kind regards Alex
Last updated: 2026-04-22
Post by timvh on Codesys v3.5.22.10 - Fail to create a project Archive
CODESYS Forge
talk
(Post)
There is an issue with adding the visu styles to the archive with Visu add-on 4.9.0.0 and 4.9.1.0. When you create the projectarchive disable the option to add the style(s) to the archive. CODESYS support informed me it will be fixed with visu add-on 4.10.0.0 (May 26th 2026). An alternative is to start CODESYS as Administrator. Then it will work with styles as well. You could start CODESYS as Administrator by first opening the CODESYS Installer. At the bottom you can select to start the Installer as Administrator. If you do this and then start the CODESYS version from this installer, it will work.
Last updated: 2026-04-25
Post by gseidel on Limit Axis CNC Jerk using SMC_Polynomial_AbsMaxLocs
CODESYS Forge
talk
(Post)
Dear josepmariarams, this (internal) function has been removed with SoftMotion 4.17.0.0. We do not have public functions to compute the extrema of a polynomial. On which polynomials exactly did you call SMC_Polynomial_AbsMaxLocs? (Maybe if I understand better how you limit the jerk I can come up with an alternative.) There is no functionality to limit the jerk of individual axes in the CNC. With SMC_LimitDynamics, you can limit the velocity and acceleration of cartesian (X/Y/Z) and additional (P/Q/U/V/W/A/B/C) axes, but not the jerk. And with a quadratic ramp type you can limit the jerk on the path. Best regards, Georg
Last updated: 2026-06-10
Post by williamcorlin on The future and proper use of CAA.BOLT, CAA.SEMA,..
CODESYS Forge
talk
(Post)
I've been moving in the same direction. For new libraries, I'm trying to minimize dependencies on APIs that look like they're being phased out unless the documentation explicitly recommends them. For synchronization primitives like CAA.BOLT and CAA.SEMA, I'd love to see an official replacement or abstraction layer that's guaranteed to remain stable across runtimes. That would make library development much cleaner than relying on platform-specific SysLib* implementations or conditional compilation everywhere. Until there's clearer guidance, my approach has been to isolate the locking mechanism behind a small wrapper interface. If CODESYS changes the recommended API in the future, only that wrapper needs to be updated instead of every library that uses it. It isn't perfect, but it's made maintenance much easier. https://forge.codesys.com/forge/talk/Engineering/thread/e6c20a740e/ https://zapgames.io/
Last updated: 2026-07-14
Post by jebu on OPC UA method calls
CODESYS Forge
talk
(Post)
I'm setting up an OPC UA server in CODESYS. My understanding so far: Calling methods over OPC UA requires an Information Model — the plain Symbol Set / Symbol Configuration alone doesn't support method calls. Is that correct, or is there a way around it? With an Information Model, the Node IDs are auto-generated and I can't set them manually. Assuming that's right: -Are these generated Node IDs stable across builds/downloads, or can they change? -If they can change, what triggers it — renaming a variable/method, reordering objects in the model, a rebuild, a re-download to the PLC?
Last updated: 4 days ago
Post by mankh on Legacy IFM CANopen I/O modules with CR710S / CODESYS 3.5
CODESYS Forge
talk
(Post)
Hi, I am migrating an existing IFM system from CR0020 + CODESYS 2.3 to CR710S + CODESYS 3.5. The existing CANopen I/O modules are: CR9011 CR2042 CR2011 My questions are: Can these legacy IFM CANopen modules be used as slaves with the CR710S CANopen Master? Can their existing EDS files be imported directly into CODESYS 3.5? Are there any known compatibility issues with the old IFM EDS files, PDO mapping, or startup SDO configuration? Has anyone successfully used these modules with a CR710S? If so, could you share the recommended configuration procedure? The goal is to replace the CR0020 with a CR710S while keeping the existing CANopen I/O modules
Last updated: 2 days ago
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.