Fanuc Karel編寫Socket程序和上位機進行通信。
一:環(huán)境配置(ROBOGUIDE)
1.1機器人系統(tǒng)變量設(shè)置
MENU-------> SYSTEM------> Variables------->$KERAL_ENB? ? ?設(shè)置為1
1.2 IP地址設(shè)定
MENU---->SETUP---->Host Comm
選擇 F3【DETAIL】進入IP設(shè)置界面
備注:按鍵F3【PORT】可以選擇相應(yīng)的物理網(wǎng)口Port#1 或者Port#2,具體需要看你網(wǎng)線插在哪個物理網(wǎng)口上?
設(shè)置IP地址和上位機在同一網(wǎng)段,不同IP地址。如果是ROBOGUIDE軟件,此地址需要和電腦網(wǎng)口的IP地址一樣。
當前我設(shè)置的IP地址是192.168.1.111,我上位機軟件設(shè)置的是192.168.1.100
1.3 Tcp Server 設(shè)定
MENU---->SETUP---->Host Comm
?
?選擇 F4【SHOW】--->3? 進入SERVER設(shè)置界面:
可以看到S1,S2 是FTP服務(wù),S3是我之前設(shè)置好的TCP 服務(wù)器。這里以S4為例。
選擇S4 ,按F3【DETAIL】或者Enter 進入:
在 Protocol 處,按 F4 【CHOICE】,并選擇 SM :
?在 Startup? State 處,按 F4 【CHOICE】并選擇DEFINE :
在 Server IP/Hostname 處,按 Enter ,輸入上位機的 IP 地址:
在 Startup? State 處,按 F4 【CHOICE】并選擇Start :
按 F2 【ACTION 】,并選擇start ,界面會變成:?
?Server Prot 設(shè)置,
方法一:
在Karel 程序中設(shè)置:
例如:設(shè)置S3的Server Port 端口為59002
SET_VAR(entry, '*SYSTEM*','$HOSTS_CFG[3].$SERVER_PORT',59002,status)
方法二:
MENU-------> SYSTEM------> Variables------->$HOSTS_CFG?? Enter鍵進入如下界面:
注意:$HOSTC_CFG 配置的是客戶端,$HOSTS_CFG 是服務(wù)器
我們選擇S4 對應(yīng)的變量【4】 按Enter 鍵進入如下界面:
找到并更改ServerPort,這里我們把ServerPort 改成7894??
然后重啟斷開Robot電源重新啟動Robot生效。
1.4 Tcp?Client 設(shè)定
按照上面設(shè)定IP步驟進入如下界面:
?按 F4 【SHOW】并選擇 Clients?(機器人將作為 Client ,上位機作為 Server):
進入如下界面:
?選擇 Tag 標簽號,這里以 C1 為例,按 Enter 或 F3 【DETAIL 】進入如下界面
?在protocol 處,按F4【CHOICE】,并選擇? SM
在Startup State處,按F4【CHOICE】并選擇DEFINE:
?在Sever IP/Hostname處鍵入 TCP Server? IP地址:
按F2【ACTION】,并選擇 DEFINE:
?Port號的設(shè)置
MENU-------> SYSTEM------> Variables------->$HOSTC_CFG Enter鍵進入如下界面:
?選擇C1 對應(yīng)的【1】 ,按Enter或者DETAIL 進入:
?找到$SERVER_PORT,并設(shè)置值,注意這個端口號由上位機服務(wù)器決定,我們設(shè)定的值需要和服務(wù)器端一致。
?完成后重啟機器人控制器生效。
二,簡單的服務(wù)器程序?qū)崿F(xiàn)Socket 通信。
效果如下(讀入10字節(jié),返回10字節(jié)):
文章來源:http://www.zghlxwxcb.cn/news/detail-571901.html
代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-571901.html
PROGRAM tcpserv2
%STACKSIZE = 4000
%NOLOCKGROUP
%NOPAUSE = ERROR +COMMAND +TPENABLE
%ENVIRONMENT uif
%ENVIRONMENT sysdef
%ENVIRONMENT memo
%ENVIRONMENT kclop
%ENVIRONMENT bynam
%ENVIRONMENT fdev
%ENVIRONMENT flbt
%INCLUDE klevccdf
%INCLUDE klevkeys
%INCLUDE klevkmsk
VAR
file_var : FILE
tmp_int : INTEGER
tmp_int1 : INTEGER
tmp_str : STRING[128]
tmp_str1 : STRING[128]
status : INTEGER
entry : INTEGER
BEGIN
SET_FILE_ATR(file_var, ATR_IA)
-- set the server port before doing a connect
SET_VAR(entry, '*SYSTEM*','$HOSTS_CFG[3].$SERVER_PORT',59002,status)
WRITE('Connecting..',CR)
MSG_CONNECT('S3:',status)
--WRITE(' CONNECT Status = ',status,CR)
IF status = 0 THEN
-- Open S3:
WRITE ('Opening',CR)
FOR tmp_int1 = 1 TO 20 DO
OPEN FILE file_var( 'rw','S3:')
status = IO_STATUS(file_var)
WRITE (status,CR)
IF status = 0 THEN
-- write an integer
FOR tmp_int = 1 TO 1000 DO
WRITE('Reading',CR)
-- Read 10 bytes
BYTES_AHEAD(file_var, entry, status)
WRITE(entry, status, CR)
READ file_var (tmp_str::10)
status = IO_STATUS(file_var)
WRITE (status, CR)
-- WRITE 10 bytes
WRITE (tmp_str::10, CR)
WRITE file_var (tmp_str::10)
status = IO_STATUS(file_var)
WRITE (status, CR)
ENDFOR
CLOSE FILE file_var
ENDIF
ENDFOR
WRITE('Disconnecting..',CR)
MSG_DISCO('S3:',status)
WRITE('Done.',CR)
else
WRITE('connecting error',CR)
MSG_DISCO('S3:',status)
ENDIF
END tcpserv2
到了這里,關(guān)于Fanuc機器人 Karel 編程學習(五)---簡單的Socket通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!