|
本篇我們來介紹西門子S7-200 SMART的全局變量和局部變量,以及如何在編程軟件STEP7-Micro/WIN SMART中編寫帶參數(shù)子程序并調(diào)用。我們先來介紹一下什么是全局變量和局部變量。符號表中定義的變量又稱為全局變量,在所有的POU中都有效,在變量表中定義的變量稱為局部變量,只在創(chuàng)建它的POU內(nèi)部有效。 全局變量和局部變量 局部變量可以用作傳遞到子程序的參數(shù),增加子程序的通用性和可移植性。在變量表中定義局部變量的符號和數(shù)據(jù)類型。變量類型分為兩種,一種是形式參數(shù),用來在子程序和調(diào)用它的程序之間傳遞數(shù)據(jù),另一種是臨時變量,只用來在子程序執(zhí)行時暫存數(shù)據(jù)。 局部變量的符號和數(shù)據(jù)類型 形式參數(shù)IN是調(diào)用程序提供的輸入?yún)?shù),OUT是返回到調(diào)用程序的輸出參數(shù),IN_OUT該參數(shù)值由調(diào)用程序提供,由子程序修改然后再返回到調(diào)用程序,形式參數(shù)在調(diào)用子程序時被實際參數(shù)代替。局部變量的數(shù)據(jù)都存儲在L存儲器中,地址自動分配,所有POU共用64個字節(jié)的L存儲器,一個POU執(zhí)行完畢后釋放,其它POU執(zhí)行時重復(fù)使用。在程序中用符號尋址變量時,全局變量的符號直接顯示,局部變量的前面帶有#號以示區(qū)別。 局部變量的表示方法 編寫帶參數(shù)子程序并調(diào)用。以溫度轉(zhuǎn)換程序為例,將主程序中溫度轉(zhuǎn)換程序剪切到子程序中,或者直接在子程序中輸入溫度轉(zhuǎn)換程序,然后在變量表中定義局部變量,該子程序有兩個形式參數(shù),包括一個輸入?yún)?shù)和一個輸出參數(shù),有兩個臨時變量,也可以不定義臨時變量符號直接使用L存儲器絕對地址,將程序段中的全局地址改為局部變量增強其通用性,方便移植。 定義局部變量 可以看到局部變量符號前帶有#號,右鍵點擊子程序標(biāo)簽,打開對話框,將其重命名為溫度轉(zhuǎn)換,也可以設(shè)置密碼保護,只允許調(diào)用,程序代碼不可見不可編輯,單擊確定按鈕,這樣帶參數(shù)的子程序就編寫完成了。 子程序重命名 回到主程序,展開指令樹的調(diào)用子例程文件夾,選擇溫度轉(zhuǎn)換拖放到編程區(qū)域,該子程序以指令塊的形式顯示,包含了變量表中定義的形式參數(shù),IN參數(shù)在左側(cè),OUT參數(shù)在右側(cè),對形式參數(shù)賦值相應(yīng)的實際參數(shù),在AI_IN處輸入地址AIW20,在T_Value處輸入VD0,使能端插入一個常開觸點SM0.0作為子程序調(diào)用條件,這樣通過調(diào)用帶參數(shù)的子程序編寫的模擬量轉(zhuǎn)換程序就編寫完成了,最后保存項目。 調(diào)用帶參數(shù)子程序 下載并測試,將項目編譯下載到PLC,啟動程序狀態(tài)持續(xù)監(jiān)視,可以看到程序?qū)IW20中的數(shù)值轉(zhuǎn)換成了對應(yīng)的溫度值。 下載并測試程序 |
|
|