西門子博途編程-模擬量批量處理一


博途的間接尋址和S7-300/400大不一樣。博途中的間接尋址主要用peek/poke指令,peek/poke指令不能用於優化的數據塊。優化數據塊可以用數組類尋址。這次的控制任務是模擬類的批量處理,s7-300/400模擬量批量處理很繁瑣。

控制任務

把數量不定的模擬量轉換成工程量,然后保存到指定的數據塊中。這里我們為了測試,不讀取PIW中的模擬值,而用MW代替。

象這樣的控制任務,我們一般用SCL來寫會比較方便。請看下面的程序。

控制程序

1

 

2

3

4

程序簡單說明一下: LOWER_BOUND 讀取 resultArray的下限, UPPER_BOUND讀取resultArray的上限。lenOfEmtpyArray是

數組出去offsetArray偏移量后還剩的空余長度,如果這個長度小於模擬量的數量,則退出。另外如果arrayLowerBound小於下限,也退出。

第19行,SCL 中的循環要注意,開始和結尾都是閉區間,和c語言等高級語言不一致。

第20行,PEEK_WORD 就是讀取M區的模擬量。具體用法可以參看手冊。

第25行,對數組的讀寫,也是間接尋址,在scl中沒有這種說法了。間接尋址等概念都是匯編下的,高級語言沒有這種叫法。

5

最后,模擬量轉化為工程量后為100.0 和 54.0,存入數據塊。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM