Using Integer DH+ Global Status Flags

Vetteboy

Member
Join Date
Jul 2002
Posts
380
I am about to implement the Global Status Flags on my DH+ network of PLCs and I am thinking about using the integers in the files instead of individual bits. This would mean using a message number to communicate between PLCs and I want to be sure that no message is ignored. I am attaching the logic I would like to use and I am looking for any pointers that may improve the process. Maybe with all the extra instructions I'm better off going with a MSG. I just thought using integers that I could have hundreds of messages instead of being limited to the 16 bits for each node.

On PLC A I want to Indicate to PLC B that a motor is running. I am latching the bit until PLC B can echo the message back to indicate it has received that message. In this example N7:0 is the global status word for PLC A, and N7:1 is PLC B. The "motor is running" message is number 13000, and the "motor is stopped" message is 13001.

plca.jpg
 
Last edited:
Whats gonna happen in PLC A when you want to tell PLC B that motor 1 and motor 2 are running. You are going to have to setup a seperate integer msg for every state that is going to occur. Like motor 1 on AND motor 2 on, or motor 1 on AND motor 2 off. etc..
This is kinda like 1's a fastball, 2 is a curve but a slider is 3.
I would use the bits unless you have more than 16 states and if I had more then 16 states I would map bits to an integer register and use a msg instruction.
 
Unless I'm mistaken if you want to tell PLC B that Motor 2 and Motor 1 are running, both bits latch until each message is heard by PLC B. In the ladder the lower message would have priority and once that message is acknowledged, the next message is sent.
 
Vette,

Can't you go away with latch/unlatch, say if you have 100 messages it is 100 pair of them.

Why not - Contact - OSR - Mov
 
Then if you have 3 things happen at once, only one thing gets MOVed, and the other 2 are lost. This way each one stays latched until it's acknowledged.
 
Sorry, did not read the code close enough. Looks like what you are doing will work fine as long as it is OK to send the status of one item one message at a time. Might want to try to find out what the total round trip time global bits are going to be.
 
I think you can do a similar verification process using bits with less code. Move your aux bits from PLC A into the global area and send that to PLC B. Send that value back to PLC A and do a compare. After a valid compare I would write zero's to the address in PLC B and start the process over again. You can also alarm PLC B and/or A off of this zero value. Set up a watch dog timer. If value is zero for x time then the network is dead = alarm.

Good luck however you do it.
(y)
 
I realize the original plan is code heavy and it's back to the drawing board for the moment...........
 

Similar Topics

Hi, Currently using a MUL instruction (PLC-5) to convert a floating point to an integer to send up a SCADA system. No float comms exist (and...
Replies
11
Views
3,305
I have a project to automate four generator sets. The system will monitor and store the load demand of the factory. Once there's Power outage, the...
Replies
0
Views
45
Adding ethernet equipment to an existing panel that has none. We have some solid ethernet cables coming from other remote cabinets that I plan to...
Replies
3
Views
109
I'm trying to control a device via MODBUS RTU and the ModbusRtuMasterV2_PcCOM in Twincat 3. I've configured a device with the right com port and...
Replies
7
Views
217
Hi, I'm trying to use the IO Device Library (Product Versions) which is configured to work with the 1756-EN4TR & 1756-EN2TR but my system uses...
Replies
0
Views
54
Back
Top Bottom