Joe E.

MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

26 Excellent

About Joe E.

  • Rank

Contact Methods

  • Website URL http://

Profile Information

  • Gender Male
  • Location Blacksburg, VA
  • Country United States

Recent Profile Visitors

3232 profile views
  1. PanelView Question

    There's an idea. If you have the source code .apa file and can open it, rt-click on "Displays" in the explorer panel and choose "Import and Export..."  In the dialog box, choose "Export graphic information from displays", click Next.  Check every box and click Next.  It will ask you where to save the export files to, then click Finish.  Go to where it exported to and you will find an .xml file for each display in the project.  Open them up and search for "shutdownButton".  If you don't find it anywhere, it isn't there.  If it is, you get to go on a scavenger hunt.  The setup information for my last project looks like this: - <shutdownButton name="ShutdownButton1" height="32" width="153" left="320" top="235" visible="true" wallpaper="false" isReferenceObject="false" audio="true" backColor="navy" backStyle="solid" borderStyle="raised" borderUsesBackColor="true" borderWidth="2" description="" highlightColor="lime" borderColor="navy" patternColor="white" patternStyle="none" horizontalMargin="0" verticalMargin="0" shape="rectangle" touch="true" blink="false" endColor="white" gradientStop="50" gradientDirection="gradientDirectionHorizontal" gradientShadingStyle="gradientHorizontalFromRight" RequireElectronicSignature="false" AllowBlankComment="false" RequireReAuthentication="false" RequireCounterSignature="false" AuthorizedGroup="" ESDomainNameVisible="false" ESDomainNameType="ESDomainNameConstant" ESDomainName="" VariableDomainName="" ESDomainNameDisable="false"> <caption fontFamily="Arial" fontSize="18" bold="false" italic="false" underline="false" strikethrough="false" caption="SHUTDOWN" color="white" backColor="navy" backStyle="transparent" alignment="middleCenter" wordWrap="true" blink="false" /> <imageSettings imageName="" alignment="middleCenter" backStyle="transparent" color="white" backColor="navy" scaled="false" blink="false" /> - <animations> <animateVisibility expression="{[Bond1]Password_OK}" expressionTrueState="visible" /> </animations> </shutdownButton> You know which screen it's on since that's the .xml file you searched and the "left" and "top" parameters show you where it is on the screen, in case it's behind something else.
  2. PanelView Question

    If it's that old, you will need a version of View Studio older than 8.  I would create a blank project with a "shutdown" button on the only display.  Create a runtime file compiled to firmware version 3.2 or something very old and then download it to the HMI.  Newer HMIs can run older projects with no problems.  You should then be able to get to the OS to check the actual firmware version.  The old mer file should still be present in memory so you can switch back to it from within the OS. If you don't have a backup copy of the .mer file, I would use the ME Transfer Utility to upload it out of the HMI before doing anything, just to be safe.
  3. I haven't tried to flash a PV+ before, but a colleague has with no difficulty.  For the fun of it, I just downloaded the firmware file for v5.10 firmware for a PV+ 700-1500.  When I tried to install the update utility, it told me that it requires that FT View Studio already be installed on the PC, which means that you're probably not going to be able to update the firmware without the HMI programming software. You can use a CF card to load the .mer file onto the HMI, but I've never done it so I can't help you with instructions for that process.  I'm pretty sure you have to be able to get to the PV+ operating system for that to work, which it seems you can't do. If I were in your shoes right now, I would contact my local Allen-Bradley distributor and ask for help.  Our local distributor here is really good and is very willing to go the extra mile to help us out.
  4. First fault detection

    Try something like this: This assumes that your fault bits are stored in memory bytes 60-65.  On the first PLC scan after any of those bytes are not equal to zero, it copies all words to holding registers MB70-75.  I haven't tested this logic at all, so it may not even compile for your processor, but this is the kind of logic I would try first.
  5. First fault detection

    Similar to pop29684's suggestion (assuming your faults are gathered into words and no bits in those words are used for anything else): Compare your fault words to zero.  In other words, the first condition in the network will be "any of the fault words are non-zero". Use a "pulse" instruction and then copy all of the fault words into other memory locations.  This will give you a snapshot of whatever happened the last time a fault came up.  I may be able to throw together a better example later on today.
  6. TT pulse bit

    If those are really the only places in the code where that timer address shows up, it's not being used.  The XIO/XIC instructions will never change state without there being a TON/TOF/RTO instruction somewhere.  The MOV instructions probably set up the timer preset and maybe the accumulator, but I can't really tell from your picture. If you can post the ACD file (or send it via PM or email), that would help one of us help you.
  7. Updating firmware on a 1756-L61

    Maybe, or maybe not.  The DC I/O modules are almost certainly ok as-is.  The ENBT will depend on what you're doing with it.  If you're just using it to get online with your PC, you should be ok leaving it alone.  if it's talking to I/O devices, you're probably ok too, but maybe not.  We've never had any issues whatsoever flashing firmware on CPUs or ENBT modules, so I think there's very little risk in flashing the ENBT anyway, just to be sure. Remember one thing: flashing the firmware of a CPU will wipe its memory, so make absolutely double triply sure that you have a good backup file.  Go online with the software.  While connected, hit CTRL-S (or the "Save" icon) to save the file.  When prompted, upload tag values.  Then keep a copy of that file safe while you change processor version.
  8. Linx 5900 Inkjet Coder and SLC 5/03

    That I can't help you with.  I've never had to do this level of RS232 programming in AB.  And I could never get the response from the printer working in the Siemens system and ran out of development time.  It's working without looking at the response, though, so it's not a priority to figure out right now.
  9. Linx 5900 Inkjet Coder and SLC 5/03

    You can use a 1747-UIC (either from AB or these guys) to connect DH485. Do you have detailed documentation on the printer's protocol?  I wrote code to have a Siemens S7-300 send instructions via RS232 to a Hitachi ink jet printer.  You have to get the right sequence of control characters that the printer itself is looking for. For instance, the Hitachi needs to receive this string: STX (start text) DLE (instructs the printer to changed the printed message) 1 (change the text in line 1) ...... (the message to be printed) ETX (end text Your printer will probably have something similar (but different) that it's looking for.  You'll need documentation on the printer to build the string you need the AWA to send.
  10. COP instruction conversion

    You are correct about INT vs SINT; I had a different platform on my brain. And I didn't know you couldn't use something like N48[N48[9]] in Logix 5k, so forget most of what I said...
  11. COP instruction conversion

    In general: When I'm converting old address-based programs to a tag-based processor, I usually transcribe the code manually (there usually isn't more than a couple of days' worth of this in the programs I usually work with).  Sometimes copy-paste works, sometimes it doesn't.  During the first pass, I go through and create tags with names like the addresses with a consistent pattern.  In this case, N48:250 would become N048_250 and N48:9 would be N048_009. During the second pass, I go through and rename the tags to something more reasonable.  I usually move the address text into the tag description until I'm 100% done with the conversion and proving, just so I can back-track and double check things with the original code.  In a similar vein, input I:20/5 would become I02005 in the new processor until I'm done, then I change it to PB_MotorStart or whatever.   In your case: Since you're using indirect addressing here, it looks like they're using at least parts of the N48 data file as an array and the number stored in N48:9 is the index they want to start copying to.  I would suspect that this COP is part of an initialization routine since it's copying 5 elements from the end of N48 back to somewhere in the middle, but I can't tell for sure.  The simplest way to duplicate this is to create a tag in Logix 5k called "N48" of type SINT[x], where "x" is the number of elements in your N48 file. Since this is Logix 500, and you're copying from N48:250 with length 5, this "x" will be 256 in your case (Logix 500 only allows up to 256 elements per data file; in a PLC5, they can be much bigger).  You would declare the tag N48, type SINT[256].  This is then very simple to transcribe/translate, but kind of leaves you locked into this addressing pattern.  When you're all done, you can rename tags if you like. In the long run, it may be better to re-do that part of the code.  I would need to see what's happening with N48 before I can suggest a way to do that.
  12. Sequential Function Charts (SFC)

    Another thing to consider is the software licensing.  We have about 7 seats of Studio 5000 standard, which cost us about $3500 each the last time we quoted them.  The next level up that includes the FBD/SFC/ST languages would cost about $6500/seat.  A language pack plug-in license cost about $2300/seat. So, if you're going to have multiple people needing access to SFC code at the same time, be aware of the licensing costs.  If you're programming for a customer, be aware that they may not have the licenses to open SFC and will likely be upset with you if you include it without running it past them first.  
  13. Communication Between Two VFD

    If the RPM difference is a ratio, the analog signals can usually be scaled in most drives.  In other words, VFD1 would send a 0-10V signal that correlates to 0-1800RPM.  VFD2 would receive that signal and interpret it as 0-10V = 0-1700RPM.  Or whatever min/max you set. In my experience, the analog signal (both input and output) is proportional to how fast the motor is going (or how fast it's being told to go) within its adjustable min/max RPM parameters.
  14. Preferred HMI with RSLogix 5000

    The Red Lion can read any tag name in the processor, including controller- and program-scoped tags.  It can drill down to timer/counter accumulators, presets, EN, DN, etc. bits.
  15. Preferred HMI with RSLogix 5000

    We've been using Red Lion G3 series HMIs for several years now.  They do well with most things, but arrays and UDTs aren't always straightforward or simple.  I started using them initially for 2 reasons: price and the PanvelView+ software was a painful torture to use.  With the newer series of PV+ (the 6 compacts and now the 7 standards), the price is actually pretty comparable once we get to a 10" HMI.  The software is still a bear, though.  And if you need to connect a single HMI to multiple PLCs, the 6 compact / 7 standard won't work for you while the Red Lion G3 will work beautifully.