ElectronGuru

MrPLC Member
  • Content count

    363
  • Joined

  • Last visited

Posts posted by ElectronGuru


  1. I have a customer who wants to put counters on 35 alarms, and make the 5 top-most occurring alarms available for display on an HMI. I've put a branch rung under each alarm condition with a counter and move instruction. The MOV moves the accumulators' values to designated, corresponding spots in a newly created array of 35 DINTS. The problem is in sorting the data from lowest highest. I believe the SRT instruction sorts data within the array, but not the array tags themselves. This would lead to the wrong data being placed on each alarm accumulator tag in the array. Writing compare instructions or expressions that analyze 35 pieces of data against each other, either in FactoryTalk or ControlLogix, seems impractical, if not impossible. 

    We're using 1769-L30ER controllers and PanelView 6 & 7 HMIs.

    Any ideas? Please tell me there's a simple instruction or two I don't know about that will accomplish this.


  2. I'm going to repeat a few things said above, with no disrespect intended to previous replies.

    Assuming the input card is in the same chassis as the controller that owns it, that input card would be considered "local". Open the tag monitor by double clicking on the controller tags file near the top of the controller organizer, then scroll down the list of tags until you see the Local modules. Digital input cards typically have Input and Configuration files. Digital output cards typically have Input, Output, and Configuration files. If you're looking for a physical, hard-wired input, find the correct input card, and open its input file. 

    The tag structure goes like this; Local or Remote, slot, type (input or output), member (Data (I/O values), Fault, etc), input point.

    So if I'm looking for a digital input wired to input point 4, on an input card in slot 7, the syntax for that module tag is: Local:4:I.Data.7

    If I'm looking for an analog output wired to channel 3 on a card in slot 2, the syntax for that module tag is: Local:2:O.Ch3Data

    Once you've found your actual, hardwired input or output point in the tag monitor, right click on the light-grey colored box to the left of the tag name, select "Go to cross reference report", and a new dialog box will pop up showing everywhere in the project that tag is used.

    Hope this helps!


  3. You've set parameter 558 to Step Logic Last, which means the drive will, "Use Step Logic commands from last Step Logic step at last drive stop". In other words, the drive must complete a step and stop before it can continue to the next step. Have you tried using one of your digital input functions (parameters 62 through 66) as a Home command? Option 35 will make the input a home signal. The input must be on when the drive receives a start command, but I don't know if this will interrupt and over-ride a partially completed step logic command.

    To jump from one step to another step out of sequence (or (presumably) before a step is complete) you would have to change parameter 558 to "3" Preset StepL, where it uses digital inputs to step it through a sequence. 

    Have you considered putting an inexpensive controller in the system and just letting ladder logic monitor the steps and control the drive?


  4. I'm not familiar with that encoder but the high speed counter you're using is pretty reliable. You said, "with the draw wire untouched"; does that mean that your encoder data is drifting when the process is not running? If so, you've almost definitely got EMI somewhere in your control wiring, or there may be slight motion on the machine that you can't see, that's being detected. If you suspect EMI, check your grounds, shields, adjacent higher-power equipment, RF equipment (radios or wireless SCADA), etc. To eliminate (or identify) actual motion as the cause, look at the counter's tags in the controller and check the raw, unscaled data. The problem is that each of these two possible issues can mimic the other, so you may have to temporarily disable the encoder either physically or in code to isolate the problem.

    That aside, I assume you've checked the usual suspects:

    • Wiring is good, including proper grounding, shielding, and verified no EMI.
    • Proper voltage / power is available to both devices.
    • Mounting and coupling on the encoder is good, and device driving the encoder is subject to excessive vibration. (No bad bearings anywhere).
    • The counter is set to encoder mode.
    • Configured resolution (and other parameters) in the card matches the name plate on the encoder.
    • The raw data being sent by the counter card to the controller is good, and the problem isn't somewhere in the controller's code. (Bad scaling / offsets are common).

    Just in case you don't have it, here's a link to the counter card's user manual: https://literature.rockwellautomation.com/idc/groups/literature/documents/um/1734-um003_-en-p.pdf

     

    Hope this helps.

     

     


  5. Doesn't look like there's a way to do this. The field in the export tool where the file to exported is placed only allows one file at a time. I've only ever needed to export one file at a time, so it never occurred to me to try more than one. However, I just looked up export under the help topics and there only appear to be instructions for single file transfers.  If you do discover a way to export batches at a time, please share.


  6. According the fault code description, your internal control voltage is staying too low for too long after the contactor closes. Check that your line power is within guidelines and evenly balanced from phase to phase. Check your grounds as well, as stated in the troubleshooting section of the book you attached. If you're still having the problem,  I would see about finding a place to measure the actual voltage. If it's actually low, figure out what's pulling it down. If it's not, replace the control module.

    Hope this helps.


  7. The logic in a Micro 800 is supposed to work the same as in RS500. So you'll have a main routine, followed by all subroutines. In RS500, you're limited to 256 routines total, although 0 & 1 are proprietary to the system and not accessible. That leaves Ladder 2 as the main routine, and 3 through 256 as subs. You can also have a subroutine "call" another subroutine, which is then referred to as a "nested" subroutine. RS500 limits you to eight nested subroutines but if you need that many, you're likely doing something very wrong, lol.

    All that said, I believe the Micro 800s are only programmable through Connected Components Workbench (CCW). (Someone please correct me if I'm wrong on this). The ladder editor in CCW sucks and is not anywhere near as easy as writing code in RS500. I'm using CCW V10, and primarily for VFDs. I haven't played with CCW V12 (the most recent update), but I've heard the editor and tool bars are "somewhat better". I was told by a Rockwell distributor sales engineer that the Micro 800s were Rockwell's answer to the products being sold by Automation Direct. It's an inexpensive but long-lasting, rugged controller for small to medium controller-based systems, with a free programming tool, CCW.. The trade-off is that the programming tool isn't terribly user friendly.

    So, if you're just running a trash compactor or a bailer and need to save money in terms of actual dollars spent, get a Micro 800, download CCW and deal with the ladder editor extending your programming time. The PLC itself will definitely last longer that anything Automation Direct is putting out there. However, if I were running a little bit bigger project that required a lot of subroutines and such, I'd probably go with a Micro 1400, just bite the bullet, and pay for RS500.

    Long answer to a simple question, but I hope this helps :-)


  8. Jobbe9000 gives great advice on using DINTs instead of individual BOOLs. Every time you create a tag as a BOOL in CLX, you still consume the volume of a DINT. Probably not a big deal if you're running a small process that's just turning things on and off. But this is extremely important when running large, high speed processes, particularly in closed loop systems where you may be evaluating data and bandwidth hogs, like PIDs. Even if the "space" available in the controller is not an issue, it just makes better sense to allocate memory in the controller's default data type, DINT, because it makes for a more efficient running controller.

    Starting in Version 21 (when they changed from RS5000 to Studio-5000) the tag names, descriptions, rungs comments (virtually all of the internal documentation) was now downloadable to the controller. That means anyone could walk up to any controller and have that info available on the rungs, without having a pre-existing, off-line copy of the project on their laptop. You still have to have a matching copy on your laptop, but Studio will create it for you when it sees one doesn't exist. (It's not automatic; you have to follow the prompts and click on some things). The tradeoff is that the documentation eats up space in the controller, hence tag names consume space, as described above by Jobbe9000. You can disable this feature by unchecking a couple of boxes in the project properties dialogue box, under the Project tab. I've attached a .pdf showing where to look if you're not familiar with it.

    Also, from personal experience, I can tell you for a fact that structured text executes significantly slower than ladder. When looking at the task monitors while similar codes in ST or ladder are executing in separate, identical controllers, ST is about 5X slower. Therefore, I only use it for instructions that don't exist in the other CLX programming languages. That said, Rockwell brags that the new 5580 controllers can execute ST just as fast as ladder, but I haven't been able to lay hands on one of those $6,000+ cards to check it out.

    Hope you find this useful.

    S5K.pdf


  9. That's a really old card on a really old system. That goes in a PLC-5 chassis, yes? Usually when a catalog number has a "/A" or "/B" etc behind it, that designates additional functionality added to the newer model. For years Allen Bradley has been in the habit of adding new features to the end of the list (so-to-speak) so as to make I/O cards backward compatible. I did open an RS5 file and looked at available I/O cards. It only shows the 1171-OW16, and does not differentiate between /A, /B, etc. So, I don't think you should have any issues using the /B as a direct replacement. 

    Unfortunately, Allen Bradley has retired the PLC-5 so I wasn't able to find a readily available .pdf on the I/O cards. If I do come across one, I reply again with a link.

    Hope this helps.


  10. Joe has given some good advice here. As to what caused the fault, non-recoverable faults are usually hardware faults. When this happens, something has gone so catastrophically wrong that the controller erases its project from memory, leaving the I/O cards to their control I/O via their configuration files. As often as not, a non-recoverable fault results in the replacement of the controller card, so I would definitely spend some time trying to find out what caused this. Electrical power surges, loose power/ ground connections, and prolonged excessive heat are a handful of the things that can cause this.  

    Good luck!


  11. RS232 is a serial network, but I use the word "network" very loosely. It's primarily used to talk directly from a laptop to controller for going online, uploading, and downloading. Since its range is limited to 50 feet, it's not typically used for permanent networking of controllers.

    That said, for any given network, you simply need the appropriate network cards installed at each controller, and then write the code to get the needed information from one controller to the other. The 1500 will use RS500 but as of now, I believe the only way to write code for an 800 is with Connected Components Workbench (CCW). Either way, you will need to use the Message instruction to exchange data between these controllers.

    Hope this helps.


  12. I don't know of any way to extract data from a .acd without Studio installed on the laptop. If the file is small enough that it can be attached to an email, you might try sending it to someone that has V21 or later. They can then export the tag data base and send it back to you as  a text or .csv file.

    If you have RSLinx on your laptop and access to the controller, you can also monitor the tags live without going on line with the controller. Open Linx as an application and after setting up an appropriate driver for the network being used, right click on the controller and open the Data Monitor. It will produce an alpha-numeric list of the tags with their current values without interfering with controller operation.

    If anyone has a trick for extracting data from a .acd without access to Studio, I'd love to hear it.

    Hope this helps.


  13. Version 30 is the first one that is supposed to be 100% Windows 10 compliant. V32 is the highest version currently available. However, V21 will work in Windows 10; just make sure you're using an older version of Adobe, as there are known conflicts with Adobe 11, such as online books not working, etc.

    It sounds like you've got your work cut out for you. The cross reference tool is a method of determining every location and type of use a given tag is being utilized for in a project.  I don't know of any way to cross reference multiple tags simultaneously and even if you could, 4,000 tags would contain so much data that I don't know how you'd sort through it all. You mentioned that most of your tags are aliases; this can be to your advantage, as the aliases are probably the ones that are most important, because it's rare in a large project to use a module defined tag without an alias.

    If I were tackling this, I would probably go through the project routine by routine, cross referencing the tags on the rung instructions as I go. As you likely already know, right-clicking on any given tag, then clicking cross reference, will pull up the report. The report defaults to the "By Logic" tab, which shows everything about that tag. If you change that to the "By Hierarchy" tab, you just get the scope of that tag, which may help more readily identify which tags you're going to keep and continue to use, and which are obsolete. That, of course, will depend on how well the project is organized to begin with. If they scoped tags locally for each of the individual burners, you're likely in luck. If almost everything is controller scoped, not so much. Either way, there's no silver bullet I'm aware of that's going to automatically sort out 4,000 tags.

     


  14. What version of Studio 5000 are you using? I think up to version 20 or 21 you had to install the (free) Compare Tool separately. However, even when it comes (somewhat) embedded in the version you purchased, you must still click on a prompt button that pops up during installation and asks if you want to install it on your laptop, as well as ControlFlash, Task Monitor, etc.

    Something to be aware of when talking about saving are the Enable Automatic Recovery and Project Backup functions, which are set to ten minutes, and three backups by default. (You can find them under Tools, Options, Application). That is not your problem here, but it should be kept in mind when making edits.

    To answer your question directly, it's persnickety (as it should be) and if you make changes, it doesn't care that you put things back where you started. What it sees is that you made changes. When you're closing the project it's going to ask you whether you want to save those changes. So, when prompted to save the changes as your exiting Studio, just click no. I actually use this to my advantage when teaching someone about programming. It allows me to make whatever changes I want without keeping track of them, then clicking no on exiting with the confidence that my original project will be intact the next time I actually need it.

    Hope this helps!

     


  15. Like PLCMentor said, if you're developing a project in Studio and want a screen shot of a display, open the display and use your laptop's print screen function to take the screen shot.

    If, on the other hand, you're wanting an operator to be able to screen shot a display on the HMI at runtime, you must install a "Display Print" on that display. You'll find that button in Advanced Objects. However, this button literally causes a hard copy of the display to be printed. You will have to refer to user manual for the particular HMI you're using to get instructions on how to install a printer.


  16. It's never a great idea to mix and match data types when applying math instructions as even under the best of circumstances, the results are always subject to rounding and truncating errors. Also, as Lloyd has stated above, if you're using a ControlLogix platform, just get a diagnostic analog input card (such as the two he suggested) and set the scaling in the card. This not only eliminates possible errors in the math instruction(s), you're not wasting valuable controller card scan time on scaling logic since the input card would be multicasting scaled data across the backplane.


  17. If you upgrade from where you're at to V21 (where the name changed from RS5000 to Studio5000), the cross reference tool is readily available. You just right-click on any tag in a rung, a dialogue box pops up, you choose "cross reference", and the cross reference report is immediately displayed. It has a lot more info than what it did in RS500. It now shows everywhere the tag is used in the project, including the task, program, routine, and rung number, as well as whether the instruction it's used on is destructive.

    Hope this helps.

    1 person likes this

  18. You can not purchase the course books, at least not from Rockwell. You can only get a course book by taking the course, unless you find someone trying to sell a used course book on E-Bay. The programming-, procedure-, user-, and other manuals are readily available online as free, downloadable PDFs. Some of the troubleshooting guides have a price-tag on them. As for the FactoryTalk classes themselves, you will get more than just navigating the software instruction. The four day programming classes for SE and ME have real-world programming exercises, where you write a project from the ground up, download and run with a laptop-hosted 5000 emulator in the SE class, and an actual CompactLogix controller in the ME class. It's great training.