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