How to sending ABB robot's position to the PLC.
How to sending ABB robot's position to the PLC.
-
ameer.mulla -
July 30, 2018 at 12:10 PM -
Thread is Resolved
-
-
You could do it by executing a CRobT, then exporting the various elements of the RobTarget out to Group Outputs.
-
How to sending ABB robot's position to the PLC.Which PLC you use and dose your PLC have a ethernet port? May be you can send your current position of the robot through the socket communication.
-
We are using Siemens PLC ( CPU 317 2PN/DP ) having Ethernet connectivity. Can you share sample/reference program for same.
-
HI
This is an example of CRobT (read manual , please)
If you are using Ethernet I am assuming you are communicating with the PLC using i/o, so, read about how to define groups of i/o. Then you can load the value of GI into nConvApproachZ for example
nConvApproachZ := gi1;
pCurr:=CRobT(\Tool:=tVacuum\WObj:=wobjFOV);..............................Read robot position
pCurr.trans.z:=nConvApproachZ;.......................................................Put a value on the z axis
MoveL pCurr,vInitSpeed,fine,tVacuum\WObj:=wobjFOV;.......................Move to the point with the new value -
Just keep in mind that CRobT isn't "reliable" for real time monitoring, if that's what you'd like to do.
-
Hi,
My requirement is sending robot position (X Y Z co-ordinate or Axis joint position) to Siemens PLC.Group outputs (GO) send only positive integer.
-
I think you can find the example in the "Application manual - Controller software IRC5", "8.4 Socket Messaging [616-1]" is regarding how to implement a socket communication. But your robot must have PC Interface option. And another side on your PLC, you need to make a program to receive from the robot.
How to read the current position, you can check the above reply.
If you want to send real-time position to the PLC, I think you should have EGM option which is using UDP protocol but in XML format. I have no idea how to receive with your PLC.If not, you can make a socket communication using the standard TCI/IP protocol. And the detail format, you can define by yourself. -
Use RS-232C Communication.
pCurrent_pos := CRobT(\Tool:=tool0\Wobj:=wobj0);
nPos_X := pCurrent_Pos.trans.X;
nPos_Y := pCurrent_Pos.trans.Y;
nPos_Z := pCurrent_Pos.trans.Z;sPos_X := ValToStr(nPos_X);
sPos_Y := ValToStr(nPos_Y);
sPos_Z := ValToStr(nPos_Z);Open "COM1:", iodev1;
ClearIOBuff iodev1;
Wait 0.5;WriteStrBin iodev1, "sPos_X;"
Set Do01_Trans_X;
WaitUntil Di01_Confirm_X = 1\MaxTime:=5\TimeFlage:=nTimeOver_X;
Reset Do01_Trans_X;
Wait 0.5;WriteStrBin iodev1, "sPos_Y;"
Set Do02_Trans_Y;
WaitUntil Di02_Confirm_Y = 1\MaxTime:=5\TimeFlage:=nTimeOver_Y;
Reset Do02_Trans_Y;
Wait 0.5;WriteStrBin iodev1, "sPos_Z;"
Set Do03_Trans_Z;
WaitUntil Di03_Confirm_Z = 1\MaxTime:=5\TimeFlage:=nTimeOver_Z;
Reset Do03_Trans_Z;
Wait 0.5;ClearIOBuff iodev1;
Close iodev1; -
Why would you send only positive integers when every axis has + so many degrees, - so many degrees? I don't see the usefulness unless you have both.
-
Hi,
My requirement is sending robot position (X Y Z co-ordinate or Axis joint position) to Siemens PLC.Group outputs (GO) send only positive integer.
What do you intend to do with this information ?
WHY do you want to have the robot position sent to the PLC ? (the answer dictated the solution)
-
OK, I think that I misunderstood about the GO sending only positive integer--you mean that is a problem for you? Because, of course, you will have negative values. You can set another bit to PLC which will tell it to read in the value as negative, or positive, and then multiply by -1 will be maybe easier to code.
-
Hi,
I have installed the sample EIO file we have made with ISRA in addition. An example of a 3D camera. The camera robots give the coordinates of random X, Y, Z, Rx, Ry, Rz and take the robot part.