Array troubles

Join Date
Jun 2010
Location
Sherman
Posts
24
I am new to working with sequencers, and the help on rls logic 5000 doesn't seem to help me much, I am trying to create a new array and not getting a lot of results on how to do it.
so far this is what I have, it's very similiar to the example in help.
:geek::geek:

hehe.jpg
 
The SQO instruction is like a indirect MVM with a built in counter. On each false to true transition, it will increment it's position, and MOV the indirect (position based) source through the mask to the destination. The EN bit for its control will only be set while the SQO instruction is enabled (all rung in conditions true).

The way you have it written, the SQO EN bit will keep the timer from running and the timer DN bit will keep the SQO from happening.

My recommendation is to not use the SQO instruction unless you are utilizing the Mask file, or really need those built in control bits and your sequencer always runs from step 1 to whatever and only goes to step 0 when you restart the whole machine from power up.

In about every other case, you can do the same thing with MVM with indirect addressing and separate logic to increment/decrement the step pointer.

Search the forum, I am sure there are many threads on the SQO and alternatives. My preference with A/B SLC, PLC, and PAC, is to use MEQ with indirection to replace the SQI instruction, and indirect MVM (or MOV) rather than SQO instructions to allow more flexibility.

I also prefer not to put the output of the sequencer directly to the outputs. What if you have a 73 step sequencer and you need to move an output from point 8 to point 13? Are you going to go through all 73 steps and move that bit? What if your spare is in a whole different card not addressed by the sequencer?

I make the sequencer destination internal tags, and then map those bit by bit to the real I/O, so the bit order can be re-arranged. This also allows you to group bits by logical order in your sequencer chart even if they are not wired that way.
 
There's a more basic thing: the tag array_dint is probably a DINT atomic data type, not a DINT[x] array data type.

In the RSLogix 5000 tag database, switch to the Edit Tags tab and change the data type to DINT[8] or DINT[20] or whatever you need. Remember that the first element is always [0].
 
thanks a lot :) Yeah I had to make my array to the proper dimensions, I didn't realize that. I wanted to have experience with arrays, and know how to use them, so I have played with it and found how to manually increment the steps in the SQO , so my next mission was to do it automatically. I have tried several combo's. this seems to work, with using the counter cummulated value, but also there are strange things happening with my timer, it seems to go backwards, which I know they are not suppose to do, either that or it so fast it appears to go backwards.:cry:oh yeah I changed the dn to examine if off and it increments but the lights flash at different rate than the timer

stage 1.jpg stage 2.jpg
 
Last edited:

Similar Topics

Hi, I'm having an issue in crimson 3.0 when I create a programme using a case statement referencing a fault word that each bit needs to change the...
Replies
4
Views
191
I am trying to copy an array of real numbers into a UDT with a real data type element. I have attached a snip below showing my COP instruction...
Replies
4
Views
203
I have an array of 55 REAL values. Is there a way to multiply based on the array location ? I have 55 transfer belts that are equally spaced...
Replies
3
Views
153
Hello everyone, I'm working on a project that involves controlling an array of nozzles within a CNC environment, where the nozzles travel along a...
Replies
5
Views
176
Hi. I'm using a Modbus ProSoft where I basically map data to a big INT array. Example, where GX_I_63HPU is a REAL, MNETC.DATA.WriteData[200] an...
Replies
21
Views
428
Back
Top Bottom