欧姆龙PLC指令集讲义_第1页
欧姆龙PLC指令集讲义_第2页
欧姆龙PLC指令集讲义_第3页
欧姆龙PLC指令集讲义_第4页
欧姆龙PLC指令集讲义_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2.2.指令集指令集 n顺序输入指令 n顺序输出指令 n顺序控制指令 n定时器和计数器指令 n比较指令 n数据传送指令 n数据移位指令 n递增/ 递减指令 n四则运算指令 n转换指令 n逻辑指令 n特殊算术指令 n特殊算术指令 n子程序指令 n中断控制指令 n步指令 n任务控制指令 n浮点数运算指令 n双精度浮点数指令 n表格数据处理指令 n数据控制指令 n基本l/O 单元指令 n串行通信指令 n网络指令 n文件存储指令 n显示指令 n时钟指令 n调试指令 n故障诊断指令 n文本字符串处理指令 n块指令 2.2.指令集指令集 2.1 2.1 指令格式、数据区域及其标志指令格式、数据区域及其标志

2、 指令格式:指令格式: 助记符(功能代码) 操作数1 操作数2 操作数3 操作数4 助记符:助记符:表示指令的功能,表明执行该指令能够实现的操作。 助记 符通常是一些简洁易记的字母或符号。 功能代码功能代码( (指令码指令码):): 功能代码是指令的代码,用2位十进制数表示。 操作数:操作数:操作数指定或提供指令执行的数据。有些指令不带操作数,有 的指令带1个操作数,有的则带2个、3个或4个操作数。 2.2.指令集指令集 数据区域及其标志数据区域及其标志 一般情况下,指令的操作数就是指令的数据区域,因此,IR区域、SR区 域、HR区域、AR区域、LR区域、TC区域及DM区域中的字可以是操作数的

3、 字,字的位可以是操作数的位,简称操作数位。但是在指定的数据区域 内,并非所有的地址都允许用于操作数。 通常用继电器区域的缩写及字、位的地址作为指令的操作数,但I/O继 电器没有缩写符。为避免与常数混淆,当用常数作为指令的操作数时, 应在常数前面加上“#”号。 有些指令执行后会影响标志位,有些指令执行后不影响标志位。 SR区域包括标志位和控制位,用来监视PLC操作,存取时钟脉冲及显示 错误信息。受指令执行影响的标志位如下表 2.2.指令集指令集 缩 写名 称位 ER指令执行出错标志25503 CY进位标志25504 GR大于标志25505 EQ等于标志25506 LE小于标志25507 N负标

4、志25402 OF上溢标志25404 UF下溢标志25405 受指令执行影响的标志位受指令执行影响的标志位(SR(SR区标志位区标志位) ) 2.2.指令集指令集 n2.2 梯形图指令梯形图指令 n2.2.1 LD、LD NOT、AND、AND NOT、OR、OR NOT 指令 梯形图符号助 记 符名 称指 令 功 能操作数区域 LD装载 常开触点与左侧母线相连接 的指令 IR,SR,AR,HR, TC,LR,TR LD NOT装载非 常闭触点与左侧母线相连接 的指令 IR,SR,AR,HR, TC,LR AND与 常开触点与其他编程元件串 连的指令 IR,SR,AR,HR, TC,LR AN

5、D NOT 与非 常闭触点与其他编程元件串 连的指令 IR,SR,AR,HR, TC,LR OR或 常开触点与其他编程元件并 连的指令 IR,SR,AR,HR, TC,LR OR NOT或非 常闭触点与其他编程元件并 连的指令 IR,SR,AR,HR, TC,LR 2.2.指令集指令集 2.2.指令集指令集 2.2.2 逻辑块与(AND LD)和逻辑块或(OR LD) 指令 对于复杂的控制系统,使用大量的编程元件,这些编程元件所在的行相并 联构成逻辑块,逻辑块之间还存在串联关系。 在这种情况下,不能简单地使用OR或者AND来处理,而需要使用AND LD和OR LD 指令才能将梯形图转化为助记符

