siemens x
I/O 設(shè)備

[其他]:MCGS軟件與MCS51單片機(jī)多機(jī)通信的幾種方法

2025China.cn   2005年07月02日
關(guān)鍵字: MCGS 組態(tài)軟件 組態(tài)軟件 OMRON系列PLC SYSMAC C200HX 單片機(jī) 函數(shù)OLE 分布式監(jiān)控系統(tǒng) PLC 
一、引言
  在工業(yè)控制領(lǐng)域中,分布式監(jiān)控系統(tǒng)常常采用計(jì)算機(jī)機(jī)為上位機(jī)、單片機(jī)做下位機(jī)的系統(tǒng),這是一種經(jīng)濟(jì)、可靠、真觀、合理的控制方式。組態(tài)軟件MCGS是目前較常見(jiàn)的一種工業(yè)控制通用組態(tài)軟件,是開(kāi)發(fā)工程一非常有效的上位機(jī)工具軟件,下位機(jī)采用單片機(jī)來(lái)開(kāi)發(fā)的儀表,則具有計(jì)量精度高,功耗低,穩(wěn)定可靠,成本低等特點(diǎn)。
  組態(tài)軟件MCGS與MCS51單片機(jī)的通迅方法一般有三種:一、單片機(jī)通過(guò)PLC、采集板卡、智能模塊等設(shè)備實(shí)現(xiàn)通信;二、通過(guò)采用VB編制通信服務(wù)程序,利用串口通訊控件與單片機(jī)進(jìn)行多機(jī)通信, 利用OLE功能在服務(wù)程序和MCGS之間進(jìn)行數(shù)據(jù)交換,從而實(shí)行了MCGS與單片機(jī)的多機(jī)通信。;三、通過(guò)使用MCGS嵌入版的串行口通迅函數(shù)進(jìn)行PC機(jī)與單片機(jī)多機(jī)通信。前者實(shí)現(xiàn)簡(jiǎn)單,只需對(duì)的PLC或板卡做相應(yīng)的設(shè)置即可;而后兩種經(jīng)濟(jì)實(shí)用,省去了PLC、板卡、智能模塊等設(shè)備,節(jié)約了資金,但是需要有一定的編程知識(shí)。
二、通信方法
1. PLC、板卡、智能模塊方式
  本文的實(shí)例為PC上位機(jī)與一級(jí)下位機(jī)OMRON系列PLC的通信。它與計(jì)算機(jī)之間的通信采用的是串行通信。
  PLC是以微處理器為基礎(chǔ),綜合自動(dòng)控制技術(shù)和通信技術(shù)發(fā)展起來(lái)的一種通用的工業(yè)自動(dòng)控制裝置,它具有體積小,功能強(qiáng),程序設(shè)計(jì)簡(jiǎn)單,靈活通用,維護(hù)方便等一系列的優(yōu)點(diǎn),特別是它的高可靠性和較強(qiáng)的適應(yīng)惡劣工業(yè)環(huán)境的能力,使它成為大規(guī)??刂乒こ痰睦硐胂挛粰C(jī)。
  OMRON系列中型PLC有SYSMAC C200HX系例,擁有多種接口數(shù)字量輸入,數(shù)字量輸出,模擬量輸入,模擬輸出等,它帶有兩個(gè)RS-232接口,可通過(guò)RS-232C /RS-485轉(zhuǎn)接器,掛在RS-485總線上,上位機(jī)PC通過(guò)轉(zhuǎn)換器與總線相連,即構(gòu)成具有分布式控制系統(tǒng)的遠(yuǎn)傳數(shù)據(jù)采集網(wǎng),其它儀表設(shè)備,只要是標(biāo)準(zhǔn)串口都可以類(lèi)似方式直接或間接與系統(tǒng)連接。
  在組態(tài)軟件MCGS中,歐姆龍PLC設(shè)備必須掛接在串口父設(shè)備下,串口父設(shè)備在“通用設(shè)備”目錄中。串口父設(shè)備用來(lái)設(shè)置通信參數(shù)和通信端口。通信參數(shù)必須設(shè)置成與PLC的設(shè)置一樣。否則就無(wú)法通信。歐姆龍PLC常用的通信參數(shù):波特率9600,2位停止位,偶校驗(yàn),7位數(shù)據(jù)位。
  通迅的主動(dòng)權(quán)在上位計(jì)算機(jī),通信時(shí)必須由計(jì)算機(jī)按要求向PLC的HOST LINK 發(fā)出通信命令,然后才能由HOST LINK送回響應(yīng)信號(hào)。
  硬件通信連接示意圖如下:
  在組態(tài)軟件中設(shè)置如下:
  在設(shè)備窗口中雙擊添加的設(shè)備彈出如下對(duì)話框:
