Filthy McNasty

MrPLC Member
  • Content count

    77
  • Joined

  • Last visited

Community Reputation

28 Excellent

About Filthy McNasty

  • Rank
    Sparky

Profile Information

  • Country United States
  1. PLC Keyswitch Default Position

    Bob,   The company that I have been doing contract work in since 2011 adopted the policy to leave the keyswitch in the RUN position at all times unless online edits (or downloads) are to be performed. It's been in effect for about 2 years. I do remote support so I have to call the facility to have the operator/technician move the key to RemoteRun and then call them back when my work is finished. There is an Enterprise scanner (an -L83) that as one of it's responsibilities is to scan the network for all of the PACs (>250 of them) to report if the key is in any position other than RUN. When a PAC has had its mode changed, it is logged and if the key remains in a position other than RUN, that PAC is included in the next day's report which is then sent out to the manager of that location to advise them of the situation. 
  2. Você pode usar um evento na FTView para alterar o valor de uma marca de memória IHM que está vinculada a uma entrada numérica em uma tela que está sempre em segundo plano (ela precisa permanecer carregada na memória). O evento _Change na entrada numérica seria usado para executar seu script.
  3. That sounds like a great exercise for a PLC/PAC Programming course.
  4. Go into the I/O Configuration section and map in the existing I/O module(s). Be sure to identify the exact Rack, Group, and Slot number that the module is using and be sure to use the correct Control (Usually an 'N' file or 'BT' file address) and Data (Usually an "N' file though some newer analog cards allowed 'F' (floating point) file addresses) in the configuration. Once that is done, the Setup Screen should be available. Remember to identify the Control/Address files for both BTW/BTR for analog input modules and at least the BTW for analog output modules.
  5. The conversion tool has always been a "ball park" tool. Typically, a programmer has to determine the difference in time that it would take to rewrite the code from scratch vs. using the tools and then mopping up dozens...hundreds..perhaps thousands of PCE errors and dealing with the new "aliased I/O" and incomplete (due to controller differences) MSG, BTR/BTW, ans unsupported instructions ie., . the PLC-5/SLC500 have an SCL instruction that is not part of the native Logix5000 language set.   And has been previously mentioned, the conversion tool lacks the ability to leverage improved methods of doing things in the Logix5000 platform.
  6. As this logic is in a  SLC500, the I/O scan is synchronous. Ordinarily, the physical output would have to wait until the Program Scan is finished before the state of the output bit is transferred to the I/O module. In this case, the output is a bit is in the DeviceNet transfer block for the Mapped I/O scanlist. The data is still treated as physical I/O because it has to be transferred down the backplane to the DeviceNet Scanner in the chassis. The DeviceNet configuration in the scanner would dictate when its value is sent over the DeviceNet network. To the SLC500 controller, it is still seen (and treated) as physical I/O I agree with JJackson on the need to determine where N15:201 gets its value (including HMI, external Write messages, etc.) which leads to my agreeing with Michael Loyd in that on the surface, the top rung seems redundant....but there's always something lurking in the woods.
  7. I can vouch for RSLinx 3.81 doing that. Could have used this feature 4 years ago, 
  8. I use the MOD function on an irreducible fraction such as 1/773469. A true random number generator is next to impossible for a computer without reseeding it before every sample. I use arrays I've loaded with random numbers generated by random.org where they use atmospheric noise as a source.
  9. Sequence Instructions question

    If you decide to use Sequencer instructions in one or more routines or embed them in an AOI, some tips... If you've worked with SQI and SQO before you know that after the Position value reaches the Length value (the last step) and the last step values are written to the Destination (through the mask)..... the next false-to-true rung transition in front of an SQO moves the bit values of Word 1 to the Destination word (through the mask.) In other words, the word 0 bits are not used again (except as laid out below). If you need to reset the sequencer instruction before it reaches the last step, be aware that how and when you reset it dictates the operation of the Destination. To wit: Scenario ---                   Reset Method                            True/False status of the rung the SQO is on at time of reset                               1.                                    RES instruction                                           False                                                              2.                                   RES instruction                                            True 3.                               CLR or MOV instruction                                  False                               setting the Position value to 0 (zero) 4.                               CLR or MOV instruction                                  True                               setting the Position value to 0 (zero) Outcome ------ 1. SQO Position is set to 0 (Step 0) but Destination value remains at value dictated by the value of the Stack word (based on Position value) that was last moved to the Destination. It will take a False-to-True rung transition on the SQO rung to move the SQO Position to Step 1. 2. SQO Position is set to 1 (Step 1) and Destination value changes to value in Stack for Word 1. Obviously a different outcome from Scenario 1.    The next False-to-True rung transition for the SQO rung will move the Position value to 2 and the Destination will reflect the Stack word value for Step 2. 3. SQO Position is set to 0 (Step 0) but Destination value remains at value dictated by the value of the Stack word that was last moved to the Destination. It will take a False-to-True rung transition on the SQO rung to move the SQO Position to Step 1. (Same outcome as Scenario 1.) 4. SQO Position is set to 0 (Step 1) AND Destination value changes to value in Stack for Word 0. Obviously a different outcome from all of the scenarios. This would be one way to get the SQO back to your "safe state" if you've used Position 0 in the Stack for that purpose. NOTE: This is nothing the other scenarios do. ------- If you're going to be using sequencer instructions much, I would recommend saving this Scenario list as Rockwell has never explained this well in the Logix5000, PLC-5, and SLC 500 software help files. Hope this helps.   ADDENDA: I would actually use logic external to the SQO to put the process in a "safe" state and use Position 0 (zero) for a "home" or "initialized" state.    
  10. Go on line into the Controller properties to the Minor Faults tab and hit the 'Clear Minors' button. Also, if you have a new Power Supply like the existing one, swap them out to see if the problem happens again.
  11. Sequence Instructions question

    Are you using a PLC-5 or Logix5000 platform? Either one allows for indexing through mask values as the SQI transitions through steps If PLC-5------------- Use an N (integer) or B (binary) file to hold the different mask values. Using the the same R (Control)  element you used for the SQO instruction insures that both instructions are at the same step. You would need another integer stack to store the max. time limit for each step. Each member of the stack would also correspond to the position of the sequencer instructions. So in the end you might have something like this.... B10:0 - B10:15     (16 output positions where each B10 element has its 16 bits set or reset as you desire the outputs to be.) for the SQO File B11:0 - B11:15     (16 output positions where each B10 element has its 16 bits set or reset as you desire the mask to be.) for the SQI File N12:0 - N12:15  (16 time limit value positions where each N12 element has the max. time limit you want a particular step to be in) for the SQO File. You would need a MOV instruction to move the new time limit in your step timer at each step change. R6:5  The R (Control) address element used for the SQI and SQO instructions if you desire to keep them in lockstep at all time. If there are times or situations where such a thing is undesirable, you'll use different Control elements for each instruction and add logic to manage their .POS values as necessary. I've always been leery about using SQI & SQO instructions when somebody "thinks" there will never be a need to add steps in between...add additional outputs beyond the original number of outputs...allow an operator to change the mask values...etc.You need to make sure that whatever solution you use, there is relative ease for modifications down the road If Logix5000 ------- Substitute tags & tag arrays where elements and data files are mentioned above in the PLC-5 area. However...I would use UDTs for the operational/status membbrs of the sequencer... So my tags for the operation of the sequencer would look like (using a tag named 'MySEQ' in my example) MySEQ.Position MySEQ.Output MySEQ.Input MySEQ.Mask MySEQ.StepTimeLimit etc. If this is something I thought I would do at other locations/machines  or need to change with an HMI, I would create a sequencer AOI (Add-on Instruction). ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- A few things you didn't mention..... When the timer times out for a particular step, does the sequencer automatically advance to the next step? Or do the outputs for that step change to a "safe state" until the sequencer advances? What starts and stops the sequencer? Is there a desire to be able to put the sequencer in a "Hold" state manually? If so, how are the outputs controlled while in that step? This is another reason why I would use UDT's and possibly an AOI instruction. This would afford me access to monitoring .... MySEQ.Start MySEQ.Stop MySEQ.Reset MySEQ.Hold MySEQ.ClearOutputs MySEQ.Resume The AOI would be a lot more flexible than using SQI and SQO instructions as the core of the sequncer    
  12. Control Logix Memory Allocation

    Why respond to an almost 9-year old post?  
  13. I prefer MSG instructions because I can control the transfer enabling/time. In addition, I rarely use MSG Writes because people can get confused about why data is changing in a PAC if there isn't documentation to mention this fact.   Finally, Produce & Consume can get you in trouble. If PAC A is producing data and PAC B is consuming it but I decide later to produce an additional tag in PAC A for PAC B to consume and I make a mistake in trying to consume it in PAC B by misspelling the produced tag's name in PAC A while creating the consumed tag, not only will this new consumed tag fail, but so will the first consumed tag that was previously working.
  14. Configure a Logix5000 Message?

    I usually only map in a PAC if I'm going to be producing/consuming tags (which is rare) so use the numeric path but either way works.
  15. Be sure to use realistic update rates on the Consuming tag(s)