求一个西门子PLC的长时间累积程序?

做机器的运行时间累积用的,时间精度为分钟就可以,可以一直累加到一年的分钟数,一年的分钟数大概为360x24x60。
西门子300或200系列的PLC的程序都可以。其他品牌PLC的程序也可以。

这个你直接做一个 PLC 运行程序时间累加就行呀!这样你在小时或是都可以再进行 除法运算
给你一个 300 PLC 做的时间统计程序:
A(
A M 2.0 //设备上电进入自动运行
AN M 2.3 // 设备没有在停止模式
AN M 2.5 // 设备不在空机运行模式
= L 14.0
BLD 103
A M 0.0
= L 14.1
BLD 103
CALL FC 912 // 调用 FC912 块 进行计数
IN :=L14.0
RES :=L14.1
PT :=T#6M
Call :=0
Ablage:=DB300 //数据保存到 DB 300 块中
Q :=M0.5
ET :=DB300.DBD0
A BR
)
JNB _001
L DB300.DBD 0
L T#6M
-D
T DB300.DBD 0
AN OV
SAVE
CLR追问

我把您这个程序复制下来,运行不了啊。

能否提供个完整的能直接用的程序?我水平不行的。

另外,我下面这样的程序为什么不行?其中的T62为秒脉冲,DB8.DB16保存累积秒。我想一般人的想法都是下面这样的,直接脉冲沿发生时,数据加1,简单明了,但为什么会不行呢?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-26
西门子s7-200的程序。很简单。
LD SM0.4
EU
INCD MD0
将MD0在系统块里设置为“断电数据保持”,就可以实现停机后下次接着使用。追问

我仿照您的思路,在300里面编程,但是不行,请见我另外的提问补充,是哪儿的问题呢?

追答

当然不行了,200和300之间差距非常大的。
但是思路是一致的:用分钟脉冲或者定时中断,对某个双字进行累加+1。

追问

我下面就是用秒脉冲,然后对DB8.DBD16进行累加,为什么数据结果不对?

追答

没错啊,你的就是加1。262246+1=2262247
你是不是考虑在程序初始化时把数据清零?

追问

最后二位数像“毫秒”,加起来特快,但又不是标准的“毫秒”变化。我用手机的秒表核对过,过60秒后,这上面的数据能加大概450,也就是能到大概262246+4500=262696。
我把这个累积秒清零,然后它开始是0,一秒后大概是100,60秒后大概是4500。
在一个脉冲上升沿发生时,它便加了很多,它为什么会加那么多?
我明天在现场再把这个秒脉冲改成分脉冲,看它是不是一直在加,还是在上升沿发生时才加的。

本回答被提问者和网友采纳
第2个回答  2014-02-26
可以用60秒定时器做一个循环触发,取上沿,用实数做累加,一次加1,结果就是运行的分钟数
10年都够用的追问

我的想法也是这样,但是在运行中实现不了啊,请见我的其他追问。
奇怪啊。
能帮忙写个程序出来吗?

追答

嗯,回头写一个程序吧!现在用手机没法写的,

相似回答