打造国内最大的IC交易平台
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
利用MCGS自带的智能模块与ARM进行通信的方法
类别:网文精粹  
 
Data communication realization for the ARM and MCGS

摘要:为了解决ARM与MCGS组态软件的数据通信,研究了一种直接利用MCGS自带的智能模块与ARM进行通信的方法。该方法利用智能模块已经写好的数据通信协议,按照这种模式通过串口直接与ARM进行数据通信。经研究与实验,得出这种方法简单易行,数据传输的速率和可靠性都能得到保证,为组态软件与ARM通信的解决提供了一种非常实用的方法。

关键字:ARM; MCGS组态软件; 通信

Abstract: one method that the intelligent module for MCGS and ARM carries on the correspondence is studied in order to solve data communication for ARM and the MCGS configuration software. Using the data communication protocol which already writes, configuration software communicates with ARM through the serial port according to this kind of pattern. After the research and the experiment, there is a conclusion that it is easy to perform for this method, the data transmission velocity and the reliability all can guarantee. one extremely practical method for configuration software and ARM correspondence solution is provided.

Keywords: ARM ; MCGS configuration software; communications

一、引言:

MCGS组态软件是一套功能丰富、简单易用的组态软件,大部分工程师都可以很容易的使用这套组态软件来完成一个完整的工程项目。但是,当用户熟练的掌握了这套组态软件以后,用户必然会寻求在这套组态软件上进一步开发的能力。以实现有自己风格的界面、自己设计的控制算法和与自己硬件相匹配的驱动程序。其他一些长期使用Visual Basic、C++、Delphi的高级工程开发人员,为了充分利用自己的编程特长和已有的程序积累,也希望能够把自己编写的程序装配到MCGS组态软件中。

以LPC系列为主的32位ARM控制器具有速度快,容量大,性能稳定,在线调试方便等优点,将ARM作为智能控制器应用于工业控制领域具有广阔的前景。ARM在工控领域的应用中,与组态软件的连接往往是经常需要解决的问题,用Visual Basic、C++、Delphi开发不同硬件的设备驱动程序是一种比较常用的方法,但必须有一定编程功底的软件开发人员才能比较顺利的开发,对于非计算机专业人员来说有一定难度,而且研发的时间也比较长。在最近的一个皮带秤匹料控制项目中,需要尽快解决ARM控制器与组态软件MCGS的通信问题,因此,研究了一种简单易行的方法,这种方法直接利用了MCGS自带的智能模块对硬件进行驱动,按照智能模块的数据通信格式完成ARM与MCGS组态软件的通信。本文主要通过MCGS组态软件中设备组态设置和ARM串口收发程序的设计来阐述设计过程。

二、MCGS组态软件中设备组态设置

MCGS设备组态是智能模块通过串口与ARM进行通信的第一步,首先必须对设备组态进行设置。打开设备窗口后先添加一个通用串口父设备,然后将ADAM-4017,ADAM-4021等模块添加到通用串口父设备中,再设置串口父设备的属性,其中初始工作状态设置1-启动,串口端口号,波特率等基本属性要设置正确。 最后设置各设备的基本属性,其中初始工作状态设置为0,设备地址可以任意给定,ARM根据地址号来区分不同模块发送的数据。

MCGS智能模块数据收发格式

本文主要以研华ADAM-4000系统模块为例来说明数据的收发格式。利用MCGS自带的驱动模块,按照一定的数据收发格式就可以比较容易完成ARM与MCGS组态软件的通信。比较常用的模块有:

ADAM-4017 8路模拟量输入模块;

ADAM-4021 模拟量输出模块;

ADAM-4052 8路开关量输入模块;

ADAM-4060 8路开关量输出模块。

ADAM-4017数据收发格式:

上位机发送格式 #地址号+回车(0x0d)例如:#07回车

下位机发送格式 +x..xx+两字符空格+x.xx+两字符空格 注:数据前加“+”或“-”,保留2位小数,数据之间留2空格。

例如: "+35.20 +7.50 +8.50 +4.33 +6.30 +3.33 +8.90 +4.50"

ADAM-4052数据收发格式:

上位机发送格式 $地址号(01-ff)+6+回车(0x0d)例如:$016回车 1号地址模块要接收8位开关量。

下位机发送格式 *(00-ff)+回车 例如:"*fe" "*01" 则分别对应8位开关量输入的状态。

三、ARM串口收发程序的设计

ARM通过串口RS232与MCGS进行数据通信, ARM串口程序的设计主要包括ARM串口收发主程序和串口接收中断服务程序,程序流程见图1和图2:

500)this.style.width=500;" border=0>

图1 ARM串口收发主程序流程图

主程序的思想是根据组态软件中各个智能模块的数据收发格式,在ARM判断收到相应的数据后,按规定数据发送格式向组态软件传送数据。主要包括串口的初始化;串口中断的初始化;数据转换即按照智能模块的数据格式,将要发送到组态软件的数据转化成规定的数据类型;设备的地址指的是设备组态中每个设备的基本属性一栏中对应的地址号;模块类型的判断主要是按照每个模块的数据发送格式进行模块的区分;操作数据即向组态软件发送数据。

500)this.style.width=500;" border=0>

图2 串口接收中断服务程序流程图

串口接收中断服务程序是利用ARM的串口接收中断,在中断响应过程中完成数据的保存和置中断标志位等工作。通过中断的方式保证了数据准确无误的接收,同时提高了程序运行效率。

四、结论

上位机组态软件设置好后,在设备组态的设备调试中可以和ARM联机调试,经大量的实验证明该方法简单可靠,能很快的解决ARM与MCGS组态软件通信的问题。ADAM-4017调试的正确结果如图3:

500)this.style.width=500;" border=0>

图3 ADAM-4017模块设备调试结果

上图表示在AD0—AD7 8个模拟输入通道都收到了数据,通讯状态标志值为0表示通信成功。

另外ADAM-4021 ,ADAM-4052 ,ADAM-4060等模块也可以通过同样的方式与下位机进行通信。

本文作者创新点:提供了一种ARM与MCGS组态软件数据通信的简单易行的方法,即利用MCGS自带的智能模块,按照它已经写好的数据通信格式,通过串口使ARM与MCGS组态软件进行可靠的通信。