本帖最后由 dongfangjian 于 2012-11-19 01:29 編輯 前言
歷經(jīng)26年對(duì)PLC的研究和應(yīng)用實(shí)踐,在設(shè)計(jì)了多款PLC都覺(jué)得不滿(mǎn)意之后,最近完成了一種完全自主的PLC體系設(shè)計(jì)?,F(xiàn)在是該休整一下,總結(jié)這些年來(lái)學(xué)習(xí)、研究PLC的經(jīng)驗(yàn)和體會(huì),與網(wǎng)友共享,希望能起到拋磚引玉的作用,對(duì)國(guó)產(chǎn)PLC研發(fā)提供參考,對(duì)學(xué)習(xí)、研究、批量生產(chǎn)與制造、銷(xiāo)售與代理、定制專(zhuān)用PLC有興趣的網(wǎng)友也可以與我聯(lián)系(QQ:2271071498,關(guān)鍵詞 PLC),共同研究PLC技術(shù),開(kāi)拓PLC市場(chǎng),為國(guó)產(chǎn)PLC的發(fā)展壯大貢獻(xiàn)自己的一份力量,有你們的參與,國(guó)產(chǎn)PLC世界將會(huì)更加精彩。
涉及PLC的內(nèi)容很廣,無(wú)法面面俱到,只能選擇有代表性的內(nèi)容,由于時(shí)間限制,本文的內(nèi)容相對(duì)較窄,但篇幅已經(jīng)不小了,對(duì)于PLC的初學(xué)者,有興趣的話(huà),可以仔細(xì)的閱讀,相信會(huì)有收獲,對(duì)應(yīng)PLC的高手、專(zhuān)家,希望交流與討論。
本文主要從PLC的原理、實(shí)現(xiàn)與應(yīng)用3方面概要地介紹PLC,側(cè)重實(shí)現(xiàn)和應(yīng)用,實(shí)現(xiàn)部分將介紹PLC的一些典型電路及布局布線(xiàn)的一些基本常識(shí),
應(yīng)用部分將介紹各種控制對(duì)象的特性及相關(guān)檢測(cè)與控制電路的設(shè)計(jì),這些都是多年實(shí)踐和應(yīng)用經(jīng)驗(yàn)的總結(jié)。
目錄
一、 原理
1.1 PLC的體系架構(gòu)
1.1.1 指令系統(tǒng)
1.1.2 通訊協(xié)議
1.1.3 指令解析器
1.1.4 編程軟件或編程平臺(tái)
1.2 解釋型PLC與編譯型PLC
1.2.1 解釋型PLC
1.2.2 編譯型PLC
1.2.3 解釋型PLC與編譯型PLC的優(yōu)缺點(diǎn)
1.3 自主PLC的體系架構(gòu)設(shè)計(jì)
1.3.1 指令系統(tǒng)的設(shè)計(jì)
1.3.2 通訊協(xié)議的設(shè)計(jì)
1.3.3 編程軟件的設(shè)計(jì)
1.4 PLC的性能
1.4.1 兼容性
1.4.2 靈活性
1.4.3 開(kāi)放與開(kāi)源
二、 實(shí)現(xiàn)
2.1 HC104系列超級(jí)PLC簡(jiǎn)介
2.2 HUP系列超小型PLC簡(jiǎn)介
2.3 HOP系列開(kāi)源PLC簡(jiǎn)介
2.4硬件電路設(shè)計(jì)的三個(gè)方面:電路設(shè)計(jì)、電磁兼容設(shè)計(jì)、熱設(shè)計(jì)
2.5 電路設(shè)計(jì)
2.5.1 數(shù)字IO的處理
2.5.2 高速I(mǎi)O的處理
2.5.3 模擬信號(hào)的處理
2.6 電磁兼容設(shè)計(jì)
2.7 熱設(shè)計(jì)
三、 應(yīng)用
3.1 HC104系列PLC的總體架構(gòu)與設(shè)計(jì)要點(diǎn)
3.1.1 HC104-M016-T01 16點(diǎn)(8I/8o 晶體管輸出)主板
3.1.2 HC104-E016-R01 16點(diǎn)(8I/8o 繼電器輸出)主板
3.1.3 HC104-D064-P01 64點(diǎn)顯示、編程板
3.1.4 HC104-E8AD-001 8 AD輸入板
3.1.5 HC104-E8DA-001 8 DA輸出板
3.1.6 HC104-E4AD-D21 4AD輸入、2AD輸出板
3.1.7 HC104-PT24-001 24路熱電阻輸入板
3.1.8 HC104-PK24-001 24路熱電偶輸入板
3.1.9 HC104-E016-TH1 16路高速(>1MHz)輸入板
3.1.10 HC104-SEVO-001 伺服電機(jī)控制板
3.1.11 HC104-STEP-001 步進(jìn)電機(jī)控制板
3.1.12 HC104-EBUS-FX2 三菱FX1N、FX2N系列PLC擴(kuò)展模塊接口板
3.1.13 HC104-EBUS-SM1 西門(mén)子S7-200系列PLC擴(kuò)展模塊接口板
3.1.14 HC104-EBUS-OM1 OMRON CP系列PLC擴(kuò)展模塊接口板
3.1.15 HC104-EBUS-AK1 Aeonkon(英凱)PLC擴(kuò)展模塊接口板
3.2 HUP系列PLC的總體架構(gòu)與設(shè)計(jì)要點(diǎn)
3.2.1 HUP-016-R01 16點(diǎn)(8I/8o 繼電器)模塊
3.2.2 HUP-E016-R01 16點(diǎn)(8I/8o 繼電器)擴(kuò)展
3.2.3 HUP-E6AD-001 6點(diǎn)AD輸入擴(kuò)展
3.2.4 HUP-ICAN-P01 隔離CAN BUS、編程板
3.3 HOP系列開(kāi)源PLC
3.3.1 HOP-016-R01 16點(diǎn)(8I/8o 繼電器)主板
正文
一、 原理
1.1 PLC的體系架構(gòu)
一個(gè)自成體系的PLC由四大部分組成:指令系統(tǒng)、通訊協(xié)議、指令解析器和編譯軟件或編譯平臺(tái)。
1.1.1 指令系統(tǒng)
PLC的指令系統(tǒng)有2種表現(xiàn)形式:助記符和字節(jié)碼。
助記符,顧名思義是幫助人記憶的一組字母符號(hào),如:MOV K40 K4S0。
字節(jié)碼,是指令解析器能夠識(shí)別的代碼,指令解析器按字節(jié)或字分析該串代碼,提取指令代碼和操作數(shù),執(zhí)行相應(yīng)的動(dòng)作,如:0x0028,0x8028,0x8000,0x8400,0x8800就是MOV K40 K4S0的字節(jié)碼。
這里采用字節(jié)碼的名稱(chēng)是為了避免與指令解析器中CPU自身的機(jī)器碼相混。
1.1.2 通訊協(xié)議
PLC的通訊協(xié)議有很多,主要有:PLC與編程軟件的通訊協(xié)議、PLC之間的通訊協(xié)議、PLC與現(xiàn)場(chǎng)設(shè)備的通訊協(xié)議。
1.1.3 指令解析器
就是我們通常所指的PLC,其功能有強(qiáng)有弱,差別極大,無(wú)法比較。最弱的PLC應(yīng)該有2項(xiàng)功能:解析指令和與編程軟件通訊。強(qiáng)大的PLC,功能沒(méi)有限制。
1.1.4 編程軟件或編程平臺(tái)
編程軟件通常也稱(chēng)為上位機(jī)軟件,主要功能是為編輯梯形圖、指令表等提供一個(gè)友好的界面,方便輸入、修改梯形圖、指令表的程序,并將梯形圖、指令表等編譯成字節(jié)碼,再下載到PLC中解析運(yùn)行,實(shí)現(xiàn)預(yù)定的功能。
功能強(qiáng)大的編程軟件還能實(shí)現(xiàn)梯形圖、指令表等的仿真運(yùn)行,實(shí)時(shí)監(jiān)控,在線(xiàn)編輯等功能,極大地提高調(diào)試程序的效率。
1.2 解釋型PLC與編譯型PLC
從歷史的角度看,PLC有2種類(lèi)型:解釋型和編譯型。
1.2.1 解釋型PLC
解釋型PLC內(nèi)部有一套監(jiān)控程序和通訊程序,負(fù)責(zé)與編程軟件和其他PLC及現(xiàn)場(chǎng)設(shè)備通訊,在運(yùn)行時(shí)逐條解析預(yù)先下載到PLC中的梯形圖指令,執(zhí)行相應(yīng)動(dòng)作,所有的指令都執(zhí)行完后,監(jiān)控程序負(fù)責(zé)刷新輸入、輸出信號(hào)、計(jì)算運(yùn)行時(shí)間、與上位機(jī)或其他PLC、現(xiàn)場(chǎng)設(shè)備通訊,然后再逐條解析梯形圖指令,如此周而復(fù)始,循環(huán)不息。
1.2.2 編譯型PLC
編譯型PLC也有一套監(jiān)控程序和通訊程序,負(fù)責(zé)與編程軟件和其他PLC及現(xiàn)場(chǎng)設(shè)備通訊,但運(yùn)行方式與解釋型的PLC不同,它是執(zhí)行一段PLC的本地代碼而非梯形圖的字節(jié)碼,運(yùn)行完后再返回監(jiān)控程序。
何謂本地代碼?每種CPU都有自己專(zhuān)屬的一套指令系統(tǒng),指令的二進(jìn)制表示就是機(jī)器碼,機(jī)器碼是可以直接運(yùn)行的,本地代碼指的就是機(jī)器碼。
對(duì)解釋型PLC而言,所謂的梯形圖程序,在PLC內(nèi)部并非程序,不能直接運(yùn)行,而是數(shù)據(jù),解析器(也有稱(chēng)為虛擬機(jī))分析數(shù)據(jù),然后在執(zhí)行相應(yīng)的動(dòng)作。
對(duì)編譯型PLC而言,下載到PLC中的梯形圖程序是經(jīng)編程軟件本地化編譯后的可執(zhí)行代碼,是可以直接執(zhí)行的。這要求編程軟件要有2個(gè)編譯器,一個(gè)是梯形圖到指令表的編譯器,另一個(gè)是指令表(字節(jié)碼)到機(jī)器碼的編譯器,這在JAVA里叫即時(shí)編譯器,JIT。
1.2.3 解釋型PLC與編譯型PLC的優(yōu)缺點(diǎn)
應(yīng)該說(shuō),解釋型PLC與編譯型PLC各有優(yōu)缺點(diǎn),但在我看來(lái),編譯型PLC的缺點(diǎn)更多,有的是不能接受的。
有很多人認(rèn)為編譯型的PLC比解釋型的PLC運(yùn)行速度快,理由是運(yùn)行的程序是本地代碼。有人甚至認(rèn)為編譯型的PLC比解釋型的PLC要快3~10倍,這樣的數(shù)據(jù)不知從何而來(lái),在我看來(lái)能快1.5倍都很難,快1.2倍是有可能的,以下簡(jiǎn)單分析之:
不管是編譯型的,還是解釋型的PLC,在一條指令中,取操作數(shù),然后運(yùn)算,這些是一樣的,所不同的是編譯型的PLC,執(zhí)行完上一條指令直接跳到下一條指令執(zhí)行,而在解釋型的PLC中,執(zhí)行完一條指令需返回到一個(gè)函數(shù)中,該函數(shù)取出下一條指令的指令碼,再轉(zhuǎn)到相應(yīng)的指令處理函數(shù)中,這部分通常稱(chēng)為入口函數(shù)處理,對(duì)同類(lèi)指令的處理時(shí)間基本一樣(這與指令分組有關(guān),有的邏輯指令采用一次跳轉(zhuǎn),功能指令采用二次跳轉(zhuǎn)),因此簡(jiǎn)單的指令,這部分的比例會(huì)高些,對(duì)于復(fù)雜的功能指令,這部分可以忽略不計(jì),可見(jiàn),編譯型的PLC速度比解釋型的PLC快不了多少。
編譯型PLC的缺點(diǎn)主要有3點(diǎn):在線(xiàn)編輯功能、程序上傳和數(shù)據(jù)保護(hù)。
1、在線(xiàn)編輯功能,實(shí)際上是對(duì)運(yùn)行中的PLC,在不停機(jī)的狀態(tài)下進(jìn)行局部程序的編輯與修改,這在大型PLC系統(tǒng)中是非常重要的功能。設(shè)想一下,一條大型流水線(xiàn),某個(gè)局部邏輯有點(diǎn)小問(wèn)題,可能只需要將常開(kāi)觸點(diǎn)改為常閉觸點(diǎn),若是沒(méi)有在線(xiàn)編輯功能,則需要程序重新編譯、下載才能實(shí)現(xiàn)。下載程序肯定要停機(jī),大型設(shè)備要停機(jī)就能停機(jī)嗎?這時(shí)候,在線(xiàn)編輯功能就非常有用了,可以做到神不知鬼不覺(jué)的就把程序改了,問(wèn)題也就決了。這種事情我做多了,若是客戶(hù)問(wèn)什么問(wèn)題,大可以說(shuō)沒(méi)問(wèn)題,只是某某東西不太好,調(diào)一下就可以了。若是程序有問(wèn)題,要求停機(jī)修改程序,那責(zé)任就明擺著了,人家不還錢(qián)就有理由了嘛。
屬我愚笨,到現(xiàn)在,我都想不出有什么好的辦法,編譯型PLC可以實(shí)現(xiàn)在線(xiàn)編輯功能,因?yàn)楦静恢酪薷牡奶菪螆D指令是那段本地代碼!
2、程序上傳功能,這個(gè)功能理論上是不需要的,程序是下載到PLC中去的,肯定有備份的啊,還需要上傳?
而在實(shí)際中,有以下N多種情況會(huì)發(fā)生:
1)、過(guò)了N久之后,你不一定有源程序的備份;
2)、原始程序不是你寫(xiě)的,也找不到原始程序了,現(xiàn)在要修改程序;
3)、在大的公司中,程序是你寫(xiě)的,你有源程序,但后來(lái)其他人修改了程序又沒(méi)有把修改的程序給你,現(xiàn)在機(jī)器又出問(wèn)題了,將你原來(lái)的程序下載下去?那已經(jīng)解決了的問(wèn)題又重現(xiàn)了,怎么辦?
在我的實(shí)際工作中,不管是我寫(xiě)的程序,還是其他人寫(xiě)的程序,在修改程序之前,先上傳程序或先比較一下你拿到的程序與現(xiàn)在運(yùn)行的程序是否相同,這是非常重要的一步,這步?jīng)]做,或忽視了,可能會(huì)帶來(lái)嚴(yán)重后果。
而在編譯型的PLC中,如何上傳程序?前面已經(jīng)講到,編譯型的PLC中,執(zhí)行的不是梯形圖指令,而是梯形圖指令(字節(jié)碼)的本地代碼,將本地代碼上傳再反編譯成梯形圖指令?可能現(xiàn)在還沒(méi)有這樣的技術(shù)。這樣為了實(shí)現(xiàn)程序的上傳就必須在PLC中也要保存一份梯形圖指令(字節(jié)碼),這就需要在下載程序時(shí),既要下載字節(jié)碼,也要下載機(jī)器碼,而且機(jī)器碼的長(zhǎng)度是字節(jié)碼的幾倍,累不累啊!不過(guò),好歹還有辦法。
3、數(shù)據(jù)保護(hù)
在解釋型的PLC中,PLC程序和數(shù)據(jù)(各種寄存器)是分離的,即下載程序不會(huì)改變?cè)瓉?lái)的數(shù)據(jù),這點(diǎn)是很重要的。在大型系統(tǒng)中,程序運(yùn)行的許多參數(shù)是預(yù)先設(shè)定,并保存在掉電保存寄存器中的。編程軟件中有一個(gè)功能是可以將運(yùn)行的PLC中的各種寄存器的當(dāng)前值保存到文件中,也可以將文件中的各種寄存器值寫(xiě)到PLC中,這對(duì)批量產(chǎn)生設(shè)備非常有好處,可以非常容易地完成設(shè)備的初始設(shè)定。
在編譯型的PLC中,梯形圖程序已被編譯成機(jī)器碼,執(zhí)行代碼和變量(數(shù)據(jù))是高度耦合,下載程序會(huì)將變量數(shù)據(jù)破壞,而且每次編譯變量的地址都是不確定的,編程軟件(上位機(jī))如何監(jiān)控?cái)?shù)據(jù)(各種寄存器)?
隨著單片機(jī)性能的不斷提高,速度越來(lái)越快,解釋型PLC的速度早就不成問(wèn)題了,現(xiàn)在隨便一款72MHZ的Cortex-M3的單片機(jī)所能到達(dá)的處理速度都超過(guò)FX2N的水平。
1.3 自主PLC的體系架構(gòu)設(shè)計(jì)
做山寨機(jī)是比較容易的,不需要考慮那么多,照原機(jī)做就可以了,而且做的越像水平越高。要設(shè)計(jì)自主PLC體系就難了,參考現(xiàn)有的設(shè)計(jì),會(huì)被說(shuō)成是山寨,而現(xiàn)今大量使用的PLC都是經(jīng)過(guò)多年的使用進(jìn)化而來(lái)的,自然有許多優(yōu)點(diǎn),放棄這些優(yōu)點(diǎn)重新設(shè)計(jì),客戶(hù)不一定接受,因此,自主PLC的體系設(shè)計(jì)也要考慮這種現(xiàn)實(shí)。
自主PLC體系設(shè)計(jì)從2004年就開(kāi)始了,設(shè)計(jì)、打樣了3、4款外殼,花了幾萬(wàn)元,但都因不滿(mǎn)意、不理想而沒(méi)有開(kāi)模具量產(chǎn)。
技術(shù)方案有采用單CPU的、核心模塊的和多CPU的。單CPU和核心模塊的方案在實(shí)現(xiàn)各種模塊擴(kuò)展時(shí)不是很方便,而多CPU方案在實(shí)現(xiàn)IO擴(kuò)展時(shí)所展現(xiàn)出的優(yōu)越性非常突出,這一技術(shù)在2008年獲得國(guó)家發(fā)明專(zhuān)利。
超級(jí)PLC系統(tǒng)就是基于多CPU技術(shù)構(gòu)成的智能IO系統(tǒng),其優(yōu)良的特性會(huì)在下面詳細(xì)講述。
1.3.1 指令系統(tǒng)的設(shè)計(jì)
自主PLC一定要有自己的指令系統(tǒng),用人家的指令系統(tǒng)那就不是自主的,是山寨。
Aeonkon(英凱)PLC的指令系統(tǒng)是在博采眾長(zhǎng)的基礎(chǔ)上發(fā)展起來(lái)的,已經(jīng)歷了多年的驗(yàn)證,不論是空間效率(指令的長(zhǎng)度)還是執(zhí)行效率都非常高,比三菱FX系列PLC的指令要高得多,這里不再細(xì)述,詳情請(qǐng)參見(jiàn)《Aeonkon(英凱) PLC 指令與三菱PLC指令的差異》一文。
Aeonkon(英凱) PLC 指令與三菱PLC指令的差異.pdf(134.36 KB, 下載次數(shù): 334)1.3.2 通訊協(xié)議的設(shè)計(jì)
Aeonkon(英凱)的通訊協(xié)議是獨(dú)創(chuàng)的,適合PLC與編程軟件、PLC之間、PLC與現(xiàn)場(chǎng)設(shè)備之間的通訊,其內(nèi)容很多,這里不細(xì)述,大致的特點(diǎn)是:該協(xié)議采用8位二進(jìn)制編碼,而不是ASCII字符,這樣通訊效率提高一倍,同時(shí)避免了發(fā)送與接收時(shí)的拆合處理,節(jié)省了預(yù)處理時(shí)間。協(xié)議的理論錯(cuò)誤概率為2的32次方分之一,極為可靠,經(jīng)過(guò)多年的實(shí)際驗(yàn)證,連續(xù)通訊幾天都沒(méi)有監(jiān)測(cè)到錯(cuò)誤。
1.3.3 編程軟件的設(shè)計(jì)
自主的PLC要有自己的編程軟件,這是最基本的。Aeonkon(英凱)PLC的編程軟件從2003年開(kāi)始到2005年基本完成,現(xiàn)在還在不斷完善中。該軟件具有大型PLC軟件的許多特性,如:結(jié)構(gòu)化梯形圖編程、在線(xiàn)編輯、離線(xiàn)仿真、在線(xiàn)監(jiān)控、能流顯示、直接讀入FX系列PLC的程序文件再編譯、支持IEC61131-3標(biāo)準(zhǔn)等。
圖1是Aeonkon(英凱)的編程軟件
圖1
1.4 PLC的性能
PLC的性能表現(xiàn)在多個(gè)方面,如指令的執(zhí)行速度,程序空間的大小,擴(kuò)展能力,擴(kuò)展模塊的數(shù)量和種類(lèi)等,這些網(wǎng)友應(yīng)該比較熟悉,在此不再多談。
1.4.1 兼容性
一個(gè)全新的PLC系統(tǒng)若不考慮與現(xiàn)有的系統(tǒng)做某些兼容,恐怕很難被人接受,但兼容太多又會(huì)被人認(rèn)為是抄襲、是山寨。較好的方案應(yīng)該是同一個(gè)PLC,既能運(yùn)行自主的一套東西,也能兼容流行的體系,這樣比較容易推廣。Aeonkon(英凱)的HC104系列PLC在同一硬件電路的基礎(chǔ)上,只要增加或更換擴(kuò)展總線(xiàn)接口就能兼容不同體系的PLC。
1.4.2 靈活性
小規(guī)模的應(yīng)用對(duì)靈活性要求不高,再變也變不到哪里去。對(duì)于較大的系統(tǒng)能夠用較少的模塊靈活配置,則對(duì)廠(chǎng)家和用戶(hù)都能減少庫(kù)存,節(jié)省成本。Aeonkon(英凱)的HC104系列PLC一塊8I/8o模塊,既可以做主處理(CPU)模塊,也可以做IO模塊,主處理模塊可以帶16個(gè)IO模塊,因此,如果全部都數(shù)字輸入、輸出的話(huà),同一種模塊可以構(gòu)成以下各種規(guī)模的系統(tǒng):16(8/8)、32(16/16)、48(24/24)、64(32/32)、80(40/40)、96(48/48)、112(56/56)、128(64/64)、144(72/72)、160(80/80)、176(88/88)、192(96/96)、208(104/104)、224(112/112)、240(120/120)、256(128/128)。這基本涵蓋了小規(guī)模的應(yīng)用。
1.4.3 開(kāi)放與開(kāi)源
現(xiàn)在常用的PLC都是自成體系的,開(kāi)放度很小,開(kāi)放給用戶(hù)的一般只有一個(gè)很簡(jiǎn)單的自由通訊協(xié)議,廠(chǎng)商這樣做也有一定的道理,如果將PLC體系內(nèi)的一些功能開(kāi)放給客戶(hù),由于客戶(hù)水平參差不齊,可能會(huì)導(dǎo)致PLC系統(tǒng)不可靠、不穩(wěn)定,砸了牌子。
Siemens的PLC體系相對(duì)比較開(kāi)放,提供了一個(gè)ProfiBus的總線(xiàn)給客戶(hù),但這種總線(xiàn)也不是一般的客戶(hù)玩得起的,一是沒(méi)有相關(guān)的資料,二是接口芯片很貴。
我想,Aeonkon(英凱)的PLC也可以采用這種模式,采用CANBUS這種性能適中,資料、芯片支持都很多的總線(xiàn)做為Aeonkon(英凱)PLC的遠(yuǎn)程(現(xiàn)場(chǎng))IO總線(xiàn),以降低系統(tǒng)成本和入門(mén)的門(mén)檻。
開(kāi)源的話(huà)題是很多人所關(guān)心的,有些人把人家的產(chǎn)品和技術(shù)拿來(lái)開(kāi)源,這是不道德的(只能這樣說(shuō),又不能追究責(zé)任),我不贊同這種做法。要開(kāi)源把自己的研究成果開(kāi)源那是值得尊敬的!
一個(gè)開(kāi)源的系統(tǒng)應(yīng)該是自主的、獨(dú)立的,不侵犯人家的權(quán)益,這樣才有可能獲得認(rèn)同和支持,才有意義。打著開(kāi)源的旗號(hào),開(kāi)別人的源,賺自己的錢(qián),很不道德。
我對(duì)開(kāi)源PLC的設(shè)想是:自主的PLC體系,以IEC61131-3為標(biāo)準(zhǔn),有自主的指令系統(tǒng)、通訊協(xié)議和編程軟件。Aeonkon(英凱)的PLC體系基本符合這些要求。
很多年前、在網(wǎng)上就有開(kāi)源的PLC,如:MIT PLC、netPLC、OPLC等,這些PLC差不多都在linux下,因此也幾乎沒(méi)用,現(xiàn)在所謂的開(kāi)源PLC,功能都很簡(jiǎn)單,完全不能和主流PLC相比。
二、 實(shí)現(xiàn)
2.1 HC104系列超級(jí)PLC簡(jiǎn)介
PC104規(guī)范,相信很多搞嵌入式控制的網(wǎng)友應(yīng)該不陌生,該規(guī)范源自IBM-PC/XT、IBM-PC/AT的ISA總線(xiàn)規(guī)范,IBM-PC及其兼容機(jī)曾一度稱(chēng)霸個(gè)人電腦市場(chǎng),是名副其實(shí)的王者,ISA板卡遍布全世界各個(gè)角落。 ISA總線(xiàn)現(xiàn)在已被PCI總線(xiàn)替代,ISA板卡已難覓蹤跡,但這2種總線(xiàn)技術(shù)卻在PC104PLUS里得到完美的保留,因此PC104PLUS規(guī)范可以實(shí)現(xiàn)當(dāng)今個(gè)人電腦的所有性能!
此外,PC104/PLUS還有加固型的,采用金屬合金,體積非常小巧,可用于軍事和航天領(lǐng)域,如圖2-1所示。
圖2-1
HC104系列PLC繼承了PC104的“貴”族血統(tǒng),使其可以擁有無(wú)可比擬的性能,但這種“貴”體現(xiàn)在價(jià)格上又難以接受,很多年來(lái)想用這個(gè)規(guī)范來(lái)實(shí)現(xiàn)PLC一直未敢實(shí)施,直到2008年想出智能IO的方法并獲得國(guó)家發(fā)明專(zhuān)利,才從理論上解決了這一問(wèn)題,但還沒(méi)有找到合適的芯片來(lái)實(shí)現(xiàn),最近突然想到smbus可以很好的實(shí)現(xiàn)這一方法,也有相應(yīng)的芯片可用,于是就設(shè)計(jì)了超級(jí)PLC-HC104系列。
HC104系列超級(jí)PLC可以完全兼容PC104及PC104PLUS規(guī)范,實(shí)現(xiàn)所要的性能,也可以完全只用smbus總線(xiàn)實(shí)現(xiàn)擴(kuò)展。
HC104系列PLC最多可以擴(kuò)展16個(gè)模塊,16個(gè)模塊可以垂直堆疊安裝,這在工控應(yīng)用就是摩天大樓了,不建議這樣使用。也可以垂直4個(gè)模塊,水平4個(gè)模塊構(gòu)成4x4的小高層,小區(qū)式的應(yīng)用,還可以16個(gè)模塊都水平安裝,這就是“和諧號(hào)”了。
HC104系列除了自身可以擴(kuò)展16個(gè)模塊,如果基本模塊是16點(diǎn)(8I/8o)可以構(gòu)成16(8/8)、32(16/16)、48(24/24)、64(32/32)、80(40/40)、96(48/48)、112(56/56)、128(64/64)、144(72/72)、160(80/80)、176(88/88)、192(96/96)、208(104/104)、224(112/112)、240(120/120)、256(128/128)的應(yīng)用,如果基本模塊是32點(diǎn)(16I/16o)的,可將上述組合翻一番。此外,若增加三菱的FX系列擴(kuò)展模塊總線(xiàn)接口,還可以增加16個(gè)三菱FX的各種擴(kuò)展模塊,若換成西門(mén)子或OMRON的總線(xiàn)接口,也可以?huà)旖酉鄳?yīng)的模塊,這樣的PLC系統(tǒng)還不能稱(chēng)為超級(jí)PLC?
對(duì)此,有興趣學(xué)習(xí)、研究、生產(chǎn)、制造、銷(xiāo)售、代理、OEM的網(wǎng)友還不趕快行動(dòng)?(QQ:2271071498,關(guān)鍵詞 PLC).
最基本的HC104系統(tǒng),只要2塊電路板就能構(gòu)成16、32、48、64、80、96、112、128、144、160、176、192、208、224、240、256等規(guī)模的應(yīng)用,超經(jīng)濟(jì)、超靈活。2塊板分別是:1塊8I/8o的主板(同時(shí)也可以配置為擴(kuò)展IO板)和一塊64點(diǎn)的顯示+編程接口+開(kāi)源Triduino Mini +Triduino Tiny(Triduino系列開(kāi)源硬件是我即將發(fā)布的一套用于擴(kuò)展PLC功能的接口,包括Triduino Base、Ardo—完全兼容Arduino、Mini和Tiny,以下會(huì)簡(jiǎn)要的介紹)的多功能板,若采用4塊垂直x4塊水平安裝的方式,4塊顯示板剛好可以顯示256點(diǎn)的輸入輸出信息,此外還可以通過(guò)Triduino Mini或Tiny擴(kuò)展網(wǎng)口,CANBUS、Zigbee等無(wú)線(xiàn)通訊模塊。
圖2-2 是不帶擴(kuò)展模塊接口的圖片
圖2-2
圖2-3 是帶FX系列擴(kuò)展模塊接口的圖片,4塊板堆疊共64點(diǎn)
圖2-3
2.2 HUP系列超小型PLC簡(jiǎn)介
HUP系列超小型PLC是HC104系列PLC的一個(gè)補(bǔ)充,主要用于現(xiàn)場(chǎng)設(shè)備的控制和信號(hào)采集,或作為HC104的遠(yuǎn)程IO模塊。
HUP系列也可以獨(dú)立運(yùn)行的,支持Triduino Tiny接口,也可以擴(kuò)展網(wǎng)口,CANBUS、Zigbee等無(wú)線(xiàn)通訊模塊。
圖2-4 HUP-016-001 8光耦輸入、8繼電器輸出主板(設(shè)計(jì)圖)
此系列目前還沒(méi)有外殼,成品的效果(網(wǎng)上下載的),如圖2-4-1所示,尺寸為95x60x27和95x60x40, 但功能要比這些強(qiáng)。
圖2-4-1
圖2-5 HUP-ICAN-P01 超高速磁耦隔離CANBUS+編程接口板(設(shè)計(jì)圖)
圖2-6 HUP-E016-R01 8光耦輸入、8繼電器輸出擴(kuò)展板
圖2-7 HUP-E6AD-001 6AD輸入板
HUP系列PLC最多可以32個(gè)模塊構(gòu)成網(wǎng)絡(luò)控制系統(tǒng),網(wǎng)絡(luò)可以是Ethernet、CANbus、Zigbee、RF、GPRS等。
2.3 Triduino開(kāi)源系列硬件簡(jiǎn)介
Triduino開(kāi)源系列硬件是在超級(jí)PLC設(shè)計(jì)過(guò)程中所抽象出來(lái)的一組接口,覺(jué)得這組接口很有用處,計(jì)劃開(kāi)源,讓有興趣的網(wǎng)友在設(shè)計(jì)產(chǎn)品時(shí)能借鑒使用,對(duì)有興趣的芯片廠(chǎng)家,若能參考此接口設(shè)計(jì)相關(guān)的模塊,則也能為客戶(hù)提供方便。
圖2-8 Triduino Base 主板設(shè)計(jì)圖
圖2-9 Triduino Ardo 主板設(shè)計(jì)圖
圖 2-10 Triduino Mini主板設(shè)計(jì)圖
圖 2-11 Triduino Tiny 主板設(shè)計(jì)圖
Triduino Base主要是設(shè)計(jì)用來(lái)和HC104系列PLC交互的,以后會(huì)提供一些和HC104交互的源代碼的案例,如與HC104的通訊,數(shù)據(jù)的讀取、顯示等。
Triduino Ardo是完全兼容Arduino的,在此不再詳述,請(qǐng)參考有關(guān)Arduino的文章。
Triduino Base和Triduino Ardo都支持Triduino Mini接口。
Triduino Mini用在稍大體積的通訊模塊中,同時(shí)Triduino Mini內(nèi)含Triduino Tiny接口。
Triduino Tiny是系列中最小的接口,可以用在體積嚴(yán)格限制的場(chǎng)合。
2.4 HOP系列開(kāi)源PLC簡(jiǎn)介
HOP系列開(kāi)源PLC主要目的是用于PLC的入門(mén)學(xué)習(xí),提供PLC端的源代碼用于PLC的深入學(xué)習(xí)和研究,掌握PLC的運(yùn)行機(jī)制,通訊原理,以便更好地使用PLC,開(kāi)源PLC將以IEC61131-3國(guó)際標(biāo)準(zhǔn)為基礎(chǔ)。
開(kāi)源PLC的硬件系列為了滿(mǎn)足各種人群的需要,可能會(huì)提供以Cortex-M0、Cortex-M3、AVR、8051、PIC、MSP等系列芯片為核心的Demo板,供大家學(xué)習(xí)、研究。
圖2-12 是以Cortex-M0芯片的Demo板
圖2-13 是以AVR芯片的DEMO板
2.5硬件設(shè)計(jì)的三個(gè)方面:電路設(shè)計(jì)、電磁兼容設(shè)計(jì)、熱設(shè)計(jì)
有很多人認(rèn)為硬件設(shè)計(jì)比較容易,在PCB板上放上元件,再連線(xiàn),然后開(kāi)電源,哇!能跑起來(lái)了,成功!這就像電視《我愛(ài)發(fā)明》節(jié)目里講的,拿幾根鋼管焊?jìng)€(gè)支架,裝上4個(gè)輪子、發(fā)動(dòng)機(jī)、變速箱、方向盤(pán),就是車(chē)子了,還4輪驅(qū)動(dòng),爬坡、越野都行、翻車(chē)都不怕,只是不知道這能不能算汽車(chē),誰(shuí)敢用!
要成為一個(gè)合格的硬件工程師,衡量的標(biāo)準(zhǔn)是他設(shè)計(jì)出的產(chǎn)品要能通過(guò)國(guó)家或相關(guān)國(guó)際檢測(cè)機(jī)構(gòu)的認(rèn)證,而要做到這點(diǎn),除了理論知識(shí)(我在大學(xué)期間學(xué)過(guò)的課程就有:電工原理、數(shù)字電路、模擬電路、電磁場(chǎng)等不下10本書(shū))、還要有3~4年的實(shí)際設(shè)計(jì)經(jīng)驗(yàn),做過(guò)3~4個(gè)項(xiàng)目以上,才能把這些基本搞清楚,這算是很快的了。硬件工程師的經(jīng)驗(yàn)是靠錢(qián)堆出了的,沒(méi)有相應(yīng)的環(huán)境,自學(xué)硬件是很難的,硬件工程師(特別是模擬和高頻方面)的成才之路比較漫長(zhǎng),不像軟件學(xué)習(xí),有一臺(tái)電腦,基本上想學(xué)什么都可以了,成才相對(duì)較快。
2.6 電路設(shè)計(jì)
2.6.1 數(shù)字IO的處理
數(shù)字電路設(shè)計(jì)相對(duì)比較容易,因?yàn)閿?shù)字信號(hào)只有2個(gè)值:0和1,對(duì)于TTL電平,其容差至少1.1V以上,因此只要不存在嚴(yán)重錯(cuò)誤,系統(tǒng)很容易就能運(yùn)行起來(lái),給人的感覺(jué)是硬件很容易,但要把硬件做好也是不易的,能跑和跑得好,這里的差距就像拖拉機(jī)與奔馳。
數(shù)字電路設(shè)計(jì)涉及的方面很多,一般的設(shè)計(jì)要求對(duì)各種集成電路的特性有所了解,在十幾年前,我對(duì)74系列,編號(hào)600以下的集成電路非常熟悉,基本上是電路要實(shí)現(xiàn)什么功能可以聯(lián)想到要用哪個(gè)集成電路,后來(lái)用GAL,現(xiàn)在稍復(fù)雜一點(diǎn)的電路都用FPGA或CPLD了,在我的PLC中,用FPGA實(shí)現(xiàn)超高速(>10MHz)計(jì)數(shù)、擴(kuò)展總線(xiàn)等功能。
限于篇幅,本文只講PLC的輸入和輸出典型電路。
圖2-14
圖2-14是低有效的輸入光耦隔離電路,R26提供漏電流泄放通路,避免有些輸入電路的漏電流耦合到輸出端,C13和R29構(gòu)成阻容濾波電路,可以過(guò)濾一些干擾信號(hào),同時(shí)也導(dǎo)致響應(yīng)頻率降低,根據(jù)設(shè)計(jì)要求選擇C13的參數(shù)。R29為限流電阻,通常流過(guò)光耦的電流5mA~8mA比較合適,因此其阻值在2.7K~3.3K選擇,尺寸為2010型。
圖2-15
圖2-15 是場(chǎng)效應(yīng)管輸出電路和晶體管輸出電路,其有缺點(diǎn)在熱設(shè)計(jì)中細(xì)述。
2.6.2 高速I(mǎi)O的處理
速度達(dá)1MHz的光耦就算是高速的了,速度再要提高就得用新一代的磁耦了,其實(shí),最早的隔離器件就是磁耦,只是體積很大,工作頻率又低,被光耦替代了,現(xiàn)在變壓器都集成到芯片里去了,工作在2.4GHz,可隔離的信號(hào)最低的都達(dá)到1MHz,最高可達(dá)150MHz,又輪回了。
圖2-16
圖2-16 是FX2N-32MT中所用的磁耦隔離電路。
2.6.3 模擬信號(hào)的處理
1、模擬信號(hào)對(duì)于數(shù)字信號(hào)而言,屬于高精度的信號(hào)。舉例來(lái)說(shuō),對(duì)3.3V的模擬信號(hào)進(jìn)行8位AD轉(zhuǎn)換,則每分度的值是12.9mV,也就是說(shuō)每改變12.9mV,轉(zhuǎn)換結(jié)果就會(huì)有1個(gè)數(shù)的差別,若是進(jìn)行12位AD轉(zhuǎn)換,則每分度的值是0.8mV,也就是說(shuō)每改變0.8mV,轉(zhuǎn)換結(jié)果就會(huì)有1個(gè)數(shù)的差別。由于各種因素的影響,一般的8位AD轉(zhuǎn)換器,實(shí)際有效位只有6位左右,12位AD轉(zhuǎn)換器的實(shí)際有效位9位左右。對(duì)于工業(yè)控制來(lái)講,使用有效位只有9位的12位AD轉(zhuǎn)換器非常勉強(qiáng),在A(yíng)eonkon(英凱)系列PLC中,所有的AD轉(zhuǎn)換處理都采用隔離的24位的AD轉(zhuǎn)換器,實(shí)際有效位達(dá)19位,使用其16位或12位,非常穩(wěn)定可靠。
2、模擬信號(hào)一定要經(jīng)過(guò)隔離處理,大家對(duì)PLC的數(shù)字IO,輸入/輸出都要經(jīng)過(guò)隔離(光耦或磁耦)有共識(shí),數(shù)字IO這種2值信號(hào)都要隔離,模擬信號(hào)這種高精度的信號(hào)一定要經(jīng)過(guò)隔離才能使用,否則,測(cè)到的數(shù)值就像過(guò)山車(chē)似的,讓你心跳。
2.7 電磁兼容設(shè)計(jì)
電磁兼容設(shè)計(jì)涉及的內(nèi)容太多,這里不詳述,感興趣的網(wǎng)友可參考我在某上市公司任職時(shí)做的內(nèi)部培訓(xùn)課件。
2.8 熱設(shè)計(jì)
產(chǎn)品的熱設(shè)計(jì)也是很關(guān)鍵的,會(huì)影響長(zhǎng)期工作的穩(wěn)定性,限于篇幅,這里只列出幾個(gè)要點(diǎn):
1、 發(fā)熱器件盡可能放在TOP層,因?yàn)闊崾峭仙l(fā)的;
2、 發(fā)熱器件盡可能遠(yuǎn)離集成電路;
3、 電解電容也要盡可能遠(yuǎn)離發(fā)熱器件;
4、 器件的發(fā)熱功率>1W時(shí)要考慮加散熱片;
5、 對(duì)于下層發(fā)熱量較大的電路板(如電源板),上層應(yīng)在適當(dāng)?shù)奈恢瞄_(kāi)導(dǎo)熱孔;
6、 對(duì)于常規(guī)厚度的覆銅板,按導(dǎo)通電流1A/1mm的線(xiàn)寬設(shè)計(jì);
圖2-15 電路的熱計(jì)算,場(chǎng)效應(yīng)管的導(dǎo)通通常以導(dǎo)通電阻來(lái)衡量,大電流的管子導(dǎo)通電阻就小,有的60A的管子,導(dǎo)通電阻為10毫歐,通常10A左右的管子其導(dǎo)通電阻在100~200毫歐,因此若規(guī)定輸出電流為額定1A,則場(chǎng)效應(yīng)管的功耗在0.1W~0.2W之間。對(duì)晶體管而言,其CE極的飽和導(dǎo)通電壓為0.3V~0.5V,電流越大,飽和電壓越高,同樣是1A的電流,功耗則是0.3~0.5W,單個(gè)來(lái)說(shuō),問(wèn)題并不大,若是16個(gè)放在一塊就可觀(guān)了。理想的選擇是場(chǎng)效應(yīng)管,但場(chǎng)效應(yīng)管是電壓型的,需要DC-DC轉(zhuǎn)換器供電,成本很高。晶體管是電流型的可以用光耦提供的電流工作,成本較低。
硬件設(shè)計(jì)除了上述3方面外,還有安全規(guī)范設(shè)計(jì),這方面要有很多的圖來(lái)解釋說(shuō)明,這里就免了。