999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

西門子S7-300/400PLC開放式以太網TCP通訊的研究與應用

2019-01-08 08:37:44郝慶偉
數字技術與應用 2019年10期

郝慶偉

摘要:近年來隨著以太網與工業網絡交互與融合,越來越多的工業產品需要通過TCP協議與PLC系統進行通訊,本文以西門子S7-300/400 PLC為例詳細闡述其TCP通訊機理及具體的通訊實現方法。

關鍵詞:PLC;通訊;TCP

中圖分類號:TP273.5 文獻標識碼:A 文章編號:1007-9416(2019)10-0031-02

0 引言

隨著工業以太網的發展,目前大多數工業控制系統中要實現自動化功能需要將PLC、HMI服務器、二級服務器、編程器、其他智能設備等進行聯網以實現通訊交互。西門子的PLC產品在工控領域有很高的占有率,而隨著多元化的發展,一條產線可能存在不同廠家的工控產品,西門子PLC與其他廠家的數據交換無法使用自家的S7協議,開放式的以太網TCP協議是一個很好的選擇。

1 TCP通訊協議的特點

TCP協議位于ISO/OSI參考模型的傳輸層,是一種面向連接的通信,即發送方與接收方通信時,必須首先建立連接,主動方為客戶端,被動方為服務器。TCP協議對發送的數據進行排序,為每個發送字節關聯一個序列號,接收方根據接收到的數據序列號,對接收數據排序,從而保證了數據的順序。TCP數據接收方利用滑動窗口提供流量控制,告知對方它能夠接收數據的字節數。其傳輸的形式是數據流,沒有傳輸長度及信息幀的起始、結束信息,最大報文段長度MSS=1460bytes,適合傳輸中等到大量的數據。其報文格式參考表1。

TCP通信傳送數據前,雙方必須對通信進行初始化,并得到對方的認可,即建立連接。此過程通過三次握手實現,如圖1所示。

TCP通信的任意一方都可以主動關閉這個連接,發送FIN報文段,FIN置1。一個FIN報文段被確認后,這個方向的連接被關閉。只有兩個方向的連接都被關閉,該TCP連接才被完全釋放。如圖2所示。

2 西門子S7-300/400 PLC TCP通訊方式

SIMATIC S7-300/400 PN CPU包含一個集成的 PROFINET接口,該接口除了具有PROFINET I/O功能外還具有開放式用戶通信功能,支持TCP等協議。要通過該集成PROFINET 接口實現開放的TCP通信,不能在硬件組態中完成,必須在一個數據塊中指定每個連接的參數。使用“Open Communication Wizard”工具可以簡單明了地指定連接參數,該工具可將一個包含所有參數的UDT導出到STEP項目中。使用該UDT可建立含有連接描述的數據塊。隨后,需使用STEP7的標準庫中的下列通信功能塊編寫用戶程序,即可與符合以太網標準的通訊伙伴進行數據交換:

(1)用于建立連接的FB 65-"TCON";(2)用于終止連接的FB 66-"TDISCON";(3)用于發送數據的FB 63-"TSEND";(4)用于接收數據的FB 64-"TRCV"。

其數據交換機理如圖3所示,數據發送方調用FB63,脈沖方式觸發REQ管腳,則生成發送緩沖區,即SEND BUFFER,隨后數據被壓入接口堆棧,即INTERFACE BUFFER,數據通過硬件接口發送至數據接收方的接口堆棧,接收方調用FB64,并使能EN_R管腳,生成接收緩沖區,即RCV BUFFER,隨后數據被傳送到接收方的實際地址區,如DB區。該過程中的緩沖區及堆棧最大為8192字節,所以西門子S7-300/400 CPU TCP通信一次發送/接收的最大數據量為32K字節。

3 數據一致性

始終被一致性的同時修改的數據區被稱為一致數據區。也就是說一個數據區如果不被一致性的同時修改則會造成數據不一致。打個比方,有100個字節的數據,在第一個掃描周期內修改了50個字節,在第二個掃描周期內修改了剩下的50個字節,則這100個字節在同一個掃描周期內是不一致的。FB63,FB64是異步功能塊,其執行時間可能持續若干個CPU掃描周期,為了保證其數據一致性,對于發送方,FB63的發送完成位“DONE”參數置1之前,必須保證發送數據區內的數據不變,對于接收方,FC64的接收完成位“NDR”置1之后,再使用接收數據區內的數據。否則對于數據一致性要求較高的場合有可能會造成意想不到的后果。

4 常見問題

4.1 接收功能塊FB64無法接收數據,顯示故障代碼80A1

通信雙方未完成三次握手,通信連接未成功建立,使用“Open Communication Wizard”工具檢查CPU型號、IP地址、端口號、是主動方還是被動方等參數,再檢查通訊伙伴的相關參數設置。然后執行FB66斷開連接,然后再次調用FB65重新建立連接。

