Hi,
Thanks for trying the libplctag. The library can support DH+ bridges. I have a Control Logix chassis with a DHRIO module that I connect to a PLC/5 via DH+. On my system the PLC/5 has node address 1 and the DHRIO module is in slot 2. My path tag string attribute is "path=1,2,A:27:1". The "27" part is the node ID of the DHRIO module.
In order to route a message through a bridge you need to specify how to get to the bridge, which link to use if there is more than one and which node to send the message to. This is all in the last part of the path. In the above example, the path is "1,2,A:27:1". Here are the parts:
1,2 - this is specific to the Control Logix chassis. This means use port 1, the backplane, go to slot 2 (counting from zero). That is where the DHRIO module is in my system.
A:27:1 - this means use output channel A (alternatively port 2), from local link/node 27 to remote link/node 1 on DH+. All link numbers are in DECIMAL!
My guess is that you do not need the "1,2" part and can just have a path like "path=A:2:33" for accessing a PLC at link/node 33 decimal or 41 octal. You will need to set the PLC type to the correct one. There are different commands used for PLC/5 vs. SLC/MicroLogix.
A full tag attribute string would be something like this:
"protocol=ab-eip&gateway=10.1.2.3&path=A:2:33&plc=PLC5&elem_size=2&elem_count=10&name=N7:0"
This would route through a DH+ bridge at IP address 10.1.2.3, to the PLC/5 at link/node 33 (decimal) and would read 10 INTs from data file N7:0. If that does not work, try adding a fake port/slot combination like my path above. Perhaps "path=1,2,A:2:33". Make sure that the IP address and link/node are set to the correct ones for your system.
For accessing an SLC 500, change the plc type to "SLC".
Let me know if this helps!
Best,
Kyle