16-6 指令功能说明 16-6-1 基本指令一览表 一般指令 功能 操作数 执行速度(us) 脚本 载入 A 接点 X、Y、M、T、C 0.8 载入 B 接点 X、Y、M、T、C 0.8 LD 串联 A 接点 X、Y、M、T、C LDI 串联 B 接点 X、Y、M、T、C 0.8 AND 并联 A 接点 X、Y、M、T、C 0.8 ANI 并联 B 接点 X、Y、M、T、C 0.8 OR 串联回路方块 0.8 ORI 无 0.3 ANB 并联回路方块 无 0.3 ORB 无 0.3 MPS 存入堆栈 无 0.3 MRD 堆栈读取(指针不动) 无 0.3 MPP 读出堆栈 输出指令 功能 操作数 执行速度(us) 脚本 驱动线圈 Y、M 1 OUT 动作保持(ON) Y、M 1 SET 接点或缓存器清除 Y、M、T、C、D 1.2 RST 定时器、计数器 脚本 功能 操作数 执行速度(us) TMR 16 位定时器 T-K 或 T-D 1.1 CNT 16 位计数器 C-K 或 C-D(16 位) 0.5 主控指令 功能 操作数 执行速度(us) 共通串行接点之连结 脚本 共通串行接点之解除 N0~N7 0.4 MC N0~N7 0.4 MCR 接点上升缘/下降缘检出指令 脚本 功能 操作数 执行速度(us) LDP 正缘检出动作开始 X、Y、M、T、C 1.1 LDF 负缘检出动作开始 X、Y、M、T、C 1.1 ANDP 正缘检出串联连接 X、Y、M、T、C 1.1 ANDF 负缘检出串联连接 X、Y、M、T、C 1.1 ORP 正缘检出并联连接 X、Y、M、T、C 1.1 ORF 负缘检出并联连接 X、Y、M、T、C 1.1 16-36
PLC 功能应用 上下微分输出指令 脚本 功能 操作数 执行速度(us) 上微分输出 PLS 下微分输出 Y、M 1.2 PLF Y、M 1.2 结束指令 功能 操作数 执行速度(us) 无 0.2 脚本 程序结束 END 其他指令 功能 操作数 执行速度(us) 脚本 无动作 无 0.2 NOP 运算结果反相 无 0.2 INV 指标 P 0.3 P 16-6-2 基本指令详细说明 指令 功能 LD 操作数 载入 A 接点 指令說明 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 程式範例 9 9 9 9 9- LD 指令用于左母线开始的 A 接点或一个接点回路块开始的 A 接点,它的作用是把当前 内容保存,同时把取来的接点状态存入累积缓存器内。 阶梯图: 脚本: 说明: X0 X1 LD X0 载入 X0 之 A 接点 Y1 AND X1 串联 X1 之 A 接点 OUT Y1 驱动 Y1 线圈 指令 功能 LDI 操作数 载入 B 接点 指令說明 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 程式範例 9 9 9 9 9- LDI 指令用于左母线开始的 B 接点或一个接点回路块开始的 B 接点,它的作用是把当前 内容保存,同时把取来的接点状态存入累积缓存器内。 阶梯图: 脚本: 说明: X0 X1 LDI X0 载入 X0 之 B 接点 Y1 AND X1 串联 X1 之 A 接点 OUT Y1 驱动 Y1 线圈 16-37
指令 功能 AND 操作数 串联 A 接点 指令說明 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 9 9 9 9 9- AND 指令用于 A 接点的串联连接,先读取目前所指定串联接点的状态再与接点之前逻 辑运算结果作 “及”(AND)的运算,并将结果存入累积缓存器内。 程式範例 阶梯图: 脚本: 说明: X1 X0 LDI X1 载入 X1 之 B 接点 Y1 AND X0 串联 X0 之 A 接点 OUT Y1 驱动 Y1 线圈 指令 功能 ANI 操作数 串联 B 接点 指令說明 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 程式範例 9 9 9 9 9- ANI 指令用于 B 接点的串联连接,它的作用是先读取目前所指定串联接点的状态再与接 点之前逻辑运算结果作 “及”(AND)的运算,并将结果存入累积缓存器内。 阶梯图: 脚本: 说明: X1 X0 LD X1 载入 X1 之 A 接点 Y1 ANI X0 串联 X0 之 B 接点 OUT Y1 驱动 Y1 线圈 指令 功能 OR 操作数 并联 A 接点 指令說明 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 程式範例 9 9 9 9 9- OR 指令用于 A 接点的并联连接,它的作用是先读取目前所指定串联接点的状态再与接 点之前逻辑运算结果作 “或”(OR)的运算,并将结果存入累积缓存器内。 阶梯图: 脚本: 说明: X0 Y1 LD X0 载入 X0 之 A 接点 OR X1 串联 X1 之 A 接点 X1 OUT Y1 驱动 Y1 线圈 指令 功能 ORI 操作数 并联 B 接点 指令說明 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 程式範例 9 9 9 9 9- ORI 指令用于 B 接点的并联连接,它的作用是先读取目前所指定串联接点的状态再与接 点之前逻辑运算结果作 “或”(OR)的运算,并将结果存入累积缓存器内。 阶梯图: 脚本: 说明: X0 Y1 LD X0 载入 X0 之 A 接点 ORI X1 串联 X1 之 B 接点 X1 OUT Y1 驱动 Y1 线圈 16-38
PLC 功能应用 指令 串联回路方块 功能 ANB 无 操作数 指令說明 ANB 是将前一保存的逻辑结果与目前累积缓存器的内容作 “及” (AND)的运算。 程式範例 阶梯图: 脚本: 说明: X0 ANB 载入 X0 之 A 接点 X1 LD X0 并联 X2 之 B 接点 ORI X2 载入 X1 之 B 接点 Y1 LDI X1 并联 X3 之 A 接点 OR X3 串联回路方块 X2 X3 驱动 Y1 线圈 Block A Block B ANB Y1 OUT 指令 并联回路方块 功能 ORB 无 操作数 指令說明 ORB 是将前一保存的逻辑结果与目前累积缓存器的内容作 “或” (OR) 的运算。 程式範例 阶梯图: 脚本: 说明: X0 载入 X0 之 A 接点 X2 X1 Block A LD X0 并联 X1 之 B 接点 Y1 ANI X1 载入 X2 之 B 接点 并联 X3 之 A 接点 X3 LDI X2 并联回路方块 ORB AND X3 驱动 Y1 线圈 Block B ORB OUT Y1 指令 存入堆栈 功能 MPS 无 操作数 指令說明 将目前累积缓存器的内容存入堆栈。(堆栈指针加一) 指令 读出堆栈(指针不动) 功能 MRD 无 操作数 指令說明 读取堆栈内容存入累积缓存器。(堆栈指针不动) 指令 读出堆栈 功能 MPP 无 操作数 指令說明 自堆栈取回前一保存的逻辑运算结果,存入累积缓存器。(堆栈指针减一) 程式範例 阶梯图: 脚本: 说明: X0 载入 X0 之 A 接点 MPS LD X0 存入堆栈 串联 X1 之 A 接点 X1 MPS 驱动 Y1 线圈 AND 读出堆栈(指针不动) Y1 X1 串联 X2 之 A 接点 M0 驱动 M0 线圈 X2 Y2 OUT Y1 读出堆栈 END 驱动 Y2 线圈 MRD MRD 程序结束 AND OUT X2 M0 MPP MPP Y2 OUT END 16-39
指令 功能 OUT 驱动线圈 操作数 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 - 9 9 - - - 将 OUT 指令之前的逻辑运算结果输出至指定的组件。 指令說明 线圈接点动作: OUT 指 令 运算结果 接点 线圈 A 接点(常开) B 接点(常闭) FALSE Off 不导通 导通 T UE On 导通 不导通 程式範例 阶梯图: 脚本: 说明: X0 X1 LDI X0 载入 X0 之 B 接点 Y1 AND X1 并联 X1 之 A 接点 OUT Y1 驱动 Y1 线圈 指令 功能 SET 操作数 动作保持(ON) 指令說明 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 程式範例 - 9 9 --- 当 SET 指令被驱动,其指定的组件被设定为 On,且被设定的组件会维持 On,不管 SET 指令是否仍被驱动。可利用 RST 指令将该组件设为 Off。 阶梯图: 脚本: 说明: X0 Y0 LD X0 载入 X0 之 A 接点 ANI Y0 并联 Y0 之 B 接点 SET Y1 SET Y1 动作保持(ON) 指令 功能 RST 接点或缓存器清除 操作数 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 - 9 9 9 9 9 指令說明 当 RST 指令被驱动,其指定的组件的动作如下: 元件 状态 Y, M 线圈及接点都会被设定为 Off。 T, C 目前计 或计数值会被设为 0,且线圈及接点都会被设定为 Off。 D 内容值会被设为 0。 若 RST 指令没有被执行,其指定组件的状态保持不变。 阶梯图: 脚本: 说明: LD X0 载入 X0 之 A 接点 程式範例 接点或缓存器清除 X0 RST Y5 RST Y5 16-40
PLC 功能应用 指令 功能 TMR 操作数 16 位定时器 指令說明 T-K T0~T159,K0~K32,767 程式範例 T-D T0~T159,D0~D399 当 TMR 指令执行时,其所指定的定时器线圈受电,定时器开始计时,当到达所指定的 定时值(计时值 >= 设定值),其接点动作如下: NO(Normally Open) 接点 闭合 NC(Normally Close) 接点 开路 若 RST 指令没有被执行,其指定组件的状态保持不变。 阶梯图: 脚本: 说明: X0 LD X0 载入 X0 之 A 接点 TMR T5 K1000 TMR T5 K1000 T5 定时器 设定值为 K1000 指令 功能 CNT 操作数 16 位计数器 指令說明 C-K C0~C79,K0~K32,767 程式範例 C-D C0~C79,D0~D399 当 CNT 指令由 Off→On 执行,表示所指定的计数器线圈由失电→受电,则该计数器计 数值加 1,当计数到达所指定的定数值(计数值 = 设定值),其接点动作如下: NO(Normally Open) 接点 闭合 NC(Normally Close) 接点 开路 当计数到达之后,若再有计数脉波输入,其接点及计数值均保持不变,若要重新计数或 作清除的动作,请利用 RST 指令。 阶梯图: 脚本: 说明: X0 LD X0 载入 X0 之 A 接点 CNT C2 K100 CNT C2 K100 C2 计数器 设定值为 K100 指令 功能 MC/MCR 共通串联接点之连结 / 解除 操作数 N0~N7 MC 为主控起始指令,当 MC 指令执行时,位于 MC 与 MCR 指令之间的指令照常执行。 指令說明 当 MC 指令 Off 时,位于 MC 与 MCR 指令之间的指令动作如下所示: 指令区分 说明 一般定时器 计时值归零,线圈失电,接点不动作 计数器 线圈失电,计数值及接点保持目前状态 OUT 指令驱动的线圈 全部不受电 SET,RST 指令驱动的组件 保持目前状态 应用指令 全部不动作 MCR 为主控结束指令,置于主控程序最后,在 MCR 指令之前不可有接点指令。 MC-MCR 主控程序指令支持巢状程序结构,最多可 8 层,使用时依 N0~N7 的顺序,请 参考如下程序所示: 16-41
脚本: 说明: 程式範例 阶梯图: LD X0 载入 X0 之 A 接点 N0 共通串联接点之连结 X0 MC N0 MC N0 载入 X1 之 A 接点 X1 Y0 LD X1 驱动 Y0 线圈 X2 MC N1 X3 Y1 OUT Y0 载入 X2 之 A 接点 MCR N1 N1 共通串联接点之连结 X10 MCR N0 : 载入 X3 之 A 接点 X11 MC N0 LD X2 驱动 Y1 线圈 Y10 MCR N0 MC N1 N1 共通串联接点之解除 LD X3 N0 共通串联接点之解除 OUT Y1 : 载入 X10 之 A 接点 N0 共通串联接点之连结 MCR N1 载入 X11 之 A 接点 : 驱动 Y10 线圈 MCR N0 N0 共通串联接点之解除 : X10 LD N0 MC X11 LD OUT Y10 : MCR N0 指令 功能 LDP 正缘检出动作开始 操作数 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 9 9 9 9 9 - LDP 指令用法上与 LD 相同,但动作不同,它的作用是指当前内容保存,同时把取来的 指令說明 接点上升缘检出状态存入累积缓存器内。 程式範例 阶梯图: 脚本: 说明: X0 X1 X0 正缘检出动作开始 Y1 LDP X0 串联 X1 之 A 接点 AND X1 OUT Y1 驱动 Y1 线圈 各操作数使用范围请参考各系列机种功能规格表。 補充說明 若 PLC 电源开启前,指定上升缘接点的状态为 On,则电源开启后该上升缘接点为 TRUE。 指令 功能 LDF 负缘检出动作开始 操作数 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 9 9 9 9 9 - LDF 指令用法上与 LD 相同,但动作不同,它的作用是指当前内容保存,同时把取来的 指令說明 接点下降缘检出状态存入累积缓存器内。 阶梯图: 脚本: 说明: X0 负缘检出动作开始 程式範例 Y1 LDF X0 串联 X1 之 A 接点 X0 X1 AND X1 驱动 Y1 线圈 OUT Y1 16-42
PLC 功能应用 指令 功能 ANDP 正缘检出串联连接 操作数 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 9 9 9 - 99 指令說明 ANDP 指令用于接点上升缘检出的串联连接。 程式範例 阶梯图: 脚本: 说明: X0 X1 载入 X0 之 A 接点 Y1 LD X0 X1 正缘检出串联连接 驱动 Y1 线圈 ANDP X1 OUT Y1 指令 功能 ANDF 负缘检出串联连接 操作数 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 9 9 9 - 99 指令說明 ANDF 指令用于接点下降缘检出的串联连接。 程式範例 阶梯图: 脚本: 说明: X0 X1 载入 X0 之 A 接点 Y1 LD X0 X1 负缘检出串联连接 驱动 Y1 线圈 ANDF X1 OUT Y1 指令 功能 ORP 正缘检出并联连接 操作数 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 9 9 9 - 99 指令說明 ORP 指令用于接点上升缘检出的并联连接。 阶梯图: 脚本: 说明: 程式範例 X0 Y1 LD X0 载入 X0 之 A 接点 X1 ORP X1 X1 正缘检出并联连接 OUT Y1 驱动 Y1 线圈 指令 功能 ORF 负缘检出并联连接 操作数 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 9 9 9 - 99 指令說明 ORF 指令用于接点下降缘检出的并联连接。 阶梯图: 脚本: 说明: 载入 X0 之 A 接点 程式範例 X0 Y1 LD X0 X1 负缘检出并联连接 X1 ORF X1 驱动 Y1 线圈 OUT Y1 16-43
指令 功能 PLS 上微分输出 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 操作数 X0~X17 9 9 - - - - 指令說明 上微分输出指令。当 X0=Off→On(正缘触发)时 PLS 指令被执行,M0 送出一次脉波, 程式範例 脉波长度为一次扫描时间。 阶梯图: PLS M0 脚本: 说明: X0 SET Y0 LD X0 载入 X0 之 A 接点 PLS M0 M0 上微分输出 M0 LD M0 载入 M0 之 A 接点 SET Y0 Y0 动作保持(ON) 时序图: X0 一次掃描時間 M0 Y0 指令 功能 PLF 下微分输出 操作数 X0~X17 Y0~Y17 M0~M799 T0~159 C0~C79 D0~D399 - 9 9 - - - 指令說明 下微分输出指令。当 X0= On→Off (负缘触发)时 PLF 指令被执行,M0 送出一次脉波, 程式範例 脉波长度为一次扫描时间。 阶梯图: PLF M0 脚本: 说明: X0 SET Y0 LD X0 载入 X0 之 A 接点 PLF M0 M0 下微分输出 M0 LD M0 载入 M0 之 A 接点 SET Y0 Y0 动作保持(ON) 时序图: X0 M0 一次掃描時間 Y0 指令 功能 END 程序结束 操作数 无 在阶梯图程序或指令程序最后必须加入 END 指令。PLC 由地址 0 扫描到 END 指令, 指令說明 执行之后,返回到地址 0 重新作扫描执行。 指令 功能 NOP 无动作 操作数 无 指令說明 指令 NOP 在程序不做任何运算,因此执行后仍会保持原逻辑运算结果,使用时机如下: 想要删除某一指令,而又不想改变程序长度,则可以 NOP 指令取代。 16-44
PLC 功能应用 程式範例 阶梯图: 階梯圖顯示時,會將指令NOP 脚本: 说明: 化簡不顯示 载入 X0 之 B 接点 LD X0 无动作 驱动 Y1 线圈 X0 NOP NOP Y1 OUT Y1 指令 运算结果反相 功能 INV 无 操作数 指令說明 将 INV 指令之前的逻辑运算结果反相存入累积缓存器内。 程式範例 阶梯图: 脚本: 说明: X0 LD X0 载入 X0 之 A 接点 Y1 INV 运算结果反相 OUT Y1 驱动 Y1 线圈 指令 功能 P 指标 操作数 P0~P255 指针 P 用于子程序呼叫指令 API 01 CALL 使用不须从编号 0 开始,但是编号不能重复 指令說明 使用,否则会发生不可预期的错误。 阶梯图: 脚本: 说明: 载入 X0 之 A 接点 程式範例 X0 LD X0 呼叫指令 CALL 到 P10 CALL P10 CALL P10 X1 Y1 : P10 P10 指标 P10 LD X1 载入 X1 之 A 接点 OUT Y1 驱动 Y1 线圈 16-45
16-6-3 应用指令一览表 脚本 STEPS 分类 API P 指令 功能 16bit 32bit 16 位 32 位 回路 3- 控制 01 CALL - 9 呼叫子程序 1- 1- 传 02 SRET - - 子程序结束 7 13 送 - 主程序结束 9 17 比 06 FEND - 9 比较设定输出 59 较 7– 10 CMP DCMP 7 13 四 7 13 则 11 ZCP DZCP 9 区域比较 7 13 逻 7 13 辑 12 MOV DMOV 9 数据移动 35 运 9 全部传送 35 算 15 BMOV – 9 BIN 加法 5– 5– 旋转 20 ADD DADD 5- 位移 -9 资料 21 SUB DSUB 9 BIN 减法 7– 处理 – 13 通讯 22 MUL DMUL 9 BIN 乘法 – 17 –9 浮点 23 DIV DDIV 9 BIN 除法 –9 运算 – 13 24 INC DINC 9 BIN 加一 – 13 – 13 25 DEC DDEC 9 BIN 减一 – 13 –9 30 ROR DROR 9 右旋转 –9 –9 31 ROL DROL 9 左旋转 –9 –9 40 ZRST – 9 区域清除 –9 –9 49 – DFLT 9 BIN 整数→二进浮点数变换 –9 –9 150 MODRW – 9 MODBUS 读写 –9 110 – DECMP 9 二进浮点数比较 111 – DEZCP 9 二进浮点数区域比较 116 – DRAD 9 角度→径度 117 – DDEG 9 径度→角度 120 – DEADD 9 二进浮点数加法 121 – DESUB 9 二进浮点数减法 122 – DEMUL 9 二进浮点数乘法 123 – DEDIV 9 二进浮点数除法 124 – DEXP 9 二进浮点数取指数 125 – DLN 9 二进浮点数取自然对数 127 – DESQR 9 二进浮点数开平方根 129 – DINT 9 二进浮点数→BIN 整数变换 130 – DSIN 9 二进浮点数 SIN 运算 131 – DCOS 9 二进浮点数 COS 运算 132 – DTAN 9 二进浮点数 TAN 运算 133 – DASIN 9 二进浮点数 ASIN 运算 134 – DACOS 9 二进浮点数 ACOS 运算 135 – DATAN 9 二进浮点数 ATAN 运算 16-46
PLC 功能应用 分类 API 脚本 P 指令 功能 STEPS 浮点 136 16 位 32 位 9 二进浮点数 SINH 运算 16bit 32bit 运算 137 9 二进浮点数 COSH 运算 138 – DSINH 9 二进浮点数 TANH 运算 – 9 160 – DCOSH – 9 – DTANH 9 万年历数据比较 – 9 TCMP – 11 – 161 TZCP – 9 万年历数据区域比较 9– 万年历 162 TADD – 9 万年历资料加算 7– 163 TSUB – 9 万年历资料减算 7– 166 TRD – 9 万年历资料读出 3– 格雷码 170 GRY DGRY 9 BIN→GRY 码变换 59 171 GBIN DGBIN 9 GRY 码→BIN 变换 59 215 LD\& DLD\& - 接点型态逻辑运算 LD# 59 216 LD| DLD| - 接点型态逻辑运算 LD# 59 接点 217 LD^ DLD^ - 接点型态逻辑运算 LD# 59 型态 218 AND\& DAND\& - 接点型态逻辑运算 AND# 逻辑 219 ANDl DANDl - 接点型态逻辑运算 AND# 59 运算 220 AND^ DAND^ - 接点型态逻辑运算 AND# 221 OR\& DOR\& - 接点型态逻辑运算 OR# 59 59 59 222 OR| DOR| - 接点型态逻辑运算 OR# 59 223 OR^ DOR^ - 接点型态逻辑运算 OR# 59 224 LD= DLD= - 接点型态比较 LD※ 59 225 LD> DLD> - 接点型态比较 LD※ 59 226 LD< DLD< - 接点型态比较 LD※ 59 228 LD<> DLD<> - 接点型态比较 LD※ 59 229 LD<= DLD<= - 接点型态比较 LD※ 59 230 LD>= DLD>= - 接点型态比较 LD※ 59 232 AND= DAND= - 接点型态比较 AND※ 59 接点 233 AND> DAND> - 接点型态比较 AND※ 59 型态 234 AND< DAND< - 接点型态比较 AND※ 59 比较 236 AND<> DAND<> - 接点型态比较 AND※ 59 指令 237 AND<= DAND<= - 接点型态比较 AND※ 59 238 AND>= DAND>= - 接点型态比较 AND※ 59 240 OR= DOR= - 接点型态比较 OR※ 59 241 OR> DOR> - 接点型态比较 OR※ 59 242 OR< DOR< - 接点型态比较 OR※ 59 244 OR<> DOR<> - 接点型态比较 OR※ 59 245 OR<= DOR<= - 接点型态比较 OR※ 59 246 OR>= DOR>= - 接点型态比较 OR※ 59 16-47
分类 API 脚本 P 指令 功能 STEPS 16bit 32bit 16 位 32 位 -9 浮点 275 - FLD= - 浮点数接点型态比较 LD※ -9 -9 接点 276 - FLD> - 浮点数接点型态比较 LD※ -9 -9 型态 277 - FLD< - 浮点数接点型态比较 LD※ -9 -9 278 - FLD<> - 浮点数接点型态比较 LD※ -9 -9 279 - FLD<= - 浮点数接点型态比较 LD※ -9 -9 280 - FLD>= - 浮点数接点型态比较 LD※ -9 -9 281 - FAND= - 浮点数接点型态比较 AND※ -9 -9 282 - FAND> - 浮点数接点型态比较 AND※ -9 -9 283 - FAND< - 浮点数接点型态比较 AND※ -9 5– 比较 284 - FAND<> - 浮点数接点型态比较 AND※ 5– 指令 285 9– 286 - FAND<= - 浮点数接点型态比较 AND※ 7– -5 - FAND>= - 浮点数接点型态比较 AND※ 5- 9- 287 - FOR= - 浮点数接点型态比较 OR※ 9- 3- 288 - FOR> - 浮点数接点型态比较 OR※ 9 17 9 17 289 - FOR< - 浮点数接点型态比较 OR※ 290 - FOR<> - 浮点数接点型态比较 OR※ 291 - FOR<= - 浮点数接点型态比较 OR※ 292 - FOR>= - 浮点数接点型态比较 OR※ 139 RPR – 9 驱动器参数读取 140 WPR – 9 驱动器参数写入 141 FPID – 9 驱动器 PID 控制 142 FREQ – 9 驱动器运转控制 驱动器 262 – DPOS 9 设定目标位置 特殊 263 TORQ – 9 设定目标扭力 指令 261 CANRX – 9 读取 CANopen 从站数据 264 CANTX – 9 写入 CANopen 从站资料 265 CANFLS – 9 更新 CANopen 对应的特 D 320 ICOMR DICOMR 9 内部通讯读取 321 ICOMW DICOMW 9 内部通讯写入 16-48
PLC 功能应用 16-6-4 应用指令详细说明 API CALL S 呼叫子程序 P 01 位装置 字符装置 16 位指令 (3 STEP) C D CALL 连续执行型 CALLP X Y M K H KnX KnY KnM T 脉波执行型 - 操作数使用注意: 32 位指令 - - S 操作数可指定 P - C2000 系列机种 S 操作数可指定 P0~P63 旗标信号:无 指令說明 S:呼叫子程序之指针。 子程序请于 FEND 指令后编写。 子程序必须在 SRET 指令后结束。 指令详细功能请参考 FEND 指令说明及范例内容。 API SRET - 子程序结束 P 02 位装置 字符装置 16 位指令 (1 STEP) X Y M K H KnX KnY KnM T CD FEND 连续执行型 - - - - 操作数使用注意: 32 位指令 - 无操作数 - 不须接点驱动的指令 旗标信号:无 指令說明 不须接点驱动的指令。自动返回 CALL 指令的下一个指令 表示子程序结束。子程序执行结束由 SRET 返回主程序,执行原呼叫子程序 CALL 指令的下一个指令。 指令详细功能请参考 FEND 指令说明及范例内容。 16-49
API - 主程序结束 - - 06 FEND - - 字符装置 16 位指令 (1 STEP) 位装置 C D FEND 连续执 型 H KnX KnY KnM T X Y MK 操作数使用注意: 32 位指令 - 无操作数 - 不须接点驱动的指令 旗标信号:无 指令說明 此指令代表着主程序结束,当 PLC 执行至此指令时,与 END 指令相同。 CALL 指令的程序必须写在 FEND 指令后,并且在该子程序结束加上 SRET 指令。 当使用 FEND 指令,一个 END 指令也是必须的。但是,END 指令要放在最后, 在主程序和子程序之后。 CA LL指 令 M0 動作流程 CALL P0 主程式 M1 CALL P1 主程式結尾 M1013 副程 式P0 P0 ( Y0 ) RY1 1s時鐘脈衝, 0.5s 0 P1 M1013 副程 式P1 1s時鐘脈衝, 0.5s 0 ( Y1 ) RY2 PLC程 式 結 尾 16-50
PLC 功能应用 API S1 S2 D 比较设定输出 10 D CMP P 16 位指令 (7 STEP) 位装置 字符装置 C D CMP 连续执行型 CMPP ** X Y M K H KnX KnY KnM T * * 32 位指令 (13 STEP) 脉波执行型 脉波执行型 S1 * * * * * * DCMP 连续执行型 DCMPP S2 * * * * * * 旗标信号:无 D ** 操作数使用注意: D 操作数会占用连续 3 点 指令說明 S1 :比较值 1。 S2 :比较值 2。 D :比较结果。 将操作数 S1 和 S2 的内容作大小比较,其比较结果在 D 作表示。 大小比较是以代数来进行,全部的数据是以有号数二进制数值来作比较。因此 16 位指令,b15 为 1 时,表示为负数。 指定装置为 Y0,则自动占有 Y0,Y1 及 Y2。 程式範例 当 X10=On 时,CMP 指令执行,Y0,Y1 及 Y2 其中之一会 On,当 X10=Off 时, CMP 指令不执行,Y0,Y1 及 Y2 状态保持在 X10=Off 之前的状态。 若需要得到≧、≦、≠之结果时,可将 Y0~Y2 串并联即可取得。 X10 CMP K10 D10 Y0 Y0 K 1 0 > D 1 0現 在 值 時, Y 0為O N Y1 K 1 0 = D 1 0現 在 值 時, Y 1為O N Y2 K 1 0 < D 1 0現 在 值 時, Y 2為O N 若要清除其比较结果请使用 RST 或 ZRST 指令。 X10 X10 RST M0 ZRST M0 M2 RST M1 RST M2 16-51
API S1 S2 S D 区域比较 11 D ZCP P 位装置 K 字符装置 C D 16 位指令 (9 STEP) ZCPP 脉波执行型 * * * ZCP 连续执行型 X YM H KnX KnY KnM T S1 ***** S2 * * * * * * * * 32 位指令 (17 STEP) S * * * * * * * * DZCP 连续执行型 DZCPP 脉波执行型 D ** 操作数使用注意: 旗标信号:无 S1 操作数内容值请小于 S2 操作数内容值 D 操作数会占用连续 3 点 指令說明 S1 :区域比较之下限值。 S2 :区域比较之上限值。 S :比较值。 D :比 较结果。 比较值 S 与下限 S1 及上限 S2 作比较,其比较结果在 D 作表示。 当下限 S1 >上限 S2 时,则指令以下限 S1 作为上下限进行比较。 大小比较是以代数来进行,全部的数据是以有号数二进制数值来作比较。因此 16 位指令,b15 为 1 时,表示为负数。 程式範例 指定装置为 M0,则自动占有 M0,M1 及 M2。 当 X0=On 时,ZCP 指令执行,M0,M1 及 M2 其中之一会 On,当 X0=Off 时,ZCP 指令不执行,M0,M1 及 M2 状态保持在 X0=Off 之前的状态。 若需要得到≧、≦、≠之结果时,可将 M0~M2 串并联即可取得。 X0 ZCP K10 K100 C10 M0 M0 K10>C10現在值時, M0為ON M1 K10<=C10現在值時 <=K100, M1為ON M2 C10現在值時>K100, M2為ON 若要清除其比较结果请使用 RST 或 ZRST 指令。 X0 X0 RST M0 ZRST M0 M2 RST M1 RST M2 16-52
PLC 功能应用 API SD 数据移动 12 D MOV P 16 位指令 (5 STEP) 位装置 字符装置 C D MOV 连续执行型 MOVP 脉波执行型 ** 脉波执行型 XYM K H KnX KnY KnM T * * 32 位指令 (9 STEP) S* ***** D DMOV 连续执行型 DMOVP *** 操作数使用注意:无 旗标信号: 指令說明 S :资料之来源。 D :数据之搬移目的地。 内。当指令不执行时, D 内 当该指令执行时,将 S 的内容直接搬移至 D 容不会变化。 程式範例 当 X0=Off 时,D10 内容没有变化,若 X0=On 时,将数值 K10 传送至 D10 数据缓 存器内。 当 X1=Off 时,D10 内容没有变化,若 X1=On 时,将 T0 现在值传送至 D10 数据缓 存器内。 X0 MOV K10 D0 X1 MOV T0 D10 16-53
API BMOV SD n 全部传送 P 15 位装置 字符装置 16 位指令 (7 STEP) X Y M K H KnX KnY KnM T C D BMOV 连续执行型 BMOVP 脉波执行型 S ****** D * * * * * 32 位指令 n ** ** ---- 操作数使用注意: n 操作数范围 n =1~512 旗标信号:无 指令說明 S :来源装置起始。 D :目的地装置起始。 n :传送区块长度。 S 所指定的装置起始号码开始算 n 个缓存器的内容被传送至 n 所指定的装 置起始号码开始算 n 个缓存器当中,如果 n 所指定点数超过该装置的使用范围时, 只有有效范围被传送。 程式範例 当 X10=ON 时,D0~D3 个缓存器的内容被传送至 D20~D23 的 4 个缓存器内。 (一) X10 D0 D20 BMOV D0 D20 K4 D1 D21 D2 D22 n=4點 D3 D23 程式範例 如果指定位装置 KnX、KnY、KnM、作传送时, S 及 D 的位数必须相同, (二) 即 n 之数目须相同。 M1000 BMOV K1M0 K1Y0 K3 M0 Y0 M1 Y1 M2 Y2 M3 Y3 M4 Y4 M5 M6 Y5 n=3點 M7 Y6 M8 Y7 M9 M10 Y10 M11 Y11 Y12 Y13 程式範例 为了防止两个操作数所指定传送的号码重迭时,所造成的混乱,请注意两个操作数 (三) 所指定号码大小的安排,如下所示: 当 S > D 时,以1→2→3的顺序传送。 X10 1 2 BMOV D20 D19 K3 D20 D19 D21 D20 D22 3 D21 当 S < D 时,以3→2→1的顺序传送。 X11 D10 3 D11 D11 2 D12 BMOV D10 D11 K3 D13 D12 1 16-54
PLC 功能应用 API S1 S2 D BIN 加法 20 D ADD P 位装置 字符装置 16 位指令 (7 STEP) X Y M K H KnX KnY KnM T C D ADD 连续执行型 ADDP 脉波执行型 S1 * * * * * * * * S2 * * * * * * * * 32 位指令 (13 STEP) D * * * * * DADD 连续执行型 DADDP 脉波执行型 操作数使用注意:无 旗标信号:M1020 零旗号 Zero flag M1021 借位旗号 Borrow flag M1022 进位旗号 Carry flag 请参考下列补充说明 指令說明 S1 :被加数。 S2 :加数。 D :和。 将两个资料源: S1 及 S2 以 BIN 方式相加的结果存于 D 。 各数据的最高位位为符号位 0 表(正)1 表(负),因此可做代数加法运算。(例如: 3+(-9)=-6) 加法相关旗号变化。 1. 演算结果为 0 时,零旗号(Zero flag)M1020 为 On。 2. 演算结果小于 –32,768 时,借位旗号(Borrow flag)M1021 为 On。 3. 演算结果大于 32,767 时,进位旗号(Carry flag)M1022 为 On。 程式範例 16 位 BIN 加法:当 X0=On 时,被加数 D0 内容加上加数 D10 之内容将结果存在 D20 之内容当中。 X0 ADD D0 D10 D20 補充說明 旗号动作与数值的正负关系: 1 6位 元:零 旗 號 零旗號 零旗號 -2, -1, 0 -32,768 -1, 0 1 32,767 0 1 2 借位旗號 資料的最高位 資料的最高位 進位旗號 位 元 為1表(負) 位 元 為0表(正) 3 2位 元:零 旗 號 零旗號 零旗號 -2, -1, 0 -2,147,483,648 -1, 0 1 2,147,483,647 0 1 2 借位旗號 資料的最高位 資料的最高位 進位旗號 位 元 為1表(負) 位 元 為0表(正) 16-55
API S1 S2 D BIN 减法 21 D SUB P 位装置 字符装置 16 位指令 (7 STEP) XYM K H KnX KnY KnM T CD SUB 连续执行型 SUBP 脉波执行型 S1 * ***** S2 * ***** ** D * * 32 位指令 (13 STEP) 操作数使用注意:无 *** * * DSUB 连续执行型 DSUBP 脉波执行型 旗标信号:M1020 零旗号 Zero flag M1021 借位旗号 Borrow flag M1022 进位旗号 Carry flag 请参考下列补充说明 指令說明 S1 :被减数。 S2 :减数。 D :差。 将两个资料源: S1 及 S2 以 BIN 方式相减的结果存于 D 。 各数据的最高位位为符号位 0 表(正)1 表(负),因此可做代数减法运算。 减法相关旗号变化。 1. 演算结果为 0 时,零旗号(Zero flag)M1020 为 On。 2. 演算结果小于 –32,768 时,借位旗号(Borrow flag)M1021 为 On。 3. 演算结果大于 32,767 时,进位旗号(Carry flag)M1022 为 On。 程式範例 16 位 BIN 减法:当 X0=On 时,将 D0 内容减掉 D10 内容将差存在 D20 之内容中。 X0 SUB D0 D10 D20 16-56
PLC 功能应用 API S1 S2 D BIN 乘法 22 D MUL P 16 位指令 (7 STEP) 位装置 字符装置 C D MUL 连续执行型 MULP ** DMULP X Y M K H KnX KnY KnM T * * 32 位指令 (13 STEP) 脉波执行型 * * * DMUL 连续执行型 脉波执行型 S1 * * * * * * * 旗标信号:无 S2 * * * * * D ** 操作数使用注意: 16 位指令 D 操作数会占用连续 2 点 指令說明 S1 :被乘数。 S2 :乘数。 D :积。 将两个资料源: S1 及 S2 以有号数二进制方式相乘后的积存于 D 。 16 位 BIN 乘法运算: S1 S2 D +1 D b15..........b0 b15..........b0 b31..........b16b15..............b0 X= b15為符號位元 b15為符號位元 b31為符號位元(即D+1的b15) b15=0 S1為正數 b15=0 S2為正數 b31=0 D(D+1)為正數 b15=1 S1為負數 b15=1 S2為負數 b31=1 D(D+1)為負數 D 为位装置时,可指定 K1~K4 构成 16 位,占用连续 2 组。 程式範例 16 位 DO 乘上 16 位 D10 其结果是 32 位之积,上 16 位存于 D21,下 16 位存于 D20 内,结果之正负由最左边位之 Off/On 来代表正或负值。 X0 MUL D0 D10 D20 MUL D0 D10 K8M0 16-57
API S1 S2 D BIN 除法 23 D DIV P 位装置 字符装置 16 位指令 (7 STEP) X Y M K H KnX KnY KnM T C D DIV 连续执行型 DIVP 脉波执行型 S1 * * * * * * * * S2 * * * * * * * * 32 位指令 (13 STEP) D * * * * * DDIV 连续执行型 DDIVP 脉波执行型 操作数使用注意: 旗标信号:无 16 位指令 D 操作数会占用连续 2 点 指令說明 S1 :被除数。 S2 :除数。 D :商及余数。 将两个资料源: S1 及 S2 以有号数二进制方式相除后的商及余数存于 D 。必须注意 16 位运算时, S1 , S2 及 D 的符号位。 16 位 BIN 除法运算: 商數 餘數 S1 S2 D D +1 b15..........b0 b15..........b0 b31..........b16b15..............b0 /= D 为位装置时,可指定 K1~K4 构成 16 位,占用连续 2 组得到商及余数。 程式範例 当 X0=On 时,被除数 D0 除以除数 D10 而结果商被指定放于 D20,余数指定放于 D21 内。所得结果之正负由最高位位之 Off/On 来代表正或负值。 X0 DIV D0 D10 D20 DIV D0 D10 K4Y0 16-58
PLC 功能应用 API D BIN 加一 24 D INC P 位装置 字符装置 16 位指令 (3 STEP) X YM K H KnX KnY KnM T CD INC 连续执行型 INCP 脉波执行型 D *** DINCP 脉波执行型 操作数使用注意:无 ** 32 位指令 (5 STEP) DINC 连续执行型 旗标信号:无 指令說明 D :目的地装置。 若指令不是脉波执行型,则当指令执行时,程序每次扫描周期被指定的装置 D 内 容都会加 1。 本指令一般都是使用脉波执行型指令(INCP)。 16 位运算时,32,767 再加 1 则变为-32,768。32 位运算时,2,147,483,647 再加 1 则变为-2,147,483,648。 程式範例 当 X0=Off→On 时,D0 内容自动加 1。 X0 INCP D0 16-59
API D BIN 减一 25 D DEC P 16 位指令 (3 STEP) 位装置 字符装置 C D DEC 连续执行型 DECP 脉波执行型 XYM K H KnX KnY KnM T 32 位指令 (5 STEP) D ** DDEC 连续执行型 DDECP 脉波执行型 操作数使用注意:无 旗标信号:无 指令說明 D :目的地装置。 若指令不是脉波执行型,则当指令执行时,程序每次扫描周期被指定的装置 D 内 容都会加 1。 本指令一般都是使用脉波执行型指令(DECP)。 16 位运算时,-32,768 再减 1 则变为 32,767。32 位运算时,-2,147,483,648 再减 1 则变为 2,147,483,647。 程式範例 当 X0=Off→On 时,D0 内容自动减 1。 X0 DECP D0 16-60
PLC 功能应用 API Dn 右旋转 30 D ROR P 位装置 字符装置 16 位指令 (5 STEP) X Y M K H KnX KnY KnM T C D ROR 连续执行型 RORP 脉波执行型 D ***** n ** 32 位指令(9 STEP) DROR 连续执行型 DRORP 脉波执行型 操作数使用注意: D 操作数若指定为 KnY、KnM 时,只有 K4(16 位)有效 旗标信号:M1022 进位旗号 Carry flag n 操作数 n=K1~K16(16 位) 指令說明 D :欲旋转之装置。 n :一次旋转之位数。 将 D 所指定的装置内容一次向右旋转 n 个位。 本指令一般都是使用脉波执行型指令(RORP)。 程式範例 当 X0=Off→On 变化时,D10 的 16 个位以 4 个位为一组往右旋转,如下图所示标 明※的位内容被传送至进位旗号信号 M1022 内。 X0 RORP D10 K4 右旋轉 上位 下位 D10 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 M1022 進位旗標 ※ 1 6個 位 元 一次旋轉後 上位 下位 D10 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 0 M1022 ※ ※ 16-61
API Dn 左旋转 31 D ROL P 位装置 字符装置 16 位指令 (5 STEP) X Y M K H KnX KnY KnM T C D ROL 连续执行型 ROLP 脉波执行型 D ***** n ** 32 位指令(9 STEP) 操作数使用注意: DROL 连续执行型 DROLP 脉波执行型 D 操作数若指定为 KnY、KnM 时,只有 K4(16 位)有效 旗标信号:M1022 进位旗号 Carry flag n 操作数 n=1~16(16 位) 指令 說明 D :欲旋转之装置。 n :一次旋转之位数。 将 D 所指定的装置内容一次向左旋转 n 个位。 本指令一般都是使用脉波执行型指令(ROLP)。 程式範例 当 X0=Off→On 变化时,D10 的 16 个位以 4 个位为一组往左旋转,如下图所示标 明※的位内容被传送至进位旗号信号 M1022 内。 X0 ROLP D10 K4 上位 ※ 左旋轉 下位 M1022 進位旗標 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 D10 1 6個 位 元 一次旋轉後 上位 下位 M1022 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 D10 ※ ※ 16-62
PLC 功能应用 API ZRST D1 D2 区域清除 P 40 位装置 字符装置 16 位指令 (5 STEP) X Y M K H KnX KnY KnM T C D ZRST 连续执行型 ZRSTP 脉波执行型 - - D1 * * *** - D2 * * * * * 32 位指令 操作数使用注意: - D1 操作数编号≦ D2 操作数编号 旗标信号:无 D1、D2 操作数必须指定相同类型装置 各装置使用范围请参考各系列机种功能规格表 指令 說明 D1:区域清除起始装置。D2:区域清除结束装置。 当 D1 操作数编号>D2 操作数编号时,只有 D2 指定之操作数被清除。 程式範例 当 X0 为 On 时,辅助继电器 M300 ~ M399 被清除成 Off。 当 X1 为 On 时,16 位计数器 C0 ~ C127 全部清除。(写入 0,并将接点及线圈清除 成 Off)。 当 X10 为 On 时,定时器 T0 ~ T127 全部清除。(写入 0,并将接点及线圈清除成 Off)。 当 X3 为 On 时,数据缓存器 D0 ~ D100 数据被清除为 0。 X0 ZRST M300 M399 X1 ZRST C0 C127 X10 ZRST T0 T127 X3 ZRST D0 D100 補充說明 装置可以单独使用清除指令(RST),如位装置 Y、M 和字符装置 T、C、D。 X0 RST M0 RST T0 RST Y0 16-63
API BIN 整数→2 进小数点变换 49 D FLT P 位装置 字符装置 16 位指令 - X Y M K H KnX KnY KnM T C D - - - DFLTP 脉波执行型 S *** 32 位指令 (9 STEP) DFLT 连续执行型 D *** 操作数使用注意:各装置使用范围请參考各系列机种功能规格表 D 操作数会占用連续 2 点 旗标信号:无 指令說明 S:变换来源装置。D:存放变换结果之装置。 将 BIN 整数变换成 2 进小数点值。 程式範例 当 X11 为 On 时,把 D0 和 D1 所对应的整数值转换为浮点数表示法并放入到 D20 和 D21。 16-64
PLC 功能应用 API MODRW MODBUS 数据读写 P 150 位装置 字符装置 16 位指令 (5 STEP) X Y M K H KnX KnY KnM T C D MODRW 连续执行型 MODRW 脉波执行型 S1 ** * P S2 * * * 32 位指令 S3 * * *- - - - S * n ** * 旗标信号:M1077 M1078 M1079 指令說明 S1:联机装置地址。 S2:通讯功能码。 S3:欲读写数据的地址。 S:欲读写之 数据存放缓存器。 n:读写数据长度。 使用此指令之前,需把 COM1 定义为由 PLC 所控制( 设 P09-31 = -12 )。再设定对 应的通讯速度和格式( 设 P09-01 和 09-04 )。S2:通讯功能码 (Function Code)。 目前仅支持下述功能码,其余功能码将无法执行。 Function 说明 H 02 Input 读取 H 03 读取 Word H 06 写入单个 Word H 0F 写入多个 Coil H 10 写入单个 Word 执行此指令后,会把 M1077 M1078 M1079 马上便变为 0。 举例来说,如果 C2000 想控制另一台变频器和 PLC,如果变频器的站号是 10,而 PLC 站号是 20 的话,以下是范例: 控制从机的变频器 MODRW 指令 编号 范例 S1 S2 S3 S4 n 站号 功能码 地址 缓存器 长度 1 读取变频器从机参数 P01-00~P01-03 K10 H3 H100 D0 K4 共 4 笔数据,并把读到的存放在 D0~D3 2 读取变频器从机地址 H2100~H2102 共 K10 H3 H2100 D5 K3 3 笔数据,并把读到的存放在 D5~D7 H10 H500 D10 K3 H10 H 000 D15 K2 写入变频器从机参数 P05-00~P05-03 K10 3 共 3 笔资料,写入的值分别为 D10~D12 4 写入变频器从机地址 H2000~H2001 共 K10 2 笔资料,写入的值分别为 D15~D16 16-65
控制从机的 PLC 编号 范例 S1 MODRW 指令 n 站号 S2 S3 S4 长度 功能码 地址 缓存器 K4 1 读取 PLC 从机的 X0~X3 状态共 4 笔 K20 K4 数据,并把读到的存放在 D0 的 bit 0 ~ 3 H2 H400 D0 K4 K4 读取 PLC 从机的 Y0~Y3 状态共 4 笔 H2 H500 D1 K4 2 K20 K4 K4 数据,并把读到的存放在 D1 的 bit 0 ~ 3 K4 K4 读取 PLC 从机的 M0~M3 状态共 4 笔 H2 H800 D2 K4 3 K20 K4 K4 数据,并把读到的存放在 D2 的 bit 0 ~ 3 K4 K4 读取 PLC 从机的 T0~T3 状态共 4 笔数 H2 H600 D3 K4 4 K20 据,并把读到的存放在 D3 的 bit 0 ~ 3 读取 PLC 从机的 C0~C3 状态共 4 笔 H2 HE00 D4 5 K20 数据,并把读到的存放在 D4 的 bit 0 ~ 3 读取 PLC 从机的 T0~T3 计数值共 4 笔 H3 H600 D 0 6 K20 数据,并把读到的存放在 D10~D13 读取 PLC 从机的 C0~C3 计数值共 4 K20 H3 HE00 D20 7 笔数据,并把读到的存放在 D20~D23 读取 PLC 从机的 D0~D3 计数值共 4 K20 H3 H1000 D30 8 笔数据,并把读到的存放在 D30~D33 写入 PLC 从机的 Y0~Y3 状态共 4 笔 K20 HF H500 D1 9 数据,写入的值分别为 D1 的 bit 0 ~ 3 写入 PLC 从机的 M0~M3 状态共 4 笔 HF H80 D2 10 K20 数据,写入的值分别为 D2 的 bit 0 ~ 3 写入 PLC 从机的 T0~T3 状态共 4 笔数 HF H600 D3 11 K20 据,写入的值分别为 D3 的 bit 0 ~ 3 写入 PLC 从机的 C0~C3 状态共 4 笔 K20 HF HE00 D4 12 数据,写入的值分别为 D4 的 bit 0 ~ 3 写入 PLC 从机的 T0~T3 计数值共 4 笔 H10 H600 D10 13 K20 资料,写入的值分别为 D10~D13 写入 PLC 从机的 C0~C3 计数值共 4 K20 H10 HE00 D20 14 笔资料,写入的值分别为 D20~D23 写入 PLC 从机的 D0~D3 计数值共 4 K20 H10 H1000 D30 15 笔资料,写入的值分别为 D30~D33 16-66
PLC 功能应用 程式範例 一开始运行 PLC 时会触发 M0 ON,并传送执行一次 MODRW 的指令。 当收到从机的响应后,如果正确指令,则会执行一次 ROL 指令,此时会让 M1 On 起来。 当收到从机的响应后,延迟 10 次 PLC 的扫描周期后,触发 M50 = 1,进而又再执 行一次 MODRW 的指令。 当又再收到从机的响应后,如果正确指令,则会执行一次 ROL 指令,此时会让 M2 On 起来,(而 M2 可定义为 repeat M)会把 K4M0 再变成 K1,也就是只剩 M0 为 1,进而可以不断循环的传送。如要增加传送命令,则只需在虚框中加入欲增加的 命令,以及把 repeat M 改为 Mn+1 即可。 M1002 MOV K1 K4 M0 0 啟始 正 向(RUN的 瞬間) M2 Mn+1 M1002 M0 MODR W K 1 H 3 H 406 4 D 100 K 1 7 MODR W K 1 H 3 H 406 A D 200 K 4 啟始 正 向(RUN的 瞬間) MODR W . .. MODR W . .. M50 M1 ROLP K 4M0 K 1 Mn-1 Mn INC D 30 MOV K 0 D 30 35 M1 077 M107 8 M10 79 ( M50 ) 485讀 寫 485讀寫 485讀寫 END 完成 錯 誤 超時 M1 077 43 485讀 寫 完成 D 30 K10 58 16-67
API ECMP 二进浮点数比较 D 110 P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - -- DECMPP 脉波执行型 S1 * * * * 32 位指令(13 STEP) D:比较结果,占用连 S2 * * * DECMP 连续执行型 D 操作数使用注意: D 操作数会占用连续 3 点 旗标信号:无 各装置使用范围请参考各系列机种功能规格表 指令 說明 S1:二进浮点数比较值 1。 S2:二进浮点数比较值 2。 续 3 点。 二进浮点数 1 与二进浮点数比较值 2 作比较,比较的结果(>、=、<)在 D 作 表示。 S1 或 S2 来源操作数若是指定常数 K 或 H 的话,指令会将该常数变换成二进浮点 数来作比较。 程式範例 指定装置为 M10,则自动占有 M10~M12。 当 X0=On 时,DECMP 指令执行,M10~M12 其中之一会 On,当 X0=Off 时,DECMP 指令不执行,M10~M12 状态保持在 X0=Off 之前的状态。 若需要得到≧、≦、≠之结果时,可将 M10~M12 串并联即可取得。 若要清除其结果请使用 RST 或 ZRST 指令。 X0 DECMP D0 D100 M10 M10 (D1,D0)>(D101,D100) 時,為 On M11 (D1,D0)=(D101,D100) 時,為 On M12 (D1,D0)<(D101,D100) 時,為 On 16-68
PLC 功能应用 API 二进浮点数区域比较 111 D EZCP P 位装置 字符装置 16 位指令 - X Y M K H KnX KnY KnM T C D - - - * S1 * * S2 * * * 32 位指令(17 STEP) S ** * DEZCP 连续执行型 DEZCPP 脉波执行型 D ** 操作数使用注意: 旗标信号:无 D 操作数会占用连续 3 点 各装置使用范围请参考各系列机种功能规格表 指令 說明 S1:区域比较之二进浮点数下限值。 S2:区域比较之二进浮点数上限值。 S: 二进浮点数比较值。 D:比较结果,占用连续 3 点。 二进浮点数比较值 S 与二进浮点数下限值 S1 及二进浮点数上限值 S2 作比较, 其比较结果在 D 作表示。 S1 或 S2 来源操作数若是指定常数 K 或 H 的话,指令会将该常数变换成二进浮点 数来作比较。 当二进浮点数下限值 S1 大于二进浮点数上限值 S2 时,则指令以二进浮点数下限 值 S1 作为上下限值进行比较。 程式範例 指定装置为 M0,则自动占有 M0~ M2。 当 X0=On 时,DEZCP 指令执行,M0~M2 其中之一会 On,当 X0=Off 时,EZCP 指令不执行,M0~M2 状态保持在 X0=Off 之前的状态。 若要清除其结果请使用 RST 或 ZRST 指令。 X0 DEZCP D0 D10 D20 M0 M0 (D1,D0) > (D21,D20) 時,為 On M1 (D1,D0) < (D21,D20) < (D11,D10) 時,為 On M2 (D21,D20) > (D11,D10) 時,為 On 16-69
API 角度→径度 116 D RAD P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S ** * * 32 位指令(9 STEP) D DRADP 脉波执行型 DRAD 连续执行型 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:数据源(角度)。 D:变换之结果(径度)。 使用下列公式将角度转换成径度。 径度=角度 × (π/180) 程式範例 当 X0=On 时,指定二进浮点数(D1,D0)之角度值,将角度转换成径度值后存于 (D11,D10) 当中,内容为二进浮点数。 X0 DRAD D0 D10 D 1 D 0 角度值 2 進浮點數 D 11 D 10 RAD值 (角 度 X π/ 180) 2 進浮點數 16-70
PLC 功能应用 API 径度→角度 117 D DEG P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S ** * * 32 位指令 (9 STEP) D DDEGP 脉波执行型 DDEG 连续执行型 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:数据源(径度)。 D:变换之结果(角度)。 使用下列公式将径度转换成角度。 角度=径度 × (180/π) 程式範例 当 X0=On 时,指定二进浮点数(D1,D0)之角度值,将径度值转换成角度后存于 (D11,D10) 当中,内容为二进浮点数。 X0 DDEG D0 D10 D 1 D 0 徑度值 二進浮點數 D 11 D 10 角度值 ( 徑度值 x180/π) 二進浮點數 16-71
API 二进浮点数加算 120 D EADD P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S1 * * * * 32 位指令 (9 STEP) S2 * * * DEADD 连续执行型 DEADDP 脉波执行型 D 操作数使用注意: 旗标信号:无 各装置使用范围请参考各系列机种功能规格表 指令 說明 S1:被加数。 S2:加数。 D:和。 S1 所指定的缓存器内容加上 S2 所指定的缓存器内容,和被存放至 D 所指定的 缓存器当中,加算的动作全部以二进浮点数型态进行。 S1 或 S2 来源操作数若是指定常数 K 或 H 的话,指令会将该常数变换成二进浮点 数来作加算。 S1 及 S2 可指定相同的缓存器编号,此种情况下若是使用”连续执行”型态的指令 时,在条件接点 On 的期间,该缓存器于每一次扫描时,均会被加算一次,一般的 情况下都是使用脉波执行型指令(DEADDP)。 程式範例 当 X0=On 时,将二进浮点数(D1,D0) + 二进浮点数(D3,D2),结果存放在(D11, D10)中。 X0 D2 D10 DEADD D0 当 X2=On 时,将二进浮点数(D11,D10) + K1234(自动变换为二进浮点数),结 果存放在(D21,D20)中。 X2 DEADD D10 K1234 D20 16-72
PLC 功能应用 API 二进浮点数减算 121 D ESUB P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S1 * * * * 32 位指令 (13 STEP) S2 * * * DESUB 连续执行型 DESUBP 脉波执行型 D 操作数使用注意: 旗标信号:无 各装置使用范围请参考各系列机种功能规格表 指令 說明 S1:被减数。 S2:减数。 D:差。 S1 所指定的缓存器内容减掉 S2 所指定的缓存器内容,差被存放至 D 所指定的 缓存器当中,减算的动作全部以二进浮点数型态进行。 S1 或 S2 来源操作数若是指定常数 K 或 H 的话,指令会将该常数变换成二进浮点 数来作减算。 S1 及 S2 可指定相同的缓存器编号,此种情况下若是使用”连续执行”型态的指令 时,在条件接点 On 的期间,该缓存器于每一次扫描时,均会被减算一次,一般的 情况下都是使用脉波执行型指令(DESUBP)。 程式範例 当 X0=On 时,将二进浮点数(D1,D0) - 二进浮点数(D3,D2),结果存放在(D11, D10)中。 X0 D2 D10 DESUB D0 当 X2=On 时,将 K1234(自动变换为二进浮点数) - 二进浮点数(D1,D0) ,结 果存放在(D11,D10)中。 X2 DESUB K1234 D0 D10 16-73
API 二进浮点数乘算 122 D EMUL P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S1 * * * * 32 位指令(13 STEP) S2 * * * DEMUL 连续执行型 DEMULP 脉波执行型 D 操作数使用注意: 旗标信号:无 各装置使用范围请参考各系列机种功能规格表 指令 說明 S1:被乘数。 S2:乘数。 D:积。 S1 所指定的缓存器内容乘上 S2 所指定的缓存器内容,积被存放至 D 所指定的 缓存器当中,乘算的动作全部以二进浮点数型态进行。 S1 或 S2 来源操作数若是指定常数 K 或 H 的话,指令会将该常数变换成二进浮点 数来作乘算。 S1 及 S2 可指定相同的缓存器编号,此种情况下若是使用”连续执行”型态的指令 时,在条件接点 On 的期间,该缓存器于每一次扫描时,均会被乘算一次,一般的 情况下都是使用使用脉波执行型指令(DEMULP)。 程式範例 当 X1=On 时,将二进浮点数(D1,D0)乘上二进浮点数(D11,D10)将积存放至(D21, D20)所指定的缓存器当中。 X1 DEMUL D0 D10 D20 当 X2=On 时,将 K1234(自动变换为二进浮点数) × 二进浮点数(D1,D0) ,结果 存放在(D11,D10)中。 X2 DEMUL K1234 D0 D10 16-74
PLC 功能应用 API 二进浮点数除算 123 D EDIV P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S1 * * * * 32 位指令(13 STEP) S2 * * * DEDIV 连续执行型 DEDIVP 脉波执行型 D 操作数使用注意: 旗标信号:无 各装置使用范围请参考各系列机种功能规格表 指令 說明 S1:被除数。 S2:除数。 D:商及余数。 S1 所指定的缓存器内容除以 S2 所指定的缓存器内容,商被存放至 D 所指定的 缓存器当中,除算的动作全部以二进浮点数型态进行。 S1 或 S2 来源操作数若是指定常数 K 或 H 的话,指令会将该常数变换成二进浮点 数来作除算。 程式範例 当 X1=On 时,将二进浮点数(D1,D0)除以二进浮点数(D11, D10)将商存放至(D21,D20)所指定的缓存器当中。 X1 DEDIV D0 D10 D20 当 X2=On 时,将二进浮点数(D1,D0)÷K1,234(自动变换为二进浮点数),结果存 放在(D11,D10)中。 X2 DEDIV D0 K1234 D10 16-75
API 二进浮点数取指数 124 D EXP P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S ** * * 32 位指令(9 STEP) D DEXPP 脉波执行型 DEXP 连续执行型 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:运算来源装置。 D:运算结果装置。 以 e =2.71828 为底数, S 为指数做 EXP 运算。 [ D +1,D ]=EXP [ S +1,S ] S 内容正负数都有效,指定 D 缓存器时必须使用 32 位数据格式,运算时均 以浮点数方式执行,故 S 需转换为浮点数。 D 操作数内容值=e S ; e=2.71828, S 为指定的源数据 程式範例 当 M0 为 On 时,将(D1,D0)值转成二进浮点数存于(D11,D10)缓存器中。 当 M1 为 On 时,(D11,D10)为指数做 EXP 运算,其值为二进浮点数并存放 于(D21,D20)缓存器中。 M0 DFLT D0 D10 M1 DEXP D10 D20 16-76
PLC 功能应用 API 二进浮点数取自然对数 125 D LN P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - DLNP 脉波执行型 S ** * * 32 位指令(9 STEP) D DLN 连续执行型 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:运算来源装置。 D:运算结果装置。 以 e =2.71828 为底数, S 为指数做 EXP 运算。 [ D +1,D ]=EXP [ S +1,S ] S 内容正负数都有效,指定 D 缓存器时必须使用 32 位数据格式,运算时均 以浮点数方式执行,故 S 需转换为浮点数。 D 操作数内容值=e S ; e=2.71828, S 为指定的源数据 程式範例 当 M0 为 On 时,将(D1,D0)值转成二进浮点数存于(D11,D10)缓存器中。 当 M1 为 On 时,(D11,D10)为指数做 EXP 运算,其值为二进浮点数并存放 于(D21,D20)缓存器中。 M0 DFLT D0 D10 M1 DLN D10 D20 16-77
API ESQR 二进浮点数开平方根 DP 127 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S ** * * 32 位指令(9 STEP) D DESQR 脉波执行型 DESQR 连续执行型 P 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:欲开平方根来源装置。 D:开平方根之结果。 S 所指定的缓存器内容被开平方,所得的结果暂存于 D 所指定的缓存器内 容,开平方的动作全部以二进浮点数型态进行。 S 来源操作数若是指定常数 K 或 H 的话,指令会将该常数变换成二进浮点 数来作运算。 程式範例 当 X0=On 时,将二进浮点数(D1,D0)取开平方根,将结果存放至(D11,D10)所 指定的缓存器当中。 X0 DESQR D0 D10 (D1,D0) (D11,D10) 二進浮點數 二進浮點數 当 X2=On 时,将 K1,234(自动变换为二进浮点数) 取开平方根,结果存放在(D11, D10)中。 X2 DESQR K1234 D10 16-78
PLC 功能应用 API 二进浮点数→BIN 整数变换 129 D INT P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - 脉波执行型 S * * 32 位指令 (9 STEP) D DINTP DINT 连续执行型 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:欲变换之来源装置。 D:变换之结果。 S 所指定的缓存器内容以二进浮点数型态被变换成 BIN 整数暂存于 D 所指 定的缓存器当中,BIN 整数浮点数被舍弃。。 本指令的动作与 API 49(FLT)指令刚好相反。 程式範例 当 X0=On 时,将二进浮点数(D1,D0) 变换成 BIN 整数将结果存放至(D10)当中, BIN 整数浮点数被舍弃。 X0 DINT D0 D10 16-79
API SIN 二进浮点数 SIN 运算 DP 130 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - DSINP 脉波执行型 S ** * * 32 位指令(9 STEP) D DSIN 连续执行型 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:指定的来源值。 D:取 SIN 值结果。 S 所指定的来源固定为径度。 径度(RAD)值等于(角度 ×π/180)。 将 S 所指定的来源值,求取 SIN 值后存于 D 所指定的缓存器当中。 下图显示弧角与结果的关系: R S:弧角(弧度)資料 R:結果(SIN 值) 1 -2 - 3 -2 -2 0 3 2 S 2 2 -1 2 程式範例 当 X0=On 时,指定二进浮点数(D1,D0)之径度(RAD)值求取 SIN 值后存于 (D11, D10) 当中,内容为二进浮点数。 X0 DSIN D0 D10 D1 D0 RAD 值 (角度 X π/180) 2 進浮點數 D 11 D 10 SIN 值 2 進浮點數 16-80
PLC 功能应用 API 二进浮点数 COS 运算 131 D COS P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S ** * * 32 位指令(9 STEP) D DCOSP 脉波执行型 DCOS 连续执行型 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:指定的来源值。 D:取 COS 值结果。 S 所指定的来源可指定为径度或角度,由旗标 M1018 决定。 当 M1018=Off 时,指定为径度模式,径度(RAD)值等于(角度 ×π/180)。 当 M1018=On 时,指定为角度模式,角度范围:0°≦角度值<360°。 当计算结果若为 0 时, M1020=On。 将 S 所指定的来源值,求取 COS 值后存于 D 所指定的缓存器当中。 下图显示弧角与结果的关系: R S:弧角(弧度)資料 R:結果( COS 值) 1 -2 - 3 -2 -2 0 3 2 S 2 2 -1 2 程式範例 当 X0=On 时,指定二进浮点数(D1,D0)之径度值求取 COS 值后存于 (D11,D10) 当中,内容为二进浮点数。 X0 DCOS D0 D10 D1 D0 RAD 值 (角度 X π/180) 2 進浮點數 D1 D 10 COS 值 2 進浮點數 16-81
API 二进浮点数 TAN 运算 132 D TAN P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S ** * * 32 位指令(9 STEP) D DTANP 脉波执行型 DTAN 连续执行型 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:指定的来源值。 D:取 TAN 值结果。 S 所指定的来源可指定为径度或角度,由旗标 M1018 决定。 当 M1018=Off 时,指定为径度模式,径度(RAD)值等于(角度 ×π/180)。 当 M1018=On 时,指定为角度模式,角度范围:0°≦角度值<360°。 当计算结果若为 0 时, M1020=On。 将 S 所指定的来源值,求取 TAN 值后存于 D 所指定的缓存器当中。 下图显示弧角与结果的关系: R S:弧 角(弧度)資 料 R:結 果( TAN 值) 1 -2 - 3 -2 -2 02 3 2 S 2 2 -1 程式範例 当 X0=On 时,指定二进浮点数(D1,D0)之径度(RAD)值求取 TAN 值后存于 (D11, D10) 当中,内容为二进浮点数。 X0 DTAN D0 D10 D1 D0 RAD 值 (角度 X π/180) 2 進浮點數 D 11 D 10 TAN 值 2 進浮點數 16-82
PLC 功能应用 API 二进浮点数 ASIN 运算 133 D ASIN P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S ** * * 32 位指令(9 STEP) D DASINP 脉波执行型 DASIN 连续执行型 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:指定的来源(二进浮点数)。 D:取 ASIN 值结果。 ASIN 值=sin-1 下图显示输入数据与结果的关系: R S:輸 入資料(正弦值) R:ASIN 值結果(弧度) 2 -1,0 0 1,0 S -2 程式範例 当 X0=On 时,指定二进浮点数(D1,D0)求取 ASIN 值后存于(D11,D10) 当中,内 容为二进浮点数。 X0 DASIN D0 D10 D 1 D 0 2 進浮點數 D 11 D 10 ASIN 值 2 進浮點數 16-83
API ACOS 二进浮点数 ACOS 运算 DP 134 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S ** * * 32 位指令(9 STEP) D DACOS 脉波执行型 DACOS 连续执行型 P 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:指定的来源(二进浮点数)。 D:取 ACOS 值结果。 ACOS 值=cos-1 下图显示输入数据与结果的关系: R S:輸 入資料(餘弦 值) R:ACOS 值結果(弧度) 2 1,0 S -1,0 0 程式範例 当 X0=On 时,指定二进浮点数(D1,D0)求取 ACOS 值后存于(D11,D10) 当中, 内容为二进浮点数。 X0 DACOS D0 D10 D 1 D 0 2 進浮點數 D 11 D 10 ACOS 值 2 進浮點數 16-84
PLC 功能应用 API 二进浮点数 ATAN 运算 135 D ATAN P 位装置 字符装置 16 位指令 X Y M K H KnX KnY KnM T CD - - - - S ** * * 32 位指令(9 STEP) D DATAN 连续执行型 DATANP 脉波执行型 操作数使用注意: 各装置使用范围请参考各系列机种功能规格表 旗标信号:无 指令說明 S:指定的来源(二进浮点数)。 D:取 ATAN 值结果。 ATAN 值=tan-1 下图显示输入数据与结果的关系: R S:輸 入資料(正切 值) R:ATAN 值結果(弧 度) 2 S 0 -2 程式範例 当 X0=On 时,指定二进浮点数(D1,D0)求取 TAN 值后存于(D11,D10) 当中,内 容为二进浮点数。 X0 DATAN D0 D10 D 1 D 0 2 進浮點數 D 11 D 10 ATAN 值 2 進浮點數 16-85




