PLC知識,西門子PLC知識
發(fā)布于2022-01-22 17:42
40
4
標(biāo)簽:PLC知識,西門子PLC知識
局部變量(Local variables)指在程序中只在特定過程或函數(shù)中可以訪問的變量。局部變量是相對于全局變量而言的。在PLC中局部變量應(yīng)用不是很多,西門子PLC 則引入局部變量,成為PLC中獨(dú)具特色的功能。
TEMP(臨時(shí)變量)為暫時(shí)保存在局部數(shù)據(jù)區(qū)中的變量。只有在執(zhí)行該P(yáng)OU時(shí),定義的臨時(shí)變量才被使用,POU執(zhí)行完后,不再使用臨時(shí)變量的數(shù)值。在主程序或中斷程序中,局部變量表只包含TEMP變量。子程序的局部變量表中還有三種變量:IN(輸入變量)、OUT(輸出變量)、IN_OUT(輸入/輸出變量)。
在局部變量表中賦值時(shí),只需指定聲明局部變量的類型(TEMP、IN、IN_OUT或OUT)和數(shù)據(jù)類型(參見SIMATIC和IEC1131-3的數(shù)據(jù)類型),但不指定存儲器地址,程序編輯器自動地在L存儲區(qū)中為所有局部變量指定存儲器位置。起始地址為LO,每字節(jié)8位,能訪問到位。字節(jié)、字和雙字在局部存儲器中按字節(jié)順序分配,例如LBx、LWx或LDx。
局部變量作為參數(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ù)。當(dāng)OB1調(diào)用SBRO時(shí),INPUT1的數(shù)值被傳入FIRST,INPUT1和FIRST的數(shù)據(jù)類型必須匹配。
在程序中使用符號名時(shí),程序編輯器首先檢查有關(guān)POU的局部變量表,然后檢查符號表/全局變量表。如果某符號名在兩處都沒有定義,程序編輯器則將其視為全局符號,程序編輯器指定一條綠色波浪狀下劃線,并將名稱括在雙引號中,例如“UndefinedLocalVar”(未定義的局部變量)。如果后來對該符號名賦了值,則程序編輯器不會自動再次讀取局部變量表并修改它。為了將該符號名作為局部變量使用,必須手工刪除程序代碼中的引號,并在符號名前插入#號,例如改為#UndefinedLocalVar。
各子程序最多可調(diào)用16個(gè)輸入/輸出參數(shù),如果超出16個(gè),將返回錯誤。選擇希望的變量類型所在的行,并在名稱域中鍵入變量名稱,在數(shù)據(jù)類型域中鍵入數(shù)據(jù)類型。不需在局部變量表中的變量名稱前加#號,#號只在程序代碼中的局部變量名之前使用。
局部變量名可包含數(shù)字、字母和下劃線(_),也可以包含擴(kuò)展字符(ASCII128~255)。第一個(gè)字符必須是字母或擴(kuò)展字符,關(guān)鍵字不能作為符號名。
局部變量表中的變量名被下載和存儲在CPU存儲器中,使用較長的變量名將占用較多的存儲空間。
總結(jié):以上就是“西門子PLC的局部變量和賦值”的所有內(nèi)容,希望能幫到你。另外,技成培訓(xùn)網(wǎng)還提供plc視頻教程,您有興趣的話可以看看。