zs8823
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 86 個(gè)
工控威望: 513 點(diǎn)
下載積分: 1361 分
在線時(shí)間: 29(小時(shí))
注冊(cè)時(shí)間: 2008-06-21
最后登錄: 2024-08-23
查看zs8823的 主題 / 回貼
樓主  發(fā)表于: 2010-11-12 04:27
圖片:
圖片:
遇到一個(gè)問題,寫了一個(gè)如圖所示的子程序,在主程序中兩次調(diào)用,但只有第一個(gè)調(diào)用有輸入輸出,第二個(gè)調(diào)用的輸入好象未傳入子程序,但輸出完全與第一個(gè)輸出同值且同步變化.不知道錯(cuò)在哪里,請(qǐng)高手指點(diǎn),CPU226.
cgyu5892483
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 27 個(gè)
工控威望: 180 點(diǎn)
下載積分: 576 分
在線時(shí)間: 22(小時(shí))
注冊(cè)時(shí)間: 2009-03-26
最后登錄: 2024-10-30
查看cgyu5892483的 主題 / 回貼
1樓  發(fā)表于: 2010-11-12 13:53
反復(fù)調(diào)用子程序時(shí),調(diào)用計(jì)數(shù),系統(tǒng)時(shí)鐘,系統(tǒng)脈沖等指令需要慎重。
程序掃描是從左至右,從上至下,看主程序:執(zhí)行第一個(gè)調(diào)用子程序后,立馬進(jìn)入下一個(gè)子程序調(diào)用,那問題就來了:
LD4是輸出,并且在掃描到C100為ON時(shí)才輸出,下一步是L20.0為ON,下一步跳出第一個(gè)子程序并進(jìn)入第二個(gè)子程序,此時(shí)L20.0在掃描周期內(nèi)被置位為ON,C100復(fù)位。也就是說主程序沒進(jìn)入第二個(gè)周期,C100就被復(fù)位了。所以第二個(gè)子程序永遠(yuǎn)只能讀到第一個(gè)子程序的塊輸出。