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