基于MODBUS协议智能控制系统设计
引言
现场总线作为生产过程自动化发展的重点,对推动自动化技术起到巨大的推动作用,是现代化工业的标志。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函数中得到当前具体的时、分、秒,再将具体时间显示在横坐标相应位置,然后把数组中的所有数字以及每个数字所对应的时间的坐标点用线连接起来就构成了动态曲线图,动态曲线图如图5所示。
4 结束语
本系统由AVR单片机,数据采集模块,控制电路三部分组成。下位机采用C语言编程,上位机采用VC++6.O编程,以SQLever2000作为后台数据库,上位机与下位机之间采用RS-485总线通讯,研究并编写基于MODBUS协议的工控软件。实验测试表明,本系统实现了上下位机基于MODBUS协议的RS-485总线通讯,在下位机LCD和上位机VC界面显示数据值,在数据库中保存实际数据值,并且绘制实际数据曲线,实时显示数据误差不超过l℃。本控制系统符合工业控制系统设计的要求,有较好的扩展性和多功能的特点,可以扩展到255个设备多点的温度、湿度、压力、流量等数据监测控制,在橡胶、石油、冶金、食品加工、环境监测等工业自动化控制系统中可以取代工控仪表和PLC的检测和控制作用,开发具有自主知识产权产品并降低成本具有重要的现实意义,本文提出的方法对于采用MODBUS协议的智能控制系统的研究与开发也具有一定的理论研究和实用价值。
- AVR单片机SPI通讯实例程序(04-26)
- 基于ATMEGAl28的语音识别系统的设计实现(07-09)
- 基于AVR的数字滤波器滤除工频干扰的快速算法实现(07-17)
- 基于Modbus协议实现单片机与PLC之间的通讯(07-09)
- 基于Cortex-M3的MODBUS协议实现及其应用(06-18)
- PIC单片机与触摸屏串行通信的MODBUS协议实现(08-05)