关于用SCL写FB函数的问题

已锁定

LLLLXXXX

  • 帖子

    2
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2019-05-16

普通 普通 如何晋级?

关于用SCL写FB函数的问题

874

2

2019-05-16 10:33:40

写了一个泵和阀门的控制子函数,开机第一次调用时正常(开启时先开阀门延时2S再开泵,关闭时先关泵延时2S再关阀。)。但是第二次接通这个启停(M20.1)时,泵和阀同时启动,关闭时泵和阀同时关闭,延时未起到作用。

不是很了解西门子这个子函数的调用逻辑。还是说帮助文档里我没看到。

以下是程序:


#开关正跳变(CLK:=#启停,Q=> #启动开始计时);

IF #启动开始计时 = 1
THEN
    #阀1 := 0;
    #阀2 := 0;
    #泵 := 0;
    #启动开始 := 0;
    #关闭开始 := 0;
    #启动开始 := 1;
END_IF;
IF #启动开始 = TRUE
THEN
    #阀1 := TRUE;
    #阀2 := TRUE;
    #TIME1(IN :=#启动开始,              //开始检测延时启动
           PT := #延时时间,
           Q => #打开泵 );
          // ET => #打开延时当前时间
    IF #打开泵 = true
    THEN
        #泵 := true;
        #启动开始 := 0;
        #打开泵 := 0;
        #启动中间量 := 0;
       // #启停 := 0;
        //#打开延时当前时间 := #"TIME-A";
    END_IF;
    
END_IF;

#开关负跳变(CLK:=#启停,Q=> #关闭开始计时);

IF #关闭开始计时 = 1
THEN
    #关闭开始 := 1;
    #启动开始 := 0;
END_IF;
IF #关闭开始 = true
THEN
    #泵 := FALSE;
    #TIME2(IN := #关闭开始,
           PT := #延时时间,
           Q => #关闭延时到达);
         //  ET => #关闭延时当前时间
    IF #关闭延时到达 = true
    THEN
        #阀1 := FALSE;
        #阀2 := FALSE;
        #关闭开始 := 0;
        #关闭延时到达 := 0;
        #关闭中间量 := 0;
       // #启停 := 0;
       // #关闭延时当前时间 := #"TIME-A";
    END_IF;
END_IF;


关于用SCL写FB函数的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15705条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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