Logix5k *pointers

nettogrisen

Lifetime Supporting Member
Join Date
Mar 2007
Location
Here
Posts
383
I'm going to start a new project soon where (i think) I'm going to be using a 1769-L32E with 100+ slaves on modbus RTU.
I've succesfully used the L32E with a 1769-SM2 card for modbus communications in the past.
My concern this time is the number of nodes.
I was thinking that I would use a few MSG instructions in a loop and load different node addresses into the MSG instructions on every pass. The thing is that I have to move an "address" or a "tag" into the msg_instruction.SourceLink and not a value, as the SM2-module works by passing the MSG instruction a structure containing slave address, modbus address ect., and it also takes a structure to store response data in. So what i basically need is a *pointer like in C.

Does anybody have any experience with this?
I suspect that I might be better of looking at Siemens?
 
The first thought that came to mind was to manipulate the subscript of a MESSAGE array in a MSG instruction but the MESSAGE data type can not be arrayed. Second, could an array of aliases be created but, alas, also not supported. I suspect there is a very good reason for this, possibly involving the MSG instruction's status bits.

I'm curious if there is a solution to your query.
 
The 1769-L32E will probably work just fine depending on details. From an electrical standpoint I would recommend busting slaves up into zones with repeaters.

I have done modbus directly out of the serial port of the L35E CPU without issue. If you utlize the Modbus interface task available on ABs website you will not have to mess with the MSG intructions. This is good because the MSG instructions don't jive well with trying to actively change the parameters. The Interface tasks allows you to simply populate tag arays and use a variable index.

With 100+ slaves on RTU, the basic assumption is you are not looking for anything lighting fast.

Some important questions are:
Are all the slaves basically all the same kind of device (are they all PF4s)?
Are you accessing all the same registers in all devices?
Are the address's contiguous or at least close together?
Which function calls do you need to use?
 
I don't have 5k open now. Can you create a tag just to use in the message and copy an array element into it?
COPy Modbus[Pointer] to MSG_TAG then on the .dn of the message index the Pointer by 1.
I don't know if it will work or not this would be my approach to solving it.
 
Thanks for the link, it appears to use the processor's serial port instead of the OP's SM2 module but its good stuff to know about.


It does use the processors serial port. The OP didn't indicate being locked in to the SM2 module, and in my opinion you would have to jump through a lot of hoops using it in this application due to the MSG instruction limitations that have already been mentioned.
 
Also, per my understanding of the SM2 modules, they can only do 3 sets of 5 drives at a time. So you would need a lot of them (and that is assuming we are talking about PF drives as well).
 
Last edited:
Thanks for all your input guys.
I'm going to try Jeffs suggestion as it will be easy to implement and maintain.
I'll let you know how it turns out.

Edit:
It's not PF drives. It's UV lamp drivers for water purification.
 
Last edited:
I would not recommend copying into a MSG control tag. This WILL cause problems.

I have successfully changed the target in a message by manipulating certain elements of the control tag in the past. It can be done and will work. It requires attention to detail with regard to the sequencing of your messages. I think it is a reasonable way to deal with that many messages.

I am not familiar with the other Modbus specific module that was referenced above.

This will be very slow if you are moving very many bytes around.
 
In my application, I use a 1769-SM2 as a Modbus master. I clocked it with 232analyser, and you need to insert 60 to 100 mSec delay [i used 200mSec] between messages or the responses will get garbled. Now, in fairness, it might be my slaves that are mis-behaving, but, this is reality. I highly recommend 232analyser as a really good tool to watch what's going on. It saved my day.
 

Similar Topics

Hi all, I'm starting work on a system and the processor for said project is a Control Logix 1756-L82. When I open Logix, however, that CPU is...
Replies
9
Views
2,946
Hello, I have been working on an alarm tracking routine. I take several bits to get a status of a device and load then into an INT Dev_Stat. When...
Replies
0
Views
1,013
Hi all, I'm working on some Control and Compact Logix A&B PLCs, running Logix5K version 24. I've been doing online edits just fine, but I've...
Replies
6
Views
2,439
From what I can tell, AB's Connected Component Workbench (CCW) does not support CompactLogix L43 with RsLogix v20.xx Software. What are my...
Replies
6
Views
2,708
Hello PLCs.Net! I am trying to use RSLogix5k via windows command line. I would like there to be a script which automatically opens a project...
Replies
1
Views
1,245
Back
Top Bottom