Post by andrej on Signing of Boot Application for Raspberry Pi
CODESYS Forge
talk
(Post)
Hello all, I would like to sign my boot application for my Raspberry PI. I generated the X509 Certificate and loaded it to the raspberry. It is successfully displayed as trusted certificate. However, I cannot download and start the Application to the Rasperry, due to a signature mismatch.The error message is rather clear, but I still donβt see how I can fix the issue, since the certificates on the Controller seem to mach the certificate in the user profile. Could you tell me where the error is or which step I am missing. Many thanks and kind regards Andreas
Last updated: 2025-07-17
Post by fedex03 on Read Global Variable from an IoT Device
CODESYS Forge
talk
(Post)
Hello everyone, I am new to the forum, and to programming with CodeSys. I am dealing with IoT device for industry and I should check if a device is able to read/write global variables in an EtherNet/IP Master. Since I do not have an EtherNet/IP PLC, I thought of using CodeSys as a softPLC. I created a program with a set of global variables (GVL) and a task that increments them. I would like to know if I need to enable any options so that the global variables can be read by IoT devices. My device supports Class 2 Class (Explicit Messaging Connection) communication. Thank you in advance for your help.
Last updated: 2025-07-22
Post by antonz on CoDeSys v3.5: creating libraries for both 32-bit and 64-bit controllers
CODESYS Forge
talk
(Post)
Follow up question: in the Project Settings, under Library Development, there is an option related to this: Check all Pool Objects -> Pointer size to use Options are: * 32 Bit * 64 Bit * 32 and 64 Bit The descriptions and online help suggest to me this is only relevant for checking and showing any incorrect pointer types as an error in the IDE. E.g. using a DWORD to store a pointer value on a 64-bit controller. It would not control the creation of either 32-bit or 64-bit compiled libraries. Is that correct?
Last updated: 2025-09-01
Post by voffi on projects.open not working for file based storage project
CODESYS Forge
talk
(Post)
Hello! Opening a project from a python script given at the CODESYS command line does not work for me with a file based storage project. Example: Running projects.open("test.project", primary = True) works but converting the project to a file based storage project and then give the folder name as an argument to project.open Running projects.open("test.fbsproj", primary = True) does not work. We decided to work with file based storage for the project. Is there a scripting API for file-based storage to e.g. convert it while running the script back or how to open file based storage project with projects.open? Thank you! voffi
Last updated: 2025-09-05
Post by bbmussatto on Connetion with Topcon Opus B3 ECO Full display
CODESYS Forge
talk
(Post)
I have a Topcon Opus B3 ECO Full display and i wanna program it with codesys, but i cant connect it to the display. After creating a new project, i choose the device "Opus B3-B4-B6-3.5.19.50" that is already available in my version of codesys, but i think the problem is that my version of codesys or something else is not the same as the codesys runtime version running on my display. Can anyone tell me how i can see the codesys runtime version on my display? i tried looking in the settings (Daemon > CDS) on the display, but all i see is "N/A" for "Customer Number", "Customer Part Number" and "Customer Serial Number". Can anyone help me make this connection?
Last updated: 2025-10-07
Post by ouzago on ERROR C0138: No matching 'FB_Init' method found for instantiation of VisuClientObjectMgr
CODESYS Forge
talk
(Post)
When I created a new project in CODESYS using the "Standard Project" template and then added a Visualization, I was receiving the C0138 error during compilation. This issue persisted even with a new, completely empty project. A Quick and Effective Solution (My Method): After many attempts, I solved the problem as follows: From the File -> New Project menu, I selected the "HMI Project" template directly, instead of the "Standard Project" template. After creating the project with this template, I added my POUs, Tasks, and programs (e.g., Ladder, ST). Using this method, the project compiled successfully without any errors. So, my question is: are there any other solutions besides this method?
Last updated: 2025-10-07
Post by reinier-geers on Web client
CODESYS Forge
talk
(Post)
Hi, ive got the webclient example. So now i want to use it. Ive got an example. but thats some JSON type. As far i know is JSONe som kind of structure. But thats new for me. I think its posible with get. Can someone help me? This is the link witch explains what to do https://reversed.notion.site/Marktprijzen-API-89ce600a88ac4abe8c2ad89d3167a83e i tried this : sURL : STRING(1024) := 'https://graphql.frankenergie.nl/get/ {"query":"query MarketPrices {\n marketPrices(date:\"2022-01-01\") {\n electricityPrices {\n from\n till\n marketPrice\n marketPriceTax\n sourcingMarkupPrice\n energyTaxPrice\n perUnit\n }\n gasPrices {\n from\n till\n marketPrice\n marketPriceTax\n sourcingMarkupPrice\n energyTaxPrice\n perUnit\n }\n }\n}\n"}'; // URL But thats a bad request
Last updated: 2025-10-08
Post by kevinl on RevPi Connect RS485
CODESYS Forge
talk
(Post)
I figured this out on my own with this logic: usually the Serial port on a Raspberry pi is on /dev/ttyUSB0 then you need to set linux.DeviceFile=/dev/ttyUSB in codesys you then must set com port to 1 so i assumed codesys subtracts 1 from the number and adds this to the filename... (in code it would look like this: var comPort : byte := '1'; linuxDevice : string := '/dev/ttyUSB'; filename : string; end_var filename := concat(linuxDevice, (to_string(comPort-1)); filaname then is /dev/ttyUSB0 RevPi uses ttyRS485 as Serial port so you must remove the last number from the name and set the com port to this number +1 i hope this is understandable ;-)
Last updated: 2023-12-11
Post by sawicpx on CANbus Remapping PDOs During Runtime
CODESYS Forge
talk
(Post)
Hello, I am working on an application where I need to remap PDOs to a different CANopen object during runtime depending on what value is at a specific register. I have gotten to the point where I put the device into Preoperational State using the CIA405.NMT function. I then reconfigure the PDO 180x and 1a0x obejcts usings SDOs to point to a new canopen object on the device however when I go to restart the Device from PREOP to OP using the CIA405.NMT function the device is reset back to the original configuration as per the initial setup. I am wondering is there any way to change the PDOs at runtime is there some more functionaility I can access to do this. Any direction is appreciated!
Last updated: 2023-12-22
Post by davidbo on Does the new license policy means I have to upgrade everything?
CODESYS Forge
talk
(Post)
We have several old project written with 3.5.17 and 3.5.18 and also some older Until now when a customer ordered a product from us. We just installed (we have a tested image) and added a license Now the license policy has changed and we have to buy a License Control Basic S or M However it only works with CODESYS Development System Version 3.5.19.10 or higher Does that mean we have to upgrade all our old products? That is not a simple task as a previous post has explained with weird error messages from CODESYS V3.5. Next we have to do rigorous testing of our applications afterwards. It is very expensive
Last updated: 2024-01-11
Post by timvh on Is it possible to use debug functions such as Step Execution while the PLC ladder is in Running?
CODESYS Forge
talk
(Post)
Yes, it is possible to set breakpoints and use step into / step over (also in Ladder diagram). Yes, the PLC will actually stop, so be carefull with this. How a PLC works is that at the start of the execution of the Task, the Inputs are read, then the code is being executed and then the outputs are written. So if you set a breakpoint, you will not see your analog inputs changing, because the task cycle is interrupted and the inputs and outputs are not refreshed. For detailed information, see: https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_using_breakpoints.html
Last updated: 2024-01-16
Post by dhumphries on No source code available
CODESYS Forge
talk
(Post)
Try using an Ethernet/IP scanner instead of an adapter, I'm guessing the 2 devices you're trying to communicate with are adapters, you have to have a scanner somewhere and Codesys should be a scanner. I don't know why you're getting the error, you should be able to use your Ethernet port as an EthernetIP adapter (although I've never had a reason to try,) but it's probably not what you wanted to do, unless you're connecting to another PLC that is a scanner. Good luck configuring the devices you're trying to connect to, it will be a lot easier if you have an .EDS file instead of starting with a generic module, even with an .EDS it can be tricky getting the communication working.
Last updated: 2024-02-03
Post by dkugler on Toggling Visualizations using HMI Physical Buttons
CODESYS Forge
talk
(Post)
the magic option is named "Use CurrentVisu variable" activate this option in the Visualization Manager an have a look: https://help.codesys.com/webapp/_visu_obj_manager;product=core_visualization;version=3.5.14.0 if your button is pressed, "feed" the string varable VisuElems.CurrentVisu := 'visu1'; with the correct name of the depending visu. alternative: place a frame element at a empty main visu, konfigure all visus to be shown by this frame. With setting the switching variable of the frame to the index value of the depending visu, it will switch to it. Advantage: the visu names are not hardcoded as string in the ladder lodgic. Good luck! Hint: If you have multiple VisuClients(Target, WebVisu,...) all will show the same visu. Independent switching is much more difficult, but there is a example from codesys.
Last updated: 2024-02-13
Post by nmcc on How to address visualization change with button press...
CODESYS Forge
talk
(Post)
Hello all, I am extremely new to Codesys and to programming with these languages in general. I have an HMI panel with 8 physical buttons to the right side of it. I am trying to have these set to change the visualization to a specific screen which I have designed 8 of. I currently have "use CurrentVisu" enabled in the visualization manager. I also have input blocks with all of the buttons being directed to output blocks which I want to have as the switcher for the visualization. Picture is attached for what I have currently. This could be the wrong approach to this issue. Any help is much appreciated.
Last updated: 2024-02-13
Post by nmcc on How to address visualization change with button press...
CODESYS Forge
talk
(Post)
Hello all, I am extremely new to Codesys and to programming with these languages in general. I have an HMI panel with 8 physical buttons to the right side of it. I am trying to have these set to change the visualization to a specific screen which I have designed 8 of. I currently have "use CurrentVisu" enabled in the visualization manager. I also have input blocks with all of the buttons being directed to output blocks which I want to have as the switcher for the visualization. Picture is attached for what I have currently. This could be the wrong approach to this issue. Any help is much appreciated.
Last updated: 2024-02-13
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 mp9876 on Attempting customizing menus fails in LADDER environment; due to free CODESYS version ?
CODESYS Forge
talk
(Post)
Hello, I am attempting to get started here and bumping into this funny issue. I am using this version of CODESYS: ============================== DETAILED VERSION INFORMATION Created at 2024-03-10 ============================== Startup profile: ............................................................... CODESYS V3.5 SP19 Patch 6 OS version: .................................................................... Microsoft Windows NT 10.0.19045.0 .NET version: .................................................................. 4.0.30319.42000 When attempting to customize the menus or toolbar it does not work. The additional commands, Insert TON box & Insert TOFF box, are present in the Customize Menus or Toolbars when re-opening the Customize options but neither the menu or the toolbar gets updated with these. Would also like to add them in the Ladder Toolbox as there are only 9 items in there which does not include the one mentioned above. Due because of the version I am using ? Any assistance would definitely be appreciated. Thank you Mike
Last updated: 2024-03-10
Post by esave on Stepper Drive with Ethercat
CODESYS Forge
talk
(Post)
Hello everybody I am new into Codesys. I have a stepper driver (EM3E-556E) from Leadshine. I want to controll the stepper driver via EtherCat to a ST programm but I dont have any function block or anything that i can use. I only have the XML-File wich I loaded. With it I implemented the drive as a Ethercat slave and now I see these variables. (See picture) I dont know how to controll the stepper drive. And the manufacturer doesnt provide support for me. Can anybody help me or atleast tell me how they would do it?
Last updated: 2024-03-14
Post by mp9876 on Problems with simulation in Window 10
CODESYS Forge
talk
(Post)
Hi Automa, it seems the solution you were bringing up on 2022-04-06 could really help me as I did not remember the password I initially set. My problem though is that I am using Codesys Control Win V3.5 SP19/60 (64 bit) and I cannot locate any of the files you listed up there. I have been looking inside folder: C:\Program Files\CODESYS 3.5.19.60\CODESYS\ and they appear not to be present at all neither in the CODESYS folder or any sub-folders. Uninstalling and re-installing unfortunately does not do the trick. Any idea how I could get out of the ditch on this issue ? Anyone else maybe ? Thanks
Last updated: 2024-03-18
Post by superjojo2002 on Licensing info not available.
CODESYS Forge
talk
(Post)
If support for a containerized CODESYS runtime with a license isn't feasible, then I've considered an alternative approach: I've purchased and activated a "CODESYS Control Basic S" license on my Windows notebook, where I already have the Codemeter Control Center installed. Upon activation, I can see the CODESYS license as active on my notebook. Subsequently, I followed the instructions provided in this link (https://faq.codesys.com/display/CDSFAQ/How+to%3A+Setup+a+Wibu+Network+Server+Access+for+Licenses) to configure the Wibu runtime in the CODESYS container to access my external license server hosted on my notebook by editing the CODESYSControl_User.cfg file accordingly. However, it's worth noting that I'm still receiving a response from the Licensing Manager indicating that the runtime is persistently searching for a dongle instead of recognizing the soft container. So how can I get my runtime licensed now? Any ideas?
Last updated: 2024-03-20
Post by fless on Warning C0564 when compiling CNC project with variables program
CODESYS Forge
talk
(Post)
Hello, we are porting a CNC project from codesys 3.5.16 to codesys 3.5.19. The project has lots of CNC programs with variables. now we get hundreds of messages like this. [WARNING] CNC Test SP19: TestCNC SPS: PLC Logic: Application: C0564: A reference to uninitialized variable varCNC is used for initialization of TestCNC_D. Accessing the uninitialized variable may result in unexpected behavior. The objects program_name_D are implicit generated by codesys. I see no way to generated them after the variables. Is there a way to correct the initialization order? We know how to suppress this warning. But we need a clean solution as the warning already saved us in a other nonCNC project. Attached a small demo of the problem.
Last updated: 2024-03-21
Post by ph0010421 on Stepper Drive with Ethercat
CODESYS Forge
talk
(Post)
Hello That's certainly CiA402. I'll attach a part of the manual for my servos, but the state diagram should be the same at yours. To be sure, get one from your manufacturer. Look at the bits in the StatusWord to see where you are in the diagram, then twiddle the bits in the ControlWord to get you to the next step. Then there are other bits in the StatusWord to tell you 'InPosition' and things like that. From the screenshot, as it mentions only 'PositionProfile' the driver will create the motion profile. So you need to put a target position in here - there should be profile velocity somewhere? Possibly, you need to write these with SDO's? At the minimum, you need to write a value to 0x6081, 0x6083 and 0x6084 (velocity, accel, decel)
Last updated: 2024-03-22
Post by phoward131 on Text List Fallback Value
CODESYS Forge
talk
(Post)
I am relatively new to Codesys and I'm trying to develop an HMI that displays what mode a particular device is in based on an integer value. I am currently using dynamic texts with a text list which works fine but I am looking for a way to display a particular string (ie 'Unknown') when the index doesn't match any of of the indices in the text list. I can enter 'Unknown' in the text property of the text field element which works as expected but it displays the single quotes on the visualization. How can I escape these quotes to simply display the word Unknown? Thanks!
Last updated: 2024-03-22
Post by alexgooi on Modbus writing on value change
CODESYS Forge
talk
(Post)
The way I usally tackle this is by syncing only words (then you are able to use the FB above). If you then want to write a Boolean simply type it like this. Value[1].0 := Bool1; Value[1].1 := Bool2; Value[1].2 := Bool3; Uints have the same number of bits than a INT/WORD so these ones will work as well (they are only represented diffrently). A Real will work but you will loose some infomration in the conversion. If you want to keep the information you can convert 2 words to a float with a function (for example with the IEEE-754 standard) . In this way the syncing to the server is very simple and in the Codesys Program you decide what part of the word you want to use.
Last updated: 2024-04-03
Post by dhumphries on How to determine code size
CODESYS Forge
talk
(Post)
I'm trying to determine which Codesys Control license I need, the Control Standard S has all the features I think I'll need, but the code size is limited to 3mb, I created a simple program with only 1 line of ladder logic and a simple visualization with a button and an indicator. When I generate code I get some messages, one indicates that the total allocated memory size for code and data is 2.1mb. Is this metric the correct size of the code? I question the size because it exceeds the allowable code size for the Basic S and Basic M licenses and consumes 2/3 of the available memory for the Basic L or Standard S license. What tool can I use to estimate the size of code as it relates to the runtime license limit?
Last updated: 2024-04-05
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.