? ? ? ? ? ? ? ? ? ? 雅馬哈與上位機(jī)TCP通訊
1.0 可以先用調(diào)試助手測試,先設(shè)定電腦IP以及雅馬哈控制器IP,系統(tǒng)--通信設(shè)置,設(shè)置控制器的IP
1.1 在選項(xiàng)--通用以太網(wǎng)端口,設(shè)置GP0(通訊對象)暂筝,模式伺服,通訊對象的IP硬贯,端口1004乖杠,改行符CRLF,這里要注意了澄成,有換行符的0A 0B為換行符,不添加會不識別的
1.2 剛才在控制器那端畏吓,設(shè)置的通訊對象為伺服端墨状,那控制器就是客戶端,在調(diào)試助手這里菲饼,設(shè)置的對象就是控制器端肾砂,所有協(xié)議類型為客戶端TCP Client,所有這里設(shè)置的是控制器的IP和端口宏悦,注意跟控制設(shè)置的IP端口一致
1.3 具體代碼如下:
*CONNECT:
DQ2$="trigger,"+"1"+","+"1" '--------DQ$為字符串镐确,DQ!為實(shí)數(shù),DQ%為整數(shù)類型
A$="" '--------字符串清空
SEND DQ2$ TO GP0'-----------------------GP0為通信端饼煞,觸發(fā)上相機(jī)1拍照{取料拍照}
SEND GP0 TO A$'---------------接收端源葫,當(dāng)通訊GP在前面就為接收,否則為發(fā)送砖瞧,A$為字符串
OK$=MID$(A$,1,1) '----------讀取A$從第1個開始的1個字符息堂,賦值給OK$
'
IF OK$="1" THEN
? ?X!=VAL(MID$(A$,3,8))'-----一般都為8個字節(jié),VAL為字符串轉(zhuǎn)換成實(shí)數(shù)?
? ?Y!=VAL(MID$(A$,12,8))
? ?R!=VAL(MID$(A$,21,8))
? ?LOC1(P2)=X! '--------把實(shí)數(shù)X块促!傳送給P2點(diǎn)位的第一軸坐標(biāo)
? ?LOC2(P2)=Y!
? ?LOC4(P2)=R!
? ?LOC3(P2)=50??
? ?GOTO *MAIN
ELSE
? ? DELAY 5000
? ? GOTO *CONNECT
? ? HALT
ENDIF
1.4 如下圖荣堰,如果相機(jī)發(fā)送1,-100.340竭翠,223.4500,23.56000,0振坚,那我收到的第一個字符就是1,第二個就是斋扰,第三個就是-渡八,以此類推啃洋。這里要注意要知道機(jī)器人坐標(biāo)的最大數(shù)值,這里雅馬哈的最大位數(shù)連上+-和小數(shù)點(diǎn).是8位字符呀狼,所以每個坐標(biāo)都要滿8位裂允,如果坐標(biāo)不滿(可能10.12也有可能是100.12)就要補(bǔ)零,要么上位機(jī)相機(jī)補(bǔ)零哥艇,要么機(jī)器人控制器識別字符或者分隔符绝编,雅馬哈是不能識別分隔符的,而愛普生是可以的貌踏,有識別分隔符指令會簡單點(diǎn)不用補(bǔ)零十饥,識別字符的話會比較麻煩.所以雅馬哈的話最好時上位機(jī)補(bǔ)零后發(fā)送到機(jī)器人,
了解最新工控PLC祖乳,上位機(jī)逗堵,機(jī)器人,通訊等實(shí)例測試筆記~~請關(guān)注百家號或頭條號--老王工控筆記