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