[摘要]:我們本著我們最初的想法,構(gòu)造了目前的可編程控制器和擴展系統(tǒng)。在系統(tǒng)中,
網(wǎng)絡(luò)通信尤為重要,我們要在這里仔細論述騰控PLC的網(wǎng)絡(luò)通信
[關(guān)鍵詞]:可編程控制器 網(wǎng)絡(luò)通信
我們本著我們最初的想法,構(gòu)造了目前的可編程控制器和擴展系統(tǒng)。在系統(tǒng)中,網(wǎng)絡(luò)通信尤為重要,我們要在這里仔細論述騰控PLC的網(wǎng)絡(luò)通信。
對于一個復(fù)雜的系統(tǒng)而言,通信模型非常重要。
因為我們整個網(wǎng)絡(luò)系統(tǒng)是構(gòu)建在TCP/IP網(wǎng)絡(luò)之上的,我們的通信模型實際就是網(wǎng)絡(luò)通信模型。在系統(tǒng)中,有數(shù)據(jù)的產(chǎn)生者,有數(shù)據(jù)的使用者,有數(shù)據(jù)的存儲者。我們采用的是C/S模型。
數(shù)據(jù)的產(chǎn)生者是作為服務(wù)器使用的,數(shù)據(jù)的使用者和存儲者都作為客戶端??紤]到與外部接口,要有開放的協(xié)議。所以我們在控制器側(cè)要支持2種協(xié)議。
一種為標準的MODBUS TCP協(xié)議,主要是控制器與上位機通信,控制器作為服務(wù)器使用。TCP協(xié)議開銷比較大。這樣可以提供給客戶一個標準的接口,幾乎所有的軟件都支持MODBUS協(xié)議和MODBUS TCP協(xié)議。
一種是PLC內(nèi)部通信的協(xié)議,我們采用的是UPD協(xié)議,UPD協(xié)議是無連接的協(xié)議,開銷比較小,而且可以支持無限制的客戶端數(shù)量。這樣可以達到較高的通信速度。這個協(xié)議我們稱之為ENET協(xié)議。
MODBUS TCP協(xié)議在這里就不用多講了,很多資料。
我們把內(nèi)部的通信協(xié)議稱之為ENET協(xié)議,服務(wù)器協(xié)議端口為7000.每個T9系列都支持ENET的服務(wù)器。而具有運算能力的T9系列控制器支持ENET的客戶端,最多同時可以發(fā)起8個通信。
首先我們定義PLC間內(nèi)部通信,PLC間通信通過中間變量進行,力爭在一個通信報文中完成所有的變量交換,我們定義了
功能碼1,讀中間變量,
功能碼2 , 寫中間變量,
功能碼3,讀寫中間變量。
對于遠程I/O,我們定義了6種功能碼
功能碼4 , 讀開關(guān)量輸入,
功能碼5, 讀開關(guān)量輸出,
功能碼6, 讀寫開關(guān)量輸入輸出
功能碼7, 讀模擬量輸入
功能碼8, 寫模擬量輸出
功能碼9, 讀寫模擬量
具體的報文,參見文檔
編程方式
為了方便用戶編程,我們抽象了網(wǎng)絡(luò)通信,做到讓用戶編程最為簡單,定義了ENET通信的功能塊,功能塊如下圖
EN通迅使能端,上升沿有效,激活時將啟動本次通迅,斷開時結(jié)束本次通迅,布爾類型
IPAddr 要通迅的控制器IP地址,字符串類型
RW 通迅使用的功能碼,字節(jié)類型,共九種功能碼。
MRAddr 本機讀數(shù)據(jù)存放地址,單字類型
YRAddr 遠程讀數(shù)據(jù)存放地址,單字類型
RLength寫操作的數(shù)據(jù)長度,單字類型
MWAddr本機寫數(shù)據(jù)存放地址,單字類型
YWAddr 遠程寫數(shù)據(jù)存放地址,單字類型
WLength寫操作的數(shù)據(jù)長度,單字類型
TimeOut通迅超時時間,單字類型(單位:10ms)
ENO 輸出使能,布爾類型
Done 通迅狀態(tài),布爾類型,True為正常、False 為錯誤ErrMsg通迅狀態(tài)碼,0為正常,詳見表(2)
編程舉例
只要把這個功能塊使能,指定服務(wù)器的IP地址,起始地址,讀寫取長度,本地存儲地址,無需用戶編程干預(yù),自動運行。