随着工业自动化程度的不断提高,可编程序控制器(PLC)正在走入工矿企业的每一个角落,只要有控制要求的场合,就有PLC的应用。PLC常被称为全能“工业电脑”,用它可以方便地对工业现场进行实时控制。在工业电气控制系统中,经常遇到控制常数设定和修改的问题,例如:某加热控制系统加热时间常数的设定和改变问题。PLC改变控制常数的常用方法有两种,其一,通过上位计算机对原程序中控制数据进行修改;其二,利用外部装置输入数据,控制系统运行。即由外设将数据送入PLC,进行数据处理,对PLC内部参数进行修改,实现对工业设备的实时控制。第二钟数据输入方法,具有不修改原程序,数据输入方法简单、操作方便,能实现实时控制等优点,不仅适用于计算机设计人员使用,还适用于普通操作人员。在电气控制设备上,有着非常广泛的应用,并且许多厂家PLC产品都具有外部数据输入功能。利用PLC控制技术对外部BCD码数据进行输入,充分发挥工业控制计算机—PLC数值计算和处理能力的编程、控制方法,具有实际应用的推广意义。这里,以SIEMENS公司PLC构成的某加热系统为例,详细、具体地对加热时间常数外部数据输入方法及用户处理程序作以介绍。
1 BCD码数据外部输入应用设计举例
1.1 设计思路
介绍SIEMENS(西门子)公司PLCS7—200的物理存储区结构,一般情况下,物理存储区是以字节为单位的,存储单元为字节单元,操作数长度是字或双字时,标识符后给出的存储单元参数是字或双字内的低字节单元号。图1(a)给出了字节、字、双字的相互关系及表示方法。当使用数据宽度为字或双字时,应保证没有生成任何重叠的存储器字节分配,例如,字地址编码应采用MW10、MW12、MW14······等偶数字地址或MW11、MW13、MW15·······等奇数字地址,由于存储器字MW10占用MB10、MB11两个字节,而MW11则要占用MB11、MB12两字节,存在字节地址重叠单元MB11,字地址编码时奇偶不能兼用,以免造成数据读写错误。图1(b)给出数据存储结构,数据的高位用MSB表示,低位用LSB表示。
图1(a) 以字节单元为基准标记存储器单元 图1(b) 存储器中字节、字、双字之间的关系
以德国SIEMENS(西门子)公司的S7—200PLC为例。构成加热控制系统,加热时间采用三位十进制数的BCD码拨盘从PLC外部输入。PLC输入/输出接点分配如下表所示:
附表:PLC输入/输出接点地址分配
加热系统的加热元件用PLC输出点Q0.0控制,系统起动按钮由I1.4输入,复位按钮由I1.5输入。
图2(a) 主程序流程
图2(b) 子程序流程
这里选择两个字节的PLC输入映象寄存器IB0和IB1作为外部数据输入端,利用三个BCD码拨盘将外部数据分别置入IB0、IB1两个字节中。每个BCD码拨盘需用四位PLC输入点,如个位BCD码8421端分别接至PLC的I0.3、I0.2、I0.1、I0.0输入接点,分配PLC的输入接点IB0的低4位为BCD码的个位数、高4位为BCD码的十位数、IB1的低4位为BCD码的百位数、高4位为无效位。利用传送指令分别将个、十、百位数送入三个内部标志寄存器(或内部变量寄存器)保存,并将送入的十位、百位数分别乘以权10和权100,后将处理好的个位、十位、百位数相加,运算结果作为加热器的加热时间常数,PLC在用户程序初始化时,将其送入加热时间定时器中,对加热器加热时间进行实时控制,PLC在每次运行开始初始化程序中读取BCD码拨盘数据。这样采用改变外部拨盘的数据。即可以灵活地改变加热时间。
后,在图2程序流程中,介绍了外部数据输入处理过程的基本思路。
1.2用户处理程序
用户程序由主程序和初始化子程序组成,根据特殊标志位SMO.1在程序扫描时给出的脉冲信号,调用初始化子程序,实现BCD码的数据输入。这样,在其后的扫描周期中不再会调用该程序,这减少了扫描时间且程序更结构化。用户程序说明:(1)程序段一实现子程序调用功能;(2)段二和段三实现加热器加热控制功能,输出继电器Q0.0由I1.4置位、定时器T37或I1.5复位,定时器T37的计时常数由内部标志寄存器MW8置入;(3)段5—段9为BCD码数据输入、处理子程序。段六、七分别将个位、十位、百位送MW2、6和VW2保存。段八实现十位乘10,百位乘100,运算结果分别送入VD4和VD8功能,并且将个位、十位、百位数求和运算结果送入MW8作为加热器加热时间。(4)段九为子程序返回。PLCS7-200梯形图程序如图3所示。
图3(a)主程序
图3(b) 子程序
2 设计关键技巧和注意事项
设计技巧:是用BCD码拨盘,把加热器的加热时间值置成BCD码数,并用PLC的数据传送指令读入输入映象寄存器,进行运算后,作为控制加热定时器的预置值,从而达到实时控制。
注意事项:是应特别熟悉PLC物理寄存器内部结构,以便正确地确定BCD码数据输入位与PLC输入接点的关系,使之与定时器的时间常数相对应。本参考程序在PLC由STOP状态进入RUN状态时读入外部数据,故只能在STOP状态修改BCD拨盘数据。若需在程序运行其间更改数据时,只要将子程序调用条件稍加改动即可。
3 结束语
随着PLC技术在现代工业中的广泛应用,利用外部装置输入、修改控制数据的应用场合越来越多,PLC应用技术和技巧应迅速普及,以不断提高工业控制技术水平,提高劳动生产率,提高国民的生活水平和综合国力。以上,我们探讨的是一种简单而可靠的外部数据输入方法,可供专门从事PLC应用技术研究的工程技术人员参考。
一、实验目的
用PLC构成飞锯自控系统。
二、实验设备
YX-80系列PLC实训装置,
FX-20P手持编程器,或个人计算机(WINDOW ), SC-09编程线缆、FX-PCS/WIN编程环境
自控飞锯实验板
连接导线一套。
自控飞锯实验板的板的输入输出端子为特殊设计的端子,其功能为,当输出端M1为ON时,BV自动产生脉冲信号,模拟测量电动机转速的光码盘信号。当SQ1给出信号(发光管亮)表示允许飞锯切割钢管,SQS发光管亮表示飞锯完成了钢管的切割,飞锯抬起。SQ2发光管亮表示钢管的夹具可松夹,SQ3发光管亮表示小车可返回,液压阀SYA作用(发光管亮)使小车返回。SQ4亮表示小车没有返回,系统出现故障给出报警信号,即对应的报警发光管亮,整个系统出现停止状态。故障排除后,重新启动系统时,必须先按复位按钮,使电路从锁住状态恢复恢复正常状态。电磁阀4YA发光亮表示夹具紧钢管,3YA发光管亮表示夹具松夹,电磁阀lYA发光管亮表示下锯,2YA发光管亮表示飞锯抬起。电动机M1发光管亮表示送入钢管,电动机M2发光管亮表示飞锯旋转运行。
子程序在定义接口时:例如定义 IN : 名称SV_IN 数据类型WORD IN_OUT,OUT 也一样定义完后 保存时提示块接口已经改变,保存或装载时会导致参考他的块产生接口冲突 载入此块后有可能导致CPU停机,是否继续保存此块? 我的问题是 该不该保存, 影响不影响呢? 我查看帮助后 如何更正或避免错误:
帮助里面的解决办法是:在保存/下载接口改变之前,从将要改变的块中生成一个STL源文件以及所有直接或间接引用块。在所创建的源文件中保存所作的改变,并将修改后的源文件重新编译到块中。
看了后不太明白 有人能解释下么?怎样能把源文件编译到块中呢 怎样操作不回提示错误呢
答:这是为了程序运行的安全。尤其是PLC在运行时!当改变的输入输出接口后,直接下载后其他调用该FC的程序会因为接口变化而调用出错,报警,甚至于会停机!帮助的说明也就是要你注意这点,除了保存改动的FC块外,还要重新打开包含该FC的其他所有的块,并编译保存。这样才不会引起错误。
这也是西门子帮助文件的通病,看的时候需要琢磨一番。