今天給大家講一下什么是局部變量、全局變量、臨時變量、靜態(tài)變量,這些變量都有什么區(qū)別,以及在西門子S7-1200中這些變量如何來使用。 在編寫帶參數(shù)子程序時需要使用局部變量。在PLC變量表和DB塊中定義的變量稱為全局變量,在全部程序中都有效。在某個塊的變量聲明表中定義的變量稱為局部變量,只在創(chuàng)建它的塊中有效。 為了增強通用性,方便移植到別的項目,子程序FC和FB中一般只有局部變量。在局部變量表中,名稱列用來定義局部變量的符號名,數(shù)據(jù)類型列用來定義局部變量的數(shù)據(jù)類型。 在FC和FB的變量聲明表中,形式變量也就是形式參數(shù),用來在子程序塊和調(diào)用它的程序塊之間傳遞數(shù)據(jù)。形式參數(shù)INPUT是指輸入到子程序塊的參數(shù),在子程序塊中只能讀取輸入值。OUTPUT是指從子程序塊返回的參數(shù),在子程序塊中只能寫入返回值。INOUT是輸入并從子程序塊返回的參數(shù),在子程序塊中既可以讀也可以寫,輸入值和返回值使用同一個地址。FC中的RETURN返回值只有一個,主要用于FC和調(diào)用該FC的其它程序交換數(shù)據(jù),反應(yīng)該FC的執(zhí)行情況。在TEMP行下定義的變量稱為臨時變量,用來在該程序塊執(zhí)行時暫時存儲數(shù)據(jù),當(dāng)退出該程序塊時,這些程序?qū)G失。請注意,臨時變量不能賦予初始值。如果有一些變量在調(diào)用結(jié)束后仍需要保持原值,則必須將這些變量定義為靜態(tài)變量,即在STATIC行下定義的變量,靜態(tài)變量只能用在FB中。 賦值給FB的背景數(shù)據(jù)塊用作靜態(tài)變量的存儲區(qū)。因為FB帶有存儲區(qū),即背景數(shù)據(jù)塊,所以形式變量和靜態(tài)變量可以賦予初始值。在FB中定義的靜態(tài)變量不在生成的指令塊中顯示。 在程序中用符號名訪問變量時,全局變量的符號名加引號、局部變量的符號名前帶#號以示區(qū)分。 調(diào)用FC時必須用實際參數(shù)代替形式參數(shù)。調(diào)用FB時必須指定背景數(shù)據(jù)塊,實際參數(shù)的值被存儲在該FB的背景數(shù)據(jù)塊中。如果在塊調(diào)用時沒有實際參數(shù)分配給形式參數(shù),則在程序執(zhí)行時將采用上一次存儲在背景數(shù)據(jù)塊中的參數(shù)值。 以上就是今天給大家講解的內(nèi)容,我們簡單介紹了局部變量、全局變量、臨時變量、靜態(tài)變量,這些變量都有什么區(qū)別,以及在西門子S7-1200中這些變量如何來使用。 |
|
來自: 金玉滿堂jjnla8 > 《S7_1200》