前2天有位大神使用SCL编写的设备运行时间累计程序,很不错,但是看不太明白。其实对于S7-300 PLC来说,可以使用西门子库程序块实现。
打开STEP7 软件,在库下面的System Function Blocks 中可以找到SFC2、SFC3和SFC4 。其中SFC 2“SET_RTM”用于设置运行时间定时器,SFC 3“CTRL_RTM”用于启动和停止运行时间定时器,
SFC 4“READ_RTM”用于读取运行时间定时器。SFC2、SFC3和SFC4各个管脚定义说明见下图。



程序如下:
L 0
T #TEMP1
T #TEMP4
AN "M24.7" //清零按钮,M24.7=1,清零设备运行时间并重新设置运行时间定时器
JC M001
CALL "SET_RTM" //调用SFC2
NR :=#TEMP1
PV :=#TEMP4
RET_VAL:=#TEMP0
A "M0.1" //恒为1标志位
R "M24.7" //清零按钮
BEU
M001: NOP 0
CALL "CTRL_RTM" //调用SFC3
NR :=#TEMP1
S :=Q124.0 //真空泵电机
RET_VAL:=#TEMP0
CALL "READ_RTM" //调用SFC4
NR :=#TEMP1
RET_VAL:=#TEMP0
CQ :=#TEMP2
CV :=#TEMP5
L #TEMP5
ITD
T DB21.DBD0 //真空泵电机工作累计时间
我们可以在触摸屏中做个画面,显示真空泵电机工作时间。我们知道真空泵需要定期保养,保养包括更换真空泵油、清洁空气过滤器、更换油过滤器等。程序可以更加完善,例如真空泵工作超过1000小时,触发一个标志位,提醒用户需要更换真空泵油,如果用户没有更换,超过1200小时真空泵停机处理。