引言
目前的PLC系统有时需借助于专用的人机界面(HMI)、工业PC来显示过程变量或设置系统参数。HMI和IPC不仅增加了PLC系统的成本,而且无法适应高温、高湿热、多粉尘的工作环境。如果使用PLC系统的I/O直接驱动数码管进行显示,则需要占用大量的PLC系统I/O资源。本文采用单片机和程序控制技术,通过特定的传输时序,只需使用PLC系统的2个I/O点即可实现其参数显示。
1 硬件设计
以STC89C51为核心实现的PLC系统两线连接型数显仪表的硬件组成如图1所示。整个硬件系统主要由STC89C51单片机、输入接口、程序下载接口、数码管显示驱动电路、按键输入(可选)和报警输出(可选)等部分组成。STC89C51和标准80C51保持硬件结构和指令系统兼容,提高了时钟速率,扩充了在系统编程(ISP)、在应用编程(IAP)、电源欠压检测与复位、看门狗复位等功能,其I/O口经过了特殊的设计,使其在工业控制环境中具有极高的可靠性[2]。
图1 PLC系统两线连接型数显仪表的硬件组成
1.1 PLC系统输入接口
PLC系统通过两个输出点将显示数据按照一定的时序传给数显仪表。PLC系统一般有继电器出、可控硅输出、晶体管输出和24V直流电压输出等多种形式可供选择,一般使用其晶体管输出或24V输出形式经过相应的转换电路连接数显仪表。为了适应两种输出形式,采用光电耦合器统一将PLC系统的输出信号转换为TTL电平信号。如果PLC系统的输出形式为24VDC,例如西门子的S7系列PLC,则PLC输出与光电耦合器输入侧的连接如图2所示。如果PLC系统的输出为晶体管集电极开路或漏极开路输出,如三菱的FX系列PLC,则PLC输出与光电耦合器输入侧的连接如图3所示。无论采用何种连接方式,转换后进入STC89C51单片机的信号逻辑都与PLC系统的输出逻辑保持一致。使用光电耦合器实现信号转换,有利于提高系统的抗干扰能力,因为干扰信号即使具有较高的电压幅值,但其能量相对较小,形成的微弱电流一般不足以使光电耦合器导通[3]。转换后的两路信号分别作为数据线和时钟线,连接到单片机的两个外中断输入引脚,便于使用中断方式传输显示数据。
图2 电压输出型PLC接口
图3 晶体管输出型PLC接口
1.2 程序下载接口
借助于ISP编程功能,可以通过RS-232C接口将程序代码从计算机下载到单片机内部的Flash中。程序下载接口一般设计为标准的RS-232接口,使用一片MAX232转换芯片即可实现。
1.3 数码管驱动电路
为了确保数码管的显示亮度,使用两片74HC245实现数码管的驱动。其中一片74HC245用于驱动4位共阴极数码管的段码,其输入和单片机的P0口连接,输出则经限流电阻限流后与4位数码管的8个段码引脚连接。另一片74HC245驱动4位数码管的位码,其输入和单片机的P1.0~P1.3连接,输出则分别和4位数码管的公共端连接。
2 传输时序
1台数显仪表和PLC实现数据传输时需占用PLC的2个输出点,分别用作数据线和时钟线。由于显示数据的传输是串行的,因此必须设计相应的传输时序。构建双方的传输时序时必须充分考虑PLC系统的工作原理、输出特性及其差异以及传输过程的可靠性等问题。综合考虑这些因素后所设计的传输时序如图4所示。传输1次显示数据总共需要21个时钟周期,其中3个时钟用于同步信号,16个时钟用于传输显示数据的4位BCD码或特定的提示字符,2个时钟用于传输2位表示小数点显示位置的信息。显示数据和小数点位置信息的低位在前,高位在后。例如,图4表示传输的显示数据为8951,小数点位置信息为10,表示小数点在十位之后,因此最终显示数据为895.1。
图4 数显仪表和PLC系统之间的传输时序
由于PLC系统基于扫描原理周而复始地刷新输入信号、执行用户程序和输出运行结果[4],在一个扫描周期内让PLC系统的输出信号发生跳变难于实现,因此图4的一个时钟周期需要占用PLC系统的两个扫描周期。每次传输过程增设3个同步脉冲是为了提高传输过程的可靠性,确保PLC系统及其传输线路无论出现何种故障,都可以在故障恢复后的一个传输周期内正确地传输显示数据。