天天看點

西門子博圖(TIA Portal) 變長數組你會使用嗎?

作者:iHM工控

前序

你是不是每次遇到以下問題,例如不同長度數組運算就建立不同長度的FB/FC功能塊來設定不同長度,保證輸入的數組與功能塊引腳參數一緻數組大小長度一緻。通過變長數組,可以極大地縮減工作量。

西門子博圖(TIA Portal) 變長數組你會使用嗎?

一、可變數組與不可變數組對比

1.傳統數組_功能塊變量

功能塊輸入/輸出變量必須與DB資料塊變量保持一緻。

功能塊1變量:

西門子博圖(TIA Portal) 變長數組你會使用嗎?

功能塊2變量:

西門子博圖(TIA Portal) 變長數組你會使用嗎?

DB資料塊變量:

西門子博圖(TIA Portal) 變長數組你會使用嗎?

傳統的不可變數組運算,不同長度數組,必須建立獨立FB/FC功能塊。

2.變長數組_功能塊變量

功能塊輸入/輸出變量無需與DB資料塊變量一緻,DB資料塊指定長度即可

功能塊1/2變量:

西門子博圖(TIA Portal) 變長數組你會使用嗎?

DB資料塊變量:

西門子博圖(TIA Portal) 變長數組你會使用嗎?

可變數組運算,不同長度數組,無需建立獨立FB/FC功能塊。

二、可變數組講解

1.建立FC功能塊

西門子博圖(TIA Portal) 變長數組你會使用嗎?

2.FC功能塊插入以下變量

西門子博圖(TIA Portal) 變長數組你會使用嗎?

3.FC功能塊插入以下程式

西門子博圖(TIA Portal) 變長數組你會使用嗎?
//擷取數組下限
#數組下限 := LOWER_BOUND(ARR := #輸入數組, DIM := 1);
//擷取數組上限
#數組上限 := UPPER_BOUND(ARR := #輸入數組, DIM := 1);
//指派前清零
#輸出和_Temp := 0;
//數組求和
FOR #Temp_1 := #數組下限 TO #數組上限 BY 1 DO
    // Statement section FOR
    #輸出和_Temp += #輸入數組[#Temp_1];
END_FOR;
//數組求和值中轉
#輸出和 := #輸出和_Temp;           

4.建立DB資料塊

西門子博圖(TIA Portal) 變長數組你會使用嗎?

5.DB資料塊插入以下變量

西門子博圖(TIA Portal) 變長數組你會使用嗎?

6.OB1功能塊中插入兩次可變數組FC功能塊

西門子博圖(TIA Portal) 變長數組你會使用嗎?

三、程式示範

西門子博圖(TIA Portal) 變長數組你會使用嗎?

延伸小知識:PLC-Recorder專業資料采集與分析軟體可以高速采集西門子PLC裡的資料,速度也有20ms、8ms、2ms不同周期。

西門子博圖(TIA Portal) 變長數組你會使用嗎?

後期我們會不定期奉獻更多PLC工程小技巧。加關注,不迷路。