西门子模块6ES7221-1BH22-0XA8参数选型
西门子模块6ES7221-1BH22-0XA8参数选型
PLC的数据显示功能一直是困扰PLC使用的难题。在PLC的应用中,经常要监测一些重要数据,但PLC的数据显示通常是使用外部显示设备,如显示屏或触摸屏,而这些显示设备的价格一般比较昂贵,对一些小型系统来说更浪费。因此,如何显示PLC的数据,并尽可能做到高效率、高稳定性、抗干扰能力强、硬件投资少,是许多设计中需要考虑的问题。笔者使用的西门子S7-200 PLC中有专门的指令控制LED数码管显示,SEG IN,OUT指令就是将IN端输入字节的低4位确定的16进制数自动转换为相对应的7段LED数码管各段的代码,并送到输出字节OUT端显示。若采用静态LED数码显示,PLC显示一位十进制数据需要7个输出点予以控制,如果要显示n位数据,则需要7n个输出点。所以,使用这种方式对于显示数据的位数较多时,需要大量的输出点,而PLC的价格是以输入输出点数来计算的,这直接导致硬件成本的上升,鉴于此种原因,寻找一种廉价的显示技术就显得尤为必要。提出借鉴单片机的LED数码管动态扫捕显示原理,结合PLC周期性扫捕的特点,采用PLC直接输出数字量驱动数码管,将PLC开关量输出分为两部分,一部分用作数据输出,另一部分用作控制数码管公共端信号的输出。利用人眼的余辉效应,循环点亮每个数码管,本方法操作简单、成本低廉。
1 设计实现
所谓动态扫描就是利用PLC周期性扫描的特点,在编程时要做到每个周期只有一个数码管能够形成通电回路,从而得电点亮,因为一个扫描周期的时间过短,只有几十ms,所以人眼感觉每个数码管都是均匀通电亮着的,同时没有拖尾现象。
1.1 硬件设计
设计方法的硬件电路实现是一个起动按钮SB1和一个停止按钮SB2,两个数码管的a、b、c、d、e、f、g段分别连在一起,再与PLC的输出端Q0.0~Q0.7通过限流电阻连接,两个数码管的公共端com1和com2分别通过三极管由PLC的输出端Q1.0和Q1.1控制,其接线原理如图1所示。
由PLC输出端Q1.0和Q1.1的高低电平控制处于开关工作状态的三极管,使数码管com1和com2端循环与PLC公共端M导通输出,分时选中不同的数码管,由PLC输出端Q0.0~Q0.7输出相应的数据再根据公共端信号使相应的数码管a、b、c、d、e、f、g段显示。通过软件编程可实现用一组起停按钮控制两组数码管显示相应的数据。
1.2 软件设计
通过两个软件设计实现同一硬件电路不同功能的实例来阐述设汁的软件实现。
1.2.1 软件设计实例1
此程序实现0~99 s反复计数功能,按动SB1起动计数,按动SB2使计数停在计数所停位置,再按动启动按钮重新从0开始计数,计数到99后重新从0开始计数。该程序梯形图如图2所示。
以上软件对特殊存储器位SM0.5产生的1 s的时钟脉冲计数,使用PLC数据运算、传送、转换的功能指令传送、处理变化的计数数据,然后用段译码SEG指令驱动7段数码管,由两个定时器分别产生周期为200 ms、相互反相的时钟脉冲控制显示变化的计数数据。
1.2.2 软件设计实例2
此程序实现50 s功能,按动SB1起动计时,按动SB2停止计时,同时数码管熄灭,再按动启动按钮重新50 s,计时到0s时,数码管自动熄灭。
设计主要是将一个两位数分成两组数据分别在十位和个位数码管上显示,程序采用循环控制方式,则一个扫描周期显示一组数据,即两组数据循环显示。假设程序扫描周期为100 ms,定时器定时100 ms,那么每组数据的更新周期为100×2=200 ms,这样的显示频率足可以达到一般的工业控制要求,完全可以用作实时显示。同样,若显示多组数据,其数据线接法是一样的,只需增加控制数码管公共端信号的PLC输出点,PLC输出点数为7+n,n为数码管个数;软件稍加改动即可。笔者介绍的方法软、硬件设计均在实验室调试成功,完全满足设计要求,并且降低了硬件成本,取得了较好的效果。
随着计算机控制技术的不断发展,可编程控制器PLC的功能越来越强大,不仅具有各种各样的控制功能,还具有与其他设备通信联网的功能。与之相应,PLC的应用也日益普及,不仅被广泛应用于传统的逻辑控制、PID控制和变频调速等领域,还逐渐被用于数据采集、环境监控等领域。本方案介绍的分布式PLC监控系统采用分布式的构建方案,利用基于西门子PLC的实时测量技术对各设备的监控点数据进行采集、监测,以达到分散连接、集中监控的目的。在自由口模式下实现PLC与LCW系列数据存储器的通信,将监控数据完整的保存到存储器的SD卡中,弥补了PLC存储、管理大量数据能力不足的缺陷。通过此方案,用户可对各设备的监控数据和PLC的工作状态进行长期、有效的存储。
系统结构
PLC采用西门子S7-200PLC,是串行通讯方式为丰富的小型PLC,支持多种通信协议,如点对点接口协议(PPI协议)、多点接口协议(MPI协议)和PROFIBUS协议以及自由通信协议等。其中自由通信协议又叫用户定义协议,利用自由端口模式,可以实现用户定义的通信协议,连接多种智能设备,使用起来非常方便,在第三方工程接入中取得了巨大的成功。
PLC具有一定的数据存储功能,可防止因通信错误而出现数据丢失的情况,然而PLC存储、管理大量数据能力不足;另外在电源掉电或内存丢失后,PLC的系统时间会被初始化,这会使数据保存时间与实际时间不符,无法对监测数据进行长期有效的保存。
数据存储器采用广州乐诚电子科技有限公司提供的LCA3213数据记录仪,是一款可以替代PC机的便携式串口数据记录仪。采用嵌入式系统控制芯片,将串口RS-232/485输入的数据透明存储在SD卡中。数据存储器采用模块化设计,不需要用户对现有设备进行改造,实现数据实时存储。该产品已广泛使用于系统集成设备、自动化采集设备、高校、研究所重要实验装置“黑匣子”,是具有高度集成,高可靠性,低成本优势的数据存储产品。有如下功能:
a采用工业级高性能32位处理器,运用独特的动态内存分配管理算法,提高数据的处理能力,实现实时高速数据采集、持续数据记录和大容量数据存储的便携式数据存储记录仪。其高达100Kb/s的数据接收及存储能力,完全适应倾角传感器高速的,海量的数据存储。
b超低功耗设计,支持锂电池供电适用野外和移动状态下的数据存储环境。
c具有时钟功能,数据存储文件以当前的年月日自动命名;可根据用户的具体需要对接收到的每帧数据加入实时时间,方便后期数据处理。
d中文配置软件,通过串口可修改波特率、时钟校准等。
e可对仪器仪表采集设备发送轮询指令(根据用户需求定制)。
f存储器工作用的参数可以固化到处理器内的FLASH存储器中,不会发生参数丢失的问
题。固化的工作参数上电时自动调出。
基本组成图
LCW数据存储器与PLC通讯
数据存储器的串行口直接与S7-200PLC的RS-232/485口进行通讯,在自由端口模式下,PLC的串行通信接口由用户来控制,PLC相当于从站,数据存储器相当于主站。除了自发向数据存储器发送报警信息和连接保持信息外,一般都是接收到数据返回请求后,再向数据存储器发送数据。PLC接收完数据存储器发送来的数据后,触发端口0接收完成中断对数据包进行分析。如果是巡检命令,则将实时采样数据存储到巡检数据寄存器中,然后调用PackandSend子程序,设置好寄存器地址即可按照命令返回相应数据。PLC发送完成后触发端口0发送完成中断,将各标志位寄存器复位,为下一次通信做准备。
a)通信程序的实现
(1)根据用户的具体需求,数据存储器可主动发送轮询指令。采用串行口工作方式以数据存储器作为主机,向PLC进行呼叫,定期读取数据或者写入数据;将PLC返回的监控数据保存在SD卡中。其程序流程图参见图2。
单片机端通讯程序流程图
(2)PLC端程序流程图的实现。PLC端作为从机,采用梯形图或者STL编程,主要是先设置通讯协议,然后按照协议把采集到的数据进行处理,再发送给主机数据存储器,其具体的程序流程图如图3所示。
PLC端通讯程序流程图
数据分析
通过读卡器将SD卡中的监测数据导入电脑软件中,电脑软件根据实际业务需要设计相应的算法,对数据进行分析,以数据报表,图表等方式展现结果。
文中所述方案可以准确、可靠地测量恶劣环境下的现场数据并存储。数据存储器和PLC的采用不仅增大了系统的稳定性,而且还可以很方便地根据实际需要适当地增加或改变监控对象,对系统功能进行扩展。由于都采用模块化设计,所以对系统进行简单修改后即可用于其他工业监控应用中。实验表明,该方法能够稳定可靠地采集和存储数据,为中小规模监测系统的数据检测提供了一个可供参考的解决方案。
PLC是近四十年发展起来的现代工业控制技术,由于它把计算机的编程灵活、功能齐全、应用面广等优点和继电器系统的控制简单、使用方便、抗干扰能力强、价格便宜等优点结合起来,并且其本身具有体积小、功耗低、性能稳定等特点,因而在工业生产过程控制中的得到了广泛应用,被称为现代工业自动化的三大支柱(plc、 数控技术、工业机器人)之一。
对于输入输出点数比较少的系统可以不需要接口扩展;当点数较多时,需要进行输入输出扩展。不同公司的plc产品,对系统总点数及扩展模块数量都有限制,当扩展仍不能满足需要时,就不得不使用网络结构,这既增加了系统的复杂度,也提高了系统成本。
针对大量开关量信号输入的问题,以日本三菱公司的fx系列plc为例,本文设计了一种基于组扫描输入的plc开关量采集方法,借助于输入接口板,可以实现多个开关输入信号接入plc单个输入点,使用这种方法,对输入点数较多的控制系统,可以节省plc的输入点数,提高plc的信息采集效率效率,对降低控制系统成本具有重要意义。
硬件设计
对于工业现场中经常会用到的开关、按钮等开关量信号,通常按照图1的配线方法接入plc的输入点,该方法以com端作为所有开关量输入信号的公共端,每一个开关或按钮接入一个plc的输入点。
图1 常用开关量信号接入方法
为解决大量开关量信号输入问题,利用信号扫描原理控制工程网版权所有,设计了一种基于组扫描输入的plc开关量输入采集方法,硬件结构如图2所示。图中以16个开关量输入信号为例,这16个开关量输入信号被分为4组,分别接入四块接口板(每块接口板可接入4路信号,通过二极管输出)。通过接口板后,k1、k5、k9、k13均接入plc的x1输入端,依此类推,k2、k6、k10、k14均接入plc的x2输入端,k3、k7、k11、k15均接入plc的x3输入端,k4、k8、k12、k16均接入plc的x4输入端,16个开关量输入信号只占用了plc的4个输入端。
4块接口板分别由plc的4个输出y1~y4选通(用虚线画出),如当y1有效而y2~y4均无效时,接口板i被选通,此时k1~k4的信号被送入x1~x4,当y2有效而y1、y3、y4无效时,k5~k8的信号被送入x1~x4,另外两组信号的送入方法相同。在这种结构中,输出端y代替com作为公共端。
这样每个周期扫描4次,可分4次将16个信号送到plc的输入端,每次扫描过后在程序中将x1~x4的状态转移到其他位置。16个输入信号仅占用了4个输入端和4个输出端,节省了一半的plc输入输出点数,在实际使用中还可以根据需要进行灵活扩展,获得更高的使用效率。如若每块接口板上接8个开关量输入信号,4块板共接入32个输入信号www.cechina.cn,共占用plc的8个输入端,输出端仍然是4个。
设计时要注意接口板中二极管的选择,一定要选择质量高、稳定性好的二极管,如果出现二极管损坏或击穿的情况,将会出现输入信号不能被正确送入plc输入端或出现输入紊乱。另外输入信号的组数不宜过多,图2中是4组,若每次扫描时间间隔为100ms,则4次扫描的扫描周期是400ms,输入信号的延迟大可能达到400ms,若组数过多(如超过10组),会出现信号延迟导致系统的灵敏度下降。
图2 基于组扫描的plc开关量输入采集硬件结构
图3 软件流程图
软件设计
在软件设计中要考虑两个主要的问题。一是要定时输出单个扫描选通信号,用来选通相应的接口板控制工程网版权所有,二是要及时将扫描进来的数据转移到其他位置。在这种PLC输入设计方法中,在每个扫描周期,每组开关量信号中的一个依次送入一个plc输入端,这样就必须在下次扫描数据来临前将上一次扫描进来的开关量信号状态转移到其他位置保存。
图3为软件流程图,基于上述考虑设计的软件程序(梯形图)如图4所示。每次扫描时间间隔100ms,16个开关量信息采集到plc后分别送入m100~m115保存,指令ol和ref的含义分别是循环左移和输出刷新。
图4 支持多点扫描输入的plc输入软件实现
本文设计的一种基于组扫描输入的plc开关量采集方法,利用信号扫描原理,能有效解决工业现场中存在的大量开关量信号输入问题,该方法可以大大减少plc的输入点数,降低控制系统设计成本,系统结构稳定,扩展性、灵活性好,具有一定的使用价值和推广意义。