32通道开关信号采集系统的设计与实现
摘要:针对现代工业控制系统中开关量控制的问题,提出通过上位机与控制板的通讯来实现对开关量控制的方法,以STC89C51单片机为核心,设计了一种带有RS485通讯接口的多路开关量控制板,实现了开关量信号采集、控制、显示、判断及执行相应操作功能。
关键词:开关量;RS485;STC89C51;控制模块
在现代工业控制系统中,各级设备的启动、停止,对整个系统的运行状况有着一定的影响,对这些装置开关量信号的采集、动作时序的记录也显得尤为重要。因此有必要设计一种开关量信号采集卡,来对这些信号进行采集,以便对设备运行状态、生产事故的检测和分析及查询提供依据。本文介绍的32通道开关信号采集卡采用增强型STC89C51单片机为核心,可对32路开关量输入信号进行采集,对开关量的跳变波形及发生时间进行实时测量,并将数据上传至上位机历史数据库。同时,可通过与上位机软件的配合对历史数据进行查询,以分析系统运行情况。
采集卡留有UART通讯接口,与控制器联网,将采集的数据输送到控制器处理后,冉发送到工作站显示状态,并同时记录事件发生的时间和状态,将记录的数据存入工作站历史数据库。
1 信号采集卡总体设计
采集卡在卡件主面板上以32通道LED灯指示通道信号状态,同时在通道与通道之间、通道与底板之间进行隔离,并实现了与现场的电磁屏蔽,以保证测量到的信号不受干扰。采集卡模块指标如表1所示。
同时,采集卡通过UART通讯接口,通讯物理层使用RS-485总线驱动芯片SN65LBC184,通讯协议采用modbus协议,与控制器联网,将所采集的数据发送到控制器中。
2 采集卡硬件设计
32通道开关量信号采集卡硬件电路由信号采集电路、单片机系统、通讯接口电路、外接引脚、人机接口五部分组成,其硬件电路结构示意图如图1所示。
2.1 开关量信号采集电路
开关量信号采集电路是实现将现场的各路开关量信号采集送入处理芯片内,实际设计中采用增强型STC89C51单片机。现场32路开关量信号接入卡件测量端子,由于考虑到现场信号的波动和干扰,为了保证系统稳定、可靠运行,防止各类现场及电源干扰对系统的影响,通道中采用了光电耦合器,将卡件内部与现场输入信号进行隔离,从而实现信号的准确测量。实际设计中,采用了TLP521—4型光电耦合器,卡件测量通路的结构框图如图2所示。经过光电耦合器隔离转化后的信号,通过双向总线驱动器与处理芯片的数据总线相连接,将数据送入处理芯片STC89C51中进行处理。
2.2 RS-485通讯电路
RS-485通讯电路的主要作用是将开关量输入数据上传给上位机,从上位机接收开关量输出数据,并和上位机保持实时通信。单片机串口信号TXD和RXD以及控制信号P4.2与SN65ALS176D连接。SN65ALS176D是SN5176行业标准范围内的差分数据线收发器。采用这类电路可提供可靠的低成本的直连(不带绝缘变压器)数据线接口,不需要任何外部元件,就可以完成将RS-485总线标准信号发送到Modbus网络中。
2.3 单片机系统
处理芯片选用增强型STC289C51,具有超强抗干扰能力,可抵抗4 kV快速脉冲干扰(EFT),抗静电能力强,超宽工作电压范围可达5.5~3.4 V(5 V单片机)。而且,内部电源供电系统经过特殊处理,大大的降低了电源带来的外部干扰。片上集成大容量的RAM (1280)个字节。趟低功耗,Power Down0.1μA,可外部中断唤醒,中断优先级可设置成4级(IP,IPH,并增加2个外部中断,Int2/P4.3,Int3/P4.2),还集成了8位A/D转换器。STC89C51的较小的封装和极低的功耗使其可理想地用于小型系统中,如访问、控制。同时,由于在系统运行中各种干扰等因素的影响,往往会引起程序运行出现死循环后跑飞现象,系统中还采用了内部的watchdog电路。
2.4 通讯接口电路
为了使测量卡件能够有效的将采集到的数据发送给控制器,卡件设计了UART串口电路。通过串口,卡件可根据上位机的操作命令,完成有关的数据传送、参数渊整和时钟校对等任务。卡件采用RS-485通讯,它是专为串行通讯模式设计的,输出端还接有稳压管保护电路,接口电路如图3所示。卡件模块及其外接电路引脚卡件通过专用引脚与卡件底板相连接,以传输采集到的信号。
2.5 人机接口
卡件采用串口通讯与控制器通讯,再将测量的信号上传到上位机,由上位机的组态画面显示,人机界面友好,数据可用于系统组态、历史数据查询等操作,同时可以实现过程控制SOE查询,通过与其配套使用的SOE软件,可实现去除抖动、削峰、削谷等功能,实现了SOE事故追忆和查询,其精度可达到1 ms级。
2.6 扩展接口
卡件带有扩展接口,可以扩展为64通道开光量信号采集卡或者32通道开关量信号采集和16通道开关量控制卡。
3 采集卡软件设计
卡件软件设计采用模块化结构。全部软件包括主程序、中断服务子程序等。其中主程序用来巡回检测和执行上位机送来的命令。中断服务子程序分为溢出中断子程序和串行口中断子程序,前者用于开关量跳变信号的采集,后者用于接收上位机发来的数据。
3.1 主程序
卡件上电后,进入主程序,流程图如图4所示。首先判断卡件是否为上电复位,如果不是上电复位,则通过死机恢复处理后直接进入巡回检测阶段:如果是上电复位,则先进行卡件自检及初始化,包括设置堆栈指针,清内存,设置时间常数等,然后允许中断,进入正常的巡回处理程序。可以通过参数设置,改变开关量跳变时间、状态采集等功能。如果在主程序中检测到程序中定义的接收数据标志位置位,表明单片机已接收到上位机发出的数据,接收数据过程由串行口中断子程序来完成。根据上位机的数据,测量卡件作出相应的响应,或回送数据,或参数设置。
- 模块电源和总线模块在脉冲电子围栏中的应用(06-26)
- 集中抄表系统数据采集器电源解决方案(09-25)
- 基于以太网的低温等离子体测控系统基于以太网的低温等离子体测控系统(08-21)
- 基于脉冲变压器的总线式RS485隔离器(12-23)
- 基于RS485的传收器雷击保护功能方案设计(03-05)
- RS485传收器实现强大的雷击保护功能(05-31)