Post by climblinne on OPC UA Method - How to wait for result?
CODESYS Forge
talk
(Post)
Hello, I am already able to run an OPC UA method in Codesys. Now my question, how can I interact with other tasks (e.g. read an SDO from EtherCAT and return it by the function)? The OPC UA method seems to be called only once (I tried to return BOOL or UINT values). Up to now I only found to do a while loop to wait for the result of the other task. Is there a better way to do it? Is this the way OPC UA functions should be used (for "not too long" function calls) or should I use another mechanism (method: Start, event: Finish, method: getResult)? Regards
Last updated: 2025-01-13
Post by peterkcontrols on TargetVisu started in windowed or not full screen
CODESYS Forge
talk
(Post)
Hello, I am using Codesys on an industrial pc with a single monitor. I would also like to have a separate vision software running on the PC and would like to display it half screen. When I run the soft PLC the my visualization screen appears full screen, I would like to be able to set the size of the visualization screen so I can display other software on the monitor. Is it possible to set the width/height of the targetVisu? Anyone try something similar? I would like to avoid having to put it on a Virtual Machine. Thank you
Last updated: 2025-02-26
Post by peterkcontrols on Copying 2 byte word to output
CODESYS Forge
talk
(Post)
Hello. I am using codesys 3.5. I would like to know if it is possible to set a variable to an output without declaring in. I have defined a STRUCT and within this struct I have a Struct for inputs called I and a struct for outputs called O. I have declared a variable of the type of this Struct, I would like to set or alias the value in this variable to an input/output value of an IO block that has a module on the ethernet tree. Is it possible to copy the contents of %IW0 -> STRUCT.I ? The size of both of these is 2 bytes. I understand that I can declare a variable with the input like Input01 AT %IX0.0 : BOOL; However how can I make STRUCT.I.D00 AT %IX0.0? Is this possible? Thanks
Last updated: 2025-03-03
Post by alberto on ExportPLCopenXML is failing
CODESYS Forge
talk
(Post)
I'm trying to export my whole project through the option ExportPLCopenXML. It seems working, but when I'm trying to import the xml I have the following error during the importation process: Object reference not set to an instance of an object. It seems a usual issue with this process that affects to the pointer to user classes inside a procedure. I receive this error for two general functions that have this pointer declarations in the VAR_INPUT section. It seems a bug into the export/import process of CodeSYS and I couldn't skip it so far. Anyone could help me? Thanks in advance.
Last updated: 2025-03-15
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 micik on Changed Device of Rapberry Pi to MC SL instead of standard SL and cannot connect anymore
CODESYS Forge
talk
(Post)
I have a test application and use Codesys Control for Rasp Pi SL. I made a mistake and updated device from MSL to MC SL, and now if I try to go online with archived version of the project I gett error message that IDs are different between project device and target device. Of course, I can go online if I changed device in the project from SL to MC SL, but I'm not sure that is correct. So I have two questions: 1. What is the actual difference between MC SL device and standard SL device when it comes to raspberry pi 4? 2. What change I need to do on raspberry pi4 side to change device back from MC SL to SL? Thank you!
Last updated: 2025-08-05
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 royw on Profinet library for C#
CODESYS Forge
talk
(Post)
Hi, I don't know if I'm in the right place or if it's even possible... I'm looking for a way to address a Profinet device with Record Read and Write from my own PC. I actually only need very few commands to configure our device. This means setting the MAC address and a serial number. We would like to do this from a C# program. Now we are looking for a library or something similar. Since you can do it from Codesys, I thought there might be a DLL or something similar that you could use for this. As I said, we don't want real-time queries of the cyclic data but only record read/write. Does anyone have any helpful hint? Thanks in advance
Last updated: 2023-12-22
Post by i-campbell on What does CODESYS expect to do when I get such an error message
CODESYS Forge
talk
(Post)
you need to get the addons that the person that programmed it used. I always store an .installation-config file alongside the project. If you have lost that, then it gets a bit of a headache: I think even with SP18 you can hit yes to open it anyway, and it will suggest which addons it thinks are missing, if you double click the yellow "missing-addons" in the status bar. If you know you have the right addons, you can do a "Save As.." and it will write your current addon list to the file, and you wont get the error next time.
Last updated: 2024-01-08
Post by fdmartello on Unable to compare projects containing alarm manager 4.5.0.0
CODESYS Forge
talk
(Post)
Hello. In Codesys version 3.5.19.50 when comparing two projects that have an "Alarm Configuration" obj from the Alarm Manager library vers. 4.5.0.0 the attached error pops up. This originally happened with two projects that I converted from vers. 3.5.17.30 so, thinking it was some conversion issue, I created two clean projects directly in 3.5.19.50 using the Standard Project template and only added the Alarm Configuration objects in them. The result is the same and the only way I found that allowed me to compare them is by deleting the incriminated object in one of the two projects. Has anyone else encountered this issue? Best regards
Last updated: 2024-01-19
Post by fenicklar on Login problem with FileTransfer on Raspberry Pi 5
CODESYS Forge
talk
(Post)
Hello everyone, I'm currently trying to set up a FileTransfer function from a Webvisu to my Raspberry Pi 5 on Codesys 3.5 SP 19 Patch 6. I went in the files CODESYSControl.cfg and CODESYSControl_User.cfg and added : [CmpWebServerHandlerV3] AllowFileTransferServices=1 And it seems to be working. However, I cannot access my several Webvisu without putting my login. That's a problem because one of my webvisu is in kiosk mode on the raspberry itself and there is nokeyboard attached, it's just an information screen, but I can't view it. Is there a wey to enable the File Transfer without requiring to login ? Thank you for your time
Last updated: 2024-03-18
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 jrsantab on Remote connection to ifm PLC & HMI
CODESYS Forge
talk
(Post)
Hello, We are trying to access remotely a PLC (ifm 711S) and a HMI (ifm CR1077). Both are connected to a Teltonika RUT200 router. We establish the connection with OpenVPN Connect and can ping both controllers. We have a laptop that, most of the time, will allow Codesys connection to the controllers, but we have several other computers that are unable to connect, although all of them can ping successfully. We cannot find any difference in the configuration or software installed from one PC to another. If we connect to the router by WIFI, instead of VPN, all the computers work fine. We know that scanning the network will not work over a remote connection, so we input the controller IP directly. Has anyone had a simlar problem and can offer any hint on what to check to meke the connection run?
Last updated: 2024-04-11
Post by jrsantab on Remote connection to ifm PLC & HMI
CODESYS Forge
talk
(Post)
Hello, We are trying to access remotely a PLC (ifm 711S) and a HMI (ifm CR1077). Both are connected to a Teltonika RUT200 router. We establish the connection with OpenVPN Connect and can ping both controllers. We have a laptop that, most of the time, will allow Codesys connection to the controllers, but we have several other computers that are unable to connect, although all of them can ping successfully. We cannot find any difference in the configuration or software installed from one PC to another. If we connect to the router by WIFI, instead of VPN, all the computers work fine. We know that scanning the network will not work over a remote connection, so we input the controller IP directly. Has anyone had a similar problem and can offer any hint on what to check to make the connection run?
Last updated: 2024-04-11
Post by wiresplus on How to Connect / Go Online without re-downloading the project
CODESYS Forge
talk
(Post)
Hello, I have a PLC in a remote location. I can connect to it, but when I use a different PC, it asks me to re-download to the PLC - which will a) interrupt production and b) cause version issues. Codesys being open-source, if someone else has made changes, I need to be able to connect, upload the current project, compare it with mine and then decide what next. Every time I connect, it says Warning: An application 'Application' is currently in RUN mode on the PLC. As there is no matching compile information, this existing application needs to be replaced. Click 'Yes' to download the latest code or 'No' to abort. What am I doing wrong?
Last updated: 2024-04-13
Post by k2saki on CNC Open Source Project / Can I convert my project to text-files ?
CODESYS Forge
talk
(Post)
Hi. I published My CODESYS-CNC Project to GitHub and I set it Open Source Software. Here https://github.com/k-s-saki/RPi_CODESYS_CNC My CNC Project is binary file , using FBD for IPO , so I found it is a little bit hard to work with people on GitHub. (diff / merge ) My question is 1) Is it possible to convert my project ( only POUs is also fine ) into text file ? How? 2) Would it be better to rewrite all FBD/LD into ST and copy them manually to text files? Thanks.
Last updated: 2024-05-16
Post by amy123 on Any guides on using Codesys containers in Docker?
CODESYS Forge
talk
(Post)
I had an issue aswell, I was trying to use docker and got stuck on the specific line ' Downloading https://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe' within install2.sh - which is actually from the https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks, winetricks_selfupdate(). Would love to know if anyone has a known solution. Only other thing I can think is to download winetricks +.net, update the winetricks to point to the downloaded .net? Granted Im not too savy with Docker so I have been struggling on figuring that part out- would love any suggestions!
Last updated: 2024-05-19
Post by alexgooi on FB_INIT in library
CODESYS Forge
talk
(Post)
Dear Forum, I currently have a challenge. I have a library with some communication classes. These communication classes need to be linked to an interface like this: Devices_and_controllers.Comm_Frame.Modbus_GVL_Link.KNX_TCP[Interface_Index] := THIS^; This is executed via a FB_Init() method. When I try to do this in a program this works fine. But when I declare the FB_Init() in the library the FB_Init() method is being called but the link is not made (interface still has the value 0000000000). The Objects and interfaces are defined in the library (GVL), so Iβm assuming the data should be there. When I call the FB_Init method explicitly in the program it also works fine. Whys is this not working when it is all defined in the library? And is it even possible to create a structure like this in Codesys? Kind regards Alex
Last updated: 2024-05-22
Post by zer0g on Modbus Client Request Not Processed
CODESYS Forge
talk
(Post)
I'm using the code bellow which is based on the Codesys example: FUNCTION_BLOCK MODBUS_master_example_ST VAR initDone : BOOL := FALSE; aIPAddress : ARRAY [0..3] OF BYTE := [127,0,0,1]; clientTcp: ModbusFB.ClientTcp; // buffer to read input registers aDataInputRegisters : ARRAY[0..9] OF UINT; // some client requests clientRequestReadInputRegisters: ModbusFB.ClientRequestReadInputRegisters; xExecute: BOOL; END_VAR IF NOT initDone THEN initDone := TRUE; // configure clientTcp clientTcp(aIPaddr:=aIPAddress, uiPort:=502, udiLogOptions := ModbusFB.LoggingOptions.All); // configure clientRequestReadInputRegisters clientRequestReadInputRegisters(rClient:=clientTcp, uiUnitId:=1, udiTimeout:=TO_UDINT(T#1000MS)); END_IF // call the client FB's clientTcp(); clientRequestReadInputRegisters(rClient:=clientTcp,xExecute := xExecute AND NOT clientRequestReadInputRegisters.xBusy ,uiStartItem:=2, uiQuantity:=3, pData:=ADR(aDataInputRegisters[0])); As you can see the clientTCP is called cyclically with the same result.
Last updated: 2024-05-30
Post by ragarcia on How to change login visualization for other visualization after user logged in
CODESYS Forge
talk
(Post)
Hello everyone, I have a web visualization on Codesys and to be able to use the web visualization first an user and a password is requested. After the user logged in, I want to automatically change the visualization to the 'Home' visualization but I am not sure how to do this. In the login visualization I basically have a button with the input configuration to execute the action 'Login' after a click. Once the user is logged in, the visualization is still stuck in the login page and I want to automatically change to Home visualization if the user was succesfully logged in. How can I know the number of web visualization clients connected to my PLC? Thanks in advance
Last updated: 2024-06-04
Post by matt-purcell on Which Lib to use, connect to a socket with URL instead of IP address
CODESYS Forge
talk
(Post)
Hello, I have a new project and I need to connect to a TCP socket using the URL instead of an explicit IP address, myendpoint@mydomain.com Which library is best suited for this? This is for a new enterprise project, the endpoint is a server in a datacenter running some real time application. We have big IP, it will automatically reassign the IP address to the backup server if a crash occurs so an explicit IP won't work for me. I've done this in RS logix, working now to migrate that code over to codesys. Thanks in advance!
Last updated: 2024-06-17
Post by timothyzalusky on Strange Behavior on Raspberry Pi
CODESYS Forge
talk
(Post)
Hello, I am seeing some weird runtime behavior related to the EQ function on a rapsberry pi based system. I have attached a screenshot showing the strange latching I am seeing on the EQ function, and I have not seen this behavior before. I tried freshly restarting the runtime and it has this same behavior. Anyone seen this? I am on 3.5.20 with the latest runtime installed. Basically, as soon as it hits one of those EQ's in the program, it latches effectively locking the output on. Any input from the Codesys team would be appreciated as well as anyone that might know what I am seeing.
Last updated: 2024-06-18
Post by etalp on Eaton XC303 firmware update via USB
CODESYS Forge
talk
(Post)
Hi, I'm struggling with updating my xc303 to firmware 3.5.17. It is possible only via USB port. I've installed proper update files on the USB then plug it into the PLC's USB port and restarted the device. Shortly after LED's on the PLC started to blink, so updating process has started. But after 10 minutes the PLC LED turned off and after all I could't serach for this PLC in Codesys, but could ping it. Could someone eplain to me proper procedure of updating the fimrware in XC303 via USB? Is it neccesary to STOP the PLC switch after pluging the USB?
Last updated: 2025-10-15
Post by imdatatas on Unrecoverable SoftMotion state after switch to PreOp
CODESYS Forge
talk
(Post)
Dear @alimans, Additionally, As far as I know since starting from Softmotion V4.18.0.0 automatic restart behaviour for an axis has been changed for this issue. See below explanation from release notes. "With CODESYS SoftMotion 4.18.0.0, the behavior of SoftMotion axes after a loss of communication to the servo drive has changed. Now, an automatic reinitialization is performed as soon as the communication is established again. Before, an explicit call to SMC3_ReinitDrive had to be performed. An example for a loss of communication is that the cable to one of the drives is unplugged." Regards, imdatatas
Last updated: 2025-10-23
Post by fari on Configure J1939 I/O Mapping via Scripting
CODESYS Forge
talk
(Post)
Hi everyone, With the latest version of Codesys, itβs now possible to import DBC files directly into the J1939 Manager, which is great. However, Iβm trying to achieve the same thing programmatically and canβt find any scripting functions related to import_dbc or any host_parameter that would let me configure PGNs and signal mappings automatically. So far, Iβve managed to add the J1939 Manager and an ECU, and I can pass the DBC database to it, but Iβm stuck when it comes to adding the signals. Has anyone figured out if this can be done through scripting? (Attached is an illustration of what I am trying to accomplish programmatically). Thanks in advance.
Last updated: 2025-10-24
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.