BobLfoot

MrPLC Admin
  • Content count

    3499
  • Joined

  • Last visited

Community Reputation

126 Excellent

1 Follower

About BobLfoot

  • Rank
    The Wizard
  • Birthday 05/30/63

Profile Information

  • Gender Male
  • Location Western Massachusetts
  • Country United States

Recent Profile Visitors

9582 profile views
  1. Inhibit module

    I would expect this answer to be module specific and found in the manual for that module. By the way do you have a specific module in mind?
  2. I often use a StringNull or StringEmpty variable of type string and length 82 which is the normal max string length.  And then copy that into the stringfinal or Transmit Buffer before I put the real data into it.
  3. Welcome to mrplc Zak.  I've moved your post to the appropriate section so hopefully you'll get more responses. I can suggest you Google the Johnson Controls or Honeywell Controls representatives in your area.  I've had good support from both over the past several years on Industrial HVAC Systems.
  4. The COP Instruction length tells you the number of strings to copy.  in your case if stringtest[13].LEN evaluates to 10 you've copied [11] to [13] , [12] to [14] , [13] to [15] all the way up to and including  [20] to [22].   The length in your COP instruction should be one (1).  You're copying One String. The Add instruction takes the position of the decimal and adds 2 places to it and makes it the length of stringtest[13].    
  5. appreciation

    Not a problem akashleo, just remember one day you will be the wise elder and we'll need you to pass on your knowledge as well.  ANd that happens sooner than you may think.
  6. Assuming that you always want the decimal in the same place, like you're displaying money for example.  I believe the following would work. RTOS RealValue AsciiStringValue FIND AsciiStringValue "." 1 Find_Pos COP AsciiStringValue AsciiDisplayValue 1 ADD Find_Pos 2 AsciiDisplayValue.Len Not as concise or elegant as the siemens but might just work.
  7. Dear MrPLC Users - The Webmasters of MrPLC just reported to the Admins that the ability to attach documents to postings has been restored. I have attached a simple picture PNG file as proof of concept. Thanks Everyone for your patience.
  8. Omron NX Length Measurement with Encoder

    Be prepared for this not to be as simple as you'd expect.  Take the example where your source stock is 10 meters long and you want 200 cm lengths cut from it.  Assume also that your stock is moving 2m/s.  And it takes 150 ms for you to sense and issue the cut command.  Your error is 300 mm or 30 cm.  Response time of electronics matters in moving situations is all I'm saying.  More than most people realize at first.
  9. Hello BobLfoot!

     

    You were the only one who have answered for my question about the Thesis idea.

    I dont have much equipment, I have rslogix 5000 and a compact logix AB plc. 

    I would like to do a project, like a complex task. I mean it dont has to be very very complecated but also not too easy too. I am asking your help to fiuire out some task, I can see you are here for a long time actively. 

    What do you think would you help me figuire out some task, which is enough just a plc and the rslogix5000 software ohh and Also I have software for panelview and ccw, for checking lets say inverters.

    Thanks ahead your answer.

  10. ASCII String to LREAL number

    According to https://www.engr.siu.edu/staff/spezia/NewWeb438B/labs/2080-rm001_-en-e.pdf you might try Any_to_Real Instruction.
  11. OK that's what I was thinking, but was wanting confirmation.  So let's assume you have a simple UDT for Vendor_UDT Type defined as Follows: Vendor_UDT.Used is a Bool Vendor_UDT.Value is a REAL Vendor_UDT.Name is a STRING Vendor_UDT_Array is an Array of type Vendor_UDT and a count of 16 for example. You'll need a UDT Type in your PLC defined to match the Vendor_UDT type and you'll need an array that matches or exceeds the size of the Vendor_UDT_Array. You'll right your message just like the REAL one only source and destination will be element [0] of the UDTArray. You'll then be able to alias to each sub-element of the array just like you aliased to Real Array elements.
  12. Also don't get caught like I did and set your timeouts too short.  While a command may complete in less than a second today, if network traffic is heavier tomorrow it may take 3 or 4 seconds.
  13. OK now you're starting to mix references and confuse me.   A MSG with a source of Vendor_UDT_Array in Vendor_PLC would need an identical UDT array in the Plant PLC to not error. Are you moving an Array of UDT or an Array of Reals?
  14. If you're working with Logix5000 Platform then you can do something like the following: In your PLC you currently have Vendor_Real_Array[0] through Vendor_Real_Array[100]. You can create a tag of type Alias called TempAmbientReal which is an alias of Vendor_Array_Real[0].  Then create an alias with a meaningful name for each of the 100 reals. Before you say that sounds like a lit of work, don't forget once you've made the first couple you can export tags to excel.  add the rest and re-import.
  15. You'll want to look at the manual(s) for your ethernet card.  I did a TCP Socket program from a 5571 to a videojet printer a couple years ago so I know it can be done.  You'll need to create your own housekeeping sequence logic to Declare Connection, Open Connection, Receive Data, Close Connection and Kill Connection.  Each Operation requires it's own message instruction.   I'd start with one of these manuals: https://literature.rockwellautomation.com/idc/groups/literature/documents/at/enet-at002_-en-p.pdf https://literature.rockwellautomation.com/idc/groups/literature/documents/um/enet-um006_-en-p.pdf And be warned not all ethernet cards are created equal.  Some won't do open sockets.