套接字通信是TCP/IP通信,没有协议,在Microsoft环境中称为套接字
2)插座能做什么?可以发送和接收指定的数据,包括字符串字符串,字节数组等
3)创建socket机器人需要616-1 pc接口选项
4)插座通信网络电缆哪个端口?服务端口(固定IP: 192.168.125.1)或Wan端口(可自行设置)
5)创建客户端实例:ABB机器人通常与摄像头通信,机器人充当客户端。
(1)要创建一个新的机器人系统,请注意在系统设置时添加了pc-interface选项
(2)如果前一个连接没有关闭,则先插入socketclose指令,随后的socket1是新的socketdev变量
(3)然后插入创建连接socketCreate
(4)插入SocketConnect,之后需要指定服务器的IP和端口。如果连接的是计算机和另一个虚拟控制器,则将IP设置为“127.0.0.1”,端口自定义。建议不要使用默认的1025。
这一步将允许机器人与服务器建立连接,如果它没有这样做,它将等待直到它成功,如果它成功,它将继续
(5)测试在这里,成功建立后,插入TPWrite指令,你可以看到socketclinent连接成功在教练机
(6)下一步可以发送和接收数据。这里的示例是,客户机首先向服务器发送数据,然后接受服务器发回的数据
(7) SocketSend后可以发送字符串或字节数组,可以选择不同的可选变量
(8)发送后,客户端接收到服务器发回的数据并写入屏幕
二、数据关键信息的提取
1)摄像头通常向机器人发送一个字符串,如“1.23,4.56,7.89\0D”,即x为1.23,y为4.56,z角为7.89,以\0D为结束字符,数据之间用“,”分隔。
2)如果机器人接收到上述字符串,如何提取该字符串并支付变量deltaX、deltaY和thetaZ?
3)建立几个num变量来存储过程数据,如StartBit1, x的数据代表的地方开始,Endbit1代表x的数据的地方结束,Lenbit1代表数据的长度(x)和s1表示提取的x的值的字符串。
4)假设x的**位为1,并将1赋值给Startbit1
5)插入函数strfind, find ** ", "在其中,得到EndBit1的值
6) EndBit1减去StartBit1是x的数据长度
7)同样,可以得到y和的信息
8)通过StrPart函数,提取从StartBit1开始到LenBit1结束的字符串,即x值的字符串
9)类似地得到y和z字符串
10)通过StrToVal函数将s1转换为num类型,并支付delta_x, StrToVal函数的反馈值为bool quantity,即转换成功为true,转换失败为false
11)同理可得
3.转换关键信息和点数据
1)摄像头发送xy和theta,我们已经从字符串中提取了x、y和theta的值,但是机器人point robtarget是由trans: xyz和rot: q1-q4组成的。
2) ABB机器人使用四元数表示角度。如何将角度转换成四元数?
3)建立一个新的习惯
(4) Target_10_ini是以前在workobjec_1坐标系下教过的点位置,通常在这个坐标系中是0,0,0,即在坐标系中是0点。
5) Workobject_1坐标系与摄像机坐标系相同(摄像机可使用棋盘格校准纸进行校准)
6)通过程序的点位Target_10,注意存储类型是VAR,否则不能赋值
7)创建新的num变量or_x、or_y、or_z来表示原始点Target_10的位姿ABC数据。
8)通过函数eulerzyx可以得到角度,一次只能得到一个角度
9)将摄像机中的x和y的偏移值赋给target_10中的x和y
10)将摄像机的角度加入到原始的or_z角度中,得到新的z角度
11)使用orientzyx函数将or_x、or_y和or_z角度重新转换为Target_10的姿态四元数
12) *你得到一个新的target_10的位置和姿势。