MCGS软件与MCS51单片机多机通信的几种方法_第1页
MCGS软件与MCS51单片机多机通信的几种方法_第2页
MCGS软件与MCS51单片机多机通信的几种方法_第3页
MCGS软件与MCS51单片机多机通信的几种方法_第4页
MCGS软件与MCS51单片机多机通信的几种方法_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MCGS软件与MCS51单片机多机通信的几种方法Multi-machineSerialCommunicationMethodbetweenConfigurationSoftwareMCGSandMCS51SCMLiaoningMechanicAndElectricityProfessionTechnologyAcademyInformationlnstrumentliunaPostcode:118002[摘要]MCGS是目前较常见的一

种工业控制通用组态软件,可以利用它十分方便地构成了分布式系统的监控画面

动态显示控制设备的运行状态、实时、历时曲线和报表、上下限报警等。在该系

统中对于由多个MCS51单片机控制的下位机仪表,其工作由MCMulti-machineSerialCommunicationMethodbetweenConfigurationSoftwareMCGSandMCS51SCMLiaoningMechanicAndElectricityProfessionTechnologyAcademyInformationInstrumentliunaPostcode:118002[摘要]MCGS是目前较常见的一种工业控制通用组态软件,可以利用它十分方便地构成了分布式系统的监控画面,动态显示控制设备的运行状态、实时、历时曲线和报表、上下限报警等。在该系统中对于由多个MCS51单片机控制的下位机仪表,其工作由MCGS远程监控,充分利用计算机的资源进行各种管理。那么对于MCGS与MCS51单片机多机组成的系统如何设计其通信方式,本文介绍几种工程中可用的通信方法。[abstract]MCGSisthenormalindustryconfigurationsoftware.WecanuseittoconsistapictureofDCSsystem,itcandisplaythedevice'sdynamicmovingstate,themoment、historycurvesandreportshighandlowalarm。InthesystemmoreMCS51SCMisundercontrol,theMCGSremotecontroltheSCM,themethodcanusethepc'ssourcetomanagethematter.Sohowtodesignmulti-machineserialcommunicationmethodbetweenconfigurationsoftwareMCGSandMCS51SCM,thearticleintroducesomecommunicationmethod.[keywords]ConfigurationSoftwareVBSCMmulti-machineSerialCommunicationFuctionOLE一、引言在工业控制领域中,分布式监控系统常常采用计算机机为上位机、单片机做下位机的系统,这是一种经济、可靠、真观、合理的控制方式。组态软件MCGS是目前较常见的一种工业控制通用组态软件,是开发工程一非常有效的上位机工具软件,下位机采用单片机来开发的仪表,则具有计量精度高,功耗低,稳定可靠,成本低等特点。组态软件MCGS与MCS51单片机的通迅方法一般有三种:一、单片机通过PLC采集板卡、智能模块等设备实现通信;二、通过采用VB编制通信服务程序,利用串口通讯控件与单片机进行多机通信,利用OLE功能在服务程序和MCGS之间进行数据交换,从而实行了MCGS与单片机的多机通信。;三、通过使用MCGS嵌入版的串行口通迅函数进行PC机与单片机多机通信。前者实现简单,只需对的PLC或板卡做相应的设置即可;而后两种经济实用,省去了PLC、板卡、智能模块等设备,节约了资金,但是需要有一定的编程知识。二、通信方法PLC、板卡、智能模块方式 本文的实例为PC上位机与一级下位机OMRON系列PLC的通信。它与计算机之间的通信采用的是串行通信。PLC是以微处理器为基础,综合自动控制技术和通信技术发展起来的一种通用的工业自动控制装置,它具有体积小,功能强,程序设计简单,灵活通用,维护方便等一系列的优点,特别是它的高可靠性和较强的适应恶劣工业环境的能力使它成为大规模控制工程的理想下位机。OMRON系列中型PLC有SYSMACC200HX系例,拥有多种接口数字量输入,数字量输出,模拟量输入,模拟输出等,它带有两个RS-232接口,可通过RS-232C/RS-485转接器,挂在RS-485总线上,上位机PC通过转换器与总线相连,即构成具有分布式控制系统的远传数据采集网,其它仪表设备,只要是标准串口都可以类似方式直接或间接与系统连接。在组态软件MCGS中,欧姆龙PLC设备必须挂接在串口父设备下,串口父设备在“通用设备”目录中。串口父设备用来设置通信参数和通信端口。通信参数必须设置成与PLC的设置一样。否则就无法通信。欧姆龙PLC常用的通信参数:波特率9600,2位停止位,偶校验,7位数据位。通迅的主动权在上位计算机,通信时必须由计算机按要求向PLC的HOSTLINK发出通信命令,然后才能由HOSTLINK送回响应信号。自制控件的OLE方式MCGS用ActiveDLL构件的方式来实现设备驱动程序,通过规范的OLE接口挂接到MCGS中,使其构成一个整体,所以MCGS把设备驱动程序叫做设备驱动构件。由于设备驱动构件和MCGS运行在同一个进程内,故设备构件的运行速度快,可靠性高,不存在传统DDE方式连接设备驱动时的数据流通不畅和数据传输速度慢等问题。同时,OLE是一个可扩充的开放标准,用于实现不同软件之间的相互操作,而不管软件本身是使用什么编程语言。因此,只要遵守MCGS的接口规范,可以使用VB、VC、Delphi等语言来编制MCGS的设备驱动程序。鉴于VisualBasic通用性和简单性,可以使用VB来开发MCGS的设备驱动程序.由于VB5.0以上版本是以二进制码来编译执行程序,其运行速度已接近VC,完全能满足设备驱动构件所需的速度要求。MCGS设备构件的实现方法和原理与标准VB的ActiveDLL完全一致,但MCGS规定了一套接口规范,只有遵守这些接口规范的ActiveDLL才能用作MCGS的设备驱动构件。MCGS设备驱动构件必须具有如下5个属性和8个方法:属性:DevType标识设备的类型属性:DevStyle标识设备的类别属性:DevChannel标识设备的通道个数属性:DevBaselO标识设备所用IO的基地址属性:DevIONumber标识设备所用IO地址的个数方法:GetDevName读取设备构件类型名称方法:GetDevHelp调用设备构件的在线帮助内容方法:SetDevPage调用设备的内部属性页方法:InitNewDev初试化设备的初始值方法:GetChlType读取设备构件各通道的数据类型和注释方法:InitDevRun运行时对设备进行初始化工作方法:RunDevCommand执行指定的设备命令方法:CollectDevDat定时操作设备,采集或输出数据开发MCGS设备驱动的过程,实际上就是根据设备的特性和含义来完成8个方法功能的编程过程。编写通讯子设备驱动程序时,主要使用的就是对串行端口进行操作。MCGS根据驱动程序的实现特点,充分运用32操作系统多任务多线程的优势,把复杂的对串行端口的设置、初始化和读写操作全部封装在MCGS提供的串行通讯父设备中,在通讯子设备驱动程序中只需调用父设备提供的标准串口读写函数,即可完成各种功能通讯子设备驱动程序的开发编程工作。常用的函数有:ComOutDat、ComAllInDat、ComOutInDat等。下面以一个5个通道的接口卡为例,接口卡的跳线设置为:单端输入、0〜5V输入量程、数码转换方式为单极性,要求本设备构件能对5个通道的数据进行采集。 利用MCGS的高级开发向导,生成一个独立设备驱动设备的源程序;假定工程名设为:MYPROGRAM,类型名设为:我的工程;把属性DevChannel中的值改为5;把接口GetChlType中的代码改为:DimiAsLongFori=0To4Dat(i)=2msg(i)="AD输入"+format$(I+l,"0")Nexti在接口CollectDevDat中编制如下程序代码:DimiasLong,highasLong,lowasLongFori=0to4OutpmHandle,DevBaselO,i‘设置AD通道OutpmHandle,DevBaseIO+1,0‘启动AD转换Do‘等待AD转换结束IfInp(mHandle,DevBaseIO+2)<128ThenExitDoLoophigh=Inp(mHandle,DevBaseIO+2)And&HF‘读高4位low=Inp(mHandle,DevBaseIO+3)‘读低8位dd(i)=(h*256+l)*5000/4096 ‘转换为mV数Nexti编译工程,得到DLL文件MYPROGRAM.dll,把该文件拷贝到MCGS的program\drivers目录下,即可完成本设备构件的编程工作。设备只需连在相应的串行口既可。 在MCGS组态环境中,即可在设备管理窗口中使用新开发的设备。计算机串行口是计算机和其它设备通讯时最常用的一种通讯接口,一个串行口可以挂接多个通讯设备(如一个RS485总线上可挂接255个ADAM通讯模块,但它们共用一个串口父设备),为适应计算机串行口的多种操作方式,MCGS组态软件特采用在串口通讯父设备下挂接多个通讯子设备的一种通讯设备处理机制,各个子设备继承一些父设备的公有属性,同时又具有自己的私有属性。在实际操作时,MCGS提供一个串口通讯父设备构件和多个通讯子设备构件,串口通讯父设备构件完成对串口的基本操作和参数设置,通讯子设备构件则为串行口实际挂接设备的驱动程序。将下位机单片机仪表设备组成单片机主从形式的多机通迅网络,然后将负责采集数据的主机单片机通过RS485总线连接到上位机PC的RS232接口,通过串行口通信方式将数据远传送到上位机,这样可以用计算机直接对远端仪表设备进行数据采集、检测、控制、诊断和故障调试等。硬件连线如下:该种方法与第二种比要增加一个单片机主机做数据采集的,然后与组态王软件来通信,单片机主机和从机的程序与第二种设计有所区别。三、结束语用户可以根据自己开发工程项目的规模、特点来选择相应的通信方法,对于大的系统来说可以前二者;如果是与少量单片机通信可以用后一种方法连接。相信随着组态软件MCGS的发展,还会有更多更好的单片机通信方式供用户来选择。[其他]:MCGS软件与MCS51单片机多机通信的几种方法属性:DevType标识设备的类型属性:DevStyle标识设备的类别属性:DevChannel标识设备的通道个数属性:DevBaselO标识设备所用10的基地址属性:DevlONumber标识设备所用10地址的个数方法:GetDevName读取设备构件类型名称方法:GetDevHelp调用设备构件的在线帮助内容方法:SetDevPage调用设备的内部属性页方法:InitNewDev初试化设备的初始值方法:GetChlType读取设备构件各通道的数据类型和注释方法:InitDevRun运行时对设备进行初始化工作方法:RunDevCommand执行指定的设备命令方法:CollectDevDat定时操作设备,采集或输出数据开发MCGS设备驱动的过程,实际上就是根据设备的特性和含义来完成8个方法功能的编程过程。编写通讯子设备驱动程序时,主要使用的就是对串行端口进行操作。MCGS根据驱动程序的实现特点,充分运用32操作系统多任务多线程的优势,把复杂的对串行端口的设置、初始化和读写操作全部封装在MCGS提供的串行通讯父设备中,在通讯子设备驱动程序中只需调用父设备提供的标准串口读写函数,即可完成各种功能通讯子设备驱动程序的开发编程工作。常用的函数有:ComOutDat、ComAllInDat、ComOutInDat等。下面以一个5个通道的接口卡为例,接口卡的跳线设置为:单端输入、0〜5V输入量程、数码转换方式为单极性,要求本设备构件能对5个通道的数据进行采集。利用MCGS的高级开发向导,生成一个独立设备驱动设备的源程序;假定工程名设为:MYPROGRAM,类型名设为:我的工程;把属性DevChannel中的值改为5;把接口GetChlType中的代码改为:DimiAsLongFori=0To4Dat(i)=2msg(i)="AD输入"+format$(l+1,”0”)Nexti在接口CollectDevDat中编制如下程序代码:DimiasLong,highasLong,lowasLongFori=0to4OutpmHandle,DevBaselO,i‘设置AD通道OutpmHandle,DevBaseIO+1,0‘启动AD转换Do‘等待AD转换结束IfInp(mHandle,DevBaseIO+2)<128ThenExitDoLoophigh=Inp(mHandle,DevBaselO+2)And&HF‘读高4位low=Inp(mHandle,DevBaseIO+3)‘读低8位dd(i)=(h*256+1)*5000/4096‘转换为mV数Nexti编译工程,得到DLL文件MYPROGRAM.dll,把该文件拷贝到MCGS的program'drivers目录下,即可完成本设备构件的编程工作。设备只需连在相应的串行口既可。在MCGS组态环境中,即可在设备管理窗口中使用新开发的设备。在MCGS中设置如下:在设备窗口中双击添加的设备弹出如下对话框:3.直接进行远端通讯计算机串行口是计算机和其它设备通讯时最常用的一种通讯接口,一个串行口可以挂接多个通讯设备(如一个RS485总线上可挂接255个ADAM通讯模块,但它们共用一个串口父设备),为适应计算机串行口的多种操作方式,MCGS组态软件特采用在串口通讯父设备下挂接多个通讯子设备的一种通讯设备处理机制,各个子设备继承一些父设备的公有属性同时又具有自己的私有属性。在实际操作时,MCGS提供一个串口通讯父设备构件和多个通讯子设备构件,串口通讯父设备构件完成对串口的基本操作和参数设置,通讯子设备构件则为串行口实际挂接设备的驱动程序。将下位机单片机仪表设备组成单片机主从形式的多机通迅网络,然后将负责采集数据的主机单片机通过RS485总线连接到上位机PC的RS232接口,通过串行口通信方式将数据远传送到上位机,这样可以用计算机直接对远端仪表设备进行数据采集、检测、控制、诊断和故障调试等硬件连线如下:在MCGS中设置如下:在设备窗口中双击添加的设备弹出如下对话框.该种方法与第二种比要增加一个单片机主机做数据采集的,然后与组态王软件来通信,单片

