以下用s7-200 plc举例,在不需要增加任何资源。在外部计时条件满足的情况下,cpu开始计时,同时,计时数据通过电缆实时传送到人机界面显示。
编程方法:
计时器:利用系统的特殊寄存器标志位sm0.5作为计时脉冲,接通一次(或断开一次)为1秒,用计数器累计时间,满60向前进位。
时间累计:实时的小时计是前一次的累计时间加本次的工作时间。h=h0+h1。
时间存储:用永久存储的方式存储时间数据到eeprom存储器。
存储周期:存储周期长,eeprom存储器使用的时间长,但计时精度低;存储周期短,计时精度高,但eeprom存储器使用的时间短。这是一个矛盾的统一,设计时要根据系统的实际情况确定合适的存储周期,一般设计为3-5分钟。进行一次永久存储的操作,扫描时间会增加15-20ms。
小时计编辑功能。考虑到cpu有可能损坏的原因,更换cpu后小时计的数据会清零,所以,小时计要有编辑的功能才更完善,当更换cpu后,通过界面可以把以前的工作数据输入到系统并永久存储,在这项操作时,为了使编辑的数据能够成功存储到永久存储区,必须在数据编辑完后,让cpu再运行一个大于存储周期的时间。当然,为了使工作数据的严谨性,小时计的编辑一定要密码进入。
存储地址更换:为了小时计的实时性和准确性,存储周期不能设计得太长,一般设计为3-5分钟。eeprom存储器操作的安全次数为10万次,那么一个eeprom存储器安全计时时间为100000×3/60=5000小时,一般机器的工作寿命是大于这个时间。解决这个问题的办法是在计时次数超过100000次时,更换存储地址。为了存储地址更换的方便,小时计的寻址方式采用间接寻址。
存储次数存储。为了小时计存储地址更换的需要,存储次数也要与小时计一样进行永久存储,并到100000次后更换地址。
地址更换的次数存储。为了小时计存储地址更换的需要,地址更换的次数也要与小时计一样进行永久存储,由于次数不多,所以,不要更换地址。
程序流程简图
误差分析
小计时产生误差的原因有两方面,一个是计时误差,另一个是存储误差。
计时误差:本小时计的计时器是用系统特殊寄存器标志位sm0.5,它的状态变化周期是500ms,如果程序运行时捕捉不到状态的变化就产生误差。通过长期的监控实验,这个计时误差很小,1小时的误差不到1秒,可以忽略不计。
存储误差:机器在关机时,最后一次存储还没来得及执行,产生存储误差。这个误差是一个负差,计时时间比实际的工作时间表小。每次关机的最大误差是一个存储周期的时间3分钟。