回复:300模拟量通道切换的问题

askab

  • 帖子

    401
  • 精华

    5
  • 被关注

    34

论坛等级:侠圣

注册时间:2005-07-24

黄金 黄金 如何晋级?

发布于 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


大家同行,you ok ? me !
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。