zengyu99
級(jí)別: *
|
首先要搞清楚單片機(jī)與PLC的異同,首先得明確什幺是單片機(jī),什幺是PLC。對此,我們簡要回顧一下計(jì)算機(jī)的發(fā)展歷程也許有幫助,按計(jì)算機(jī)專家的原始定義,計(jì)算機(jī)系統(tǒng)由五大部分--即控制單元(CU)、算術(shù)運(yùn)算單元(ALU)、存儲(chǔ)器(Memory)、輸入設(shè)備(Input)、輸出設(shè)備(Output)組成。早期計(jì)算機(jī)(晶體管的或集成電路的,不包括電子管的)的CU或ALU由一塊甚至多塊電路板組成,CU和ALU是分離的,隨著集成度的提高,CU和ALU合在一塊就組成了中央處理單元(CPU),接著將CPU集成到單塊集成電路中就產(chǎn)生MPU或MCU,出現(xiàn)了如Intel4004、8008、8080,8085、8086、8088、Z80等MPU。此后,MPU的發(fā)展產(chǎn)生了兩條分支,一支往高性能、高速度、大容量方向發(fā)展,典型芯片如:Intel80186、286、386、486、586、P2、P3、P4等,速度從4.7MHz到現(xiàn)在的3.2GHz。另一支則往多功能方向發(fā)展,將存儲(chǔ)器(ROM、PROM、EPROM、EEPROM、FLASH ROM、SRAM等)、輸入/出接口(Timer/Counter、PWM、ADC/DAC、UART、IIC、SPI、RTC、PCA、FPGA等)全部集成在一塊集成電路中而成為SOC(System On a Chip)。依愚之見,這就是當(dāng)今廣泛應(yīng)用的單片計(jì)算機(jī),簡稱單片機(jī)。這一分支可謂品種繁多,位寬從8位到32位,引腳數(shù)從6個(gè)到幾百個(gè),工作頻率從幾十KHz到幾百M(fèi)Hz,體系結(jié)構(gòu)既有CISC也有RISC,數(shù)不勝數(shù)。常用的有MCS-51系列、MCS-96系列、PIC系列、AVR系列、ARM7/9系列、TMS320系列、MSP430系列、MOTOROLA眾多的單片機(jī)等等。 至此,我們可以將計(jì)算機(jī)核心處理器的發(fā)展劃分為三個(gè)階段:板級(jí)的CPU、芯片級(jí)的MPU和SOC。 PLC是什幺呢?PLC的全稱是Programmable Logic Controller(可編過程控制器),剛引入國內(nèi)時(shí),曾簡稱為PC。后來,IBM-PC獲得廣泛應(yīng)用,PC成了個(gè)人電腦的代名詞,才改為PLC。PLC還有另外的一個(gè)意思是Power Line Carrier(電力線載波)。 PLC是一種產(chǎn)品,但這種產(chǎn)品有點(diǎn)特別,在沒有下載控制程序之前,它不具備任何控制功能,也就是說,沒有應(yīng)用程序的PLC是毫無用處的。PLC實(shí)際上是專為工業(yè)環(huán)境使用的通用控制平臺(tái),它必須進(jìn)行二次開發(fā)才能完成最終控制目的,因此,它還需程序編輯/調(diào)試軟件的配合。 PLC是智能產(chǎn)品,它的核心控制器采用什幺方案呢?板級(jí)的CPU肯定是不能考慮的,MPU也要好幾塊集成電路構(gòu)成,以Z80 MPU為例,需要Z80MPU、PIO、CTC、SIO、EPROM、SRAM等,把這些集成電路安裝在一塊電路板上,這就是早期的單板計(jì)算機(jī)。這種方案體積太大,不適合現(xiàn)代要求。由此可見,PLC的核心控制器采用單片機(jī)是最合適的。 由此可得出結(jié)論: 1.PLC是建立在單片機(jī)之上的產(chǎn)品,單片機(jī)是一種集成電路,兩者不具有可比性。 2.單片機(jī)可以構(gòu)成各種各樣的應(yīng)用系統(tǒng),從微型、小型到中型、大型都可,PLC是單片機(jī)應(yīng)用系統(tǒng)的一個(gè)特例。 3.不同廠家的PLC有相同的工作原理,類似的功能和指標(biāo),有一定的互換性,質(zhì)量有保證,編程軟件正朝標(biāo)準(zhǔn)化方向邁進(jìn)。這正是PLC獲得廣泛應(yīng)用的基礎(chǔ)。而單片機(jī)應(yīng)用系統(tǒng)則是八仙過海,各顯神通,功能千差萬別,質(zhì)量參差不齊,學(xué)習(xí)、使用和維護(hù)都很困難。 最后,從工程的角度,談?wù)凱LC與單片機(jī)系統(tǒng)的選用; 1.對單項(xiàng)工程或重復(fù)數(shù)極少的項(xiàng)目,采用PLC方案是明智、快捷的途徑,成功率高,可*性好,手尾少,但成本較高。 2.對于量大的配套項(xiàng)目,采用單片機(jī)系統(tǒng)具有成本低、效益高的優(yōu)點(diǎn),但這要有相當(dāng)?shù)难邪l(fā)力量和行業(yè)經(jīng)驗(yàn)才能使系統(tǒng)穩(wěn)定、可*地運(yùn)行。最好的方法是單片機(jī)系統(tǒng)嵌入PLC的功能,這樣可大大簡化單片機(jī)系統(tǒng)的研制時(shí)間,性能得到保障,效益也就有保證。 PLC與單片機(jī)的區(qū)別 看到網(wǎng)友在討論P(yáng)LC與單片機(jī)的區(qū)別,我也來瞎說幾句: PLC其實(shí)就是一套已經(jīng)做好的單片幾(單片機(jī)范圍很廣的喔)系統(tǒng). PLC的梯形圖你可以理解成是與匯編等計(jì)算器語言一樣是一種編程語言,只是使用范圍不同!而且通常做法是由PLC軟件把你的梯形圖轉(zhuǎn)換成C或匯編語言(由PLC所使用的CPU決定),然后利用匯編或C編譯系統(tǒng)編譯成機(jī)器碼!PLC運(yùn)行的只是幾器碼而已.梯形圖只是讓使用者更加容易使用而已. 同樣MCS-51單片機(jī)當(dāng)然也可以用于PLC制作,只是8位CPU在一些高級(jí)應(yīng)用如: 大量運(yùn)算(包括浮點(diǎn)運(yùn)算),嵌入式系統(tǒng)(現(xiàn)在UCOS也能移植到MCS-51)等,有些力不從心而已.我公司在使用的一套工業(yè)系統(tǒng)就是使用MCS-51單片機(jī)做的,不過加上DSP而已,已經(jīng)能滿足我們要求(我們設(shè)備速度較慢,而且邏輯控制為主,但是點(diǎn)數(shù)不少喔,128點(diǎn)I/O呢!!),而且同樣使用梯形圖編程,我們在把我們的梯形圖轉(zhuǎn)化為C51再利用KEIL的C51進(jìn)行編譯.你沒有注意到不用型號(hào)的PLC會(huì)選用不同的CPU嗎!! 當(dāng)然也可以用單片機(jī)直接開發(fā)控制系統(tǒng),但是對開發(fā)者要求相當(dāng)高(不是一般水平可以勝任的),開發(fā)周期長,成本高(對于一些大型一點(diǎn)的體統(tǒng)你需要做實(shí)驗(yàn),印刷電路板就需要一筆相當(dāng)?shù)馁M(fèi)用,你可以說你用仿真器,用實(shí)驗(yàn)板來開發(fā),但是我要告訴你,那樣做你只是驗(yàn)證了硬件與軟件的可行性,并不代表可以用在工業(yè)控制系統(tǒng),因?yàn)楣I(yè)控制系統(tǒng)對抗干擾的要求非常高,穩(wěn)定第一,而不是性能第一,所以你的電路板設(shè)計(jì)必須不斷實(shí)驗(yàn),改進(jìn)).當(dāng)你解決了上述問題,你就發(fā)現(xiàn)你已經(jīng)做了一臺(tái)PLC了,當(dāng)然如果需要?jiǎng)e人能容易使用你還需要一套使用軟件,這樣你可以不需要把你的電路告訴別人(你也不可能告訴別人). 以上一些拙見,有說錯(cuò)的地方請指正,可不要打我喔!也不要罵我喔!我只是想和大家討論一下而已!!! 許多人覺得PLC很神秘,其實(shí)PLC是很簡單的,其內(nèi)部的CPU除了速度快之外,其他功能還不如普通的單片機(jī)。通常PLC采用16位或32位的CPU,帶1或2個(gè)的串行通道與外界通訊,內(nèi)部有一個(gè)定時(shí)器即可,若要提高可靠性再加一個(gè)看家狗定時(shí)器足夠。 PLC的關(guān)鍵技術(shù)在于其內(nèi)部固化了一個(gè)能解釋梯形圖語言的程序及輔助通訊程序,梯形圖語言的解釋程序的效率決定了PLC的性能,通訊程序決定了PLC與外界交換信息的難易。對于簡單的應(yīng)用,通常以獨(dú)立控制器的方式運(yùn)作,不需與外界交換信息,只需內(nèi)部固化有能解釋梯形圖語言的程序即可。實(shí)際上,設(shè)計(jì)PLC的主要工作就是開發(fā)解釋梯形圖語言的程序。 |
---|---|
|
wanghuhong
級(jí)別: 網(wǎng)絡(luò)英雄
|
沒什么區(qū)別,一個(gè)便宜,一個(gè)貴。 |
---|---|
|
chenpingyg
機(jī)械是柱石,電氣是靈魂.
級(jí)別: VIP會(huì)員
|
org 0000h ajmp main org 0030h main: mov tmod,#010h mov th0,#100 mov tl0,#100 mov r5,#00h mov r6,#00h mov r7,#00h mov p0,#11111111b setb tr0 loop: mov p3,#11011111b mov p1,#11111111b jnb p1.4,cx1 jnb p1.3,cx2 jnb p1.2,cx3 setb p3.3 mov p1,#01111111b jnb p1.4,cx4 jnb p1.3,cx5 jnb p1.2,cx6 mov p1,#10111111b jnb p1.4,cx7 jnb p1.3,cx8 jnb p1.2,cx9 ajmp loop cx1: mov p0,#11111110b acall yan1 ajmp loop cx2: mov p0,#11111100b acall yan1 ajmp loop cx3: mov p0,#11111000b acall yan1 ajmp loop cx4: mov p0,#11110000b acall yan1 ajmp loop cx5: mov p0,#11100000b acall yan1 ajmp loop cx6: mov p0,#11000000b acall yan1 ajmp loop cx7: mov p0,#10000000b acall yan1 ajmp loop cx8: mov p0,#00000000b acall yan1 ajmp loop cx9: mov p0,#00000000b acall yan1 mov p0,#11111111b acall yan1 ajmp loop yan1: jnb tf0,yan1 inc r5 cjne r5,#100,yan1 mov r5,#00h inc r6 cjne r6,#100,yan1 mov r6,#00h inc r7 cjne r7,#100,yan1 mov r7,#00h ajmp yan1 ret end |
|
---|---|---|
|