<nobr id="5drpr"></nobr>

    <nobr id="5drpr"><listing id="5drpr"><menuitem id="5drpr"></menuitem></listing></nobr>
    
    

    <sub id="5drpr"><strike id="5drpr"></strike></sub>

      <form id="5drpr"></form>

        您好,歡迎訪問泰安宏盛自動化科技有限公司!
        10年專注工控自動化研發制造 系統設計\制作\安裝一條龍服務
        全國咨詢熱線:18605386049
        當前位置: 首頁 > 技術資料 > 程序案例

        西門子PLC通訊之TCP/IP通信探秘

        作者:小編 時間:2022-12-18 16:49:27 點擊:

        1

        什么Shadow Buffer和Stack Buffer?


        Shadow Buffer和Stack Buffer手冊中沒有定義,為了讓大家理解TCP的通信原理,我們需要知道這兩個Buffer。前者是在TCP的規范中定義,需要這個緩沖區緩存數據,PLC中的這個緩沖區用于DB和Stack Buffer的橋梁,而且用來決定數據一致性的大小。稱為Shadow Buffer,影子Bufffer,是因為像人的影子一樣,Shadow Buffer的大小都會小于等于DB區的大小。

        Stack Buffer是系統決定的,ISO/OSI參考模型的第4層,用于緩存數據的打包和解包,大小為8K。


        2

        什么是Keepalive?


        當網線斷開,Keepalive定時器超時,會清空發送端和接收端的Shadow Buffer和Stack Buffer緩沖區中的數據。S7-1500CPU例外,不會清除接收端Shadow Buffer中的數據。

        3

        什么是流量定形?

        4

        是否采用可變長度的TCP/IP協議來通信?


        不推薦采用,AD-hoc模式是可以實現變長的TCP/IP通訊的,但使用AD-hoc模式需要注意兩點:

        (1)1500字節減去IP頭20個字節,減去TCP頭20個字節,即1460個字節的數據傳輸。大家想用第三方設備和PLC做通訊,要使用TCP協議的話,可能需要變長的模式,在1460字節范圍內是可使AD-hoc模式做通訊。

        (2)比較底層的原因,即使使用小于1460字節的長度去AD-hoc通信,也有可能造成數據對應不一致,可能的原因就是接收端的接收速度慢。

        5

        交換機的規格不一樣,分別有些什么配置?


        測試環境使用了Scalance 200 系列的交換機204-2,另外一個實際上不是交換機而是2個雙口TAP,實現物理硬件的網絡連接。對于200系列交換機,采用端口鏡像來實現數據抓包;XM400,使用其TAP功能,可以捕捉IRT的數據,而且是雙向IRT的數據,不需要改網卡的設置,也可以看VLAN Tag的標簽。

        6

        設置Minimum Cycle Time對Communication Load有什么影響嗎?


        如果PLC不設置最小循環周期,那么程序中斷加上通訊能運行多長時間就是多長時間,沒有富余的時間去處理其他操作。對1500來說,設置默認的通訊負載是50%,在有大量的通訊存在的情況下,通訊負載是超不過50%的,如果設置了Minimum Cycle Time,假設程序運行的時間純粹為2毫秒,設置的Minimum Cycle Time為10毫秒,意味著有8毫秒是free的,可以用來做通訊,此時即使設置了50%的通訊負載的上限,有大量通訊的情況下實際通訊負載照樣可以超過50%。

        7

        TCP的通信數據量最大64k, 那么當通信傳送的數據變化很快,是否有數據一致性的保證,比如發送16k數據,只有8k是一致的?


        TCP/IP通訊要想保持數據一致性,只有DONE信號結束完成之后,你才能去修改數據,否則不能保證你發送的64k數據全是一致的,而只能保證每個8k的數據是一致的,即最大的一致性數據是8k。

        8

        交換機出現數據風暴的由來?

        數據風暴其實就是所謂的廣播風暴,簡單理解就是本地網絡中存在大量的廣播報文,導致通訊無法進行甚至網絡癱瘓。實際上它是一種普遍的網絡問題,解決這個問題的關鍵是減少廣播報文的出現,產生廣播報文的原因有很多種,最常見的在工廠里有PC中了蠕蟲病毒,向網絡中發送大量的廣播數據,引起網絡堵塞,造成廣播風暴。另外一個點是工廠使用一些測試網絡工具,會周期性的向網絡發送大量廣播以獲得網絡狀態信息。還有一些其他原因,比如網線短路等。

        9

        常用的Ping和ARP指令有什么區別?如果一臺設備不知道IP,如何快速知道IP?

        兩者其實并不能放在一起比較。Ping指令用于檢測通信方是否可達。用Ping去控制時間,可以用短時間Ping大量數據。比如:可以Ping 8k的數據,底層用的都是IP的協議。ARP是對自己的設備來說去查表,比如ARP-A,可以看到里面的ARP的IP地址和MAC地址的映射關系,只有獲得對方的MAC地址才能與對方進行通信,如果沒有,則發送ARP廣播來獲取通信方MAC地址。

        10

        上位機的TCP/IP 跟1500的TCP/IP傳輸時間一樣嗎?


        無論是兩臺PC做TCP/IP還是1500之間做TCP/IP通訊,肯定的一點是網絡傳輸的速度是一樣的,打包,解包的堆棧時間,取決于網卡的性能,對于西門子網卡和市面上普通網卡這兩部分的時間應該都是類似的,最后剩余的就是我發送的循環周期和接收的循環周期誰快,對于PC來說未必比PLC快。如果PC發送周期比PLC長,那么PC的TCP/IP通訊肯定會慢。如果兩者發送周期一樣,發送速度幾乎是一樣的,沒有太大差距。

        11

        環形網絡需要在交換機設置才能避免數據廣播風暴?


        首先以太網是不支持環網的,需要環網管理協議,比如用MRP,HSP(快速冗余環網協議)等,這些都是有管理器和客戶端的,由這些協議來控制環網。這種冗余方式當有一臺設備壞了,可以切換過去,保障其他設備繼續進行通訊,此時是避免了數據廣播風暴的。

        12

        掃描周期不一樣,會出現丟包的問題嗎?


        這個掃描周期是指做CPU的掃描周期,比如說設10毫秒,20毫秒或1毫秒等。TCP/IP的丟包有很多原因,比如網線短路或者做路由通信,路由器所造成的一部分丟包等等。但丟包沒關系,TCP是可靠的安全的連接,有丟包其會重新發送,與掃描周期沒關系,是由TCP/IP協議來決定的。

        13

        輪流跟多臺西門子CPU通信,周期約5s,是否需要主動建立或斷開連接?


        一個CPU取決于PLC的連接資源的數量,假如一個PLC可以連接16個做TCP/IP通訊,也就是可以連接16臺設備,連到第17臺設備的時候要想通訊,需要斷開一臺TCP的連接,把資源釋放掉再重新跟第17臺做通訊,這種情況下才可以做輪流通訊。但至于說5s,因為不知道數據量多大,如果數據通訊量很少,5s夠用。

        14

        使用TCON建立了解發送和接受數據,會影響CPU的掃描周期嗎?


        首先TCON是建立一個通訊資源,通訊資源的建立注冊是一個程序的執行,并沒有完成發送和接受數據,所以不影響掃描周期,只是消耗數據代碼的時間。

        15

        連接建立后,TSEND和TRCV數據量大小對掃描周期的影響?


        對掃描周期的影響很大,CPU默認的通訊負載是50%的情況下,它會處理PG在線程序等等,這些都會增加通訊負載里50%的負載,那么你的數據量越大,你要消耗的CPU的時間片的通訊部分就會越大,所以對掃描周期的影響就會越大。

        16

        CPU通訊負載可以調節的嗎?

        CPU通訊負載可以調節,因為在CPU設置的屬性里,通訊負載是可以調節的,對1500PLC來說,默認是50%。

        17

        Keepalive時間是固定間隔發的嗎?那如果斷線后,再連接網線,重連的時間就不固定了?

        Keepalive參數open出去了,意味著允許用戶修改,默認時間是30s。設置多長時間,Keepalive探測幀就按照多長時間發送。還有在Keepalive設置為0的情況下,Keepalive就被禁止了。重連的時間取決于網絡端口,例如自適應的端口時間,還有就是REQ的發送頻率,越快重連時間越短。

        18

        Keepalive是客戶端行為還是服務器端行為?


        Keepalive與是客戶端行為還是服務器端行為沒有關系,是雙方根據自定義的時間間隔,周期性的向通訊伙伴發送Keepalive探測幀,然后伙伴予以應答。

        19

        雙方設定的Keepalive時間是如何協調的?是在通信握手的時候就協商時間,按最短的設置時間發送嗎?


        首先在握手的時候和Keepalive沒有關系,也不會協商這個時間,握手只是做連接,主要確定堆棧Buffer大小。

        20

        1500TCP通訊怎么清緩存區,固定長度報文,對方發送長度造成接受混亂錯位?


        清緩存區不是人為可以清除的,除非釋放資源TDISCON。Keepalive超過30s后會清緩沖區,但清緩沖區是發生斷線的時候去清,那么除了斷線,也有可能是網絡擁堵而造成的超時等問題。

        “如果指的是發送和接收的數據不匹配的話”,在做TCP/IP通訊的時候,我們在小于1460個字節的時候,可以使用AD-hoc模式,可以進行變長的數據通訊,這時數據可以基本爭取的被接收,具體看問題4。

        21

        CPU的緩沖區是針對所有通訊鏈接使用同一個緩沖區,還是不同鏈接開辟不同緩沖區?


        這個直接關系到CPU通訊資源的問題,比如315-2PN/DP有16個TCP/IP的連接,大家首先想到的肯定是可以連接16個通訊伙伴,但實際上來說,在內部當中,就表示我有多少內存大小分配給通訊去做數據交換。說白了,就是能給一個通訊分配多大的Shadow Buffer 和堆棧Buffer。既然有16個連接,有8k的Shadow Buffer和8K的堆棧Buffer,就意味著我們以Shadow Buffer或堆棧Buffer為例,都是8k。所需要的緩沖區大小至少是2x8x16,即CPU給你資源的分配都是按照內存的大小分配好的,不是共用的,每一個TCP的通訊都是individual,去用自己的Shadow Buffer和堆棧Buffer。

        22

        如何理解數據一致性的概念?


        例如我從A向B發送1040個字節,但是由于我PLC的性能決定它最大的一致性是800的字節,那么多了的字節需要第二次才能發送出去。如果在你第二次發送給B剩余的240個字節的時候,B的PLC修改了后240字節中的數據,那么這時我們第一次發送的800個字節和后面發送的240個字節就不一致了。不一致最重要的影響在于,如果你做項目的時候利用這1040個字節做運算,eg:復雜的工藝上的計算、運行數據上的計算,那么計算時我需要這些數據是一致的。從A到B的過程中這些數據不能出現變化,要保持同一時刻數據是一致的,這時你算出來的結果才是正確的。如果單純傳數據作為顯示,大家可能不會注意到。但是計算時不能忽略數據的一致性。

        23

        探測幀怎么用于斷線診斷?程序怎么寫?


        編程是不需要的,只需要修改Keepalive參數。如果你希望在5秒內判斷斷線故障,你就把參數設成5秒。同時REQ不能手動去使能。如果REQ 20秒使能一次,那么判斷出錯故障至少需要20秒。如果REQ 100毫秒的循環周期使能,那么就能在5秒鐘左右發現斷線故障。

        24

        Shadow Buffer和堆棧Buffer在CPU的哪個存儲區?


        這個手冊中并沒有說明,最近講的都是我總結出來的。這里希望給大家展示原理的探秘。手冊即使沒有說,但在老s7-400的手冊中有提到:通信資源建立后,要在系統存儲器中建立通訊緩沖區。所以對于400來說,Shadow Buffer是存在在系統存儲器中。堆棧Buffer在網卡的緩沖區里。對于300確切的位置手冊里沒有說。在建立通訊緩沖區時就是在建立通信資源,Buffer都是獨立分開的,開啟Shadow Buffer就是在占用CPU資源。堆棧Buffer都是存在的,只是用的協議不同,誰要用誰就建立連接占用這部分通信資源。然而理論上這兩個緩沖區都應該存儲在CPU的接口網卡中。

        25

        OB1程序段里先通過TCON建立通訊,最后一行再TDISCON,CPU是真的在每個掃描周期都要重新建立一次通訊,然后再斷開一次釋放通訊資源嗎?會不會一個周期內無法完成?


        我們在建立連接和斷開連接的一個循環周期里,同樣,如果我們使用一個wait指令,使用一個loop循環去循環三秒鐘。有些事情如果大家想不清楚大家可以去延長CPU的循環周期。在最開始使用TCON建立連接,實際上并沒有通訊起來,只是建立了資源和緩沖區,包括對應的端口號、IP等,都注冊進去。結尾再TDISCON斷開,資源就被釋放了。是這樣一個過程。

        26

        一般有多個通訊的CPU,怎么把握CPU掃描周期設為多少合適?


        大家還是自己去思考,如何優化設置多少合適。如果設置最小掃描循環周期為15ms,且CPU的代碼執行是5毫秒,這是為了給更多的通訊讓路,給更多的通訊分配額外的資源,但這就損失了你的循環周期,進一步損失了你的響應周期。這是一把雙刃劍,可能會影響你實時的控制,那么你可以設置10ms,來滿足你現場的控制。還是要看通訊有多少輸入量。如果現場用到很多的連接,那么必須通訊優先,通訊荷載設置50%,為了通訊響應更好,那就要設置合適的循環周期,一方面保證我的通訊,一方面保障我現場控制的實時要求。

        27

        在通訊時,RT通訊為什么比TCP快?


        這個問題比較系統。第一,對于TCP/IP通訊和PN通訊,我們在總線上傳輸的速度是一樣的,都是100兆,這一點大家可以忽略比較;第二,就是堆棧。上幾節課我提到了關于ISO/OSI參考模型的堆棧,PN RT使用的第七層和物理層(也就是第一二層),中間沒有TCP/IP,也就意味著應用層(第七層)的數據會直接加載到物理層上去,為什么PB DP也快,原因是一樣的,都是第七層落到物理層。對于TCP/IP,它堆棧沒有PN快,因為數據進來需要TCP的打包、需要IP的打包,再在接收時解包,堆棧角度沒有PN快。還有一個條件在于我們的芯片,芯片性能要一致,要在同樣的性能上做比較。還有一點在于數據處理,Shadow Buffer對于通訊的處理。PN在數據發送中能以最小的以太網GAP進行發送,以太網之間最小的時間間隔時12個字節,TCP做不到,因為他要存儲、等待、加載,于是從發送的角度PN RT也比TCP快。綜上三個角度,RT通訊比TCP快。

        28

        TCP的變長接收是什么原理呢?


        原理很復雜,原因在于我們看TCP標準沒有AD-hoc模式,我們只在接收方有這個參數,接收的CPU告訴網卡要截取堆棧緩沖區取得數據,然后給Shadow Buffer。如果是1460的字節,就不會出錯,但如果超過1460,無法取得正確數據。例子中還按1024字節去發送,發送9次,TCP/IP接收不激活的情況下,接收端就堆滿了,當滑動窗口放開,發送的數據就變為了1460字節,這樣數據的位置會發生變化,導致不能收到正確的數據。ISO on TCP是最佳的可變長度協議。

        29

        ISO on TCP與PC端也能通信嗎?


        ISO on TCP也是開放式通信協議,跟TCP UDP一樣,只要 PC端支持,就可以和西門子的PLC做通信。

        30

        S7協議和以太網協議有什么區別?


        S7協議是西門子內部私有協議,不對外公開,只在西門子產品進行使用;是以太網協議的一部分,以太網協議范圍很廣泛。

        31

        TCP 和S7 協議怎么選擇?


        如果使用TCP,在底層處理效率會更高,因為S7是在加載TCP基礎之上的。但是差異不明顯,只是使用S7協議的時候,是在西門子產品之間;如果和第三方通訊的話,就要選擇TCP協議。所以根據目標對象支持的協議進行選擇即可。

        32

        只用Wireshark 與交換機連接,不是需要做端口鏡像嗎?


        不使用交換機,就要用TAP 或者Bany設備,Bany Scope是結合硬件設備去使用的??梢韵荣I價格較低的TAP做測試,性能上有一些限制。如果大家想做這方面研究,性價比最高的是鏡像,條件允許就買Bany設備。



        QQ在線咨詢
        售前咨詢
        17658151177
        售后服務
        17658151177
        青草国产视频,日本三级久久久久,色综合久久88色综合天天,手机无码看片,日韩午夜激情 欧洲AV一卡2卡三卡4卡幕| 欧美日韩一卡2卡3卡4卡5卡在线| 成片卡一卡二卡三| 欧美日韩一本二卡三卡四卡无卡免费高| 成片一卡一卡高清在线观看| 欧洲不卡一卡2卡三卡4卡5卡| 欧美日韩一卡二卡≡卡四卡在线视频| 国产亚洲一卡2卡3卡4卡免费观看| 欧洲2021一卡2卡3卡4卡| 欧洲一卡2卡3卡4卡网站动漫| 欧洲一卡二卡3卡4卡网站| 成片乱子伦一区二区三区| 成片AV一卡2卡三卡4卡幕| 欧洲e本大道二卡三卡免费| 欧洲2021卡一卡二卡三| 欧洲一卡2卡三卡4卡乱码| 国产亚洲一本到卡二卡三卡免费乱码| 欧洲不卡二卡三卡四卡免费| 欧美日韩一卡2卡3卡4卡网站| 国产亚洲卡1卡2卡三卡2021| 成片2020卡二卡三卡四乱码| 成片一卡二卡三卡四卡| 国产亚洲一卡2卡三卡4卡乱码| 成片1卡二卡三卡四卡| 成片卡1卡2卡三卡2021| 欧美日韩2021卡一卡二乱码| 欧洲一卡二卡三卡四卡| 国产亚洲一卡二卡≡卡四卡免费视频| 欧洲不卡一卡2卡三卡4卡5卡| 国产亚洲1卡二卡三卡4卡| 国产亚洲1卡2卡3卡4卡免费高清| 国产亚洲一卡2卡3卡四卡网站| 欧洲卡一卡二卡三| 国产亚洲一卡二卡3卡四卡免费| 国产亚洲一卡2卡3卡4卡乱码在线| 欧洲中文字乱码卡一卡二| 成片一卡2卡3卡四卡国色天香| 精品一本大道卡2卡3卡4卡| 国产亚洲高清无卡码一区二区三区| 欧洲不卡一卡2卡三卡4卡5卡| 精品高清无卡码一区二区三区| 欧洲一卡2卡三卡4卡| 精品卡一卡2卡3卡4卡在线观看| 国产亚洲一卡2卡3卡4卡网站| 欧美日韩卡1卡2卡三卡免费网站| 欧洲AV一卡2卡三卡4卡幕| 成片2021一卡2卡三卡4卡乱码不卡| 国产亚洲一卡二卡≡卡四卡高清乱码| 国产亚洲一卡二卡≡卡四卡在线视频| 欧美日韩丝袜无码一区二区三区视频| 精品一本二卡三卡四卡无卡免费高| 精品一卡2卡三卡4卡2021国色| 国产亚洲一本到卡二卡三卡免费高清| 国产亚洲卡一卡2卡3卡4卡在线观看| 国产亚洲卡一卡二卡三| 欧洲一卡三卡四卡免费网站| 精品卡一卡二卡三新区|