Bit Sequencer in a GE (90-30) PLC

phuz

Member
Join Date
Jun 2008
Location
Mohnton, PA
Posts
1,044
I'm seeing some confusing descriptions on the Bit Sequencer (BIT SEQ) in the GE PLC instruction set and I'm converting one of these to AB so I want to make sure I handle it appropriately.

The way I understand it is that when it's reset by triggering the R input, the step gets reset to the N step, and everything is set to zero; then, upon enabling, the first position will be set high and everything else to zero. On the next trigger, the next position will be high and everything else set to zero.

Although this description from Machine Edition 9.7 describes this a bit different.

Untitled.png
 
A quick look at this manual it seems it is not actually a bit sequence i.e. it does not set a bit but puts the value in a word, well that is how I read it, so really it is a sequence step number, I may be wrong but look at this link that seems to explain it in a little more detail.
https://manualsdump.com/en/manuals/ge-90-30-20-micro/187989/161

So it appears that it uses 3 words i.e. starting at R0010 through to R0012
R0010 will be the step number
R0011 is length of sequence in bits i.e. 4 would be steps 1-4
R0012 is control word (not sure what this is perhaps it sets the bit that is pointed to in the step number.
It seems a little weird but also it can reverse i.e. go from step 1 to 4 or 4-1 or forward & backwards depending on the DIR being true or false.
 
A quick look at this manual it seems it is not actually a bit sequence i.e. it does not set a bit but puts the value in a word, well that is how I read it, so really it is a sequence step number, I may be wrong but look at this link that seems to explain it in a little more detail.
https://manualsdump.com/en/manuals/ge-90-30-20-micro/187989/161

So it appears that it uses 3 words i.e. starting at R0010 through to R0012
R0010 will be the step number
R0011 is length of sequence in bits i.e. 4 would be steps 1-4
R0012 is control word (not sure what this is perhaps it sets the bit that is pointed to in the step number.
It seems a little weird but also it can reverse i.e. go from step 1 to 4 or 4-1 or forward & backwards depending on the DIR being true or false.

Correct. We don't worry about the R0010, R0011, and R0012 words because they are internal to the Bit Sequencer. As the unit sequences, the current bit (step) is set to one; but what I'm trying to understand is are all the other bits set to zero? In the example above, it says "the other 7 bits are set to zero" except the length of that example is 192, not 8, hence the confusion.

I think of a bit sequencer shifting a single high bit one direction or another while all other bits are zero.
 
On the next page it mentions that ST is the start address of the bits, so from that I conclude that if you set the length of bits to 32 (or any legth) then ST being R0001 then the bits are R0001.0 to R0002.15 i.e. 32 bits if it was 64 then it would use registers R0001.0 to R0004.15.
So I assume that the example is 192 bits so 12 registers, not sure how big it can be but expect it to be a max of 256 bits or 16 words.
 
On the next page it mentions that ST is the start address of the bits, so from that I conclude that if you set the length of bits to 32 (or any legth) then ST being R0001 then the bits are R0001.0 to R0002.15 i.e. 32 bits if it was 64 then it would use registers R0001.0 to R0004.15.
So I assume that the example is 192 bits so 12 registers, not sure how big it can be but expect it to be a max of 256 bits or 16 words.

Correct.
However, the question was what happens to the other bits after the increment takes place and sets the "step" bit high. In the example provided, there are 192 bits, yet the example says the "other seven bits" are set to zero. Pretty sure it's a typo, because I found another example which seems to provide better context.

Untitled.png
 
I'm not fond of the example. The value of 192 is the length in bits of the sequencer. That means it spans 12 words, from %R1 through %R12 which overwrites the three control words for the function. Don't duplicate the example in an actual program!

At any rate, the function defines a range of addresses over which one and only one bit is true at any time. Each transition of the EN node moves the bit that is ON by one place. The direction of movement is determined by the state of the DIR node, TRUE = increasing, false = decreasing. The value at the N node determines which bit is ON when the R node is true. The ST node defines the starting address of the range of bits. The LEN parameter (192 in the example) is the number of bits in the sequencer range.
 
In the manual it does explain this

When NXT_SEQ is active and CLEAR is not active, the bit for step number 3 is cleared and the bitfor step number 2 or 4 (depending on whether DIR is energized) is set so in effect there can only be one bit on at a time.
 
I'm not fond of the example. The value of 192 is the length in bits of the sequencer. That means it spans 12 words, from %R1 through %R12 which overwrites the three control words for the function. Don't duplicate the example in an actual program!

At any rate, the function defines a range of addresses over which one and only one bit is true at any time. Each transition of the EN node moves the bit that is ON by one place. The direction of movement is determined by the state of the DIR node, TRUE = increasing, false = decreasing. The value at the N node determines which bit is ON when the R node is true. The ST node defines the starting address of the range of bits. The LEN parameter (192 in the example) is the number of bits in the sequencer range.

Haha, I didn't even pay attention to that. You're absolutely correct. Horrible example!
It's also confusing when it says that during a reset, ALL OTHER BITS will be set to zero, when theoretically only one bit (the active one) should change to zero, while the "step" bit changes to one.

Thanks Steve!
 
Personally, I wouldn't bother creating one if the new platform does not have it, just increment/decrement a word & use compares to run the logic. incidently, if you have an HMI on the system the sequence number can be a multiple message on the screen showing what step/operation it is on.
I do agree that a bit as far as symbols can make it easy, i.e. Bitxxx is "Move_Plate" so when you see the symbol you know what that rung is doing, in saying that, a comment on the rung can tell you that anyway.
 
Personally, I wouldn't bother creating one if the new platform does not have it, just increment/decrement a word & use compares to run the logic. incidently, if you have an HMI on the system the sequence number can be a multiple message on the screen showing what step/operation it is on.
I do agree that a bit as far as symbols can make it easy, i.e. Bitxxx is "Move_Plate" so when you see the symbol you know what that rung is doing, in saying that, a comment on the rung can tell you that anyway.

Normally I would agree, but I am trying to make this program match the old one as much as possible for troubleshooting purposes. The old program has no descriptors and I was only able to add I/O descriptors based on the electrical prints; so I am very hesitant to change things until I understand what they are doing.
 

Similar Topics

See the screenshot of EIP tag list. We are trying to read in a digital input that is hard-wired. It is shown here as I31.1. I believe we cannot...
Replies
7
Views
270
A couple days ago I accidentally toggled an alwasyoff bit. The issue is it was set up as a single OTU on a rung, nothing else, and used as XICs...
Replies
3
Views
219
Hi I have an old panel builder 32 that I’m replacing for a factory talk me hmi . In the plc for the old panel builder there is a coms bit for the...
Replies
0
Views
69
Hello, Haven't been on in a while. I need to generate a bit level pdf of the I/O for RSLogix 500. I can generate a report but it just shows the...
Replies
1
Views
143
I tried researching but I still don't quite get it. As far as I understood, it's used after a function is called in STL and then if the function...
Replies
1
Views
134
Back
Top Bottom