【案例】 如何使用SCL编程实现顺控功能
越来越多的人喜欢使用SCL编程,今天给大家带来一个使用SCL编程实现顺控功能的示例。
功能说明:
工作时,按下启动按钮A和B阀全部打开,开始进料,30s后A阀关闭,B阀继续放料,当达到传感器2,搅拌电机开始转动 ,当达到传感器3,B阀关闭,电机继续转动30s后停止,同时出料阀C打开,当达到传感器1后,延时10s,C阀关闭,完成一个周期。
这个系统要求单周期和连续工作两种模式。
当看到这个功能说明,相信大家很容易想到使用GRAPH来进行编,今天,也可以使用SCL来进行编程。
首先,设置接口变量如下图所示:
编写程序:这里使用条件语句来进行编写,首先要使用单周期和连续运转来进行两个分支的判断。
先编写单周期工作方式:
然后是连续工作方式:
源代码如下:
IF #单周期选择 THEN
IF #启动 THEN
#电磁阀1 := 1;
#电磁阀2 := 1;
#time1.TON(IN := #电磁阀1,
PT := T#30S);
END_IF;
IF #time1.Q THEN
#电磁阀1 := 0;
END_IF;
IF #传感器2 THEN
#电机KM := 1;
ELSIF #time2.Q
THEN
#电机KM := 0;
END_IF;
IF #传感器3 THEN
#电磁阀2 := 0;
END_IF;
#time2.TON(IN := #传感器3,
PT := T#30S);
IF #time2.Q THEN
#电磁阀3 := 1;
END_IF; #time3.
TON(IN := #传感器1,
PT := T#10S);
IF #time3.Q THEN
#电磁阀3 := 0;
END_IF;
ELSIF
NOT #单周期选择 THEN
IF #启动 OR #time3.Q THEN
#电磁阀1 := 1;
#电磁阀2 := 1;
#time1.TON(IN := #电磁阀1,
PT := T#30S);
END_IF;
IF #time1.Q THEN
#电磁阀1 := 0;
END_IF;
IF #传感器2 THEN
#电机KM := 1;
ELSIF #time2.Q
THEN
#电机KM := 0;
END_IF;
IF #传感器3 THEN
#电磁阀2 := 0;
END_IF;
#time2.TON(IN := #传感器3,
PT := T#30S);
IF #time2.Q THEN
#电磁阀3 := 1;
END_IF;
#time3.TON(IN := #传感器1,
PT := T#10S);
IF #time3.Q THEN
#电磁阀3 := 0;
END_IF;
END_IF;