JC/JU指令的理解

我有一段程序:
A  I96.5(加速10%)
JC M006
AN I96.6(减速10%)
JC M007
A I96.7(减速20%)
JC M008
L DB5.DBW16(数值为20)
JU M009
M006: L DB5.DBW12(数值为10)
JC M009
M007: L DB5.DBW14(数值为10)
JC M009
M009: T MW192

CALL FC250(s5乘法运算)
Z1=MW192
Z2=MW164
Z3_0=M255.0
Z32=MW194
Z31=MW192

L MW192
SRW 7
L MW194
SLW 9
OW
L MW164
AN I96.5
JC M010
+I
JU M011
M010:TAK
-I
M011: T MW164
M008:NOP 0

我现在用的是S7-1200的CPU,不支持语句表,所以在转换为梯形图的时候遇到了问题,请各位专家帮忙解答。
1.无条件跳转JU怎么转换? (比如L DB5.DBW16  JU M009,可不可以转换成L DB5.DBW16  T TEMP1( 建一个临时变量)JC M009,用的和JC跳转一样,区别就是前面没有跳转的条件,这样可以吗?)
2.NOP 0(空操作)怎么转换?(我做的是空起来,不写任何程序)
3.M009与M010之间的程序是不是要全部写在一个网络中?
4.跳转指令的理解:JC条件满足后,跳转到指定区域执行程序,执行完成后,返回到下一行程序继续执行,是不是这样的?
比如I96.7=1,I96.6=0,先跳转到M007,在跳转到M009,执行加减速运算,然后跳转到M008,执行空操作,最后将DB5.DBW16传送到MW192,执行减速运算,是这样的吗?

图片说明:

JC/JU指令的理解   

最佳答案

1、无条件跳转JU就是执行程序没有条件的限制,只要扫描到此处,程序便会执行。有条件跳转JC就是执行程序有条件的限制,扫描扫此处时,条件必须满足才会执行程序。这就像梯形图中MOVE指令前有没有条件限制一样。
2、NOP 0(空操作)表示此处没有程序了,不执行任何程序。程序中表示当I96.7接通后,下面的程序不执行,直接扫描网络五中的程序。
3、首先在梯形图中,这段程序不可能写在同一网络中的。是不是在一个网络中,无所谓。
4、被跳转过去的程序不再执行。I96.6=0,直接跳转到M007,在跳转到M009,执行加减速运算,并且程序继续向下扫描。而程序不会执行I96.7=1的跳转。

提问者对于答案的评价:
谢谢两位,您的回答更加全面,采纳为最佳答案。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc232863.html

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午1:24
下一篇 2018年12月1日 下午1:24

相关推荐