RSLogix500 questions

bitmonkey said:
1. What the heck is a "Q"?...

Ron Beaufort said:
it's usually just a letter that's assigned to a LBL (Label) or a matching JMP (Jump) instruction ..

you wouldn't be able to "tie" a comment/description to a simple NUMBER - so the software uses the Q so that you can give a description to the JMP or the LBL ...

you'll see the same effect when they use the letter "U" in front of a JSR (Jump to Subroutine) instruction ...

BruceJW said:
yes, me too. I have no idea about the Q...

Surely Ron has given you "some" idea about the "Q" (JMP/LBL)?

Just to add slightly to Ron's brief explanation (of which I've no doubt Ron you would have added to if thought necessary) so as to explain more of what you see with the "Q" references...

In RSLogix 500 - When you add a "Jump to Label" JMP instruction to a routine, and define a decimal number for the JMP (0-999), the software automatically prefixes the JMP/LBL "Q" identifier as Ron has pointed out. But, it also adds the routine number automatically...

Example 1:

LAD 2 -
JMP instruction is added and defined by user as - 1
Software automatically defines it as - Q2:1

Q = JMP or LBL instruction prefix
2: = Ladder routine number and delimiter ":"
1 = user defined arbitrary label

The corresponding "Label" LBL instruction is then assigned the same Q2:1 label.

Example 2:

LAD 10 -
JMP instruction is added and defined by user as - 100
Software automatically defines it as - Q10:100

Q = JMP or LBL instruction prefix
10: = Ladder routine number and delimiter ":"
100 = user defined arbitrary label

The corresponding "Label" LBL instruction is then assigned the same Q10:100 label.

The number to the right of the ":" delimiter in a JMP instruction is the user defined parameter that matters when trying to locate the paired LBL instruction. While arbitrary, the number label must be assigned to a corresponding LBL instruction or the project will not verify. This is because the JMP is classed as an output instruction.

The LBL instruction is classed as an input instruction and so does not require a corresponding JMP instruction and will verify. Of course, to actually use the LBL, you would have to assign a valid JMP instruction label.

But we're not explaining what a JMP/LBL sequence is here?...

If the rung-condition-in to a JMP output instruction is evaluated TRUE, then the JMP instruction will direct the current program scan to the rung beginning with the corresponding LBL instruction. This LBL instruction may be earlier in the routine or later in the routine than the JMP instruction. If earlier, the program jumps back to that rung and carries on from there. If later, the program jumps forward to that rung and carries on from there. Whichever direction it jumps, the program logic in between is jumped over, so to speak.

JMP/LBL instructions may be useful when only wanting to execute a certain section of logic during or after a certain event, otherwise normally jumping over this section of logic. Or alternatively, wanting to continuously loop through a certain section of logic until a certain event, thereafter moving to another section of logic and staying there, or returning to the loop after the event, etc.

You do have to be careful though when using them "heavily" as the program scan can get caught looping too much and the watchdog timer may elapse.

SLC 500 = 256 labels per routine or entire project
MicroLogix = 1000 labels per routine or entire project

------------

BruceJW said:
...MVM I assume is the masked move, only move certain bits in word, dword etc.

If you take the time to read Ron's linked threads in post#12 here, and in particular "cut to the chase" with the second link, you would not need to assume, at all. I don't think there is too much I could add to those posts in explaining the Masked Move MVM instruction.

------------

While it was interesting reading again Terry Wood's take on what is or should be classed as a true Mask; I do agree that the explanation of the AB version is all that matters when that is what the OP has specifically asked about.

But there is one term that I do not think AB/RA has chosen wisely and can possibly add confusion when users meet or read its name for the first time. A pet peeve of mine, if you will - and that is "Move", as in the Move "MOV" or Masked Move "MVM" instructions. The term "Move" suggests that the data in the Source is moved from there to wherever the instruction's Destination is. This may also then suggest that, as the data has been moved, the Source should now be "empty" (0). As we know, for both these instructions, that is not the case. These instruction's execution "moves a copy (or masked copy) of the source to the destination each scan. The original value remains intact and unchanged in its source location".

That's not really a move, is it?

"Moves a copy" is even more confusing when you are dealing with an instruction set that included both Copy and Move type instructions. One's initial distinction between the two here could easily be thought of as Copy instructions only copy source data without manipulating the source and Move instructions actually Move the source data out of the source address to another address.

Of course, for those of us who know better, that neither type manipulates the Source data, and that the differentiation between what these types of instructions actually do is far from what they are called; it may still lead to confusion, for some, I'm sure.

So that might beg the question - what should we call a "Move" type instruction instead?

I'll put that one to the floor, if there are any takers?...

Regards,
George.
 
So that might beg the question - what should we call a "Move" type instruction instead?

I'll put that one to the floor, if there are any takers?...


DUPlicate or REPlicate ?

But I don't think MOV is such a bad mnemonic, after all most programming languages use MOV in some form, and I doubt any one of them clears the source.


To be honest, if the source was cleared by a MOV, how would you move the same source to more than one destination ? It would surely be impossible......
 
So that might beg the question - what should we call a "Move" type instruction instead?

I'll put that one to the floor, if there are any takers?...

Regards,
George.
The guys that actively develop Studio 5000, they sometimes dwell over the same questions for hours.
 
I am going to stick my neck out here a bit.
I would really like to see the program on this but
Is there any chance that the equipment or the programmer is from across the big waters like maybe the UK. ?
Is the Q used as a symbol ?
In some country’s they use the term Q as a waiting line I think is should be QUE
Waiting in line at the bank teller, would be you are in the bank Q
Waiting in line to board the airplane, you are in the boarding Q

I this case and usage I would believe it a message Q , to hole a list of messages to be transmitted to a message display of some short. The message display would have a message stored in the display and displayed when the message number is receiver at the input word. You would read or set the bits as BCD to display the message you want. Some message displays allow you to display variables from the PLC data table along with the caned massage. That data would also have to placed in the Q to be transmitted.
You have to get a copy of the message display manual to understand how it works.
Years ago AB had DL message display available in 1, 2 and 4 line models that’s the way they worked. They were very popular way back before the computer screens.
I did one back them that had about 100 caned massaged some were setup to display process data, some process status and some displayed alarms it all depended on the number sent and received and the caned message.
It could also be used in another context but without more information it would be difficult to know
 

Similar Topics

So here's my situation, I have been tasked with modifying the logic to mimic a button press in the PLC. I have two identical machines however one...
Replies
6
Views
518
Hello, I'm new to programming. I'm using RSLogix500 to modify an existing program for a SLC500. My plan was to use one of the existing inputs...
Replies
26
Views
1,909
So i have an allen bradley rack (2080-LC50-24QWB), i have it connected through ethernet. I dont have an offline program so im trying to upload...
Replies
6
Views
624
Hi Everyone, I am supporting a system which runs on a SLC 500 (1747-L532). A fault has developed whereby the output state of some digital outputs...
Replies
10
Views
958
Hello, I am currently taking a course on plc programming and in the course rslogix 500 is being used. I am however having a problem since it keeps...
Replies
4
Views
1,638
Back
Top Bottom