PLC通信原理
卷煙廠的制絲車間,熟悉的用戶都知道使用的PLC、交換機非常多,最終還要和許多上位機之間交換生產(chǎn)和過程數(shù)據(jù)。
在當(dāng)時,從去過的技術(shù)支持工程師的人次上看,那確實是一個復(fù)雜的案例,我也去過兩次,第一次解決一些相對簡單的問題,例如PLC同上位機通信,有兩臺會間斷的連接和斷開,發(fā)現(xiàn)它們的MAC地址相同,因為過去老款的CP卡是可以設(shè)置MAC地址的。
第二次,僅是,只有一個問題始終縈繞于心,遲遲不能發(fā)現(xiàn)問題的根源在哪里。PLC與上位機通信,上位機使用了第三方的SCADA軟件,其中400PLC與其通信沒有問題,而300PLC與其通信總是偶爾中斷。這時,很正常就會想到300PLC和400PLC的差別,通信性能上的差別,自然而然就會翻到20%的那個CPU的屬性頁。
初次見到它,它讓我有些迷茫,彷徨,即使瀏覽了在線幫助和手冊,我仍然不知所措,我不知道修改后的結(jié)果能對問題的解決起到多大的作用??上攵薷暮髮栴}的解決沒有任何幫助。這時,我就思考這個參數(shù)的意義在哪里,留給我們?nèi)バ薷牡哪康挠质鞘裁?。帶著這個疑問,我回到了北京,回到了那個讓我充滿自信,斗志昂然的地方。
然而,初次的較量,我倍感沮喪無助。因為無論幫助還是手冊,即使搜索網(wǎng)上技術(shù)論壇,有用的信息都很少,或者說一無所有,老工程師能給予的也僅是只言片語??磥硪肱宄敲纯赡芤磺幸獜牧汩_始。
繁忙的日常工作并沒有影響我對它的掛念,沒有停止過給它的思考,手冊中僅有幾處提到的時間片和CCP的概念,在我的腦海中一直盤旋,思考它的工作機制,甚至做了天馬行空的假設(shè)。
300PLC的系統(tǒng)手冊我找到了歷年的版本,在談到CCP的地方,發(fā)現(xiàn)變動的地方就是PUT/GET Server數(shù)據(jù)一致性的數(shù)據(jù)長度的變化,從最初的64Byte到目前的240Byte。這讓我想到這是CPU版本在升級,性能的提高導(dǎo)致數(shù)據(jù)的變化。同時也給我一個突破口,我要看看測試的結(jié)果會是怎樣,即使我當(dāng)時并不真正理解數(shù)據(jù)一致性的作用。
初次的測試,我使用300PLC作為PUT/GET Server,400PLC作為客戶端兩者進(jìn)行S7的以太網(wǎng)通信。建立通信的過程是很簡單,然而想了解其中的奧妙,確實讓我頭痛不已。
測試開始的結(jié)果,就像呱呱墜地的孩子,看上去不是那么美,因為那時的我并不知道如何來分析這些數(shù)據(jù),哪些是S7相關(guān)的數(shù)據(jù),哪些不是,而且如何在眾多的數(shù)據(jù)中看出哪些是S7-400PLC發(fā)送出來的S7數(shù)據(jù)等等,這一切都是未知的。
解開謎題的關(guān)鍵輔助就是Wireshark,這個軟件我想熟悉以太網(wǎng)的廣大工程師們至少都聽說過,而且也有一部分人用過。它可以用來捕捉以太網(wǎng)上的數(shù)據(jù),以此來分析和診斷相關(guān)的網(wǎng)絡(luò)狀況。這就像一束光射入,逐步照亮整個房間,讓我看見它其實很美!