PLC教程理论篇之PLC 的位移与步进指令及其应用一
plc指令sftl的用法

PLC指令SFTL的用法1. 简介PLC(可编程逻辑控制器)是一种专门用于工业自动化控制的电子设备。
PLC指令是PLC程序中的核心部分,其中SFTL(存储数据移位)指令是常用的一种指令。
本文将深入探讨PLC指令SFTL的用法及其在工业自动化中的应用。
2. SFTL指令概述SFTL指令用于将存储器中的数据按指定位数进行移位操作。
它可以实现数据的左移、右移、循环位移等功能,用于处理并控制大量的数据。
SFTL指令具有灵活性和高效性,能够加快数据处理和传输速度,提高自动化控制系统的性能。
3. SFTL指令语法SFTL指令的语法如下:SFTL destination, source, shift_amount, shift_direction, fill_mode •destination:目标存储器,存储移位后的数据。
•source:源存储器,包含待移位的数据。
•shift_amount:移位数量,即要移动的位数。
•shift_direction:移位方向,可以是左移或右移。
•fill_mode:填充模式,用于指定在移位过程中空出的位的填充方式。
4. SFTL指令用法示例下面是一些使用SFTL指令的具体示例:4.1 左移示例SFTL D100, D200, 8, LEFT, 0以上示例将D200中的数据左移8位,并将结果存储在D100中。
左移操作会将D200的数据向左移动8位,右侧空出的位将填充为0。
4.2 右移示例SFTL D100, D200, 4, RIGHT, 1以上示例将D200中的数据右移4位,并将结果存储在D100中。
右移操作会将D200的数据向右移动4位,左侧空出的位将填充为1。
4.3 循环位移示例SFTL D100, D200, 16, CYCLIC_LEFT, 1以上示例将D200中的数据进行循环左移16位,并将结果存储在D100中。
循环位移操作会将D200的数据循环左移16位,即最左边的16位会移到最右边,同时左侧空出的位填充为1。
PLC欧姆龙的基本操作指令及常用程序设计

PLC欧姆龙的基本操作指令及常用程序设计PLC(Programmable Logic Controller),中文名可编程控制器,是一种以微处理器为核心,可存储程序控制、逻辑操作、序列控制和定时控制等运算的工业数字控制器。
PLC广泛应用于工厂、机器设备、输配电自动化等各种领域的自动化控制中。
PLC的操作指令又称为PLC的指令集,是PLC软件编程的基本元素。
欧姆龙是PLC市场上的知名品牌,今天我们将介绍欧姆龙PLC的基本操作指令及常用程序设计。
指令集介绍欧姆龙PLC的指令集分为以下几个部分:I/O控制指令I/O控制指令是最基本的指令,主要用于PLC的输入和输出信号的处理。
指令名功能描述IN 读取输入信号OUT 输出控制信号SET 置位指定位RST 复位指定位NOT 取反指定位运算控制指令运算控制指令包含各种运算符和运算指令,可进行基本运算和逻辑运算,包括加减乘除、与或非等运算。
指令名功能描述ADD 两数相加SUB 两数相减MUL 两数相乘DIV 两数相除MOD 两数取模AND 两数按位与OR 两数按位或XOR 两数按位异或NOT 操作数取反计数器控制指令计数器控制指令主要用于制作计算某个量的计数器程序,通常包括计数器的设置、清除、增加、减少等操作。
指令名功能描述SET 设置计数器CLR 清除计数器INC 计数器递增DEC 计数器递减定时器控制指令定时器控制指令主要用于制作测量时间的的程序,通常包括定时器的设置、清除、开始、停止等操作。
指令名功能描述TIM 开启定时器TOF 定时器到达时间RST 清除定时器移位指令移位指令主要用于实现数据的移位操作,包括左移、右移、循环移位等操作。
指令名功能描述SLW 左移指定位数SRW 右移指定位数ROL 左旋指定位数ROR 右旋指定位数SLO 变量绕环移位SRO 变量绕环移位常用程序设计除了上述指令集外,欧姆龙PLC还支持多种常用程序设计方式。
下面简要介绍常用程序设计方式的概念和使用方法。
三菱PLC功能指令

三菱PLC功能指令1.位操作指令:位操作指令用于读取、写入和修改位级别的数据。
常见的位操作指令包括LD(逻辑与)、ORR(逻辑或)、AND(逻辑与)、XOR(异或)等。
2.数据操作指令:数据操作指令用于读取、写入和修改字节、字和双字级别的数据。
常见的数据操作指令包括MOV(赋值)、ADD(加法)、SUB(减法)、MUL(乘法)、DIV(除法)等。
3.计数器指令:计数器指令用于实现计数功能。
有三种类型的计数器指令:上升沿计数器、下降沿计数器和阶段计数器。
计数器指令可以用于进行数量统计、进度监测等应用。
4.定时器指令:定时器指令用于实现定时功能。
有两种类型的定时器指令:上升沿定时器和下降沿定时器。
定时器指令可以用于进行时间监测、延时操作等应用。
5.移位指令:移位指令用于将数据的位进行移动。
常见的移位指令包括SHL(左移)、SHR(右移)等。
移位指令通常用于数据处理和位拼接等应用。
6.比较指令:比较指令用于比较两个数值的大小。
常见的比较指令包括CMP(比较)、EQ(等于)、NE(不等于)、GT(大于)等。
比较指令可以用于实现条件判断和逻辑控制等应用。
7.转移指令:转移指令用于控制程序的流程。
常见的转移指令包括JMP(无条件跳转)、JE(等于时跳转)、JNE(不等于时跳转)、JG(大于时跳转)等。
转移指令可以用于实现程序的循环和条件判断等应用。
8.存储器控制指令:存储器控制指令用于读取和写入存储器的数据。
常见的存储器控制指令包括LD(读取)、ST(写入)等。
存储器控制指令可以用于实现数据存储和加载等应用。
9.数学指令:数学指令用于实现各种数学运算。
常见的数学指令包括SIN(正弦)、COS(余弦)、SQRT(平方根)等。
数学指令可以用于实现数据处理和数值计算等应用。
10.基本运算指令:基本运算指令用于实现基本的数值运算。
常见的基本运算指令包括加法、减法、乘法和除法等。
基本运算指令通常用于实现逻辑计算和数据处理等应用。
PLC常用指令(很全的)

