工控網(wǎng)首頁
>

新聞中心

>

新品速遞

>

MCGS近期推出新功能,“腳本驅(qū)動(dòng)”與用戶面對面

MCGS近期推出新功能,“腳本驅(qū)動(dòng)”與用戶面對面

張波(化名)是福建省廈門市一家很有名的工控儀表生產(chǎn)廠家的技術(shù)人員,該廠家是昆侖通態(tài)MCGS組態(tài)軟件的老客戶,每年都使用200套以上的MCGS組態(tài)軟件,張波的主要工作是為該廠家的各種儀表編寫MCGS組態(tài)軟件的設(shè)備驅(qū)動(dòng)程序。
  昆侖通態(tài)在2002年推出了nTouch系列嵌入式一體化工控機(jī)和MCGS嵌入式組態(tài)軟件。廈門這一廠家在對昆侖通態(tài)這兩款產(chǎn)品進(jìn)行試用和論證后,決定采用nTouch和MCGS應(yīng)用到其工程項(xiàng)目中。于是派張波到北京出差,學(xué)習(xí)如何使用Embeded VC開發(fā)MCGS嵌入式組態(tài)軟件的設(shè)備驅(qū)動(dòng)程序。
  張波是昆侖通態(tài)的老朋友,大家都比較熟悉。在昆侖通態(tài)學(xué)習(xí)的空閑時(shí)間里四處走動(dòng),他發(fā)現(xiàn)昆侖通態(tài)測試部門的員工正在認(rèn)真地測試一個(gè)軟件,詢問之后得知,這是昆侖通態(tài)準(zhǔn)備在近期推出的MCGS組態(tài)軟件新功能的一部分,名叫MCGS腳本驅(qū)動(dòng)開發(fā)程序,覺得非常好奇,于是找到該項(xiàng)目的負(fù)責(zé)人侯尚秋,與侯尚秋有了如下一段對話。

張波(以下簡稱張):什么是腳本驅(qū)動(dòng)?
侯尚秋(以下簡稱侯):
  腳本驅(qū)動(dòng)是我們推出的一種使用MCGS腳本編寫設(shè)備驅(qū)動(dòng)程序的技術(shù)。
  使用腳本驅(qū)動(dòng),您不需要使用復(fù)雜的VC、DELPHI、VB等開發(fā)語言,不需要理解動(dòng)態(tài)連接庫、COM接口等復(fù)雜的技術(shù)。您只需要使用我們提供的開發(fā)工具,做一些簡單的設(shè)置,編寫一些簡單的腳本,就可以完成一個(gè)設(shè)備驅(qū)動(dòng)程序。

張:為什么需要腳本驅(qū)動(dòng)?
侯:在組態(tài)軟件的應(yīng)用中,需要與各種智能設(shè)備通訊。一般組態(tài)軟件都是通過VC、DELPHI或者VB等高級(jí)語言編寫動(dòng)態(tài)庫程序,通過組態(tài)軟件提供的接口,實(shí)現(xiàn)采集設(shè)備數(shù)據(jù)并和組態(tài)軟件通訊。
  這種方式目前在組態(tài)軟件中應(yīng)用廣泛。但存在其不足之處。尤其是對于一些簡單的設(shè)備,或者用戶自己開發(fā)的設(shè)備。
  這種設(shè)備的通訊協(xié)議本身非常簡單,但客戶不得不委托組態(tài)軟件的開發(fā)商開發(fā)設(shè)備驅(qū)動(dòng)程序,而組態(tài)軟件廠商的開發(fā)人員往往沒有實(shí)際的設(shè)備,只能根據(jù)用戶提供的協(xié)議完成代碼編程。實(shí)際用戶在現(xiàn)場使用,如果出現(xiàn)問題,又需要返回廠商修改,有時(shí)不得不反復(fù)數(shù)次才能解決問題。給用戶造成了人力、物力、時(shí)間上的浪費(fèi)。
  如果用戶希望自己開發(fā)設(shè)備驅(qū)動(dòng)程序,則必須使用組態(tài)軟件廠商提供的開發(fā)框架和接口進(jìn)行開發(fā)。理解框架和接口本身就是一件費(fèi)時(shí)費(fèi)力的事情,同時(shí)還需要了解具體的串口、網(wǎng)絡(luò)、端口等方面的知識(shí)。
  腳本驅(qū)動(dòng)屏蔽了大量的技術(shù)細(xì)節(jié)。用戶需要關(guān)心的事情只有一件,就是分析設(shè)備的通訊協(xié)議,解析從設(shè)備讀取的數(shù)據(jù)。這樣,用戶可以自己完成設(shè)備驅(qū)動(dòng)的編寫、調(diào)試和現(xiàn)場應(yīng)用,就可以在最短的時(shí)間內(nèi),開發(fā)出滿足需要的設(shè)備驅(qū)動(dòng)程序。

