前言
大家好,今天跟大家分享一下,EPSON機(jī)器人如何與視覺上位機(jī)實(shí)現(xiàn)TCP通信。
連接機(jī)器人
這里使用的機(jī)器人是EPSON T3系列的一款Scara機(jī)器人。
機(jī)器人的編程軟件使用的是EPSON RC++ V7.4.5版本,如果大家需要該軟件,可以通過公眾號(hào)回復(fù) 304 。
首先需要建立與機(jī)器人之間的連接,一般與機(jī)器人之間連接有兩種方式,一種是USB串口,一個(gè)是以太網(wǎng)口,這里采用的是以太網(wǎng)接口。
SPEL+命令
EPSON機(jī)器人編程使用的是SPEL+語言,需要參考SPEL+的相關(guān)命令進(jìn)行編程。
這里羅列幾個(gè)EPSON以太網(wǎng)編程的關(guān)鍵命令。
1、SetNet命令
參數(shù)列表:
通信端口編號(hào):指定要設(shè)置參數(shù)的 TCP/IP 的端口編號(hào)。范圍為 201~216。
主機(jī)地址:指定主機(jī)的 IP 地址。
TCP/IP 端口編號(hào):指定 TCP/IP 端口編號(hào)。
終止符:指定 CR、LF、CRLF 中某個(gè)行末字符。
流控制:是指軟件流控制,默認(rèn)為NONE。
超時(shí)時(shí)間:以秒指定收發(fā)的最長時(shí)間。指定0時(shí),超時(shí)則變?yōu)闊o限。
通信協(xié)議:指定通信的協(xié)議(TCP/UDP)類型。
使用示例:
SetNet #201, "192.168.0.1", 2001, CRLF, NONE, 0
2、OpenNet命令
格式:
OpenNet #端口編號(hào) As Client/Server
參數(shù)列表:
端口編號(hào):指定要打開的 TCP/IP 端口編號(hào)的整數(shù)值。端口編號(hào)的范圍為 201~216。
使用示例:
Function tcpip
String data$
OpenNet #201 As Client
WaitNet #201
Input #201, data$
Print "received '", data$, "' from host 1"
Fend
3、ChkNet命令
格式:
ChkNet (通信端口編號(hào))
參數(shù)列表:
通信端口編號(hào):指定 TCP/IP 端口編號(hào)(201~216)。
返回值
返回接收字符數(shù)(整數(shù)值)。
如果不存在接收數(shù)據(jù),以下負(fù)值返回端口狀態(tài)。
-1 端口已打開,但是未確立通信
-2 其他任務(wù)正在使用端口
-3 未打開端口
使用示例
Integer numChars
numChars = ChkNet(201)
4、Line Input命令
格式:
Line Input #端口編號(hào), 字符串變量名$
參數(shù)列表:
端口編號(hào):表示文件、通信端口、數(shù)據(jù)庫或裝置的ID編號(hào)。
字符串變量名$:指定字符串變量名。
EPSON編程
1、TCP子函數(shù)
'定義接收和輸出變量
Global String ReceiveData$, SendData$
Function ASTCPClient
'設(shè)置IP地址、端口號(hào)、結(jié)束符等
SetNet #201, "192.168.1.100", 2000, CRLF, NONE, 0
'機(jī)器人作為客戶端,打開端口
OpenNet #201 As Client
'等待連接
WaitNet #201
'連接成功顯示
Print "TCP ConnectOK....."
Do
'斷線重連
If ChkNet(201) = -3 Then '檢查端口狀態(tài)(>0 時(shí)為緩沖字符數(shù)量.<0 為異常狀態(tài))
CloseNet #201 '關(guān)閉端口再重連
Wait 0.2
OpenNet #201 As Client '打開客戶端
WaitNet #201 '等待連接
EndIf
'接收上位機(jī)數(shù)據(jù)
If ChkNet(201) > 0 Then
Line Input #201, ReceiveData$
Print "【" + Date$ + " " + Time$ + "】" + "接收到上位機(jī)的數(shù)據(jù):" + ReceiveData$
EndIf
'發(fā)送數(shù)據(jù)
If SendData$ <> "" Then
Print #201, SendData$
Print "【" + Date$ + " " + Time$ + "】" + "發(fā)送給上位機(jī):" + SendData$
SendData$ = ""
EndIf
Loop
Fend
2、主函數(shù)調(diào)用
Function main
'多線程執(zhí)行
Xqt ASTCPClient
Fend
通信測(cè)試
1、先用網(wǎng)絡(luò)調(diào)試助手開一個(gè)TCPServer,IP地址是192.168.1.100,這里大家根據(jù)自己的電腦IP來設(shè)置,端口號(hào)為2000。
2、EPSON機(jī)器人選擇菜單欄中的運(yùn)行,會(huì)直接將程序下載到機(jī)器人中。
3、下載完成后,點(diǎn)擊開始,即可實(shí)現(xiàn)通信。
4、可以通過網(wǎng)絡(luò)調(diào)試助手給機(jī)器人發(fā)指令。
-END-
-
EPSON
+關(guān)注
關(guān)注
1文章
118瀏覽量
85531 -
上位機(jī)
+關(guān)注
關(guān)注
27文章
930瀏覽量
54696 -
TCP通信
+關(guān)注
關(guān)注
0文章
146瀏覽量
4200
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論