一、顺控指令1 触点指令00 LD 逻辑操作开始01 LDI 逻辑非操作开始02 AND 逻辑乘03 ANI 逻辑乘非04 OR 逻辑加05 ORI 逻辑加非2 连接指令06 ANB AND逻辑块与07 ORB OR逻辑块或08 MPS 存储操作结果09 MRD 从MPS读取操作结果10 MPP 从MPS读取操作结果并清除结果3 输出指令11 OUT 软元件输出12 SET 软元件置位13 RST 软元件复位14 PLS 在输入信号的上升沿15 PLF 在输入信号的下降沿16 CHK 软元件输出翻转4 移位指令17 SFT 元件移1位18 SFTP 元件移1位5 主控指令19 MC 主控开始20 MCR 主控复位6 结束指令21 FEND 结束主程序22 END 总的程序末尾,返回第0步7 其它指令23 STOP 停止24 NOP 空操作二基本指令1 比较指令16位数据比较25 LD= 当S1=S2, 接通,当S1≠S2, 断开26 AND=27 OR=28 LD<> 当S1≠S2, 接通,当S1=S2, 断开29 AND<>30 OR<>31 LD> 当S1>S2, 接通,当S1≤S2, 断开32 AND>33 OR>34 LD<= 当S1≤S2, 接通,当S1>S2, 断开35 AND<=36 OR<=37 LD< 当S1<S2, 接通,当S1≥S2, 断开38 AND<39 OR<40 LD>= 当S1≥S2, 接通,当S1<S2, 断开41 AND>=42 OR>=32位数据比较43 LDD= 当(S1+1,S1)=(S2+1,S2), 接通44 ANDD=45 ORD=46 LDD<> 当(S1+1,S1)≠(S2+1,S2),接通47 ANDD<>48 ORD<>49 LDD> 当(S1+1,S1)>(S2+1,S2), 接通50 ANDD>51 ORD>52 LDD<= 当(S1+1,S1)≤(S2+1,S2),接通53 ANDD<=54 ORD<=55 LDD< 当(S1+1,S1)<(S2+1,S2), 接通56 ANDD<57 ORD<58 LDD>= 当(S1+1,S1)≥(S2+1,S2),接通59 ANDD>=60 ORD>=2 算术运算指令二进制16位加/减61 + (D)+(S)→(D)62 +P63 + (S1)+(S2)→(D)64 +P65 - (D)-(S)→(D)66 -P67 - (S1)-(S2)→(D)68 -P二进制32位加/减69 D+ (D+1,D)+(S+1,S)→(D+1,D)70 D+P71 D+ (S1+1,S1)+(S2+1,S2)→(D+1,D)72 D+P73 D- (D+1,D)-(S+1,S)→(D+1,D)74 D-P75 D- (S1+1,S1)-(S2+1,S2)→(D+1,D)76 D-P 77 * (S1)×(S2)→(D+1,D)78 *P79 / (S1)/(S2)→商(D), 余数(D+1)80 /P81 D* (S1+1,S1)×(S2+1,S2)→(D+3,D+2,D+1,D)82 D*P83 D/ (S1+1,S1)/(S2+1,S2)→商(D+1,D),余数(D+3,D+2)84 D/P85 B+ (D)+(S)→(D)86 B+P87 B+ (S1)+(S2)→(D)88 B+P89 B- (D)-(S)→(D)90 B-P91 B- (S1)-(S2)→(D)92 B-P93 DB+ (D+1,D)+(S+1,S) →(D+1,D)94 DB+P95 DB+ (S1+1,S1)+(S2+1,S2)→(D+1,D)96 DB+P97 DB- (D+1,D)-(S+1,S)→(D+1,D)98 DB-P99 DB- (S1+1,S1)-(S2+1,S2)→(D+1,D)100 DB-P101 B* (S1)×(S2)→(D+1,D)102 B*P103 B/ (S1)/(S2)→商(D),余数(D+1)104 B/P105 DB* (S1+1,S1)×(S2+1,S2)→(D+3,D+2,D+1,D)106 DB*P107 DB/ (S1+1,S1)/(S2+1,S2)→商(D+1,D),余数(D+3,D+2)108 DB/P109 INC (D)+1→(D)110 INCP111 DINC (D+1,D)+1→(D+1,D)112 DINCP113 DEC (D)-1→(D)114 DECP115 DDEC (D+1,D)-1→(D+1,D)116 DDECP3 BCD—二进制转换117 BCD (S)→(D)BCD转换118 BCDP119 DBCD (S+1,S)→(D+1,D)120 DBCDP121 BIN (S)→(D)二进制转换122 BINP123 DBIN (S+1,S)→(D+1,D)124 DBINP4 数据传送指令125 MOV (S)→(D)126 MOVP127 DMOV (S+1,S)→(D+1,D)128 DMOVP129 CML (S)→(D)130 CMLP131 DCML (S+1,S)→(D+1,D)132 DCML133 DCMLP134 BMOV (S)→(D)n个135 BMOVP136 FMOV (S)→(D)n个137 FMOVP138 XCH (D1)←→(D2)139 XCHP140 DXCH (D1+1,D1)←→(D2+1,D2) 141 DXCHP5 程序分支指令142 CJ 条件满足,跳转到P**处143 SCJ 条件满足后紧接的扫描周期,跳转到P**处144 JMP 无条件跳转到P**处145 CALL 执行P**处子程序146 CALLP147 RET 从子程序返回148 EI 允许中断149 DI 禁止中断150 IRET 从中断程序返回151 SUB 执行n指定的程序152 SUBP6 程序切换指令153 CHG 在主副程序间切换7 刷新指令154 COM 执行通讯刷新155 EI 允许通讯刷新156 DI 禁止通讯刷新157 SEG 对应软元件的刷新,仅执行1个扫描周期,M9052 ON时有效三应用指令1 逻辑运算指令158 WAND (D) AND (S)→(D)159 WANDP160 WAND (S1) AND (S2)→(D)161 WANDP162 DAND (D+1,D) AND (S+1,S)→(D+1,D)163 DANDP164 WOR (D) OR (S)→(D)165 WORP166 WOR (S1) OR (S2)→(D)167 WORP168 DOR (D+1,D) OR (S+1,S)→(D+1,D)169 DORP170 WXOR (D) XOR (S)→(D)异或171 WXORP172 WXOR (S1) XOR (S2)→(D)173 WXORP174 DXOR (D+1,D) XOR (S+1,S)→(D+1,D)175 DXORP176 WXNR (D) XOR (S)→(D)177 WXNRP178 WXNR (S1) XOR (S2)→(D)179 WXNRP180 DXNR (D+1,D) XOR (S+1,S)→(D+1,D)181 DXNRP182 NEG 0-(D)→(D)补码183 NEGP2 旋转指令184 ROR n位右转185 RORP186 RCR n位右转(带进位)187 RCRP188 ROL n位左转189 ROLP190 RCL n位左转(带进位)191 RCLP192 DROR n位右转193 DRORP194 DRCR n位右转(带进位)195 DRCRP196 DROL n位左转197 DROLP198 DRCL n位左转(带进位)199 DRCLP3 移位指令200 SFR n位右移201 SFRP202 SFL n位左移203 SFLP204 BSFR 1位右移205 BSFRP206 BSFL 1位左移207 BSFLP208 DSFR 1位右移209 DSFRP210 DSFL 1位左移211 DSFLP4 数据处理指令212 SER 数据搜索213 SERP214 SUM 位检查215 SUMP216 DSUM217 DSUMP218 DECO 译码编码219 DECOP220 ENCO221 ENCOP222 SEG 7段编码223 BSET 对字中n位置位224 BSETP225 BRST 对字中n位复位226 BRSTP227 DIS 组合分离228 DISP229 UNI230 UNIP231 ASC ASCII转化5 先进先出指令232 FIFW FIFO写233 FIFWP234 FIFR FIFO读235 FIFRP6 内存缓冲区存取指令236 FROM 从特殊功能模块读取数据237 FROMP238 DFRO239 DFROP240 TO 向特殊功能模块写数据241 TOP242 DTO243 FROM 从远程I/O站读数据244 FROMP245 DFRO246 DFROP247 TO 向远程站写数据248 TOP249 DTO250 DTOP7 FOR/NEXT指令251 FOR 重复n次252 NEXT8 本地站、远程I/O站存取指令253 LRDP 从本地站读数据254 LWTP 向本地站写数据255 RFRP 从远程特殊功能模块读数据256 RTOP 向远程特殊功能模块写数据9 显示指令257 PR 从指定的8点字软元件输出16个字符的ASCII码258 PR 顺序向输出模块输出ASCII码, 直到结束符NUL(00H)259 PRC 将字软元件的注释转换成ASCII码,并输出260 LED 将指定的8点字软元件显示16个字符的ASCII码261 LEDA 显示指定的英文数字字符262 LEDB263 LEDC 显示软元件S的注释264 LEDR 显示复位10 其它指令265 WDT WDT复位266 WDTP267 CHK 故障检测268 SLT 按参数设定的条件,数据被锁定269 SLTR 状态锁存复位,且执行SLT270 STRA 按参数设定的条件,采样数据存入271 STRAR 采样跟踪复位,且允许执行272 STC 进位标志(M9012)ON 273 CLC 进位标志(M9012)OFF 274 DUTY 用户定义时钟11 伺服指令275 DSFRP 请求启动伺服程序276 PSFLP 数据修改特殊继电器和特殊寄存器一特殊继电器M清单M9000 熔丝断M9002 I/O组件校验出错M9004 MINI网通讯出错M9005 AC电源掉电检测M9006 电池电压低M9007 电池电压低锁存M9008 自诊断出错M9009 信号报警器检测M9010 运算出错标志M9011 运算出错标志锁存M9012 进位标志M9016 数据存储区清零标志M9017 数据存储区清零标志M9018 数据通讯监控切换M9020 0号用户定时时钟M9021 1号用户定时时钟M9022 2号用户定时时钟M9023 3号用户定时时钟M9024 4号用户定时时钟M9025 时钟数据设置请求M9026 时钟数据出错M9027 时钟数据显示M9028 时钟数据读请求M9030 0.1秒时钟M9031 0.2秒时钟M9032 1秒时钟M9033 2秒时钟M9034 1分钟时钟M9036 常开M9037 常闭M9038 RUN后第一个扫描周期ONM9039 运行标志M9040 暂停PAUSE允许线圈M9041 PAUSE状态触点M9042 停止状态触点M9043 采样跟踪完成M9044 采样跟踪M9046 采样跟踪M9047 采样跟踪准备M9048 RUN LED闪烁标志M9049 切换输出字符数目M9050 存放操作结果的存储区交换触点M9051 CHG指令执行禁止M9052 SEG指令切换M9053 EI/DI指令切换M9054 单步运行标志M9055 状态锁存完成标志M9056 主程序P, I设置请求M9057 副程序P, I设置程序M9060 副程序2P, I设置程序M9061 副程序3P, I设置程序M9060 远程终端出错M9061 通讯出错M9065 分离传送状态M9066 传送处理切换M9067 I/O组件出错检测M9068 测试模式M9069 线路故障时的输出M9073 WDT出错标志M9074 PCPU准备完成标志M9075 测试模式标志M9076 外部急停输入标志M9077 手动脉冲发生器轴设置错误标志M9078 测试模式请求出错标志M9079 伺复程序设置出错标志M9081 对远程模块的通讯请求M9082 最终站数不一致M9084 出错检测M9086 运行标志BASIC程序M9087 暂停(PAUSE)标志M9091 操作运行出错细节标志M9091 微机子程序调用出错标志M9092 双电源模块过热M9093 双工电源模块出错M9094 I/O改变标志M9095 双工运行校验出错M9096 A3VCPU A自校出错M9097 A3VCPU B自校出错M9098 A3VCPU C自校出错M9099 A3VTU自校出错M9100 SFC程序登记M9101 SFC程序起/停M9102 SFC启动状态M9103 连续步转移有效/失效M9104 连续转移防止标志M9108 步转移监控定时器起始(对应D9108)M9109 步转移监控定时器起始(对应D9109)M9110 步转移监控定时器起始(对应D9110) M9111 步转移监控定时器起始(对应D9111)M9112 步转移监控定时器起始(对应D9112)M9113 步转移监控定时器起始(对应D9113)M9114 步转移监控定时器起始(对应D9114)M9180 激活步采样跟踪完成标志M9181 激活步采样跟踪执行标志M9182 激活步采样跟踪有效M9196 在块停止时控制输出M9197~9198 保险丝熔断,I/O校核出错显示切换二特殊寄存器D9000 保险丝断D9001 保险丝断D9002 I/O组件校验出错D9003 SUM指令检测位数D9004 MINI网主通讯组件出错D9005 AC掉电计数D9006 电池不足D9008 自诊断出错D9009 信号报警器检测D9010 出错步D9011 出错步D9014 I/O控制模式D9015 CPU运行状态D9016 ROM/RAM设置D9017 最小扫描时间D9018 当前扫描时间D9019 最大扫描时间D9020 恒定扫描D9021 扫描时间D9022 1秒计数器D9025 时钟数据(年,月)D9026 时钟数据(日,时)D9027 时钟数据(分,秒)D9028 时钟数据(星期)D9021~D9034 远程终端组件参数设置D9035 远程I/O组件的通讯属性D9035 扩展文件寄存器D9036 总的站数D9036~9037 供指定扩展文件寄存器软件地址D9038~9039 LED显示优先级D9044 采样跟踪D9050 SFC程序出错代码D9051 出错块D9052 出错步D9053 转移出错D9054 出错顺控步D9055 状态锁存步序号D9061 通讯出错代码D9072 PC通讯检测D9081 对远程终端模块的已执行的通讯请求数D9082 最后的站号D9090 微机子程序输入数据区首软元件号D9091 指令出错D9094 待更换的I/O组件的首地址D9095 A3VTS系统和A3VCPU的运行状态D9096 A3VCPU A自检出错D9097 A3VCPU B自检出错D9098 A3VCPU C自检出错D9099 A3VTU 自检测出错D9100~D9107 断保险丝的组件D9100 保险丝熔断的组件D9108~D9114 步转移监控定时器设置D9116~D9123 I/O组件校验出错D9124 信号器报警数量检测D9125~D9132 信号报警器地址号D9133~D9140 远程终端卡信息D9141~D9172 通讯重发次数D9173 模式设置D9174 设置重发次数D9175 线缆出错模块出错代码D9180~9193远程终端模块出错代码D9180 轴1和轴2的限位开关输出状态存储区D9181 轴3和轴4的限位开关输出状态存储区D9182 轴5和轴6的限位开关输出状态存储区D9183 轴7和轴8的限位开关输出状态存储区D9184 CPU出错的原因D9185 伺服放大器接线数据D9187 手动脉冲发生器轴设置出错D9188 在TEST模式下启动轴号请求出错D9189 出错程序号D9190 数据设置出错D9191 伺服放大器类型D9196~9199 故障站检测D9200 LRDP处理结果D9201 LWTP处理结果D9204 通讯状态D9205 执行回送的站D9206 执行回送的站D9207 通讯扫描时间(最大值)D9208 通讯扫描时间(最小值)D9209 通讯扫描时间(当前值)D9210 重发次数D9211 环路切换计数D9212 就地站运行状态(1~16)D9213 就地站运行状态(17~32)D9214 就地站运行状态(33~48)D9215 就地站运行状态(49~64)D9216 就地站出错检测(1~16)D9217 就地站出错检测(17~32)D9218 就地站出错检测(33~48)D9219 就地站出错检测(49~64)D9220 就地站参数不匹配或(1~16)远程站I/O分配出错D9221 就地站参数不匹配或(17~32)远程站I/O分配出错D9222 就地站参数不匹配或(33~48)远程站I/O分配出错D9223 就地站参数不匹配或(49~64)远程站I/O分配出错D9224 主站与从站和远程I/O站之间的初始通讯(1~16)D9225 主站与从站和远程I/O站之间的初始通讯(17~32)D9226 主站与从站和远程I/O站之间的初始通讯(33~48)D9227 主站与从站和远程I/O站之间的初始通讯(49~64)D9228 就地站或远程I/O站出错(1~16)D9229 就地站或远程I/O站出错(17~32)D9230 就地站或远程I/O站出错(33~48)D9231 就地站或远程I/O站出错(49~64)D9232 就地站或远程I/O站环路出错D9233 就地站或远程I/O站环路出错D9234 就地站或远程I/O站环路出错D9235 就地站或远程I/O站环路出错D9236 就地站或远程I/O站环路出错D9237 就地站或远程I/O站环路出错D9238 就地站或远程I/O站环路出错D9239 就地站或远程I/O站环路出错D9240 检测到接收出错的次数D9243 本站站号检测D9244 从站的总数D9245 检测到的接收出错次数D9248 就地站运行状态D9249 就地站运行状态D9250 就地站运行状态D9251 就地站运行状态D9252 就地站出错检测D9253 就地站出错检测D9254 就地站出错检测D9255 就地站出错检测各种软元件一览表项目A1,A1NA1S A2,A2NA2C A2-S1A2N-S1 A3,A3NA3A A2U,A3UA4UI/O软元件点256 512 1024 2048 8192输入继电器X 0~FF 0~1FF 0~3FF 0~7FF0~FFF输出继电器Y 0~FF 0~1FF 0~3FF 0~7FF0~FFF辅助继电器内部继电器(1000点)M0~M999 M0~M999, M2048~8191特殊继电器(256点)M9000~M9255锁存继电器(1048点)L1000~L2048通讯用继电器(2048点)B0~B3FF B0~BFFF定时器100ms定时器(200点)T0~T19910ms定时器(56点)T200~T255100ms记忆定时器(0点)计数器(256点)C0~C255寄存器数据寄存器(1024点)D0~D1023 D0~D6143特殊寄存器(256点)D9000~D9255通讯寄存器(1024点)W0~W3FF W0~WFFF累加器(2点)A0,A1变址寄存器(2点)Z, V Z,Z1~Z6(7点), V,V1~V6(7点)嵌套(8点)N0~ N7指针(256点)P0~P255中断指针(32点)I0~I31常数十进制K (16位)-32768~+32767(32位)-2147483648 ~+2147483647十六进制H (16位)0~FFFF(32位)0~FFFFFFFF分类指令助记符功能说明对应不同型号的PLCFX0S FX0N FX1S FX1N FX2NFX2NC程序流程00 CJ 条件跳转 P P P P P01 CALL 子程序调用Î Î P P P02 SRET 子程序返回Î Î P P P03 IRET 中断返回 P P P P P04 EI 开中断 P P P P P05 DI 关中断 P P P P P06 FEND 主程序结束 P P P P P07 WDT 监视定时器刷新 P P P P P08 FOR 循环的起点与次数 P P P P P09 NEXT 循环的终点 P P P P P传送与比较10 CMP 比较 P P P P P11 ZCP 区间比较 P P P P P12 MOV 传送 P P P P P13 SMOV 位传送Î Î Î Î P14 CML 取反传送Î Î Î Î P15 BMOV 成批传送Î P P P P16 FMOV 多点传送Î Î Î Î P17 XCH 交换Î Î Î Î P18 BCD 二进制转换成BCD码 P P P PP19 BIN BCD码转换成二进制 P P P PP 算术与逻辑运算20 ADD 二进制加法运算 P P P P P21 SUB 二进制减法运算 P P P P P22 MUL 二进制乘法运算 P P P P P23 DIV 二进制除法运算 P P P P P24 INC 二进制加1运算 P P P P P25 DEC 二进制减1运算 P P P P P26 WAND 字逻辑与 P P P P P27 WOR 字逻辑或 P P P P P28 WXOR 字逻辑异或 P P P P P29 NEG 求二进制补码Î Î Î Î P循环与移位30 ROR 循环右移Î Î Î Î P31 ROL 循环左移Î Î Î Î P32 RCR 带进位右移Î Î Î Î P33 RCL 带进位左移Î Î Î Î P34 SFTR 位右移 P P P P P35 SFTL 位左移 P P P P P36 WSFR 字右移Î Î Î Î P37 WSFL 字左移Î Î Î Î P38 SFWR FIFO(先入先出)写入Î Î P PP39 SFRD FIFO(先入先出)读出Î Î P PP数据处理40 ZRST 区间复位 P P P P P41 DECO 解码 P P P P P42 ENCO 编码 P P P P P43 SUM 统计ON位数Î Î Î Î P44 BON 查询位某状态Î Î Î Î P45 MEAN 求平均值Î Î Î Î P46 ANS 报警器置位Î Î Î Î P47 ANR 报警器复位Î Î Î Î P48 SQR 求平方根Î Î Î Î P49 FLT 整数与浮点数转换Î Î Î Î P高速处理50 REF 输入输出刷新 P P P P P51 REFF 输入滤波时间调整Î Î Î Î P52 MTR 矩阵输入Î Î P P P53 HSCS 比较置位(高速计数用)Î PP P P54 HSCR 比较复位(高速计数用)Î PP P P55 HSZ 区间比较(高速计数用)Î ÎÎ Î P56 SPD 脉冲密度Î Î P P P57 PLSY 指定频率脉冲输出 P P P P P58 PWM 脉宽调制输出 P P P P P59 PLSR 带加减速脉冲输出Î Î P P P方便指令60 IST 状态初始化 P P P P P61 SER 数据查找Î Î Î Î P62 ABSD 凸轮控制(绝对式)Î Î P PP63 INCD 凸轮控制(增量式)Î Î P PP64 TTMR 示教定时器Î Î Î Î P65 STMR 非凡定时器Î Î Î Î P66 ALT 交替输出 P P P P P67 RAMP 斜波信号 P P P P P68 ROTC 旋转工作台控制Î Î Î Î P69 SORT 列表数据排序Î Î Î Î P外部设备70 TKY 10键输入Î Î Î Î P71 HKY 16键输入Î Î Î Î P72 DSW BCD数字开关输入Î Î P P P73 SEGD 七段码译码Î Î Î Î P74 SEGL 七段码分时显示Î Î P P P75 ARWS 方向开关Î Î Î Î P76 ASC ASCI码转换Î Î Î Î P77 PR ASCI码打印输出Î Î Î Î P78 FROM BFM读出Î P Î P P79 TO BFM写入Î P Î P P外围设备80 RS 串行数据传送Î P P P P81 PRUN 八进制位传送(#) Î Î P P P82 ASCI 16进制数转换成ASCI码Î PP P P 83 HEX ASCI码转换成16进制数Î P PP P84 CCD 校验Î P P P P85 VRRD 电位器变量输入Î Î P P P86 VRSC 电位器变量区间Î Î P P P87 - -88 PID PID运算Î Î P P P89 - -浮点数运算110 ECMP 二进制浮点数比较Î Î Î ÎP111 EZCP 二进制浮点数区间比较Î ÎÎ Î P118 EBCD 二进制浮点数→十进制浮点数Î Î Î Î P119 EBIN 十进制浮点数→二进制浮点数Î Î Î Î P120 EADD 二进制浮点数加法Î Î Î ÎP121 EUSB 二进制浮点数减法Î Î Î ÎP122 EMUL 二进制浮点数乘法Î Î Î ÎP123 EDIV 二进制浮点数除法Î Î Î ÎP127 ESQR 二进制浮点数开平方Î Î ÎÎ P129 INT 二进制浮点数→二进制整数Î Î Î Î P130 SIN 二进制浮点数Sin运算Î Î ÎÎ P131 COS 二进制浮点数Cos运算Î Î ÎÎ P132 TAN 二进制浮点数Tan运算Î Î ÎÎ P147 SWAP 高低字节交换Î Î Î Î P定位155 ABS ABS当前值读取Î Î P P Î156 ZRN 原点回归Î Î P P Î157 PLSY 可变速的脉冲输出Î Î P PÎ158 DRVI 相对位置控制Î Î P P Î159 DRVA 绝对位置控制Î Î P P Î时钟运算160 TCMP 时钟数据比较Î Î P P P161 TZCP 时钟数据区间比较Î Î P PP162 TADD 时钟数据加法Î Î P P P163 TSUB 时钟数据减法Î Î P P P166 TRD 时钟数据读出Î Î P P P167 TWR 时钟数据写入Î Î P P P169 HOUR 计时仪Î Î P P外围设备170 GRY 二进制数→格雷码Î Î Î Î P171 GBIN 格雷码→二进制数Î176 RD3A 模拟量模块(FX0N-3A)读出ÎP Î P Î177 WR3A 模拟量模块(FX0N-3A)写入Î P Î P Î触点比较224 LD= (S1)= (S2)时起始触点接通Î Î P P P225 LD> (S1)> (S2)时起始触点接通Î Î P P P226 LD< (S1)< (S2)时起始触点接通Î Î P P P228 LD<> (S1)<> (S2)时起始触点接通Î Î P P P229 LD≦ (S1)≦ (S2)时起始触点接通Î Î P P P230 LD≧ (S1)≧ (S2)时起始触点接通Î Î P P P232 AND= (S1)= (S2)时串联触点接通Î Î P P P233 AND> (S1)> (S2)时串联触点接通Î Î P P P234 AND< (S1)< (S2)时串联触点接通Î Î P P P236 AND<> (S1)<> (S2)时串联触点接通Î Î P P P237 AND≦ (S1)≦ (S2)时串联触点接通Î Î P P P238 AND≧ (S1)≧ (S2)时串联触点接通Î Î P P P240 OR= (S1)= (S2)时并联触点接通Î Î P P P241 OR> (S1)> (S2)时并联触点接通Î Î P P P242 OR< (S1)< (S2)时并联触点接通Î Î P P P244 OR<> (S1)<> (S2)时并联触点接通Î Î P P P245 OR≦ (S1)≦ (S2)时并联触点接通Î Î P P P246 OR≧ (S1)≧ (S2)时并联触点接通Î Î P P P。
三菱plc指令详解DMOVP K8M220 D340

三菱plc指令详解DMOVP K8M220 D340 三菱plc传送类指令1、传送指令MOV(D)MOV(P)指令的编号为FNC12,该指令的功能是将源数据传送到指定的目标。
MOV指令的使用注意事项:1)源操作数可取所有数据类型,标操作数可以是KnY、KnM、KnS、T、C、D、V、Z。
2)16位运算时占5个程序步,32位运算时则占9个程序步。
2、移位传送指令SMOVSMOV(P)指令的编号为FNC13。
该指令的功能是将源数据(二进制)自动转换成4位BCD码,再进行移位传送,传送后的目标操作数元件的BCD码自动转换成二进制数。
当X1为ON时,将D1中右起第4位(m1=4)开始的2位(m2=2)BCD 码移到目标操作数D2的右起第3位(n=3)和第2位。
然后D2中的BCD 码会自动转换为二进制数,而D2中的第1位和第4位BCD码不变。
移位传送指令的使用注意事项:1)源操作数可取所有数据类型,目标操作数可为KnY、KnM、KnS、T、C、D、V、Z。
2)SMOV指令只有16位运算,占11个程序步。
3、取反传送指令CML(D)CML(P)指令的编号为FNC14。
它是将源操作数元件的数据逐位取反并传送到指定目标。
如图3所示,当X0为ON时,执行CML,将D0的低4位取反向后传送到Y3~Y0中。
取反传送指令CML的使用注意事项:1)源操作数可取所有数据类型,目标操作数可为KnY、KnM、KnS、T、C、D、V、Z.,若源数据为常数K,则该数据会自动转换为二进制数。
2)16位运算占5个程序步,32位运算占9个程序步。
4、块传送指令BMOVBMOV(P)指令的ALCE编号为FNC15,是将源操作数指定元件开始的n个数据组成数据块传送到指定的目标。
传送顺序既可从高元件号开始,也可从低元件号开始,传送顺序自动决定。
若用到需要指定位数的位元件,则源操作数和目标操作数的指定位数应相同。
sftl和sftr指令