机主机和从机的程序与第二种设计有所区别。三、结束语用户可以根据自己开发工程项目的规模、特点来选择相应的通信方法,对于大的系统来说可以前二者;如果是与少量单片机通信可以用后一种方法连接。相信随着组态软件MCGS的发展,还会有更多更好的单片机通信方式供用户来选择。Multi—machineSerialCommunicationMethodbetweenConfigurationSoftwareMCGSandMCS51SCMLiaoningMechanicAndElectricityProfessionTechnologyAcademyInformationInstrumentliunaPostcode:118002[摘要]MCGS是目前較常見的一種工業控製通用組態軟件,可以利用它十分方便地構成了分布式係統的監控畫麵,動態顯示控製設備的運行狀態、實時、曆時曲線和報表、上下限報警等。在該係統中對於由多個MCS51單片機控製的下位機儀表,其工作由MCGS遠程監控,充分利用計算機的資源進行各種管理。那麼對於MCGS與MCS51單片機多機組成的係統如何設計其通信方式,本文介紹幾種工程中可用的通信方法。[abstract]MCGSisthenormalindustryconfigurationsoftware.WecanuseittoconsistapictureofDCSsystem,itcandisplaythedevice'sdynamicmovingstate,themoment、historycurvesandreports、highandlowalarm0InthesystemmoreMCS51SCMisundercontrol,theMCGSremotecontroltheSCM,themethodcanusethe'pcssourcetomanagethematter.Sohowtodesignmulti-machineserialcommunicationmethodbetweenconfigurationsoftwareMCGSandMCS51SCM,thearticleintroducesomecommunicationmethod.[keywords]ConfigurationSoftwareVBSCMmulti-machineSerialCommunicationFuctionOLE在工業控製領域中,分布式監控係統常常采用計算機機為上位機、單片機做下位機的係統,這是一種經濟、可靠、真觀、合理的控製方式。組態軟件MCGS是目前較常見的一種工業控製通用組態軟件,是開發工程一非常有效的上位機工具軟件,下位機采用單片機來開發的儀表,則具有計量精度高,功耗低,穩定可靠,成本低等特點。組態軟件MCGS與MCS51單片機的通迅方法一般有三種:一、單片機通過PLC、采集板卡、智能模塊等設備實現通信;二、通過采用VB編製通信服務程序,利用串口通訊控件與單片機進行多機通信,利用OLE功能在服務程序和MCGS之間進行數據交換,從而實行了MCGS與單片機的多機通信°;三、通過使用MCGS嵌入版的串行口通迅函數進行PC機與單片機多機通信。前者實現簡單,隻需對的PLC或板卡做相應的設置即可;而後兩種經濟實用,省去了PLC、板卡、智能模塊等設備,節約了資金,但是需要有一定的編程知識。

