控制軟件

在STEP 7 (TIA 博途)中,如何初始化S7-1500 的優(yōu)化存儲區(qū)?

ainet.cn   2013年10月23日

  描述

  優(yōu)化塊臨時數(shù)據(jù)區(qū)中的變量在每次調(diào)用塊時被用缺省值初始化(如,INT 的缺省值是 0)。下列內(nèi)容不會被初始化:

   ● 聲明為數(shù)組的變量。

   ● 非優(yōu)化塊中聲明的變量。

  在 STEP 7 (TIA 博途)中, 對西門子S7-1500 的優(yōu)化存儲區(qū)中的結(jié)構(gòu)體可以用用戶自定義的值進行初始化。

  如果要把定義的值加載到結(jié)構(gòu)體中的獨立元素,只能先初始化臨時結(jié)構(gòu)體,再分配給靜態(tài)結(jié)構(gòu)體。在SCL中使用FOR循環(huán)可以在運行時用很少的代碼初始化大量區(qū)域(數(shù)組結(jié)構(gòu))。

  圖. 01 是一個DB塊結(jié)構(gòu)中有兩個DB變量的示例。第二個DB變量的PLC數(shù)據(jù)類型使用的是 "Array [1..10] of motor data type".

  圖. 01

  使用 "MOVE" 指令(復(fù)制值) 可以完整的初始化結(jié)構(gòu)體 InOut 變量 "Motor". 在下面的例子中,臨時變量"tmp_Motor" 的內(nèi)容傳到了 InOut 變量 "Motor". 在 LAD/FBD 中, 位信號通過slice訪問復(fù)制到了狀態(tài)字(圖. 02).

  圖. 02

  臨時變量和InOut變量必須具有相同的數(shù)據(jù)類型或相同的結(jié)構(gòu)體數(shù)據(jù)類型。圖. 03 說明了在SLC中編程實現(xiàn)完整初始化 InOut 變量 "Motor" 和單個元素的位到位訪問。

  圖. 03

  下面的例子說明初始化DB變量 "Motor field". 在SCL中使用 FOR 指令,循環(huán)程序重復(fù)執(zhí)行只要運行變量 "tmp_Counter" 在指定的范圍內(nèi)。由于PLC數(shù)據(jù)類型是 "Array [1..10] of motor data type", 程序循環(huán)必須執(zhí)行10次("1 TO 10 DO") 來初始化結(jié)構(gòu)體變量中的所有數(shù)組元素。

  圖. 04

  注意

  在 UDT中,可以通過聲明定義初始值,這樣基于UDT的每一個變量都有其初始值。只有對運行中的設(shè)備做程序復(fù)位時才需要初始化結(jié)構(gòu)體變量。當 STOP/RUN 切換時,就會從從裝載存儲區(qū)提取初始值,這相當于一次復(fù)位。

(轉(zhuǎn)載)

標簽:西門子 TIA 博途 PLC STEP 7 我要反饋 
泰科電子ECK、ECP系列高壓直流接觸器白皮書下載
世強
優(yōu)傲機器人下載中心
億萬克
專題報道