您现在所在的是:

西门子SIEMENS

回帖:5个,阅读:2788 [上一页] [1] [下一页]
1095
greatgt
文章数:36
年度积分:50
历史总积分:1095
注册时间:2008/4/15
发站内信
发表于:2008/5/18 21:02:00
#0楼
请问如果我把跳转语句写在程序的最后,其目的是为了让程序每次执行完一遍后存放在MW100里的次数自动减1,当次数减为0,使M0.4置位,即在主程序之后是下列程序,想问问大家这样有没有问题,这样的程序如果执行是不是如果每次MW100中的数不是0时,只执行到 T MW100这个语句,不会在执行下面的ZE子程序,只有当MW100为0时才执行,如果不是这样还请大家指出错误和改正方法,不甚感激。

L MW100
-1
T MW100
JZ ZE
ZE:SET
  =M0.4
38113
cvlsam 版主
文章数:12488
年度积分:724
历史总积分:38113
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2008/5/18 21:55:00
#1楼
当不符合跳转条件时,程序继续向下执行。

因此,编程者必须考虑不符合跳转条件时的程序走向。如您在您的例子中,当JZ跳转条件不符合,仍然会自行ZE程序段。
1095
greatgt
文章数:36
年度积分:50
历史总积分:1095
注册时间:2008/4/15
发站内信
发表于:2008/5/18 22:12:00
#2楼
那如果我想要在只有MW100为0时才执行ZE,不为0时结束本次的程序扫描进行下次程序扫描,该如何编写?


[此贴子已经被作者于2008-5-18 22:12:20编辑过]
2392
robertjml
文章数:630
年度积分:50
历史总积分:2392
注册时间:2006/2/23
发站内信
发表于:2008/5/18 23:16:00
#3楼
MW100需要减零, 来判断JZ是否要跳转!

     L     MW   100
     L     0
     -I    
     JZ    ZE

     L     MW   100
     L     1
     -I    
     T     MW   100
     JU    PM

ZE:  SET  
     =     M      0.4

     L     DB1.DBW0
     T     MW   100   // 如果你需要的话, 在这里要重新赋"初始值"!

PM:  NOP   0
2392
robertjml
文章数:630
年度积分:50
历史总积分:2392
注册时间:2006/2/23
发站内信
发表于:2008/5/18 23:26:00
#4楼
"取决于条件代码的跳转功能---JZ"和"状态字CC0与CC1"的说明

JZ 标号 如果状态字“CC 1”位=0且“CC 0”位=0,则跳转(结果 = 0)

CC1及CC0位 CC1和CC0(条件代码)位给出有关下列结果的相关信息:
• 算术指令结果
• 或者,比较指令结果
• 字逻辑指令,或
• 在移位功能中,移出位相关信息。

可以用以下指令来检查条件代码CC1和CC0。

CC1     CC0   检查完成后,如果:

0         0   A == 0      结果 = 0 (ACCU2 = ACCU1)


示例                           两个整数相减并需进行连续判断:
L MW2
L MW8
-I
JZ  ZERO   // 如果结果等于“0”,则跳转至标号ZERO处

// 结果不等于“0”时所执行的指令

                      ZERO: . // 结果等于“0”时,所要执行的指令
1095
greatgt
文章数:36
年度积分:50
历史总积分:1095
注册时间:2008/4/15
发站内信
发表于:2008/5/19 10:17:00
#5楼
十分感谢各位朋友的帮助

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004