?

MCGS組態環境下的MSP430單片機驅動開發

2017-12-22 07:38萌,李斌,姚駿
自動化儀表 2017年12期
關鍵詞:驅動程序腳本組態

許 萌,李 斌,姚 駿

(上海大學機電工程與自動化學院,上海 200072)

MCGS組態環境下的MSP430單片機驅動開發

許 萌,李 斌,姚 駿

(上海大學機電工程與自動化學院,上海 200072)

MCGS是一款基于Windows平臺的上位機監控組態軟件系統,其包含了多種通用設備驅動程序。但在實際項目中,有時MCGS組態軟件所提供的設備驅動程序也無法滿足用戶的需求。因此,MCGS提供了一款腳本驅動開發工具。用戶可通過該工具便捷地創建符合項目需求的設備驅動構件。腳本驅動開發工具內含大量的庫函數,能夠在充分滿足用戶需求的同時,使得驅動的開發更加便捷?;贛CGS組態軟件的MSP430單片機的驅動構件,根據自助洗車機的實際需求進行開發。首先,制定了通信協議;然后,根據項目需求設置相應的設備通道,編寫了所需的設備命令;最后,通過驅動的安裝和掛接,實現了設備驅動的開發。實際運行結果表明了該驅動構件的高效性、便捷性。該研究為常規的驅動程序設計提供了思路。

監控系統; 觸摸屏; 單片機; 上位機; 人機界面; MCGS組態軟件; 腳本驅動; 通信

0 引言

隨著計算機技術和網絡技術的飛速發展,傳統的顯示儀表、信號指示燈、操作按鈕等已不能完全滿足工業自動化的需要。觸摸屏作為一種新型的人機界面,從一出現就備受關注。其具有簡單易用、功能強大、穩定性優異的特點,非常適用于工業環境。

目前市場上的觸摸屏產品多種多樣。由北京昆侖通態自動化軟件科技有限公司開發的觸摸屏使用較為廣泛。其開發的MCGS軟件也具有穩定性高、成本低、速度快、功能強的特點。MCGS[1]作為一款上位機監控軟件,支持多種運行環境,使用方便、快捷。

本文基于MCGS的MSP430單片機驅動構件,以自助洗車機項目為背景,通過腳本驅動開發工具進行開發。

1 自助洗車機人機交互通信簡介

自助洗車機采用北京昆侖通態研發的型號為TPC7062Ti的嵌入式一體化觸摸屏來進行人機交互。自助洗車機讀卡器板采用超低功耗單片機MSP430F5438A[2]。

MSP430與觸摸屏的通信框圖如圖1所示。MSP430單片機通過RS-232串口通信與觸摸屏進行連接,實現觸摸屏對自助洗車機[3]讀卡器板的數據傳輸和監控,完成自助洗車機的人機交互。

圖1 通信框圖

2 MCGS腳本驅動概況

以往的MCGS驅動構件開發大都采用 Active DLL 構件的方式來實現設備驅動程序,然后通過調用一些接口函數來實現用戶所需的功能。通過使用規范的OLE接口,使驅動程序完成在組態軟件中的掛接。這樣,在組態軟件中就可以方便地使用驅動構件。OLE是一種面向對象的技術。用戶可以使用VB、VC等語言編制MCGS的設備驅動程序,實現對驅動構件的開發[4-6]。

本文的驅動構件采用腳本驅動開發。該版本驅動由MCGS編程語言實現的驅動程序。相對于采用Active DLL構件方式實現的驅動程序,腳本驅動的開發更方便、快捷,而且具有開發步驟標準和驅動構件可移植性好的優點。MCGS腳本驅動的開發使用了其自帶的腳本編程語言。其包含了大量的庫函數,不僅滿足了用戶的功能需求,而且提供了必要的容錯處理。這就不必像以往的設備驅動開發那樣考慮過多的技術細節,也不必花費過多的時間學習大量的接口技術和計算機技術,切實提高了開發效率。這些優點都體現了腳本驅動的人性化。用戶使用腳本驅動工具進行驅動程序開發,可以節省大量時間來提高通信效率[7]。

