欧姆龙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 指令格式、数据区域及其标志指令格式、数据区域及其标志指令格式:指令格式:助记符(功能代码) 操作数1 操作数2 操作数

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指令执行出错标志25503CY进位标志25504GR大于标志25505EQ等于标志25506LE小于标志25507N负标志25402OF上溢标志25404UF下溢标志25405受指令执行影响的标志位受指令执行影响的标志位(SR(SR区标志位

4、区标志位) )2.2.指令集指令集n2.2 梯形图指令梯形图指令n2.2.1 LD、LD NOT、AND、AND NOT、OR、OR NOT 指令梯形图符号助 记 符名 称指 令 功 能操作数区域LD装载常开触点与左侧母线相连接的指令IR,SR,AR,HR,TC,LR,TRLD NOT装载非常闭触点与左侧母线相连接的指令IR,SR,AR,HR,TC,LRAND与常开触点与其他编程元件串连的指令IR,SR,AR,HR,TC,LRAND NOT与非常闭触点与其他编程元件串连的指令IR,SR,AR,HR,TC,LROR或常开触点与其他编程元件并连的指令IR,SR,AR,HR,TC,LROR NOT或

5、非常闭触点与其他编程元件并连的指令IR,SR,AR,HR,TC,LR2.2.指令集指令集2.2.指令集指令集2.2.2 逻辑块与(AND LD)和逻辑块或(OR LD) 指令 对于复杂的控制系统,使用大量的编程元件,这些编程元件所在的行相并联构成逻辑块,逻辑块之间还存在串联关系。在这种情况下,不能简单地使用OR或者AND来处理,而需要使用AND LD和OR LD指令才能将梯形图转化为助记符程序。其原因是OR和AND指令用于执行条件与一位状态逻辑间接,而OR LD和AND LD指令能够逻辑地连接两个执行条件,即当前执行条件与上一个还未使用的执行条件。2.2.指令集指令集2.3 位(bit)控制指

6、令2.3.1 输出(OUT)指令和输出非(OUT NOT)指令梯形图符号助 记 符名 称指 令 功 能操作数区域OUT输出当执行条件为ON时,OUT指令使指定位输出为ONIR,SR,AR,HR,TC,LR,TROUT NOT输出非当执行条件为OFF时,OUT指令使指定位输出为ONIR,SR,AR,HR,TC,LR2.2.指令集指令集2.3.2 上升沿微分指令和下降沿微分指令DIFU和DIFD 2.2.指令集指令集2.2.指令集指令集2.3.3 置位和复位指令置位和复位指令SET和和RESET2.2.指令集指令集2.3.3 置位和复位指令置位和复位指令SET和和RESET2.2.指令集指令集2.

7、3.4 保持指令保持指令 KEEP2.2.指令集指令集2.2.指令集指令集00003KEEP(11)HR010000300000010000200005HR0100紧急1紧急2紧急3复位报警应用应用KEEPKEEP指令的梯形图指令的梯形图2.2.指令集指令集2.4 联锁和联锁解除指令联锁和联锁解除指令 IL 和和 ILC2.2.指令集指令集2.2.指令集指令集指 令处 理OUT和OUT NOT指定位变为OFFSET和RESET位状态保持TIM和TIMH复位TTIMPV保持CNT,CNTRPC保持KEEP位状态保持DIFU和DIFD不执行其他指令不执行IL和和ILC之间的程序处理表之间的程序处理

8、表2.2.指令集指令集2.5 跳转和跳转终了指令跳转和跳转终了指令 JMP和和JME2.2.指令集指令集2.6结束指令结束指令 ENDEND2.7 空操作指令空操作指令 NOP此指令无任何功能。(NOP(000) 不做任何操作)2.2.指令集指令集2.8 定时器和计数器指令定时器和计数器指令2.8.1 定时器指令定时器指令 TIM , 以以0.1s为单位为单位2.2.指令集指令集2.2.指令集指令集2.8.2 高速定时器指令高速定时器指令 TIMH计量单位为计量单位为0.01s,使用方法和,使用方法和TIM指令相同。指令相同。如果扫描周期大于如果扫描周期大于10ms,必须使用,必须使用TC00

9、0-TC015 编号才能保持计时准编号才能保持计时准确。确。2.2.指令集指令集2.8.3 累加定时器指令累加定时器指令 TTIM2.2.指令集指令集2.8.4 计数器指令计数器指令 CNT复位输入有优先权,如果复位输入和计数输入同时ON,计数器会复位。(PV会复位到SV,完成标志也会变OFF)。2.2.指令集指令集即使电源中断,计数器PV 仍然保持,如果希望从SV 开始计数,而不是从保持的PV 恢复计数,增加第一次循环标志(A20011) 作为计数器的复位输入。2.2.指令集指令集2.8.5 可逆计数器指令可逆计数器指令 CNTR2.2.指令集指令集n在增量时, PV 从SV 增加返回到0