二、通信方法PLC、板卡、智能模塊方式本文的實例為PC上位機與一級下位機OMRON係列PLC的通信。它與計算機之間的通信采用的是串行通信。PLC是以微處理器為基礎,綜合自動控製技術和通信技術發展起來的一種通用的工業自動控製裝置,它具有體積小,功能強,程序設計簡單,靈活通用,維護方便等一係列的優點,特別是它的高可靠性和較強的適應惡劣工業環境的能力,使它成為大規模控製工程的理想下位機。OMRON係列中型PLC有SYSMACC200HX係例,擁有多種接口數字量輸入,數字量輸出,模擬量輸入,模擬輸出等,它帶有兩個RS-232接口,可通過RS-232C/RS-485轉接器,掛在RS-485總線上,上位機PC通過轉換器與總線相連,即構成具有分布式控製係統的遠傳數據采集網,其它儀表設備,隻要是標準串口都可以類似方式直接或間接與係統連接。在組態軟件MCGS中,歐姆龍PLC設備必須掛接在串口父設備下,串口父設備在“通用設備”目錄中。串口父設備用來設置通信參數和通信端口。通信參數必須設置成與PLC的設置一樣。否則就無法通信。歐姆龍PLC常用的通信參數:波特率9600,2位停止位,偶校驗,7位數據位。通迅的主動權在上位計算機,通信時必須由計算機按要求向PLC的HOSTLINK發出通信命令,然後才能由HOSTLINK送回響應信號。

