ModbusTCP from Micro820 to ViewMarq

bigsteve

Member
Join Date
Aug 2020
Location
Memphis area
Posts
30
I have a project where I am trying to get a Micro820 to send some temperatures to an Automation Direct ViewMarq LED display that will hang above some tanks. I know that the ViewMarq uses the ModbusTCP protocol, but I cannot get it to send the information (getting error 33, suberror 38; but not sure what that means).


The LocalAdd_Write variable array has the decimal values for the 2 character ASCII string that the ViewMarq uses to code it's display. ie. the code starts with "<ID 0><CLR>", which I break down to "<I", "D ", "0>", etc. and I have the decimal values 15433, 17440, 12350, etc. in the array.

Modbus TCP is enabled on the Ethernet configuration page in CCW. The ViewMarq IP is 10.0.2.114.


I've got screenshots of my logic rung and the variables attached.


Any advice?

Logic.jpg variables.jpg
 
Okay - still trying to learn all this Modbus stuff. I changed the Data Address to 11000 and got the error to go away, but it is still not sending the data to the ViewMarq.
 
You should read the help files in CCW on configuration of the ModBusTCP messaging. It covers a lot of the information you need.
You should also read the manual on the ViewMarq. What address is it looking at internally? 4000, 40001, 40000? That would be your target,
 
From what I can tell from your post you are trying to write 104 registers to the ViewMarq. Is that correct? Are you writing values or strings?

You have TargetPar_Write.Addr set to 0. According to your setting of 16 in LocalPar_Write.Cmd you want to write multiple Holding Registers to addresses starting with 4xxxxx. So in that case you are trying to write 104 registers starting at 40000. I don't think that 40000 is a valid address in your device. According to the manual everything starts at 400100. So you will need to change TartgetPar_Write.Addr to at least 101 (you will have to add 1 to your address because the Micro decreases by 1 according to the help file)


I would try and start with something very simple. Like writing one variable to the display or one text string. Once you have that then you can scale it up. The hardest thing about any protocol is to establish the communications. Once you have that, the rest is easy.


Edit: Just read your last post. So you changed the TargetPar_Write.Addr to 11000. That is the Command String Buffer. You will need to add 1 to that and start with 11001. Are you sure you are structuring your writes properly? What are you getting back from the Command String Status Buffer? It should be putting something in that status buffer. If I were you I would try and write something to 101 and 102 and see if you can get that to work.
 
Last edited:
So I now have the status bit on the ViewMarq turned on. It changes color when I have the write address set to 11000 (but not 11001, 1001, 101 or 102), so the sign is receiving a signal, it's just not changing, so something is still off. I lowered the write element count to 6. The words I am sending are 15433, 17440, 12350, 15427, 19538, 15885, which should correspond to "<ID 0><CLR>", plus a carriage return at the end. That is the code for a blank screen.



The status bits are 17.
 
I got it to work. (y) I had to reverse the bytes in each word. So, to send "<ID 0><CLR>", I had to code "I<"," D",">0","C<","RL","[carriage return]>", so 18748, 8260, 15920, 17212, 21068, 3390.


Thank y'all for your help!
 
That is the biggest pain with Modbus, the word and byte swap will get you every time. That is why I will usually start with one register and move up from there. I don't see a place in the CCW where you can swap the words or bytes in the code. If you can get the device to swap how it expects the bytes to come in that would be good. Some devices give you that option.
 

Similar Topics

Hi, Some time ago, I am sure I found some literature for the Bx9000 that stated they supported max 3x simultaneous client connections. I cant seem...
Replies
2
Views
787
Hi Team, what is the best way to handle multiple slaves when using a m800 series as a master. I read that a maximum of 4x instructions can be...
Replies
1
Views
1,069
Hi Folks, I'm trying to make a AB Compactlogix L30ER get some currents/voltages etc. from a Siemens PAC3220 power meter. I'm currently using an...
Replies
3
Views
1,406
At my wits end.....I have a Siemens S7-1200 and a Sentron PAC3220 Power Monitor. Got the MB_Client command to connect and work in TIA 15.1 but I...
Replies
3
Views
1,608
Dear Friends, I am having trouble to setup a QJ71MT91 Modbus TCP module in multi-CPU environment (CPU1 & CPU2). After i download and reset both...
Replies
17
Views
4,590
Back
Top Bottom