JN:若结果不为零则跳转 (S7-1500) 说明 使用“若结果不为零则跳转”指令,将根据状态位 CC 0 和 CC 1来中断线性程序的执行,并 在指定的跳转标签标记处继续程序执行。 只有在状态位 CC 0 和 CC 1的信号状态不才会跳到指定跳转标签处。满足下列条件之 一时便会出现这种情况: • 在执行未发生溢出的算术指令后,累加器 1的值不等于零。 • 在执行针对整数的算术指令(+I、-I、*I、+D、-D、*D)时,发生负值溢出。 •在对整数进行算术指令(+I、-I、*I、/I、+D、-D、*D、/D、NEGI、NEGD)时,发生正 值溢出。 •在执行针对浮点数的算术指令时,发生正值或负值溢出。 • 执行比较指令后,累加器 1 和 2 中的内容不相等。 •执行字逻辑运算之后,累加器 1 中的内容不为零。 • 执行移位指令后,Zui后一个移出位的值为“1”。在其它任何情况下均不执行跳转,并且在下一条指令时恢复执行程序。只有在状态位 CC 0 和 CC 1的信号状态都为“0”时,才会跳到指定跳转标签处。满足下列条 件之一时便会出现这种情况: • 在执行未发生溢出的算术指令后,累加器 1的值为“0”。 • 当执行“加整数(16 位)”(+I) 或“加双整型数(32 位)”(+D) 指令时,发生负值溢出。 •在执行发生溢出的算术指令(浮点数算术)时,值会逐渐降至允许范围以下。 • 执行比较指令后,累加器 1 和 2 中的内容相等。 •执行字逻辑运算后,累加器 1 中的内容为零。 • 执行移位指令后,Zui后一个移出位的值为“0”。在其它任何情况下均不执行跳转,并且在下一条指令时恢复执行程序。
JP:若结果大于零(正值)则跳转 (S7-1500) 说明 使用“若结果大于零(正值)则跳转”指令,将根据状态位 CC 0 和 CC 1来中断线性程序的 执行,并在指定的跳转标签标记处继续程序执行。只有在状态位 CC 0 为“0”且 CC 1的信号状态为“1”时,才会跳到指定跳转标签处。满足下列 条件之一时便会出现这种情况: • 在执行未发生溢出的算术指令后,累加器 1的值大于零。 • 在执行针对整数的算术指令(+I、-I、*I、+D、-D、*D)时,发生负值溢出。 •在执行针对整数的算术指令(*I、/I、*D、/D)时,发生正值溢出。 • 在执行针对浮点数的算术指令时,发生正值溢出。 •执行比较函数后,累加器 2 中的内容大于累加器 1 中的内容。 • 执行逻辑运算之后,累加器 1 中的内容不为零。 •执行移位指令后,Zui后一个移出位的值为“1”。 在其它任何情况下均不执行跳转,并且在下一条指令时恢复执行程序。JM:若结果小于零(负值)则跳转 (S7-1500) 说明 使用“若结果小于零(负值)则跳转”指令,将根据状态位 CC 0 和 CC 1来中断线性程序的 执行,并在指定的跳转标签标记处继续程序执行。 只有在状态位 CC 0 的信号状态为“1”且 CC 1的信号状态为“0”时,才会跳到指定跳转标签处。 满足下列条件之一时便会出现这种情况: • 在执行未发生溢出的算术指令后,累加器 1的值小于零。 • 在执行针对整数的算术指令(*I、*D)时,发生负值溢出。 •在执行针对整数的算术指令(+I、-I、+D、-D、NEGI、NEGD)时,发生正值溢出。 •在执行针对浮点数的算术指令时,发生负值溢出。 • 执行比较函数后,累加器 2 中的内容小于累加器 1 中的内容。在其它任何情况下均不执行跳转,并且在下一条指令时恢复执行程序。JPZ: 若结果大于或等于零则跳转 (S7-1500) 说明使用“若结果大于或等于零则跳转”指令,将根据状态位 CC 0 来中断线性程序的执行,并在指定的跳转标签标记处继续程序执行。只有在状态位 CC 0 的信号状态为“0”时,才会跳转到指定跳转标签处。满足下列条件之一时便会出现这种情况: • 在执行未发生溢出的算术指令后,累加器 1 的值大于或等于零。 •在执行针对整数的算术指令(+I、-I、*I、+D、-D、*D)时,发生负值溢出。 •在执行针对整数的算术指令(*I、/I、*D、/D)时,发生正值溢出。 • 在执行针对浮点数的算术指令时,发生正值溢出。 •在执行发生溢出的算术指令(浮点数算术)时,值会逐渐降至允许范围以下。 • 执行比较函数后,累加器 2 的内容大于或等于累加器 1的内容。 • 执行了字逻辑运算指令。 • 执行了移位指令。 在其它任何情况下均不执行跳转,并且在下一条指令时恢复执行程序。JMZ:若结果小于或等于零则跳转 (S7-1500) 说明 使用“若结果小于或等于零则跳转”指令,将根据状态位 CC 1来中断线性程序的执行,并 在指定的跳转标签标记处继续程序执行。 只有在状态位 CC 1的信号状态为“0”时,才会跳转到指定跳转标签处。满足下列条件之一时 便会出现这种情况: • 在执行算术指令后如果未发生溢出,则累加器1 的值小于或等于零。 • 在执行针对整数的算术指令(+I、*I、+D、*D)时,发生负值溢出。 •在执行针对整数的算术指令(+I、-I、+D、-D、NEGI、NEGD)时,发生正值溢出。 •在执行针对浮点数的算术指令时,发生负值溢出。 • 在执行发生溢出的算术指令(浮点数算术)时,值会逐渐降至允许范围以下。 •执行比较指令后,累加器 2 的内容小于或等于累加器 1 的内容。 • 处理字逻辑后,累加器 1 的值等于零。 •执行写指令后,Zui后一个移出位的值为零。 在其它任何情况下均不执行跳转,并且在下一条指令时恢复执行程序。JUO: 若结果无效则跳转(S7-1500) 说明 使用“若结果无效则跳转”指令,将根据状态位 CC 0 和 CC 1 来中断线性程序的执行,并在指定的跳转标签标记处继续程序执行。 只有在状态位 CC 0 和 CC 1 的信号状态都为“1”时,才会跳到指定跳转标签处。满足下列条件之一时便会出现这种情况: • 使用数学指令(/I、/D、MOD)被零整除时。 •使用浮点数执行算术指令时,发生溢出并且结果值为无效的浮点数。 • 使用浮点数执行比较指令时,使用了无效的浮点数或者结果值为无效浮点数。在其它任何情况下均不执行跳转,并且在下一条指令时恢复执行程序。JL: 定义跳转列表 (S7-1500) 说明使用“定义跳转列表”指令来编写包含多个“无条件跳转”(JU) 指令条目的列表。该列表紧 接在“定义跳转列表”指令之后,Zui多可以包含255 个条目。列表中跳转函数的编号从零 开始。编写跳转列表时编号必需连续。跳转列表的末尾标记有为“定义跳转列表”指令指定的跳转标签。 列表中跳转函数的执行取决于累加器 1 低字节中的值。例如,如果累加器 1 的值为“0”,则执行第一个跳转函数。如果累加器 1 中的值为“1”,则执行第二个跳转函数。如果累加器 1 中的值大于列表条目数,则“定义跳转列表”指令会引用列表结尾。 “跳转分支指令”指令的执行与条件无关,不会影响状态位。LOOP: 循环(S7-1500) 说明 使用“循环”指令,编写程序循环。 该指令将累加器 1 的低字解释为 0 到 65535 之间的无符号 16位整数。在指令执行阶段,首 先将累加器 1 中的内容减 1。在减 1 之后,如果累加器 1 中的值不为零,则在指定跳转标签处执行跳转。如果值为零,则不执行跳转,并且在下一条指令时恢复执行程序。累加 器 1中的值会指定需要执行的程序循环数。需要将这一数值保存在循环计数器中。数据块 (S7-1500) OPN: 打开 DB 寄存器中的数据块(S7-1500) 说明 可以使用“打开 DB 寄存器中的数据块”指令打开一个全局数据块 (DB)。将数据块编号传送 到 DB寄存器。后续的 DB 命令将根据寄存器的内容访问相关块。 无条件执行“打开 DB寄存器中的数据块”指令,该指令既不会影响逻辑运算结果,也不会 影响累加器的内容。OPNDI: 打开 DI 寄存器中的数据块(S7-1500) 说明 可以使用“打开 DI 寄存器中的数据块”指令打开任意数据块。将数据块的编号传送到 DI 寄 存器。后续 DI命令根据寄存器的内容访问相关块。 从块接口对一个局部形参进行符号寻址时,通常会访问在调用块时指定编号的数据块。 无条件执行“打开 DI寄存器中的数据块”指令,该指令既不会影响逻辑运算结果,也不会 影响累加器的内容。CDB: 交换数据块寄存器 (S7-1500) 说明使用“交换数据块寄存器”指令,交换数据块寄存器的内容。该指令的执行与条件无关,它 不影响状态位。 示例以下示例说明了该指令的工作原理:L DBLG:将全局数据块的长度加载到累加器 1 中 (S7-1500) 说明使用“将全局数据块的长度装载到累加器 1 中”指令,将通过数据块寄存器打开的全局数据 块的长度装载到累加器 1 中。累加器 1中的原有内容将移动到累加器 2 中。 如果在执行该指令之前,没有通过数据块寄存器打开全局数据块,则值“0”将装载到累加器 1中。数据块的长度与数据字节的数量相同。 该指令不影响状态位L DBNO:将全局数据块的编号加载到累加器 1 中 (S7-1500)说明 使用“将全局数据块的编号装载到累加器 1 中”指令,将通过数据块寄存器打开的全局数据 块的编号装载到累加器 1 中。累加器 1中的原有内容将移动到累加器 2 中。如果在执行该指令之前,没有通过数据块寄存器打开全局数据块,则值“0”将装载到累加器 1 中。该指令不影响状态位。L DILG:将背景数据块的长度加载到累加器 1 中 (S7-1500) 说明使用“将背景数据块的长度装载到累加器 1 中”指令,将通过数据块寄存器打开的背景数据 块的长度装载到累加器 1 中。累加器 1中的原有内容将移动到累加器 2 中。 如果在执行该指令之前,没有通过数据块寄存器打开背景数据块,则值“0”将装载到累加器 1中。数据块的长度与数据字节的数量相同。 该指令不影响状态位。