• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    西門(mén)子S7-300/400PLC開(kāi)放式以太網(wǎng)TCP通訊的研究與應(yīng)用

    2019-01-08 08:37:44郝慶偉
    關(guān)鍵詞:通訊

    郝慶偉

    摘要:近年來(lái)隨著以太網(wǎng)與工業(yè)網(wǎng)絡(luò)交互與融合,越來(lái)越多的工業(yè)產(chǎn)品需要通過(guò)TCP協(xié)議與PLC系統(tǒng)進(jìn)行通訊,本文以西門(mén)子S7-300/400 PLC為例詳細(xì)闡述其TCP通訊機(jī)理及具體的通訊實(shí)現(xiàn)方法。

    關(guān)鍵詞:PLC;通訊;TCP

    中圖分類(lèi)號(hào):TP273.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)10-0031-02

    0 引言

    隨著工業(yè)以太網(wǎng)的發(fā)展,目前大多數(shù)工業(yè)控制系統(tǒng)中要實(shí)現(xiàn)自動(dòng)化功能需要將PLC、HMI服務(wù)器、二級(jí)服務(wù)器、編程器、其他智能設(shè)備等進(jìn)行聯(lián)網(wǎng)以實(shí)現(xiàn)通訊交互。西門(mén)子的PLC產(chǎn)品在工控領(lǐng)域有很高的占有率,而隨著多元化的發(fā)展,一條產(chǎn)線可能存在不同廠家的工控產(chǎn)品,西門(mén)子PLC與其他廠家的數(shù)據(jù)交換無(wú)法使用自家的S7協(xié)議,開(kāi)放式的以太網(wǎng)TCP協(xié)議是一個(gè)很好的選擇。

    1 TCP通訊協(xié)議的特點(diǎn)

    TCP協(xié)議位于ISO/OSI參考模型的傳輸層,是一種面向連接的通信,即發(fā)送方與接收方通信時(shí),必須首先建立連接,主動(dòng)方為客戶端,被動(dòng)方為服務(wù)器。TCP協(xié)議對(duì)發(fā)送的數(shù)據(jù)進(jìn)行排序,為每個(gè)發(fā)送字節(jié)關(guān)聯(lián)一個(gè)序列號(hào),接收方根據(jù)接收到的數(shù)據(jù)序列號(hào),對(duì)接收數(shù)據(jù)排序,從而保證了數(shù)據(jù)的順序。TCP數(shù)據(jù)接收方利用滑動(dòng)窗口提供流量控制,告知對(duì)方它能夠接收數(shù)據(jù)的字節(jié)數(shù)。其傳輸?shù)男问绞菙?shù)據(jù)流,沒(méi)有傳輸長(zhǎng)度及信息幀的起始、結(jié)束信息,最大報(bào)文段長(zhǎng)度MSS=1460bytes,適合傳輸中等到大量的數(shù)據(jù)。其報(bào)文格式參考表1。

    TCP通信傳送數(shù)據(jù)前,雙方必須對(duì)通信進(jìn)行初始化,并得到對(duì)方的認(rèn)可,即建立連接。此過(guò)程通過(guò)三次握手實(shí)現(xiàn),如圖1所示。

    TCP通信的任意一方都可以主動(dòng)關(guān)閉這個(gè)連接,發(fā)送FIN報(bào)文段,F(xiàn)IN置1。一個(gè)FIN報(bào)文段被確認(rèn)后,這個(gè)方向的連接被關(guān)閉。只有兩個(gè)方向的連接都被關(guān)閉,該TCP連接才被完全釋放。如圖2所示。

    2 西門(mén)子S7-300/400 PLC TCP通訊方式

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

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

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

    3 數(shù)據(jù)一致性

    始終被一致性的同時(shí)修改的數(shù)據(jù)區(qū)被稱(chēng)為一致數(shù)據(jù)區(qū)。也就是說(shuō)一個(gè)數(shù)據(jù)區(qū)如果不被一致性的同時(shí)修改則會(huì)造成數(shù)據(jù)不一致。打個(gè)比方,有100個(gè)字節(jié)的數(shù)據(jù),在第一個(gè)掃描周期內(nèi)修改了50個(gè)字節(jié),在第二個(gè)掃描周期內(nèi)修改了剩下的50個(gè)字節(jié),則這100個(gè)字節(jié)在同一個(gè)掃描周期內(nèi)是不一致的。FB63,F(xiàn)B64是異步功能塊,其執(zhí)行時(shí)間可能持續(xù)若干個(gè)CPU掃描周期,為了保證其數(shù)據(jù)一致性,對(duì)于發(fā)送方,F(xiàn)B63的發(fā)送完成位“DONE”參數(shù)置1之前,必須保證發(fā)送數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)不變,對(duì)于接收方,F(xiàn)C64的接收完成位“NDR”置1之后,再使用接收數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)。否則對(duì)于數(shù)據(jù)一致性要求較高的場(chǎng)合有可能會(huì)造成意想不到的后果。

    4 常見(jiàn)問(wèn)題

    4.1 接收功能塊FB64無(wú)法接收數(shù)據(jù),顯示故障代碼80A1

    通信雙方未完成三次握手,通信連接未成功建立,使用“Open Communication Wizard”工具檢查CPU型號(hào)、IP地址、端口號(hào)、是主動(dòng)方還是被動(dòng)方等參數(shù),再檢查通訊伙伴的相關(guān)參數(shù)設(shè)置。然后執(zhí)行FB66斷開(kāi)連接,然后再次調(diào)用FB65重新建立連接。

    4.2 接收功能塊FB64可以收到數(shù)據(jù),但順序錯(cuò)亂

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

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

    連接建立后,F(xiàn)B65的DONE參數(shù)會(huì)置1,但只是維持一個(gè)掃描周期,然后復(fù)位到0,所以直接監(jiān)控是看到的狀態(tài)是0??梢酝ㄟ^(guò)采集它的上升沿信號(hào)查看是否置1,以查看通信是否已經(jīng)建立。例如,可以接一個(gè)計(jì)數(shù)器。

    5 結(jié)語(yǔ)

    TCP通信協(xié)議有著通用性強(qiáng),可靠高效的特點(diǎn),應(yīng)用非常廣泛,西門(mén)子PLC與PLC之間,PLC與第三方以太網(wǎng)設(shè)備的通信均可采用此種方式,由于其數(shù)據(jù)流的特性,使用時(shí)要注意一些問(wèn)題,與S7通信還是有一定的區(qū)別。目前TCP通訊像S7通信一樣,已成為西門(mén)子PLC以太網(wǎng)通信的重要連接方式。

    參考文獻(xiàn)

    [1] 廖常初.S7—300/400 PLC應(yīng)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2005:280-305.

    [2] 崔堅(jiān).西門(mén)子工業(yè)網(wǎng)絡(luò)通訊指南(下冊(cè))[M].北京:機(jī)械工業(yè)出版社,2006:1-149.

    猜你喜歡
    通訊
    《茶葉通訊》簡(jiǎn)介
    茶葉通訊(2022年2期)2022-11-15 08:53:56
    《茶葉通訊》簡(jiǎn)介
    茶葉通訊(2022年3期)2022-11-11 08:43:50
    通訊報(bào)道
    本期通訊之星:郭雨薇
    本期通訊之星:王寧
    通訊簡(jiǎn)史
    毕节市| 宝应县| 固阳县| 金平| 京山县| 获嘉县| 万盛区| 巴马| 利辛县| 勃利县| 凤山市| 榆林市| 锦州市| 桃江县| 惠安县| 福清市| 宜宾市| 吉安县| 柳林县| 广河县| 红河县| 九台市| 浮山县| 呼玛县| 兰溪市| 武威市| 繁昌县| 河北区| 南京市| 德江县| 富源县| 兴文县| 伊川县| 东宁县| 新竹县| 罗定市| 南康市| 即墨市| 顺平县| 连山| 彭州市|