![]() ![]() Keep in mind that a timer is not a device, it is a computer instruction that operates on a defined location in memory, in this case, it operates on three consecutive 32 bit words of memory.DN. But don't despair, 30 rungs can be programmed in fewer man hours than has been invested in this thread so far, and it will execute just as fast as any other method, because when you get down to it, you still have to store something in 30 different memory locations. If you cannot put all 30 timers in an array then you will require 30 MOV instructions to set the presets. DN, etc, allowing you to place them all in an array but still give each one a unique name via the alias. You can also create an alias to each timer and still access the elements as. You can create an alias to a timer preset, however each timer preset will have its own alias. ![]() However, to answer your question, if you place the thirty timers in an array then you can use the FAL instruction to set all 30 presets with a value from a single DINT or an array of DINTs. But I have bowed to the inevitable.Bernie is correct, not only is that not the case, by you cannot even enter the letter N into the preset field in RSLogix 500. While searching for a register, if you hit enter instead of search, you've just modified things a bit.Īs for leaving things in the run position, I'm not a fan. In all fairness, the old LogicMaster for the GE Series Six would do the same thing. When that happens to me, I abort the entire rung and redo that edit. The same thing applies to incorrectly grabbing a tag when you really wanted the contact. I don't doubt you, I just have never seen this in the 14-15 years I've used this platform. If you can show the conditions that caused you to see this problem I would love to see it. Maybe even a difference in the controller revision (I tested using v21). In fact, in my testing it appears that if the timer ACC value would have exceeded the preset, it simply starts back at zero.īut perhaps I am not creating the logic the same way you did and that is leading to the difference. But even leaping ahead 16 years did not cause any issues. I even tried changing the clock value ahead. I just tried a little test here to see if I could cause this scenario by freezing a timer and then resuming. You are certainly right on in that when a timer is taken out of the scan (JMP or stop calling the routine) when it comes back into scan it will leap ahead adding the total elapsed time, not simply resume from where it left off as the older PLC/SLC products did.īut I have never seen it plug a negative number into the ACC. Hmm, I haven't seen this one either, and yes I have tried. If you take the timer off scan for a long time, the next time it is scanned the system clock is so far ahead that the comparison results in some wild numbers in the ACC The timers use the system clock, grab a value at one scan, then the next scan grab another value and compare them. That way we can't make accidental changes to the programs while we're troubleshooting.". One step further - over the years I've had dozens of students tell me: "We always keep our processors' keys in the RUN position. so in some cases, it might be quite awhile before anyone even realizes that Little Johnnie has made a mess of things. Going even further - in the example shown, the negative Preset value will NOT cause the processor to fault and shut down - UNTIL the input Local:1:I.Data.1 gets turned on - and the Timer's rung gets executed with True logic. those little "touchpad" things make it much too easy to cause these types of errors. ![]() Going further - this is one reason why I refuse to work with this software without having a real-honest-to-goodness mouse. Īnd in case you're wondering, there's NO WARNING that you're about to alter your program – and no warning AFTER the fact either. the mouse cursor is several inches away from the Timer's Preset value - but in RSLogix5000 that's "close enough" to count. just a sloppy Drag-and-Drop with the mouse is all it takes to ruin your day. Īnd notice that you don't have to "Edit – Accept – Test – Assemble" your timer's rung for this unintended change to take effect. Well, this is just a GUESS of course – but the figure below shows one way that pops up in every hands-on class that I teach. Had a negative value loaded into a timer in controls logix. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |