10-07-2012 03:22 PM
Top #2
configuration data table is your choice. here is the trick
mask is placed depending on which you want to act Output.
The mask can be fixed or variable. If you enter a hexadecimal code, it is fixed. If you
enter an element address or a file address for changing the mask with each
step, it is variable.
Remember1(is important):
If the position is equal to zero at startup, when you switch the processor from
the program mode to the run mode instruction operation depends on whether
the rung is true or false on the first scan.
• If true, the instruction transfers the value in step zero.
• If false, the instruction waits for the first rung transition from false-to-true and transfers the value in step one.
Remember2:
i have slc 5/03. there may be differences. although I think that logic is the same.
respectfully
10-07-2012 11:24 PM
Top #3
It's a little difficult to understand what your problem is from what information you have given, Brian. I can only offer the following generic advice.
Personally, and generally also among other people I have worked with, the general view is not to use inbuilt sequencing functions provided in various PLC programming languages. As with several other facilities provided, they often have two contrary problems. In some ways, the problem can be that the facility provided tries to be all things to all people, ends up being too complicated, and you are better writing your own more targeted version, more tailored to your actual requirements. Contrarily, the problem can also be that the facility is too restrictive and actually prevents you achieving what you want to achieve, and trying to work around or circumvent the restrictions ends up being too involved, so you come back to creating your own version.
Whatever the rights and wrongs of that, sequencing ought not to be that difficult and there are a few different techniques that, once you are in to them, are dead easy, the usual problem is actually that there can be a great deal of tedious, repetitive work to do. In my experience, it is attempts to circumvent that work that sometimes leads to trouble!
Anyway, one technique that I have seen used is to use a series of Boolean flags. In this technique, as conditions to complete a stage are met, the previous flag is reset and the next is set. I think the perceived advantage of this technique is less load on the processor because processing Boolean flags is light in that regard. But, again, my experience is that this technique tends to be less reliable, more subject to hang-ups, more difficult for those not involved in the original design to understand, more difficult to write changes and generally maintain. For me, the better technique is to use an integer sequence code. The heart and soul of getting that right is all about good design of your sequence code. You then have one dedicated routine that tests the conditions and controls the sequence code, and the business of opening and closing valves, running and stopping pumps, or whatever, is simply about testing that the sequence code is within the appropriate range. Because that technique does involve lots of integer comparisons it may well involve much more load on the processor. However, as I say, in my experience it tends to be more reliable and much easier to change and maintain.
Having disparaged inbuilt, functions, I should mention something else that is a bit of a deeper subject. I don’t know if you have encountered the S88 standard, but if you are involved in the design of sequences, particularly relating to batch processes, the S88 standard is something you might need to have a look at. If you decide to embrace it, there are a range of inbuilt facilities in RSLogix5000, if that is the programming language you are using, that will make your life easier. Phase Manager is one and the SFC language – programming stages and transitions in a more graphic way - is another. Again, to attempt to fully explain these things here is not practical, I can only point you towards them.