Dnet analog module adressing

DairyBoy

Member
Join Date
Jun 2007
Location
UK
Posts
393
Hi all.

I'm configuring a dnet network for 1790D series i/o blocks. In order to keep the node count to a minimum to allow for future expansion, I've added digital i/o blocks to analog i/p base units. The problem is that I'd like to map the four analog i/p words to four individual plc words, but that uses up the four word allocation for the module on the network, leaving no room for the digital data.

So, it looks like I've got to do some masked moves in the plc to isolate the 3 x 12 bit analogs from each other and the digital i/p data.

I could install the analog i/ps individually but that'll add about 20% to the node count, as there's a lot of them and the output units only have a miserly 2 channels.

As usual, I'm probably missing a trick, but if there is one, I'd appreciate a nudge in the right direction.

Thanks.
 
OK, moving on... I'll assume that there is no "way around" the maximum of four starting addresses for each node's chunks of data. So are there any opinions on whether the following is the most expedient way of extracting two 12-bit analog signals from one 32-bit word when they arrive at the plc:

1: MVM the 32-bit word with 4095 as the mask into dint "low"
2: MVM the 32-bit word with 268369920 as the mask into dint "high"
3: SWPB "high" using word mode into dint "low2"

Seems a lot to do, but at least with rsl5000 it all goes on one line :)
 
Well, I know I talk to myself when I'm programming but not usually to the extent that I post my train of thought online...

Compromise: Leave all the 4 x analog i/p modules as individual nodes with no extension i/o.
Add up to two 16 x dig i/o extensions onto each 2 x analog output module.
So all the analogs now get to start at bit 0 and the digitals fill the 32 bit words.

Job done. There, that wasn't too difficult :rolleyes:
 
I re-read your post a few times and finally understood your reference to the "four word allocation"; I think you're referring to Segmented Mapping.

Way back in the days of DeviceNet Manager, there were only a few devices that had configurable data sizes, like the 1794-ADN and the 1203-GK5. Because the popular 1747-SDN scanner module also had its IO memory split between Discrete and M0/M1 file areas, the designers came up with Segmented Mapping as a way to split the data going to either memory area. The limit of four Segments was pulled out of thin air; it's not a DeviceNet protocol limit.

I often use MVM and SWPB instructions to manipulate complex DeviceNet datatypes, rather than relying on the DeviceNet Tag Generator and it's single-byte alignment logic.

I'm glad to hear you got the system working to your satisfaction but wanted to post that you're not alone in dealing with these unusual data alignment issues, and that you've come up with two of the most common approaches to handling them.
 
Thank you, Ken. I watched dejectedly as the thread slowly sunk without trace. And thanks for the last comment too. Good to know I'm still doing something right :)
 

Similar Topics

Hi All, I am looking for some advice regarding the correct steps that should be taken if I was to replace an existing (but now obsolete) Third...
Replies
4
Views
2,660
Hi everyone! I am newbie here so be kind) I have some m340 plcs in one network and one TSX quantum, that reads data from them via io scanning...
Replies
3
Views
1,467
Hey ya'll and Ken if you're out there, I've encountered one of the strangest dnet issues I've ever come across. I have a Rockwell estop box...
Replies
0
Views
1,673
I have an old SLC500 that I will be upgrading to a CompactLogix 5370 or 5380. I can put an ethernet card on the 1746 rack and treat the I/O as...
Replies
4
Views
1,740
Hi! I have a PF700H, 600V, 590A. Its on DeviceNet. Produce Type: 121 Product code: 45620 Revision: 1.006 EDS File I think I need...
Replies
2
Views
1,461
Back
Top Bottom