在組態軟件中設置如下:在設備窗口中雙擊添加的設備彈出如下對話框:自製控件的OLE方式MCGS用ActiveDLL構件的方式來實現設備驅動程序,通過規範的OLE接口掛接到MCGS中,使其構成一個整體,所以MCGS把設備驅動程序叫做設備驅動構件。由於設備驅動構件和MCGS運行在同一個進程內,故設備構件的運行速度快,可靠性高,不存在傳統DDE方式連接設備驅動時的數據流通不暢和數據傳輸速度慢等問題。同時,OLE是一個可擴充的開放標準,用於實現不同軟件之間的相互操作,而不管軟件本身是使用什麼編程語言。因此,隻要遵守MCGS的接口規範,可以使用VB、VC、Delphi等語言來編製MCGS的設備驅動程序。

鑒於VisualBasic通用性和簡單性,可以使用VB來開發MCGS的設備驅動程序.由於VB5.0以上版本是以二進製碼來編譯執行程序,其運行速度已接近VC,完全能滿足設備驅動構件所需的速度要求。MCGS設備構件的實現方法和原理與標準VB的ActiveDLL完全一致,但MCGS規定了一套接口規範,隻有遵守這些接口規範的ActiveDLL才能用作MCGS的設備驅動構件°MCGS設備驅動構件必須具有如下5個屬性和8個方法:屬性:DevType標識設備的類型屬性:DevStyle標識設備的類別屬性:DevChannel標識設備的通道個數屬性:DevBaselO標識設備所用10的基地址屬性:DevIONumber標識設備所用IO地址的個數方法:GetDevName讀取設備構件類型名稱方法:GetDevHelp調用設備構件的在線幫助內容方法:SetDevPage調用設備的內部屬性頁方法:InitNewDev初試化設備的初始值方法:GetChlType讀取設備構件各通道的數據類型和注釋方法:InitDevRun運行時對設備進行初始化工作方法:RunDevCommand執行指定的設備命令方法:CollectDevDat定時操作設備,采集或輸出數據開發MCGS設備驅動的過程,實際上就是根據設備的特性和含義來完成8個方法功能的編程過程。編寫通訊子設備驅動程序時,主要使用的就是對串行端口進行操作0MCGS根據驅動程序的實現特點,充分運用32操作係統多任務多線程的優勢,把複雜的對串行端口的設置、初始化和讀寫操作全部封裝在MCGS提供的串行通訊父設備中,在通訊子設備驅動程序中隻需調用父設備提供的標準串口讀寫函數,即可完成各種功能通訊子設備驅動程序的開發編程工作。常用的函數有:ComOutDat、ComAllInDat、ComOutInDat等。下麵以一個5個通道的接口卡為例,接口卡的跳線設置為:單端輸入、0〜5V輸入量程、數碼轉換方式為單極性,要求本設備構件能對5個通道的數據進行采集。

利用MCGS的高級開發向導,生成一個獨立設備驅動設備的源程序;假定工程名設為:MYPROGRAM,類型名設為:我的工程;把屬性DevChannel中的值改為5;把接口GetChlType中的代碼改為:DimiAsLongFori=0To4Dat(i)二2msg(i)=AD輸入+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论