恭喜,你发布的帖子
发布于 2015-10-31 12:09:15
6楼
按照你的意思,是用一个AI通道采集多个数据输入,通过开关量切换接入AI的数据。
如果是这个意思,首先必须确认进入AI通道的信号一致(应该均为电压或电流,且通道频率应一致)
其次,需要在切换时刻,对当前数据进行存储,目的,防止数据突变。
最后,想说的,这样的控制思路仅仅用于采样检测,类似于巡检,不能参与闭环控制的(较多震荡)。
L DB1.DBW0
T DB1.DBW40 //当前通道采样值 用于食用
A Q0.0
JNB M001
L PIW256
T DB1.DBW10 //当前通道采样值 存储
M001: NOP 0
//以上为 针对Q0.0开关工作时,采集的信号
当你要用多个采集时,以上程序复制,并修改 DB1.DBW0
或者
FUNCTION_BLOCK FB3
VAR_INPUT
channel:WORD; //PIW256
switch:ARRAY[1..5] OF BOOL:=false; //选择开关 Q0.0 Q0.1用5个
END_VAR
VAR_OUTPUT
channel_out:ARRAY[1..5] OF INT:=0; //对应开关的输出量
END_VAR
VAR
i:INT;
chan_int:INT;
store:ARRAY[1..5] OF INT; //存储开关关闭时的值
END_VAR
chan_int:=WORD_TO_INT(channel); //字转换成整数
FOR i:= 1 TO 5 BY 1 DO
IF switch[i] THEN
store[i]:=chan_int;
END_IF;
channel_out[i]:= store[i];
END_FOR;
END_FUNCTION_BLOCK
请填写推广理由:
分享
只看
楼主