2. 自制控件的OLE方式
  MCGS用Active DLL構(gòu)件的方式來(lái)實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)程序,通過(guò)規(guī)范的OLE接口掛接到MCGS中,使其構(gòu)成一個(gè)整體,所以MCGS把設(shè)備驅(qū)動(dòng)程序叫做設(shè)備驅(qū)動(dòng)構(gòu)件。由于設(shè)備驅(qū)動(dòng)構(gòu)件和MCGS運(yùn)行在同一個(gè)進(jìn)程內(nèi),故設(shè)備構(gòu)件的運(yùn)行速度快,可靠性高,不存在傳統(tǒng)DDE方式連接設(shè)備驅(qū)動(dòng)時(shí)的數(shù)據(jù)流通不暢和數(shù)據(jù)傳輸速度慢等問(wèn)題。同時(shí),OLE是一個(gè)可擴(kuò)充的開(kāi)放標(biāo)準(zhǔn),用于實(shí)現(xiàn)不同軟件之間的相互操作,而不管軟件本身是使用什么編程語(yǔ)言。因此,只要遵守MCGS的接口規(guī)范,可以使用VB、VC、Delphi等語(yǔ)言來(lái)編制MCGS的設(shè)備驅(qū)動(dòng)程序。鑒于Visual Basic通用性和簡(jiǎn)單性,可以使用VB來(lái)開(kāi)發(fā)MCGS的設(shè)備驅(qū)動(dòng)程序.由于VB5.0以上版本是以二進(jìn)制碼來(lái)編譯執(zhí)行程序,其運(yùn)行速度已接近VC,完全能滿足設(shè)備驅(qū)動(dòng)構(gòu)件所需的速度要求。
  MCGS設(shè)備構(gòu)件的實(shí)現(xiàn)方法和原理與標(biāo)準(zhǔn)VB的ActiveDLL完全一致,但MCGS規(guī)定了一套接口規(guī)范,只有遵守這些接口規(guī)范的ActiveDLL才能用作MCGS的設(shè)備驅(qū)動(dòng)構(gòu)件。MCGS設(shè)備驅(qū)動(dòng)構(gòu)件必須具有如下5個(gè)屬性和8個(gè)方法:
  屬性:DevType 標(biāo)識(shí)設(shè)備的類(lèi)型
  屬性:DevStyle 標(biāo)識(shí)設(shè)備的類(lèi)別
  屬性:DevChannel 標(biāo)識(shí)設(shè)備的通道個(gè)數(shù)
  屬性:DevBaseIO 標(biāo)識(shí)設(shè)備所用IO的基地址
  屬性:DevIONumber 標(biāo)識(shí)設(shè)備所用IO地址的個(gè)數(shù)
  方法:GetDevName 讀取設(shè)備構(gòu)件類(lèi)型名稱(chēng)
  方法:GetDevHelp 調(diào)用設(shè)備構(gòu)件的在線幫助內(nèi)容
  方法:SetDevPage 調(diào)用設(shè)備的內(nèi)部屬性頁(yè)
  方法:InitNewDev 初試化設(shè)備的初始值
  方法:GetChlType 讀取設(shè)備構(gòu)件各通道的數(shù)據(jù)類(lèi)型和注釋
  方法:InitDevRun 運(yùn)行時(shí)對(duì)設(shè)備進(jìn)行初始化工作
  方法:RunDevCommand 執(zhí)行指定的設(shè)備命令
  方法:CollectDevDat 定時(shí)操作設(shè)備,采集或輸出數(shù)據(jù)
  開(kāi)發(fā)MCGS設(shè)備驅(qū)動(dòng)的過(guò)程,實(shí)際上就是根據(jù)設(shè)備的特性和含義來(lái)完成8個(gè)方法功能的編程過(guò)程。編寫(xiě)通訊子設(shè)備驅(qū)動(dòng)程序時(shí),主要使用的就是對(duì)串行端口進(jìn)行操作。MCGS根據(jù)驅(qū)動(dòng)程序的實(shí)現(xiàn)特點(diǎn),充分運(yùn)用32操作系統(tǒng)多任務(wù)多線程的優(yōu)勢(shì),把復(fù)雜的對(duì)串行端口的設(shè)置、初始化和讀寫(xiě)操作全部封裝在MCGS提供的串行通訊父設(shè)備中,在通訊子設(shè)備驅(qū)動(dòng)程序中只需調(diào)用父設(shè)備提供的標(biāo)準(zhǔn)串口讀寫(xiě)函數(shù),即可完成各種功能通訊子設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)編程工作。常用的函數(shù)有:ComOutDat、ComAllInDat、ComOutInDat等。
  下面以一個(gè)5個(gè)通道的接口卡為例,接口卡的跳線設(shè)置為:?jiǎn)味溯斎搿?~5V輸入量程、數(shù)碼轉(zhuǎn)換方式為單極性,要求本設(shè)備構(gòu)件能對(duì)5個(gè)通道的數(shù)據(jù)進(jìn)行采集。
  利用MCGS的高級(jí)開(kāi)發(fā)向?qū)?,生成一個(gè)獨(dú)立設(shè)備驅(qū)動(dòng)設(shè)備的源程序;假定工程名設(shè)為:MYPROGRAM,類(lèi)型名設(shè)為:我的工程;把屬性DevChannel中的值改為5;把接口GetChlType中的代碼改為:
