俗语有云,条条大道通罗马,对于自控程序也是一样的,每个编程人员的思维模式和实现方式也可能不一样,找到适合自己的路,到达目的就可以了。
对于两台水泵循环启停我们采用SCL的case...of...语句也可以实现水泵的控制。
具体代码如下:
(1)FC功能程序
"R_TRIG_DB"(CLK:=#clock_p,
Q=>#P);
IF #P THEN
#B_RTview:=#B_RTview+1;
IF #B_RTview >= #B_RTset THEN
#p1 :=1;
IF #p1 THEN
#Bump_no := #Bump_no + 1;
END_IF;
#B_RTview := 0;
IF #Bump_no >2 THEN
#Bump_no := 1;
END_IF;
END_IF;
END_IF;
CASE #Bump_no OF
1:
#B1_drive := 1;
#B2_drive := 0;
2:
#B2_drive := 1;
#B1_drive := 0;
ELSE
#B1_drive := 0;
#B2_drive := 0;
END_CASE;
定义管脚:
代码:
调用:
"选择水泵"(clock_p:="clock",
Bump_no:="bump12".bump_no,
B1_drive:="B1_drive",
B2_drive:="B2_drive",
B_RTset:="bump12".B_RTset1,
B_RTview:="bump12".B_RTview);
总结:
case...of....为选择语句,就是当变量值在不同时,执行不通的语句。
留思:
笔者初入SCL,很多都是摸索,关于以下几点对于高手请给予指教:
1)如何采用SCL内部语言实现上升沿监测?
2)SCL支持置位和复位指令? |