淺談?dòng)脝纹瑱C(jī)模擬PLC(山寨三菱系列)
個(gè)人覺(jué)得PLC和單片機(jī)的關(guān)系就好比圖章和圓珠筆一樣,圖章操作簡(jiǎn)單傻子能蓋出漂亮的圖案但缺點(diǎn)也顯而易見(jiàn)靈活性太差了你不能用圖章蓋出一些復(fù)雜的圖案,圓珠筆就正好相反雖然操作難度大點(diǎn)但靈活性強(qiáng)了n個(gè)數(shù)量級(jí)。
本文引用地址:http://www.biyoush.com/article/201612/324257.htm既然單片機(jī)的靈活性那么強(qiáng)那么我們能用單片機(jī)來(lái)模擬PLC嗎,很明顯是可以的而且PLC的核心其實(shí)也是單片機(jī),那么該怎么模擬PLC呢?PLC分程序和硬件部分,硬件部分主要是做好外圍電路設(shè)計(jì),實(shí)現(xiàn)PLC的IO輸入輸出功能,一般用光耦做IO口電路設(shè)計(jì)提高單片機(jī)的抗干擾能力,做好穩(wěn)定的電源設(shè)計(jì),電源是可靠性的基礎(chǔ)。其實(shí)模擬PLC的關(guān)鍵再于程序部分,思路是寫(xiě)個(gè)編譯器把梯形圖編譯成 單片機(jī)能執(zhí)行的機(jī)器碼,但寫(xiě)編譯器工程太大了,我們只是模擬又不是造PLC所以不用考慮寫(xiě)那種直接把梯形圖編譯成機(jī)器碼的編譯器了,我們可以把編譯過(guò)程分解為梯形圖—>指令表—>C51代碼—>機(jī)器碼,這樣的話問(wèn)題就簡(jiǎn)單多了梯形圖轉(zhuǎn)指令表可以手工完成或者寫(xiě)個(gè)圖形編輯程序來(lái)完成但這不是重點(diǎn),指令表轉(zhuǎn)C51代碼才是模擬PLC的靈魂所在,雖然是個(gè)偽編譯器但每條指令的翻譯都是蛋疼的過(guò)程,我肯定是沒(méi)辦法把所有的三菱指令都模擬出來(lái)的,要完成這個(gè)任務(wù)還得認(rèn)真學(xué)學(xué)編譯原理啊……
這是PLC模擬程序的運(yùn)行截圖,對(duì)應(yīng)指令表的邏輯,發(fā)現(xiàn)運(yùn)行結(jié)果是正確的,雖然只完成了幾條最簡(jiǎn)單指令的翻譯而且與反指令還存在問(wèn)題但畢竟思路是正確的完成只是時(shí)間問(wèn)題了,太晚了不搞了果然比泥瑪搬磚還辛苦想問(wèn)題的時(shí)候根本睡不了……艾瑪
評(píng)論