Communicate Robot Position to AB PLC

  • I have a Yaskawa GP4 with a YRC1000 Micro controller and a AB 1769-L18ER PLC used for R&D purposes. I found some helpful information on this site for getting the current robot positions into M registers. Now I need to communicate that to my PLC via Ethernet I/P. I'm specifically interested in the Rz axis as I'm trying to correlate angular position with a measured diameters. I have the lower and upper words mapped to M20 and M21 respectively. I'd like to communicate these values as fast as possible so I can rotate a bit quicker.


    What is the best way to accomplish this? Ladder to General outputs?

  • Depending on how much money you want to spend, mapping the M-registers to GP outputs in the ladder is cheapest.


    There are other software packages that can be purchased to do it faster.

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • Thanks for the reply.


    What other software packages? I may end up using a robot to present the part to the inspection system. I'm not sure it has the stability for a 3D scan though.

  • You should be able to do this with message commands from the PLC. The information is in the 178651-1CD Manual Ethernet_IP. Not sure of your application and if this is fast enough for you.

  • I appreciate the help guys.


    I’m communicating the values to my PLC using concurrent I/O and EIP. When I look at the registers for M20 and M21 in the robot and PLC, they each read the same values. When I combine those registers into a 32-bit integer, I’m not getting the same pulse count or angle so I’m not sure what these numbers represent.


    For example, M20=17523 and M21=6 in both my PLC and robot. The pulses for that same robot axis = 19012 and degrees = 41.7744. When I combine those two words into a single 32-bit integer in my PLC, I get 410739 which doesn’t translate. Combining those words into a 32-bit real value doesn’t translate either. I must be missing something?

  • In case a search brings someone to this thread in the future, below was the solution for what I needed.


    Refer to the General Operators manual section 6.12.5 for outputting each axis position to register. I wanted the feedback value (FB value) so I set the parameters of S1CxG as follows:


    337=2 (outputs 4 bytes of data in 0.0001 degrees or um for a linear axis)

    1305=20 (lower 2 bytes are mapped to register M020 and upper two bytes are mapped to M021)


    You then have to revise the ladder to map those registers to your desired concurrent outputs to get the data into the PLC.

Advertising from our partners