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