OPN "G-DB-STA01-BS"
NOP 0
AN #NextRP_En
JNB ABC
CALL "BLKMOV"
SRCBLK :="ZERO"
RET_VAL:=#RET_TR
DSTBLK :=P#DBX 0.0 WORD 403
上面代码在Step7 V5.5中是可以使用的,变量"G-DB-STA01-BS"中存储DB编号,通过SFC20把特定的值传给DB里面的403个word.
但是这段代码转换到博图V13中就不能使用了, DSTBLK 参数不支持这种写法,请问我要实现功能需要在V13中怎样修改代码????
问题补充:
按照yoda提供的方法,我新建了一个FB块重新输入代码仍然会报错。是否方便发我一个代码正常使用的项目email:29887890@qq.com
图片说明:
最佳答案
我测试了下,博途环境下和STEP V5.5下any类型数据的格式是一样的。所以你的写法没错。
然后我测试发现了为什么在博途里会出现你遇到的情况,原因是你是将step7 v5.5里的程序通过ctrl+c/ctrl+v复制黏贴到博途里的,此时就会这样。
解决方法:在博途里重新写入代码call sfc20,再将any类型的源数据和目标数据写入,就正常了。
你的数据类型错了,正常call SFC20,目标、源数据类型应该是any,而你却是variant,所以你用any格式写入当然就无法编译通过。
你应该是在FB的形参里定义了variant型的参数,直接在FB声明静态变量表里找到这个参数的名字,把这个名字填进去就好了。
参考资料:http://zhidao.baidu.com/link?url=qaa-1iuA0mb4Sh1h6RB9LxTziGttKdzcF_C7pDd7xpBoCF2O8K4Voc-ymiGULoD51S-wPBySP-LjyVduIiuocBZNtOl4wmOZKLDp0wYavhm
提问者对于答案的评价:
可以贴下代码和参数的写法吗,我不知道该怎么写,早上测试到现在都没成功
最佳答案作者回复:
刚才新建一个S-1500工程测试了下,BLKMOV的数据类型是Variant,和S7-300/400的any不同,但你填写any也没问题,前提是地址写全,所以上次我说的可能没解决问题。
参考代码(无法贴图了):
CALL BLKMOV
Variant
SRCBLK :=M3.2
RET_VAL :=MW10
DSTBLK :=P#DB1.DBX0.0 WORD 403
//把地址写全DB1.写上,不要用OPN DB1,然后只写DBX。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc171754.html