欧姆龙PLC指令集讲义全.ppt

上传人:tian****1990 文档编号:7996421 上传时间:2020-03-26 格式:PPT 页数:97 大小:3.74MB
返回 下载 相关 举报
欧姆龙PLC指令集讲义全.ppt_第1页
第1页 / 共97页
欧姆龙PLC指令集讲义全.ppt_第2页
第2页 / 共97页
欧姆龙PLC指令集讲义全.ppt_第3页
第3页 / 共97页
点击查看更多>>
资源描述
2 指令集 顺序输入指令顺序输出指令顺序控制指令定时器和计数器指令比较指令数据传送指令数据移位指令递增 递减指令四则运算指令转换指令逻辑指令特殊算术指令特殊算术指令子程序指令中断控制指令步指令任务控制指令 浮点数运算指令双精度浮点数指令表格数据处理指令数据控制指令基本l O单元指令串行通信指令网络指令文件存储指令显示指令时钟指令调试指令故障诊断指令文本字符串处理指令块指令 2 指令集 2 1指令格式 数据区域及其标志指令格式 助记符 功能代码 操作数1操作数2操作数3操作数4助记符 表示指令的功能 表明执行该指令能够实现的操作 助记符通常是一些简洁易记的字母或符号 功能代码 指令码 功能代码是指令的代码 用2位十进制数表示 操作数 操作数指定或提供指令执行的数据 有些指令不带操作数 有的指令带1个操作数 有的则带2个 3个或4个操作数 2 指令集 数据区域及其标志一般情况下 指令的操作数就是指令的数据区域 因此 IR区域 SR区域 HR区域 AR区域 LR区域 TC区域及DM区域中的字可以是操作数的字 字的位可以是操作数的位 简称操作数位 但是在指定的数据区域内 并非所有的地址都允许用于操作数 通常用继电器区域的缩写及字 位的地址作为指令的操作数 但I O继电器没有缩写符 为避免与常数混淆 当用常数作为指令的操作数时 应在常数前面加上 号 有些指令执行后会影响标志位 有些指令执行后不影响标志位 SR区域包括标志位和控制位 用来监视PLC操作 存取时钟脉冲及显示错误信息 受指令执行影响的标志位如下表 2 指令集 受指令执行影响的标志位 SR区标志位 2 指令集 2 2梯形图指令2 2 1LD LDNOT AND ANDNOT OR ORNOT指令 2 指令集 2 指令集 2 2 2逻辑块与 ANDLD 和逻辑块或 ORLD 指令对于复杂的控制系统 使用大量的编程元件 这些编程元件所在的行相并联构成逻辑块 逻辑块之间还存在串联关系 在这种情况下 不能简单地使用OR或者AND来处理 而需要使用ANDLD和ORLD指令才能将梯形图转化为助记符程序 其原因是OR和AND指令用于执行条件与一位状态逻辑间接 而ORLD和ANDLD指令能够逻辑地连接两个执行条件 即当前执行条件与上一个还未使用的执行条件 2 指令集 2 3位 bit 控制指令2 3 1输出 OUT 指令和输出非 OUTNOT 指令 2 指令集 2 3 2上升沿微分指令和下降沿微分指令DIFU和DIFD 2 指令集 2 指令集 2 3 3置位和复位指令SET和RESET 2 指令集 2 3 3置位和复位指令SET和RESET 2 指令集 2 3 4保持指令KEEP 2 指令集 2 指令集 应用KEEP指令的梯形图 2 指令集 2 4联锁和联锁解除指令IL和ILC 2 指令集 2 指令集 IL和ILC之间的程序处理表 2 指令集 2 5跳转和跳转终了指令JMP和JME 2 指令集 2 6结束指令END 2 7空操作指令NOP此指令无任何功能 NOP 000 不做任何操作 2 指令集 2 8定时器和计数器指令2 8 1定时器指令TIM 以0 1s为单位 2 指令集 2 指令集 2 8 2高速定时器指令TIMH 计量单位为0 01s 使用方法和TIM指令相同 如果扫描周期大于10ms 必须使用TC000 TC015编号才能保持计时准确 2 指令集 2 8 3累加定时器指令TTIM 2 指令集 2 8 4计数器指令CNT 复位输入有优先权 如果复位输入和计数输入同时ON 计数器会复位 PV会复位到SV 完成标志也会变OFF 2 指令集 即使电源中断 计数器PV仍然保持 如果希望从SV开始计数 而不是从保持的PV恢复计数 增加第一次循环标志 A20011 作为计数器的复位输入 2 指令集 2 8 5可逆计数器指令CNTR 2 指令集 在增量时 PV从SV增加返回到0时 完成标志变ON 一旦完成标志变为ON PV从0增加到1时 完成标志又变回OFF 在减量时 PV从0减小到SV时 完成标志变ON PV从SV减小到SV 1时 完成标志又变回OFF 2 指令集 2 指令集 2 9数据移位指令2 9 1移位寄存器指令SFT当移位输入的执行条件由OFF变为ON时 St E的所有数据左移一位 从最右边到最左边 并且把数据输入的ON OFF状态放在最右边位 2 指令集 2 9 2可逆移位寄存器指令SFTR产生一个可向右也可向左移动数据的移位寄存器 2 指令集 2 9 3算术左移指令ASL 算术右移指令ASRWd的内容左移一位 Wd的内容向右移1位 2 指令集 2 9 4循环左移指令ROL 循环右移指令ROR循环左移指令 所有Wd的位包括进位标志 CY 向左移1位 循环右移指令 所有Wd的位 包括进位标志 CY 向右移动1位 2 指令集 2 9 5数 4bits 左移SLD 数 4bits 右移SRDSLD 074 把S和E之间的数据向左移一个数字 4位 为单位移动 0 被放置到最右边的数字 S的位3 位0 最左位数字 E的位15 位12 内容丢失 SRD 075 把St和E之间的数据向右移动一个数字 4位 0 被放到最左的数字 E的位15 12 并且最右的数字 St的位3 0 内容丢失 2 指令集 2 9 6字移位 WSFT 016 WSFT 016 指令以字为单位按St到E方向移动数据 源字S的数据放在St中 E中的内容将丢失 2 指令集 2 9 7异步移位寄存器指令 ASFT 017 2 指令集 2 指令集 2 10数据传送指令2 10 1传送指令 MOV 021 传送数据的一个字到指定字中 在下面例子中 当CIO000000为ON时 CIO0100的内容被拷贝到D00100中 2 指令集 2 10 2取反传送指令 MVN 022 MVN 022 指令对S中的位进行取反 并把结果传送到D中 S中的内容保持不变 2 指令集 2 10 3块设置 BSET 071 把同一个字拷贝到一个连续字的范围中 2 指令集 2 10 4块传送 XFER 070 传送指定数目的连续字 XFER 070 指令把从S开始的N个字 S S N 1 拷贝给从D开始的N个字 D D N 1 2 指令集 2 10 5数据交换 XCHG 073 交换两个指定字的内容 2 指令集 2 10 6单字节数据分配指令 DIST 080 把源字传送到由基地址加偏移量计算得出的目标字中 2 指令集 2 10 7数据调用指令 COLL 081 把源字 由基址加偏移量计算得出 传送到目标字中 2 指令集 2 10 8位传送指令 MOVB 082 传送指定位 2 指令集 2 10 9传送数字指令 MOVD 083 传送一个或多个指定的数字 每个数字由4位组成 2 指令集 2 指令集 2 10 10多位传送指令 XFRB 062 传送指定数目的连续位 2 指令集 2 指令集 2 11数据比较指令2 11 1多字比较指令 MCMP 019 16个连续字与另外16个连续字相比较 并使结果字中相应于两字内容不相等的位变ON R的每一位包含了在16字设置中两个字比较的结果 R中的位n n 00 15 包含了字S1 n和S2 n的比较结果 2 指令集 2 指令集 2 11 2比较 CMP 020 比较两个无符号二进制值 常数和 或指定字的内容 并输出结果到辅助区的算术标志中 2 指令集 当执行CMP 020 指令 其结果反映在算术标志中 用与控制CMP 020 指令相同的输入条件分支来控制所希望的输出或右侧指令 如下图所示 在这种情况下 当S1 S2 等于标志和输出A将变ON 不要在CMP 020 指令和算术标志控制指令之间编写其它指令 因为其它指令可能会改变算术标志的状态 在这种情况下 指令B的结果可能会改变指令CMP 020 的结果 2 指令集 2 11 3双字比较指令 CMPL 060 比较两个双字无符号二进制值 常数和 或指定字的内容 并输出结果到辅助区的算术标志中 2 11 4块比较指令 BCMP 068 比较源数据和16个范围 由16个下限和16个上限定义 当源数据在范围内时 结果字中的相应位变ON 2 指令集 2 指令集 2 12数据转换指令2 12 1BCD到二进制数 BIN 023 BIN 023 把S中的BCD码转换成二进制数 并把结果字写进R BCD码到二进制数转换的例子 2 指令集 2 12 2双字BCD码到双字二进制 BINL 058 8个数字的BCD数到8个数字的十六进制 32位二进制 数的转换 8个数字的BCD码转换到二进制数的例子 2 指令集 2 12 3二进制数到BCD码 BCD 024 把S中的二进制数转换成BCD数 并把结果写进R BCD码到二进制数转换的例子 2 指令集 2 12 4双字二进制数到双字BCD码 BCDL 059 把S和S 1中的8个数字的十六进制 32进制 数转换为8个数字的BCD码 并把结果写到R和R 1 在下例中当CIO000000为ON时 CIO0011和CIO0010中的十六进制数转换成BCD码 并存储在D00100和D00101中 2 指令集 2 13BCD码运算指令2 13 1不带进位的BCD加 B 404 4个数字 单字 有符号十六进制数和 或常数相除 在下面例子中 当CIO000000置ON时 D00100和D00110将作为4个BCD数字相加 并且结果送到D00120 2 指令集 2 13 2不带进位的双字BCD加 BL 405 8个数字 单字 BCD数据和 或常数相加 2 13 3带进位的BCD加 BC 406 4个数字 单字 BCD码数据和 或常数及进位标志相加 2 指令集 2 13 4带进位的双字BCD加 BCL 407 8个数字 双字 BCD数据和 或常数及进位标志 CY 相加 2 13 5不带进位的BCD减 B 414 4位 单字 BCD和 或常数相减 2 指令集 2 13 6不带进位的双字BCD减 BL 415 8位 双字 BCD数和 或常数相减 2 13 7带进位的BCD减 BC 416 4位 单字 BCD数与 或常数及进位标志 CY 相减 2 指令集 2 13 8带进位的双字BCD减 BCL 417 8个数字 双字 BCD数据和 或常数及进位标志 CY 相减 2 13 9BCD乘法 B 424 4个数字 单字 BCD数据和 或常数相乘 把Md和Mr中的BCD内容相乘 并把结果输出给R 2 指令集 2 13 11BCD除 B 434 4个数字 单字 BCD码和 或常数相除 将Dd的BCD内容除以Dr的内容 并输出商到R 余数到R 1 2 13 10双字BCD乘 BL 425 8个数字 双字 BCD数据和 或常数相乘 把Md和Md 1与Mr和Mr 1中的BCD数相乘 并把结果送给R R 1 R 2和R 3 2 指令集 2 13 12双字BCD除 BL 435 8个数字 双字 BCD码和 或常数相除 把Dd和Dd 1中的BCD码除以Dr和Dr 1中的数 并把商输出给R和R 1 余数输出给R 2和R 3 2 指令集 2 14二进制运算指令2 14 1不带进位的有符号二进制加 400 4个数字 单字 十六进制数据和 或常数相加 2 14 2不带进位的有符号双字二进制加 L 401 8个数字 双字 十六进制数据和 或常数相加 把Au和Au 1 Ad和Ad 1中的二进制值相加 并且把结果送给R 2 指令集 2 14 3带进位的有符号二进制加 C 402 4个数字 单字 十六进制数据和 或常数相加 把Au Ad和CY中的二进制数相加 并且把结果送给R 2 14 4带进位的有符号双字二进制加 CL 403 把Au和Au 1 Ad和Ad 1及CY中的二进制数相加 并且把结果送给R 2 指令集 2 14 5不带进位的有符号二进制减 410 4个数字 单字 十六进制数据和 或常数相减 从Mi中减去Su中的二进制数 并且把结果送给R 结果为负时 将2的补码送给R 2 14 6不带进位的有符号双字二进制减 L 411 8个数字 双字 十六进制数据和 或常数相减 把Mi和Mi 1中减去Su和Su 1中的二进制数并且把结果送给R R 1 当结果为负数时 结果作为2的补码送给R和R 1 2 指令集 2 14 7带进位的有符号二进制减 C 412 4个数字 单字 十六进制数据和 或常数及进位标志 CY 相减 从Mi中减去Su中的二进制数和CY 并且把结果送给R 结果为负时 将2的补码送给R 2 14 8带进位的有符号双字二进制减 CL 413 8个数字 双字 十六进制数据和 或常数相减及进位标志 CY 把Mi和Mi 1中减去Su和Su 1中的二进制数及CY 并且把结果送给R R 1 当结果为负数时 结果作为2的补码送给R和R 1 2 指令集 2 14 9有符号二进制乘 420 4位有符号十六进制数和 或常数的乘法 把Md和Mr中有符号二进制数相乘 并把结果输出给R R 1 2 14 10有符号双字二进制乘 L 421 8个数字有符号十六进制数和 或常数的相乘 把Md和Md 1与Mr和Mr 1中的符号二进制数相乘 并把结果输出到R R 1 R 2和R 3 2 指令集 2 14 11无符号二进制乘 U 422 4个数字无符号十六进制数和 或常数的相乘 把Md和Mr中的二进制数相乘并把结果输出到R R 1 2 14 12无符号双字二进制乘 UL 423 把8个数字无符号十六进制数和 或常数相乘 把Md和Md 1与Mr和Mr 1种的无符号二进制数相乘并把结果送给R R 1 R 2和R 3 2 指令集 2 14 13有符号二进制除 430 4个数字 单字 有符号十六进制数和 或常数相除 把Dd中的有符号二进制数 16位 除以Dr中的数 并把结果输出到R R 1 商放在R中 余数放在R 1中 2 14 14有符号双字二进制除 L 431 8个数字 双字 有符号十六进制数和 或常数相除 把Dd和Dd 1中的有符号二进制数除以Dr和Dr 1中的数 并把结果输出到R R 1 R 2和R 3 商输出给R和R 1 余数输出给R 2和R 3 2 指令集 2 14 15无符号二进制除 U 432 4个数字 单字 无符号十六进制数和 或常数相除 把Dd中无符号二进制数除以Dr中的数 并把商送到R 余数送到R 1 2 14 16无符号双字二进制除 UL 433 8个数字 双字 无符号十六进制和 或常数相除 把Dd和Dd 1中的无符号二进制数除以Dr和Dr 1中的数 并把商送到R R 1 余数送到R 2和R 3 2 指令集 2 15逻辑指令2 15 1求反指令COM 29 把Wd中所有置ON的位置为OFF 所有置OFF的位置为ON 在下例中 当CIO000000为ON 则D00100的每个位的状态将取反 2 指令集 2 15 2逻辑与 ANDW 034 将一个字的数据和 或常数相应位进行逻辑与 2 15 3逻辑或 ORW 035 将一个字的数据和 或常数的相应位进行逻辑或 2 指令集 2 15 4异或指令 XORW 036 将一个字的数据和 或常数相应位进行逻辑异或 当I1和I2的相应位的内容不同时 1将输出到R的相应位 当相同时 0将输出到R中的相应位 作为比较器用 2 15 5异或非指令 XNRW 037 将一个字的数据和 或常数的相应位进行逻辑异或非 当I1和I2的相应位的内容不同时 0将输出到R的相应位 当它们同时 1将输出到R的相应位 2 指令集 2 16子程序指令2 16 1子程序调用 SBS 091 调用指定编号的子程序并执行该程序 2 16 2子程序入口 SBN 092 用指定子程序编号来指示子程序的开始 与RET 093 一起使用 定义一个子程序的范围 2 16 3子程序返回 RET 093 表示一个子程序的结束 与SBN 092 一起使用定义一个子程序区 2 指令集 2 指令集 2 16 4子程序可被嵌套到16层 嵌套是在一个子程序内有另一个子程序被调用 如下图所示 子程序被嵌套到2层 2 指令集 2 16 5宏指令 MCRO 099 调用指定子程序号的子程序 并用S S 3中的输入参数和D D 3中的输出参数执行程序 宏指令允许单个子程序来取代数个子程序 这数个子程序需具有相同的结构 但操作数不同 当指令执行条件为ON时 该指令将S S 3的内容复制到A600 A603 宏区输入 并执行指定子程序 当子程序执行完成时 A604 A607 宏区输出 被复制到D D 3 且程序将继续执行MCRO 099 后的下一个指令 2 指令集 2 指令集 2 17中断控制指令 2 指令集 2 17 1中断屏蔽指令 MSKS 690 当PC进入运行 RUN 方式时 I O中断任务和定时中断任务均被屏蔽 禁止 MSKS 690 可用于对I O中断屏蔽或取消屏蔽和为定时中断设定时间间隔 2 指令集 2 17 2读中断屏蔽 MSKR 692 读取MSKS 690 中设定的当前中断处理设置 2 指令集 2 指令集 2 17 3清除中断指令 CLI 691 清除或保持I O中断的中断输入记录 或者设定定时中断的首次定时中断的时间 2 指令集 2 17 4禁止中断 DI 693 禁止除电源OFF中断以外的中断任务执行 2 指令集 2 17 5允许中断 EI 694 使DI 693 禁止的所有中断任务允许执行 2 指令集 2 18步指令用于在一个大型程序的程序段之间设立断点 这样这些程序段可以按单元执行 并在完成后复位 2 18 1步定义和步开始指令 STEP 008 SNXT 009 SNXT 009 放在STEP 008 指令之前 并由置指定控制位为ON来控制步程序的执行 如果就在SNXT 009 前存在另一个步 它也能将该处理的控制位置OFF STEP 008 置于每个过程之前并紧随SNXT 009 指令之后 它定义了每个过程的开始 并为其制定控制位 STEP 008 也可放在最后一个SNXT 009 之后的步程序区结尾 以表示步程序区结束 STEP 008 出现在步程序结尾处时 不带控制位 在定义一个步程序的开始 定义控制位如下 在定义步的结尾时不指定控制位 2 指令集 2 指令集 2 指令集 顺序控制 2 指令集 分支控制 2 指令集 并行控制 2019 ppt资料 96 欢迎批评指导 快乐工作 快乐生活 感谢您的聆听 谢谢
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!