回复:模拟量批量处理问题

已锁定

雨天2014

  • 帖子

    64
  • 精华

    2
  • 被关注

    1

论坛等级:侠士

注册时间:2014-02-23

普通 普通 如何晋级?

发布于 2020-05-25 20:34:57

7楼

我也在学习这个,你看看怎么样 

#singal_num := #singal_num_1;
#fault_code := 16#0;
#Fault_num := 0;
#singal_fault := FALSE;
FOR
    #singal_num := 1 TO 10 DO
    IF "several ai singal data".singal[#singal_num].bipolar AND ("several ai singal data".singal[#singal_num].input < -27648 OR
        "several ai singal data".singal[#singal_num].input > 27648) THEN
        // Statement section IF
        "several ai singal data".singal[#singal_num].singal_fault := 16#1;
    ELSIF NOT "several ai singal data".singal[#singal_num].bipolar AND
        ("several ai singal data".singal[#singal_num].input < 0 OR "several ai singal data".singal[#singal_num].input >27648) THEN
        "several ai singal data".singal[#singal_num].singal_fault := 16#1;
    ELSE
        "several ai singal data".singal[#singal_num].singal_fault := 16#0;
       
    END_IF;
   
    IF "several ai singal data".singal[#singal_num].bipolar THEN
        "several ai singal data".singal[#singal_num].input_limt := LIMIT(MN := -27648,
                                                                    IN := "several ai singal data".singal[#singal_num].input,
                                                                    MX := 27648);
        // Statement section IF
    ELSIF NOT "several ai singal data".singal[#singal_num].bipolar THEN
        "several ai singal data".singal[#singal_num].input_limt := LIMIT(MN := 0,
                                                                    IN := "several ai singal data".singal[#singal_num].input,
                                                                    MX := 27648);
    END_IF;
   
    "several ai singal data".singal[#singal_num].ret_val := SCALE(IN := "several ai singal data".singal[#singal_num].input_limt,
                                                                  HI_LIM := "several ai singal data".singal[#singal_num].h_lim,
                                                                  LO_LIM := "several ai singal data".singal[#singal_num].l_lim,
                                                                  BIPOLAR := "several ai singal data".singal[#singal_num].bipolar,
                                                                  OUT => "several ai singal data".singal[#singal_num].out);
 

    #fault_code := #fault_code + "several ai singal data".singal[#singal_num].singal_fault;
    IF "several ai singal data".singal[#singal_num].singal_fault > 16#0 THEN
        #singal_fault := TRUE;
        #Fault_num := #singal_num;
        // Statement section IF
    END_IF;
END_FOR;


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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