MOXA ioLogik Modbus trouble

Dear all,

It seems that I run into some issues using the Ignition Modbus TCP driver in combination with MOXA’s ioLogik.

I am working on a solution where another company has provided a SCADA solution other than Ignition. This comapny used MOXA’s ioLogik user defined addressing. It means that the modbus addresses that I read on the device are not according to standard modbus logic. (See screenshot)

What I understand is that Ignition uses the addressing based on function, so if I select “IR1” Ignition knows it has to look at address 30001 But with the MOXA user defined addressing that whole logic is invalid.

How can I work arround this?

It looks like all the information you need is there in the Function Code and Reference Address columns.

The OPC Item Path for:

“DO Value” in Ignition would be “[Device]C1”,
“DO Value All Channel” would be “[Device]HR40033”,
and “DI Counter Value Double Word” would be “[Device]IR30017”.

You might need to drop the leading digit though, e.g. “[Device]HR33” instead of “[Device]HR40033”.

You are mentioning the default addressing, I assume you suggest I use the “User defined start address”

From that column it seems they chose to use Zero-based Addressing. But even when I enable/disable that in the device connection settings, I cannot get any address working.

Any ideas as to what I am doing wrong?

No, I’m suggesting you use the values from the “Reference Address (DEC)” column.

While you’re still trying to troubleshoot it’s easiest to skip the address map configuration and just manually create a tag in the Ignition Designer and start trying different addresses. Try some of the ones I suggested in my previous post.

Are you sure you should be using the Modbus RTU over TCP driver? Are these Moxa devices really serial behind a raw TCP channel? Your descriptions suggest that you actually have Modbus TCP exposed on the network. If so, use that driver, not the RTU driver.

I currently use these. Use modbus tcp driver with 0 start addressing. The user defined addressing is the starting address. match the type to the function code. You do not need the prefix, if the start address is 0016 in ignition it is 16, if it is 4144 in ignition it is 4144.

1 Like

Here is a video tutorial on the E1240 that might help:

This was gold!

I setup the connection with RTU in mind and never looked back, even forgetting about it. It is indeed the solution to use the TCP driver as per your explanation…

Thanks everyone for your input!, the issue was my slection of RTU driver while using a TCP device. I also have Moxa MB3180 devices in my project and they are RTU. It stuck and I setup all devices with the same RTU driver. :persevere: