jk9_2机床
www.jk9.org

摘要:本文介绍了一种基于51单片机构成的工业采集控制系统,此系统满足一般过程控制及数据采集等控制系统的需妻,可作为下位机并与labview或VB等编程系统组成的上位机通过RS232进行控制和数据采集,实践证明此系统不仅体积小、成本低,而且是一种运行可靠、安全、高速的控制系统。
关键词:MCS-51;数据采集;过程控制;labview

0 引言
近年来自动化控制领域日新月异,诸如PLC、DCS、PAC等控制系统层出不穷,但是诸如此类的控制系统的应用需要相对昂贵的成本,一方面为了方便客户使用,控制系统生产厂家极力推行自己的编程语言,而在科研领域,大部分科研人员都已熟练掌握了C语言、VB等编程语言,一些科研项目的建设完全没有必要采用PLC、DCS等动辄几万甚至几十万元的控制系统作为一次性的试验投入。因此本文介绍一种基于51单片机构成的工业控制采集系统,成本不足千元,并且可以满足相当一部分工业控制采集系统的需要。

1 系统组成
本系统由以下芯片组成:一片89C52单片机(限于篇幅,管脚说明见参考文献)、两片MAXl86AD采集、两片74HC573作为开关量输出锁存、两片74LS245作为开关量输入信号缓冲、一片MAX232C用于与上位机通讯。16个采集通道部分原理图如图l所示。


MAXl86CS片选信号接单片机P2.7口,P2口一共可以接四片MAXl86,分别接P2.7、P2.6、P2.5、P2.4,如果需要更多的模拟量采集则需要使用74HCl38来进行译码,以扩展单片机接口,不过系统运行速度会减慢。
开关量的输入采用74LS245进行缓冲,每片74LS245外部可以连接8个开关量输入信号,缓冲器74LS245的CS片选信号接单片机P3的空引脚,例如P3~5位,当需要更多的开关量输入信号时候可增加一片74LS245,将片选信号端接单片机P3口剩余的空引脚,如果空引脚不足,则需要将各片选信号接74HCl38译码器来根据需要扩展。
图2所示为一片74LS245组成的8个开关量输入通道。


开关量的输出采用74HC573进行锁存,每片74HC573可以输出8个开关量信号,通过三极管8150放大信号后驱动继电器线圈,如图3所示。


锁存器74HC573的选通信号由单片机P3~7位控制,锁存允许信号直接接地,在P3~7为O时锁存器输出为P0口数据,可利用单片机P3~6位控制另外一片74HC573的选通与否,以扩展开关量输出口。


通讯部分采用芯片MAX232C与上位机通讯,具体接线如图4所示。


此通讯电路仅能实现15m的通讯距离,如果需要更长距离通讯,则需先将信号转换为RS422全双工信号,在计算机一端再转换为RS232接入计算机即可。

2 编程环境及程序
本系统使用Keil V3.0作为编程环境(编程环境介绍见参考文献),MAXl86采集子程序如下:


开关量输入输出部分的程序在main函数中,由串口收到的上位机开关量状态数据直接作为单片机输出数据输出到P0口,P0各位作为一个开关量通过图3所示的放大电路驱动各开关量负载。单片机开关量输入数据直接发送回上位机回显单片机Pl口各位状态。

3 结束语
本系统通过PCB制板封装后,调试正常,16路数据采集正常,16路开关量输入、16路开关量输出正常,工作可靠安全,可脱离上位机单独使用。如果需要扩展输入输出端口,只需使用MODBUS协议将此套系统组成RTU设备网络即可实现。本系统不建议采用多片选通的方式增加输入输出口,这样系统执行速度会受到影响,采用STC89C52单片机一片不足5元,为了系统安全可靠的运行,所以采用多片单片机组成MODBUS网络来进行扩展可以增加系统可靠性,而且每个控制模块出现故障时不影响其他控制模块的正常运行和通讯。

0.48494601249695 s