Joe E.

MrPLC Member
  • Content count

  • Joined

  • Last visited

Everything posted by Joe E.

  1. **RSLogix 500 Unattached Rungs**

    That's super weird and I've never seen anything like that before. My first suspicion would be something with your video driver in your PC or in Windows. Does it correct itself when you move or resize the program window? All I could suggest is reinstall RSLogix (or "repair" if that's an option in the add/remove software) and/or update your graphics driver. Or try to reach out to Rockwell. Do you have a support contract or a good relationship with your local distributor?
  2. **RSLogix 500 Unattached Rungs**

    Can you post a screenshot of what you're seeing?
  3. Another PLC Trainer Thread

    Ideally, your trainer will be set up based on what you're going to be supporting, but I know that can get very pricey very fast. For RSLogix 500 stuff, look at the MicroLogix 1100. It supports Ethernet for programming and HMIs and uses the free version of RSLogix 500. I have some limited experience with Automation Direct products. In my experience (YMMV), their C-More HMIs are rock solid, their PLCs are junk.  Now, that experience is "several" years ago, so it may have changed. We were trying to replace some Siemens S5 processors with A-D DirectLogix units. They were very small machines, but had analog inputs and outputs. The analog stuff was very unstable in the AD PLC. We were able to put in a MicroLogix (1200, I think, it's been a while) very quickly and reliably. I also hope they've changed their programming software some to make memory management more automatic. When I used it, I had to keep track of which memory was used so I didn't step on anything. I hesitate to suggest it since my experience has been negative, but look also at AB's Micro 800 series PLCs and Panelview Component HMIs. They use free programming software (Connected Component Workbench) that is worth every penny you pay for it.  
  4. RS5000 AOI Global Output

    I wrote an AOI for alarms as well to handle the current status of the alarm conditions, allow for acknowledging an active alarm, etc. It's the first AOI I ever did and I would probably do it a little differently now. The output of my AOI is a BOOL tag. I created a DINT array and use a single bit in each DINT as the output of each instance of the AOI. And then I use an NEQ on each DINT to see if any alarms are active. Edited to add: Here's the help text: I check the status of MachineAlarms_LATCH[0] and MachineAlarms_ACK[0] for NEQ 0 to see if I have any active/unacknowledged alarms.  
  5. I have pdf versions of the NEC Handbook and NFPA 79. I like being able to search for specific terms. I have them on my tablet and phone to refer to when I'm out on the floor.
  6. Pop up login screen editing

    That looks like an MP series HMI. If so, it will boot to the Windows CE desktop with a popup dialog box with several options: Control Panel, Transfer, Startup, Taskbar. It's only there for a few seconds, so you have to be quick. Touch any option EXCEPT Startup. You want to go to the Control Panel (I think) and find the Windows Regional Settings. Set your locale to US and language to English. If your HMI developer was kind, that may be enough. We have some screens that have a language selection option on the main screen of the runtime. If your developer hasn't provided translated texts in the project, you need to translate it yourself inside Portal and then download to the HMI.
  7. Block transfer R/W in 5000???

    I'm by  no means an expert, but here's what I know. 1) BTR/W instructions are used to configure and read/write values from/to analog in/output modules (among others). 2) If you're just using analog in/outputs that are configured into the ControlLogix I/O tree, you just have to decipher where the BTR/W instructions are interfacing with the PLC logic (typically N7 registers). To do a direct translation, you can replace the BTR/W instructions that read/write analog values with MOV instructions. 3) The BTR/W instructions should be removed.   Example BTR: In this case, the BTR is reading status information from an analog input module. The information it reads is stored in N7:200-204 Double-click on "Setup Screen": To replace this with ControlLogix, you can either substitute the analog inputs everywhere N7:201-4, or use a MOV instruction to copy the analog input value to whatever tag N7:20x gets converted to.   I welcome further input from any BTR/W experts who wish to contribute. We have a great diversity of PLC5 setups in this plant so I have some idea of the possible variations. This example may not apply very well to your situation.  
  8. How to unblokc the protected block in S7-1500 IN TIA

    To open it, you will need at least the password from the developer who locked it.
  9. RSLogix 5000 version 20

    If you have the old floppy-disk activation, Rockwell will "upgrade" it to the modern Factory Talk Activation without charge (at least they didn't charge us...).
  10. RSLogix 5000 version 20

    Your current activation will work. Do you really need v20? That one had some issues with compatibility between minor revisions. If it's a new project, I would recommend using another version. If it's an existing project, I think v20.3 is the one you want that will allow compatibility to all minor revisions.
  11. Time of day function

    In the ML1400, open "Processor Status" and switch the view ("Radix" in the bottom right corner) to "Decimal". The RTC values are: S:37 = Year S:38 = Month S:39 = Day S:40 = Hours S:41 = Minutes S:42 = Seconds Oddly, they don't show up in the "Structured" view for this which is weird because they do for the SLC 5/03 I opened up to check. All values are also zero in my offline file for the 1400 which is also weird.
  12. incremental encoder missing counts

    I'm not ruling out an issue with the encoder or controller, but in my experience this sort of thing is most often caused by slip between the encoder and what it's measuring. We have a bunch of servo stock feeders that feed bimetal strip into forming presses at up to 60 parts/minute. Feed length is around an inch and is constant for each run but adjustable when changing over to another part.  We very frequently get reports saying, "The feed length is varying. There's something wrong with the servo!" At least 99% of the time, the problem is maladjustment of the rollers so that they slip randomly on the strip. And 99% of the remaining 1% is a problem with the previous machine causing increased tension on the strip.
  13. Ah, I see. Can you move the "write to 0" code into the "if...." routine? So it only writes to 0 as a part of LOGIC1/LOGIC2.
  14. Having I/O and HMI/comms tags update in the middle of the PLC scan is a phenomenon of the Logix 5000 family of PLCs (CompactLogix and ControlLogix). What he did by writing the HMI tag to an internal holding tag is basically emulate the "old way" of having the I/O and comms tags updated once per scan. It keeps the tag from changing state halfway through the logic. If the HMI writes to HMI_CMD during the execution of LOGIC1 or LOGIC2, it won't matter since the PLC isn't looking at HMI_CMD during that time. It's looking at CMD instead. I've seen this done with physical I/O as well in the 5000 world. The first step in a program is to read all PLC inputs to holding registers. The holding registers are used in the logic. The logic writes to another set of holding registers that are written to the physical outputs at the end of the scan.  
  15. incremental encoder missing counts

    How did you use the HMI to determine that it missed counts? Watching the HMI (or a laptop) while the axis moves is not a good method due to delays in the screen's update time and communications delays with the software.
  16. CompactLogix PLC Family 5370 Data Byte Order

    I don't think they have an unsigned data type either. The "SINT" type is 8 bits, the "INT" data type is 16 bits, the "DINT" data type is 32 bits. All are signed, but it may not matter, depending on what you're doing with the data in your CompactLogix. If you need it to be unsigned, IOW you will be receiving numbers outside the range -32768 to 32767, you will need to put the data into a DINT tag to do any calculations. If you just need the status of the individual bits, it won't matter. A "COP" instruction creates a bit-by-bit copy of the original register in the destination so you can experiment with that to get your data from the 16-bit register into the 32 bit register.
  17. Firewall could have something to do with it. Try connecting to something else with both laptops and see if the problem persists.
  18. The PanelView+ can connect to multiple PLCs but you need the "standard" model (if getting a PV+6) or the "performance" model (if getting a PV+7). They're more expensive than the PV+6 Compact and PV+7 Standard.
  19. pv 600

    Look at this manual: It doesn't give a lot of information but the following knowledgebase article (access level: TechConnect) is better:   Basically, it says to replace the RTC battery. This article (access level: Everyone) talks about the batteries:  

    Once you purchase a license, it will either come with a DVD with the software on it or a link to download it.  You should contact your local Siemens distributor to find out about pricing and whether or not there is an academic licensing program (which I doubt).
  21. I remember one being pretty quick, another took much longer.
  22. From what our vendor told us, the license for v14 will activate v13 as well. You do have to install the software, though.

    Counters are usually retentive, I'm not sure why they're resetting on you. What controls the B:3 bit that you're using to reset the counters? Is it just the HMI? If so, does the HMI have a setting that has it write that tag on power-up (I remember something about that with some HMIs but it's been a long time since I worked with an EZ Automation one)?
  24. Copy INT into second half of a DINT

    Also look at the COP instruction. If you set up your INT as one INT in an array of 2 INTs with the other INT being whatever needs to be in the lower word of the DINT.  You then COP the array into the DINT using a length of 1. Alternatively, you can MUL the INT by 2^16 (to shift the bits 16 places to the left) into a holding DINT tag and then MVM (masked move) the holding DINT into the destination DINT. It looks like the BTD instruction will be the cleanest option, though.
  25. We had a problem on an old Phase I DriveLogix processor where it would lose its memory sometimes when the power was turned off. The electricians would replace the battery every time even though the battery light wasn't on. It turned out that the battery wasn't the issue at all but it was a problem with the hardware that went away when we replaced it for another problem. I can't find the knowledge base article on it. I don't know if the L61 had a similar bug or not.