Definition of "Destructive Bit" in RSL 5000

Bullzi

Lifetime Supporting Member
Join Date
Jun 2012
Location
Colorado
Posts
1,530
Hi all,
I am writing my first RSL 5000 program. When I verify the routine I get the following:
Verifying routine: MainProgram - UNLOADING...
Warning: Duplicate Destructive Bit Reference Detected: 'MainProgram - P201_RUN_BIT[0]'
MainProgram - UNLOADING, Rung 9, OTE
MainProgram - UNLOADING, Rung 7, OTE
Complete - 0 error(s), 1 warning(s)

I understand that the warning is telling me that I have the same tag on two different OTE instruction's. One will affect the other.

What I don't understand is the word "Destructive" in the frame work of a PLC program. What does it mean?

If you have a explanation I would appreciate it if you would share it with me.

 
In Logix5000, destructive means that the contents of the addressed memory element can be changed by the instruction. You'll see the same thing when you do a cross reference on any address. In the cross reference there is a column named destructive and a Y or N in the column indicates whether the reference is destructive or not.
 
Last edited:
In perhaps easier terms, it means that the bit (or word, or whatever) is being written to in the program.

In short, anything that is written to by the program is considered destructive. OTE, OTL, OTU, the target of MOV, CPT, ADD, etc.
 
In perhaps easier terms, it means that the bit (or word, or whatever) is being written to in the program.

In short, anything that is written to by the program is considered destructive. OTE, OTL, OTU, the target of MOV, CPT, ADD, etc.

