臨時(shí)變量是臨時(shí)存儲(chǔ)在本地?cái)?shù)據(jù)區(qū)的變量。只有在執(zhí)行POU時(shí),才使用定義的臨時(shí)變量,而在執(zhí)行POU后,不再使用臨時(shí)變量的值。在主程序或中斷程序中,局部變量表只包含TEMP變量。子程序的局部變量表中也有三個(gè)變量:輸入變量、輸出變量和輸入輸出變量。
在局部變量表中賦值時(shí),只需要指定聲明的局部變量的類型(TEMP、in、IN_OUT或OUT)和數(shù)據(jù)類型(參見SIMATIC和IEC1131-3數(shù)據(jù)類型),但不需要指定內(nèi)存地址。程序編輯器自動(dòng)為L存儲(chǔ)區(qū)中的所有局部變量指定存儲(chǔ)位置。起始地址為LO,每字節(jié)8位,可就地訪問。字節(jié)、字和雙字在本地內(nèi)存中按字節(jié)順序分配,如LBx、LWx或LDx。
當(dāng)局部變量作為參數(shù)傳遞給子例程時(shí),子例程的局部變量表中指定的數(shù)據(jù)類型必須與調(diào)用POU中的數(shù)據(jù)類型值匹配。比如在主程序OB1中調(diào)用子程序SBR0,使用全局符號INPUT1作為子程序的輸入?yún)?shù)。在SBR0的局部變量表中,已經(jīng)定義了一個(gè)名為FIRST的局部變量作為輸入?yún)?shù)。OB1調(diào)用SBRO時(shí),INPUT1的值傳入FIRST,INPUT1和FIRST的數(shù)據(jù)類型必須匹配。
在程序中使用符號名時(shí),程序編輯器首先檢查關(guān)于POU的局部變量表,然后檢查符號表/全局變量表。如果符號名稱在兩個(gè)地方都沒有定義,程序編輯器會(huì)將其視為全局符號。程序編輯器指定一條綠色波浪下劃線,并用雙引號將名稱括起來,例如“UndefinedLocalVar”(未定義的局部變量)。如果符號名稍后被賦值,程序編輯器將不會(huì)再次自動(dòng)讀取局部變量表并對其進(jìn)行修改。為了將符號名用作局部變量,您必須手動(dòng)刪除程序代碼中的引號,并在符號名前面插入#符號,例如,將其更改為#UndefinedLocalVar。
每個(gè)子程序最多可以調(diào)用16個(gè)輸入/輸出參數(shù)。如果超過16個(gè),將返回一個(gè)錯(cuò)誤。選擇所需變量類型所在的行,并在名稱字段中鍵入變量名,在數(shù)據(jù)類型字段中鍵入數(shù)據(jù)類型。在局部變量表中無需在變量名前加#號,程序代碼中只在局部變量名前加。
局部變量名可以包含數(shù)字、字母、下劃線(_)或擴(kuò)展字符(ASCII128~255)。第一個(gè)字符必須是字母或擴(kuò)展字符,關(guān)鍵字不能用作符號名稱。
本地變量表中的變量名下載存儲(chǔ)在CPU內(nèi)存中,使用較長的變量名會(huì)占用更多的存儲(chǔ)空間。以上是基本內(nèi)容。不懂的朋友可以先看一個(gè)plc視頻教程,比較容易理解。本文來源:www.jcpeixun.com。
?
審核編輯:ymf
評論