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 winki on Modbus TCP Client
CODESYS Forge
talk
(Post)
Hello, I am new on CODESYS env. I would like to do some Modbus TCP, but I am wondering If using codesys you must use the device "Modbus_TCP_Client" & "Modbus_TCP_Server". I would like to do it without device, only using ST. Is that possible ? I try the example : MODBUS_master_example, but it is not working. If it is possible to dot it without any Device I will show my code. Thx a lot
Last updated: 2024-10-25
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 gabrielarffa on Modbus TCP/IP having problems with global variables
CODESYS Forge
talk
(Post)
I'm using Modbus TCP/IP to communicate Codesys with Elipse E3 as the master for a college project. I have made a list of global variables to organize the programming in two different POUs. The problem is, when I try to do the mapping of variables, the program informs me of an error due to the identifiers having a "." on their names. Do I have to reorganize my code to make it an unified block or is there a way to declare their names without changing all the code structure?
Last updated: 2025-05-20
Post by gabrielarffa on Modbus TCP/IP having problems with global variables
CODESYS Forge
talk
(Post)
I'm using Modbus TCP/IP to communicate Codesys with Elipse E3 as the master for a college project. I have made a list of global variables to organize the programming in two different POUs. The problem is, when I try to do the mapping of variables, the program informs me of an error due to the identifiers having a "." on their names. Do I have to reorganize my code to make it an unified block or is there a way to declare their names without changing all the code structure?
Last updated: 2025-05-20
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 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 duvanmoreno24 on Modbus writing on value change
CODESYS Forge
talk
(Post)
Yes, I tried to do what you put in the first code. However, I have a problem with that and that is that the inputs must be declared with the type. I have many data types running in my code (real, int, uint, bool) and I can't put them in the same function, another thing is that I need to instantiate that function for everything I want to write to the slave. You put a for to 200 but it means that it has to be the same data type and inside the array, but I want to get them individually. I'm struggling to do it in a good and efficient way like wago's E-cockpit does. in the first screenshot you can see, you simply type in value, change the package of things you want to write in value change and it does everything by itself automatically, without comparing any old and new values and even less having the need to activate a bool. , it is perfect.
Last updated: 2024-04-03
Post by anonymous on Hi, I try to send and receive data using a UDP connection via SysSocket 3.5.17.0. While sending data works fine, I have problems with the receiving part. I am able to capture the received data of client side in wireshark But unable to capture it on the codesys
CODESYS Forge
talk
(Post)
Hi, I try to send and receive data using a UDP connection via SysSocket 3.5.17.0. While sending data works fine, I have problems with the receiving part.I am able to capture the data of client side in wireshark but i am unable to capture it in the codesys. Heres the below part of code of client side. PROGRAM POU_udpclient_program VAR istep : INT := 1;//step variable for state machine xStart: BOOL;// Flag to start the UDP protocol iecSocketId: syssocket_interfaces.RTS_IEC_HANDLE;//socket handle for receiving iecCreateResult: syssocket_interfaces.RTS_IEC_RESULT; ipAddr: syssocket.SOCKADDRESS;//Socket address structure for receiving sIpAddress : STRING := '192.168.0.2'; wPort: WORD:= 12346; iecConnectResult : syssocket_interfaces.RTS_IEC_RESULT;//connect paramters sDataRec : STRING[255];//Buffer for received data xiRecBytes : __XINT;//number of bytes received iecRecResult : syssocket_interfaces.RTS_IEC_RESULT;//receive data parameters iecCloseResult : syssocket_interfaces.RTS_IEC_RESULT; END_VAR syssocket.SysSockInetAddr(sIpAddress,ADR(ipAddr.sin_addr)); ipAddr.sin_family := syssocket.SOCKET_AF_INET; ipAddr.sin_port := syssocket.SysSockHtons(wPort); CASE istep OF 1: //create socket IF xStart THEN iecSocketId:= syssocket.SysSockCreate(syssocket.SOCKET_AF_INET,syssocket.SOCKET_DGRAM,syssocket.SOCKET_IPPROTO_IP,ADR(iecCreateResult)); IF iecSocketId = syssocket_interfaces.RTS_INVALID_HANDLE THEN xStart := FALSE; istep := 1; ELSE istep := 2; END_IF END_IF 2: //connect to socket server using setoption iecConnectResult := syssocket.SysSockSetOption(iecSocketId,syssocket.SOCKET_SOL,syssocket.SOCKET_SO_REUSEADDR,ADR(ipAddr),SIZEOF(ipAddr)); istep := 3; 3: //receive data xiRecBytes := syssocket.SysSockRecvFrom(iecSocketId,ADR(sDataRec),SIZEOF(sDataRec),0,ADR(ipAddr),SIZEOF(ipAddr),ADR(iecRecResult)); istep := 4; 4: //close socket iecCloseResult:= syssocket.SysSockClose(iecSocketId); xStart := FALSE; istep := 1; END_CASE
Last updated: 2024-06-03
Post by timvh on Management of a PLC network from a remote station
CODESYS Forge
talk
(Post)
Maybe the CODESYS HMI is a good solution. https://store.codesys.com/en/codesys-hmi-sl-bundle.html Run this on the remote main control station. In the HMI application you can add the data source manager and to this manager you can add Data sources. A data source has a reference to the PLC you want to connect to and can get access to the variables of the PLC application. You can then use these variables in the visualization of the HMI application.
Last updated: 2023-12-04
Post by lsislsis on Alarms Placeholder
CODESYS Forge
talk
(Post)
Hello. When i put placeholders at "/etc/codesyscontrol/CODESYSControl.cfg" : [SysFile] FilePath.1=/etc/codesyscontrol/, 3S.dat IecFilePath.1=/proc/, cpuinfo IecFilePath.2=/proc/, iomem PlaceholderFilePath.1=/sys/devices/w1_bus_master1, $OneWire$ PlcLogicPrefix=1 PlaceholderFilePath.2=/data/persistence, $ac_persistence$ PlaceholderFilePath.2.Volatile=1 PlaceholderFilePath.2.View=1 PlaceholderFilePath.3=/data/alarms, $alarms$ PlaceholderFilePath.3.Volatile=1 PlaceholderFilePath.3.View=1 Where "Data" are my USB Flash. I take these attachment errors at run time. What i am doing wrong.
Last updated: 2024-10-15
Post by respl on IFM EXOR Network variable Error
CODESYS Forge
talk
(Post)
We are connected IFM CR711S to Exor EX710. We are exchanging data using network variables. Both devices are configured on same project so no need to use file source. When tested application it works fine. But after 3 months same application not working. We are able to send data from CR711 to EX710 but data from Ex710 to CR711s works only for one scan when we cold reset CR 711S. Can somebody help to find out error.
Last updated: 2025-03-17
Post by nha451 on EIP Scanner not receiving data from adapter
CODESYS Forge
talk
(Post)
Hello, I have an EtherNet IP adapter (GoPxL) running with a virtual PLC. I have successfully connected the adapter with green icons next to it. On WireShark I can see the data coming from GoPxL but on CODESYS it shows up as all 0. My firewall is turned off and I have enabled the device to always update variables. I tested my set up with Profinet and I can receive the data. Please let me know if you have any suggestions!
Last updated: 2025-09-12
Post by damian177 on Delete PLC Log
CODESYS Forge
talk
(Post)
You already know how clear log ? In codesys I am reading twenty Modbus TCP Devices. When several of those doesn't response , the logs is grovs very fast and my PLC hangs.
Last updated: 2023-10-16
Post by bossjosh21 on Codesys Modbus RTU (Modbus_Slave_Com_Port Not Running)
CODESYS Forge
talk
(Post)
Can someone help me about my problem of my Modbus_Slave_Com_Port Not Running. I am using RevPiConnect 4 and I connected my actuator to the RS485 of my RevPI.
Last updated: 2023-12-05
Post by hwopereis on How to use Application Trigger in Modbus TCP Server
CODESYS Forge
talk
(Post)
I'm now circumventing the problem by creating a separate TCP client for all Write actions. Upon registering a changed variable, I enable this client, until the change is processed.
Last updated: 2024-07-01
Post by dantheman on Connecting to SoftPLC Only Works By Turning Off Modbus Ethernet Port
CODESYS Forge
talk
(Post)
It's all good btw, learned that the runtime doesn't isolate the networks that are involved so changing the ethernet subnets away from the Wi-Fi's subnet was all I needed (maybe some config file changes helped, can't say for certain)
Last updated: 2024-08-08
Post by esmith on OPTO22 Groov Epic PR2 Modbus Comms Dropping out every 2 hours and 4 Mins
CODESYS Forge
talk
(Post)
I think I am having a similar issue. Have you found out what was causing this problem?
Last updated: 2024-09-10
Post by i-campbell on MODBUS TCP REGISTERS CODESYS V3.5
CODESYS Forge
talk
(Post)
codesys is in hex and starts at 0 your other program is set to decimal and maybe starts at 0 or 1, I can't tell.
Last updated: 2024-10-12
Post by hanpekel on Reading request counter value from modbus server in application
CODESYS Forge
talk
(Post)
Any way I can read the value of the 'request counter' (see screenshot) in my application. Amount of client connections is easily found using ModbusTCP_Slave_Device.uiClientConnections; But for request counter it does not seem to be that simple.
Last updated: 2024-10-16
Post by winki on Modbus TCP & RTU with Control for Linux SL
CODESYS Forge
talk
(Post)
I do not have error anymore using nic with eth0 value. But my network it still 172.17.0.3 like the first picture.
Last updated: 2024-10-23
Post by winki on Modbus TCP & RTU with Control for Linux SL
CODESYS Forge
talk
(Post)
Maybe I don't know. **Maybe if someone know it can help me. ** I will try Constrol SL runtime in the Host. I will try to but only Nic without IP
Last updated: 2024-10-23
Post by ben1 on How to write multiple coils (Modbus FC15)
CODESYS Forge
talk
(Post)
Yeah that is odd - sometimes you have to do what you have to do unfortunately. Have you tried sending consecutive bits in the word instead - ie. instead of [0].0. [1].0, [2].0 etc, send [0].0,[0].1, [0].2 etc. ?
Last updated: 2024-11-17
Post by atcprojectteam on Modbus Function Code 15, writing multiple coils
CODESYS Forge
talk
(Post)
Hi all, I am using an RSTI-EP I/O card along with the EPXMBE101 Modbus/TCP network adapter. I have a Control Standard L license. I successfully connected to the I/O card via Modbus and can read inputs without any issues. However, when I try to write to the digital output modules using function code 15, I am unable to make any changes. Here’s what I have done so far: I created a small project using Structured Text. I set up Modbus channels (as shown in the attached image) and mapped the pins. When I use cyclic mode, the connection results in an error. However, when I use the rising edge, the connection works, but I don’t see any changes on the I/O card. For the output module, I assigned one bit to high. After that, I ran CODESYS Control Win V3. (Should I be running the PLC as well?) I built the program, but I am not receiving any response from the I/O card. Could you please advise on what might be causing this issue?
Last updated: 2025-02-26
Post by atcprojectteam on Modbus Function Code 15, writing multiple coils
CODESYS Forge
talk
(Post)
Hi all, I am using an RSTI-EP I/O card along with the EPXMBE101 Modbus/TCP network adapter. I have a Control Standard L license. I successfully connected to the I/O card via Modbus and can read inputs without any issues. However, when I try to write to the digital output modules using function code 15, I am unable to make any changes. Here’s what I have done so far: I created a small project using Structured Text. I set up Modbus channels (as shown in the attached image) and mapped the pins. When I use cyclic mode, the connection results in an error. However, when I use the rising edge, the connection works, but I don’t see any changes on the I/O card. For the output module, I assigned one bit to high. After that, I ran CODESYS Control Win V3. (Should I be running the PLC as well?) I built the program, but I am not receiving any response from the I/O card. Could you please advise on what might be causing this issue?
Last updated: 2025-02-26
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.