前言
开发中经常会有通信,今天跟大家分享一下,机器人如何与视觉上位机实现TCP通信。
连接机器人
这里使用的机器人是EPSON T3系列的一款Scara机器人。
机器人的软件使用的是EPSON R V7.4.5版本,如果大家需要该软件,+V:thingerzj
首先需要建立与机器人之间的连接,一般与机器人之间连接有两种方式,一种是串口,一个是口,这里采用的是以太网接口。
SPEL+命令
EPSON机器人编程使用的是SPEL+语言,需要参考SPEL+的相关命令进行编程。
这里罗列几个EPSON以太网编程的关键命令。
1、SetNet命令
参数列表:
通信端口编号:指定要设置参数的 TCP/IP 的端口编号。范围为 201~216。
主机地址:指定主机的 IP 地址。
TCP/IP 端口编号:指定 TCP/IP 端口编号。
终止符:指定 CR、LF、CRLF 中某个行末字符。
流控制:是指软件流控制,默认为NONE。
超时时间:以秒指定收发的最长时间。指定0时,超时则变为无限。
通信协议:指定通信的协议(TCP/UDP)类型。
使用示例:
SetNet #201, "192.168.0.1", 2001, CRLF, NONE, 0
2、OpenNet命令
格式:
OpenNet #端口编号 As Client/Server
参数列表:
端口编号:指定要打开的 TCP/IP 端口编号的整数值。端口编号的范围为 201~216。
使用示例:
Funcon tcpip String data$ OpenNet #201 As Client WtNet #201 Input #201, data$ Print "received '", data$, "' from host 1" Fend
3、ChkNet命令
格式:
ChkNet (通信端口编号)
参数列表:
通信端口编号:指定 TCP/IP 端口编号(201~216)。
返回值
返回接收字符数(整数值)。
如果不存在接收数据,以下负值返回端口状态。
-1 端口已打开,但是未确立通信
-2 其他任务正在使用端口
-3 未打开端口
使用示例
Integer numChars numChars = ChkNet(201)
4、Line Input命令
格式:
Line Input #端口编号, 字符串变量名$
参数列表:
端口编号:表示文件、通信端口、数据库或装置的ID编号。
字符串变量名$:指定字符串变量名。
EPSON编程
1、TCP子函数
'定义接收和输出变量 Global String ReceiveData$, SendData$ Function ASTCPClient '设置IP地址、端口号、结束符等 SetNet #201, "192.168.1.100", 2000, CRLF, NONE, 0 '机器人作为客户端,打开端口 OpenNet #201 As Client '等待连接 WaitNet #201 '连接成功显示 Print "TCP ConnectOK....." Do '断线重连 If ChkNet(201) = -3 Then '检查端口状态(>0 时为缓冲字符数量.<0 为异常状态) CloseNet #201 '关闭端口再重连 Wait 0.2 OpenNet #201 As Client '打开客户端 WaitNet #201 '等待连接 EndIf '接收上位机数据 If ChkNet(201) > 0 Then Line Input #201, ReceiveData$ Print "【" + Da$ + " " + TIme$ + "】" + "接收到上位机的数据:" + ReceiveData$ EndIf '发送数据 If SendData$ <> "" Then Print #201, SendData$ Print "【" + Date$ + " " + TIme$ + "】" + "发送给上位机:" + SendData$ SendData$ = "" EndIf Loop Fend
2、主函数调用
FuncTIon main '多线程执行 Xqt ASTCPClient Fend
通信测试
1、先用网络调试助手开一个TCPServer,IP地址是192.168.1.100,这里大家根据自己的电脑IP来设置,端口号为2000。
2、EPSON机器人选择菜单栏中的运行,会直接将程序到机器人中。
3、下载完成后,点击开始,即可实现通信。
4、可以通过网络调试助手给机器人发指令。
审核编辑:汤梓红
- 无线供电与数据传输方案
- LTC2946CDE 在 -48V 系统中使用低侧检测(1.5kHz I2C 接口)进行电源、电荷和能量监控的典型应用
- #第六届立创电赛#离线语音开关
- EVAL-ADUM7643EBZ,用于评估 iCoupler ADuM7642 6 通道数字隔离器的评估板
- AL1696EV2,基于 AL1696 高亮度升降压 LED 驱动器的评估板
- LTM4627EV 演示板,50A 并联多相器降压电源(四路 LTM4627)
- LT3091ER 正输出电流监视器的典型应用
- TEVAL-SILPLC01:主控STM32H723VG,通过安全认证的PLC工业板
- DC844D,用于 LT5515EUF、1.9GHz 直接变频解调器的演示板
- 交流电机控制应用的典型电源板电路