在西门子PLC中使用SCL语言编程的技巧

发布时间 : 星期三 文章在西门子PLC中使用SCL语言编程的技巧更新完毕开始阅读

(“Impls_1Sec” AND NOT Output_Aux) THEN Timer_ Actual:= Timer_ Actual 1; END_IF; Output_Aux:= Timer_Actual #gt;= Timer_Setpoint; END_IF; IF Output_Aux THEN Output_Delay:=0; //延时断开 END_IF;

#lt;4#gt;、在检测到一个上升沿脉冲后,立即输出,并开始计时,在 时间到达后断开。 IF Input_Condition THEN Output_Aux:=1; END_IF; IF (NOT Output_Aux) THEN Timer_Actual:= 0; Timer_Arrived := 0; ELSE IF (NOT Timer_ Arrived AND “Impls_1Sec” ) THEN Timer_Actual:= Timer_Actual 1; END_IF; Timer_ Arrived := Timer_Actual #gt;= Timer_Setpoint; END_IF; IF Timer_ Arrived THEN Output_Aux:=0; END_IF; Output_Delay:= Output_Aux;

通过以上的编程方式可以实现任何定时器功能,而代码却可以为不同的PLC系统所使用。

7、使用编程计数功能来替代计数器在SCL语言中使用计数功能是最为简单的,其关键是必须首先对输入进行脉冲检测假设Input_Imp为输入脉冲,CountImp为输入脉冲检测,Counter为计数值,Factor为计数因子(更详细点就

是每来一次脉冲,计数值增加多少)。 (*----- Create Impulse (Impulse Evaluation) -----------------------------------------------------*) CountImp:= Input_Imp AND (NOT CountImp_Old); CountImp_Old:= Input_Imp; (*----- Counter

---------------------------------------------------------------------------------*) IF CountImp THEN Counter:= Counter Factor; END_IF; 一个完整的计数程序应该还有计数器复位功能以及计数值上限检测条件(以防止计数值溢出)。

8、 新故障/新警告的检测 一个完整的FB块应该能够检测故障/警告,以及新故障/新警告,假设Input1, Input2… Inputn对应故障的输入(有信号表示OK),Fault1, Fault2… Faultn对应故障位,NFault1, NFault2…NFaultn对应新故障位,Flt和NFlt分别对应综合的故障和新故障,Ackn对应故障应答输入,为常开点,Mute对应新故障消除输入(或者称为蜂鸣器沉寂),为常开点: Fault1:= NOT Input1 OR (Fault1 AND NOT Ackn); NFault1:= Fault1 AND (Mute OR NFault1); Fault2:= NOT Input2 OR (Fault2 AND NOT Ackn); NFault2:= Fault2 AND (Mute OR NFault2); … Flt := Fault1 OR Fault2 OR Faultn NFlt :=(Fault1 AND NOT NFault1) OR (Fault2 AND NOT NFault2) OR (Faultn AND NOT NFaultn) NFlt就是最终的新故障输出指示,新警告的检测与之类似。

9、字中取位 字中取位有两种方式,一种是通过西门子所特有的字取位方式实现,一种是通过计算机编程的标准方式实现,假设Input_Word为输入参数,Word类型,W0,W1,

联系合同范文客服:xxxxx#qq.com(#替换为@)