找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 12486|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

PLC里SCR和C語(yǔ)言switch程序分支的區(qū)別

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:51090 發(fā)表于 2014-9-16 23:45 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
   2014-03-22,又是一個(gè)不眠的夜晚,被這個(gè)PLC的SCR段差點(diǎn)折磨半死。習(xí)慣了C++語(yǔ)言的編程,就是這個(gè)下場(chǎng)。不過(guò)還是找到了其中的奧秘。我來(lái)舉個(gè)例子:下面這段程序:按照C語(yǔ)言的理解,意思應(yīng)該是當(dāng)S0.0接通,S0.1斷開的時(shí)候,Q0.0應(yīng)該走第一個(gè)程序段(Q0.0=1),可是PLC不是這么理解的,即使S0.1=OFF,程序依次掃描,當(dāng)程序掃描到S0.1的時(shí)候,母線為OFF,那么,Q0.0這個(gè)時(shí)候又變成了0,這不是我們期待的結(jié)果。PLC沒(méi)有break這個(gè)語(yǔ)句,SCR語(yǔ)句只是告訴了系統(tǒng),當(dāng)前的母線已由S替代,直到發(fā)現(xiàn)SCRE才恢復(fù)正常的母線,即使S是OFF狀態(tài),程序依舊掃描。如果要實(shí)現(xiàn)這個(gè)功能,還需要配合JMP指令和LBL指令來(lái)跳轉(zhuǎn),或者使用RS指令,如圖2.,當(dāng)程序掃描到S0.0時(shí),Q0.0的S指令有效,這時(shí)Q0.0就為1,當(dāng)程序掃描到S0.1時(shí),Q0.0的R指令無(wú)效,那么Q0.0依舊保持原樣,即ON狀態(tài),如圖3的C++例程,這就符合了我們的要求。當(dāng)然,編程的方法有很多,SCR可以同時(shí)執(zhí)行多個(gè)程序段,switch不行,各有千秋。習(xí)慣了就好,可能我還沒(méi)有完全適應(yīng)PLC,需要一個(gè)過(guò)程,適應(yīng)它了就有它的優(yōu)勢(shì)。PLC程序比較聽話,程序依次執(zhí)行,直到發(fā)現(xiàn)SCRE為止才跳出程序,哪怕執(zhí)行了SCRT,它依舊活著,直到下次掃描才關(guān)閉。
圖1:                                                                                          

圖2:


圖3:




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表