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