Binary File Programming

paulrae

Member
Join Date
Nov 2009
Location
Athens PA
Posts
65
I have a B file, B101:0/3 listed in my program in several places used as both XIC and XIO (RS Logix 500 using a Micrologix 1100) I cannot find any OTE referenced in my program using the B101:0/3. How can I find what is making this logic go true (1)with no OTE listed?
 
Could something external to the PLC be writing to it, i.e. an HMI? Could another PLC be writing to it? Could the whole word be written to, not just the individual bit? Go to the data table and select the usage button. If there is a W on the right hand side, that indicates that the whole word is used somewhere.
 
There is an HMI connected, it is ome of the newer Compnent model 400. I am trying to learn that now to see if it is writing a 1 to this B101:0/3. The data table does not show a W to the right side of the word.
 
If you find that the HMI is NOT writing to it, it may have been used for debugging, and toggled manually via the software. Not the best practice to leave stuff like this behind when finished, but I've seen it done.

🍻

-Eric
 
Check any other bits in the B101:0 word or the entire B101 file to see if they have a similar usage pattern. If so, its a good bet that the developer of the project set up B101 to be used as signals from the HMI.

Do you have the RSLogix file for the project? Did the programmer put any clues in the descriptions for those bits?
 
cross reference. scroll up, might be a copy, move, block transfer etc from elswhere in the program. We use TONS of indirect addressing at my plant.
 
I found in my cross reference a SQO instruction. I do not understand how it works but it is becoming apparent that this is what is causing the B101:0/3 and several others to become true. What the program is doing is opening doors and dropping pipes with spray nozzles on the end to clean in place three large dough mixers. I was not aware that a sequencer instruction had that capability. it seems that the more I get into troubleshooting equipment programs the more I realize how much I don't know. I now need to figure out how that instruction is manipulating the 0 and 1. Time for more studying I guess. Anyone know of an easy to understand tutorial for the SQO instruction?
 
SQI and SQO are sequencer input and output files.
The SQI file is an input map "usually using B3's" that tells the sequencer which bits need to be high in order to allow the sequencer to step to the next step "an R#.pos value" of the sequence. And it tells the sequencer what order to run the sequence in.

The SQO is the output state of the B3 that goes high or low depending on what step "R#.pos" the sequencer is in. You have absoloutley no control over it directly. You have to update the data file tables in order to control which bits go high and low at what step the sequencer is in.

Very powerfull tools, but a little hard to understand until you have some practice with them.

Highlight the SQI or SQO and hit "F1" and that will bring up the help file in logix.
 
Last edited:
Here is a simple exapmle.. I hope this helps.
Hit "F1" when highlighting a SQI or SQO in Loxic to see the help file


SQI

Your input file is B3:0
length 5

most likely your sequencer has a B3 File that looks like this
lets say its only 5 words long


b3:0____0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
b3:1____0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
b3:2____0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
b3:3____0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
b3:4____0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0

When the sequencer is in step 1 it requires B3:0/0 to go high "you can control these bits" and all other B3:0/1-15 to be low before it will step to step 2

When the sequencer is in step 2 it requires B3:0/1 to go high "you can control these bits" and all other B3:0/0-15 to be low before it will step to step 3

When the sequencer is in step 3 it requires B3:0/2 to go high "you can control these bits" and all other B3:0/0-15 to be low before it will step to step 4 etc...




SQO

Output File
B3:5
length 5

b3:5____0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
b3:6____0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
b3:7____0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
b3:8____0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0
b3:9____0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0


Output Destination
b3:10

When in step 1 B3:10/0 and B3:10/1 are high
B3:10____0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

When in step 2 B3:10/1 and B3:10/2 are high
B3:10____0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0

When in step 3 B3:10/2 and B3:10/3 are high etc.....
B3:10____0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
 
Last edited:
Shhh !! all this talk of SQO is giving the game away...

..the game of how to write software that no-one can understand, not easily documentable, not easily modifiable, and generally not easily discoverable by an average maint. tech.

..it's also giving the game away how to do Traffic Lights in an Allen-Bradley PLC/SLC/Logix5000 using only two instructions !!
 

Similar Topics

How can I read individual binary bits from a SLC500 within FTH SE? With the Tag Browser I can get to the Binary Files and get each Integer from...
Replies
5
Views
1,586
Any quick way to clear an entire binary file? I have a 75-word file, with each word having 16 elements (am I saying that right, or is it the...
Replies
12
Views
2,961
Why is it that the Binary data file has only 16 available 1-bit memory points? Is this a characteristic of the 1747-L511 processor or do I need...
Replies
9
Views
7,108
Is there a way using Micrologix 1100 that I can display Binary File as say Decimal ? Eg. B3:10 would normally display as 0000 0000 0000 0011 is...
Replies
10
Views
3,324
Hi folks, I'm trying to parse a binary string on a Red Lion DA30D using a Raw UDP/IP input port. I've done this before with ASCII strings so I do...
Replies
38
Views
953
Back
Top Bottom