I always teach people that some instructions are "look at", and the others are "change it". That usually strengthens the distinction between non-destructive (I was only looking at it), and destructive (I changed it's value).

It is also interesting to note that non-destructive instructions are in fact, destructive to the "rung logic continuity", and the destructive instructions are not.

In other words, when we "look at" something (which is a non-destructive operation on the data we are looking at), we may influence a change in the rung, from true to false, but when we "change something" (which is destructive to the destination data), we do not change the current rung logic continuity.
 
It is also interesting to note that non-destructive instructions are in fact, destructive to the "rung logic continuity", and the destructive instructions are not.

Your first paragraph was a great explanation. In the second, while technically correct, the terminology is not used that way in RSLogix5000 warning or error messages or in the cross reference and doing so obfuscates the meaning for less experienced programmers and even some intermediate programmers.

So that we don't confuse the poor chap, lets limit it the original question about Logix5000, where it refers to the operation of the instruction on memory. If it can change memory contents then it is a destructive operation.
 
In perhaps easier terms, it means that the bit (or word, or whatever) is being written to in the program.

In short, anything that is written to by the program is considered destructive. OTE, OTL, OTU, the target of MOV, CPT, ADD, etc.

The key word here is "by the program", meaning the PLC program. Another outside actor can come in to the PLC and manipulate the bit, and the cross reference has no way to know that (today, at least (**)).

Good place to mention documenting remote WRITES to a PLC from another place.

(**) We've been waiting for years for tools that join the PLC and HMI/MMI world together without the need for notebooks/spreadsheets/graph paper.... someday.
 
I just ran into this same problem, and found it very confusing. It was explained to me that if you are using Latch bits (OTL) and regular output bits (OTE) within the same program, you will get the destructive bit warning and your bits won't turn on. So to solve the problem stick with one convention Latch bits or seal-in condition.
 
I see that the meaning of 'Destructive' has been covered but, as the original poster has explained, the operative word in the warning is not 'Destructive' it is 'Duplicate'.

This means the program affects the bit from more than one place. It won't trigger on a OTL/OTU pair but it definitely will on two or more OTE's pointing to the same address as well as an OTE paired with either the OTL or OTU.

It may be possible (though not viewed as 'good' practice) that the various commands are needed just as they are and the system will perform correctly. This is why it is a 'Warning' and not a 'Fault'.
 
I see that the meaning of 'Destructive' has been covered but, as the original poster has explained, the operative word in the warning is not 'Destructive' it is 'Duplicate'.

This means the program affects the bit from more than one place. It won't trigger on a OTL/OTU pair but it definitely will on two or more OTE's pointing to the same address as well as an OTE paired with either the OTL or OTU.

It may be possible (though not viewed as 'good' practice) that the various commands are needed just as they are and the system will perform correctly. This is why it is a 'Warning' and not a 'Fault'.

I am having trouble understanding this. I want to see if I am comparing Apples to Apples, in my attempt to get this. In RSL5 and 500 when I perform a search, and it won't say destructive yes or no, I am looking for ladder components that could affect an output. So, for example, if I am perusing the ladder trying to find out why my green indicator light isn't energizing, I begin the actual output itself, because I see what will and what won't, energize and turn-on that lamp. The green lamp can be used throughout the program in various locations however, it isn't actually used to turn that lamp on, it is merely monitoring the condition of that lamp. Am I close or way off? Thank you
 
I am having trouble understanding this. I want to see if I am comparing Apples to Apples, in my attempt to get this. In RSL5 and 500 when I perform a search, and it won't say destructive yes or no, I am looking for ladder components that could affect an output. So, for example, if I am perusing the ladder trying to find out why my green indicator light isn't energizing, I begin the actual output itself, because I see what will and what won't, energize and turn-on that lamp. The green lamp can be used throughout the program in various locations however, it isn't actually used to turn that lamp on, it is merely monitoring the condition of that lamp. Am I close or way off? Thank you

When RSL5000 says "Destructive", it is the same as in the RSL500 and RSL5, when an instruction is described as an "Output Type" instruction. That is to say, <<does>> something to an output, word or bit. Generally speaking, in 5 and 500 , Output Type instructions are on the right side of the rung. So, in a simple example, an Output Terminal Energize (OTE) is an output-type instruction, and any TAG it is associated with will be cross referenced as having a DESTRUCTIVE reference.

In your response, you need to see every "output type" instruction, and where it is in the program, since, "Last Guy Wins" [or, more correctly stated: Last Guy In The Last Scheduled routine wins]
 
if the line shown in the Cross Reference has its Destructive column marked "Y" for "Yes" - then the instruction shown on that line is CAPABLE of changing the value of the cross-referenced tag ...

on the other hand ...

if the line shown in the Cross Reference has its Destructive column marked "N" for "No" - then the instruction shown on that line is NOT CAPABLE of changing the value of the cross-referenced tag ...

BUT - to be more specific ...

just because the line happens to be shown with Destructive marked "Y" does not necessarily mean that the instruction IS definitely changing the value ... it only means that it COULD ... you still have to worry about whether the rung is actually being executed/scanned - and so on ...

going further ...

it's usually - but not ALWAYS - just the "output" type of instructions that are marked "Y" ... check out an ONS (One-Shot) instruction ... that's an "input" (conditional - left side of the rung) type of instruction - but since it is CAPABLE of changing the value of its own "status" tag, then the ONS will show up with a "Y" in the Destructive column ...

and ...

Greetings shawndietrich - and welcome to the forum ...

It was explained to me that if you are using Latch bits (OTL) and regular output bits (OTE) within the same program, you will get the destructive bit warning and your bits won't turn on. So to solve the problem stick with one convention Latch bits or seal-in condition.

there's quite a bit of "under-the-hood" stuff which keeps that statement from being 100% correct ... if you'd like to go further, I recommend that you start another thread of your own - and give us a specific example of what you're confused about ... we'll be glad to help you nail it all down ...
 
Last edited:
Destructive- causing great and irreparable harm or damage. I understand the meaning of it in the project, thanks to these post. What I'm still not getting is way the use of that particular word for that instant.
 

Similar Topics

Hi all, I am using OI.GATEWAY.2 to communicate to the PLC using an OPC UA. I can see the tags using an OPC explorer connecting to the...
Replies
0
Views
206
Hello, Im new to Studio 5000 View Designer and i try to make a popup reusable screen. So i create a user-defined screen with 2...
Replies
2
Views
258
Expert, Could you advise me some idea how to add tags in Summary Alarm's FilterDefinition? SumView.FilterDefinition = "AlarmShortName LIKE...
Replies
2
Views
917
Hello, Just want to understand one thing I have a file of ftview se with global object having parameters as #102, #103 but that same object is...
Replies
1
Views
727
Good Morning , I've been using FactoryTalk View Studio from time to time , but I really don't understand all the options in FactoryTalk View...
Replies
2
Views
1,168
Back
Top Bottom