第五章 PLC的编程及应用 第一节 PLC编程特点和原则1 PLC的编程特点 梯形图编程是PLC编程中最常用的方法它源于传统的继电器电路图,但发展到今天两者之间有了较大的差别1. 程序的执行顺序 继电器梯形图和PLC梯形图执行顺序的比较 继电器梯形图 X1闭合后,Y1、Y2同时得电 PLC梯形图 X1闭合后,Y1先输出,Y2后输出 PLC程序的扫描执行结果 扫描执行方式优点:可滤掉高频干扰,增强抗干扰能力缺点:产生响应滞后,影响可靠性2. 继电器自身的延时效应X1闭合后, Y1、Y2在同一扫描周期内动作 X1闭合后,Y1、Y2在两个扫描周期内动作 X1动作时, Y1、Y2不同时得电与断电 X1动作时,Y0、Y1同时得电与断电 3.PLC中的软继电器 所谓软继电器是指PLC存储空间中的一个可以寻址的位 在PLC中,软继电器种类多、数量大 如FP1-C24,共有R内部继电器1008个,特殊继电器64个,定时器/计数器144个 寄存器中触发器的状态可以读取任意次,相当于每个继电器有无数个常开和常闭触点 3. 除步进程序外,任何线圈、定时器、计数器、高级指令等不能直接与左母线相连如果需要任何时候都被执行的程序段,可以通过特殊内部常闭继电器或某个内部继电器的常闭触点来连接。
4. 在程序中,不允许同一编号的线圈两次输出下面的梯形图是不允许的 利用内部特殊继电器实现常闭输出 利用内部继电器常闭接点实现常闭输出 5. 不允许出现桥式电路 注意:注意:触点应画在水平线上,不能画在垂直分支上6. 程序的编写顺序应按自上而下、从左至右的方式编写为了减少程序的执行步数,程序应为“左大右小,上大下小”如: 错误的桥式电路 桥式电路的替代电路 不符合上大下小的电路,共5步 符合上大下小的电路,共4步 不符合左大右小的电路,共5步 符合左大右小的电路,共4步 第二节 基本电路1AND运算 2OR运算例如:在锅炉控制过程中,无论是水罐的压力过高,还是水温过高都要产生声光报警 AND电路,Y0接受X1和X2的AND运算结果AND扩展电路,Y0接受块1和块2的AND运算结果 例如:只有当设备的状态为就绪状态,并且按下“开始” 按扭,设备才能开始工作OR扩展电路,Y1接受的是块1和块2的OR运算结果 OR电路,Y1接受的是X1和X2的OR运算结果 3自锁(自保持)电路 自锁电路分为:关断优先式和启动优先式 关断优先式自锁电路:当执行关断指令,X2闭合时,无论X1的状态如何,线圈Y1均不得电。
启动优先式自锁电路:当执行启动指令,X1闭合时,无论X2的状态如何,线圈Y1都得电 关断优先式自锁电路 启动优先式自锁电路 4互锁电路 互锁电路用于不允许同时动作的两个继电器的控制,如电机的正反转控制5时间电路 时间电路主要用于延时、定时和脉冲控制中 时间控制电路既可以用定时器实现也可以用标准时钟脉冲实现 在FP1型PLC内部有多达100个定时器和三种标准时 钟脉冲(0.01s、0.1s、1s)可用于时间控制 互锁控制电路 1. 延时电路 下图利用两个定时器组合以实现长延时 即Y0在X0闭合30秒之后得电 时间继电器TMX1起到延时300.1=3秒的作用 下图利用定时器串联实现长延时即Y2在X0闭合30秒之后导通2.脉冲电路 利用定时器可以方便地产生脉冲序列在上图程序的运行过程中,R0每隔3秒产生一次脉冲,其脉宽为一个扫描周期 在FP1的内部有七种标准的时钟脉冲继电器,分别为R9018(0.01s),R9019(0.02s),R901A(0.1s ),R901B(0.2s),R901C(1s),R901D(2s),R901E(1min)若需要这几种时间的脉冲,可直接利用这几个时间脉冲发生器。
6分支电路 分支电路主要用于一个控制电路导致几个输出的情况例如,开动吊车的同时打开警示灯 下图中,当X0闭合后,线圈Y1、Y2同时得电 第三节 PLC编程实例1电动机正反转控制1.系统结构 利用PLC控制一台异步电动机的正反转 输入端直流电源E由PLC内部提供,可直接将PLC电源端子接在开关上交流电源则是由外部供给PLC控制电动机正反转外部接线图 要求:黄按钮按下:电机正转蓝按钮按下:电机反转红按钮按下:电机停止2.系统的控制要求按动黄按钮时:若在此之前电机没有工作,则电机正转启动,并保持电机正转;若在此之前电机反转,则将电机切换到正转状态,并保持电机 正转;若在此之前电机的已经是正转,则电机的转动状态不变 电机正转状态一直保持到有篮按钮或红按钮按下为止按动蓝按钮时: 若在此之前电机没有工作,则电机反转启动,并保持电机反转;若在此之前电机正转,则将电机切换到反转状态,并保持电机 反转;若在此之前电机的已经是反转,则电机的转动状态不变 电机反转状态一直保持到有黄按钮或红按钮按下为止按下红按钮时:停止电机的转动 注:电机不可以同时进行正转和反转,否则会损坏系统3. PLC的 I/O点的确定与分配 4. 系统编程分析和实现 电机正反转控制PLC的I/O点分配表 PLC点名称连接的外部设备功能说明X0红按钮停止命令X1黄按钮电机正转命令X2蓝按钮电机反转命令Y0正转继电器控制电机正转Y1反转继电器控制电机反转电机初步正转控制电路 电机初步正反转控制电路 系统要求电机不可以同时进行正转和反转,如下图所示利用互锁电路可以实现。
利用正转按钮来切断反转的控制通路;利用反转按钮来切断正转的控制通路 电机正反转的互锁电路电机正反转的切换电路 当按下红按钮时,无论在此之前电机的转动状态如何,都停止电机的转动 利用红色按钮同时切断正转和反转的控制通路电机正反转的最终控制程序 2锅炉点火和熄火控制 锅炉的点火和熄火过程是典型的定时器式顺序控制过程 控制要求: 点火过程:先启动引风,5分钟后启动鼓风,2分钟后点火燃烧 熄火过程:先熄灭火焰,2分钟后停鼓风,5分钟后停引风 1.PLC的I/O点的确定与分配 锅炉点火和熄火控制PLC的I/O点分配表 PLC点名称连接的外部设备功能说明X0蓝按钮点火命令X1红按钮熄火命令Y0控制继电器1控制引风Y1控制继电器2控制鼓风Y2控制继电器3控制点火开关2.编程分析和实现(1)点火过程 工作过程: 当蓝按钮按下(X0接通)后, 启动引风(Y0输出因X0选用的是非自锁按钮,故需要利用自锁电路锁住Y0,同时利用Y0触发时间继电器T0,T0延时300s(5分钟)后,输出继电器Y1动作,即启动鼓风同时利用T0触发定时继电器T1,T1延时120s(2分钟)后,输出Y2,点火燃烧锅炉点火过程控制程序 (2)系统的点火和熄火过程的综合程序 下面所示的两个程序都可以实现锅炉系统的点火和熄火过程控制,但实现的方式不同。
图 (a)程序利用了4个时间继电器,但程序的逻辑关系比较简单易懂a) 锅炉系统点火和熄火过程的综合程序 图 (b)程序利用了2个时间继电器,节约了2个时间继电器,但控制逻辑相对复杂些 (b) 锅炉系统点火和熄火过程的综合程序3房间灯的控制 现在一些宾馆和家庭客厅中的装饰灯,是利用一个开关来实现不同的控制组合 例如,房间内有1,2,3号三个灯 按动一下开关,三个灯全亮; 再按一下,1,3号灯亮,2号灭; 再按一下,2号灯亮,1,3号灭; 再按一下全部灭 此控制是利用按动开关次数来控制各个灯的亮、灭,故可以用计数器来实现计数式顺序控制 房间灯控制PLC的I/O点分配表 PLC点名称连接的外部设备功能说明X0按钮开关命令Y1控制继电器1控制1号灯亮灭Y2控制继电器2控制2号灯亮灭Y3控制继电器3控制3号灯亮灭 房间灯计数式顺序控制程序 这里使用R9013是程序初始化的需要一进入程序,就把十进制数3赋给SV100从这以后R9013就不起作用了 在程序中使用微分指令是使X0具有非自锁按钮的作用 初始状态: EV100=3,R3通 Y1、Y2、Y3不通,3个灯全灭; 第一次接通X0:EV100=2,R2通 Y1、Y2、Y3全通,3个灯全亮; 第二次接通X0:EV100=1,R1通 Y1和Y3通,Y2断,故2号灭,1号和3号灯亮; 第三次接通X0:EV100=0,R0通 Y2通,Y1和Y3断,故2号亮, 1号和3号灯灭。
EV100=0时,若再次闭合X0,则计数器复位,灯全灭,程序从头开始重复以上过程 四、多地点控制 要求:在三个不同的地方分别用三个开关控制一盏灯,任何一地的开关动作都可以使灯的状态发生改变,即不管开关是开还是关,只要有开关动作则灯的状态就发生改变 三地控制一盏灯I/O分配 PLC点名称连连接的外部设备设备功能说说明X0A地开关在A地控制X1B地开关在B地控制X2C地开关在C地控制Y0灯被控对对象 从这个程序中不难发现其编程规律,并能很容易地把它扩展到四地、五地甚至更多地点的控制但其设计方法完全靠设计者的经验,初学者不易掌握三地控制一盏灯程序(1) 利用数字电路中组合逻辑电路的设计方法,使编程者有章可循 规定:输入量为逻辑变量,输出量为逻辑函数;常开触点为原变量,常闭触点为反变量这样就可以把继电控制的逻辑关系变成数字逻辑关系三地控制一盏灯逻辑函数真值表 X0X1X2Y000001111001111000110011001010101 真值表按照每相邻两行只允许一个输入变量变化的规则排列即三个开关中的任意一个开关状态的变化,都会引起输出Y0由“1”变到“0”,或由“0”变到“1” 由真值表写出输出与输入之间的逻辑函数关系式: 可设计出梯形图程序如下图所示:三地控制一盏灯程序(2) 使用高级指令可使程序更加简单。
下图为应用高级指令F132编写的控制程序 三地控制一盏灯程序(3) 上面的程序只要开关动作(不管开关是接通还是断开),即将Y0求反程序中每一开关使用了两个微分指令,既可检测上升沿又可检测下降沿,十分巧妙地实现了控制要求 对于这种编程方式,无论多少个地方,只要在梯形图中多加几个输入触点和几条微分指令就可实现控制要求 三地控制一盏灯程序(4)使用条件比较指令,只要(WXO)(WRO),就把YO 求反WXO)(WRO),使两个寄存器中内容完全一样只要WX0中的内容改变,YO的状态就立即变化 使用了字比较指令,故WXO中的16位都可以用来作为控制开关,使程序大大简化五、易拉罐自动生产线计数控制 在易拉罐自动生产线上,常常需要统计出每小时生产的易拉罐数量罐装好的易拉罐饮料一个接一个不断地经过计数装置假设计数装置上有一感应传感器,每当一听饮料经过时,就会产生一个脉冲 要求:编制程序将一天24小时中每小时生产的数量统计出来 易拉罐计数控制PLC的I/O点分配表 PLC点名称连连接的外部设备设备功能说说明X0蓝蓝按钮钮(自锁锁)启动动命令X1红红按钮钮(自锁锁)停止命令X2传传感器开关计计数脉冲易拉罐生产数量计数控制梯形图如下:R9013: 对程序初始化。
DT0DT3:存放一天24小时每小时生产罐的数量;SV: 记录每小时内的时间IX作为地址修正值,当F35指令的操作数地址发生移动时,移动量为IX中的值 如:当IX=0时,F35指令将DT0的内容加1;当IX=10时,则将DT10的内容加1 六、查找最大数 上例中,一天24小时内每小时生产的易拉罐数已分别存储在数据寄存器DT0DT23中编程找出其中最大的数,存入DT24中,并将最大数所在寄存器的编号存入DT50中 要求:X0的上升沿开始查找,找到后,输出Y0表示查找完成查找最大数据梯形图 查找数据中的最大数,只需将数据区中的数据进行两两比较即可索引寄存器IX:用作地址修正;R0:用来表示查找状态 未查找完时,R0一直接通,当查找结束时,R0断开。