3 MCGS設備驅動設計

對MCGS設備驅動的開發有以下2個步驟:

①通信協議的制定;

②腳本驅動程序的設計。

3.1 通信協議的制定

通信協議是指通信雙方為了達到通信目標所必須遵守的規范和法則。

通信規則:觸摸屏每隔1 s發送1次命令到讀卡器板。如果觸摸屏沒有操作,即持續發送狀態查詢命令;否則,發送對應的操作命令。

信號幀格式包括幀頭、長度、當前頁、操作類型、數據、校驗及幀尾。但在具體的項目需求下,信號幀的內容視情況有所變動。

在本系統中,所制定的通信協議信號幀格式如表1所示[8]。

表1 信號幀格式

①幀頭。

幀頭用來判斷本幀是否屬于串口通信協議,同時也用來作為是否通信的標志。自助洗車機的項目中規定,幀頭占2 B。當幀頭為0xFA0xFA時,表示觸摸屏發送數據到讀卡器板;當幀頭為0xF50xF5時,表示讀卡器板發送數據到觸摸屏。

②長度。

長度用來描述數據包含的字節數。在通信雙方進行通信時,通過長度來檢驗通信的數據。數據長度占2 B。

③當前頁。

當前頁用來顯示觸摸屏的當前頁數信息。觸摸屏發送的每個命令都帶有當前頁數信息,讀卡器板應答時也帶有頁數。

④操作類型。

通信中,需要傳輸不同的幀類型,有狀態查詢、應答、初始化等。幀傳輸的內容由操作類型給出,它在幀中占1 B。本項目中的操作類型及代碼如表2所示。

表2 操作類型及代碼

⑤數據。

所傳輸數據的內容、長度由操作類型決定。

⑥校驗。

校驗采用求和校驗,可以保證數據傳輸的準確率。

⑦幀尾。

幀尾表示該信號幀的結束,占1 B。本項目中規定幀尾為0xF0。

3.2 腳本驅動程序設計

MCGS腳本驅動程序設計主要步驟如下:

①定義設備屬性;

②建立設備通道;

③編寫設備命令;

④編寫自定義子函數;

⑤編輯設備腳本。

完成以上步驟后,對腳本程序進行檢查調試,并生成1個MDR文件,用于腳本的發布與使用。

3.2.1 定義設備屬性

定義設備屬性就是對體現設備驅動特性的變量進行設置。變量包括設備地址以及通信延時。設備屬性對于所有的設備腳本都是可見的,而且只能作為1個全局常量,能讀不能寫。在本次自助洗車機項目中,對參數設置沒有特殊要求。

3.2.2 建立設備通道

建立設備通道就是設置驅動所需的內部變量。根據自助洗車機項目的需求,定義了如表3所示的設備通道。表3中,數據類型均為整型。

表3 設備通道

當子設備被添加到父設備下時,通過設備通道驅動程序,可以將組態軟件中的實時數據庫與設備通道相連接,以實現數據的交換。

3.2.3 編寫設備命令

設備命令是用來對腳本驅動進行控制的程序。通過腳本驅動開發工具強大的函數庫,可以更加快捷地進行數據的命令傳遞和收發操作。結合此次項目的需求,設備命令如表4所示。表4中,各命令所含參數均為Retry(整型)和WaitDelay(整型)。

表4 設備命令

以SendAdBlueCommand設備命令為例。

!GetIntChannelValueByName(“ButtonID”,buttonID)

!GetIntChannelValueByName(“MoneyHigh”,moneyHigh )

!GetIntChannelValueByName(“MoneyLow”,moneyLow)

!GetIntChannelValueByName(“UseTimeHigh”,useTimeHigh)

!GetIntChannelValueByName(“UseTimeLow”,useTimeLow)

SetServiceParameter(bytCommand,buttonID,moneyHigh,moneyLow,useTimeHigh,useTimeLow,Retry,WaitDelay)