Dim i As Long
For i = 0 To 4
Dat(i) = 2
msg(i) = "AD輸入"+format$(I+1,”0”)
Next i
在接口CollectDevDat中編制如下程序代碼:
Dim i as Long, high as Long, l ow as Long
For i=0 to 4
Outp mHandle, DevBaseIO, i ‘設(shè)置AD通道
Outp mHandle, DevBaseIO+1, 0 ‘啟動(dòng)AD轉(zhuǎn)換
Do ‘等待AD轉(zhuǎn)換結(jié)束
If Inp(mHandle, DevBaseIO + 2) < 128 Then Exit Do
Loop
high = Inp(mHandle, DevBaseIO + 2) And &HF ‘讀高4位
low = Inp(mHandle, DevBaseIO + 3) ‘讀低8位
dd(i) =( h * 256 + l)*5000/4096 ‘轉(zhuǎn)換為mV數(shù)
Next i
  編譯工程,得到DLL文件,把該文件拷貝到MCGS的program\drivers目錄下,即可完成本設(shè)備構(gòu)件的編程工作。設(shè)備只需連在相應(yīng)的串行口既可。
  在MCGS組態(tài)環(huán)境中,即可在設(shè)備管理窗口中使用新開(kāi)發(fā)的設(shè)備。
  在MCGS中設(shè)置如下:
  在設(shè)備窗口中雙擊添加的設(shè)備彈出如下對(duì)話框:
3. 直接進(jìn)行遠(yuǎn)端通訊
  計(jì)算機(jī)串行口是計(jì)算機(jī)和其它設(shè)備通訊時(shí)最常用的一種通訊接口,一個(gè)串行口可以掛接多個(gè)通訊設(shè)備(如一個(gè)RS485總線上可掛接255個(gè)ADAM通訊模塊,但它們共用一個(gè)串口父設(shè)備),為適應(yīng)計(jì)算機(jī)串行口的多種操作方式,MCGS組態(tài)軟件特采用在串口通訊父設(shè)備下掛接多個(gè)通訊子設(shè)備的一種通訊設(shè)備處理機(jī)制,各個(gè)子設(shè)備繼承一些父設(shè)備的公有屬性,同時(shí)又具有自己的私有屬性。在實(shí)際操作時(shí),MCGS提供一個(gè)串口通訊父設(shè)備構(gòu)件和多個(gè)通訊子設(shè)備構(gòu)件,串口通訊父設(shè)備構(gòu)件完成對(duì)串口的基本操作和參數(shù)設(shè)置,通訊子設(shè)備構(gòu)件則為串行口實(shí)際掛接設(shè)備的驅(qū)動(dòng)程序。
  將下位機(jī)單片機(jī)儀表設(shè)備組成單片機(jī)主從形式的多機(jī)通迅網(wǎng)絡(luò),然后將負(fù)責(zé)采集數(shù)據(jù)的主機(jī)單片機(jī)通過(guò)RS485總線連接到上位機(jī)PC的RS232接口,通過(guò)串行口通信方式將數(shù)據(jù)遠(yuǎn)傳送到上位機(jī),這樣可以用計(jì)算機(jī)直接對(duì)遠(yuǎn)端儀表設(shè)備進(jìn)行數(shù)據(jù)采集、檢測(cè)、控制、診斷和故障調(diào)試等。硬件連線如下:
  在MCGS中設(shè)置如下:
  在設(shè)備窗口中雙擊添加的設(shè)備彈出如下對(duì)話框.
  該種方法與第二種比要增加一個(gè)單片機(jī)主機(jī)做數(shù)據(jù)采集的,然后與組態(tài)王軟件來(lái)通信,單片機(jī)主機(jī)和從機(jī)的程序與第二種設(shè)計(jì)有所區(qū)別。
三、結(jié)束語(yǔ)
  用戶(hù)可以根據(jù)自己開(kāi)發(fā)工程項(xiàng)目的規(guī)模、特點(diǎn)來(lái)選擇相應(yīng)的通信方法,對(duì)于大的系統(tǒng)來(lái)說(shuō)可以前二者;如果是與少量單片機(jī)通信可以用后一種方法連接。相信隨著組態(tài)軟件MCGS的發(fā)展,還會(huì)有更多更好的單片機(jī)通信方式供用戶(hù)來(lái)選擇。
(摘自昆侖通態(tài)公司網(wǎng)站)

(轉(zhuǎn)載)

2024世界人工智能大會(huì)專(zhuān)題
即刻點(diǎn)擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會(huì)
專(zhuān)題報(bào)道