西門子PLC知識
局部變量(local variables)指在程序中只在特定過程或函數中可以訪問的變量。局部變量是相對于全局變量而言的。在plc中局部變量應用不是很多,西門子plc 則引入局部變量,成為plc中*具特色的功能。
西門子plc的局部變量和賦值
temp(臨時變量)為暫時保存在局部數據區中的變量。只有在執行該pou時,定義的臨時變量才被使用,pou執行完后,不再使用臨時變量的數值。在主程序或中斷程序中,局部變量表只包含temp變量。子程序的局部變量表中還有三種變量:in(輸入變量)、out(輸出變量)、in_out(輸入/輸出變量)。
在局部變量表中賦值時,只需*聲明局部變量的類型(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的數據類型必須匹配。
西門子plc的局部變量和賦值
在程序中使用符號名時,程序編輯器首先檢查有關pou的局部變量表,然后檢查符號表/全局變量表。如果某符號名在兩處都沒有定義,程序編輯器則將其視為全局符號,程序編輯器*一條綠色波浪狀下劃線,并將名稱括在雙引號中,例如“undefinedlocalvar”(未定義的局部變量)。如果后來對該符號名賦了值,則程序編輯器不會自動再次讀取局部變量表并修改它。為了將該符號名作為局部變量使用,必須手工刪除程序代碼中的引號,并在符號名前插入#號,例如改為#undefinedlocalvar。
各子程序較多可調用16個輸入/輸出參數,如果**出16個,將返回錯誤。選擇希望的變量類型所在的行,并在名稱域中鍵入變量名稱,在數據類型域中鍵入數據類型。不需在局部變量表中的變量名稱前加#號,#號只在程序代碼中的局部變量名之前使用。
局部變量名可包含數字、字母和下劃線(_),也可以包含擴展字符(ascii128~255)。**個字符必須是字母或擴展字符,關鍵字不能作為符號名。
局部變量表中的變量名被下載和存儲在cpu存儲器中,使用較長的變量名將占用較多的存儲空間。
浙江湘羽科技自動化有限公司專注于西門子plc模塊,西門子plc模塊廠家,西門子plc授權中國一級代理商,西門子s7—1200plc模塊廠家,西門子中國代理商,中國西門子一級代理商等, 歡迎致電 13434596244