通讯中断 pc_S7程序RFID 与PC连接区别FB 65/UDT65
同樣是使用使用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通訊時作從站.
--------------------------------END-------------------------
每天進步一點點
Make small but daily progress
總結
以上是生活随笔為你收集整理的通讯中断 pc_S7程序RFID 与PC连接区别FB 65/UDT65的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: JDK源码——源码学习总结与分析
- 下一篇: python爬虫框架怎么安装_celer
