Post by kareem-pt on Velocity is too low even though correct value is reported
CODESYS Forge
talk
(Post)
Hello, I'm playing around with a single axis. I've setup scaling and set the drive to move 360 degrees in the commissioning tab. The axis does move 360 degrees, but it moves much slower than the 360 degrees per second that I set for the velocity. It seems to be about 3 times slower (taking about 3 seconds instead of 1). This is despite the set and actual velocity both being displayed as 360. The acceleration, deceleration and jerk are all set to very high values. I'm just running this on my PC, using demo mode (no license purchased yet). I've attached a video showing the problem. Does anyone know what the problem could be? Thanks
Last updated: 2025-06-06
Post by george32 on Learning ST in an object-oriented way.
CODESYS Forge
talk
(Post)
Dear all, I am currently creating a program in the ST language. Because the program is starting to grow nicely I would like to switch to a more object-oriented way of programming. (Like for example in Python). By surfing the internet I found out that Function Blocks is the best method for this. Now I would like to delve further into this, with all the possibilities that Function Blocks have only I cannot find a clear course, explanation of what everything is around the function block thing and how to approach everything. I find the standard documentation around Function Blocks rather abstract and the examples are minimal. Therefore I am looking for a page/course/document explaining object oriented programming in Codesys (or other PLC programming environment). Do you have any recommendations on this?
Last updated: 2025-06-10
Post by viksym on How to get the motor scaling value from code
CODESYS Forge
talk
(Post)
Is there a way to see what value is set as the "Work travel distance per motor rotation" that is set in the Scaling menu of the axis ? I am working on my own homing function block for sensorless (hardstop) homing and I want to make it be universal between different axes with different motor's scaling for distance per rev so I need to know this value from the axis itself. I know I could do it by just creating an input variable for the function block but I'm leaving that option as a last resort.
Last updated: 2025-06-12
Post by pauloricardoss on Codesys Control Raspberry PI 4.10.0 - missing 'Update Raspberry PI' option
CODESYS Forge
talk
(Post)
I am having the same problem. 'Update Raspberry PI' disappeared from the 'Tools' menu. Using RaspberryPI 3B+, Codesys V3.5 Sp21 + RaspberryPI Package 4.16. I installed the package as Administrator, executed Codesys as Administrator I also tried to connect using the deploy (even with ssh and everything enabled on the RaspberryPi I received password denied). I used in the past the same equipment with Codesys V3.5 Sp18 and RaspberryPI Package 4.08, it was really easy. (I also did a brand new RaspbianOs installation to make sure that nothing affect the connection). Anyone, knows how to fix it? Thanks,
Last updated: 2025-06-13
Post by timvh on Dynamically enabling/disabling Modbus slave devices in runtime (performance issue with timeouts)
CODESYS Forge
talk
(Post)
As far as I remember, the Reconfigure functionality doesn't work for Modbus devices. But... Each Modbus device in your device tree has a name. You can set the property "Enable" of this device to FALSE to stop communicating with it. So if one of your Modbus Slave devices name is "MbSlave1" in the device tree, then in your code you can set the Enable to FALSE to let it stop communicating: MbSlave1.Enable := FALSE; Please let us know if this worked on your controller with your application and your CODESYS version. Alternatively you could use the ModbusFB library. See: https://forge.codesys.com/prj/codesys-example/modbus/home/Home/
Last updated: 2025-08-13
Post by rer-code on Codesys 3.5.18.60 – Application Loss and Persistent Data Corruption
CODESYS Forge
talk
(Post)
Hi, I’m currently managing over 50 PLCs running Codesys version 3.5.18.60. At seemingly random intervals, some of these devices experience a failure where: All persistent variables are lost. Attempting to log in results in the message: “The application does not exist on device. Do you want to create it and proceed with download?” The log shows: “Loading retain-data/bootproject failed.” From what I’ve gathered, this may be due to a corrupted persistent data file, but I’m not entirely sure how to confirm or resolve this issue. If anyone has encountered something similar or has suggestions for troubleshooting or preventing this, I would greatly appreciate your input. Best regards
Last updated: 2025-08-19
Post by jzhvymetal77 on VarAccGetAddress does not return the correct address for TYPE_ARRAY or TYPE_USERDEF.
CODESYS Forge
talk
(Post)
VarAccGetAddress does not return the correct address for TYPE_ARRAY or TYPE_USERDEF. When you use VarAccGetNode, it returns a proper IBaseTreeNode if you provide the full path of an array element or structure element, and it even provides the correct data type. The problem is that with TYPE_ARRAY, it returns the start address of the array rather than the indexed element. With TYPE_USERDEF, it only returns the offset of the element instead of the actual address. This causes many issues with nested structures or arrays of structures, since it requires manually calculating the address based on the parent IBaseTreeNode. See attached image and example.
Last updated: 2025-08-28
Post by em1681 on Modbus RTU over 750-652
CODESYS Forge
talk
(Post)
Hi, It's my first time operating in Codesys 2.3, but I have done a good amount of Codesys programming, so I'm a little familiar. I haven't done a lot of RTU, but a lot of Modbus TCP. I don't have the PLC in my reach at the moment, but I'm trying to be a little ahead. We're adding the 750-652 module to read energy from a flowmeter over RTU. There will only be 1 slave. I attached pictures of my current hardware, PLC code, the register datasheet from the slave and the only modbus serial library I seem to have available. I'm uncertain if this will work. Any help or clarification on how things work will be greatly appreciated. Thanks in advance.
Last updated: 2025-09-01
Post by pernockham on Control for linux SL, 4.14.0.0 -> 4.15.0.0 breaks web page access. URL requires authentication
CODESYS Forge
talk
(Post)
I have a problem which I have identified with a device-update from 4.14.0.0 to (4.15.0.0-4.17.0.0) where the newer versions will stop any local access to the internal web page with the browser responding "The requested URL requires authentication". Setting the device back to 4.14.0.0. the web page will respond. Access to web page through Automation server is possible also for the newer version, but not "local" access. Runtime (Codesys control for linux SL) is on 4.17.0.0. I have tried to manipulate settings for 'Access-Control-Allow-Origin' '*' always; through nginx (normally a proxy_pass to localhost:8080). Also tested bypassing nginx by accessing 8080 directly with the same result.
Last updated: 2025-09-08
Post by gseidel on Using an Axis of an Axis Group in Torque Conctrol
CODESYS Forge
talk
(Post)
Hi manuknecht, the axis group currently always writes the axis set torque values. If no dynamic model has been configured for the axis group, then the set torques are written to 0. The solution for your use case is to call SMC_GroupUpdate [0] before you call SMC_SetTorque on the axes. This way, the axis group will write 0 to the set torques in the call to SMC_GroupUpdate(), and SMC_SetTorque then will write the desired set torque. Best regards, Georg [0] https://content.helpme-codesys.com/en/libs/SM3_Robotics/Current/SM3_Robotics/POUs/AdministrativeConfiguration/Computation/SMC_GroupUpdate.html
Last updated: 2025-09-09
Post by durallymax on Persistent Vars
CODESYS Forge
talk
(Post)
Looking for a better way to manage Persistent Variables. We tend to have local vars in our FBs that need persistence through downloads as the systems are updated/altered on a regular basis. Retain would suffice if we had an easy mechanism to backup and restore like we can with Persistent variables and recipes. Although not having to remember that step with Persistent variables is preferred. We're running into issues with persistent storage capacity (WAGO PFC200) using the Persistent variable list (and adding all instances). It appears there are many ways to handle this, some with recipes, some with files, others with application manager. Is there a solution that exists that is as simple as declaring as Persistent and managing elsewhere? Or do we need to move onto periodically writing CSVs?
Last updated: 2025-09-22
Post by alexgooi on Licensing info not available.
CODESYS Forge
talk
(Post)
Dear Forum I have the following config: Codesys_IDE 3.5.20 Codesys_Virtual_Control 4.13 Codesys_License_Server 4.13 I know these are not the newest versions, but in my mind these should work. I have the same problem here. I have the license server installed on the host, and in the docker container(Codesys virtual control) I'm able to ping the license server. In the /conf/codesyscontrol/CODESYSControl_User.cfg I have added the following config: [CmpCodeMeter] EnableNetLicenses=1 LicenseServer.1="ip address of the host" I have tried it via the wbm web-page. I can create new license containers over there, but still no luck. I also have tried to run the docker container with the -s "server_IP" command. I have searched for some tutorial's but I couldn't find it. If anyone has some clue or can give me a push in the right direction it would be very very welcome!
Last updated: 2025-09-29
Post by alexgooi on Licensing info not available.
CODESYS Forge
talk
(Post)
Thank you for the response, The empty softcontainer does not become visible unfortunately, but I think I can get that back to working. I think I'm misunderstanding something. You are pointing to the Softcontainer number and the ticket code, I thought that I needed to fill in the virtual control containers serial code is this a misunderstanding? And if this is indeed the case, how is the link between the server (softcontainer) and the Codesys control docker container made? If I have multiple Codesys docker containers running on the same docker server, how is the correct license distributed to the correct Codesys runtime container?
Last updated: 2025-10-02
Post by ranadheer on Implementation of IEC-104
CODESYS Forge
talk
(Post)
Hi Everyone, As we didn't have client for IEC - 104 - only server server is available , so because of that we are trying to make establish the communication between the external simulator as a Client and codesys itself as a server. We are looking for the variable behavior from CODESYS has to change according to the message triggered by the CLIENT (we are using simulator Application like Redisant). We are able to see the log data as the status of triggering the SCS from Client received to the Log data of the codesys device(attached screen shot of it) and in simulator panel we had set the details to trigger the data from Redisant to Codesys. Current Status: The project builds and runs successfully, but I need guidance on how to connect this to an external IEC-104 simulator for testing and visualization by using demo mode.
Last updated: 2025-10-14
Post by ranadheer on Implementation IEC-104
CODESYS Forge
talk
(Post)
Hi Everyone, As we didn't have client for IEC - 104 - only server server is available , so because of that we are trying to make establish the communication between the external simulator as a Client and codesys itself as a server. We are looking for the variable behavior from CODESYS has to change according to the message triggered by the CLIENT (we are using simulator Application like Redisant). We are able to see the log data as the status of triggering the SCS from Client received to the Log data of the codesys device(attached screen shot of it) and in simulator panel we had set the details to trigger the data from Redisant to Codesys. Current Status: The project builds and runs successfully, but I need guidance on how to connect this to an external IEC-104 simulator for testing and visualization by using demo mode.
Last updated: 2025-10-14
Post by jmohre on External file with relative path
CODESYS Forge
talk
(Post)
I try to add a simple text file to my PLC application, so that is download everytime the application is downloaded to the target. What I did is to add an external file to the application and this works perfect as long as the external file location does not change. It looks like the external file path is stored absolute in project. But if different users work on the project they may have different locations where for their working directory. Is there an option to store the external file path relative e.g. to the project file? Or does s.o. know a different solution to add a text file to application in order to download automatically with the application? Thanks
Last updated: 2024-01-04
Post by matt-s on HMI Pushbutton/Move Instruction
CODESYS Forge
talk
(Post)
I am having an issue where the manual start/stop push buttons on the HMI are supposed to take the pumps/blowers out of auto. The logic I have attached works for the pumps, but not the blower. From what I can tell it is the exact same logic, but it is not writing a 0 to the Auto PB variable. Attached is the logic, cross reference list to show nothing else is writing to it, and the HMI screen. Any help? Am I missing something? I am using a Groov Epic PR1, my software version is 3.5 SP19 Patch 5 32 Bit.
Last updated: 2024-01-25
Post by ewi04 on How to upload application file to remote controller (offline) ?
CODESYS Forge
talk
(Post)
Hi, I am looking for a good way to update a decice remotely. The devices are distributed worldwide and have normally no connection to the internet. The CODESYS Automation Server can't help here. So I want to update the decices via USB stick. I have written my own code* to update the files that are created with ‘Create boot application’. But sometimes strange things happen: visu elements are present, but are not found the application is no longer registered and therefore no longer starts I have not yet found out why these errors occur. Has anyone had similar problems or found a better way? Is there perhaps a CODESYS library or something else? Many thanks! *the code deletes the directories on the device and copies the new directories from the USB stick while the system is running (goes without saying)
Last updated: 2024-02-05
Post by alexgooi on Is it possible in the log to see previous shutdown
CODESYS Forge
talk
(Post)
Hi DavidBo, In general Codesys is used to control equipment and an exception is the worst thing that can happen in your installation. If you cannot prevent the exception from triggering, you could implement a Try catch statement, with this solution your controller keeps on running and you are able to handle the exception. __TRY //This statement will trigger an exception Result := 4/0; __CATCH(exc) //Handle the exception HandleException(exc, strExceptionText => strExceptionText); // From the Codesys help file //Create a log file //-------------------------------------------------------- __ENDTRY What you also could do is implement implicit checks, these functions cover most of the exceptions (like dividing by zero) See picture But in general avoid a complete controller shutdown!
Last updated: 2024-02-09
Post by karol-abktech on Raspberry and problem with runtime
CODESYS Forge
talk
(Post)
Hi, My problem is with raspberry pi 4 with 2 GB ram,. Install codesys is correct but runtime works only few seconds or I can connect with device few seconds. I can ping raspberry and in system info I can see " !!!! Warning: no runtime license - running in demo mode(~2 hours)" but it is 2 minutes after runtime. When I press Start runtime I have another few seconds when I can connect to raspberry. After this time I couldn't find device. Of course, reapet start runtime works every time on few second. Raspberry is new and works with fresh install raspberry os 32 bit. Where should I start looking for solve of my problem ?
Last updated: 2024-02-14
Post by alexgooi on Codesys licensing explanation
CODESYS Forge
talk
(Post)
Dear Forum, We are currently switching to a native Codesys controller, and I'm currently trying to determine the correct license. I have a question regarding the Modbus instances. With the Standard S license this is set to 4 (See picture). In our projects we are using a lot of communications to Modbus servers using a Codesys Controller, for this communication I'm using the ModbusFB library (supplied by 3S) (see picture). In my project I would like to use more than 4 instances of the ClientTCP FB. My question is, is this now capped at 4 possible connections with the standard S license. Or do these function blocks have a different relation with the license? Some clarity on this topic would be very welcome. Thank you in advance
Last updated: 2024-02-15
Post by riccardo on Web Browser special tools errors
CODESYS Forge
talk
(Post)
Goodmoning everyone, I hope a codesys tecnichian will see this post. I serched on the forum and I found many topic about this tool but very few reaplies. I am tring to use the Web Browser tool, but it doesn't seem to work properly. I put several links in several forms: https://google.com http://google.com/ http://www.google.com http://www.google.com/ http://www.studiojomega.it/ . . . https://192.168.1.101/u-os-app-codesys/application/visualization/webvisu.htm But I obtain always errors; mainly 400 and 404 and in the normal visu this message appears "www.Google.com has refuse the connection". Is the codesys browser able to work as every other browser or has it some limitation? There is some particular precaution to consider when I pass the link to the codesys browser? Thanks in advance, Riccardo
Last updated: 2024-02-29
Post by nmcc on Viewing PDF in WebBrowser Visual Element
CODESYS Forge
talk
(Post)
I am trying to show a PDF in a WebBrowser element. I have the file saved to the drive of the HMI/PLC. I am linking it in the URL parameter of the WebBrowser using the following directory link. 'http://localhost:8080/$$sdcard$$/FileName.pdf'. This allows for the program to download without any errors. When I navigate to that screen it is just a white box and nothing shows. I attempted putting the same link in the show parameter and I get a loading icon on my cursor when monitoring the HMI with my PC. Any help is appreciated. Thank you.
Last updated: 2024-02-29
Post by mp9876 on Device logon problem following fresh install
CODESYS Forge
talk
(Post)
Yes it had been the case I believe as I have seen that message regarding they were not the same. I had update the device though to match them and that still did not fix the problem. I gotta say I wanted to get out of that situation and attempted a lot of things and then I did two things at the same time that fixed my problem: Wiped the 64 bit version and installed the 32 bit version Installed latest SP20 I wish I knew which one of these actions fixed the problem but now I gotta catch up on this IDE learning; it's been quite a learning experience I have to say! Thank you very much for your time and advice; much appreciated!
Last updated: 2024-03-19
Post by struccc on Release SP20 - Changes in behaviour?
CODESYS Forge
talk
(Post)
This... is not very practical for me - as I have a bunch of different classes - it's just doesn't seems to be very practical to define a NULL for each of them... Something like this I use in parameter definitions. For example: VAR_INPUT refVFD_Drive : REFERENCE TO FB_VFD_Drive := GVL_DUMMY.Dummy_VFD; END_VAR I use this to prepare objects for code I don't control: Typycally visualizations - had many troubles with references set on the fly, right before opening a corresponding visualization... And yes, the instance in GVL_Dummy reports itself as "Fake", so it does not influence the actual application at all. Actually this way I could invalidate a reference, just to set it to a "Dummy" instance.
Last updated: 2024-03-25
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.