張:腳本驅(qū)動(dòng)難不難呀?
侯:不難,簡單是腳本驅(qū)動(dòng)程序最大的特點(diǎn)。
  腳本驅(qū)動(dòng)程序是專為簡化驅(qū)動(dòng)開發(fā)過程設(shè)計(jì)的,只要會(huì)使用MCGS軟件,在4、5個(gè)小時(shí)的時(shí)間內(nèi),就可以全面掌握腳本驅(qū)動(dòng)程序開發(fā)過程。熟練之后,甚至只需要30分鐘就可以完成一個(gè)象泓格7017模塊的驅(qū)動(dòng)。

張:哪些設(shè)備可以用腳本編寫驅(qū)動(dòng)?
侯:理論上,所有串口設(shè)備、MODEM設(shè)備、以太網(wǎng)通訊設(shè)備和板卡設(shè)備都可以使用腳本驅(qū)動(dòng)程序開發(fā)驅(qū)動(dòng)。最適合使用腳本驅(qū)動(dòng)的有:單片機(jī),傳感器,智能模塊,智能儀表,常見PCI板卡等。
  我們對我們所編寫的全部設(shè)備驅(qū)動(dòng)程序的代碼作了統(tǒng)計(jì)分析,分析后發(fā)現(xiàn),70%以上的設(shè)備驅(qū)動(dòng)程序,其代碼量在200行以內(nèi)。這些設(shè)備的特點(diǎn)是協(xié)議比較簡單,通道較少,對協(xié)議的解析和命令合成過程不是很復(fù)雜。腳本驅(qū)動(dòng)針對這些設(shè)備,提供了必要的數(shù)據(jù)收發(fā),協(xié)議解析,通道賦值等方面的功能。開發(fā)這些類型的驅(qū)動(dòng)程序,腳本驅(qū)動(dòng)使用方便、調(diào)試簡單、工作量小。

張:通訊協(xié)議復(fù)雜的設(shè)備怎么辦?
侯:對于通訊協(xié)議復(fù)雜的設(shè)備,如PLC和一些國外的儀表等,理論上也可以使用腳本驅(qū)動(dòng)開發(fā),但是并不是最合適的。這類設(shè)備代碼量大,調(diào)試復(fù)雜,一般應(yīng)由組態(tài)廠商的設(shè)備驅(qū)動(dòng)人員為用戶完成。
  腳本驅(qū)動(dòng)程序推出的目標(biāo),并不是代替目前的設(shè)備驅(qū)動(dòng)開發(fā)方式,而是提供給用戶一種新的選擇。

張:對于MCGS的用戶,是不是都要學(xué)習(xí)使用腳本驅(qū)動(dòng)?
侯:對于MCGS的用戶,包括組態(tài)用戶和最終用戶,都不會(huì)發(fā)覺MCGS在設(shè)備處理方面有任何變化,腳本驅(qū)動(dòng)編寫的設(shè)備驅(qū)動(dòng)程序,與一般的設(shè)備驅(qū)動(dòng)程序的使用方式是沒有任何區(qū)別的。
  腳本驅(qū)動(dòng)程序的使用對象,一是我公司內(nèi)部的驅(qū)動(dòng)開發(fā)人員,二是我公司的技術(shù)支持人員和銷售人員,三是需要自己編寫驅(qū)動(dòng)的客戶。我們在公司內(nèi)部的要求是:所有技術(shù)支持人員和銷售人員都要掌握腳本驅(qū)動(dòng)編寫的方法,其目標(biāo)是加快客戶服務(wù)的速度。

張:不知其速度和性能如何?
侯:這是一個(gè)每個(gè)使用腳本驅(qū)動(dòng)程序的人員都會(huì)問的一個(gè)問題,特別是在嵌入式系統(tǒng)的應(yīng)用中,速度更是一個(gè)非常關(guān)鍵的問題。
  我們在內(nèi)部做了實(shí)驗(yàn),MCGS的腳本語言比VC代碼平均慢10倍。但對通訊程序而言,速度的瓶頸是在對串口、以太網(wǎng)等的讀寫上。我們已將對串口讀寫、以太網(wǎng)等的讀寫操作進(jìn)行了精心的封裝,這一部分代碼全部是使用C語言編寫的,腳本驅(qū)動(dòng)程序只需要調(diào)用該部分的函數(shù)接口,即可完成一次完整的通訊過程。經(jīng)過大量的極限測試,我們得出結(jié)論,其速度和性能完全能滿足現(xiàn)場設(shè)備的需要。

