S7-200中關(guān)于庫的調(diào)用問題
劉玉蓉
發(fā)布于2014-11-13 17:22
2
0
標(biāo)簽:
程序中有一小段程序是多次使用的,所以把它制作成帶參數(shù)的子程序以庫的形式保存并添加,之后,本意是輸入不同的地址后在程序中進(jìn)行多次使用,可是現(xiàn)在的問題是,這個(gè)自定義的指令庫用一次可以,要是多次調(diào)用就出現(xiàn)混亂,請(qǐng)問我應(yīng)該怎樣做才能達(dá)到預(yù)期的目的呢?程序大概是定義一個(gè)IN或IN-OUT參數(shù),再定義一個(gè)OUT參數(shù),然后中間運(yùn)算或執(zhí)行的命令參數(shù)都用TEMP參數(shù),這樣制作成的庫預(yù)期著只需要在塊的IN處和OUT處輸入不同的地址就能多次調(diào)用,但結(jié)果并不能實(shí)現(xiàn),原因好像是這個(gè)塊一直被使用著,也就是這些參數(shù)不能分辨出在哪里使用。請(qǐng)問我應(yīng)該怎樣做才能讓CPU判斷出我使用同一個(gè)塊但具有不同地址的操作呢?
問題補(bǔ)充:
按照您說的把輸出參數(shù)類型改成IN-OUT后問題有改善,但仍然不能準(zhǔn)確的執(zhí)行操作,有時(shí)甚至操作幾次才能正常輸出,就像程序無形中執(zhí)行很多次,只有偶爾能操作正確,可能是沒有復(fù)位,但我不理解您用sm0.0復(fù)位輸出是何用意?能否再詳細(xì)說明一下復(fù)位的意義,那類型的參數(shù)需要在執(zhí)行命令之前進(jìn)行復(fù)位?復(fù)位操作是在整個(gè)執(zhí)行過程中都進(jìn)行還是在某個(gè)信號(hào)有變化時(shí)執(zhí)行?或者有相關(guān)的文檔能說明關(guān)于庫的制作上的注意事項(xiàng)也可以,
佳答案
這個(gè)問題的可能原因是你在調(diào)用局部變量時(shí),選擇了不合適的局部變量引起。尤其是輸出變量的使用,應(yīng)該使用IN-OUT參數(shù)。另外在調(diào)用的子程序中的輸出變量必須是先復(fù)位后再進(jìn)行控制操作。見圖片說明。
補(bǔ)充問題回復(fù):
1)是的。其目的就是想在第2次調(diào)用前讓輸出復(fù)位。
2)開始調(diào)用時(shí)的復(fù)位操作。
3)這個(gè)實(shí)際上是子程序多次調(diào)用局部變量使用的問題。
若有收獲,就點(diǎn)個(gè)贊吧!
文章來源于網(wǎng)絡(luò)及文獻(xiàn)如有侵權(quán)請(qǐng)聯(lián)系站長
分享到:
微信掃一掃分享
閱讀與本文標(biāo)簽相同的文章