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