歡迎來到《圣博凱斯》變頻供水設(shè)備官網(wǎng)
精銳于專業(yè) / 卓然于品質(zhì) -- 20年專注于供水行業(yè),締造至臻品質(zhì) -- 服務(wù)熱線:0731-85783205 18932453205

cpu與plc有什么區(qū)別?_plc與cpu有什么區(qū)別

其實際,PLC就是一個完整bai的單片機系統(tǒng)du,你可以把它形像化為一zhi個功能專一的單片機開發(fā)板dao.
這個單片機開發(fā)板由電源+單片機+繼電器或MOS管+端子等等組成.
現(xiàn)在的PLC,多用32位單片機,也有16位,早很多年前的PLC,還有用8位的,比如西門子曾經(jīng)用的是51單片機.
而梯形圖燒錄到PLC后內(nèi)正常運行,是因為PLC的開發(fā)軟件,把梯形圖通過電腦運算,轉(zhuǎn)換成了二進制的機器語言,然后燒錄的PLC內(nèi)部的單片機或者PLC內(nèi)部的Flash里去了,這點,和你用單片機編程沒有什么特別區(qū)別.
而你在編寫單片機的時候,一般來說是需要硬件圖的,我說的是一般,有一種情況不用,那就是,有人把單片機的底層給編寫好的,你不需要關(guān)心底層驅(qū)動是怎么實現(xiàn)的,只需要知道怎么用就行了.在這種情況下,你不需要知道硬件如何實現(xiàn),就不需要看硬件電路.
舉例:
unsigned char Output_Y00 = 0,Output_Y01 = 0;
//-----這是底層函數(shù)-------------------------------------
void Output_Process(void)
{
if(Output_Y00) P1_0 = 0;//---打開第一路輸出
else P1_0 = 1;//---關(guān)閉第一路輸出
if(Output_Y01) P1_4 = 0;//---打開第二路輸出
else P1_4 = 1;//---關(guān)閉第二路輸出
}
上面的例子,在編程的時候,如果是分層編程,即一個人寫邏輯,一個人寫底層,你是看不到那個
Output_Process()的存在的,因為編寫底層的人給封裝起來了,你可能只看到一個庫.
但是他同時也給你留下了接口,就是 Output_Y00,Output_Y01,你通過這兩個變量,就能操作
輸出口的驅(qū)動,同樣的道理,什么AD,DA,串口,都是一個樣,把底層封裝起來,然后由另一個人操作接口變量就行了
這就是單片機分層編程的概念.
而PLC也是基于這種概念,PLC廠商已經(jīng)把底層做好,并且封裝起來了,你在電腦上的梯形圖,只是做邏輯控制,等你做好了,翻譯成特定的代碼,再聯(lián)合廠商做好的底層,一直編譯成二進制機器碼,下載到PLC的單片機里.

?

編程bai語言是思想不一樣。梯形圖是拷貝繼電器系du統(tǒng)而來的,它用的最多的是常開zhi、常閉等dao通斷概念。C語言可是沒有導(dǎo)通,關(guān)閉,常開、常閉的東西。梯形圖里有步進指令,并行處理等,C語言里沒有。為什么單片機不那樣做?那你得問問什么PLC要那么做了。因為它最初設(shè)計出來是給電工看的,就是那些懂繼電器系統(tǒng)的工程師,但是它們不懂什么計算機語言啊,而單片機就不同了,懂得單片機的幾乎都懂計算機,沒有人再去學(xué)繼電器系統(tǒng)。如果你要問為什么PLC不用C語言編寫程序,我覺得這確實是一個值得討論的問題。

猜你喜歡

  • 初學(xué)者怎樣看懂單片機代碼_單片機代碼怎么讀懂

    就數(shù)據(jù)存儲類型而言,8051系列有片上、輸出程序存儲裝置、片上、輸出數(shù)據(jù)存儲器,片上程序存儲器還分為直接地址區(qū)域和間接地址類型,分別為code支持根據(jù)idata和51系列特色設(shè)定的pdata類型,通過使用不同的內(nèi)存,程序的執(zhí)行效率不同,與生成C51程序的ANSI-C略有不同,為SAMLL、COMPACT、lll

  • 單片機控制單片機_網(wǎng)頁控制單片機

    單片機TCP/IP是在單片機上運行的TCP/IP協(xié)議棧。由于嵌入式網(wǎng)絡(luò)設(shè)備越來越多,需要在嵌入式設(shè)備上實現(xiàn)TCP/IP協(xié)議棧,但嵌入式設(shè)備與PC不同,通常采用MCU(即單片機)而不是CPU作為核心處理器這需要在單片機上實現(xiàn)TCP/IP協(xié)議棧。對于高端32位單片機,由于其性能已接近低端PC的CPU(如奔騰i

18932453205