机器人本身的socket通讯只有脚本这一种方式,用户编写脚本通讯耗时 多,且不能开机自动连接,此插件提供用户界面减少用户使用socket的时间,同时提供开机自启或自动连接的客户端和服务器,并且提供快捷指令。
- 机器人系统版本v2.11及以上
- 扩展socket插件exsocket-5.9.1.elico
- 使用调试助手模拟视觉做(客户端/服务端)与机器人通过收发字符串来实现简单交互。
2.2.插件导入
2.2.1.将带有插件的 u盘插入示教器上
2.2.2.点击右上角菜单-设置-选择系统目录下“ELITECOS”-点击“+”-选择U盘文件找到U盘里的插件包-点击“打开”-选择“未激活”确认无误后-点击”重启3“即可
2.3.插件使用
2.3.1.机器人设置IP
该插件适用于本机器人的FB1网口:(在机器人设置→网络→FB1网络里的IP地址)
在导入拓展socket插件之后,在“配置”-“socket配置”里可以设置客户端的参数
只需要输入对应的(服务端地址,端口号,点击“连接”)界面上也会有连接状态反馈。
在扩展socket插件的“socket配置”中我们可以一些便捷功能能使用
比如; 开机自动连接(只需勾选上)
此图-表示已经连接上对应服务器
方法2;
在任务里直接添加
选择导航栏“任务”-指令栏选择“插件”-点击"Socket Client"-设置该指令(勾选“连接”-输入对应的服务端地址,端口号,“运行”或点击"连接"即可)
2.3.2.2.客户端发送
选择导航栏“任务”-指令栏选择“插件”-点击"Socket Client"-设置该指令(勾选“发送”-输入对应的数据类型)可以手动点击”发送“,也可以直接”运行任务“来发送
2.3.2.3.客户端接收
选择导航栏“任务”-指令栏选择“插件”-点击"Socket Client"-设置该指令(勾选“接收”-输入对应的数据类型)可以手动点击”接收“,也可以直接”运行任务“来接收
可以选择或者编辑接收数据的“变量“,设置超时时间,默认:0表示一直等待接收值,可以选择接收到的值的类型(注;如果如果发送的数据,无法变成对应选择类型会发生弹窗错误
比如;发送的值为[1,2,3]数组,选择的是整数类型就会发生弹窗错误)
2.3.3.机器人做服务端
2.3.3.1.服务端开启监听
在导入拓展socket插件之后,在“配置”-“socket配置”里可以设置服务端的参数
只需要输入对应的(服务端地址,端口号,点击“启动监听”)界面上也会有监听状态反馈,监听成功后即可叫客户端来连接。
在扩展socket插件的“socket配置”中我们可以一些便捷功能能使用
比如; 开机自动监听(只需勾选上)
方法2;
在任务里直接添加
选择导航栏“任务”-指令栏选择“插件”-点击"Socket Server"-设置该指令(勾选“监听”-输入对应的服务端地址,端口号,“运行任务”或点击"监听"即可)
注:每次任务运行监听指令会让客户端连接断开,所以无特殊需求方法2不建议使用。
选择导航栏“任务”-指令栏选择“插件”-点击"Socket Server"-设置该指令(勾选“发送”-输入对应的数据类型)可以手动点击”发送“,也可以直接”运行任务“来发送
注:服务端不管是发送还是接收都一定要客户端选择地址
选择导航栏“任务”-指令栏选择“插件”-点击"Socket Server"-设置该指令(勾选“接收”-输入对应的数据类型)可以手动点击”接收“,也可以直接”运行任务“来接收
注:服务端不管是发送还是接收都一定要客户端选择地址
可以选择或者编辑接收数据的“变量“,设置超时时间,默认:0表示一直等待接收值,可以选择接收到的值的类型(注;如果如果发送的数据,无法变成对应选择类型会发生弹窗错误
比如;发送的值为[1,2,3]数组,选择的是整数类型就会发生弹窗错误)
2.3.4.socket插件便捷指令
2.3.4.1.字符串拆分
该指令可以把接收的字符串型数据用符号进行分割(数字可以自动转换成整型或者浮点型直接用于计算等操作)
该指令可以直接把数组里的数据拆分赋值到变量里,下标代表需要获取的数组里的第几位数据(从0开始)
某些情况下由于服务器发送的数据没有被接收,数据会缓存缓冲区里。下一次接 收可能接收到意想不到的数据,造成程序运行错误。可以在程序开始前或适当的 时机插入清除客户端缓存节点。
某些情况下由于客户端发送的数据没有被接收,数据会缓存缓冲区里。下一次接 收可能接收到意想不到的数据,造成程序运行错误。可以在程序开始前或适当的 时机插入清除服务器缓存节点
- 机器人为客户端时查看对应的IP地址是否填错,是否是同一网段,是否可以ping通,是否网线插在在FB1网口。
原因:客户端未选择地址
原因:接收数据超时