川崎机器人网络通信客户端标准模板(单文件)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.PROGRAM tcpip() #0;川崎机器人TCP/IP通信程序_客户端
;**************************************************
;* 川崎机器人TCP/IP通信程序*
;* 佛山隆深机器人有限公司*
;* 修改日期: 20170501 *
;* 程序编写: 闪剑*
;************************************************** status:;检查是否与视觉系统建立连接(防止重复连接错误发生)
TCP_STATUS .s1,.s2[1],.s3[1],.s4[1],.s5[1],.$s6[1]
IF .s1==0 GOTO connect;当前机器人无网络连接
IF .s3[1]==0 THEN;套接字ID非法
PRINT "请重新启动机器人电源!"
TWAIT 3
RETURN;返回主程序
END
IF .s3[1]>0 AND sock_id>0 GOTO send;已连接则跳转到发送数据部分10
connect:;##########建立通信连接##########
port = 9000;通信服务器端口号(8192-65535之间)
ip[1] = 192;服务器地址第一组
ip[2] = 168;服务器地址第二组
ip[3] = 0 ;服务器地址第三组
ip[4] = 15 ;服务器地址第四组
TCP_CONNECT sock_id,port,ip[1],10;建立通信指令
IF sock_id<=0 THEN;通信失败
$state = "连接失败"
TWAIT 1
GOTO connect
ELSE
$state = "通信打开"
END
TWAIT 4;等待软件建立通道
send:;##########发送指令到服务器请求数据##########
TCP_SEND .rets,sock_id,$send_buf[1],1,10;发送数据指令
IF .rets<>0 THEN;发送数据失败
$state = "发送失败"
IF sock_id>0 GOTO close
GOTO send
ELSE
$state = "发送成功"
END
recv:;##########接收服务器回传的数据##########
.retr = 0
.num = 0
TCP_RECV .retr,sock_id,$recv_buf[1],.num,60,255;接收数据指令IF .retr<>0 THEN
$state = "接收失败"
IF sock_id>0 GOTO close
GOTO recv
ELSE
$state = "接收成功"
END
$recv = $recv_buf[1]
js = 0
decom:;##########处理接收到的数据##########
IF $recv_buf[1]=="" THEN
$state = "采集完成"
GOTO finish
ELSE
.$temp = $DECODE($recv_buf[1],",",0);提取","之前的字符
recvbuf[js] = VAL(.$temp);将字符转变为实数值
.$temp = $DECODE($recv_buf[1],",",1);提前分隔符","
js = js+1;计数器增1
GOTO decom
END
close:;##########关闭通信连接##########
IF sock_id<0 GOTO 10
TCP_CLOSE .retc,sock_id;关闭通信指令
IF .retc<>0 THEN
$state = "关闭失败"
TCP_CLOSE .ret1,sock_id;强制关闭通信
END
$state = "通信关闭"
GOTO 10
finish:
RETURN;返回主程序
.END