通過調用“!GetIntChannelValueByName”函數,讀取“ButtonID”、“MoneyHigh”、“MoneyLow”、“UseTimeHigh”、“UseTimeLow”這5個設備通道的值,并把它們保存到對應的整型變量中。然后,通過調用自定義子函數“SetServiceParameter”來設置服務參數。

3.2.4 編寫自定義子函數

將自定義子函數看作1個模塊,以完成特定的服務或任務。自定義子函數與一般編程語言中的子函數功能類似,通過函數對輸入進行處理,然后返回1個值供用戶使用。此次項目中的自定義子函數如表5所示。表5中,子函數所含參數均為整型。

表5 自定義子函數

以“SetServiceParameter”子函數為例。

①首先編寫通信所需的幀結構,設置相應的幀頭、長度、操作類型等。

②編寫發送和接收數據的方式。

tmpInteger=1

//設置判斷標志位為1

while tmpInteger<=Retry

nReturn = !DevWriteAndReadByteArr(SendByteArr,intOutBufferLength ,ReceiveBuffer,intInBufferLength ,WaitDelay)

//往串口中發送幀,發送完畢

后,再從父設備讀取數據,如果已經讀到intInBufferLength

長度字節或者WaitDelay毫秒尚未讀取完畢,則返回

if nReturn <> intInBufferLength then

//如果WaitDelay毫秒后

未讀取完畢,且是最后一次嘗試重新通信,則表示通信出錯

if tmpInteger=Retry then

!SetSingleChannelValueByName(“通信狀態”,2)

!SetSingleChannelValueByName(“CommunicationRetry”,Retry)

exit

endif

else

nReturn = ProcessCommandResponse(intInBufferLength)

//讀取完畢后調用子函數進行命令應答處理

if nReturn=0 then//如果返回值為0則表示通信成功

!SetSingleChannelValueByName(“通信狀態”,0)

!SetSingleChannelValueByName(“CommunicationRetry”,0)

exit

endif

endif

tmpInteger=tmpInteger+1

endwhile

3.2.5 編輯設備腳本

設備腳本包括初始化腳本、單通道寫腳本、采集腳本和退出腳本。

①初始化腳本即對腳本內的一些變量進行初始化,并向一些端口賦初值。本項目對此并沒有特殊的要求。

②單通道寫腳本可以實現向設備發送命令的功能。但與設備命令有所區別。如果使用設備命令,則在組態環境下需要顯示調用設備命令。通常要添加1個按鈕構件,并在按鈕構件的腳本調用設備命令。而對于單通道寫腳本,只需要在組態環境下將實時數據對象關聯到編輯框中即可。每次改變數據后,可在運行環境下隱式地調用單通道寫腳本。本項目不需要使用單通寫腳本。

③采集腳本在每個特定的時間周期到達之后,對變量的值進行采集,并上報處理。本項目使用采集腳本來進行命令查詢[9]。

④退出腳本總是在實用程序的最后被運行,用來執行運行結束后退出組態環境的操作,同時進行一些清理操作。本項目對此沒有特定要求。

4 腳本驅動的發布與使用

4.1 腳本驅動的發布

腳本驅動的發布就是將腳本驅動相關文件放置到適當的目錄下,以確保MCGS組態軟件可被調用。開發好的腳本驅動相關文件為1個MDR主文件。如果驅動具有幫助功能,則還會多1個幫助文件。發布開發好的腳本驅動有以下2種方法[10]。

①將驅動相關文件拷貝到MCGS安裝目錄 “ProgramDrivers”路徑下的任意文件夾。

②使用設備管理對話框中的安裝功能,完成安裝。但這種方法不會拷貝腳本驅動的幫助文件。

4.2 腳本驅動的使用

在MCGS組態軟件中使用腳本驅動。首先,將腳本驅動安裝到設備管理的設備工具箱中。然后,在設備串口下,對串口父設備進行基本設置,如波特率、COM口等。最后,在父設備下掛接已經發布安裝的腳本驅動子設備,并對設備通道及其相對應的數據對象進行連接。

5 結束語

將采用MCGS組態軟件開發的觸摸屏用作上位機監控,具有系統配置簡便、開發周期短、能夠適應各種設備、可靠性高等特點。利用昆侖通泰研發的腳本驅動開發工具,用戶可以更加高效地開發設備驅動。

