PLC系统是应用极其广泛的工业自动化装置,但由于没有配套的数显仪表而无法显示其数据或参数。本文给出了只用两根I/O线连接PLC系统的数显仪表实现方案,详细介绍了基于STC89C51的硬件组成、时序设计、软件实现和应用方法。该数显仪表可以直接和晶体管输出或电压输出形式的各类PLC连接,实现PLC系统的数据或参数显示功能。
引 言
可编程逻辑控制器简称PLC(Programmable Logic Controller),具有编程简单、可靠性高、通用性强和使用方便等特点,广泛应用于工业控制中的各类生产过程。目前的PLC系统多用指示灯来显示生产过程或设备的状态信号,或借助于专用的人机界面(HMI)、工业PC来显示过程变量或设置系统参数。HMI和IPC不仅增加了PLC系统的成本,而且无法适应高温、高湿热、多粉尘的工作环境。基于LED的数显仪表具有环境适应性强、显示直观、醒目等优点,可以满足某些工业现场的特殊显示需求。然而,如果使用PLC系统的I/O直接驱动数码管进行显示,则需要占用大量的PLC系统I/O资源。本文采用单片机和程序控制技术,通过特定的传输时序,只需使用PLC系统的2个I/O点即可实现其参数显示。
1、硬件设计
以STC89C51为核心实现的PLC系统两线连接型数显仪表的硬件组成如图1所示。整个硬件系统主要由STC89C51单片机、输入接口、程序下载接口、数码管显示驱动电路、按键输入(可选)和报警输出(可选)等部分组成。STC89C51和标准80C51保持硬件结构和指令系统兼容,提高了时钟速率,扩充了在系统编程(ISP)、在应用编程(IAP)、电源欠压检测与复位、看门狗复位等功能,其I/O口经过了特殊的设计,使其在工业控制环境中具有极高的可靠性。
图1 PLC系统两线连接型数显仪表的硬件组成
1.1 PLC系统输入接口
PLC系统通过两个输出点将显示数据按照一定的时序传给数显仪表。PLC系统一般有继电器出、可控硅输出、晶体管输出和24V直流电压输出等多种形式可供选择,一般使用其晶体管输出或24V输出形式经过相应的转换电路连接数显仪表。为了适应两种输出形式,采用光电耦合器统一将PLC系统的输出信号转换为TTL电平信号。如果PLC系统的输出形式为24VDC,例如西门子的S7系列PLC,则PLC输出与光电耦合器输入侧的连接如图2所示。如果PLC系统的输出为晶体管集电极开路或漏极开路输出,如三菱的FX系列PLC,则PLC输出与光电耦合器输入侧的连接如图3所示。无论采用何种连接方式,转换后进入STC89C51单片机的信号逻辑都与PLC系统的输出逻辑保持一致。使用光电耦合器实现信号转换,有利于提高系统的抗干扰能力,因为干扰信号即使具有较高的电压幅值,但其能量相对较小,形成的微弱电流一般不足以使光电耦合器导通。转换后的两路信号分别作为数据线和时钟线,连接到单片机的两个外中断输入引脚,便于使用中断方式传输显示数据。
图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系统基于扫描原理周而复始地刷新输入信号、执行用户程序和输出运行结果,在一个扫描周期内让PLC系统的输出信号发生跳变难于实现,因此图4的一个时钟周期需要占用PLC系统的两个扫描周期。每次传输过程增设3个同步脉冲是为了提高传输过程的可靠性,确保PLC系统及其传输线路无论出现何种故障,都可以在故障恢复后的一个传输周期内正确地传输显示数据。
3、软件设计
数显仪表的程序由初始化、外中断0服务程序、外中断1服务程序和定时器T0中断服务程序4部分组成。T0每隔5ms中断1次,在其中断服务程序中根据接收到的显示数据及其小数点位置信息完成4位数码管的动态显示。外中断0服务程序用于检测同步信号,外中断1服务程序用于接收16位显示数据的BCD编码和2位表示小数点显示位置的信息。
3.1 外中断0服务程序
外中断0由数据信号线的下降沿触发,在其中断服务程序中,如果检测到时钟线为低电平,则视为同步信号。当检测到3个同步脉冲后,则表明收到了正确的同步信号,此时关闭外中断0,开启外中断1,借助于外中断1服务程序接收数据。如果在前一次或前两次中断服务程序中已检测同步脉冲而本次未检测到同步脉冲,则视为无效同步信号。外中断0服务程序的主要代码如下:
void Int0_Srvice(void) interrupt 0
{p33=1;
if(p33==0) SysClock++;//有效,同步脉冲加1
else SysClock=0;//无效,同步脉冲清零
if(SysClock==3)
{//检测到3个同步脉冲
RecEnable=1;//置允许接收标志
EX0=0;//关闭外中断0
EX1=1;//开放外中断1
}}
3.2 外中断1服务程序
外中断1由时钟信号线的下降沿触发,在其中断服务程序中,如果查询到已建立允许接收标志,则接收16位显示数据的BCD码和2位小数点位置信息,并将其转换为18位并行数据,存于DispData变量中供T0中断服务程序进行显示。由于显示数据和小数点位置信息都是低位在前,高位在后,所以在程序中使用右移操作实现串行数据到并行数据的转换。小数点位置信息为0~3时,表示小数点分别位于数码管的千位、百位、十位和个位之后。如果小数点在个位之后,则不显示小数点。当接收到18位信息后,则关闭外中断1,重新开放外中断0进行下一周期的数据传输。外中断1服务程序的主要代码如下:
void Int1_Srvice(void) interrupt 2
{if(RecEnable==1) //允许接收
{p32=1;//检测数据线电平
if(p32==1) RecData=RecData|0x40000;
RecData=RecData≥1;//实现串/并转换
DataClock++;
if(DataClock==19)//已接收到18位数据
{//显示数据存于DispData中
DispData=RecData;RecData=0;
SysClock=0;DataClock=0;
RecDone=1;RecEnable=0;
EX0=1;//开外中断0
EX1=0;//关外中断1
}}}
4、应用实例
利用PLC系统的(n+1)个输出点可以连接n台数显仪表,其中1点用作公共时钟线,n点用作n台数显仪表的数据线。使用数显仪表显示PLC系统的数据或参数时,还必须给PLC系统编写满足时序要求的驱动程序。
4.1 PLC驱动程序设计
此处以三菱FX2N PLC系统为例,介绍PLC系统驱动程序的编写方法。假设使用Y0作为数据线,Y1作为时钟线,则PLC驱动程序的梯形图如图5所示。程序中使用D0单元存放显示数据,其取值范围为0~9999,D1单元存放小数点位置信息,其取值范围为0~3。占用的资源包括计数器C0~C1和中间继电器M100~M131,可以结合用户程序进行相应的调整。
图5 FX2N PLC显示驱动程序
4.2 多台数显仪表与PLC系统的连接
多台数显仪表与PLC系统的连接中的1台FX2N PLC连接了8台数显仪表,PLC的Y10用作公共时钟线,Y0~Y7分别用作8台数显仪表的数据线。PLC系统的驱动程序和图5类似。由于多台仪表的时钟线是公共的,数据线是并行输出的,因此多台数显仪表的数据刷新时间和其连接的数量无关,可以确保PLC系统数据显示的实时性。
5、结 论
该数显仪表无需知晓任何PLC系统的协议,仅使用PLC系统的n 1个输出点即可实现在n台数显仪表上显示其数据或参数。占用较少的PLC资源,既可扩充PLC系统的外围显示设备,又间接地解决了HMI无法适应恶劣工作环境等实际工程问题。该仪表已应用于垃圾发电12路远程手操信号的显示,应用结果表明其具有极高的可靠性和良好的可维护性6ES7222-1EF22-0XA0诚信交易
PLC能够以内部集成功能控制型坯,实现吹管与传送装置的同步运行,对梭子进行线性定位,还能够控制30个区域的温度。
像大多数吹塑设备原始制造商(OEMs)一样,基于多元智能的R&B塑料机械有限公司(R&B)必须jingque协调各种机械的运动。他们的机器使用过闭环液压驱动器搭配专用运动控制卡件。这套方案不仅价格昂贵,而且难于协调。近,该公司成功地用常规PLC实现了吹塑机运动控制功能,这样做既提高了产量,又缩短了机器运转周期,还削减了生产成本。
R&B能够提供塑料机械、铸造、加工、以及切割系统的解决方案。他们提供的产品包括可编程控制器、触摸屏式操作界面、独立的型坯控制器、倾斜或水平机械、模件表面补偿压盘、机械切割机、单螺杆挤出机以及高精度的吹塑加工设备。
该公司还可以根据客户要求设计并定制设备,以满足各种生产需求。此外,他们还提供机器检验、安装/拆除、维修以及金属切割服务。
将运动控制集成到PLC程序使编程变得简单,而且提高了R&B塑料机械公司系列吹塑机的性能
用PLC实现运动控制
一种特殊的R&B吹塑机器有9根伺服液压驱动轴——3根用来控制型坯(把材料挤压成空心管或半球体,这是吹塑工艺的步),6根用来控制运动。这种机器包含2个梭子,2个模具,以及2根吹管。运转时,夹具反复打开和夹紧模具,吹管反复做上下运动,传送装置带动夹具至型坯正下方,到达吹气位置。
David Chin是NDC Technologies的技术人员,该公司是Siemens的战略合作伙伴,一同参与了R&B控制系统升级项目。Chin说:“R&B使用了标准的Siemens Simatic S7 PLC来控制这些位置运动。我们提供了一套功能模块,使R&B能运用PLC进行位置控制。其它的机器可能要使用运动控制器来控制运动,这是一种专用于伺服控制和定位的控制器。我们定制的功能模块能够达到与独立控制器相同的功能和性能。”
Chin说:“PLC通常很难做到高精度的伺服控制,这是专用运动控制器被广泛采用的原因。但是在我们的应用中,标准的Siemens S-7 PLC承担了运动控制功能,它通过液压驱动装置对各个部件进行定位。”
PLC还对30多个区域进行温度控制,这些区域包括加料斗、挤出机以及型坯顶部,其中12个区域既能加热又能冷却,另外18个只能加热。温控系统必须将机器各部分的温度误差范围控制在1度以内,型坯顶部要能够将料斗传来的冷塑料加热到415 °F。
常规PLC采用IEC-61131标准语言编写的功能模块控制所有的伺服液压系统驱动轴,它不需要特殊的运动控制环境。加入运动控制功能的PLC相对于专用PLC和独立的运动控制器而言,具有更出色的性能和更高效的处理能力。
集成型坯控制
R&B初希望通过PLC实现型坯控制。通常,吹塑机由机械控制器或基于PC的自动化设备控制,前者带有独立的型坯程序单元以及专用运动控制卡件;后者通过专用代码达到运动控制的要求。
然而,R&B希望将型坯程序集成到主机器控制器中。如果PLC的运算速度足够快,就能够实现这一目标。用于型坯控制的模拟数据直接从一个位置检测器输入,所有的处理过程都和普通PLC程序一样。终,驱动型坯吹塑的液压阀由PLC输出的模拟信号控制,整个过程不需要借助任何专用设备。
该公司随后把其余的伺服液压轴控制程序也集成到PLC中。位置检测器通过SSI模块把数据传送到PLC,如有需要,可以通过Siemens的Profibus Isochrone(等时)模式将SSI模块传来的位置数据与PLC程序同步,同样,液压阀都由标准的模拟输出信号控制。
另外,R&B还把控制吹管与传送装置运行的程序集成到PLC中。当传送装置将模子带动到吹管位置时,吹管就会按程序设定向下运动。由于两者(传送装置与吹管)的转轴实现了协调控制,这个过程很少出错且不用担心会产生碰撞。
在把这项功能集成到PLC之前,由于吹管和传送装置之间无法通信,R&B无法实现两者的同步。PLC的通信协议使两者首度实现了同步。
减少空循环时间
吹塑过程中,所有机器吹制或冷却一个瓶子的时间都相差无几。但是,在循环时间,尤其是空循环时间(机器不在吹瓶的时间)方面,机器之间存在差异。循环时间是指开始吹一个瓶到准备吹另一个瓶之间的全部时间。
PLC中的运动控制功能提升了协调空循环动作的水平,从而减少了特定动作之间的间隔时间。它们能依据位置而不是时间协调各种动作,这样就能大大减少空循环的时间,为R&B赢得了循环时间上的优势,其结果是可以节省下大约20%的空循环时间。
事实证明,采用基于常规PLC的自动化吹塑解决方案代替专用运动型坯控制器可以获得巨大的优势。由于所有的伺服功能都由一个功能模块控制,这意味着更好的协调性、更快的机器循环时间、更简洁高效的程序以及更精简的设备;另外,由于专用硬件都是小规模生产的,势必会产生质量控制和长期技术支持方面的问题,而且需要根据出现的问题修改设计,所有这些都会增加额外的经济投入。
事实证明,与基于PC的控制相比,基于PLC的自动化解决方案能为吹塑提供更有吸引力的成套控制设备,它们拥有更好的模块,使用了固态存储器,不需要第三方操作系统,使用寿命更持久,长期支持更出色。与PC相比,PLC的关键优势之一是在突然关闭的情况下依然能够保存数据(如断电情况)。
R&B Plastics的Jake Losee说:“现在我们采用一个控制器控制PLC功能和运动控制功能,以前使用独立运动控制卡时的通信延迟已经不存在了;而且,我们能记录每根轴的转动,以前我们使用独立软件时,需要了解专用运动控制卡的技术人员对其进行编程,现在,用户可以通过人机界面(HMI)自行完成这些工作。”
Losee还说:“我们的一个目标是精简设备。额外的设备意味着更高的成本、更繁琐的维护以及更多的配套软件,这就要求我们对维护人员进行更多的培训。用PLC集成运动和型坯控制确实是一个高度优化的控制方案。”
PLC系统是应用极其广泛的工业自动化装置,但由于没有配套的数显仪表而无法显示其数据或参数。本文给出了只用两根I/O线连接PLC系统的数显仪表实现方案,详细介绍了基于STC89C51的硬件组成、时序设计、软件实现和应用方法。该数显仪表可以直接和晶体管输出或电压输出形式的各类PLC连接,实现PLC系统的数据或参数显示功能。
引 言
可编程逻辑控制器简称PLC(Programmable Logic Controller),具有编程简单、可靠性高、通用性强和使用方便等特点,广泛应用于工业控制中的各类生产过程。目前的PLC系统多用指示灯来显示生产过程或设备的状态信号,或借助于专用的人机界面(HMI)、工业PC来显示过程变量或设置系统参数。HMI和IPC不仅增加了PLC系统的成本,而且无法适应高温、高湿热、多粉尘的工作环境。基于LED的数显仪表具有环境适应性强、显示直观、醒目等优点,可以满足某些工业现场的特殊显示需求。然而,如果使用PLC系统的I/O直接驱动数码管进行显示,则需要占用大量的PLC系统I/O资源。本文采用单片机和程序控制技术,通过特定的传输时序,只需使用PLC系统的2个I/O点即可实现其参数显示。
1、硬件设计
以STC89C51为核心实现的PLC系统两线连接型数显仪表的硬件组成如图1所示。整个硬件系统主要由STC89C51单片机、输入接口、程序下载接口、数码管显示驱动电路、按键输入(可选)和报警输出(可选)等部分组成。STC89C51和标准80C51保持硬件结构和指令系统兼容,提高了时钟速率,扩充了在系统编程(ISP)、在应用编程(IAP)、电源欠压检测与复位、看门狗复位等功能,其I/O口经过了特殊的设计,使其在工业控制环境中具有极高的可靠性。
图1 PLC系统两线连接型数显仪表的硬件组成
1.1 PLC系统输入接口
PLC系统通过两个输出点将显示数据按照一定的时序传给数显仪表。PLC系统一般有继电器出、可控硅输出、晶体管输出和24V直流电压输出等多种形式可供选择,一般使用其晶体管输出或24V输出形式经过相应的转换电路连接数显仪表。为了适应两种输出形式,采用光电耦合器统一将PLC系统的输出信号转换为TTL电平信号。如果PLC系统的输出形式为24VDC,例如西门子的S7系列PLC,则PLC输出与光电耦合器输入侧的连接如图2所示。如果PLC系统的输出为晶体管集电极开路或漏极开路输出,如三菱的FX系列PLC,则PLC输出与光电耦合器输入侧的连接如图3所示。无论采用何种连接方式,转换后进入STC89C51单片机的信号逻辑都与PLC系统的输出逻辑保持一致。使用光电耦合器实现信号转换,有利于提高系统的抗干扰能力,因为干扰信号即使具有较高的电压幅值,但其能量相对较小,形成的微弱电流一般不足以使光电耦合器导通。转换后的两路信号分别作为数据线和时钟线,连接到单片机的两个外中断输入引脚,便于使用中断方式传输显示数据。
图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系统基于扫描原理周而复始地刷新输入信号、执行用户程序和输出运行结果,在一个扫描周期内让PLC系统的输出信号发生跳变难于实现,因此图4的一个时钟周期需要占用PLC系统的两个扫描周期。每次传输过程增设3个同步脉冲是为了提高传输过程的可靠性,确保PLC系统及其传输线路无论出现何种故障,都可以在故障恢复后的一个传输周期内正确地传输显示数据。
3、软件设计
数显仪表的程序由初始化、外中断0服务程序、外中断1服务程序和定时器T0中断服务程序4部分组成。T0每隔5ms中断1次,在其中断服务程序中根据接收到的显示数据及其小数点位置信息完成4位数码管的动态显示。外中断0服务程序用于检测同步信号,外中断1服务程序用于接收16位显示数据的BCD编码和2位表示小数点显示位置的信息。
3.1 外中断0服务程序
外中断0由数据信号线的下降沿触发,在其中断服务程序中,如果检测到时钟线为低电平,则视为同步信号。当检测到3个同步脉冲后,则表明收到了正确的同步信号,此时关闭外中断0,开启外中断1,借助于外中断1服务程序接收数据。如果在前一次或前两次中断服务程序中已检测同步脉冲而本次未检测到同步脉冲,则视为无效同步信号。外中断0服务程序的主要代码如下:
void Int0_Srvice(void) interrupt 0
{p33=1;
if(p33==0) SysClock++;//有效,同步脉冲加1
else SysClock=0;//无效,同步脉冲清零
if(SysClock==3)
{//检测到3个同步脉冲
RecEnable=1;//置允许接收标志
EX0=0;//关闭外中断0
EX1=1;//开放外中断1
}}
3.2 外中断1服务程序
外中断1由时钟信号线的下降沿触发,在其中断服务程序中,如果查询到已建立允许接收标志,则接收16位显示数据的BCD码和2位小数点位置信息,并将其转换为18位并行数据,存于DispData变量中供T0中断服务程序进行显示。由于显示数据和小数点位置信息都是低位在前,高位在后,所以在程序中使用右移操作实现串行数据到并行数据的转换。小数点位置信息为0~3时,表示小数点分别位于数码管的千位、百位、十位和个位之后。如果小数点在个位之后,则不显示小数点。当接收到18位信息后,则关闭外中断1,重新开放外中断0进行下一周期的数据传输。外中断1服务程序的主要代码如下:
void Int1_Srvice(void) interrupt 2
{if(RecEnable==1) //允许接收
{p32=1;//检测数据线电平
if(p32==1) RecData=RecData|0x40000;
RecData=RecData≥1;//实现串/并转换
DataClock++;
if(DataClock==19)//已接收到18位数据
{//显示数据存于DispData中
DispData=RecData;RecData=0;
SysClock=0;DataClock=0;
RecDone=1;RecEnable=0;
EX0=1;//开外中断0
EX1=0;//关外中断1
}}}
4、应用实例
利用PLC系统的(n+1)个输出点可以连接n台数显仪表,其中1点用作公共时钟线,n点用作n台数显仪表的数据线。使用数显仪表显示PLC系统的数据或参数时,还必须给PLC系统编写满足时序要求的驱动程序。
4.1 PLC驱动程序设计
此处以三菱FX2N PLC系统为例,介绍PLC系统驱动程序的编写方法。假设使用Y0作为数据线,Y1作为时钟线,则PLC驱动程序的梯形图如图5所示。程序中使用D0单元存放显示数据,其取值范围为0~9999,D1单元存放小数点位置信息,其取值范围为0~3。占用的资源包括计数器C0~C1和中间继电器M100~M131,可以结合用户程序进行相应的调整。
图5 FX2N PLC显示驱动程序
4.2 多台数显仪表与PLC系统的连接
多台数显仪表与PLC系统的连接中的1台FX2N PLC连接了8台数显仪表,PLC的Y10用作公共时钟线,Y0~Y7分别用作8台数显仪表的数据线。PLC系统的驱动程序和图5类似。由于多台仪表的时钟线是公共的,数据线是并行输出的,因此多台数显仪表的数据刷新时间和其连接的数量无关,可以确保PLC系统数据显示的实时性。
5、结 论
该数显仪表无需知晓任何PLC系统的协议,仅使用PLC系统的n 1个输出点即可实现在n台数显仪表上显示其数据或参数。占用较少的PLC资源,既可扩充PLC系统的外围显示设备,又间接地解决了HMI无法适应恶劣工作环境等实际工程问题。该仪表已应用于垃圾发电12路远程手操信号的显示,应用结果表明其具有极高的可靠性和良好的可维护性