1、,习题课,6-1 将图6-71梯形图简化并写出指令表,简化并不是形式越来越简单,而是逻辑简单!,简化主要方式是将复杂部分往左上角集中,6-2 根据图6-72梯形图程序绘制各点的时序图,自锁,自锁,6-3 图6-73 中已知DM0001= #6123,DM0002= #3332则 :,A #891b B ?110 0110 ?011 1111 C #2171,BCD /BCD与 BIN/BIN指令类似,下面以BIN/BIN为例说明其使用方法。,S: 源通道 R: 结果通道,功能:当执行条件为ON时,将S中的BCD码转换成二进制数,并将结果存入R中。,1. BCD码二进制数转换指令BIN/BIN,
2、4321转换为二进制数是 0100000011100001,LD 00000 MOV (21)# 4321200 BIN (23)200DM0000,源通道IR200中为BCD数4321。,转换后结果通道内容,写出图示语程序的句表、并分析功能。,本例只在00000 OFFON时转换一次。,2. 416 译码指令MLPX/ MLPX,S:源首通道 C:控制数据 R :结果首通道,C的含义,S中第一个要译码的数字位位号,固定为0,当执行条件为ON时,根据C的内容对S进行译码,并将结果存放中R中。,指令功能,译码方法, 由C确定被译码的起始数字位及译码的位数;, 将该位数字(十六进制)转换为015的
3、十进制数;, 再将结果通道中与该十进制数对应的位置为ON,其余位为OFF。, 被译码的数字位不能大于4。,第1个,第2个,第3个,C= # 0030,第4个,第1个,C= # 0023,结果通道的存放顺序,被译码的数字位要连续,从0位开始译码,对4位数字译码,从3位开始译码,对3位数字译码,使用译码指令MLPX举例,LD 00000 MOV (21)# 78F5200 MLPX (76)200# 0013HR 00,写语句表、分析程序功能,C=#0013,从第三位数字开始译码,对2个数字译码,HR00和HR01,(第3位第0位),译2个数字,存放结果需要2个通道,IR200:78F5,(续)译
4、码的原理,源通道(78F5)第3位数字是0111十进制数7,则以7为位号,将结果首通道HR00中的bit07置为1,源通道第0位数字是0101十进制数5,则以5为位号,将结果末通道HR01的bit 05置为1,对本例,如果C=#0023,即对3个数字译码,第3个被译码的是源通道的第1位数字。第3个译码结果存放在结果通道HR02中。, 执行一次指令,最多只能对4个数字译码。,例如 设C=#0023时,结果首通道设为HR18;设C=#0042 等,都是错误的。,使用译码指令MLPX 时需注意, 结果通道不能超过其所在区域。,3. 16 4 编码指令DMPX/ DMPX,S:源首通道 C:控制数据
5、R :结果通道,C的含义,R中接收编码的第一个数字位,固定为0,当执行条件为ON时,根据C的内容,对以S为首通道的几个通道进行编码,并将结果存放在R中。,指令功能,编码方法,由C确定被编码的通道数;,将被编码通道中为ON的最高位的位号编为一个十六进制数;,将该十六进制数送到R指定(由C指定)的数字位。,使用编码指令DMPX举例,LD 00000 MOV (21)# 0013220 DMPX (77)HR 00 DM0000220,写语句表、分析程序功能,C=#0013,从R的数字位3 开始存放结果,对2个通道进行编码,HR00和HR01,对两个通道编码,源通道 应为,设源通道HR00中内容为A
6、8E7(1010 1000 1110 0111),HR00中为1的最高位的位号是15十六进制编码F,将编码F放在结果通道DM0000的第3位数字位上。,设源通道HR01中内容为01BF(0000 0001 1011 1111),HR01中为1的最高位的位号是8十六进制编码8,将编码8放在结果通道DM0000的第0 位数字位上。,(续)编码的原理,第1个,第2个,第3个,C= # 0030,第4个,第1个,C= # 0031,结果的存放顺序,存放编码结果的位号要连续,第4个,原通道与编码结果的对应关系,若C=#0023(对3个源通道编码),第3个被编码的源通道应是HR02,第3个编码结果应放在D
7、M0000数字位1上。, 源通道不能超过其所在区域。,例如 设C=#0023时,源首通道设为HR18;设C=#0042 等,都是错误的。,使用编码指令DMPX时需注意, 源通道不能超过4个。,6-4 三队进行智力竞赛,每队三人,每队所在桌上有三个按钮(SB11,SB12,SB13;SB21,SB22,SB23;SB31,SB32,SB33)一个指示灯(分别为L1,L2,L3),主持人桌上有抢答开始按钮SBB和复位按钮SBE,三队分别为小学队、中学队和大学队,要求如下,编一PLC程序实现之。 (1)主持人按下抢答开始按钮SBB后才能抢答,任一队抢答成功其桌上灯亮,其余队再抢无效。主持人按复位按钮
8、后灯灭。 (2)小学队抢答成功的条件是三个按钮任何一个按下;中学队抢答成功的条件是三个按钮都按下;大学队抢答成功的条件是三个按钮都在主持人按下抢答开始按钮SBB的10秒钟内按下。 解:1、I/O分配I 点 SB11SB33 0000100009 SBB 00000 SBE 00010O点 L1L3 01001010032、程序设计,抢答状态,I 点 SB11SB33 0000100009 SBB 00000 SBE 00010 O点 L1L3 0100101003,小学队,中学队,大学队,启动状态,停止状态,启动状态 计时,停止状态 计时,输出 条件分析,6-5控制三台电机, 要求:启动时顺序
9、启动(M1M2M3),间隔10S; 停止时顺序停止 (M3M2M1) 间隔5S。 解:1、I/O分配I点 SB1(启动)00000 SB2(停止)00001O点 KM1KM3 01001010032、程序设计,6-6 广告牌上有8个字,每个字轮流显示1秒钟后8个字一起显示1秒,然后全灭,1秒钟后再从第一个字开始显示,如此循环。解:1、I/O分配 I SB1(启动) 00000 SB2(停止) 00001O 字18 01000010072、程序设计:,启动停止,停止信号 触发清零,赋初值,左移位,08位触发 一起显示,09位触发 全灭,6-8 检测一输油管道的流量。现使用流量传感器取出流量脉冲信
10、号,脉冲当量为20m3,已知瞬时流量的最大值约为2500 m3/h。10min没有流量脉冲信号则认为输油管道已关断。统计该输油管道24h的总流量(单位为m3,存入DM0001、DM0002通道)和检测到的瞬时流量(单位为m3/h,存入DM0003通道,每个流量脉冲信号检测一次,随时更新)。 解:1、I/O分配 I: 脉冲输入 00000 SB1(启动) 00001 SB2(停止) 00002O: 无2、程序设计:本程序中有以下几个环节:脉冲计数,脉冲间隔计时,判断是否关断,计算瞬时流量,计算24h总流量。,脉冲整定,累加,24小时计时,24小时流量,0.1秒计时,10分钟计时,关断信号,为计算
11、作准备,20/?h=720000/?0.1s,启动,单字BCD码乘法指令,瞬时流量,计算瞬时流量的思想:固定一个脉冲当量(72000),除以等着一个脉冲所计数的时间。,双字BCD码除法,6-9 设计一小车控制程序,要求起动后,小车从A位由左向右行驶。到每个位置后,均停车2s后自行启动;到达E位置后,小车直接返回A处,再重复上述动作。当每个停车位置均停车3次后,小车自动停于原位。,解:1、I/O分配 I点 SB1(启动) 00000 SB2(停止) 00006位置A-E 00001-00005O点 KM1(前进) 01000 KM2(后退)010012、程序设计:,启动;停止;计数停止,B、C、
12、D、E位触发,前进条件分析: 不在E位按下启动按钮;在A、B、C、D位停时间到为起始条件; B、C、D、E位触发为终止条件,启动后只要不在前进和后退就在计时,后退条件分析: 在E位计时时间到 为起始条件; 到A位为终止条件,停止,启动,A点,当每个停车位置均停车3次后,计数。,B,C,D,E,E,每个车位停车2s,前进,后退,E,A点,前进,后退,自锁,自锁,6-10 某生产线同时生产A、B、C三种规格的产品,用计长脉冲发生装置加以区别,已知产品A通过时发出100010个脉冲,产品B通过时发出200020个脉冲,产品C通过时发出250050个脉冲,若产品通过时发出的脉冲数不在以上三个区域内则为
13、废品。 编制PLC程序判断产品规格(A、B、C、废品)触发不同的推杆装置,将产品推入不同的包装箱(A、B、C)与废品箱中。(可用高速计数器中断功能P155) 解:1、输入输出分配:输入:脉冲输入00000;启动00001; 停止00002;有无产品 00003输出:推压器A,B,C,废品 01001010042、程序设计:设定DM6642= #0114(使用中断,软复位,递增记数),启动停止,建立中断 区域比较 数据区,有工件触发,登录一个区域 比较表,并启 动比较,非ABC调用废品子程序,A子程序,B子程序,C子程序,废品子 程序,有产品,启动,停止,清零,高速计数器复位标志,2、比较表登录
14、指令CTBL(63)/ CTBL(63)格式:CTBL P 符号:CS P:端口定义。其取值为000。 C:控制数据。其取值为000,001,002,003。 S:比较表开始通道。 取值范围IR、HR、AR、LR、DM、*DM。 执行区域比较中断时,比较结果存放在AR11通道的00-07位。 功能:当执行条件为ON时,根据C的内容,登录一个目标值比较表或区域比较表,并根据C的内容,决定启动比较的方式。 C是控制数据,其含义为: 1)C = 000:登录一个目标值比较表,并启动比较。 2)C = 001:登录一个区域比较表,并启动比较。 3)C = 002:登录一个目标值比较表,用INI启动比较。 4)C = 003:登录一个区域比较表,用1NI启动比较,