欢迎来到西门子工业支持中心网站!
欢迎来到西门子工业支持中心网站!
悬赏:10西币 | 解决时间:2018-03-21 15:17
来自手机Wap客户端
产品版区:
SIMATIC S7-1200
Eric1987
我在仿真variant to db_any的时候总是提示数据块类型错误,有没有实例可以参考?谢谢!
小程序:
最佳答案
http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1303281&b_id=50&s_id=0&num=9#anch
也可以参考我下面的程序。
FUNCTION_BLOCK "DB_ANY_TEST"
{ S7_Optimized_Access := ''TRUE'' }
VERSION : 0.1
VAR_INPUT
Input_1 : DB_ANY;
END_VAR
VAR_IN_OUT
InOut_1 : Byte;
InOut_2 : Int;
InOut_3 : Real;
END_VAR
VAR
error : Int;
recipe : "recipe";
error2 : Int;
Static_1 : DB_ANY;
Static_2 : Array[0..10] of Byte;
Static_3 : Array[0..10] of Byte;
i : Int;
j : Int;
result : Bool;
END_VAR
VAR_TEMP
a : Variant;
v : Variant;
END_VAR
BEGIN
#a := DB_ANY_TO_VARIANT(in :=#Input_1, err => #error);
#v := DB_ANY_TO_VARIANT(in := #Input_1, err => #error);
VariantGet(SRC:=#a,
DST=>#recipe);
#InOut_2 := #recipe.Element_3;
#InOut_1 := #recipe.Element_2;
#InOut_3 := #recipe.Element_4;
VariantPut(SRC:=#recipe,
DST:=#v);
#Static_1:= VARIANT_TO_DB_ANY(in:=#v, err=>#error2);
FOR #i := 0 TO 10 DO
IF #Static_2[#i] = #Static_3[#i] THEN
#result := TRUE;
ELSE
#result := FALSE;
// Statement section IF
;
END_IF;
;
END_FOR;
"Tag_184" := 1;
"Tag_185" := 1;
"Tag_186" := 1;
END_FUNCTION_BLOCK
回答者:
Hong_tu
回答时间:2018-03-20 11:00
提问者对于答案的评价:
现赠您1张1847体验会员卡,可免费领取,畅学1847会员内容,是否领取?
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!