該方法也可以廣泛應用于工程中的腳本驅動。經過實際運行,證明了本文開發的基于MCGS的MSP430單片機驅動構件具有良好的通信效果,數據傳遞快速、可靠;在滿足項目要求的同時,也更加地方便、快捷。該方法為開發適應實際項目需求的設備驅動程序提供了思路。

[1] 包建華,丁啟勝,張興奎.工控組態軟件MCGS及其應用[J].工礦自動化,2007(3):92.

[2] 向楠,黃道業.基于MSP430F5438A單片機的磁懸浮控制器設計[J].長江大學學報(自然科學版),2014,11(7):64-66.

[3] 楊一帆.基于物聯網的自助洗車機遠程監控系統的研究與設計[D].上海:上海大學,2017.

[4] 王曉光,鄭萍,馬巧娟,等.基于 MCGS 的 51系列單片機通用驅動程序設計[J].儀表技術與傳感器,2010(5):38.

[5] 潘崢嶸,張巖,郭凱.基于MCGS的C8051F020單片機驅動程序的設計與應用[J].微計算機應用,2009,30(2):48-52.

[6] 包建華,張興奎,胡福年.MCGS 平臺下 51 單片機驅動構件開發與應用[J].自動化儀表,2011,32(11):35.

[7] 張能,張曉思.基于MCGS的飲用水水質安全監測系統的軟件設計[J].自動化與儀器儀表,2014(12):61.

[8] 桂江華,邵健,潘邈.一種高可靠串行通信協議[J].電子與封裝,2016,16(2):40.

[9] 黎志剛,王俊元,劉波.基于MCGS的SMC電動執行器控制方法研究[J].制造業自動化,2014,36(7):16.

[10]王傳艷,陳婧.MCGS觸摸屏組態控制技術[M].北京:北京師范大學出版社,2015.

DevelopmentoftheDriversofMSP430MicrocontrollerinMCGSConfigurationEnvironment

XU Meng,LI Bin,YAO Jun

(College of Mechatronics Engineering and Automation,Shanghai University,Shanghai 200072,China)

MCGS is a Windows based host computer monitoring configuration software system,which contains a variety of universal device drivers.But in the actual projects,the device drivers provided by MCGS configuration software are sometimes unable to meet the needs of users,so a set of script driven development tools is provided in MCGS,through which the user can conveniently create the device driver component needed.Script driven development tools contain a large number of library functions,which can fully meet the needs of users; in addition,it also makes the development of drivers more convenient and efficient.The driving component of MSP430 microcontroller based on MCGS configuration software is developed with the background of the actual needs of self-service car washing machine.Firstly,the communication protocol is setup.Then the corresponding equipment channel is set according to the requirements of the project,and the required device commands are written.Finally,through the installation and connection of driver,the development of device drivers is implemented.The results of actual operation demonstrate the efficiency and convenience of the driver development.The study provides a new idea for the general driver design.

Monitoring system; Touch screen; Microcontroller; Host computer; Human-machine interface; MCGS configuration software; Script-driven; Communication

修改稿收到日期:2017-06-14

許萌(1993—),男,在讀碩士研究生,主要從事儀表自動化方向的研究,E-mail:271323088@qq.com;李斌(通信作者),男,博士,教授,主要從事檢測及自動化方向的研究,E-mail:sulibin@shu.edu.cn

TH-39;TP273+.5

A

10.16086/j.cnki.issn1000-0380.201712012

猜你喜歡
驅動程序腳本組態
酒駕
基于PLC及組態技術的恒溫控制系統開發探討
安奇奇與小cool 龍(第二回)
阻止Windows Update更新驅動程序
Rh XIII—Cd XVI 離子4s24p3—4s4p4 能級與躍遷的理論計算*
計算機硬件設備驅動程序分析
自動推送與網站匹配的腳本
基于PLC和組態的智能電動擰緊系統
融合機器視覺的制造過程監控組態平臺研究
妙用鼠標驅動
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合