Michael Walsh

MrPLC Admin
  • Content count

    1801
  • Joined

  • Last visited

Everything posted by Michael Walsh

  1. Omron CP1L-M40EDT with CP1W-CIF41 FINS Communication

    Also, you can download Etherway, a great little utility written by an Omron Engineer:   https://www.support-omron.fr/details/logiciel.php?id=2017-07-28%20-%2015-34-21%20-%20636541960 (Telecharger means download)
  2. Omron CP1L-M40EDT with CP1W-CIF41 FINS Communication

    ICF should be 80 SA1 should be 28 (Hex for 40, the last octet of the source PC's IP address) For the FINS Command: MRC 01 SRC 01 MEMAREA 80 (for CIO word) ADDRESS 00 00 00 #WORDS 00 01 CIO code is B0, not 80. Do you have a routing table in the PLC specifying that the Ethernet network is network 1?  (You can use 00 for both DNA and SNA for testing, but I would recommend assigning net 1 to the Ethernet network and keeping DNA and SNA at 01 for the final product.)  
  3. NX1P2- explicit messaging to FANUC Robot

    Good to hear.  Thanks for the update.  I was going to take a look at this today,  at first glance though it seemed like it should have worked.  I would not have been able to duplicate your issue (without the code anyway).
  4. NX1P2- explicit messaging to FANUC Robot

    I am not sure exactly what you are saying.  Can you post pictures of the instruction that works, the one that doesn't, the structure and the variables?  (or you could just post the entire code and point to the issue, but likely would need to use some sort of box function and post a link)
  5. Sysmac CV1000-V1

    Yes, that is correct.   I have had to correct my son many times when he told people that "My Dad has been to jail".... no son, your Dad went to work in a jail....  
  6. Sysmac CV1000-V1

    There is a cable CV500-CIF01.  It is a 25 pin serial connector on the PC side that can be adapted to a 9 pin with a standard 25-9 adapter and then you can connect it to a serial to USB adapter.  They are probably hard to find and probably expensive.  Taking a quick look, there seem to be many third party replacement units that someone (not Omron) has designed that are USB, or 9 pin connectors.  These might work, but the original will have the 25 pin connector.  
  7. Jogging off 1S Software Limits

    The only thing that I can think of is if it is oscillating (tuning needs improvement, if so) and the actual position gets ahead of itself and corrects in the opposite direction (right as you are starting to accelerate).  This movement in the opposite direction (according to feedback anyway) might trigger the soft overtravel.  With the physical limits, this would not apply.  That is the only thing that makes sense to me.  
  8. Jogging off 1S Software Limits

    I just tested it and it allows you to jog in the reverse direction after hitting the forward software overtravel limit after you have issued a reset command (Function Block: MC_Reset).  I don't see an MC_Reset FB in your code. However, you could be manually resetting the error using the Troubleshooter Utility (Red button with exclamation point).  I will leave it set up here in case you want me to try something else.
  9. CP1E Barcode reader count

    The CP1L and CP1H processors both have string functions.  This can be found in CX-Programmer:   Help menu, Instruction Reference, CP1L/CP1H. Text String Processing Group: SEND and RECV are for sending FINS commands (Omron protocol) and are unrelated to TXD and RXD for general serial communications.
  10. CJ1M-CPU11 serial RS232 communication

    Make sure dip switch 5 (on CPU) is turned off: Also, that bit might have something to do with how you wired the serial cable into the port, I can't remember.  The port is not a standard pinout, what did you use for your cable?
  11. Jogging off 1S Software Limits

    Yes, I did.
  12. Jogging off 1S Software Limits

    It is difficult to see the issue.  I might get a chance to try this tomorrow with a servo.  
  13. CP1E Barcode reader count

    There are string instructions on the more advanced PLCs.  The CP1E is the most basic PLC in the current Omron offering (excluding the ZEN).  Your best bet is to use 6 =L instructions and compare the values in the 12 consecutive words.
  14. Jogging off 1S Software Limits

    It says the dropbox folder doesn't exist.  Can you show the positive and negative software limit config?
  15. Jogging off 1S Software Limits

    Put dropbox link in here.
  16. Jogging off 1S Software Limits

    Can you post your code?  Export to .smc2 file?  
  17. Inter PLC Communication over FINS

    Ok, show us what you have done....
  18. Inter PLC Communication over FINS

    Look into the SEND and RECV instructions, it is pretty straightforward.  I can help a bit more later if needed. 
  19. NX1P2- explicit messaging to FANUC Robot

    That is what I was thinking when I suggested doing a read, I thought the data type might be incorrect.   Nice work!
  20. CX Programmer Problem. Willing to pay via money transfer!!

    Don't you think it would be good for you to learn how to do this yourself?  I doubt anyone would do this for you in here.  We will help, if you get stuck, but you have to put in good solid effort first.
  21. NX1P2- explicit messaging to FANUC Robot

    Try a read first.  Use all of this below, but Byte#16#0E for the service code: ReqPath.ClassID :=UINT#16#6B;ReqPath.InstanceID :=UINT#1; //1 is the same whether hex or decimalReqPath.isAttributeID:=TRUE;ReqPath.AttributeID :=UINT#16#15;CIPUCMMSend_instance(Execute :=TRUE,RoutePath :='02\192.168.150.25',    //robot_ipTimeOut :=UINT#20,ServiceCode :=BYTE#16#10,RqPath :=ReqPath,ServiceDat := ServiceDataVariable, //Create a variable that is of the type that the data to write is. If 15 value is a UINT, make this a UINT and put 15 in it.Size :=UINT#1, //if only writing one value (15) then set this to 1.RespServiceDat:=ResDat);   See if you get data in the ResDat.
  22. Extracting digits from a string

    Ok,  so you want to extract all the numeral characters from the string and list them in order of appearance.  Try this in an Inline structured Text block: FoundNumbers:=''; //make the result string blank, or this will keep growing and growing FOR Index:=1 TO 100 BY 1 DO; //This is for a 100 character string     FoundChar:='';//makes FoundChar blank     FoundChar:=MID(StringToSearch,UINT#1,Index); //extracts one character at a time     StringGreater:=GEascii(FoundChar,'0'); //Checks to see if the character is >= 0     StringLessThan:=LEascii(FoundChar,'9'); //Checks to see if the character is <= 9     IF StringGreater AND StringLessThan THEN;  //if >=0 and <=9, then it is a number         FoundNumbers:=CONCAT(FoundNumbers,FoundChar); //add number to result string     END_IF; END_FOR; Here is a picture if it is easier to visualize: Here are the data types of all the variables: Name StringToSearch       string[100]            False    False     Index                        UINT                       False    False     FoundChar              String[2]               False    False     This technically only has to be a length of 2 (one for the character and one for a null character). StringGreater         BOOL                      False    False     StringLessThan     BOOL                      False    False     FoundNumbers    STRING[100]          False    False      
  23. Extracting digits from a string

    Adding this little bit of code in yellow will make the For...Next loop only execute as many times as there are characters in the string to search: Note the index only counted to 7 as there are 6 characters in the string and it had to increment one more time to find the NULL character.
  24. Template page

    It is called a sheet.  Sheets will appear on screens that you dictate.  First, create a sheet: This will add a sheet on the left hand side of your project Window.  Create the sheet as you would any other screen, but be careful to note where your objects are located so as not to overlap objects on your screens.   Then you must apply the sheet to the screens that you want.  Choose apply sheet: Then this window pops up: The screens are on the vertical axis and the sheets are on the horizontal axis.  Choose which sheets you want to apply to which screens: In the above example, I have applied sheet 0 to screens 0, 10, 11, 20, 22 and 25.  
  25. NX1P2- explicit messaging to FANUC Robot

    1C00 means that the ErrorIDEx will be a code that is stored there based on the remote node (that is the Fanuc Robot).  If you have looked in the Fanuc Manual and it said invalid Attribute, which is what I think you are saying, then try UINT#15 (as I mentioned in my initial response, I was unsure if the 15 was hex or decimal).  I provided the hex example above (UINT#16#15), so again, try UINT#15 (integer) for the attribute.