10、时,完成标志变ON,一旦完成标志变为ON, PV 从0 增加到1 时,完成标志又变回OFF。n在减量时,PV 从0 减小到SV 时,完成标志变ON, PV 从SV 减小到SV-1 时,完成标志又变回OFF。2.2.指令集指令集2.2.指令集指令集2.9 数据移位指令数据移位指令2.9.1 移位寄存器指令移位寄存器指令 SFT当移位输入的执行条件由OFF 变为ON 时, St E 的所有数据左移一位(从最右边到最左边),并且把数据输入的ON/OFF 状态放在最右边位。2.2.指令集指令集2.9.2 可逆移位寄存器指令可逆移位寄存器指令 SFTR产生一个可向右也可向左移动数据的移位寄存器。2.2.

11、指令集指令集2.9.3 算术左移指令算术左移指令 ASL,算术右移指令算术右移指令 ASRWd 的内容左移一位。Wd 的内容向右移1 位。2.2.指令集指令集2.9.4 循环左移指令循环左移指令 ROL, 循环右移指令循环右移指令 RORn循环左移指令:所有Wd 的位包括进位标志(CY) 向左移1 位。n循环右移指令:所有Wd 的位,包括进位标志(CY),向右移动1 位。2.2.指令集指令集2.9.5 数数(4bits)左移左移SLD,数数(4bits)右移右移SRDnSLD(074) 把S 和E 之间的数据向左移一个数字(4 位)为单位移动。“0”被放置到最右边的数字(S 的位3 位0),最

12、左位数字(E 的位15 位12)内容丢失。nSRD(075) 把St 和E 之间的数据向右移动一个数字(4 位),“0”被放到最左的数字(E 的位15 12),并且最右的数字(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(02

13、1)n传送数据的一个字到指定字中。在下面例子中,当CIO 000000为ON时,CIO 0100 的内容被拷贝到D00100中。2.2.指令集指令集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) 拷贝给

14、从D 开始的N个字(D D (N1)。2.2.指令集指令集2.10.5 2.10.5 数据交换:数据交换:XCHG(073)交换两个指定字的内容。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传送数字指令传送数

15、字指令:MOVD(083)n传送一个或多个指定的数字。(每个数字由4 位组成)。2.2.指令集指令集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

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

17、 2.11.3 双字比较指令双字比较指令:CMPL(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双字双字B

18、CD 码到双字二进制:码到双字二进制: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

19、为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 个数字(单字) BCD

20、数据和/ 或常数相加。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)n8 位(双字) BCD 数和/ 或常数相

21、减。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.11 BCD 除:除:/B(434)n4 个数字(单字) B

22、CD 码和/ 或常数相除。将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 中的数,并把商输出给R和R+1,余数输出给R+2 和R+3。2.2.指令集指令

23、集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 带进位的有符号二进制加:带进位的有符号二进制加:+C(402)n4 个数字(单字)十六进制数据和/ 或常数相加。把Au, Ad 和CY

24、 中的二进制数相加,并且把结果送给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.14.6 不带进位的有符号双字二进制减:不带进位的有符号双字二进制减:-L(411)n8 个数字(双字)十六进

25、制数据和/ 或常数相减,把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 带进位的有符号双字二进制减:带进位的有符号双字二进制减:-CL(413)n8 个数字(双字)十六进制数据和/ 或常数相减及进位标志(CY)。把Mi 和M

26、i+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 个数字有符号十六进制数和/ 或常数的相乘。把Md 和Md+1 与Mr 和Mr+1 中的符号二进制数相乘,并把结果输出到R,R+1,R+2 和R+3。2.2.指令集指令集2.14

27、.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.132.14.13有符号二进制除:有符号二进制除:/(430)n4 个数字(单字)有符号十六进制数和/ 或常数相除。把Dd 中的有符号二进制数(16 位)除以

28、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 无符号二进制除无符号二进制除:/U(432)n4 个数字(单字)无符号十六进制数和/ 或常数相除。把Dd中无符号二进制数除以Dr 中的数,并把商送到R, 余数送到R+1。2.

29、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,所有置OFF 的位置为ON。n在下例中,当CIO 000000 为ON,则D00100 的每个位的状态将取反。2.2.指令集指令集2.15.2逻辑与:逻辑与:ANDW(034)n将一个字的数据和/ 或常

30、数相应位进行逻辑与。2.15.3逻辑或:逻辑或:ORW(035)n将一个字的数据和/ 或常数的相应位进行逻辑或。2.2.指令集指令集2.15.4异或指令异或指令:XORW(036)n将一个字的数据和/ 或常数相应位进行逻辑异或。当I1和I2的相应位的内容不同时,1将输出到R的相应位,当相同时,0将输出到R 中的相应位。(作为比较器用)2.15.5 异或非指令:异或非指令:XNRW(037)n将一个字的数据和/ 或常数的相应位进行逻辑异或非。当I1和I2的相应位的内容不同时,0将输出到R的相应位,当它们同时,1将输出到R 的相应位。2.2.指令集指令集2.16 2.16 子程序指令子程序指令2.

31、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

提交评论