TCPIP通讯
TCPIP 通讯(即SOCKET通讯)是通过网线将服务器Server端与客户机Client端进行连接,在遵循类似ISO/OSI模型的四层层级架构的基础上通过TCP/IP协议建立的通讯。控制器可以设置为服务器端或者客户端。
1.1 通信设置
按下手持操作示教器上的【上
移】或者【下移】使主菜单下
。按下
手持操作示教器上的【右移】
【上移】或者【下移】使主菜
。按下
手持操作示教器上的【右移】
的
通讯功能可以同时开通
,你可以点击通路
选择下面的向左或者向右按
每次改
变或者设置新的通路选择参
才
出
按
服务器地址:即服务器端的IP地址,当机器人控制器作为
客户端时,则需要填入服务器IP地址;当机
器人控制器作为服务器端,则可以不填该参
数。
端口:服务器端口又是本地端口号,前者是对于控制器作
为客户端而言,后者是对于控制器作为服务器端而
言。这里要求服务器和客户端的这个参数必须相同。
结束符:参数默认就是CLRF,回车换行符。是从控制器发
送出的数据带回车换行符。
超时时间:Socket 通讯时非阻塞模式下的延迟时间,对于
接收指令SOCKRECV,控制器会在这段时间内
不停扫描设备端是否有数据发送过来,如果有则
马上接收,如果超出这段时间仍然没有数据发送
至控制器,则示教程序会自动执行SOCKRECV
的下一条指令。
通路名:参数是给Socket取的名字,相当于控制器端Socket
的ID。
1.2指令说明
1.2.1打开通讯
SOCKOPEN Str1 Type= CLIENT
Str1:表示此次打开的Socket的名字,需要和界面设置的【通路名】赋值一样。所以在使用该指令时要先进入主界面里的【变量】-【数值变量】设置里面使得字符型变量S001的值为【通路名】的值。例如,在上图设置了【#301】的【通路名】为‘robot’,那么在S001中的值应该为’robot’。STR1对应的是S001,STR2对应的是S002,以此类推,如果用户在S002里面写入了Socket名字,那么参数STR1改为STR2。
Type:指定这时的机器人控制器产生的Socket为客户端还是服务器端。tcpip协议连接不上
注意:每个机器人控制器产生的Socket必须且只能打开一次。
1.2.2关闭通讯
SOCKCLOSE Str1
Str1:需要关闭的Socket名字,和前面SOCKOPEN指令里的STR1参数是一样的。
1.2.3接收数据
SOCKRECV Str1 Str2 B1
Str1:表示Socket名称,赋值为设置界面中的Access name,与SOCKOPEN指令里Str1参数含义及赋值都一样。
Str2:接收到的字符串数据,将存储在字符串型变量S002里面,每次接收的字符串不能超过255个字节。
B1:>0数据正常发送,=-1Socket不存在,=-2连接失败,=-3错误,=-4超时。
注意:
1、使用SOCKRECV指令时,可以在一段时间内不停检测是否有数据发送过来,如果有则马上
接收,如果没有,则自动执行下一条指令。这段时间值可以在设置界面的【超时时间】里面设置。
2、如果示教程序在SOCKRECV这条指令执行时手动暂停了,那么计时将停止,控制器在暂停
期间不会接收数据。如果暂停结束后,那么SOCKRECV这条指令的检测时间重新开始计时,暂停期间如果设备端有发送数据,则这些数据在暂停期间不会被接收,暂停结束后的第一条SOCKRECV指令将全部接收这些数据。
3、如果网线中间断开链接,SOCKRECV指令能否接收到数据取决于控制器缓冲区是否有数
据,如果在网线断开之前数据就已经传送到控制器缓冲区,就能接收到数据;反之,接收为空字符。
1.2.4发送数据
SOCKSEND Str1 Str2 B1
Str1:与前面一样,表示此处的Socket名称。
Str2:要发送的字符串,存在字符型变量S002里面,每次发送不能超过255个字节。
B1:>0数据正常发送,=-1Socket不存在,=-2连接失败,=-3错误,=-4超时。
注意:机器人控制器能同时开通16个Socket作为客户端,每个Socket只能开通关闭一次,开通之后能接收或者发送数据N次,然后必须要关闭,不然下次开通该Socket会报错。
1.3示教程序
利用网络调试助手做服务器进行模拟发送,用控制器作为客户端进行接收。设置本地IP地址为192.168.0.3,端口号5050。设置完如图1所示。控制器端就按TCPIP通讯中第四步操作进行设置。
字符串处理指令
无论是TCPIP通讯或串口通讯,传输数据都需要转换成字符串,所以字符串处理指令是必不可少的。按下手持示教器上的【命令一览】按钮,出现各种指令,点击【字符串】一栏,就会出现字符串处理指令。
3.1指令说明
3.1.1 整型转字符串
INT2STR I1 STR1
将整型变量I1中的数值转换成字符串型变量STR1,存入S001中。
3.1.2 位置型转字符串
POS2STR P1 STR1 DELIM = #
将位置型变量转化为字符串,这里机器人位置型变量是以关节坐标系下的位置值进行转化,以DELIM里面设置的数据分割符进行分割。其中分隔符用户可以自行定义,可以不为# ,并且只能设置一个字符。
XXX1#XXX2#XXX3#XXX4#XXX5#XXX6#XXX7#XXX8#XXX9
3.1.3 实数型转字符串
REAL2STR R1 STR1
将实数型变量R1里的数转换成字符串型变量STR1,存在S001中。
3.1.4 字符串转整型
STR2INT STR1 I1
将S001中存的字符串型变量转换成整形变量,存在I1在中。
3.1.5 字符串转位置点
STR2POS STR1 P1 DELIM=#
将S001中的字符串转换成位置型变量,存在位置变量中。以DELIM里面设置的数据分割符进行分割。其中分隔符用户可以自行定义,可以不为# ,并且只能设置一个字符。
3.1.6 字符串转实数
STR2REAL STR1 REAL
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论