Hi everyone,
I’m trying to connect a Pilz MB1 (PNOZmulti) to Ignition using Modbus TCP, but the device remains stuck in “Connecting” and never establishes a connection.
Here’s what I’ve verified so far:
-
The MB1 is correctly configured as a Modbus TCP Server (Slave)
-
IP address and port (502) are correct
-
Communication is working because I can successfully read data using Modbus Poll from the same machine
-
I also tested connectivity using PowerShell (Test-NetConnection) and the port is open (TcpTestSucceeded: True)
Ignition configuration:
Issue:
Questions:
-
Does the Pilz MB1 require a specific Unit ID configuration in Ignition? (I don’t see an option for Unit ID in this driver)
-
Is there any known compatibility issue between Pilz MB1 and the standard Modbus TCP driver?
-
Should I instead use Modbus RTU over TCP or a different driver?
-
Are there any specific settings (addressing, zero-based addressing, request optimization, etc.) required for Pilz devices?
Any guidance would be greatly appreciated.
Thanks in advance!
Have you made at least one tag for the device in Ignition? By default, a lot of modbus devices automatically kill sessions/connections that aren't actively requesting data. I also don't believe that the Ignition driver supports browsing, you'll need to reference your device's manual to determine what registers to request.
Modbus TCP does not support browsing. All tags must be explicitly addressed.
Ignition uses unit #0 by default. To use other units with manual addressing, include the unit # and a dot as a prefix before the HR, IR, C, or DI area indicators.
Thanks for the suggestion.
At the moment I’m not able to create any tags because the Modbus TCP device never reaches a “Connected” state, it stays indefinitely in “Connecting”. Because of that, I can’t browse or create tags from the OPC Browser.
However, I did some additional tests:
-
Using a generic TCP device in Ignition, I can establish a connection to the MB1 (so network connectivity is confirmed).
-
Outside Ignition, I can successfully read data from the device using Modbus Poll.
-
The port (502) is open and reachable (Test-NetConnection returns True).
So it seems the issue is specific to the Modbus TCP driver, not the device or network.
Also, regarding addressing:
When I try using the TCP device workaround, I can connect, but:
-
I don’t have proper Modbus addressing support
-
I can’t correctly read/write using standard Modbus notation (1x, 3x, 4x, etc.)
So right now I’m blocked at two levels:
-
The Modbus TCP device never connects (so I can’t create tags)
-
The generic TCP device connects, but is not usable for Modbus addressing
Thanks again!
The device connecting is not necessary for creating a tag. You can manually enter the OPC item path and OPC server. Manually defining the item path is required when creating tags for modbus devices, since the Ignition driver does not support browsing.
The register you mentioned would be something along the lines of
ns=1;s=[YourDeviceConnectionNameHere]1.DI8191
for the OPC item path.
Also, check the logs in your gateway. I wouldn't be surprised if you see quite a few logs with something mentioning that the device connection was reset.
1 Like
You cannot use this notation in Ignition at all. The standard prefixes (0, 1, 3, 4) are not numeric, but just a character. Ignition uses unambiguous character prefixes for the memory areas instead.
Be aware that the protocol on the wire is zero-based: the classic 400001 is accessed with function code 3, offset 0. Manually addressed in Ignition as [someDevice]HR1 if the device is set to one-based (the default) or [someDevice]HR0 if the device is set to zero-based.
This sounds like a firewall issue. Use wireshark on the Ignition gateway to capture all traffic to your target IP address. (Capture filter of host 10.20.30.40 or similar.) That will definitively show what Ignition is reacting to, if anything.
Also, you do not have to wait for the device to connect to make tags in the designer. You should make them unconditionally, manually. When the device works, you'll get data. When not, you'll get bad quality.
1 Like