恭喜,你发布的帖子
发布于 2021-11-07 19:42:04
24楼
尝试写了 一下
FUNCTION "test" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
IN : DInt; // 输入值
END_VAR
VAR_OUTPUT
out : DInt; // 输出值
IN_ERR : Bool;
END_VAR
VAR_TEMP
lg_real : Real; // 指数结果
lg : Int; // 指数取整
Check : DInt; // 校验值
END_VAR
BEGIN
//计算结果
#lg_real := LN(#IN) / LN(2);
//取整后计算校验值
#lg := REAL_TO_INT(#lg_real);
#Check := 2 ** #lg;
//校验一致则认为输入正确,输出结果
IF #Check = #IN THEN
#out := #lg + 1;
#IN_ERR := 0;
ELSE
#out := 0;
#IN_ERR := 1;
END_IF;
END_FUNCTION
请填写推广理由:
分享
只看
楼主