从DB块取一个数老是报是编译报错,第一次学习使用这个指令,详细见截图,请教各位,非常感谢。。。。。
FUNCTION FC3 : void
VAR_INPUT
a:int;
b:int;
c:int;
d:word;
END_VAR
VAR_OUTPUT
dd:BOOL;
hhh:INT;
END_VAR
hhh:= WORD_TO_BLOCK_DB(a).dw[c];
END_FUNCTION
图片说明:
最佳答案
按照你定义的接口类型这样就可以了:
FUNCTION FC3 : void
VAR_INPUT
a:int;
b:int;
c:int;
d:word;
END_VAR
VAR_OUTPUT
dd:BOOL;
hhh:INT;
END_VAR
hhh:= WORD_TO_INT(WORD_TO_BLOCK_DB(INT_TO_WORD(a)).dw[c]);
END_FUNCTION
或者把a和hhh改成word类型的
图片说明:
提问者对于答案的评价:
谢谢RENHG,为什么hhh数据类型也要改呀,使用WORD_TO_BLOCK_DB,从DB块取出来默认是WORD数据是吧,如果输出INT,就必须WORD TO INT转换是吧?
最佳答案作者回复:
没事~
DBW系统默认是word类型吧,所以要转成整数,数据格式才能对应起来
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc136656.html