6、程序。其原因是OR和AND指令用于执行条件与一 位状态逻辑间接,而OR LD和AND LD指令能够逻辑地连接两个执行条件,即当前 执行条件与上一个还未使用的执行条件。 2.2.指令集指令集 2.3 位(bit)控制指令 2.3.1 输出(OUT)指令和输出非(OUT NOT)指令 梯形图符号助 记 符名 称指 令 功 能操作数区域 OUT输出 当执行条件为ON时,OUT 指令使指定位输出为ON IR,SR,AR,HR, TC,LR,TR OUT NOT输出非 当执行条件为OFF时,OUT 指令使指定位输出为ON IR,SR,AR,HR, TC,LR 2.2.指令集指令集 2.3.2 上升沿微分

7、指令和下降沿微分指令DIFU和DIFD 2.2.指令集指令集 2.2.指令集指令集 2.3.3 置位和复位指令置位和复位指令SET和和RESET 2.2.指令集指令集 2.3.3 置位和复位指令置位和复位指令SET和和RESET 2.2.指令集指令集 2.3.4 保持指令保持指令 KEEP 2.2.指令集指令集 2.2.指令集指令集 00003 KEEP(11) HR0100 00300 00001 00002 00005 HR0100 紧急1 紧急2 紧急3 复位 报警 应用应用KEEPKEEP指令的梯形图指令的梯形图 2.2.指令集指令集 2.4 联锁和联锁解除指令联锁和联锁解除指令 IL

8、 和和 ILC 2.2.指令集指令集 2.2.指令集指令集 指 令处 理 OUT和OUT NOT指定位变为OFF SET和RESET位状态保持 TIM和TIMH复位 TTIMPV保持 CNT,CNTRPC保持 KEEP位状态保持 DIFU和DIFD不执行 其他指令不执行 IL和和ILC之间的程序处理表之间的程序处理表 2.2.指令集指令集 2.5 跳转和跳转终了指令跳转和跳转终了指令 JMP和和JME 2.2.指令集指令集 2.6结束指令结束指令 ENDEND 2.7 空操作指令空操作指令 NOP 此指令无任何功能。(NOP(000) 不做任何操作) 2.2.指令集指令集 2.8 定时器和计数

9、器指令定时器和计数器指令 2.8.1 定时器指令定时器指令 TIM , 以以0.1s为单位为单位 2.2.指令集指令集 2.2.指令集指令集 2.8.2 高速定时器指令高速定时器指令 TIMH 计量单位为计量单位为0.01s,使用方法和,使用方法和TIM指令相同。指令相同。 如果扫描周期大于如果扫描周期大于10ms,必须使用,必须使用TC000-TC015 编号才能保持计时准编号才能保持计时准 确。确。 2.2.指令集指令集 2.8.3 累加定时器指令累加定时器指令 TTIM 2.2.指令集指令集 2.8.4 计数器指令计数器指令 CNT 复位输入有优先权,如果复位输入 和计数输入同时ON,计

10、数器会复 位。(PV会复位到SV,完成标志 也会变OFF)。 2.2.指令集指令集 即使电源中断,计数器PV 仍然保持,如果希望从SV 开始 计数,而不是从保持的PV 恢复计数,增加第一次循环标 志(A20011) 作为计数器的复位输入。 2.2.指令集指令集 2.8.5 可逆计数器指令可逆计数器指令 CNTR 2.2.指令集指令集 n在增量时, PV 从SV 增加返回到0 时,完成标志变ON,一旦 完成标志变为ON, PV 从0 增加到1 时,完成标志又变回OFF。 n在减量时,PV 从0 减小到SV 时,完成标志变ON, PV 从SV 减小到SV-1 时,完成标志又变回OFF。 2.2.指

