西門子S7-200子程序出現(xiàn)問題的原因

發(fā)布時間:2025-04-20
在ob1中兩次調(diào)用上一個日志中的子程序sbr_0,在運(yùn)行程序時發(fā)現(xiàn),接通i0.0外接的小開關(guān),q0.0和q0.1同時變?yōu)閛n。這是因?yàn)榉峙浣osbr_0的輸出參數(shù)“電動機(jī)”的地址為l0.2,第一次調(diào)用sbr_0之后,l0.2的值為on。第二次調(diào)用sbr_0時,雖然起動按鈕i0.2為off,但是因?yàn)閮纱握{(diào)用sbr_0時局部變量區(qū)是公用的,此時輸出參數(shù)“電動機(jī)”(l0.2)仍然為on,所以第二次調(diào)用sbr_0之后,由于執(zhí)行圖4-40中的程序,輸出參數(shù)“電動機(jī)”使q0.1為on。子程序的局部變量一定要遵循“先賦值后使用”的原則。
s7-200的子程序使用臨時變量來傳遞參數(shù),out類型的參數(shù)不會把實(shí)參讀入形參,所以這里使用out形參的觸點(diǎn)就出現(xiàn)了臨時變量未賦值先使用的情況。將輸出參數(shù)“電動機(jī)”的變量類型改為in_out就可以解決上述問題。這是因?yàn)閮纱握{(diào)用子程序,參數(shù)“電動機(jī)”返回的運(yùn)算結(jié)果分別用q0.0和q0.1保存,在第二次調(diào)用子程序sbr_0,執(zhí)行“o #電動機(jī)”指令時,因?yàn)椤半妱訖C(jī)”是in_out參數(shù),使用的是前一個掃描周期保存到q0.1的值,與本掃描周期第一次調(diào)用子程序后參數(shù)“電動機(jī)”的值無關(guān)。
簡單地說,對于有記憶功能的電路,需要用存儲單元來保存要記憶的變量值。s7-300的fb可以用靜態(tài)變量來保存,而s7-200的子程序沒有靜態(tài)變量,只有用in_out變量的實(shí)參(本例中的q0.1)來保存變量值。
上一個:中華茶文化的醞釀
下一個:跨境電商海外倉流程

國內(nèi)到比利時海運(yùn)(廈門到比利時海運(yùn))
fba退回海外倉 fba物流發(fā)到海外倉
DHL第三季度業(yè)績增長強(qiáng)勁,dhl第三季度
電商購買鏈接怎么做(一文詳解商品買贈鏈接設(shè)置方法)
墨西哥對華無縫鋼管作出第二次反傾銷日落復(fù)審終裁
蘇州國際快遞公司時間要多長?一般清關(guān)需要多久?
木薯淀粉進(jìn)口關(guān)稅是多少
toll國際快遞的總部在哪里(該公司表示將在亞洲市場伺機(jī)并購)
工業(yè)酒精勾兌酒的鑒別
丙烯酸異辛酯
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos