我浏览到这个帖子,也很感兴趣,参照几位楼上的方法。用SFTBL指令4行也可以,用循环FOR指令用了6行也可以,有个疑问8楼的2的N次方减1的方法,实在想不到怎么实现。在实现之余我努力寻找指令,有没有可以直接类似“FMOV”指令一样可以直接对bool元件直接进行处理的指令,如“FMOV K1 M0 K24,,这是我的假设指令",,后发现WORK3-R系列中有丰富的位处理指令,找到类似的指令为如下"BLKMOVB"名称为N位数据传送。后面我程序如下
1.LD SM400 DMOV HFFFFFF K6M1
LD<> D0 D2 BKRST M25 K24
SFTBL M1 K48 D0
MOV D0 D2
注释:D0为上位机输入。M25后24个为灯。D2为比较用。M1后24个为值1后面调用
2.LD<> D0 D2 MOV K0 V1
MOV D2 D0
左母线-------------------FOR D0
LD>= D0 K1V1 SET M1V1
INC V1
左母线-------------------next
注释:D0为上位机输入。M1后24个为灯。V1为计算变量
3. LD SM400 DMOV HFFFFFF K6M1
LD SM400 BKRST M101 K24
LD SM400 BLKMOVB M1 M101 D0
注释:D0为上位机输入。M101往后为24个灯。M1往后24个,为存储值1后调用