PLC通訊原理探秘 大講堂幕後彩蛋之擱淺

2021-10-04 07:04:51 字數 1889 閱讀 7551

**之一:【plc通訊原理探秘】大講堂幕後彩蛋之序言

**之二:【plc通訊原理探秘】大講堂幕後彩蛋之初探

**之三:【plc通訊原理探秘】大講堂幕後彩蛋之失敗

**之四:【plc通訊原理探秘】大講堂幕後彩蛋之曙光

**之五:【plc通訊原理探秘】大講堂幕後彩蛋之黑暗

**之六:【plc通訊原理探秘】大講堂幕後彩蛋之破局

**之七:【plc通訊原理探秘】大講堂幕後彩蛋之揚帆

**之八:【plc通訊原理探秘】大講堂幕後彩蛋之柳暗

**之九:【plc通訊原理探秘】大講堂幕後彩蛋之花明

**之十:【plc通訊原理探秘】大講堂幕後彩蛋之遠航

wireshark的應用可以讓我清晰的看到資料報文的結構,能夠充分的理解iso/osi參考模型的作用和意義。記得我以前學習profibus,使用amprolyzer軟體也可以在profibus上進行抓包,去看報文結構,可是在當時無論從哪個方面來說理解的都不夠深入,所以甚少使用這個軟體,其實現在想想這個軟體絕對不比使用示波器去檢測profibus的故障弱,只是現在應用profibus的機會越來越少,因為profibus真的是已經進入夕陽階段了。而現在是乙太網的時代!

還有,在使用profibus組態s7通訊的時候總能看見tsap這個術語,雖然在step7中由兩個數字表示,但是在初學profibus通訊的時候也是一頭霧水,不知道這個引數到底有什麼作用,或者說這個引數如何解釋。記得當時並未放在心上,因為組態和程式設計的時候都與這個引數無關,似乎就是起到了乙個顯示的作用。

當我深入理解乙太網,學習iso/osi參考模型時,這個引數再次浮出水面,使我不得不再次面對它。原來對於iso/osi參考模型的層與層之間都是依靠sap,service access point來進行聯絡的,也就是說層與層之間的交流依靠sap,例如tsap位於transport layer和session layer之間,取第4層傳輸層的首字母t和sap來命名,其它層之間的sap都是按照這個命名方式來實現的。通過在網上搜尋資料來學習,發現iso/osi參考模型的tsap就是tcp/ip模型中的port。於是這一切都好理解了,反過來再看profubus的s7通訊,它使用的是iso/osi的參考模型,所以看到的只能是tsap。

其實最早接觸資料一致性的概念來自pii/piq,因為手冊上說乙個cpu的迴圈週期,pii/piq的資料保持不變,其實這不是某乙個位址,而是整個pii/piq的位址區域。例如:預設s7-300中的過程映像區的大小是256b。了解資料一致性概念在當時也僅限於此,只是覺得在程式設計時這個概念很重要,記得以前做軋機專案,自己編寫的卷徑計算公式需要一些引數,來自於驅動的通訊資料,這就要求這些資料要一致的,因為只有這樣才能保證公式計算正確。這也說明理解這一概念,對於工程專案的程式設計肯定是有指導意義的。

那麼bsend/brecv的資料一致性也像手冊中描述的是240b嗎?常看手冊,s7-300plc可以最大進行32k的s7通訊,s7-400plc可以最大進行64k的s7通訊,s7-300plc能夠保證240b的資料一致性,如果想要整個通訊的資料區中的資料保持一致性,需要使用done/ndr訊號。

通過wireshark抓包,看見s7 pdu的大小仍然是240b,那麼手冊中的240b的資料一致性,是需要兩個包來合成乙個240b的s7資料嗎?如果是這樣,plc是不是做的有些複雜?它在內部如何來保證呢?或者說是不是資料一致性不是240b?雖然wireshark抓包可以看見s7 data的真實大小,例如s7通訊的首包資料長度是204b,這就是真正的資料一致性的大小嗎?如何證明呢?

這確實又是乙個難題,感覺剛剛出發,就在這裡擱淺了,也感覺到解決它,前面一定是海闊天空!

寫在騰訊大講堂演講之後

好久沒寫日誌了,今天發一篇吧!最近找工作,我發現有很多想去大公司的人都被過濾掉了,他之前一直認為自己適合大公司,面試的時候人家確沒要他。有的更加清晰的認識到自己其實就更適合創業,去一家規模不大的公司,而不是去大公司當個螺絲釘。第乙份工作,我覺得只要和自己的行業匹配,而不是你想去網際網路公司結果去了微...

PCB設計大講堂 PCB Layout細則(二)

深圳巨集力捷電子是一家專業從事電子產品設計 layout 的pcb設計公司,主要承接多層 高密度的pcb設計畫板業務。擁有平均超過8年工作經驗的pcb設計團隊,能熟練運用市場主流pcb設計軟體,專業高效溝通保證pcb設計進度,助您早一步搶占市場先機!e.pcb走線鋪銅 1 先確定是何安規,因為不同安...

《PHP程式設計網路大講堂》 摘錄11 4

2.語法基礎 echo 不能用在複雜表示式,因為返回void,能輸出多個字串。i 我 you 你 echo i,很好,you 最近怎麼樣?print 返回boolean值 printf 返回整型數值,表示字串長度 printf s is d years old.candy 20 輸出 candy i...