4.2 接收功能塊FB64可以收到數據,但順序錯亂

如前面所述,TCP通信的傳輸的形式是數據流,所以接收方無法檢測數據流中的某條消息在何處結束以及下一條消息在何處開始,即接收方無法知道發送方一次發送多少個字節。因此,當通訊伙伴接收方的數據接收長度與發送方的數據發送長度不匹配時,就會發生數據錯亂的現象。要解決此問題,需要發送方和接收方將通信數據區長度保持一致。但有時往往發送方發送的數據長度是變化的無法固定在一個值,如掃碼設備掃描不同類型的條碼,其長度不是固定的,發送給CPU時會出問題,針對這種情況可將接收功能塊FB64的LEN參數設置為0,以啟用內部Ad-hoc模式,即以報文段為單位進行接收,每接收一個報文段則認為接收完成并計算接收長度,由于TCP最大報文段長度MSS=1460bytes,則如果單次發送長度不大于1460字節,使用此方法可以完美解決變長接收問題。但如果單次發送長度大于1460字節,則需要進一步編程處理,如發送方在報文段內加入長度信息,接收方再對該信息進行解析,從而確定數據長度。

4.3 建立連接功能塊FB65的DONE為什么一直為0

連接建立后,FB65的DONE參數會置1,但只是維持一個掃描周期,然后復位到0,所以直接監控是看到的狀態是0。可以通過采集它的上升沿信號查看是否置1,以查看通信是否已經建立。例如,可以接一個計數器。

5 結語

TCP通信協議有著通用性強,可靠高效的特點,應用非常廣泛,西門子PLC與PLC之間,PLC與第三方以太網設備的通信均可采用此種方式,由于其數據流的特性,使用時要注意一些問題,與S7通信還是有一定的區別。目前TCP通訊像S7通信一樣,已成為西門子PLC以太網通信的重要連接方式。

參考文獻

[1] 廖常初.S7—300/400 PLC應用技術[M].北京:機械工業出版社,2005:280-305.

[2] 崔堅.西門子工業網絡通訊指南(下冊)[M].北京:機械工業出版社,2006:1-149.

主站蜘蛛池模板: 亚洲一区第一页| 中文字幕有乳无码| 国产成人精品男人的天堂| 久久久久无码精品国产免费| 毛片手机在线看| 国产乱码精品一区二区三区中文| 国产成年无码AⅤ片在线| 亚洲av无码片一区二区三区| 丰满人妻一区二区三区视频| 99久久成人国产精品免费| 亚洲av无码久久无遮挡| 国产又大又粗又猛又爽的视频| 午夜欧美在线| 91精品国产91久无码网站| 国产黄色视频综合| 久久久受www免费人成| 国产精品污污在线观看网站| 欧美精品一区二区三区中文字幕| 2022国产无码在线| 国产人成乱码视频免费观看| 人妻中文久热无码丝袜| 亚洲av成人无码网站在线观看| 国内嫩模私拍精品视频| 成人噜噜噜视频在线观看| 国产视频 第一页| 国产一二视频| 亚洲精品国产综合99| 色婷婷久久| 国产一级小视频| 欧美日韩在线观看一区二区三区| 久久频这里精品99香蕉久网址| 91在线精品麻豆欧美在线| 亚洲国产欧美目韩成人综合| 91麻豆精品视频| 国产男女免费视频| 亚洲黄色高清| 成人国内精品久久久久影院| 操操操综合网| 欧美五月婷婷| 欧美日韩一区二区在线播放| 无码一区18禁| 亚洲欧洲自拍拍偷午夜色| 午夜电影在线观看国产1区| 一级毛片a女人刺激视频免费| 精品欧美一区二区三区久久久| 亚洲av综合网| 蜜桃臀无码内射一区二区三区| 亚洲一级无毛片无码在线免费视频| 亚洲国产精品成人久久综合影院| 99久久精品久久久久久婷婷| 九九热精品视频在线| 99re视频在线| 国产欧美精品一区aⅴ影院| 中文字幕一区二区人妻电影| 精品無碼一區在線觀看 | 综合色88| 成人在线综合| 久久久久久午夜精品| 91口爆吞精国产对白第三集| 在线观看精品国产入口| 亚洲九九视频| 激情国产精品一区| 色香蕉影院| 国产农村妇女精品一二区| 天天视频在线91频| 伊人91在线| 四虎成人免费毛片| 99国产精品一区二区| 久青草免费在线视频| 天天爽免费视频| 久久青草视频| 国产91麻豆免费观看| 欧洲熟妇精品视频| 2019国产在线| 亚洲男人天堂久久| 少妇精品网站| 久草视频精品| 狠狠色噜噜狠狠狠狠奇米777| 亚洲精品色AV无码看| 无码aaa视频| 2020久久国产综合精品swag| 在线欧美日韩|