290 likes | 491 Views
产品合格率自动统计设计. 项 目 六. 一、项目说明. 如图所示,在产品检验完毕后,分别通过统计传感器计数,分别以 X 表示合格产品数,以 Y 表示不合格产品,那么合格率为: n=. 产品检验完毕后,分别通过合格品通道和不合格品通道,分别由合格品传感器 L1 和不合格品传感器 L2 检测并通过 PLC 计数器计数, PLC 每隔一分钟计算一次合格率,并判断:当合格率大于等于 90% 时点亮绿色指示灯,当合格率小于 80% 时点亮红色指示灯,当合格率在小于 90% 大于 80% 时点亮黄色指示灯。. 工作过程控制如下:. 二、项目分析.
E N D
产品合格率自动统计设计 项 目 六
一、项目说明 • 如图所示,在产品检验完毕后,分别通过统计传感器计数,分别以X表示合格产品数,以Y表示不合格产品,那么合格率为: • n=
产品检验完毕后,分别通过合格品通道和不合格品通道,分别由合格品传感器L1和不合格品传感器L2检测并通过PLC计数器计数,PLC每隔一分钟计算一次合格率,并判断:当合格率大于等于90%时点亮绿色指示灯,当合格率小于80%时点亮红色指示灯,当合格率在小于90%大于80%时点亮黄色指示灯。产品检验完毕后,分别通过合格品通道和不合格品通道,分别由合格品传感器L1和不合格品传感器L2检测并通过PLC计数器计数,PLC每隔一分钟计算一次合格率,并判断:当合格率大于等于90%时点亮绿色指示灯,当合格率小于80%时点亮红色指示灯,当合格率在小于90%大于80%时点亮黄色指示灯。 工作过程控制如下:
二、项目分析 本项目的特点是实现产品质量自动统计功能,是学习PLC基本功能指令的应用的综合项目,根据项目的要求,整个项目有2个任务完成: 任务1:合格率比较器 任务2:合格率计算器
【任务分析】 先将合格率数据传递给数据寄存器,当合格率大于等于90%时点亮绿色指示灯,当合格率小于80%时点亮红色指示灯,当合格率在小于90%大于80%时点亮黄色指示灯。 任务1:合格率比较器
任务要求: 设备每操作一次,计数器计数一次,当操作次数等于10次时,点亮红色指示灯,提示以到维护时间,当操作次数小于10此时,点亮绿色指示灯。 任务分析: 任务要求用计数器将设备操作次数记录,再将数值与10比较,在作相应输出控制。 示范案例1:设备维护提醒装置
示范案例设计过程 • 一、设计I/O接线图 • 操作按钮——X0,复位按钮——X1,红色灯L0——Y0,绿色灯L1——Y1。
【基础知识】 为了充分利用PLC中单片机的功能,拓展其应用范围,在基本指令的基础上,开发了一系列完成不同功能的子程序。调用这些子程序的指令称为功能指令。 一、功能指令的表示形式:FX00-FX□□□,功能指令可分为:⑴程序流控制指令 ⑵数据传送和比较指令 ⑶算术与逻辑运算指令 ⑷移位和循环指令 ⑸数据处理指令 ⑹高速处理指令 ⑺方便指令 ⑻外部输入输出处理指令 ⑼外部设备通信指令 ⑽实数处理指令 ⑾定位控制指令 ⑿实时时钟指令。
一、基本格式 • 操作码与操作数 • 操作码(指令助记符):表示指令的功能 • 操作数:指明参与操作的对象 • 源操作数S:执行指令后收据不变的操作数,两个或 两个以上时为S1、S2。 • 目标操作数D:执行指令后收据被刷新的操作数,两 个或两个以上时为D1、D2。 • 其它操作数m、n:补充注释的常数,用K(十进制) 和H(十六进制)表示,两个或 两个以上时为m1、m2、n1、n2。
二、软元件 • 软元件 • 位软元件:只处理开关(ON/OFF)信息的元件,如X、Y、M、D、S • 字软元件:处理数据的元件,如D。 • 位软元件的组合 • 位软元件组合表示数据:4个位元件一组,代表4位BCD码,也表示1位十进制数; • 用KnMm表示,K为十进制,n为十进制位数,也是位元件的组数,M为位元件,m为位元件的首地址,一般用0结尾的元件。
X0 MOV D0 D1 X1 D2 D4 DMOV 三、数据长度及执行方式 • 数据长度 • 16位:参与运算的数据默认为16位二进制数据 • 32位:32位数据时在操作码前面加D(Double (D0)→(D1) (D3D2)→(D5D4)
X0 MOV D0 D1 X1 D2 D4 MOVP 三、数据长度及执行方式 • 执行方式 • 连续执行方式:每个扫描周期都重复执行一次 • 脉冲执行方式:只在信号OFF→ON时执行一次,在指令后加P(Pulse)。
X0 MOV K8 V X1 K4 Z MOV X2 MOV D0V D10Z 四、变址寄存器V、Z • 变址:改变操作数的地址 • 变址寄存器的作用:存放改变地址的数据 • 实际地址=当前地址+变址数据 • 32位运算时V和Z组合使用,V为高16位,Z为低16位。 V=(8) Z=(4) (D8)→(D14)
X0 MOV D10 K100 五、传送指令 FNC12 MOV • 操作数 [S1]、[S1] : K,H、KnX、KnY、KnM、KnS、T、C、D、 V,Z [D]:KnY、KnM、KnS、T、C、D、V,Z • 梯形图 K100→(D10)
五、传送指令 FNC12 MOV • 说明 • 该指令将源操作数[S]中的数据传送到目标操作数[D]中去。 • MOV指令可以进行(D)和(P)操作。 • 如果[S]为十进制常数,执行该指令时自动转换成二进制数后进行数据传送。 • 当X0断开时,不执行MOV指令,数据保持不变。
六、移位传送指令 FNC13 SMOV • 操作数 [S1]、[S1] :K,H、KnX、KnY、KnM、KnS、T、C、D、 V,Z [D]:KnY、KnM、KnS、T、C、D、V,Z m1、m2、n:K、H • 说明 • 该指令将源操作数[S]的16位二进制数自动转换成4位BCD码,然后从右向左第m1位开始向右数m2位,传送到目标操作数(4位BCD码)的从右向左第n位开始向右数m2位的位置上,最后这4位BCD码自动转换成二进制数后送入目标操作数[D]中去。 • 传送中BCD码数值超过9999时程序出错。
1 2 0 1 0 2 3 3 X0 [S] m1 m2 [D] n 10 10 10 10 10 10 10 10 SMOV D1 K4 K2 D2 K3 b15 b0 D1 二进制 自动转换 D1 4位BCD码 保持 保持 D2 4位BCD码 b15 b0 自动转换 D2 二进制 六、移位传送指令 FNC13 SMOV • 梯形图 从D1右起第四位(m1 = K4)开始的2位 (m2 = K2) 数, 移到D2 的右起第 3位 (n = K3) 和第 2位, D2中的第 1 位和第 4位保 持不变 , 最后 D2 中的数自动变成二进制数.
七、取反传送指令 FNC14 CML • 操作数 [S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z [D]:KnY、KnM、KnS、T、C、D、V,Z • 说明 • 该指令把源操作数[S]中的数据各位取反(1→0,0→1)后传送到目标操作数[D]中去。 • 该指令可以16/32位数据处理和连续/脉冲执行方式
(D0) (K1Y0) X0 [S] [D] CML D0 K1Y0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 符号位 取反传送 1 0 1 0 保持不变 Y3 Y0 七、取反传送指令 FNC14 CML • 梯形图 若源操作数中的数为十进制常数时,将自动转换成二进制 .
D5 D10 X0 [S] D n D6 D11 BMOV D5 D10 K3 D7 D12 七、块传送指令 FNC15 BMOV • 操作数 [S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z [D]:KnY、KnM、KnS、T、C、D、V,Z n:K、H • 梯形图
七、块传送指令 FNC15 BMOV • 说明 • [S]为存放被传送的数据块的首地址;[D]为存放传送来的数据块的首地址;n为数据块的长度。 • 位元件进行传送时,源和目标操作数要有相同的位数。 • 当传送地址号重叠时,为防止在传送过程中数据丢失(被覆盖),要先把重叠地址号中的内容送出,然后再送入数据。如图所示,采用①~③的顺序自动传送。 • 该指令可以连续/脉冲执行方式。
X0 X1 BMOV K1M0 K1Y0 K2 BMOV D10 D9 K3 X2 M0 Y0 BMOV D10 D11 K3 M1 Y1 M2 Y2 M3 Y3 D10 D10 D11 D9 n = K2 D11 D11 D10 D12 M4 Y4 D12 D12 D11 D13 M5 Y5 M6 Y6 M7 Y7 七、块传送指令 FNC15 BMOV ① ② ③ ③ ② ①
X0 [S] D n BMOV K10 D0 K10 八、多点传送指令 FNC16 FMOV • 操作数 [S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z [D]:KnY、KnM、KnS、T、C、D n:K、H • 梯形图 把K10传送到D0~D9中去
(D0) (D1) X0 [D1] [D2] XCH(P) D0 D1 九、数据交换指令 FNC17 XCH • 操作数 [D1]、[D2]:KnY、KnM、KnS、T、C、D、V,Z • 梯形图 • 注意 交换指令一般要在脉冲方式执行,否则不能正常工作。
X0 [S] [D] BCD D10 K2Y0 X1 [S] [D] BIN K2Y0 D14 十、变换指令 FNC18 BCD FNC19 BIN • 操作数 [S]:KnX、KnY、KnM、KnS、T、C、D、V,Z [D]:KnY、KnM、KnS、T、C、D、V,Z • 梯形图
CMP K100 C10 M0 X0 [S1] [S2] [D] M0 K100<C10的当前值时,M0 = ON M1 K100=C10的当前值时,M1 = ON M2 K100>C10的当前值时,M2 = ON 十一、比较指令 FNC10 CMP • 操作数 [S1]、[S1] : K,H、KnX、KnY、KnM、KnS、T、C、D、 V,Z [D]:Y、M、S • 梯形图
十一、比较指令 FNC10 CMP • 说明 • 该指令是将源操作数[S1]和[S2]的中数据进行比较,结果送目标操作数[D]中去。 • [D]由3个元件组成,指令中[D]给出首地址,其它两个为后面的相邻元件。 • 当X0由ON→OFF时,不执行CMP指令,M0~M2保持断开前的状态,用复位指令RST才能清除比较结果。 • CMP是进行二进制代数比较。 • 可以32位二进制数比较和脉冲执行方式。 • 如果指令中指定的操作数不全、元件超出范围、软元件地址不对时,程序出错。
X0 [S1] [S2] [S] [D] ZCP K100 K120 C10 M0 M0 K100 > C10的当前值时,M0 = ON M1 K100≤ C10的当前值< 120时,M1 = ON M2 K120 <C10的当前值时,M2 = ON 十二、区间比较指令 FNC11 ZCP • 操作数 [S1]、[S1] : K,H、KnX、KnY、KnM、KnS、T、C、D、 V,Z [D]:Y、M、S • 梯形图
十二、区间比较指令 FNC11 ZCP • 说明 • ZCP指令是将源操作数[S]的数据和两个源操作数[S1]和[S2]的数据进行比较,结果送到[D]中,[D]为三个相邻元件的首地址。 • ZCP指令为二进制代数比较,并且[S1]<[S2],如果[S1]>[S2],则把[S1]视为[S2]处理。 • 当X0由ON→OFF时,不执行ZCP指令,比较结果保持不变,需要用复位指令才能清除。 • 该指令可以进行16/32位数据处理和连续/脉冲执行方式。