I have used node-red-contrib-mobus read node to read a value from a PLC with a Lenovo Thinkpad T14 with the built in ethernet port (Realtek) and it works fine.
When I try with 2 different computers with Intel ethernet ports it doesn't communicate and I can't ping the PLC. Is there a list of ethernet adapter that are compatible with Modbus or a recommended device ?
Modbus is run over TCP (or in some cases UDP) when run on Ethernet - the ethernet adapter is way down in the ISO stack and would have no effect at all
I think you will need to document your network config so we can comment on that
I woudl start by
- At a machine that does not for Modbus - assuming it is a Windows computer
- Get a cmd prompt up
- Ping the ip address of the PLC - do you get a response ?
- if you do get a response then use Putty (download) on Windows and try to make a TCP connection on the Port that the PLC uses for Modbus comms
Let us know the outcome of these
All computers are running Windows. 2 computers with the intel ethernet will not ping the PLC and the network connection will display a red X next to the ethernet adapter.
With the 2 computers with the Realtek ethernet I can ping the PLC and the network connection will change from the red X to unidentified network when the cable to the PLC is pugged in.
Hang on - are you plugging the cable directly from the PLC into the PC - not via a network switch ?
Your image shows that the 2 ethernet adapters are not connected so of course they cannot communicate with the modbus - they can't communicate with anything! Only WiFi is active on that device.
Correct no switch.
I tried with a Netgear switch and it didn't work. Do I need a special switch like this:
The image was taken when I am at home. When I connect the cable to the PLC at work the connect is established on the ethernet adapter with the Realtek chipset and can not with the Intel chipset.
Not every adaptor supports direct connection - at least without a special cable. Many do not.
Yes, a switch is what you need.
With the laptop with the Realtek ethernet adapter I can ping the PLC with a standard and a crossover ethernet cable. With the laptop with the Intel ethernet adapter I can't ping the PLC with both type of cables. What type of switch should I buy to be able to read Modbus values from PLC with any computer?
Any kind of switch should do. You will, of course, need some standard ethernet cables to go with it.
Also check what settings you've got on the cards. Each will need to be set to the same IP network/netmask so that they can all talk. So if you are using something like
192.168.1.10 on the modbus devices, you should have a netmask of
255.255.255.0 and an address in the same
192.168.1 range on the PC.
This is the configuration: PC 192.168.0.102 PLC 192.168.0.100 Switch 192.168.0.239 netmask 255.255.255.0
Direct PC to PLC connection is ok, can ping the PLC and can see the values update in the Node-Red UI. When I plug the PLC to the switch (no light turn on the switch port) and plug in the PC to the switch I can ping the switch but cant ping the PLC.
Right - so the PLC has the issue - are you sure it is a standard ethernet port on the PLC ?
Have you tried a different cable from the PLC to the switch - some cheaper switches will not do auto crossover (or not do it very well) - so you might have an ethernet cross over cable
I used an ethernet cable tester and there was no connection for pin 2 for the cable going to the PLC. Fixed the connector and now there is communication with both ethernet adapter (Realtek and Intel) Solved!
Thanks a lot to both of you for your help.