wincc怎樣顯示一個(gè)變量的平均值
劉玉蓉
發(fā)布于2014-12-01 17:29
15
0
標(biāo)簽:
wincc有一個(gè)變量 a ,要求顯示它的8個(gè)小時(shí)的平均值,8:00--16:00,16:00--24:00,24:00--8:00,這三個(gè)時(shí)段。8小時(shí)更新一次,請指教
問題補(bǔ)充:
詳細(xì)一點(diǎn)可以嗎,用腳本的話應(yīng)該怎么寫?
佳答案
在PLC中編程較為簡便。應(yīng)用日期時(shí)間中斷OB10,將OB10設(shè)置為每一小時(shí)中斷。
1、在OB10中進(jìn)行編程:
、每一小時(shí)中斷后,采集變量 a的值。并設(shè)一計(jì)數(shù)器,每一小時(shí)中斷時(shí)該計(jì)數(shù)器計(jì)數(shù)一次。
、當(dāng)計(jì)數(shù)器為8時(shí)即表示要進(jìn)行要計(jì)算8個(gè)小時(shí)的平均值。
、當(dāng)計(jì)算8個(gè)小時(shí)的平均值后,將計(jì)數(shù)器清零。
2、求平均值,可以應(yīng)用冒泡法,排序后取中間值即可:
假定8個(gè)數(shù)據(jù),放在DB1中,安放順序如下:
DBD0
DBD4
…
DBD36
下面是西門子的程序
OPN DB 1 /////打開DB1這個(gè)數(shù)據(jù)塊
L 8 ////裝載8到MB0中
LL0: T MB 0
L P#0.0 ////裝載地址指針,這是關(guān)鍵,不要搞錯(cuò)了
LAR1
L 9
LL1: T MB 2 ////內(nèi)部循環(huán),進(jìn)行7次,直到把大值排到后
L DBD [AR1,P#0.0]
L DBD [AR1,P#4.0]
<R
JC LL2 ////比較前后兩個(gè)值,如果前面大于后面的,則前后數(shù)據(jù)交換
L DBD [AR1,P#0.0]
T #m_temp
L DBD [AR1,P#4.0]
T DBD [AR1,P#0.0]
L #m_temp
T DBD [AR1,P#4.0]
LL2: +AR1 P#4.0 ////指針自動進(jìn)行加4,因?yàn)槭歉↑c(diǎn)數(shù),所以要跳過4個(gè)字節(jié)
L MB 2
LOOP LL1 ///這個(gè)指令自動的將A寄存器里的值減1
L MB 0
LOOP LL0