同樣是使用使用FB65但RFID與PC的連接DB用法有一定的區別:
首先說一下什么是FB65:
通過TCP和ISO on TCP使用
兩個通信伙伴都調用FB 65 "TCON"來設置和建立通信連接。在這些參數中,您要指定哪個伙伴是主動通信傳輸點、哪個伙伴是被動通信傳輸點。
設置并建立連接后,CPU會自動對連接進行維護和監視。
如果連接中斷,如由于線路中斷或遠程通信伙伴而造成的中斷,主動伙伴會嘗試重新建立已組態的連接。在這種情況下,不必再次調用FB 65 "TCON"。
當調用FB 66 "TDISCON"或CPU進入STOP模式時,現有連接將被終止并刪除已組態的連接。要重新設置并再次建立該連接,必須再次調用FB 65 "TCON"。
下面各自介紹一下程序結構和設置:
RFID的設置
SICKRFID里軟件程序里的設置:
RFID的背景數據塊定義FB的連接格式:和UDT65一致!
在程序中設置格式:
FB520程序分析:
用戶程序和操作系統通信層之間該連接的標識號(數值范圍:W#16#0001至W#16#0FFF)您必須在各個帶有標識號的塊中指定參數的值。
TCON_PARAM.id := INT_TO_WORD(VerbID.ID); 20
建立連接的方式的標識號:必須將FALSE分配給該參數。
TCON_PARAM.active_est := True;S7作Client時為主動 TRUE
S7作Server時為被動FALSE
TCON_PARAM.connection_type := B#16#11; 協議類型:11TCP/13UDP
B#16#03:通過CPU 319-3 PN/DP上的集成IE接口進行通信
TCON_PARAM.local_device_id := INT_TO_BYTE(VerbID.DeviceID); =3
以十六進制表示的端口號
TCON_PARAM.local_tsap_id[1]:= WORD_TO_BYTE(SHR(IN:=INT_TO_WORD(VerbID.lokalPort),N:=8)); 2111
TCON_PARAM.local_tsap_id[2]:= WORD_TO_BYTE(INT_TO_WORD(VerbID.lokalPort));
TCON_PARAM.rem_staddr_len :=B#16#4; 遠程連接終端的地址長度:4: 參數rem_staddr中有效的IP地址
TCON_PARAM.rem_tsap_id_len := B#16#2; 所使用的參數rem_tsap_id的長度
連接設備的IP地址:
TCON_PARAM.rem_staddr[1] :=INT_TO_BYTE(VerbID.IP[1]); 10
TCON_PARAM.rem_staddr[2] :=INT_TO_BYTE(VerbID.IP[2]);200
TCON_PARAM.rem_staddr[3] :=INT_TO_BYTE(VerbID.IP[3]);27
TCON_PARAM.rem_staddr[4] :=INT_TO_BYTE(VerbID.IP[4]);48
TCON_PARAM.rem_tsap_id[1] :=B#16#8; 遠程標示號0840---2112
TCON_PARAM.rem_tsap_id[2] := B#16#40; 遠程標示號
在與中控室電腦連接時FB600 的靜態變量格式與RFID的格式一致證明
DB860關于與PC連接用設置結構:
FB600程序分析:
L DBW[AR1,P#0.0] 1 連接ID用戶程序和操作系統通信層之間該連接的標識號
T #Verbindung.id
L B#16#11 使用TCP連接方式
T #Verbindung.connection_type
SET 建立連接的方式的標識號:必須將FALSE分配給該參數。
R #Verbindung.active_est
L 0 //0 不用指0
T #Verbindung.rem_staddr_len // 遠程連接終端的地址長度
PC的IP地址:
L DBW[AR1,P#4.0] //VerID.IP[1] 192
T #Verbindung.rem_staddr[1]
L DBW[AR1,P#6.0] //VerID.IP[2] 168
T #Verbindung.rem_staddr[2]
L DBW[AR1,P#8.0] //VerID.IP[3] 0
T #Verbindung.rem_staddr[3]
L DBW[AR1,P#10.0] //VerID.IP[4] 11
T #Verbindung.rem_staddr[4]
L 0
T #Verbindung.rem_tsap_id_len// 所使用的參數rem_tsap_id的長度
連接設備的IP地址:
L 2 //所使用的參數local_tsap_id的長度為2
T #Verbindung.local_tsap_id_len
L DBW[AR1,P#12.0] //2000
T #Verbindung.local_tsap_id[2] // 低字節
SRW 8
T #Verbindung.local_tsap_id[1] // 高字節
L DBW[AR1,P#2.0] B#16#03:通過CPU 319-3 PN/DP上的集成IE接口進行通信
T #Verbindung.local_device_id
從對FB600和FB520程序分析我們可以知道它們公用的程序結構還是使用了UDT65的標準化的結構,都使用了TCP連接,只是端口各不相同罷了,一個是2111而另一個是2000.在就是和RFID通訊時作主站,和PC通訊時作從站.
責任編輯:lq
-
RFID
+關注
關注
388文章
6180瀏覽量
238183 -
cpu
+關注
關注
68文章
10889瀏覽量
212383 -
通信
+關注
關注
18文章
6046瀏覽量
136215
原文標題:S7程序-RFID 與PC連接區別-FB 65/UDT65
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論