johnny_lew
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看johnny_lew的 主题 / 回贴
楼主  发表于: 2010-05-19 19:02
要实现的功能:
一 列数据D101~D108 分别与另一列D301~D308比较,(1)不相等时,对应的M101~M108置位;(2)相等时,对应的M101~M108复位

--------------------------------
我想用变址的方法来实现(因为我要用到的有64对数据进行比较,不可能对每一对进行梯形图编程),对数据寄存器D的变址操作,我是会的,但相应的要对辅助继电器M的置位/复位,就不知怎么来实现了。

下面是我的思路:

LD M8000    MOV K1  V0
FOR   K7
LD M8000   AND<>  D101V0  D301V0   SET??
LD M8000   AND=   D101V0  D301V0  RST??
INC V0
NEXT
----------------------------------------------------------------
上的指令是按梯形图格式来写的,有下划线的斜体字部分,就是对M的置位/复位,这部分是我不懂的。

问题:
1、我上面的那种方法在FX2N的编程中是不是可行的?可行的话,那后面置位/复位的部分应怎么写?
2、如果我的这种方法不可行,那应该用什么方法来实现?
[ 此帖被johnny_lew在2010-05-19 19:15重新编辑 ]
zhu_changqun
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看zhu_changqun的 主题 / 回贴
1楼  发表于: 2010-05-19 21:43
    你这是C语言OR其他语言的格式吧,在PLC里是不能这样用的.对于你要求的位变址,手册上讲是可以用 SET M100Z1;但实际上不行.这个你可和三菱技术人员联系.
魏来磊
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看魏来磊的 主题 / 回贴
2楼  发表于: 2010-05-20 19:21
LD           M8002
MOV        K0              V0
LD           M8000    
AND        X000
MPS
AND《》 D101V0     D301VO
SET           M0
MRD
AND=     D101V0        D301V0
RST           M0
MPP
INC             V0
SFTR         M0  M100  K16 K1
CMP            V0    K16     M10
AND              M11
MOV             K4M100     K4Y0
MOV              K0      V0
循环指令好像不好用