Post by wildcard on Modbus Client Request Not Processed
CODESYS Forge
talk
(Post)
Hi, does anyone has a solution for this issue. I've the same problem. I've implemented a very simple client based on the Modbus Examples and connected the soft PLC to a Modbus Simulator. PROGRAM ModbusClient VAR initDone : BOOL := FALSE; errorID : ModbusFB.Error; client : ModbusFB.ClientTCP; timeout : UDINT := 500000; replyTimeout : UDINT := 200000; aUINT : ARRAY [0..8] OF UINT; clientRequestReadHoldingRegisters : ModbusFB.ClientRequestReadHoldingRegisters; clientRequestsCnt : UINT := 0; clientRequestsProcessCnt : UINT := 0; ipAddress : ARRAY[0..3] OF BYTE := [10,54,0,72]; END_VAR IF NOT initDone THEN initDone := TRUE; client(aIPaddr:=ipAddress, udiLogOptions:=ModbusFB.LoggingOptions.All); client(xConnect:=TRUE, ); clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout); clientRequestReadHoldingRegisters.xExecute := TRUE; clientRequestsCnt := 0; END_IF clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout, xExecute := TRUE); IF clientRequestReadHoldingRegisters.xError THEN clientRequestsCnt := clientRequestsCnt +1 ; errorID := clientRequestReadHoldingRegisters.eErrorID; END_IF clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout, xExecute := NOT clientRequestReadHoldingRegisters.xExecute); When the system is running I do get the following on the logs: 2024-05-13T10:18:07.443Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= Client.RequestProcessed ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2070 state=Error 2024-05-13T10:18:07.443Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2070 change state Error -> None timestamp=63843421226 2024-05-13T10:18:08.444Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2071 change state None -> Init timestamp=63844421420 2024-05-13T10:18:09.444Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2071 change state Init -> Error timestamp=63845421675 But the errorID is jumping between OK and RequestNotProcessed. Any help is very appreciated which gives me a hint what I'm doing wrong. Thanks
Last updated: 2024-05-13
Post by ofey on Codesys Soft PLC OPC UA server
CODESYS Forge
talk
(Post)
Hi! I'm sorry if this has been asked before. I have tried looking up previous topics regaring this, but even though I'm following tutorials and other posts I cant seem to get this to work consistently. I actually got the connection established on a test project after some trial and error. I only got it to work with the "Anonymous login". But after i deleted the test project and tried to get the same thing to work on another project I cant get it to work anymore. What I'm trying to do: Set up and OPC UA Server using CODESYS with the free soft PLC. I then try to connect to the OPC UA Server with the program "UaExpert". What happens: I get the error Error "'BadUserAccessDenied' was returned during ActivateSession". What I have done in CODESYS: - Added the object "Symbol configuration" and checked some test variables - Checked "Support OPC UA features - In "Communication settings -> device -> Change runtime security policy" I have checked "Allow anonymous login" What I have done in UAExpert: - Found the OPC UA server under "local". (It is showing two servers though, I do not know why. It showed the same when it worked yesterday). Se attachment - Checked "Anonymous" under "Authentication settings in the OPC UA server. I'm new to CODESYS, so it could be something elementary wrong in my settings. Maybe something in the user settings in CODESYS regarding user rights or something?
Last updated: 2023-09-14
Post by aria13 on Has anyone fed ESP32 sensor data into CODESYS (via MQTT/Modbus)?
CODESYS Forge
talk
(Post)
Has anyone tried sending live sensor data from an ESP32 into a CODESYS runtime (for example via MQTT gateway or a Modbus bridge) to trigger PLC logic? I was reading an ESP32 → MQTT tutorial (https://www.theengineeringprojects.com/2021/11/esp32-mqtt.html) that shows how easy it is to publish sensor data from an ESP32, and I’m wondering how practical that is when tying the stream into industrial control software like CODESYS. I’ve also seen Arduino forum threads where people relay sensor streams to MQTT brokers and Raspberry Pi projects that bridge MQTT→Modbus, so I’m mainly curious about real-world issues: reliability, message latency, and simple patterns you’d recommend for safe PLC integration. Any tips, examples, or gotchas from folks who’ve done this?
Last updated: 2025-10-29
Post by janderson on OPC UA Server limitations, large array crashes runtime
CODESYS Forge
talk
(Post)
What are the limitations of the OPC UA Server? I am trying to get data off my PLC that is acquired at high rates (~50k samples/s) so I am storing them in arrays and trying to get the arrays off the PLC. When I attempt to read a ~200k element array through OPC UA the server and runtime crashes (requiring tools -> update linux arm64 -> start runtime). Is there a better way to get highspeed data off? The ACDatalog library seems a bit irritating to use so I would prefer to go through OPC UA.
Last updated: 2023-08-23
Post by janber0206 on Gateway doesn't come online, regarding a working internet connection
CODESYS Forge
talk
(Post)
Solved (see comment) Setup: Kunbus RevPi Connect+ (a raspberry based PLC) Codesys runtime package: 4.5.0.0 (raspberry, armhf) based on Codesys V3.5.18.20 Edge Gateway: 4.5.0.0 (edgearmhf,armhf) EN: The edge-gateway was added over a year ago to the automation server. I now need to make a few changes to the Codesys software, but the Pi is not showing as online in the Automation Server. Internet connection is established, I have remote access to the Pi via RealVNC. Anyone have an idea how I can solve this? Some screenshots added. DE: Ich muss nun ein paar Änderungen an der Codesys-Software vornehmen, aber der Pi wird im Automation Server nicht als online angezeigt. Die Internetverbindung ist hergestellt, ich habe über RealVNC Fernzugriff auf den Pi. Hat jemand eine Idee, wie ich das Problem lösen kann?
Last updated: 2023-10-26
Post by shabroz-gill on Exception when OPCUA datasource disconnects from Server
CODESYS Forge
talk
(Post)
If i loose the network and the opcua data source suddenly looses connection with the server, i get an exception and my application stops working. I am using the latest version of the communication add v4.5.2.0 Is this a known issue? This makes the datasource unusable because it is inevitable that we will loose connectivity at some point, and the datasource crashing everything due to that seems to be a deal breaker. I can provide more details is someone from codesys is reading this. You can recreate is by just shutting off the Opc server after the codesys data source is connected and reading data from it. The codesys app does not crash everytime and sometimes it is able to reconnect without crashing, so you may have to try this a few times to see the exception. Best regards
Last updated: 2024-09-16
Post by trent on Automation server - trends stop recording - need to manually reconnect
CODESYS Forge
talk
(Post)
Hi All, I use the analysis page in automation server to capture historical trends from my PLC - i only sample one point per hour but it does the job (for now) One issue I have is I often log on to analysis page to find the system has stopped recording trends from my PLC. To fix this, I need to choose "state information" in the "List view" under PLC and click "Reconnect" When I do this I see my variables listed under "parameters" under "PLC Details" start updating again and the trend in Data analyzer continues to update. My Question, Why do I need to manually reconnect? Is there a way to get automation server to automatically reconnect to the PLC so I continue to capture data from the PLC? Regards, Trent
Last updated: 2024-10-22
Post by ofey on OPC server crash
CODESYS Forge
talk
(Post)
Hi! I repeatly encounter a crash of the OPC server, which forces a reboot of the controller with frequent connect/disconnect to the server. Have any of you encountered this before? And is it a workaround? ie. deny that particular client connection by timeout or similar instead of crashing the PLC? This is during a development phase of the user interface. Up to 3 others connect/disconnect frequently to test their code. It is a bit troublesome of the PLC crashes several times a day because of this :( I greatly appreciate all comments. I hope it exists a fix for this, or something that hinders the crash. I attached the logfile for the crash
Last updated: 2024-11-26
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 askjong on Update variables when OPC UA Client updates. Error ID: 268468277 BadAttributeIdInvalid
CODESYS Forge
talk
(Post)
Hi, I'm connecting to a OPC UA Server using the Data Soruce Manager OPC UA Client. This works well until the OPC UA Server updates and the OPC UA list doesn't match up when i did last clicked the "Update variables" to add variables. All the variables are still the exists and none are removed from the server, but more are added during the engineering process. The error message i get in CODESYS is "Error in OPC UA call BadAttributeIdInvalid, Error ID: 268468277". The issues is fixed when i press the "Update variables" button and just press ok without adding or removing any variables in the list. Is there a way to either automatically update the browsepath if it fails or on startup, or to trigger it by code?
Last updated: 2024-01-08
Post by esave on OPC UA Server with on Codesys + OPC UA Client on Labview
CODESYS Forge
talk
(Post)
Hello everyone I want a communication between my PLC as an OPC UA Server and Labview on my PC as the OPC UA Client. I have an Festo CPX-E-CEC-C1-PN PLC and I have the OPC UA Toolkit from Labview. I created some Variables for testing (see picture 1) on Codesys. I tried to use this Labview block diagram (see picture 2) but I cant connect the PLC to it. What do I have to type in the Server Endpoint URL and what in the Node ID? Is this a good way for communication with a PLC to a PC? If not is there another way?
Last updated: 2024-04-12
Post by elektron785 on Dongle von Linux-Modul (ARM64) nicht erkannt
CODESYS Forge
talk
(Post)
Ich hatte noch einmal Zeit das mit der Lizenz zu probieren und habe dazu über den Codesys Installer das Virtual Control SL runtergeladen und ausprobiert, aber leider ohne Erfolg. Zunächst habe ich "Docker_codesyscontrol_virtuallinuxarm64_4.13.0.0_arm64.tar.gz" aufs Board geladen und das Image mit docker load geladen. Mit dem Befehl docker run --rm -dt --name codesys --network host -v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/ --device-cgroup-rule='c 13: rmw' --privileged 470a708f17a2 hab ich dies dann ausgeführt, aber das Problem, dass ich das Board im Netzwerk dann nicht finden konnte. Damit ich die Verbindung herstellen konnte, habe ich die Datei "DockerRuntimeStart.sh" so verändert, dass ich den Teil: -p 11740:11740/tcp \ -p 443:443/tcp \ -p 8080:8080/tcp \ -p 4840:4840/tcp \ gegen --net host \ ersetzt habe. Das Skript habe ich dann aufs Board geladen und bash DockerRuntimeStart.sh -i codesyscontrolvirtuallinuxarm64:4.13.0.0 -c codesys -H verdin-imx8mp- ausgeführt. Nun konnte ich in Codesys wieder eine Verbindung zu dem Board aufbauen, aber der Dongle wird leider immer noch nicht im Lizenz-Manager erkannt. Wie kann ich denn prüfen, dass auf den USB-Stick vom Container aus zugegriffen werden kann?
Last updated: 2024-09-23
Post by jari-koivuluoma on Problem trying Net Base Services 3.5.15.0 TCP connection
CODESYS Forge
talk
(Post)
Solved. Just in case that someone else is now to this also. It seems that the xDone of the TCP_Connection FB goes true once client disconnects and then you need to reset the FB by setting the xEnable to false.
Last updated: 2024-10-04
Post by pasillalej on No gateway with the given settings could be found
CODESYS Forge
talk
(Post)
Go to Online>Communication Parameters...>Gateway>TCP/IP> Click on "New..." and reestablish your connections with whatever IP address and set up information you have. Bypass whatever is necessary as you may have to redownload to the PLC.
Last updated: 2024-05-09
Post by timvh on ernesto881124
CODESYS Forge
talk
(Post)
You will need a USB to RS485 converter to connect the PC to the Modbus RTU Slave Device. In Windows this converter will be recognized as Serial COM poort (e.g. COM2, or COM3, see the windows device manager to find this out). Select this port in your CODESYS application. On the PC you need to use the CODESYS Control Win (SoftPLC) to run your application. It will not work in simulation mode, because then the Modbus Communication will not be activated.
Last updated: 2023-09-14
Post by ofey on Symbol configuration / GVL
CODESYS Forge
talk
(Post)
Hi! I have som variables that I communicate to a Modbus Master. These variables are declared in a "Global Variable List" where I have assigned them memory addresses. To organize this mapping I want to make a MODBUS list where I show all the variable names together with the memory address. Is there an easy way to export this list from CODESYS? Either through script or some export function maybe?
Last updated: 2023-10-11
Post by ofey on Symbol configuration / GVL
CODESYS Forge
talk
(Post)
Hi! I have som variables that I communicate to a Modbus Master. These variables are declared in a "Global Variable List" where I have assigned them memory addresses. To organize this mapping I want to make a MODBUS list where I show all the variable names together with the memory address. Is there an easy way to export this list from CODESYS? Either through script or some export function maybe?
Last updated: 2023-10-11
Post by nano on Issues with Modbus Slave with Raspberry Pi
CODESYS Forge
talk
(Post)
in the codesyscontrol.cfg or codesyscontrol_user.cfg you have to declare whoch comport-ports from runtime are used. please tell us how the comport is called in linux an post the codesyscontrol.cfg files also write down here, which parameters are used in the python-script and what is parameteized in the modbus-master-comport of your codesys-application. mostly the errors occurs in ine of these areas
Last updated: 2024-07-11
Post by ben1 on How to write multiple coils (Modbus FC15)
CODESYS Forge
talk
(Post)
When you say it does not work, does nothing happen or do you get an error? I have not used this function in codesys but from my past experience with Modbus I believe the coils need to be contiguous, which may be why yours is failing? Have you tried using Write Registers (16) to do the job? Or is their data in-between you do not want to edit in the transaction?
Last updated: 2024-11-17
Post by selim on Need help to get RS-485 signal in Cosesys .
CODESYS Forge
talk
(Post)
Hello Mr./Ms., I invested Raspberry Pi lot of time to get the output from the raspberry PI5. But, i did not get the signal. I use a raspberry pi 5> RS485 can hat > Modbus RTU, Industrial 8-ch analog acquisition module >weight transmitter jy-s60> S-load cell. I did not able to receive the signal from Modbus RTU to Raspberry PI5 where I use the RS 485 serial connection.
Last updated: 2024-12-01
Post by yannickasselin on Dynamically enabling/disabling Modbus slave devices in runtime (performance issue with timeouts)
CODESYS Forge
talk
(Post)
I would definitely try using the "Reconfigure" function block from "CAA Device Diagnosis@ library. https://content.helpme-codesys.com/en/libs/CAA%20Device%20Diagnosis/3.5.17.0/CAA-Device-Diagnosis/Function-Blocks/Reconfigure/Reconfigure.html#:~:text=This%20function%20block%20reads%20and,take%20effect. Although I have not tried it with Modbus, I had great success with EtherNet/IP, Profinet and EtherCAT. You can also have a look at the other functions in this library. There are useful functions to help iterate through all the nodes under a master node.
Last updated: 2025-08-12
Post by wind-11 on Problem with simulation Modbus
CODESYS Forge
talk
(Post)
Hello everyone, I encountered a problem in the simulation while working. In a test project we set up a Modbus connection. We wanted to simulate this with test values. The connection also worked, but unfortunately the values are frozen and do not report any “current data”. (Picture attached) Since these are my first points of contact with Codesys and my colleague continues to work elsewhere, I was hoping that someone here might have an idea. Kind regards and thanks in advance.
Last updated: 2024-03-22
Post by ofey on EtherCAT fieldbus
CODESYS Forge
talk
(Post)
Okey, thank you! Do you think it is something in this library, that makes it possible to do the configuration in a PRG? https://content.helpme-codesys.com/en/libs/IODrvEtherCATDriver/Current/IoDrvEtherCAT.html#id1 I think the codesys modbus libraries support configuration and connection to modbus slaves without having to add the slave devices in the device tree. Just do it from function blocks inside the program. I was hoping for something similar with EtherCAT.
Last updated: 2024-04-10
Post by rossanoparis on How to configure CODESYSControl_User.cfg in order to use a specific network card for OPCUA Server
CODESYS Forge
talk
(Post)
Thank you @eschwellinger Even tough I think the content of the link you provided is a bit messy. To bind OPCUA server to a specific adapter, I should have had insert the following section. [CmpOPCUA] NetworkAdapter=eth0 But it doesn't work, I had to insert the following section instead to get the right configuration. [CmpOPCUAServer] NetworkAdapter=eth0 Regards Rossano
Last updated: 2023-08-29
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.