基于MODBUS协议智能控制系统设计

2011-04-21 10:17:37来源:互联网

摘要:针对工业化生产的实际需求,改变工控仪表和控制器价格较高的现状同时降低成本,设计了基于MODBUS协议的智能控制系统。下位机由AVR单片机实现基于MODBUS协议的数据采集和显示,再通过控制电路控制数据变量;上位机用VC++6.0编写基于MODBUS协议的程序,实现数据在上位机界面显示,并且将采集的数据值保存到SQLsever2000数据库,同时绘制数据的动态曲线图,上下位机通过RS-485总线通讯。系统结构简单,成本低廉,具有一定实用价值。
关键词:AVR单片机;MODBUS协议;VC++6.0;SQLsever2000;RS-485总线

O 引言
现场总线作为生产过程自动化发展的重点,对推动自动化技术起到巨大的推动作用,是现代化工业的标志。MODBUS作为现场总线的一种通信协议,它实现了PLC控制器、工控仪表与设备间的通讯和信息交换。具有MODBUS功能的工控仪表虽然应用比较广泛,但是工控仪表和PLC控制器价格较高并且没有形成自主知识产权的产品,阻碍了它的进一步发展。本文从这个问题着手,设计基于MODBUS协议的单片机控制系统,设计合理,价格低廉,自主性强,在工业控制领域具有广泛的应用前景。

1 系统总体设计
系统中计算机PC作为主机,AVR单片机作为从机,采用RS-485工业现场总线通信。由于计算机的串口采用RS232总线标准,因此在主机的串行通信端口必须增加RS485-RS232电平转换器,在计算机串行端口由该电平转换器实现RS-232电平与RS-485电平转换,主机与从机通过MOD-BUS通信协议在RS-485总线上进行数据通信和交换,在整个RS-485总线上最多可以接255台从机。系统的总体结构如图1所示。


点击看大图

2 系统硬件设计
整个硬件电路包括:PC机、RS485-RS232电平转换器、电源、复位电路、晶振电路、AVR单片机控制系统。本系统上位机由PC机和串口组成,下位机由两个单片机控制系统组成。两个从机设备地址为01和02,每个单片机系统由Atmega32单片机,TSl2864A-3型LCD液晶显示器,传感器,PWM脉宽调制控制电路组成。下位机基于Atmega32单片机,通过传感器对采集数据再经过A/D转换后在LCD液晶屏显示,Atmega32单片机带有MAX485串口,通过RS-485总线与上位机通讯,系统的总体硬件原理图如图2所示。


点击看大图

3.系统软件设计
3.1 MODBUS通信协议
软件Modbua协议包括ASCII、RTU、TCP等,标准的Modbus采集器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、命令和应答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验。
在上位机监控界面上建立ADOData控件,ID为IDC_ADODCl,在通用属性的连接中输入服务器名称COMPUTER,选择数据库MASTER,点击测试连接,如果显示测试成功,表示连接SQLsever2000数据库成功。再在数据库中新建一个TABLEI表,表中包括时间,实际数据,设定数据字段,记录源的命令文本中SQL命令为select*from TABLEl;其次在监控界面上建立DataGrid控件,在datasource属性中选择IDC_ADODCl,与ADOData控件建立起联系,通过以上的步骤就实现了VC++6.O监控界面对数据库的访问。在VC++6.0环境完成程序编写,运行得到控制系统的数据显示界面如图4。


点击看大图

当上位机MODBUS串口程序把下位机的实际数据采集上来并显示界面中后,就可以对实际数据绘制动态曲线图。动态曲线横坐标是时间,纵坐标是实际数据值,两个坐标确定一个动态点。动态曲线的显示过程是把动态的数据值放到一个数组中,每采集一个新的数据值存放在数组的最低位,数组中的所有数据位向前移一位,最高的数据位移出;在MSCOMM控件OnOnCommMscomm函数中得到当前具体的时、分、秒,再将具体时间显示在横坐标相应位置,