川崎机器人网络通信客户端标准模板(单文件)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档