390 likes | 487 Views
M0.0. CMP ==I. Q 5.7. IN1. IW0. IN2. IW2. T4. I 0.7. S_ODT. Q4.5. Q. S. BI. S5T#35s. MW0. TV. I 0.5. QW6. R. BCD. 数字指令. M0.0. CMP ==I. Q 5.7. IN1. IW0. IN2. IW2. T4. I 0.7. S_ODT. Q4.5. Q. S. BI. S5T#35s. MW0. TV. I 0.5. QW6. R. BCD. 数字指令. 目标.
E N D
M0.0 CMP ==I Q 5.7 IN1 IW0 IN2 IW2 T4 I 0.7 S_ODT Q4.5 Q S BI S5T#35s MW0 TV I 0.5 QW6 R BCD 数字指令
M0.0 CMP ==I Q 5.7 IN1 IW0 IN2 IW2 T4 I 0.7 S_ODT Q4.5 Q S BI S5T#35s MW0 TV I 0.5 QW6 R BCD 数字指令
目标 学习了本章之后,你将 ... ... 熟悉INT、 DINT、 REAL数据类型和BCD显示 ... 能够在“Monitor / Modify Variable”测试功能中选择显示格式 ... 懂得“装载” 和“传送”指令 ... 能够为解决问题使用和编程S5计数器功能 ... 能够为解决问题使用和编程S5定时器功能 ... 能够为解决问题使用和编程转换指令INT <-> BCD ... 能够为解决问题使用和编程比较指令 ... 能够为解决问题使用和编程基本算术功能
0 8 1 5 V 2 4 8 0 要求, 处理和输出数据 过程操作 和监视 拨轮按钮, 电位器, 7段显示 操作面板 控制 单元 处理数值 例如 MPI AI/AO DI/DO 例如 PROFIBUS 现场装置 过程控制器
HEX: W#16# HEX: W#16# 0 F 2 D 6 9 A 6 BIN.: 2# 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 符号 正数 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BIN.: 2# 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 符号 负数 整数 (INT, 16位整数) 数据类型 数值范围-32768 至 +32767 (不带符号: 0 to 65535) 算术运算:例如 + I, * I, <I, ==I 显示格式: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DEC: +662 不带符号 +29 27 6 x 160 = 6 +24 9 x 161 = 144 +22 +21 2 x 162 = 512 + 662 662 DEC: - 662 -215 不带符号 +214 +213 10 x 160 = 16 +212 6 x 161 = 96 +211 13 x 162 = 3328 +210 +28 +26 +25 +23 +21 15 x 163 = 61440 以补码表示 - 662 64874
0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 HEX: DW#16# F F F 7 B F 7 7 (不带符号) 31 31 30 30 29 29 28 28 27 27 26 26 25 25 24 24 23 23 22 22 21 21 20 20 19 19 18 18 17 17 16 16 15 15 14 14 13 13 12 12 11 11 10 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 双整数(DINT, 32位整数)数据类型 数值范围L# -2147483648 至 L#+2147483647 (不带符号: 0 to 4294967295) 算术运算:例如+ D, * D, <D, ==D 显示格式: DEC: L# +540809 BIN.: 2# 符号 正数 HEX: DW#16# 0 0 0 8 4 0 8 9 (不带符号) DEC: L# -540809 BIN.: 2# 符号 负数 以补码表示
f = 尾数 (23 Bit) e = 指数 (8 Bit) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 2-1 2-2 2-3 2-4 ..... 实数 (浮点数, 32位)数据类型 数值范围-1.175495•10-38 至 3.402823•10+38 算术运算:例如+ R, * R, <R, ==R sin, acos, ln, exp, SQR 实数的标准格式 = (Sign) • (1.f) • (2e-127) 举例: 7.50000e-001 (7.5 * 10-1 = 0.75) 实数的符号 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 26 25 24 23 22 21 20 2-23 实数= +1.5 * 2 126-127= 0.75
0 x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 BIN.: 2# 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 用于输入和输出整数的 BCD 码 数值范围16 Bit: - 999 至 + 999 32 Bit: -9999999 至 + 9999999 转换操作:BTI, BTD, ITB, DTB (不是算术运算!) 0 2 9 6 16 Bit: 符号(+) 2 9 6 6 DEC: +662 HEX: W#16# 0 2 9 符号 (+) 0 0 0 0 2 9 6 32 Bit: BIN.: 2# 0 0 0 0 2 9 6 DEC: +662 HEX: DW#16#
LAD FBD STL MOVE MOVE L +5 T MB5 EN ENO EN OUT MB5 5 IN OUT MB5 5 IN ENO 数据装载和传送 (1) 装载举例 L +5 // 16-位常数 (整数) L L#523123 // 32-位常数 (双整数) L B#16#EF // 十六进制字节 L 2#0010 0110 1110 0011 // 16-位二进制值 L 3.14 // 32-位常数 (实数)
Y X Y X Y X Y X Y X X Y X Y X Y 0 0 0 0 0 0 0 0 0 0 0 0 C A F E C A F E A F F E 数据装载和传送(2) ACCU1内容 ACCU2 内容 程序 X X X X X X X X : : L W#16#CAFE L W#16#AFFE : : :
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ACCU1内容 31 23 15 7 0 MB0 31 23 15 7 0 MB0 MB1 31 23 15 7 0 MB0 MB1 MB2 MB3 数据装载和传送(3) 程序 L MB 0 装载 L MW 0 L MD 0 T QD 4 QD 4 传送 T QW 4 QW 4 T QB 4 QB 4
LAD FBD STL A I0.4 CU C5 A I0.5 CD C5 A I0.3 L C#20 S C5 A I0.7 R C5 L C5 T MW4 LC C5 T QW6 A C5 = Q4.3 C5 C5 S_CUD S_CUD I 0.4 Q 4.3 Q Q CU I 0.4 CU I 0.5 CD I 0.5 CD I 0.3 S I 0.3 S CV MW 4 C#20 PV CV MW 4 C#20 PV CV_BCD QW 6 Q 4.3 I 0.7 Q Q R CV_BCD QW 6 I 0.7 R = STEP 7中的S5计数器
S 计数器:功能图 CU CD R 5 4 3 Count 2 1 0 Q
LAD FBD STL Network 1: C5 C5 A I 0.0 L C#20 S C5 I 0.0 I 0.0 SC SC C#20 C#20 CV Network 2: I 0.1 C5 A I 0.1 CU C5 CU C5 I 0.1 CU Network 3: I 0.2 C5 A I 0.2 CD C5 CD C5 Network 4: I 0.2 CD C5 Q 4.0 Q 4.0 A C5 = Q 4.0 C5 = 计数器:位指令
V V 练习: 计数传送的零件 (FC 18, C 18) DI DO Q 4.... ACTUAL number of parts I 0.0 .0 T_System_ON I 0.1 .1 T_System_OFF L_SYSTEM I 0.2 .2 T_Jog_RT L_MAN I 0.3 .3 T_Jog_LT L_AUTO I 0.4 .4 S_M/A_ModeSelect QW 6 I 0.5 .5 T_M/A_Accept -15V...+15V -15V...+15V I 0.6 .6 AI2 AO1 AO2 AI1 I 0.7 .7 AI1 AI2 0 8 1 5 AI1 AI2 AO1 AO2
LAD FBD STL T4 T4 A I0.7 L S5T#35s SD T4 A I0.5 R T4 L T4 T MW0 LC T4 T QW6 A T4 = Q4.5 I0.7 S_ODT S_ODT Q4.5 Q MW0 S S BI I0.7 BI S5T#35s MW0 S5T#35s QW6 TV BCD TV Q4.5 I0.5 = QW6 R BCD I0.5 R Q S5TIME数据类型 0,01s <-- 0 0 0,1s <-- 0 1 1s <-- 1 0 10s <-- 1 1 定时器:接通延时 (SD) S处的RLO R处的RLO 定时器操作 例如 Q 时间值: 0 . . . 999
以变量时间设定 以常数时间设定 3 5 2 单位时间(BCD码) 01 X X 0 1 0 0 1 1 0 1 0 1 0 0 1 0 时基 29 28 27 26 25 24 23 22 21 20 在 “L T...” 执行后Accu 1 内容 X X X X X X 0 1 0 1 1 0 0 0 0 0 剩余的单位时间(Integer) 3 5 2 01 在 “LC T...” 执行后Accu 1 内容 X X 0 1 0 0 1 1 0 1 0 1 0 0 1 0 时基 剩余的单位时间(BCD码) 定时器: STEP 7 的S5定时器的时间格式 S5T#35s200ms (时基 : 01 (100ms), 单位时间数: 352)
LAD FBD STL T4 T4 A I0.7 L S5T#35s SS T4 A I0.5 R T4 L T4 T MW0 LC T4 T QW6 A T4 = Q4.5 S_ODTS I0.7 S_ODTS Q4.5 MW0 S BI I0.7 Q S S5T#35s QW6 BCD TV BI S5T#35s MW0 TV Q4.5 I0.5 I0.5 R Q = QW6 R BCD S处的RLO R处的RLO 定时器操作 例如 Q 定时器: 带保持接通延时 (SS)
LAD FBD STL T4 T4 A I0.7 L S5T#35s SP T4 A I0.5 R T4 L T4 T MW0 LC T4 T QW6 A T4 = Q8.5 I0.7 S_PULSE S_PULSE Q4.5 Q MW0 S S BI I0.7 BI S5T#35s MW0 S5T#35s QW6 TV Q4.5 BCD TV I0.5 = QW6 R BCD I0.5 R Q S处的RLO R处的RLO 定时器操作 例如 Q 定时器:脉冲 (SP)
LAD FBD STL T4 T4 A I0.7 L S5T#35s SE T4 A I0.5 R T4 L T4 T MW0 LC T4 T QW6 A T4 = Q4.5 I0.7 S_PEXT Q4.5 S_PEXT Q S MW0 S BI I0.7 BI S5T#35s MW0 Q4.5 TV S5T#35s QW6 BCD TV I0.5 = QW6 R BCD I0.5 R Q S处的RLO R处的RLO 定时器操作 Q 定时器:扩展脉冲 (SE) 例如
LAD FBD STL T4 T4 A I0.7 L S5T#35s SF T4 A I0.5 R T4 L T4 T MW0 LC T4 T QW6 A T4 = Q4.5 S_OFFDT I0.7 S_OFFDT Q4.5 MW0 S BI I0.7 Q S S5T#35s QW6 BCD TV BI S5T#35s MW0 TV Q4.5 I0.5 I0.5 R Q = QW6 R BCD S处的RLO R处的RLO 定时器操作 例如 Q 定时器:关断延时 (SF)
LAD FBD STL Network 1: T4 I0.0 T4 I0.0 & A I0.0 L S5T#5s SD T4 SD SD S5T#5s TV S5T#5s Network 2: T4 Q 4.0 Q 4.0 A T4 = Q 4.0 T4 & = Network 3: T4 A I0.1 R T4 I0.1 T4 I0.1 & R R 定时器:位指令
练习: 封锁传送带电机点动 Lock-out time LEFT T_Jog_RT I 0.2 Run Conveyor RIGHT (Q20.5 / Q8.5) Lock-out RIGHT T 15 (SF) T_Jog_LT I 0.3 Lock-out time RIGHT Run Conveyor LEFT (Q20.6 / Q8.6) Lock-out LEFT T 16 (SF)
V V 练习: 传送功能的监视 (FC 17) DI DO Q 4.... ACTUAL number of parts I 0.0 .0 T_System_ON Flt I 0.1 .1 T_System_OFF L_System I 0.2 .2 T_Jog_RT L_MAN I 0.3 .3 T_Jog_LT L_AUTO I 0.4 .4 S_M/A_ModeSelect QW 6 I 0.5 .5 T_M/A_Accept -15V...+15V -15V...+15V I 0.6 .6 AI2 AO1 AO2 AI1 I 0.7 .7 I 1.0 T_Fault_Rst AI1 AI2 Weight 0 8 1 5 AI1 AI2 AO1 AO2
练习:计数传送带运行故障 Conv. oper. fault M 17.0 3 Conv. oper. fault counter C 17 2 1 0 AUTO mode Q 4.3 (Q 8.3)
LAD FBD STL 转换 BCD->整数 0 8 1 5 有数学运算的用户程序 转换 BCD<-整数 2 4 8 0 BCD_I L IW2 BTI T MW20 L MW10 ITB T QW6 BCD_I MW20 EN OUT ENO EN ENO IW2 IN IN OUT IW2 MW20 IN IN I_BCD I_BCD QW6 EN OUT EN ENO ENO MW10 IN IN OUT MW10 IN QW6 转换操作BCD <-> 整数 用BCD码输入的数 任务 用BCD码显示的数
LAD FBD STL CMP ==I CMP ==I A M0.0 A ( L IW0 L IW2 ==I ) = Q5.7 M0.0 Q 5.7 IN1 IW0 Q5.7 IN1 IW0 = & IN2 IN2 IW2 IW2 M0.0 比较指令
LAD FBD STL L MW4 L MW10 + I T MW6 ADD_I ADD_I MW6 OUT EN EN ENO MW4 MW4 IN1 IN1 MW6 OUT ENO IN2 IN2 MW10 MW10 L MW5 L MW11 - I T MW7 SUB_I SUB_I MW7 OUT EN ENO EN MW5 MW5 IN1 IN1 OUT MW7 ENO MW11 IN2 IN2 MW11 MUL_R MUL_R L MD6 L MD12 * R T MD66 MD66 OUT EN ENO EN MD6 MD6 IN1 IN1 MD12 MD66 ENO IN2 IN2 MD12 DIV_R L MD40 L MD4 / R T MD32 DIV_R MD32 OUT EN EN ENO MD40 MD40 IN1 IN1 IN2 ENO IN2 MD32 MD4 OUT MD4 基本数学功能 加法 减法 乘法 除法
V V 练习: 计数传送的零件(FC 18, MW 20) DI DO Q 4.... ACTUAL number of parts I 0.0 .0 T_System_ON Flt I 0.1 .1 T_System_OFF L_System I 0.2 .2 T_Jog_RT L_MAN I 0.3 .3 T_Jog_LT L_AUTO I 0.4 .4 S_M/A_ModeSelect QW 6 I 0.5 .5 T_M/A_Accept -15V...+15V -15V...+15V I 0.6 .6 AI2 AO1 AO2 AI1 I 0.7 .7 I 1.0 T_Fault_Rst AI1 AI2 Weight SETPOINT number of parts 0 8 1 5 AI1 AI2 AO1 AO2 IW 2
ENO 练习: 计数传送的零件(FC 18), 答案提示 NW 1: Set "counter" to 0 MOVE 复位的条件 EN OUT MW 20 0 IN ENO NW 2: Counting using memory word, ACTUAL number of parts ADD_I 计数事件的上升沿 EN MW 20 IN1 OUT MW 20 1 IN2 NW 3: Display ACTUAL number of parts on BCD digital display 零件的实际值 (MW 20) 从整数到 BCD转换 -> 结果在 BCD 数字显示 ( QW 6) NW 4: Readin SETPOINT number of parts and convert from BCD to Integer 来自数码拨轮 ( IW 2)的值从 BCD 转换到整数 -> 把零件的给定值 (Integer)存储在 MW 200 NW 5: ACTUAL-SETPOINT comparison, LED (red LED Q8.4) 比较实际值 (MW 20)和给定值(MW 200), 比较的结果送到 LED
练习: 控制 LED 常亮ACTUAL=SETPOINT 常亮 at both bays when a new part can be placed on the conveyor 1 Hz 闪光 at the bay where the part was placed and from which the conveyor can be started 2 Hz 闪光 at both bays as long as the transport function is running
整数格式的数据(16 位) LAD STL 带有实数的运算程序 从整数到双整数的转换 从双整数到实数的转换 F B D I_DI MD14 EN OUT DI_R MD26 EN OUT ENO MW12 IN IN L MW12 ITD DTR T MD26 ENO MD14 IN IN I_DI DI_R EN ENO EN ENO OUT OUT MW12 MD14 MD14 IN IN MD26 IN IN 转换指令I -> DI -> REAL 任务
WOR_W EN ENO IW0 IN1 OUT MW10 W#16#5F2A IN2 AND OR XOR 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 AW 后的MW10 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 OW后的MW10 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 XOW后的MW10 数字逻辑指令 WXOR_W L IW 0 L W#16#5F2A AW / OW / XOW T MW10 WAND_W 15 0 IW0 = 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 W#16#5F2A = 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0
练习(选作): 数字操作例子 FC 2
练习(选作): 由两个定时器组成的时钟发生器 I 1.7 Q 5.7 2S 4S FC 3 I 1.7 Q5.7
练习(选作): 由单定时器构成的闪烁频率发生器 FC 4 T4 Network T4 ! G ! S_PEXT # M 0.2 Q5.3 S S5T#5S TV Network M 1.0 M 0.2 T4 & # M 0.3 S M 1.0 Q5.3 M 0.2 & R Q5.3 M 0.3 注意:输出点为继电器输出时, 开关频率不能太高。
练习(选作): 三个风扇的监控程序 FC 5 M30.0 I0.7 R I0.0 T 5 I0.1 =1 I0.2 S_ODT & >=1 I0.3 5 S S Q I0.0 I0.1 & I0.2 Q4.0 I0.3
练习(选作): 分频器 Q FC 6 T6;M25.0 C6 M25.1 CMP>=I F & CU CV IN1 S G BCD QW6 MW2 IN2 & CD 1Hz I1.7 R Q R Q Q4.7 I1.7 M25.0 MW2 C6 Q4.7