11、令集指令集 2.2.指令集指令集 2.9 数据移位指令数据移位指令 2.9.1 移位寄存器指令移位寄存器指令 SFT 当移位输入的执行条件由OFF 变为ON 时, St E 的所有数据左移一位(从 最右边到最左边),并且把数据输入的ON/OFF 状态放在最右边位。 2.2.指令集指令集 2.9.2 可逆移位寄存器指令可逆移位寄存器指令 SFTR 产生一个可向右也可向左移动数据的移位寄存器。 2.2.指令集指令集 2.9.3 算术左移指令算术左移指令 ASL,算术右移指令算术右移指令 ASR Wd 的内容左移一位。Wd 的内容向右移1 位。 2.2.指令集指令集 2.9.4 循环左移指令循环左移

12、指令 ROL, 循环右移指令循环右移指令 ROR n循环左移指令:所有Wd 的位包括进位标志(CY) 向左移1 位。 n循环右移指令:所有Wd 的位,包括进位标志(CY),向右移动1 位。 2.2.指令集指令集 2.9.5 数数(4bits)左移左移SLD,数数(4bits)右移右移SRD nSLD(074) 把S 和E 之间的数据向左移一个数字(4 位)为单位移动。“0”被 放置到最右边的数字(S 的位3 位0),最左位数字(E 的位15 位12)内容 丢失。 nSRD(075) 把St 和E 之间的数据向右移动一个数字(4 位),“0”被放到最左 的数字(E 的位15 12),并且最右的数

13、字(St 的位3 0)内容丢失。 2.2.指令集指令集 2.9.6字移位:字移位:WSFT(016) nWSFT(016) 指令以字为单位按St 到E 方向移动数据,源字S 的数据放在St中, E 中的内容将丢失。 2.2.指令集指令集 2.9.7异步移位寄存器指令:异步移位寄存器指令:ASFT(017) 2.2.指令集指令集 2.2.指令集指令集 2.10 数据传送指令数据传送指令 2.10.1 2.10.1 传送指令:传送指令:MOV(021) n传送数据的一个字到指定字中。在下面例子中,当CIO 000000为ON时,CIO 0100 的内容被拷贝到D00100中。 2.2.指令集指令集

