顧曙光 張茂青 劉文杰 王 清
(蘇州大學自動化系,江蘇 蘇州215021)
太陽能電池板常年置于室外,易積灰塵和異物,導致發(fā)電效率降低。全天候運行于太陽能電池板上的清洗小車將提高太陽能發(fā)電效率。用一塊MCGS觸摸屏作為監(jiān)控設備,控制主板運行Windows操作系統(tǒng),主控程序在Visual C++6.0環(huán)境下編制,觸摸屏與控制主板通過以太網口相連。MCGS正確組態(tài)后,會向以太網中發(fā)送符合 Modbus TCP協(xié)議的功能碼,此時工控主板需要識別功能碼,作出相應處理并向以太網作相應的應答。
MCGS觸摸屏是一種用途廣泛的工控監(jiān)測產品,其內部預裝有各種工控設備的驅動程序。對于本系統(tǒng)中的工控計算機主板,可將其視為通用 Modbus TCP設備,通過以太網對其進行驅動監(jiān)控。設備窗口是MCGS系統(tǒng)的重要組成部分,負責建立系統(tǒng)與外部硬件設備的連接。通過組態(tài)要建立通信雙方的以太網連接,在設備管理窗口中先后選擇“通用TCP/IP父設備”和“通用設備—莫迪康 Modbus TCP”。通用TCP/IP父設備的屬性中包含以太網通信的基本屬性。鑒于本監(jiān)控系統(tǒng)的通信方只有兩方,且要實時監(jiān)控,需隨時收發(fā)消息,以太網的傳輸層協(xié)議選用無連接的UDP協(xié)議。觸摸屏的IP地址可在上電后點擊進度條,進入屬性界面查看。在TCP/IP基本屬性設置中,設本地IP地址為200.200.200.190,設遠程IP地址為200.200.200.110。設備組 態(tài) 的 基 本 屬 性 設 置 界 面 如 圖 1所示。
圖1 設備組態(tài)基本屬性設置
要實現(xiàn)觸摸屏與主板的信息交換,要在主板上建立Modbus數(shù)據模型。Modbus數(shù)據包括輸入繼電器、輸出繼電器、輸入寄存器、輸出寄存器等4種類型。在主板的VC++程序中用一系列數(shù)組模擬Modbus設備:
BOOL INREL[16];BOOL OUTREL[16];//輸入、輸出繼電器
WORD INREG[10];WORD OUTREG[10];//輸入、輸出寄存器
實驗中可借助網口調試工具解析MCGS觸摸屏發(fā)向以太網的字碼,結合本系統(tǒng)實驗結果和 Modbus TCP協(xié)議,總結如下:
(1)讀輸出繼電器OUTREL[0]
請求:00 00 00 00 00 06 01 01 00 00 00 01
響應:00 00 00 00 00 04 01 01 01 00(01)
(2)讀輸入繼電器INREL[0]~INREL[3]
請求:00 00 00 00 00 06 01 02 00 00 00 04
響應:00 00 00 00 00 04 01 02 01 0x
(3)寫輸出寄存器OUTREG[1]
請求:00 00 00 00 00 06 01 06 00 01 xx xx
響應:00 00 00 00 00 06 01 06 00 01 xx xx
設觸摸屏對小車的命令與監(jiān)視項目,如表1所示。
表1 命令與監(jiān)視項目
通過socket編程實現(xiàn)主板的以太網通信,與組態(tài)完成的觸摸屏用網線連接后,主板的進程會收到一系列Modbus TCP協(xié)議碼。這時主板進程的以太網接收函數(shù)LRESULT CMyDlg::On ReadClose(WPARAM w Param,LPARAM l Param)將對收到的協(xié)議碼進行識別、響應。進程將收到的信息存儲于數(shù)組char msg[]中,其中 Modbus功能碼存放于字節(jié) msg[7]中。根據Modbus TCP協(xié)議的請求應答機制,部分處理程序段如下:
switch(msg[7])
{case 0x01://讀輸出繼電器
BOOL a[8]={0x00};
for(int i=0;i<msg[11];i++)
a[i]=OUTREL[msg[9]+i];
send[9]=(char)a;send[7]=0x01;send[5]=0x04;
Send(send,10);break;case 0x04://讀輸入寄存器
for(int j=0;j<msg[11];j++)
{send[9+j*2]=INREG[msg[9]+j]>>8;
send[9+j*2+1]=INREG[msg[9]+j];}
send[8]=msg[11]*2;send[5]=3+msg[11]*2;
send[7]=0x04;
Send(send,6+send[5]);break;…}
本系統(tǒng)可實現(xiàn)對清洗小車的指令發(fā)送與狀態(tài)監(jiān)視功能。在主板的操作系統(tǒng)中將進程設置為開機啟動,系統(tǒng)上電后便可進入工作狀態(tài)。本系統(tǒng)使用的觸摸屏型號為TPC7062K;工控主板型號為VDX2-6554;運動控制卡型號為DMC4420;交流伺服電機驅動器型號為YZ-ACSD608。
[1]曹輝,馬棟萍,王暄,等.組態(tài)軟件技術及應用[M].第2版.北京:電子工業(yè)出版社,2012
[2]MODBUS協(xié)議中文版[Z]
[3]鄭阿奇.Visual C++6.0網絡編程教程[M].北京:電子工業(yè)出版社,2013