回复:应用探讨——SCL 编程语言使用探讨

氢气

  • 帖子

    47
  • 精华

    8
  • 被关注

    4

论坛等级:游侠

注册时间:2008-04-14

普通 普通 如何晋级?

发布于 2013-09-12 11:12:59

101楼

quote:以下是引用htc在2013-09-11 09:48:57的发言:
在Step7 V5.X环境下,如果是专业版软件则包括SCL软件,如果是其他的则不包括,需要单独安装。
V5.x环境下使用SCL感觉不爽的是上升沿、下降沿需要编程,不像LAD、STL那样有指令直接使用。
关于沿的编程,参考http://support.automation.siemens.com/WW/view/en/6210591

在博途V12,S7-1200和S7-1500CPU中,支持两个位逻辑运算R_TRIG和F_TRIG,分别为上升沿检测和下降沿检测。其实质是两个功能块(调用时需要分配背景数据块,博途将它们归类为系统块目录下)。在300,400CPU或者是STEP7 V5.X下使用SCL语言可以自己编写一个FB块,其可在多重背景中使用,作为沿检测信号,FB1程序:
FUNCTION_BLOCK FB1
VAR_INPUT
CLK:BOOL;
END_VAR
VAR_OUTPUT
R_Q:BOOL;
F_Q:BOOL;
END_VAR
VAR
StatCLK:BOOL;
END_VAR
IF CLK=1 AND StatCLK=0 THEN
R_Q:=1;
ELSIF CLK=0 AND StatCLK=1 THEN
F_Q:=1;
ELSE
R_Q:=0;F_Q:=0;
END_IF;
StatCLK:=CLK;
END_FUNCTION_BLOCK
然后FB2中使用多重背景调用:
FUNCTION_BLOCK FB2
VAR
Edge01:FB1;
Edge02:FB1;
END_VAR
Edge01(CLK :=m0.0 // IN: BOOL
);
m0.1:= Edge01.R_Q; // OUT: BOOL
m0.2:= Edge01.F_Q; // OUT: BOOL

Edge02(CLK :=m0.3 // IN: BOOL
);
m0.4:= Edge01.R_Q; // OUT: BOOL
m0.5:= Edge01.F_Q; // OUT: BOOL
END_FUNCTION_BLOCK
不过在FC或者OB中调用FB1还是需要单独分配背景数据块,使用起来确实不如STL和LAD中的沿检测方便。htc给出的链接程序中,程序的编写更为简洁。
---------------------来自西门子工程师
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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