Famous_Fella

MrPLC Member
  • Content count

    22
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Famous_Fella

Profile Information

  • Country Greece
  1. EtherNetIP Programming with Sysmac

    Extract the EDS file directly from the robot. If it is a FANUC Robot you press MENUS > FILE > Set Device (to choose a USB drive to save) and after press backup (on R30iB controller) and choose "Com. Conf." option. This will extract the EDS file to the USB
  2. NX1P2- explicit messaging to FANUC Robot

    Concerning that matter, the issue was that for sending messages both the set and get messages were sharing the same UCMMSend instance name, and accounting the fact that the RPI values are set really high on my system, the PLC was sending a write message and before it would get a response it was trying to send another message (my Main Task's scan time is 2ms) with the same instance name producing conflicts. So to anyone who will try to use explicit messaging extensively to communicate with a FANUC robot, people check your RPI values set from both PLC AND Robot. Every single minute I invest more on this project I realize that for the combined setup of a robot and a PLC to work together eficiently you really need to be half an OMRON half a FANUC expert with a Master's degree in Computer Networks.
  3. NX1P2- explicit messaging to FANUC Robot

    Concerning the project so far: I managed to use Set_Attribute_single service to manipulate 1 Numeric Register on the Robot and Get_Attribute_block service to read 6 Blocks of numeric registers each block containing 6 numeric registers. Now here comes my question: I use one POU with 6 rungs, each rung consisting of the CIPUCMMSend command for each block to be read. I use Get100msclk command on each rung to force each message every 100ms and update the values of each block. Is this an efficient way? Is it wise to send 6 messages indefinetely every 100 ms ? Would you advice on using a switch to turn the UCMMSend on and off ? Also, concerning configuration of Ethernet IP the RPI set from the originator was left on default of 50ms. The RPI on the Target (robot) was left on 35ms (default) all this from the integrator that installed the machine. Problem is I use LAN network to connect to the machine but the machine runs behind a VPN so I am unable to reconfigure the basic Ethernet IP using CX Network Configurator (because the PLC runs on an address of 192.168.150.1 but I use 192.168.0.164 provided by the NAT of the VPN router to connect). Is there any solution to reconfigure the entire Ethernet IP of the machine?   EDIT:  connecting locally using a Laptop is not  an option for the time being    
  4. NX1P2- explicit messaging to FANUC Robot

    UPDATE I found the reason why this happened. Reason is, I currently use 2 CIP messages, 1 to read 1 to write on separate POUs, but I used the same global variable passed on the RespServiceDat parameter of both instances. Changing the variable passed to internal on the first message corrected my problem.
  5. NX1P2- explicit messaging to FANUC Robot

    I could obviously try and move the values of ResDat array to the SWheel.Z_variance array AFTER the message but I am curious to know why it doesnt work like this. Again this a CIPUCMMSend function but with service Get_Attribute_Block
  6. NX1P2- explicit messaging to FANUC Robot

    this code setup doesnt fill the array
  7. NX1P2- explicit messaging to FANUC Robot

    this code setup works as intended as you can see from the watch tab
  8. NX1P2- explicit messaging to FANUC Robot

    So moving on, on the project and after successfully using Explicit Message function to write a single Numeric Register I moved on to the next request which is to read a BLOCK of registers and store them to an array. Again, after following FANUC's documentation for the correct setting of the message parameters I managed to read the block of registers I needed and here comes the problem: I need 4 separate blocks of registers to be stored in 4 separate arrays. To give you an idea of the project, the robot has 6 stations each station using a grinding wheel and for every wheel there are parameters like diameter, increment amount, skip increment/no of pieces, y dimension variance. So what seemed like a good idea was to create a structure (I called it SWheel) consisting of 4 arrays, then proceed to make a global variable of Data Type Swheel and using 4 separate messages extract each block and pass each array to the Response data recieved. My problem is this: If I pass, for example, SWheel.yVariance to the RespServiceDat parameter of the CIPUCMMSend function the array is not populated with values. If I pass another array created outside of structure in the global variables it gets populated as intended. Both arrays are of the same type (ARRAY[1..7] of REAL).   What am I missing?
  9. NX1P2- explicit messaging to FANUC Robot

    I really appreciate your time and effort! I spoke countless of hours with FANUC and OMRON and they couldn't guide me through setting it up. And when I set it up they couldn't propose any solutions to my problem. So much for "technical supports" and "customer care".
  10. NX1P2- explicit messaging to FANUC Robot

    YES !!!!! ServiceDat must be sent as DWORD ! Everything works flawlessly now !!!! Thank you very much for your help ! Greately appreciated !  
  11. NX1P2- explicit messaging to FANUC Robot

    It seems like the problem is what I send. If I change data type of ServiceDat to DWORD the UCMMSEND function executes successfully  
  12. NX1P2- explicit messaging to FANUC Robot

    Yes! It reads Register 13 with value 20 !!!!!!!!  Thanks a lot ! I am so happy ! I was starting to loose all hope.
  13. NX1P2- explicit messaging to FANUC Robot

    No. In translated the error based on the table of errors provided in NJ/NX-series CPU Unit Built-in EtherNet/IP Port User’s Manual (W506). Based on FANUC documentation the errors returned can be Undefined Attribute (0x14) Returned when the Register requested does not exist. Unsupported Service (0x08) Returned when the requested service is unsupported. Undefined Class Instance (0x05) Returned when the requested instance number is unsupported. No 09. Now I also made some tests. The robot controller supports 250 Numeric Registers INT or REAL data type based on the value I send. In the attached photos I am using Class 0x6B Instance 0x01 Attribute 0x95 Service 0x10 Value 1000 to  Register R[144] = 1000. I changed InstanceID to 2 which is unsupported and the system returned 05 fault as expected and documented from fanuc. I then changed Attribute to a number outside the supported range of 0-250 and The message was sent (nothing changed in the controller registers though) with all the parameters correct though I still get 09 error which is not documented by fanuc.
  14. NX1P2- explicit messaging to FANUC Robot

    UPDATE: Thank you for your valuable help. I was able to to find the error but I dont really know how to overcome this. As the manual states any errors concerning the outcome of the function will be stored in ErrorIDEx variable which in my case returns 0900 0000 Invalid attribute value but there is also another variable called ErrorID which stores 1C00 which I guess I have to ignore for now,  as the cause of my failed message is the attribute value which I don't understand why as I have followed all the rules provided by FANUC's EIP Manual and vendor-specific list of services attributes etc etc