西門子博途編程-泛型和變長數組編程


我們知道在高級語言中普遍使用泛型,那么在PLC中是否可以使用泛型呢?可以,但羅嗦。。

控制要求

求數組中的最大值,數值類型包括Real和Int,我們這里選擇兩種類型,控制代碼量。

控制程序 一

1

2

array是傳進來的數組,可以是Int或Real類型。但有大小限制,長度必須小於maxSize。后面我們會寫個無大小限制的程序。

程序比較簡單,有幾個要點我們簡要說下:

第二行,必須用UDINT_TO_DINT, 因為后面的索引號需用DINT。最后輸出的是泛型的數值,所有需要把maxElement設置為Variant,所以需要用VairantPut指令把相應的數值傳出來。

另外,每種類型都需要寫相應的處理代碼,PLC的泛型很羅嗦,代碼量很大,其實跟PC的泛型有本質上的區別。

控制程序 二

3

4

這次我們用MOVE_BLK_VARIANT函數來去Variant 數組中的值,所以可以實現真正的變長數組。最后把最大值通過VariantPut指令輸出。指令的詳細說明可以看系統自帶的手冊。

控制程序 三

這個程序只實現變長數組,長度無限制.

5

6

看申明第二行,類型為Array〔*〕of Int。另外請注意程序第1和2行,用了Lower_Bound和Upper_Bound兩個函數。另外S7-1200的模擬器運行這個程序出錯,真機可以.S7-1500模擬器可以正常運行.


免責聲明!

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



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