wsdcsj
級別: 略有小成
|
大家好,小弟是個新手,初來乍到,望關(guān)照。上圖中,我用仿真軟件調(diào)試,接通X0后,再分別接通X1和X2后,Y1 和Y2都會得電工作,問題是接通X0后應(yīng)轉(zhuǎn)入子程序,為何會出現(xiàn)主、子程序同時能運行的情形,另外,因“SRET ”指令直接連左母線,中間沒有觸點,如何才能判斷子程序是否已運行結(jié)束。望各位賜教,最好能詳細點,謝謝 |
---|---|
|
changyu0330
級別: 論壇先鋒
|
你的程序Call P1哪來X0呢? 問題是接通X0后應(yīng)轉(zhuǎn)入子程序,為何會出現(xiàn)主、子程序同時能運行的情形, 按你程序X1 NO是先Call P1子程序 ,做完再SRET 返回主程序 X1 ON ,會Call P1 ,P1若當時X2有ON的話,Y2就會ON,返回主程序時,當X1還是ON的Y1也會跟著ON, 但如果分析來看Y2會比Y1來的快,但是多快,肉眼看不出來!!^^ ”指令直接連左母線,中間沒有觸點, Call指令沒有接點通常都在程序的FNED,後面追加使用。因為是子程序,所以通常都是一些運算程式換算等等再當子程序。 如何才能判斷子程序是否已運行結(jié)束, 這沒辦法判斷也,程序是一直Scan,看功力,哈!~ |
---|---|
|
momo0720
人外有人,天外有天!
級別: 工控俠客
|
子程序底部做執(zhí)行旗標就知道有沒有運轉(zhuǎn)了..... |
|
---|---|---|
|
wsdcsj
級別: 略有小成
|
非常感謝changyu0330的提醒,那天的梯形圖確實寫錯了,第一行的X1應(yīng)為X0。但仿真軟件測試結(jié)論是一樣的,即接通X0后,子、主程序同時執(zhí)行。如上所述,那與普通程序不是一樣的嗎,還要調(diào)用子程序干嗎,假設(shè)子、主程序分別用于機械的手動和自動模式,如都能同時得電運行,那不是亂套嗎,麻煩前輩解釋一下好嗎。 |
---|---|
|
709488196
常熟工控
級別: 探索解密
|
PLC程序添加子程序是為了讓程序結(jié)構(gòu)清晰明了,避免一個程序過長,當然可以將所有的程序都寫在一起,可是如果是一個復(fù)雜的控制,那這個程序的如果只用一個主程序的話龐大程度是可怕的,而且編制難度也相當高!所以一般會將不同功能分為多個子程序處理。 手動/自動百度上查查都很多例子的,你可以用MC指令或者CJ指令也行,自己都看看編程手冊就行了 |
---|---|
|