应用场景:设备现场很多时候,程序员需要对用户输入的数据范围进行限定,以防止突然输入很大的异常数据,影响设备使用。
1.新建“数据输入限制”FB块,直接上FB代码。

IF M8002 THEN
FOR i :=0 TO K100 BY K1 DO
in_Temp_Data[i] := in_Data[i];
END_FOR;
END_IF;
FOR i :=0 TO K100 BY K1 DO
in_P_Data:= in_Temp_Data[i]+in_ArrageData;
in_N_Data:= in_Temp_Data[i]-in_ArrageData;
IF in_Data[i]<>in_Temp_Data[i] AND in_N_Data<=in_Data[i] AND in_Data[i]<=in_P_Data THEN
in_Temp_Data[i] :=in_Data[i];
in_Data[i] := in_Data[i];
ELSE
in_Data[i] := in_Temp_Data[i];
END_IF;
END_FOR;
2.实例化FB化

4.新建位置变量数组和输入范围变量。

![]()
5.程序如下:
//**定位点位的输入范围保护**//
FBI_001(in_Data := PosA0,in_ArrageData := fDataLimit);
FBI_002(in_Data := PosA1,in_ArrageData := fDataLimit);
FBI_003(in_Data := PosA2,in_ArrageData := fDataLimit);
FBI_004(in_Data := PosA3,in_ArrageData := fDataLimit);
FBI_005(in_Data := PosA4,in_ArrageData := fDataLimit);
FBI_006(in_Data := PosA5,in_ArrageData := fDataLimit);
FBI_007(in_Data := PosA6,in_ArrageData := fDataLimit);
这样就完成对轴0-轴6的100个点位的数据输入保护。







