Joe E.
MrPLC Admin-
Posts
1,683 -
Joined
-
Last visited
-
Days Won
92
Joe E. last won the day on August 19
Joe E. had the most liked content!
About Joe E.

Profile Information
-
Location
Harrisonburg, VA
-
Country
United States
Recent Profile Visitors
14,250 profile views
Joe E.'s Achievements
-
First thing I would is reach out to your local Rockwell distributor. They should be able to get you in touch with the right folks. About 8 or 9 years ago, we did a re-control of a machine that had an Anorad linear servo motor. Rockwell was able to come up with a motor file to let a Kinetix 6500 drive operate that motor.
-
What's your ultimate task? If you just want to know now many non-zeroes there are excluding your skip list, you can eliminate the copy step altogether. I like @Jerome J. Parks's suggestion to sort the skip list to avoid looping through it every time, but that's not strictly necessary. You could just step through your data array and for each element that's true, look for it in the skip list. If it's not there, increment your count. If it is, just go to the next source data array element. If the source data array element is zero, and you're counting ones, just skip ahead to the next one in the source data array. If you're not just counting ones, though, that shortcut won't help you.
-
Don't feel bad, I did the same thing with the Entry Status, breaking down the bits so it would show the status on the HMI, not just "OK" or "Not OK". Using NEQ 16384 is a handy shortcut, but it's nice to know more detail.
-
At my last place, we had a secondary machine controlled by a primary. Primary was originally a ControlLogix (L55, v15ish) and the secondary had a Flex IO rack on Ethernet/IP. Or maybe DH+. At some point, the ControlLogix machine was replaced with one that had a Siemens S7-315 (using Simatic Manger). For the secondary machine, we replaced the Flex IO bus module with Profibus and translated the code into the S7-315. It was a pretty simple machine so the migration wasn't hard. Especially if safety is involved, you may not be able to keep the same fieldbus for both controllers, but you can look for IO racks that have both fieldbus adapters available. Then you just swap the CPU and fieldbus module and go. Drives would be harder but not impossible. I doubt you're going to be able to swap active controllers by flipping a switch, though, especially between Siemens and AB and doubly especially if safety or motion control is involved. The last new control cabinet I built had a CompactLogix 5069 CPU with no IO modules attached. The IO was a Point IO rack in the same enclosure. We did it that way because of parts availability, but if we ever had to switch to a Siemens controller, we could just replace the AENT with an APB to put it on Profibus. Of course, that particular project also had some other auxiliaries that would be harder, but you get the idea.
-
In general, downloading the firmware to a device will wipe out all of its memory. The only restore utility I've heard of is one that Red Lion provided to me when a firmware update failed partway through. It recovered the HMI's firmware, but not any runtime database. I'm afraid you're out of luck. Do you have a way to contact the original programmer or a similar machine that's still functional?
-
Sorry, the only Reliance drives I've worked with were Flexpak 3000 and Maxpak. The manuals I have for them don't mention Modbus at all. Edit to add: Interestingly, when I search for Reliance Drives modbus, I get a lot of hits for a company named Reliance that does HMI/SCADA software and a single hit on this thread. And, of course, the usual "we fix your stuff" sites.
-
Ads and Goals - August 2025 version
Joe E. replied to Chris Elston's topic in MrPLC Announcements and Information
Honestly, I didn't even notice any lag. I may be too accustomed to a slow internet here at work... -
Ads and Goals - August 2025 version
Joe E. replied to Chris Elston's topic in MrPLC Announcements and Information
I really appreciate you resurrecting it. One of the things I always liked about this forum was that, in spite of the Grumpy McGrumpersons out there, things stayed pretty civil on here. I'd much rather it be different than gone. -
What about the 1732IL? They're Armor Block IO Link hubs. Lifecycle check shows Active still. Edit: Never mind. Looks like that's not a master.... Edit again: What about the 1732E-8IOLM12R? I remember needing to add 2x analog inputs to a 1769 CompactLogix that only had 1 input free and no space to add a module in the cabinet. Went with Turck TBEN-S2-4IOL (6814024). It was not too bad to set up, though some of the more advanced features are only available over Profinet, not EtherNet/IP. As I recall....
-
Looking for some seasoned advice on valve control.
Joe E. replied to Clixpert's topic in Allen Bradley / Rockwell Automation
It may not be possible to completely fix it. It sounds like code that could be put into an AOI (Add-On Instruction), which would then be called 200 times. The biggest down side to AOIs is that they can't be edited online. I'm assuming that most of the tags referenced inside the AOI are also indexed with the same [X], right? You have a JSR instruction that calls the subroutine once per program scan after incrementing [X], right? If the code were in an AOI, you could pull up the AOI and monitor each instance of the AOI individually. Instead of having a bunch of [X] tags, you would have a single AOI tag for each call of the AOI that would contain all of the inside data. You may be able to choose which call of a JSR you monitor too (haven't tried that). Both of those will require an individual JSR/AOI call for each valve, instead of having it inside a loop. Actually....you could might be able to make an array of AOI tags and index them with the [X] and keep the loop. I probably wouldn't do that, though. I'm not sure which path I would pursue in your case. I would use a spare controller to look at the options and see which seems like it might be the best. I would probably not have an individual subroutine for each of the 200 valves, just because code changes later on would get very cumbersome, but that may be the easiest to troubleshoot if the PLC has enough memory. -
I think Rockwell calls it "snap action" where the contacts won't change state until after the button has passed the "point of no return". In other words, the button has to be pressed far enough in that the spring loaded detent will make sure it completes its travel and doesn't bounce back, and then the contacts change state. That's what they market for e-stops now.
-
HMI panelview 600 plus and SLC5/03 communication
Joe E. replied to Joshivina's topic in Allen Bradley / Rockwell Automation
It really depends on the PV+ age and how the ports on the SLC5/03 are configured. The original PV+ hardware had option modules to support DH-485, DH+, RS232, and ControlNet. See page 12: https://literature.rockwellautomation.com/idc/groups/literature/documents/um/2711p-um001_-en-p.pdf The PV+6 looks like it has an on board RS232 port. See page 12: https://literature.rockwellautomation.com/idc/groups/literature/documents/um/2711p-um006_-en-p.pdf If you have a PV+7, there's a tech note about using a USB-RS232 adapter (access level: TechConnect): https://support.rockwellautomation.com/app/answers/answer_view/a_id/900839/loc/en_US I've seen some forum posts on that (can't remember if they're here or on www.plctalk.net). Edit to add: If you have a PV+7, try this thread: https://www.plctalk.net/threads/serial-connection-to-a-panelview-7.146461/ -
Ideally, I'd like to avoid changing their AOI. The main AOI has 46 rungs, many of which are fairly involved. The inner AOI is a lot simpler but is called twice. The MSG instruction worked right away to read the local tags for the inner AOI calls, at least on my test PLC. When COPying to a byte array....the AOI definition says the data type size is 1768 bytes. I created a tag of type SINT[1768] and set up a COP instruction with the AOI instance tag as the source and element 0 of the array as the destination, length 1768. It executed, and the last non-zero element of the array is [1700], so the COP definitely does something. Does that byte array now contain all of the data within the parameters and local tags (and other stuff?) of the AOI instance? Is the save order documented somewhere? It looks like it starts with parameters, because the first 24 AOI parameters are BOOLs and it looks like the bit patterns of the first 3 bytes of the array match those bits. So....I would have to manually unpack the SINT array element by element to decipher it all. Is that on the right track? If so, I think I'll stick with the MSG instructions for now. The AOI parameters are a mix of BOOL, REAL, DINT, and STRING elements. Local tags are more complex.