14、 2.10.2 2.10.2 取反取反传送指令:传送指令:MVN(022) nMVN(022) 指令对S 中的位进行取反,并把结果传送到D 中。S 中的内容保持 不变。 2.2.指令集指令集 2.10.32.10.3块设置:块设置:BSET(071) n把同一个字拷贝到一个连续字的范围中。 2.2.指令集指令集 2.10.42.10.4块传送:块传送:XFER(070) n传送指定数目的连续字。XFER(070) 指令把从S 开始的N 个字(S S (N1) 拷贝给从D 开始的N个字(D D (N1)。 2.2.指令集指令集 2.10.5 2.10.5 数据交换:数据交换:XCHG(073)

15、交换两个指定字的内容。 2.2.指令集指令集 2.10.62.10.6单字节数据分配指令:单字节数据分配指令:DIST(080) n把源字传送到由基地址加偏移量计算得出的目标字中。 2.2.指令集指令集 2.10.72.10.7数据调用指令:数据调用指令:COLL(081) n把源字(由基址加偏移量计算得出)传送到目标字中。 2.2.指令集指令集 2.10.82.10.8位传送指令:位传送指令:MOVB(082) n传送指定位。 2.2.指令集指令集 2.10.92.10.9传送数字指令:传送数字指令:MOVD(083) n传送一个或多个指定的数字。(每个数字由4 位组成)。 2.2.指令集指

16、令集 2.2.指令集指令集 2.10.10 2.10.10 多位传送指令:多位传送指令:XFRB(062) n传送指定数目的连续位。 2.2.指令集指令集 2.2.指令集指令集 2.11 2.11 数据比较指令数据比较指令 2.11.1 2.11.1 多字比较指令:多字比较指令:MCMP (019) n16 个连续字与另外16 个连续字相比较,并使结果字中相应于两字内容不相等 的位变ON。R 的每一位包含了在16 字设置中两个字比较的结果,R 中的位n(n 00 15)包含了字S1 n 和S2 n 的比较结果。 2.2.指令集指令集 2.2.指令集指令集 2.11.2 2.11.2 比较:比较

17、:CMP(020) n比较两个无符号二进制值(常数和/ 或指定字的内容),并输出结果到辅助区 的算术标志中。 2.2.指令集指令集 n当执行CMP(020) 指令,其结果反映在算术标志中。用与控制CMP(020) 指令 相同的输入条件分支来控制所希望的输出或右侧指令,如下图所示。在这种情 况下,当S1 S2,等于标志和输出A 将变ON。 不要在CMP(020) 指令和算术标志控制指令之间编写其它指令,因为其它指令 可能会改变算术标志的状态。在这种情况下,指令B 的结果可能会改变指令 CMP(020) 的结果。 2.2.指令集指令集 2.11.3 2.11.3 双字比较指令:双字比较指令:CMP

18、L(060) n比较两个双字无符号二进制值(常数和/ 或指定字的内容),并输出结果到辅 助区的算术标志中。 n2.11.4 块比较指令:BCMP (068) n比较源数据和16 个范围(由16 个下限和16 个上限定义),当源数据在范围 内时,结果字中的相应位变ON。 2.2.指令集指令集 2.2.指令集指令集 2.12 2.12 数据转换指令数据转换指令 2.12.1 BCD 到二进制数:到二进制数:BIN(023) nBIN(023) 把S 中的BCD 码转换成二进制数,并把结果字写进R。 nBCD 码到二进制数转换的例子 2.2.指令集指令集 2.12.2双字双字BCD 码到双字二进制:

19、码到双字二进制:BINL(058) n8 个数字的BCD 数到8 个数字的十六进制(32 位二进制)数的转换。 n8 个数字的BCD 码转换到二进制数的例子。 2.2.指令集指令集 2.12.3二进制数到二进制数到BCD 码:码:BCD(024) n把S 中的二进制数转换成BCD 数,并把结果写进R。 nBCD 码到二进制数转换的例子。 2.2.指令集指令集 2.12.4 双字二进制数到双字双字二进制数到双字BCD 码:码:BCDL(059) n把S 和S+1 中的8 个数字的十六进制(32 进制)数转换为8 个数字的BCD 码, 并把结果写到R 和R+1。 n在下例中当CIO 000000

20、为ON 时, CIO 0011 和CIO 0010 中的十六进制数转 换 成BCD 码,并存储在D00100 和D00101 中。 2.2.指令集指令集 2.13 BCD2.13 BCD码运算指令码运算指令 2.13.1 2.13.1 不带进位的不带进位的BCD 加:加:+B(404) n4 个数字(单字)有符号十六进制数和/ 或常数相除。 n在下面例子中,当CIO 000000 置ON 时,D00100 和D00110 将作为4 个BCD 数字相加,并且结果送到D00120。 2.2.指令集指令集 2.13.22.13.2不带进位的双字不带进位的双字BCD 加:加:+BL(405) n8 个

21、数字(单字) BCD 数据和/ 或常数相加。 2.13.32.13.3带进位的带进位的BCD 加:加:+BC(406) n4 个数字(单字) BCD 码数据和/ 或常数及进位标志相加。 2.2.指令集指令集 2.13.42.13.4带进位的双字带进位的双字BCD 加:加:+BCL(407) n8 个数字(双字) BCD 数据和/ 或常数及进位标志(CY) 相加。 2.13.5 2.13.5 不带进位的不带进位的BCD 减:减:-B(414) n4 位(单字) BCD 和/ 或常数相减。 2.2.指令集指令集 2.13.62.13.6不带进位的双字不带进位的双字BCD 减:减:-BL(415)

22、n8 位(双字) BCD 数和/ 或常数相减。 2.13.7 2.13.7 带进位的带进位的BCD 减:减:-BC(416) n4 位(单字) BCD 数与/ 或常数及进位标志(CY) 相减。 2.2.指令集指令集 2.13.8 2.13.8 带进位的双字带进位的双字BCD 减:减:-BCL(417) n8 个数字(双字) BCD 数据和/ 或常数及进位标志(CY) 相减。 2.13.9 2.13.9 BCD 乘法:乘法:*B(424) 4 个数字(单字) BCD 数据和/ 或常数相乘。把Md 和Mr 中的BCD 内容相乘, 并把结果输出给R。 2.2.指令集指令集 2.13.11 2.13.

23、11 BCD 除:除:/B(434) n4 个数字(单字) BCD 码和/ 或常数相除。将Dd 的BCD 内容除以Dr 的内容, 并输出商到R,余数到R+1。 2.13.10 2.13.10 双字双字BCD 乘:乘:*BL(425) n8 个数字(双字) BCD 数据和/ 或常数相乘。 把Md 和Md+1 与Mr 和Mr+1 中 的BCD 数相乘, 并把结果送给R,R+1,R+2 和R+3。 2.2.指令集指令集 2.13.12 2.13.12 双字双字BCD 除:除:/BL(435) n8 个数字(双字) BCD 码和/ 或常数相除。把Dd 和Dd+1 中的BCD 码除以Dr 和Dr+1 中

24、的数,并把商输出给R和R+1,余数输出给R+2 和R+3。 2.2.指令集指令集 2.14 2.14 二进制运算指令二进制运算指令 2.14.1 2.14.1 不带进位的有符号二进制加:不带进位的有符号二进制加:+(400) n4 个数字(单字)十六进制数据和/ 或常数相加。 2.14.2 2.14.2 不带进位的有符号双字二进制加:不带进位的有符号双字二进制加:+L(401) n8 个数字(双字)十六进制数据和/ 或常数相加。把Au 和Au+1,Ad 和Ad+1 中的二进制值相加,并且把结果送给R。 2.2.指令集指令集 2.14.3 2.14.3 带进位的有符号二进制加:带进位的有符号二进

25、制加:+C(402) n4 个数字(单字)十六进制数据和/ 或常数相加。把Au, Ad 和CY 中的二进制数 相加,并且把结果送给R。 2.14.4 2.14.4 带进位的有符号双字二进制加:带进位的有符号双字二进制加:+CL(403) n把Au 和Au+1, Ad 和Ad +1 及CY 中的二进制数相加,并且把结果送给R。 2.2.指令集指令集 2.14.5 2.14.5 不带进位的有符号二进制减:不带进位的有符号二进制减:-(410) n4 个数字(单字)十六进制数据和/ 或常数相减。从Mi 中减去Su 中的二进制数, 并且把结果送给R。结果为负时,将2的补码送给R。 2.14.6 2.1

26、4.6 不带进位的有符号双字二进制减:不带进位的有符号双字二进制减:-L(411) n8 个数字(双字)十六进制数据和/ 或常数相减,把Mi和Mi+1中减去Su和Su+1 中的二进制数并且把结果送给R,R+1。当结果为负数时,结果作为2 的补码送 给R 和R+1。 2.2.指令集指令集 2.14.7 2.14.7 带进位的有符号二进制减:带进位的有符号二进制减:-C(412) n4 个数字(单字)十六进制数据和/ 或常数及进位标志(CY) 相减。从Mi 中减去 Su 中的二进制数和CY,并且把结果送给R。结果为负时,将2 的补码送给R。 2.14.8 2.14.8 带进位的有符号双字二进制减:

27、带进位的有符号双字二进制减:-CL(413) n8 个数字(双字)十六进制数据和/ 或常数相减及进位标志(CY)。把Mi 和Mi+1 中减去Su 和Su+1 中的二进制数及CY,并且把结果送给R, R+1。当结果为负 数时,结果作为2 的补码送给R 和R+1。 2.2.指令集指令集 2.14.9 2.14.9 有符号二进制乘:有符号二进制乘:*(420) n4 位有符号十六进制数和/ 或常数的乘法。把Md 和Mr 中有符号二进制数相乘, 并把结果输出给R,R+1。 2.14.10 2.14.10 有符号双字二进制乘:有符号双字二进制乘:*L(421) n8 个数字有符号十六进制数和/ 或常数的

28、相乘。把Md 和Md+1 与Mr 和Mr+1 中 的符号二进制数相乘,并把结果输出到R,R+1,R+2 和R+3。 2.2.指令集指令集 2.14.112.14.11无符号二进制乘:无符号二进制乘:*U(422) n4 个数字无符号十六进制数和/ 或常数的相乘。把Md 和Mr 中的二进制数相乘 并把结果输出到R,R+1。 2.14.12 2.14.12 无符号双字二进制乘:无符号双字二进制乘:*UL(423) n把8 个数字无符号十六进制数和/ 或常数相乘。把Md 和Md+1 与Mr 和Mr+1 种 的无符号二进制数相乘并把结果送给R,R+1,R+2 和R+3。 2.2.指令集指令集 2.14

29、.132.14.13有符号二进制除:有符号二进制除:/(430) n4 个数字(单字)有符号十六进制数和/ 或常数相除。把Dd 中的有符号二进制数 (16 位)除以Dr 中的数,并把结果输出到R,R+1。商放在R 中,余数放在R+1 中。 2.14.142.14.14有符号双字二进制除:有符号双字二进制除:/L(431) n8 个数字(双字)有符号十六进制数和/ 或常数相除。把Dd 和Dd+1 中的有符号 二进制数除以Dr 和Dr+1 中的数,并把结果输出到R,R+1, R+2 和R+3,商输出 给R 和R+1,余数输出给R+2 和R+3。 2.2.指令集指令集 2.14.15 2.14.15

30、 无符号二进制除无符号二进制除:/U(432) n4 个数字(单字)无符号十六进制数和/ 或常数相除。把Dd中无符号二进制数 除以Dr 中的数,并把商送到R, 余数送到R+1。 2.14.16 2.14.16 无符号双字二进制除:无符号双字二进制除:/UL(433) n8 个数字(双字)无符号十六进制和/ 或常数相除。把Dd 和Dd+1 中的无符号 二进制数除以Dr 和Dr+1 中的数,并把商送到R,R+1, 余数送到R+2 和R+3。 2.2.指令集指令集 2.15 2.15 逻辑指令逻辑指令 2.15.1 求反指令求反指令 COM (29) n把Wd 中所有置ON 的位置为OFF,所有置O

31、FF 的位置为ON。 n在下例中,当CIO 000000 为ON,则D00100 的每个位的状态将取反。 2.2.指令集指令集 2.15.2逻辑与:逻辑与:ANDW(034) n将一个字的数据和/ 或常数相应位进行逻辑与。 2.15.3逻辑或:逻辑或:ORW(035) n将一个字的数据和/ 或常数的相应位进行逻辑或。 2.2.指令集指令集 2.15.4异或指令:异或指令:XORW(036) n将一个字的数据和/ 或常数相应位进行逻辑异或。当I1和I2的相应位的内容不同 时,1将输出到R的相应位,当相同时,0将输出到R 中的相应位。(作为比较器 用) 2.15.5 异或非指令:异或非指令:XNR

32、W(037) n将一个字的数据和/ 或常数的相应位进行逻辑异或非。当I1和I2的相应位的内容 不同时,0将输出到R的相应位,当它们同时,1将输出到R 的相应位。 2.2.指令集指令集 2.16 2.16 子程序指令子程序指令 2.16.12.16.1子程序调用:子程序调用:SBS(091) n调用指定编号的子程序并执行该程序。 2.16.2 2.16.2 子程序入口:子程序入口:SBN(092) n用指定子程序编号来指示子程序的开始。与RET(093) 一起使用,定义一个子 程序的范围。 2.16.3 2.16.3 子程序返回:子程序返回:RET(093) n表示一个子程序的结束。与SBN(092) 一起使用定义一个子程序区 2.2.指令集指令集 2.2.指令集指令集 2.16.4 2.16.4 子程序可被嵌套到16 层。 嵌套是在一个子程序内有另 一个子程序被调用,如下图 所示,子程序被嵌套到2 层。 2.2.指令集指令集 2.16.5 2.16.5 宏指令:宏指令:MCRO(099) n调用指定子程序号的子程序,并用S S+3 中的输入参数和D D+3 中的输 出参数执行程序。 宏指令允许单个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论