在三菱PLC中,SFTL(位左移)和SFTR(位右移)是两种重要的位移指令。
这两种指令主要用来进行顺控程序的编程。
以SFTL指令为例,其指令格式为SFTL M11 M12 K9 K1。
具体含义是:执行一次该指令会将M12开始的这9个位元件依次左移一位,左移的结果是M21溢出,最低位变为M11。
其中,M11是源位元件起始地址,只能是位元件(X,Y,M,S);M12是位移起始地址,也只能是位元件(Y,M,S);K9是位移寄存器长度,表示从M12到M20共9个寄存器;K1表示每次移动的位数,只能是数值。
类似的,SFTR指令是用来进行位元件右移操作的。
例如,指令SFTR M10 K2 M14可以将M10到M13这4个位元件向右移动2位。
这里的M10是目标操作元件的长度,即从M10到M13这4个位元件;K2表示移位的位数;而M14则指定了源操作元件。
第三章PLC指令系统2

DW和 SHR DW,其他部分完全相同。最大实际可移位次 数为32。 指令格式: SLD SRD 例: SLD SRD OUT, N (双字左移) OUT, N (双字右移) MD0, 2 LD0, 3
2.
循环左移、循环右移
循环移位特点: 移位数据存储单元的移出端与另一端相连,同时又与 SM1.1 (溢出) 相连,所以最后被移出的位被移到另一端的同时,也被放到SM1.1位存 储单元。 移位次数与移位数据的长度有关,如果移位次数设定值大于移位数据 的位数,则执行循环移位之前,系统先对设定值取以数据长度为底的 模,用小于数据长度的结果作为实际循环移位的次数。如字左移时, 若移位次数设定为36,则先对36取以16为底的模,得到小于16的结果4, 故指令实际循环移位4次。 如果移位操作使数据变为0,则零存储器位(SM1.0)自动置位。 移位指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出)。 使能流输出 ENO 断开的出错条件: SM4.3 (运行时间); 0006 (间接 寻址)。 移位次数N为字节型数据。
循环右移指令:
移位指令 (2)字循环左移和字循环右移指令:RLW,RRW
指令盒与字节循环移位只有名称变为 ROL
W和 ROR W ,其他部分完全相同。使能输入有效时, 把字型输入数据IN循环左移或循环右移N位后,再 将结果输出到 OUT 所指的字存储单元(在语句表 中, IN 与 OUT 使用同一个单元)。实际移位次数 为设定值取以16为底的模所得的结果。 指令格式: RLW OUT, N (字循环左移) RRW OUT, N (字循环右移) 例: RLW MD0, 2 RRW LD0, 3
SHRB EN ENO ENO DAT A S_BIT I0.1 正跳变 I0.2 S_BIT 0 1 0 0 1 0 0 0 1 1 溢出位 1
plc rol 指令用法 -回复

