liaphy
现我有一设备,要求此设备运行到一定时间需要给上位机一个报警信号,提示需要更换润滑油,但设备厂家的要求是,新设备首次运行500小时需要更换一次润滑油,以后每3000小时则需要再次更换润滑油,现我有一VD变量存储设备运行时间,且已存如断电保存寄存器,请教,如何才能用最简单的方法实现以上功能;假设设备运行时间保存变量地址为VD100,报警信号为M10。希望能给出梯形图或STL程序,谢谢!
问题补充:最好另外再用一变量保存此运行时间(因为此时间还需给上位机显示设备运行总时间),这样可以等加完润滑油后清零寄存器。
广告真牛!见缝插针!
ye_w
建议使用定时中断来实现时间的累计,而不是使用定时器+计数器的方式。
比如使用SMB34,设置为250ms,执行4次就是1s。
云锋
将VD100 MOV到另一个区,然后将数值与500或3000比较后输出报警,并复位运行时间。
楼上的定时中断如何实现?
云峰的与500或3000比较,复位时间,要考虑是500还是3000复位,因为首次报警和第二次以后时间并不相同,求具体实现方法。
S7-200的系统手册好像有个定时中断采集模拟量的例子,你查一下。
找到了,2008年8月版本的P67
丁胜志
如果是西门子PLC,这问题很好解决,可以用SFC系统功能块,SFC0/1/2/3/4.楼主好像用三菱的,没有深入研究,不好意思。
jiaoanpeng
这个用软件提醒不太好把,首先时间间隔太长500小时、3000小时,会占用太多的存储器的空间,再者假如系统突然停电或需要修改程序等会造成系统重新计时。而且以这么长的时间间隔一年也加不了几次。因此还不如先算好日期记在本上,用人工提醒,我算了一下,500小时大约20天,因此到设备运行20天后,就加润滑油,3000小时更多了是125天,因此120天以后,加润滑油即可。
是西门子的,但具体如何实现呢,我对你说的系统功能块不是很熟悉。忘给予详解,不胜感激!
都要比较,至于首次,可以加一个VD100(总运行时间)与500的比较结果条件。时间小于500,即是首次运行。
我的程序是这个,可以实现3000小时清零报警,但无法实现500小时清零报警,因为如果清零,第二次依然是500小时报警,望高手指点!!!
老愚者
问题是,现在要求的事必须换油完毕后才能解除报警,否则报警仍要存在,如果比较500,假设运行时间大于500而没有进行换油操作的话,报警不是就没有了,那报警不是就失去意义了?
我的程序是这个,可以实现3000小时清零报警,但无法实现500小时清零报警,因为如果清零,第二次依然是500小时报警,望高手指点!!! 你不用清零VD100,将计时分别输出到VD100 VD104中, 首次运行VD100<=500,VD104>=500复位 VD104,并输出报警。
VD104重新计时,VD104>=3000时,复位VD104,并输出报警。 循环执行。
必须换油完毕后才能解除报警,否则报警仍要存在,
你置个位就OK啦。
非常感谢老愚者。谢谢你的回答,但对你的程序我还是有两点疑问:
1、如果500小时没有清零而用户选择了关机操作,那下次再启动时候报警是不是就不会在显示(这是现场需要考虑的暂且先不说)
2、上位机清掉报警信号复位后,第三次3000小时报警如何实现?
再次感谢!