S7-1500 使用SCL编程交通灯的控制

2025-10-18 15:19:40

1、新建 Traffic_Lights_Table变量表,单击此变量表,建立以下变量:

"Auto_Start" 地址I3.0,用于启动按钮

"Auto_Stop" 地址I3.2,用于停止按钮

"EW_Red" 地址Q3.0 用于控制东西向Red 

"EW_Yellow"地址Q3.1 用于控制东西向Yellow 

"EW_Green" 地址Q3.2 用于控制东西向Green 

"NS_Red" 地址Q3.3 用于控制南北向Red 

"NS_Yellow" 地址Q3.4 用于控制南北向Yellow 

"NS_Green" 地址 Q3.5 用于控制南北向Green 

S7-1500 使用SCL编程交通灯的控制

2、新建 交通灯控制程序块功能Traffic_Lights_Control,单击打开程序。

IF "Auto_Start" THEN

    "Auto_MS":=1// 启动

    ;

    "EW_Counter" := 0;

    "NS_Counter" := 0;

END_IF;

IF "Auto_Stop" THEN

    "Auto_MS":=0//停止

    ;

    "EW_Counter" := 0;

    "NS_Counter" := 0;

END_IF;

S7-1500 使用SCL编程交通灯的控制

3、编写东西向 Green常亮定时器,定时时间为5s,东西向 Green闪烁1s方波程序。

"IEC_Timer_2_DB".TON(IN:="Auto_MS" & ( NOT "NS_Yellow_Timer_Out"),

                     PT:=T#5s,

                     Q=>"EW_Green_Timer_Out");

S7-1500 使用SCL编程交通灯的控制

4、编写 东西向 "Yellow"常亮定时器,定时时间为2s 东西向 "Red" 常亮定时器,定时时间为10s。

"IEC_Timer_5_DB".TON(IN:="EW_Counter"=3,

                     PT:=T#2s,

                     Q=>"EW_Yellow_Timer_Out");

"IEC_Timer_6_DB".TON(IN:="EW_Yellow_Timer_Out",

                     PT:=T#10S,

                     Q=>"EW_Red_Timer_Out");

S7-1500 使用SCL编程交通灯的控制

5、编写 东西向 Green输出控制程序。

IF "Auto_MS" & (NOT "EW_Green_Timer_Out") OR "EW_Green_Timer_Out" & "EW_Green_500ms_Out01" THEN

    "EW_Green" := 1

    ;

ELSE

    "EW_Green" := 0

    ;

END_IF;

S7-1500 使用SCL编程交通灯的控制

6、编写东西向 "Yellow" 输出控制程序 东西向 "Red" 输出控制程序。

IF "EW_Counter"=3 & (NOT "EW_Yellow_Timer_Out") THEN

    "EW_Yellow" := 1

    ;

ELSE

    "EW_Yellow" := 0

    ;

END_IF;

IF "EW_Yellow_Timer_Out" & (NOT "EW_Red_Timer_Out") THEN

    "EW_Red" := 1

    ;

ELSE

    "EW_Red" := 0

    ;

END_IF;

S7-1500 使用SCL编程交通灯的控制

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