單片機(jī)和PLC編程的區(qū)別
單片機(jī)與plc的程序設(shè)計(jì)有很大的區(qū)別,單片機(jī)的全部程序都是用戶設(shè)計(jì)的,PLC的程序包括系統(tǒng)程序(西門子稱為操作系統(tǒng))和用戶程序。操作系統(tǒng)用來(lái)組織與具體的控制任務(wù)無(wú)關(guān)的所有的CPU功能。操作系統(tǒng)的任務(wù)包括處理啟動(dòng)過(guò)程,刷新輸入/輸出過(guò)程映像,調(diào)用用戶程序,檢測(cè)中斷事件和調(diào)用中斷組織塊,檢測(cè)和處理錯(cuò)誤,管理存儲(chǔ)器,以及處理通信任務(wù)等。PLC的很多功能,例如掃描工作方式、定時(shí)器功能和中斷處理,是操作系統(tǒng)完成的。在畫流程圖時(shí),應(yīng)考慮這個(gè)問(wèn)題。PLC的開(kāi)關(guān)量控制系統(tǒng)的程序用順序功能圖來(lái)描述比較簡(jiǎn)潔。用流程圖來(lái)描述PLC的用戶程序原則上也是可以的,但是應(yīng)區(qū)分哪些功能是操作系統(tǒng)完成的,哪些是用戶程序?qū)崿F(xiàn)的。
例如有人問(wèn)是否需要用跳轉(zhuǎn)指令來(lái)等待某個(gè)信號(hào)上升沿的出現(xiàn),這是一種單片機(jī)編程的思維。PLC的掃描工作方式在每一掃描周期開(kāi)始時(shí)讀取全部的開(kāi)關(guān)量輸入,根據(jù)前后兩個(gè)掃描周期同一輸入點(diǎn)狀態(tài)的變化來(lái)判斷是否有上升沿出現(xiàn)。所以不需要用往回跳的跳轉(zhuǎn)指令來(lái)等待某個(gè)輸入信號(hào)的出現(xiàn)。如果用這種方法來(lái)查詢信號(hào)的狀態(tài)變化,PLC不能干別的事情,因?yàn)樗娜烤Χ加迷诓樵兩狭!而這種查詢是在一個(gè)掃描周期內(nèi)進(jìn)行的,將使掃描周期變得很長(zhǎng),很容易造成監(jiān)控定時(shí)器(看門狗)超時(shí)的錯(cuò)誤。
在PLC的用戶程序中,只需要用一條檢測(cè)上升沿的指令就可以捕捉到脈沖信號(hào)的上升沿。如果要求快速響應(yīng),可以采用中斷方式,在脈沖信號(hào)的上升沿由系統(tǒng)程序調(diào)用用戶編寫的中斷程序。
編輯:admin 最后修改時(shí)間:2018-05-08