plc rol 指令用法-回复PLC(可编程逻辑控制器)是一种常见的工业自动化控制设备,广泛应用于各种生产过程中。
在PLC编程中,ROL(Rotate Left)指令是一种常用的移位指令,用于实现数据在字节或位级别上的循环移位操作。
本文将详细介绍ROL指令的用法和步骤。
1. ROL指令的基本概念ROL指令是PLC中的一种位操作指令,用于将一个数据字节或数据位左移(循环移位),并将最高位或最右边的位移到最低位或最左边。
ROL 指令常用于数据的循环处理,例如在某些计数、位移寄存器的应用中,可以通过ROL指令实现移位操作。
2. ROL指令的语法和参数ROL指令的语法如下所示:ROL destination, source其中,destination表示目标操作对象,可以是一个字节或一个位;source表示移位操作的次数,可以是一个字节或一个位。
3. ROL指令的步骤和示例下面以一个简单的示例来说明ROL指令的用法和步骤。
假设我们有一个字节型变量B,初始值为0x87(十六进制),需要将其进行循环左移3次,并将结果保存到D寄存器中。
步骤1:声明和初始化变量在PLC编程软件中,首先需要声明和初始化相应的变量。
可以通过在变量声明处添加注释,以增加代码的可读性,例如:VARB: BYTE := 16#87; (* 初始化变量B为0x87 *)步骤2:使用ROL指令进行移位操作在需要进行移位操作的位置,使用ROL指令进行循环左移。
按照上述示例,需要将变量B循环左移3次,可以编写如下代码:ROL B, 3; (* 将变量B循环左移3次*)步骤3:保存结果到目标寄存器移位操作完成后,需要将结果保存到目标寄存器中。
根据示例需求,将结果保存到D寄存器中,可以编写如下代码:D := B; (* 将结果保存到D寄存器中*)步骤4:完成移位操作至此,基于ROL指令的移位操作已经完成。
可以根据实际需要,继续进行下一步操作或返回结果给其他部分使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PLC教程理论篇之PLC 的位移与步进指令及其应用一一、移位指令简介移位指令用于字或多个位(BIT)字中二进制位依次顺序左移或右移。
有多种多样的移位指令:简单左移:执行一次本指令移一次位。
移位时用0移入最低位。
原最低位的内容,移入次低位……依次类推,最高位的内容移出,或移入进位位(而原进位位的内容丢失)。
有的PLC可设为,每次可移多个位。
简单右移:与左移不同的只是它为右移,先把进位位的内容移入字的最高位,原最高位的内容移入次高位……依次类推,原最低位的内容丢失,或移入进位位(而原进位位的内容丢失)。
有的PLC可设为,每次可移多个位。
循环左移:它与简单左移不同的只是它的进位位的内容不丢失,要传给00位,以实现循环。
循环右移:与循环左移不同的是00的内容不丢失,传给进位位,原进位的值传给第15 位,以实现循环右移。
还有可设定输入值的移位,如左移,不是都用0输入给最低位,而是可设定这个输入的值。
还有可逆移位指令,由用控制字,控制左还是右移,并可实现多字移位。
除了二进制的位(bit)移位,还有数位(digit)移位,可左移,也可右移SRD。
移位的对象可以多个字。
还有字移位,以字为单位的移,执行一次本指令移一个字。
移时0000移入起始地址(最小地址),起始地址的原内容移入相邻的较高地址,……最高地址(结束地址)的内容丢失。
多次执行本指令,可对从起始到结束地址的内容清零。
等等。
图8-1示的为三家PLC左移指令梯形图符号。
图a中St是移位开始通道,Ed是移位终了通道,P是移位脉冲输入,R是复位输入,S 是移位信号输入。
当P从OFF到ON时,而R又为OFF,则从St到Ed间的各个位(BIT),依次左移一位,并把S的值(OFF或ON)赋值给St的最低(00)位,Ed的最高(15)位溢出;但如R复位输入ON,移位禁止,并St到Ed各通道清零。
图b中SHL之后加DW为双字,即4个字节移位,EN为此指令执行条件。
其输入为ON,才能执行本指令,否则,不执行。
IN是进行移位的双字,OUT是移位结果输出的双字,N是每执行一次本指令将移位的位(BIT)数。
每次移位时,除了移位双字各位值相应左移,并用0填入移入的位。
图c中S是移位源,D是移位的输出,n1为指定源及输出位(BIT)数。
n2是指定执行一次本指令将移位的位(BIT)数。
本指令的输入为ON,才能执行本指令,否则,不执行。
每次移位时,除了移位指定的各位值相应左移,并用移位源的值填入移入的位。
图8-2示的为使用PLC左移指令梯形图程序。
本程序的功能是,当0.02、I0.2及X002 OFF时,而0.01、I0.1及X001从OFF到ON,则使输出(从10通道开始到11通道、QD04双字及从Y000到Y37共32个位)左移一位。
对图b、c,为了能把I0.0及X000的值赋值给这里的“输入位”,即Q3.00及Y000,以及能对移位用的双字、或各个位清零,这里增加了两组指令。
目的是使其也具有图a的功能。
提示:西门子数据存贮格式(顺序)与OMTRON、三菱不同,是高字节存低位数,低字节存高位数。
故上述输入位用QB3.0,而不像OMRON用10.00,也不像三菱用Y000。
西门子PLC 字节间的移位,以图8-2 b为例,是:Q 3.7移给Q2.0;Q 2.7移给Q1.0;Q 1.7移给Q0.0。
各字节中的移位,则也是从低位到高位移,即Q0.6移给Q0.7,Q0.5移给Q0.6,等等。
三菱PLC的移位,以图8-2c为例,是:Y0.7移给Y1.0;Y 1.7移给Y2.0;Q 2.7移给Y3.0。
各8位中的移位,则也是从低位到高位移,即Y0.6移给Y0.7,Y0.5移给Y0.6,等等。
OMRON PLC的移位,以图8-2a为例,是:10.15移给11.00。
各字中的移位,则也是从低位到高位移,即10.06移给10.07,10.05移给10.06,等等。
二、移位指令应用移位指令是很有用的。
不仅在数据处理时,要用到它,而且在逻辑量控制时,也常用到它。
当然,以上讲的也还不是移位指令的全部,也不是所有PLC都有以上讲的这些移位指令。
具体使用此类指令,也可能还有一些细节,故使用时可参阅有关帮助。
1.广告灯程序图8-3示的为广告灯程序。
它每经一秒,使用输出通道10、QW0及Y000到Y017控制的16个广告灯,先是逐一点亮。
全亮后,又逐一变灭。
并周而复始重复着。
图a为OMRON PLC程序。
图中10是移位开始通道,10也是移位终了通道,10.15的“非”是移位输入,P-OFF是复位输入(即永远不复位),P_1S是移位脉冲信号输入。
即每隔1秒,则通道10的各个位(BIT),依次左移一位,并把10.15的“非”的值赋值给10.00。
可知,当10.15为0时,移入的都是1,可使灯逐步亮。
但当10.15为1后,即全亮后,则移入的都是0,可使灯逐步灭。
而到了全灭后,又将从头开始。
图b为西门子PLC程序。
图中SHL之后加W为字移位,即2个字节移位,EN的输入为SM0.5(为秒脉冲)加微分处理P。
这可做到每隔1秒可使QW0执行一次移位。
N为1,故每次移移1位。
每次移位时,用0填入移入的位,即使Q1.0置0。
故本程序,在使用移位指令后,还执行两组指令,把M0.0赋值给Q1.0,Q0.7赋值给M0.0。
目的是,当Q1.0为0时,移入的都是1,可使灯逐步亮。
而当Q1.0为1后,即全亮后,则移入的都是0,可使灯逐步灭。
而到了全灭后,又将从头开始。
图c中Y000是移位源,Y000到Y017是移位的输出,n1为16,指定源及输出位(BIT)数为16。
n2为1,指定执行一次本指令将移位的位(BIT)数为1位。
本指令的输入为M8013 秒脉冲信号,并为微分执行,即每隔1秒执行一次本指令。
故本程序,在使用移位指令后,还执行两组指令,把M0.0的“非”赋值给Y000,Y017赋值给M0。
目的是,当Y017为0 时,移入的都是1,可使灯逐步亮。
而当Y017为1后,即全亮后,则移入的都是0,可使灯逐步灭。
而到了全灭后,又将从头开始。
2.移位步进图8-4为“移位步进“梯形图程序,操作数也是用符号地址。
三种PLC都是用左移位指令实现。
图a用SFT,图b用SHL-W,图c用SFTLP。
从图知,此程序由四个梯级组成。
对图a:有4个梯级。
第一梯级,用以产生“移位脉冲”信号。
第二梯级,在程序初始化及步进完成时(这里设了4步,如需要,可增多),把0传给“移位通道”。
P-First-Cycle为特殊继电器,在PLC运行时ON一个扫描周期。
第三梯级,用以产生“移位通道等零”信号。
在“移位通道”字的内容为零时,“移位通道等零”为1。
第四梯级,用以实现移位步进。
这里的复位信号为“p_off”(常OFF),故只要“移位脉冲”从0转到1,则把“移位通道等零”的状态(0,或1)移入“移位通道”的第0位,而原“移位通道”的第0位状态,移给“移位通道”的第1位...依次移位,直到“移位通道“的第15位溢出。
它与第三梯级配合将是,当“移位通道“为0时,“移位脉冲”从0转到1,向“移位通道”移入1;而当“移位通道”移入1后,移入0;直到复位。
这里,只要把“移位通道”0位对应于“步1”,1位对应于“步2”...则这个移位过程,也就是步进过程。
对图b:也有4个梯级。
第一梯级,也用以产生“移位脉冲”信号。
但它由指令P产生。
第二梯级,在程序初始化及步进完成时(这里设了4步,如需要,可增多),把0传给VW0,即“移位通道”。
这里,SM0.1为特殊继电器,在PLC运行时ON一个扫描周期。
第三梯级,用以实现移位步进。
每有一个“移位脉冲”,则把0移入“移位通道”,即VW0中的VB1的第0位,而原VB1的第0位状态,移给VB1的第1位...而原VB1的第7位状态,移给VW0中的VB0的第0位,原VB0的第0位状态,移给VB0的第1位...依次移位,直到VB0的第7位溢出。
第四梯级,用以产生第一步工作信号。
在“移位通道”字的内容为零时,使VW0,即“移位通道”为1,产生第一步输出。
这里,只要把VB1的0位对应于“步1”,1位对应于“步2”...VB0的0位对应于“步8”,1位对应于“步9”...则这个移位过程,也就是步进过程。
对图c:有5个梯级。
第一梯级,也用以产生“移位脉冲”信号。
方法同图a。
第二梯级,在程序初始化及步进完成时(这里设了4步,如需要,可增多),把0传给K1M11,即移位用的M11、M12、M13及M14组成的各个位。
这里,M8002为PLC运行时ON一个扫描周期。
第三、四梯级,用以产生第一步工作信号。
当M11到M14间的内容为0时,将使“移位值”置1。
为使“开始”产生的“移位脉冲”时,把为1的“移位值”,移入M11,以产生第一步输出。
第五梯级,用以实现移位步进。
每有一个“移位脉冲”,则把“移位值”移入M11,而M11位状态,移给M12...而原M14状态溢出。
这里,只要把M11对应于“步1”,M12位对应于“步2”...则这个移位过程,也就是步进过程。
图中还有“自动工作”控制。
它ON 时,将实现自动工作,即完成最后一步时,会产生“移位脉冲”,起动第一步。
提示:西门子PLC 数据存贮器V,可按位使用。
故图b用VW0作“移位通道”。
只是,它的最低位是V1.0,而不是V0.0,最高位是V0.7,而不是V1.7。