發布日期:2022-04-17 點擊率:332
描述 優化塊臨時數據區中的變量在每次調用塊時被用缺省值初始化(如,INT 的缺省值是 0)。下列內容不會被初始化: ● 聲明為數組的變量。 ● 非優化塊中聲明的變量。 在 STEP 7 (TIA 博途)中, 對西門子S7-1500 的優化存儲區中的結構體可以用用戶自定義的值進行初始化。 如果要把定義的值加載到結構體中的獨立元素,只能先初始化臨時結構體,再分配給靜態結構體。在SCL中使用FOR循環可以在運行時用很少的代碼初始化大量區域(數組結構)。 圖. 01 是一個DB塊結構中有兩個DB變量的示例。第二個DB變量的PLC數據類型使用的是 "Array [1..10] of motor data type". 圖. 01 使用 "MOVE" 指令(復制值) 可以完整的初始化結構體 InOut 變量 "Motor". 在下面的例子中,臨時變量"tmp_Motor" 的內容傳到了 InOut 變量 "Motor". 在 LAD/FBD 中, 位信號通過slice訪問復制到了狀態字(圖. 02). 圖. 02 臨時變量和InOut變量必須具有相同的數據類型或相同的結構體數據類型。圖. 03 說明了在SLC中編程實現完整初始化 InOut 變量 "Motor" 和單個元素的位到位訪問。 圖. 03 下面的例子說明初始化DB變量 "Motor field". 在SCL中使用 FOR 指令,循環程序重復執行只要運行變量 "tmp_Counter" 在指定的范圍內。由于PLC數據類型是 "Array [1..10] of motor data type", 程序循環必須執行10次("1 TO 10 DO") 來初始化結構體變量中的所有數組元素。 圖. 04 注意 在 UDT中,可以通過聲明定義初始值,這樣基于UDT的每一個變量都有其初始值。只有對運行中的設備做程序復位時才需要初始化結構體變量。當 STOP/RUN 切換時,就會從從裝載存儲區提取初始值,這相當于一次復位。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV