jmbowles78

MrPLC Member
  • Content count

    15
  • Joined

  • Last visited

Everything posted by jmbowles78

  1. I'm trying to setup some interlock signals between a CompactLogix L33ERMS and an optical gauge.  The gauge only offers PROFINET as the fieldbus for interlock signals (hard-wiring is not an option).  The PROFINET connection for interlocks in the gauge is supplied via a Beckhoff EL6631-0010 PROFINET RT device terminal (connected to a Beckhoff CX8010 bus coupler, but I assume that is not relevant). The PROFINET connection on the CompactLogix side is supplied via ProSoft PLX31-EIP-PND "EtherNet/IP™ to PROFINET® IO Device Gateway". My PROFINET experience is zero, and the ProSoft gateway was selected before my involvement in the project.  It seems to me that one of the PROFINET devices needs to be a controller or "master" on the network.  Right now, both the ProSoft and Beckhoff devices appear to be devices or "slaves", but the terminology is fuzzy to me (PROFINET IO vs PROFINET RT, etc.). Should I be able to make the connection using current ProSoft Device gateway, or do I need to upgrade to a PLX82-EIP-PNC "EtherNet/IP™ to PROFINET Controller Gateway" or equivalent?  Does at least one of the devices on the network need to be controller-level? Any direction would be greatly appreciated.
  2. PROFINET Gateway Confusion

    The gage system has already provided the gateway from EtherCat to PROFINET IO, so I shouldn't need to communicate with EtherCAT in any way.  I think the -PND gateway is designed to do what Joe used it for, which is communicate between an Ethernet/IP master and a PROFINET master (shown below). In my case, the gage gateway connection is a PROFINET device, not a PAC.  I think I need the -PNC gateway from Prosoft, which allows for PROFINET device connections (pictured below): I'll give ProSoft a call to see if they can clarify things for me.  Thanks for the help!
  3. PROFINET Gateway Confusion

    It is a Jenoptik Opticline C908.
  4. PROFINET Gateway Confusion

    I think I wasn't clear on my initial post.  The gage has the Beckhoff EL6631-0010 built into it.  The secondary side of the Beckhoff gateway (Profinet IO device) is provided for external controllers to interface with. Our system control panel has a Prosoft gateway connected to our PLC via Ethernet/IP.  The secondary side of this gateway is also a Profinet IO device interface.  This leaves us with a Profinet IO device to Profinet IO device connection, but no Profinet controller. I guess my question is really whether or not the current ProSoft gateway we have will work (Profinet IO device), or do we need to switch to the ProSoft gateway with Profinet master/controller functionality on the secondary side.
  5. I'm working on an AGV control system that interfaces with PC software that controls some AGVs (currently 15, up to 20 max).  The interface between my CJ2M-CPU34 and the AGV Control PC is OPC based (Kepware). Specifically, the AGV Control PC provides me information regarding each AGV (current location, target destination, etc.).  In this system, it is my responsibility to test when a PLC reaches a location, then send it a new destination once system conditions merit a release.  This release responsibility occurs at several points in the system (probably around 50). At the moment, I'm using some function blocks to determine: A)  When an AGV has arrived at a location B)  When an AGV has a particular destination I have one function block instance per location, and per destination that I am checking for.  These function blocks have FOR/NEXT loops that search the Location or Destination array to see which AGV (if any) match the search criteria.  The function block then returns the AGV number and I can use that as a pointer to instruct a specific AGV where to go next.  I'm currently running each function block as a rising edge trigger on a 1.0 second clock pulse bit (CF102) to get udpates once per second (the FOR NEXT loop will complete before the scan can finish, as I understand things). The problem I'm running into is that while my average cycle time is about 2.3 ms, the maximum cycle time approaches 10 ms or more.  I believe this occurs on the scan where all of the function block searches are triggered (since they all fire off of the same CF102 rising edge).  As the program has grown, online editing and other functions have slowed down and I'm worried that as I complete the system it will become less and less responsive. Is there a more clever or efficient way I should be monitoring these registers?  Should I stagger my function block trigger timings or will that make no overall difference?  Do I just need to upgrade to a CJ2H CPU and beat the problem over the head with a hammer? Any insight would be greatly appreciated. Thanks, Jason
  6. Search Function Question?

    I have an application involving Q-series PLC communication with a PC controlling multiple AGVs. The AGV control is achieved using an array of data that is passed back and forth using an OPC server. The data pertinent to my question is arranged as follows in the PLC: D0-D29 = AGV Location (D1 = AGV 1 Location, D2 = AGV 2 Location, etc.) D150-D179 = AGV Held (if D151 = 1, AGV 1 is held, if D151 = 0, AGV 1 is not held, if D152 = 1, AGV 2 is held, etc.) For my application, I am controlling a stoplight that changes from green to red when an AGV has just been released from a particular location (location 350). The problem I am running into is that there are 9 AGV's and I would like to avoid using large sections of ladder logic to check the status of each AGV to see if it is held. For reference, only 1 AGV can be reported at a particular location at any time. I have been able to use the SER instruction [sER K350 D1 D1350 K29] to return an integer representing which AGV is at location 350 (the K29 allows for a search total of 29 AGVs for future expansion). For example, let's assume AGV 9 is at location 350. When the SER instruction runs, D1350 returns 9 as the first position that matches 350 (it will be the only searched location that matches, since only 1 AGV can be at that location at any time). At this point I know which AGV is at location 350. What I would like to do is use this information to check and see if AGV 9 is held or not. I know that D159 holds this information. What I can't figure out is how to use my returned value (9) to offset my search location that would start at D150. I've thought about filling a Data Table (FIFW) and trying return only the value I want using FDEL, but I haven't figured out how to easily generate a table from multiple D memory areas. The instruction [FIFW D150 R150] only transfers one data block, and the instruction [FIFW K30D150 R150] is not allowed. Am I even looking in the right direction? Or is what I want to do simply not possible/not worth the effort? I can write the logic that will include all AGVs (if D1350 = 1 and D151 = 0, if D1350 = 2 and D152 = 0), but it seems like there would be a better way. Not to mention there will be multiple stoplight locations and the number of carts may increase in the future. Thanks in advance for any advice.
  7. Search Function Question?

    Thanks for the response. I feel like I need to use them simultaneously (since 2 AGVs can be at different locations at the same time) as well as over several scans (since the release timing can vary based on mechanical movements of loading/unloading equipment, or operator input). I was able to give myself more breathing room by sharing a single index register for 2 locations that I know are mutually exclusive. I can do this in a few places, but I am worried about future expansion possibilities...
  8. Search Function Question?

    Doh. It appears that I will need to monitor and control more than 20 locations. From the manuals I've read, it seems that 20 index registers is the maximum for the Universal Q CPUs. Is there any way around this? Just to recap: 1. I constantly search an array of registers reported by the AGV system for the location I am interested in. [sER K100 D0 D1500 K29] 2. The search returns the AGV # at the location in question. I move this number into an index register. [MOV D1500 Z0] 3. I use the AGV # in the index register to send a release signal to the AGV at that location when I am ready. [MOV K1 D150Z0] I am currently using a different index register for each location I am monitoring, but I need to control releases at more than 20 locations. Does anyone see a way around the 20 index register limitation in this situation?
  9. Error when writing comments to Q01U...

    As some additional information, I was able to write the comments to the Standard ROM without issue, which further leads me to believe that a lack of Program Memory may have been the issue. I just wanted to get a better understanding of how comments were handled when written to Program Memory, and if there were any size restrictions for comments that I wasn't aware of (other than the total Program Memory limit for a Q01U CPU, which is 60K).
  10. I'm receiving the error in the attached screenshot when trying to write some comments to a Q01U CPU. The error only recently occurred as I added a few new comments. According to the Actual Project Memory diagnostic, I should have more room to add comments. I've tried to "Arrange PLC Memory" with no improvement. Is there another setting I should change to increase my comment range? Or am I barking up the wrong tree?
  11. Error when writing comments to Q01U...

    Thanks for the response. I've lowered the Write During Run buffer from 500 to 250 for most of the programs, and down to 0 for a few of the smaller ones that won't be changed.
  12. Search Function Question?

    In the end this was definitely the solution I was looking for. Many thanks to Crossbow.
  13. Search Function Question?

    Awesome. This looks like exactly what I need (index registers). I'll give it a go and report back with the results. Thanks!
  14. NS Touchscreen Printers

    I've seen a few posts here that list compatible printers that will work with the NS Series of Omron touchscreens. These posts are from a few years ago, and the Canon/Epson printers they list are no longer in production and are hard to find (plus I'm not sure our customer will accept a used printer for this new project). Are there any updates regarding which printers in current production will work with NS touchscreens? We have tried a Canon Pixma iP1500 with an NS8-TV01B-V2 and standard printer USB cable, with no luck. The printer head cleaning signal seems to work, but the print command doesn't. Could this be a cable problem? Any help would be greatly appreciated for this first-time poster.
  15. NS Touchscreen Printers

    Thank you for the welcome, and for the response. The printers that are listed in the setup manual don't seem to be sold here in the USA. Is there a similar list for USA models, or a cross-reference list? Thanks, Jason