Wago plc codesys+ easy builder pro

Hello, I’m trying to connect my wago plc to weintek operators panel. Could someone give me any advices on how to establish communication? I thought about modbus but I’m not 100% sure how to do it.

  1. Add both an Ethernet Adapter and ModbusTCP Slave device to your project.

  2. In the Ethernet adapter, set your Network Interface on the General page.

  3. In the ModbusTCP Slave, enter your desired number of Holding Registers and Input Registers and what Modbus addresses you want them to start at.

  4. Then go to the IO Mapping area and you can now assign PLC variables to those Modbus Registers you just defined.


    Those variables will now to be available to the HMI via Modbus.

Okey. All done now how can i connect the plc to hmi? I got everytching on switch, ip of both devices are set as they should be and now is the question what do i do next?

Sorry, I can’t help with the Weintek side of things at all. I’m not familiar enough with their hardware or software.

Setup the WAGO PLC in System parameters. Match the setup in your PLC I am using 192.168.50.10 that is my IP address. Port 512 is the port set in my WAGO PLC.

You will have to create your data tags in your library. The register 40020 would be address mode word, address type 4x 16 bit unsigned address 20.

Hope this helps!

I found another issue regarding this topic. I don’t have a Modbus TCP slave; I have a Modbus TCP server. Are there any differences between those two?
And another question: how do I properly set holding registers to send them to my HMI?

ModbusTCP “slave” and “server” mean the same thing. “Master/Slave” are older terms that have been largely replaced in many industries in favor of “Client/Server”.

Holding Registers are read-only from the point of view of the server (i.e. plc in this case) unless you check the “writeable” box in the server configuration (shown in purple below).

Holding registers and Input registers are from the point of view of the client. The client normally writes holding registers and reads input registers.

Care must be taken when using “writeable” holding registers due to the cyclic nature of plc tasks, so that any data written by the HMI is not immediately overwritten by the plc on the next cycle.

1 Like

Okay, I understand. But here comes another question: how do I correctly add those registers so that my HMI can read them?
For example, I want my HMI to show whether the switch is on or off.

I’m not sure I understand your question. Scroll up to my post from 3/28 for screenshots of setting the quantity of Holding/Input registers, starting address, and variable assignment.

Ooo. You are right, my bad i will try this out again.

Master / Slave are term used in communication where you can have only 1 “Master” (A lot of serial based protocol use this terminology"
Client / Server became later when one server can have multiple client (In that case the latest information “write” have the priority).
There is a push to have the Master / Slave terminology replaced by Client / Server which I find it stupid since one explicitly talk about an exclusivity and the other talk about a resource sharing.

But As a rule of thumb:
Serial based: Master (1) / Slaves (x)
Ethernet based: Clients (n) / Servers (x)

1 Like

No need for Modbus. EBPro has full symbolic support for Codesys as their devices can run Codesys as well.

In your Codesys project, you’ll need to add a Symbol Configuration. Build the project. Then select which vars you want added to the config. Click save and the file will be generated.

In your EBPro project, add a device “CODESYS V3 (Ethernet)”. Under settings add your Codesys PLC IP address, port 1740, protocol V3 UDP/IP, source port no. 1742. Add PLC username and password.

Then click “Import Tags”, two char per word and navigate to the location your Codesys project is stored. Open the XML file in that location and your variables will import into your EBPro project.