我們知道在高級語言中普遍使用泛型,那麼在PLC中是否可以使用泛型呢?可以,但羅嗦。。 控制要求 求數組中的最大值,數值類型包括Real和Int,我們這裡選擇兩種類型,控制代碼量。 控製程序 一 array是傳進來的數組,可以是Int或Real類型。但有大小限制,長度必須小於maxSize。後面我們會 ...
我們知道在高級語言中普遍使用泛型,那麼在PLC中是否可以使用泛型呢?可以,但羅嗦。。
控制要求
求數組中的最大值,數值類型包括Real和Int,我們這裡選擇兩種類型,控制代碼量。
控製程序 一
array是傳進來的數組,可以是Int或Real類型。但有大小限制,長度必須小於maxSize。後面我們會寫個無大小限制的程式。
程式比較簡單,有幾個要點我們簡要說下:
第二行,必須用UDINT_TO_DINT, 因為後面的索引號需用DINT。最後輸出的是泛型的數值,所有需要把maxElement設置為Variant,所以需要用VairantPut指令把相應的數值傳出來。
另外,每種類型都需要寫相應的處理代碼,PLC的泛型很羅嗦,代碼量很大,其實跟PC的泛型有本質上的區別。
控製程序 二
這次我們用MOVE_BLK_VARIANT函數來去Variant 數組中的值,所以可以實現真正的變長數組。最後把最大值通過VariantPut指令輸出。指令的詳細說明可以看系統自帶的手冊。
控製程序 三
這個程式只實現變長數組,長度無限制.
看申明第二行,類型為Array〔*〕of Int。另外請註意程式第1和2行,用了Lower_Bound和Upper_Bound兩個函數。