Modbus TCP communication with Viewmarq LED sign

Does anybody use a Viewmarq led sign by Automationdirect with Ignition?

I have no luck trying to connect it using modbus tcp.

I have not, but their documentation is quite thorough. Where are you stuck, do you have a valid OPC device connection? Or do you have a valid connection but cant successfully write to your display?

A quick skim of the manual and i think they by default use unit id 255, in which case you would need to include it in your ignition Modbus addressing. Something like [deviceName]255.HRS11000

If you have any errors or configs you can share that will help also.

I have a good connection but am not able to figure out how to write to it. In their documentation, this how to write:

Blockquote
Command Strings are written to the ViewMarq Command String buffer starting at Modbus
Registers 411000 (up to 256 words).

I tried creating a tag [deviceName]1.HRUS11000 but when I insert a string it gives:
error

It looks like I have to write each character in the string to each modbus registers starting at 411000, not sure if this is what it is expecting.

That’s a tag config error, try changing zero based addressing option. You will get that for lots of reasons, like typing in a bad scan class name, device name, or an address out of bounds. If your 1/0 starting is wrong you could be accessing 10999 instead of 11000.

HRUS and HRS are not the same type. Did you mean to address just a single unsigned register?

Also, when addressing a String (HRS), a length is required at the end.

https://docs.inductiveautomation.com/display/DOC81/Modbus+Addressing

Thanks Kevin, i didnt know this, despite it being clearly stated in the manual as you indicated.

HRS FORMAT: HRS<Modbus address>:<length>

I'm just checking to see if you were able to write to the Viewmarq. I too am struggling with this task. Looking to see how others have made this work.

What is the problem? What have you tried?

For ours we have zero based addressing turned on and our tags are configured as [deviceName]HRXXX, no unit ID. Currently we are only writing integer values, we have not had a need to write strings to our displays yet.

The messaging never gets to the marquee. "[RTE2_T450_Marquee]1.HRS200:20" without quotes. I don't know how to address the marquee properly, so this was my last attempt. The documentation is vague. Not sure what these values need to be or which ones are needed.

The code below works for me:

Msg = '<ID 0><CLR><WIN 0 0 287 31><POS 0 0><SL><S S><BL N><CS 0><GRN><T>Alarm >> </T><RED><STR 2 20>' + '\n'
system.opc.writeValues('Ignition OPC UA Server',['[ViewMarq]1.HRS11000:200'],[Msg])

HTH

I will give this a shot. Regardless of the outcome, thank you for the assist.

So I got my Click PLC talking to the marquee now. What I don't see is how to insert variables from the PLC into the marquee message. I have three numeric variables I need placed into the message, but I don't see a way to do that. Using Modbus TCP/IP.

Try:

var = 123
Msg = '<ID 1><CLR><WIN 0 0 287 31><POS 0 0><SL><S S><BL N><CS 0><GRN><T>' + str(var) + '</T><STR 1 20>' + '\r'