WORD_TO_BLOCK_DB怎么写呀

从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

图片说明:

WORD_TO_BLOCK_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_INT(WORD_TO_BLOCK_DB(INT_TO_WORD(a)).dw[c]);
     
END_FUNCTION 
或者把a和hhh改成word类型的

图片说明:

WORD_TO_BLOCK_DB怎么写呀  

提问者对于答案的评价:
谢谢RENHG,为什么hhh数据类型也要改呀,使用WORD_TO_BLOCK_DB,从DB块取出来默认是WORD数据是吧,如果输出INT,就必须WORD TO INT转换是吧?

最佳答案作者回复:
没事~
DBW系统默认是word类型吧,所以要转成整数,数据格式才能对应起来

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc136656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月1日 上午12:19
下一篇 2017年6月1日

相关推荐