Gerry

MrPLC Member
  • Content count

    481
  • Joined

  • Last visited

Everything posted by Gerry

  1. Currenty when going online there were no errors however, the cylinders connected to the solenoids aren't advancing or retracting.Of course not. The state of your input CylinderIn (= 0) does not match any of the patterns in your SequenceIn array. Presumably, you will need to initialise CylinderOut1 so that the feedback on CylinderIn matches SequenceIn[0].
  2. I think you may be confusing terminology. Most likely, what you wish to achieve can be done by having the Main Routine of the Continuous Task call other Routines in the Continuous Task using JSR instructions. It is best to reserve Periodic Tasks and Event Tasks for the special purposes for which they are intended.
  3. kaiser_will is more than a little bit confused... RSView32 is for PC's running Windows 2000 or XP(pro). (don't know about vista or 7). FactoryTalkView ME is for Panelview + (and perhaps others) running Windows CE. RSView32 produces a .rsv file, not .mer. Maybe the version number is embedded in the .rsv file somewhere? In your 'works' system, look for "What's New" in the help system to get an idea of how extensive any changes might be. You may need a newer version of RSLinx.
  4. The 1756-ENET series A doesn't support ethernet I/O. You need either a series B or 1756-ENBT.
  5. @pembuk The instruction you're looking for is MAOC (motion axis output cam). It will compensate for axis speed and reaction time of whatever you're operating with the cam output.
  6. See this from 2002: http://www.plctalk.net/qanda/showthread.php?t=12292
  7. ...been trying to find that manual. Closest I found is this: Rockwell Automation Publication 1756-RM084R-EN-P October 2014 see pages 64, 65 their example: DATATYPE MyBits (FamilyType := NoFamily) SINT ZZZZZZZZZZMyBits0 (Hidden := 1); BIT MyBit0 ZZZZZZZZZZMyBits0 : 0 (Radix := Binary); BIT MyBit1 ZZZZZZZZZZMyBits0 : 1 (Radix := Binary); END_DATATYPE Change name MyBits to whatever e.g. RTAC Change SINT ZZZZZZZZZZMyBits0 (Hidden := 1); to INT Status; (I don't think Hidden := 0 is necessary) Alias your bits: BIT Fault Status : 0 (Descrption := "fault decription"); (I don't think radix is necessary -- description more useful). note that spaces and semi-colons are vital. Correction to my previous post: access the bits as RTAC[index].Fault You could create alias tags for the RTAC array members in the interest of user-friendliness.
  8. I suspected there was a field bus involved. Using a technique known as 'bit-aliasing' in your UDT you can access the bits individually or collectively as SINT, INT, or DINT. To set it up, you need to export your program to .L5K and edit the UDT definition with a text editor. This is described in one of the manuals for CLX (system planning, I think). The UDT definitions are near the beginning of the file. After editing, the modified UDT can't be edited in RSLogix (probably a good thing). If your UDT is called RTAC, it could include an INT called Status with its bits aliased as offline, fault, etc. You could then use a FAL to copy from the input array to your array of UDT's. Maybe you can eliminate the intermediate step. source_int[index] => RTAC[index].Status access the bits as RTAC[index].Status.fault
  9. The simple, but inelegant way to "fix" the above is to make the source array DINT's instead of INT's. Without more information, I can't (won't) offer anything better.
  10. The symptom suggests a sudden change in the feedback position of the axis indicating that the axis is way ahead of where it should be. The cause could be the encoder or the module. One would expect that to cause a position error. If the axis config for what action to take on position error is "stop motion", that will cancel the jog, but leave the axis enabled and therefore it will continue to attempt to bring actual position in line with command posiiton.
  11. Before I offer any suggestions, can you first explain how the 14 bits are loaded into the source array? I'm speculating that you may not need the data in two separate arrays.
  12. Few things to be aware of: 1. the COP instruction operates byte by byte with no consideration of data types - i.e. there is no conversion like with a MOV 2. the length is referencing the destination data type. 3. a udt has to align with a 32-bit boundary - i.e. minimum size = 4 bytes / 32 bits Each UDT in your destination array is 32 bits long, regardless of you only defining 4. So, your COP instruction will copy 6x32=192 bits starting at Source_array[0]. The first 2 INT's from the source will go into the first destination UDT, but you will only be able to access the 4 bits you have defined. If the source array is long enough, the following 10 INT's will go into the next 5 UDT's. If the source array isn't long enough, whatever follows it in memory will be copied until the requested length (192 bits) is satisfied.
  13. Since Rockwell list InView as a legacy product, I assume they don't make them anymore. However, if you have one, I may be able to help. I only have experience with the basic model 2706-P22R using the ethernet/ip interface module & ControlLogix. If you have a different setup, I may not be much help. The InView enet/ip interface is not straight-forward to set up.
  14. Going 'way 'way back there was -AL (Adapter Local) and -AR (Adapter Remote). The -AR used 4-core intercom cable to communicate with the original 1774 PLC. As the PLC-2 gained RIO (SD scanner) and the PLC-3 was introduced, they switched to twin-ax cable (blue hose) and the -AS adapter. Maybe the S stands for something (synchronous perhaps) or maybe it's just the next letter in the alphabet. Later improvements to the -AS adapter resulted in the -ASB (-AS series B).
  15. Are they truly random? That you can see the bits on in the PLC data table suggests that they may be a remnant from previous program editing. What happens if you reset the bits in the data table? Are there other PLC's on the same ethernet network? i.e. maybe a different processor is writing to the ip address of your flex adapter. Leakage has always been an issue with triac outputs, but that won't affect the led indicators - they are driven from the backplane (bus) signals, not the triac output. Much older generation triac modules (1771 & older) had neon indicators driven from the triacs, which often gave false indication for light/no loads.
  16. With a bit of forward planning, it is easy to only respond to new alarms. Requires a user-defined data type. Hope all can follow attached example. Alarms.ACD
  17. Why do none of you guys use the DDT or FBC instructions?? Annunciation must be a prime reason for their existence.
  18. No. A tag defined simply as BOOL will take 32 bits of memory even though only one bit is useable. A tag defined as BOOL[32] will also take 32 bits of memory, but they can all be used. Every tag is aligned to a 32-bit boundary in memory. Arrays are packed into 32-bit chunks i.e. BOOL[32], SINT[4]. INT[2] all use the same space as a DINT. However, bear in mind that there is a penalty in program memory usage when operating on types other than DINT -- always use a DINT for an array index, even if a SINT would handle all index values. The tag Step above will use the equivalent of 3 DINT's. It may be useful to give the individual bits aliases to identify the step operation.
  19. Make your 'bits' tag a boolean array -- e.g. BOOL[96] Then use the logic you've mentioned -- CLR bits; OTE bits[ptr] Note no '.' between "bits" and "[ptr]" I suggest to preface the rung with a DTR on ptr.
  20. To the best of my knowledge, the "R" in the adaptor part no. stands for 'redundant'. I've never heard of daisy-chaining twisted pair ethernet.
  21. OK, I think you have the concept. I doubt you will need that many subnets, but no harm done. Just remember you will have to fit in with the corporate IT so subnet availability may be limited. You might consider distributing switches to cut down on cabling. For ControlLogix I/O on ethermet/ip you should have a dedicated switch for the controller and its attached I/O. The switch needs to support IGMP snooping & querying to isolate the multicast traffic from the rest of the network. I've had good results with Hirschman brand.
  22. Reserve a sequential series of sub-nets for exclusive control system use and set an appropriate mask to allow access to all devices. Also install a wireless access point(s) so you can use your programming lap-top where ever you want -- very convenient for commissioning and trouble-shooting. Normal practice for in-house networks is to use addresses in 10.xxx.xxx.xxx series.
  23. Is "Array" a tag of some user-defined type or is it an array of "ArrayInfo" user-defined types? If the latter, then possibly use Array[index_element].Parameter4[1].0
  24. FFL Instruction

    You're comparing 40 elements of the Ingredient_Use array to the single value Stage_Number. Is that your intention? Or should Stage_Number be indexed too? In the current set-up, consecutive equal compares will not be loaded intothe FIFO as the FFL would not see a transition after the first one. That could be overcome by un-latching the EN bit of the FFL before the JMP.
  25. These sort of "crashes" were fairly common in the early days of CLX. There was never any explanation or repeatability -- but the fix was always to export to L5K and re-import. I don't recall experiencing it since version 15 came out, but I guess, from your experience, the gremlin still exists. What you say tech support told you to do sounds a bit odd - I would have suggested: export the offending program to L5Ksave the offending ACD under a new name & closeimport the L5K (should create ACD with original name)go onlineI've done this more than twice in the past.