張:你剛才講到精心的封裝,能不能具體介紹一下這方面的內(nèi)容?
侯:這方面的內(nèi)容,涉及到比較多的計(jì)算機(jī)知識(shí),我只大概地描述一下,我只針對串口通訊來進(jìn)行說明。
  對于串口通訊,最底層的操作是通過INP和OUP對端口3F8或2F8進(jìn)行操作,目前編程人員一般不直接采用這種方式了。VC編程人員是通過ReadFile和WriteFile兩個(gè)API接口函數(shù)進(jìn)行串口操作的;DELPHI一般使用SPCOMM等構(gòu)件進(jìn)行串口操作;VB則一般使用MSCOMM控件進(jìn)行串口操作。
VB和DELPHI對串口操作即進(jìn)行了封裝,將大量的串口操作細(xì)節(jié)封裝在控件或構(gòu)件的內(nèi)部,用戶只需要調(diào)用該控件的屬性和方法,即可完成通訊參數(shù)的設(shè)置和通訊了。
  腳本驅(qū)動(dòng)中,對串口操作的封裝更加強(qiáng)大,我們分析了歷年來我們?yōu)榭蛻艟帉懙拇罅吭O(shè)備驅(qū)動(dòng)程序,歸納出幾種典型的串口通訊模式,并將這些串口通訊模式進(jìn)行封裝?,F(xiàn)在,用戶只要調(diào)用一個(gè)接口函數(shù),就可以完成數(shù)據(jù)發(fā)送、等待、接收等全過程。

張:我聽不太懂,我對VB比較熟悉,我能很快熟悉腳本驅(qū)動(dòng)嗎?
侯:如果您打開MCGS提供的腳本驅(qū)動(dòng)開發(fā)工具,你一定會(huì)發(fā)現(xiàn):這個(gè)工具多么象VB的編譯器呀,包括界面風(fēng)格、語法等,還有與VB類似的單步跟蹤和調(diào)試手段呢。

張:腳本驅(qū)動(dòng)只能運(yùn)行在MCGS嵌入版本嗎?
侯:不,腳本驅(qū)動(dòng)可以運(yùn)行在MCGS的三個(gè)版本中,即在嵌入版本、通用版本和網(wǎng)絡(luò)版本都可以應(yīng)用。
  而且,腳本驅(qū)動(dòng)還有一個(gè)特點(diǎn),即:一次編寫,無需編譯。您在MCGS嵌入版本中編寫的腳本驅(qū)動(dòng),可以直接在通用版本或網(wǎng)絡(luò)版本上使用。

張:腳本驅(qū)動(dòng)的穩(wěn)定性如何?
侯:主程序可以控制腳本驅(qū)動(dòng)的所有異常訪問并加以判斷處理。使用腳本驅(qū)動(dòng),絕不會(huì)出現(xiàn)象C語言編寫的驅(qū)動(dòng)程序那樣,動(dòng)不動(dòng)就出現(xiàn)非法指針訪問的情況,也不會(huì)出現(xiàn)VB那樣對內(nèi)存的非法操作情況。

張:能不能給我演示一下?
侯:好的。




(1小時(shí)后,張波已編寫并調(diào)試了他廠家生產(chǎn)的某一款儀表的腳本驅(qū)動(dòng)。)

張:這對我們這些系統(tǒng)制造商或其它系統(tǒng)集成商來說,真是一件天大的好事,它什么時(shí)間發(fā)布?
侯:目前腳本驅(qū)動(dòng)正在緊張的測試中,預(yù)計(jì)嵌入版本的腳本驅(qū)動(dòng)程序在一個(gè)月之后正式發(fā)布,通用版本和網(wǎng)絡(luò)版本的腳本驅(qū)動(dòng)程序在三個(gè)月之后正式發(fā)布。

張:看來我不需要學(xué)習(xí)EMBEDED VC和VB了,能不能給我拿一套試用版本,我先試試?
侯:可以呀。能為您和那些支持我們昆侖通態(tài)事業(yè)發(fā)展的朋友效勞,是我們的榮幸。
  我的EMAIL:mcgslcb@263.net。如果您在試用過程中對我們的產(chǎn)品有任何意見或者建議,也請與我們聯(lián)系。
投訴建議

提交

查看更多評論
其他資訊

查看更多

昆侖通態(tài) MCGS_中級(jí)教程

昆侖通態(tài) MCGS_初級(jí)教程

昆侖通態(tài) 硬件手冊_TPC1061Hn

昆侖通態(tài) MCGS_嵌入版_西門子S7-300/400以太網(wǎng)驅(qū)動(dòng)

昆侖通態(tài) MCGS_嵌入版_西門子S7-200PPI驅(qū)動(dòng)