前序
你是不是每次遇到以下問題,例如不同長度數組運算就建立不同長度的FB/FC功能塊來設定不同長度,保證輸入的數組與功能塊引腳參數一緻數組大小長度一緻。通過變長數組,可以極大地縮減工作量。
一、可變數組與不可變數組對比
1.傳統數組_功能塊變量
功能塊輸入/輸出變量必須與DB資料塊變量保持一緻。
功能塊1變量:
功能塊2變量:
DB資料塊變量:
傳統的不可變數組運算,不同長度數組,必須建立獨立FB/FC功能塊。
2.變長數組_功能塊變量
功能塊輸入/輸出變量無需與DB資料塊變量一緻,DB資料塊指定長度即可
功能塊1/2變量:
DB資料塊變量:
可變數組運算,不同長度數組,無需建立獨立FB/FC功能塊。
二、可變數組講解
1.建立FC功能塊
2.FC功能塊插入以下變量
3.FC功能塊插入以下程式
//擷取數組下限
#數組下限 := 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資料塊
5.DB資料塊插入以下變量
6.OB1功能塊中插入兩次可變數組FC功能塊
三、程式示範
延伸小知識:PLC-Recorder專業資料采集與分析軟體可以高速采集西門子PLC裡的資料,速度也有20ms、8ms、2ms不同周期。
後期我們會不定期奉獻更多PLC工程小技巧。加關注,不迷路。