用戶自定義指令庫
用戶可以把自己編制程序集成到編程軟件STEP7 Micro/WIN中。這樣可以在編程時(shí)調(diào)用實(shí)現(xiàn)相同功能的庫指令,而不必同時(shí)打開幾個(gè)項(xiàng)目文件拷貝。指令庫也可以方便地在多個(gè)編程計(jì)算機(jī)之間傳遞。
圖1. 自定義庫和西門子標(biāo)準(zhǔn)庫以圖標(biāo)的顏色區(qū)分
定義庫指令
一個(gè)已存在的程序項(xiàng)目只有子程序、中斷程序可以被創(chuàng)建為指令庫。中斷程序只能隨定義它的主程序、子程序集成到庫中。
例如一個(gè)項(xiàng)目的的程序結(jié)構(gòu)如下:
圖1. 庫指令的源項(xiàng)目程序
現(xiàn)欲將子程序My_SUB_a和My_SUB_b間為庫指令,其中在My_SUB_b中定義了中斷程序My_INT(將某中斷事件號(hào)與中斷服務(wù)程序My_INT連接起來——使用ATTACH指令)。
操作步驟:
第一步:在STEP7 Micro/WIN的File(文件)菜單中,選擇Creat Library...(建立庫)命令;或者用鼠標(biāo)右鍵單擊指令樹的Libraries(指令庫)分支,選擇Creat Library...
圖2. 在Libraries分支上單擊鼠標(biāo)右鍵
第二步:在Creat Library對(duì)話框中選擇哪些子程序要集成為指令庫
圖3. 使用Add(添加)、Remove(刪除)按鈕選擇要建立成為庫指令的子程序
如果定義中斷的子程序被制作成庫指令,則中斷程序也自動(dòng)集成進(jìn)去,不必專門指定。
注意:建議您為將建立為庫的子程序、中斷程序命名時(shí)不要采用 Micro/WIN 缺省的、或常見的庫指令子程序名,如 SBR_x 等,以免將來調(diào)用時(shí)發(fā)生沖突。
第三步:在Properties(屬性)標(biāo)簽中設(shè)置
圖4. 設(shè)置指令庫屬性
其中:
- 指定指令庫名稱
- 指定要生成的庫文件的目錄路徑
- 指定版本信息
第四步:在Protection(保護(hù))標(biāo)簽中設(shè)置密碼
圖5. 設(shè)置密碼
密碼設(shè)置是可選項(xiàng)。密碼須輸入兩次以驗(yàn)證。保護(hù)后不知道密碼的人不能查看庫指令的程序
第五步:按OK按鈕確定,輸出指令庫文件
圖6. Micro/WIN的消息輸出窗口顯示指令庫文件的詳細(xì)信息
指令庫文件擴(kuò)展名為.mwl,缺省情況下存在Micro/WIN安裝目錄下的lib文件夾中。庫文件可以作為單獨(dú)的文件拷貝、移動(dòng)。
添加指令庫
注意:添加自定義指令庫,需要關(guān)閉編輯庫指令的項(xiàng)目,新建立一個(gè)項(xiàng)目。如果要添加其他來源的庫指令自然不需要如此。
第一步:在Micro/WIN的File(文件)菜單中選擇Add/Remove Libraries...(添加/刪除指令庫)命令 ;或者在指令樹的Libraries(指令庫)分支上單擊鼠標(biāo)右鍵,選擇Add/Remove Libraries...
圖7. 選擇添加/刪除指令庫命令
添加/刪除對(duì)話框中將顯示已經(jīng)在本機(jī)的Micro/WIN中集成的用戶自定義指令庫。
圖8. 已安裝的庫指令
第二步:按Add(添加)按鈕,選擇新定義的庫文件路徑。用戶自定義庫將自動(dòng)添加到Micro/WIN指令樹的Libraries分支下。
圖9. 選擇庫文件
缺省情況下,Micro/WIN到圖8中的路徑下尋找?guī)熘噶钗募S脩粢部梢灾付ㄆ渌窂健5⒁鈳煳募?yīng)當(dāng)保持在非移動(dòng)的介質(zhì)上,如果指定了一個(gè)可移動(dòng)硬盤,則硬盤不在時(shí)會(huì)發(fā)生找不到庫的錯(cuò)誤。建議用戶使用缺省設(shè)置。
刪除庫指令
第一步:選擇添加/刪除指令庫命令
圖10. 選擇命令
第二步:選中須卸載的庫所對(duì)應(yīng)的庫文件,按Remove(刪除)按鈕
圖11. 選中要?jiǎng)h除的庫指令文件
調(diào)用用戶定義指令庫
指令庫的使用方法與子程序基本一樣。
常問問題
如何編制一個(gè)用戶自定義庫,使之像西門子的庫一樣在調(diào)用時(shí)可以靈活分配庫指令內(nèi)存(V存儲(chǔ)區(qū))?
在編程時(shí),凡用到V存儲(chǔ)區(qū)地址處都使用“符號(hào)尋址”,為每個(gè)變量指定一個(gè)符號(hào)。然后按照上述方法生成自定義庫。注意此時(shí)使用V存儲(chǔ)區(qū)的絕對(duì)尋址,或者定義符號(hào)表有誤,則不能正常生成庫指令。