這篇文章講繼續(xù)深入對(duì)間接尋址的使用,并介紹S7-200smart v2.8求平均值指令,接下來(lái)一起來(lái)看求平均值如何做吧。
一、指令調(diào)用
調(diào)用庫(kù)如圖1所示,指令庫(kù)說(shuō)明如下:
Pointer為指針引腳,指向存放數(shù)據(jù)的起始地址,數(shù)據(jù)類(lèi)型為字;
Number為數(shù)據(jù)的長(zhǎng)度,可以是變量也可以是常量;
INDX為FOR循環(huán)的次數(shù)地址,可以忽略,但是不能外部進(jìn)行賦值干擾;
Out為求得平均值輸出地址,數(shù)據(jù)類(lèi)型為浮點(diǎn)數(shù)。
圖1
二、average_value指令庫(kù)編寫(xiě)
重復(fù)調(diào)用的庫(kù),需要變量建立的正確,否則多次調(diào)用無(wú)法正常運(yùn)行,如果大家這邊對(duì)建立庫(kù)不太會(huì),可以先去看一下這方面的課程學(xué)習(xí)一下。
1、形參變量表建立
變量表建立如圖2所示。
圖2
2、Countdown形參子程序
Countdown子程序每一段程序都有注釋講解,如圖3和圖4所示,這里不做介紹,如果有問(wèn)題可以留言。
圖3
圖4
三、S7-200smart v2.8求平均值指令
對(duì)于訂貨號(hào)位數(shù)為0AA1的CPU可以升級(jí)為V2.8的固件版本,圖5所示。
圖5
V2.8的軟件支持平均值,指令為浮點(diǎn)數(shù)中的AVG_R和整數(shù)運(yùn)算中的AVG_B、AVG_W、AVG_DI,如圖6所示。
獲取源 StartAddr引腳字節(jié)、字、雙字、浮點(diǎn)數(shù)地址序列中所設(shè)置范圍內(nèi)的平均值,并將其寫(xiě)入到目標(biāo)字節(jié)、字、雙字、浮點(diǎn)數(shù)地址,長(zhǎng)度由Len引腳決定。
圖6
如圖7所示,由于是AVG_B是字節(jié)指令,所以會(huì)把從VB1500(VB1500—VB1504)連續(xù)的5個(gè)地址數(shù)據(jù)加起來(lái),然后求平均值輸出到VB202。
圖7
總結(jié)
本文章主要介紹間接尋址的應(yīng)用,對(duì)于CPU固件版本和軟件版本為2.8的求平均值指令做了簡(jiǎn)單的介紹,需要注意的是,訂貨號(hào)后四位為0AA0的CPU固件最高只能2.5,這時(shí)候只能字節(jié)寫(xiě)求平均值了。
以上就是整個(gè)29.西門(mén)子S7-200smart間接尋址應(yīng)用—求平均值的內(nèi)容,文章內(nèi)容如有錯(cuò)誤或者有不懂的問(wèn)題請(qǐng)聯(lián)系我們。