第一次聽(tīng)到通信協(xié)議有關(guān)的事,是2001年初到公司的時(shí)候,那個(gè)時(shí)候,總是把通信協(xié)議和硬件(或通信鏈路)扯在一起,對(duì)232/485、TCP等通信鏈路和Modbus、PPI、TFP分不清到底是什么關(guān)系(記得當(dāng)時(shí),陳老師有好多次糾正我不要把通信說(shuō)成通訊,通信包括通訊和可信兩部分含義,有通訊可靠的意思)。
在工控上經(jīng)常有人問(wèn),Modbus TCP和Modbus Rtu那個(gè)通信快,對(duì)西門(mén)子PLC200,用PPI通信協(xié)議是否比用庫(kù)實(shí)現(xiàn)的Modbus Rtu快呢?問(wèn)這些問(wèn)題的人,把一些基本概念混淆了。就像以為所有的車只要上了高速公路,車子性能就好了,速度就快了,其實(shí)車還是那個(gè)車,只是規(guī)定變了。
我的理解,通信協(xié)議(或規(guī)約)就是一種約定,也許是開(kāi)始制定協(xié)議的時(shí)候,考慮到硬件的性能因素,所以協(xié)議好像和硬件不能分割了,就像modbus rtu協(xié)議換了硬件鏈路,協(xié)議內(nèi)容不變,就變成了modbus plus了。
其實(shí),關(guān)于通信協(xié)議的一些事我也說(shuō)不清楚,也許有些東西只能意會(huì)而不能言傳。
這段時(shí)間比較喜歡Modbus協(xié)議,喜歡他的簡(jiǎn)潔,喜歡他的開(kāi)放。不像PPI、MPI等協(xié)議為了防止破 解,加了很多冗余字節(jié),所以勢(shì)必在同樣的硬件條件下,有效通信的效率降低。
此外,對(duì)協(xié)議制定,現(xiàn)在從架構(gòu)的層次來(lái)考慮了,以前制定一個(gè)硬件通信協(xié)議,總是這樣制定:如 登錄命令,設(shè)置××參數(shù)命令,讀取××參數(shù)命令,下發(fā)數(shù)據(jù)命令等等,有多少項(xiàng),也許就有多少條指令。只要增加或修改指令,那相應(yīng)的上位機(jī)和下位機(jī)通信部分的代碼就要修改。
目前模仿一些PLC系統(tǒng),先在下位機(jī)設(shè)定一個(gè)一定大小的存儲(chǔ)區(qū),里面放一些已知或目前未知的參數(shù),協(xié)議內(nèi)容無(wú)論硬件有多復(fù)雜,都僅包含三塊內(nèi)容:讀、寫(xiě)指令,參數(shù)區(qū)具體定義。相對(duì)程序來(lái)說(shuō),就編寫(xiě)兩部分,讀寫(xiě)操作,剩下的就是配置參數(shù)而已。
這樣簡(jiǎn)單多了,以不變應(yīng)萬(wàn)變(結(jié)合我的組態(tài)后臺(tái)使用,那簡(jiǎn)直用一個(gè)字來(lái)形容“爽”)!
|