后台禁止
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看后台禁止的 主题 / 回贴
楼主  发表于: 2009-01-03 21:54
图片:
如图,是在FC10块出现的,不明白什么意思。那位高手解释一下
deanhao
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看deanhao的 主题 / 回贴
1楼  发表于: 2010-01-18 11:52
引用
引用第2楼cvlsam于2009-01-04 10:55发表的  :
这段程序的意思大致为:根据()内的运行结果去决定是否调用FC40

将变量IN0去乘以1000,结果保存在TEMP2中,然后检测前面的乘法运算是否结果溢出,OV为溢出标志位,通过检测OV是否为1来决定是否运算溢出。

为什么要用AN OV呢?如果您知道三菱的话,那么西门子AN相当于ANI,也就是欧姆龙的AND NOT。
.......

对你的解释有不同的看法欢迎讨论。
有异议的地方是这句:
“最后()内的指令讲解完毕,那么()外的A就是用于检测()内的RLO运行结果。如果()内的RLO为1,那么就执行FC,否则,不执行。”
首先call是无条件调用语句,也就是说不依赖任何条件进行处理,指定的块总是被调用。(不包括OB)。那么你说的“如果()内的RLO为1,那么就执行FC,否则,不执行。”因为FC的执行不由在执行它时RLO位的状态决定,也就是无论如何FC40都是要执行的,要想达到你说的用RLO位判断是否执行FC40,前面必需要有跳转语句等。