單片機工業控制板的應用
隨著單片機技術、計算機技術的發展,學習單片機的門檻正變得越來越低,越來越多的電子愛好者加入學習、使用單片機的行列。目前,所有針對電子愛好者的期刊、報紙無一不把單片機作為一個重頭戲,每期都有大量文章;本網站的單片機教材,已被下載十余萬次,愛好者學習單片機的熱情也可見一斑;網絡上各種廉價開發工具也是層出不窮。然而隨著學習不斷深入,一個問題卻開始逐漸顯現:很多人反映“我學習不少知識,書看了很多,實驗也做了不少,按說實踐經驗也不少,可為什么我總不敢接項目呢,到底要學到什么時候才能真正的實戰呢?”。
這樣的苦衷是那些“正規軍”體會不到,或者說是體會并不深刻的,但是作為一個自學者,作者卻完全能理解,因為當初自己也是這么非常艱難地一步一步走過來的。回想走過的路,除了自己不斷努力外,一些偶然因素也起了不小的作用,如果沒有這些偶然因素的存在,可能就中途退出了。
怎樣才能減少一個人成長過程中偶然因素的作用,幫助盡可能多的愛好者再跨上一步,從學習者轉變為開發者呢?還是讓我們來分析一下開發者究竟需要什么樣的條件吧!除了要熟悉必要的單片機知識以外,還需要對所開發對象的了解,知道自己要做的是什么東西,由于愛好者本身就工作于生產第一線,開始時也不可能去接自己不熟悉的活來干,因此,對于專業開發者來說比較困難的問題在這里并不突出;需要對市場的熟悉,知道所需要用的器件可以在什么地方可以買到,這一點通過多跑市場,當然也并不難做到;當然還有其他的一些條件,仔細分析都是可以做到的,但作為一個開發者至少還需要一樣東西:信心,包括自己的信心和別人對你的信心,信心不能從學習得到,做項目不是考試,你能把單片機書上的題全做對也沒用,把所有的單片機書都倒背如流也沒用。唯一的方法就是:做,而且成功。不管是自己的信心還是別人對你的信心,就像是儲蓄罐里的錢,每一次成功都是向里加錢,而每一次失敗都是從里面取錢。于是愛好者就面臨著一個兩難的選擇:當儲蓄罐還是零的時候,做,不一定能成功,萬一做砸了,就透支了,不做,永遠也不能增加。
如何來解決這個問題?作為過來人,我們能不能為愛好者找到一條途徑,讓他們一定成功,不會失敗呢?至少第一次不要失敗!這是一個非常美好的愿望,可惜答案卻是殘酷的:我們做不到!可是,真的就一點辦法也沒有了嗎?就只能聽之任之嗎?我認為,雖然我們不能保證每一個學習者都能一定成功,但的確可以做一些事,增加成功的概率。
從技術的角度來看,單片機開發無非分成軟件、硬件兩部分,如果設法解決掉其中的一部分,留下的另一部分當然就容易了。從一些廣告中不難發現端倪,有一些廠商在仿真機、編程器之后力推開發板,其目的就是要讓開發者在開發過程中盡量少做硬件的工作,甚至不需要做硬件開發工作。這些板通常力求全面,功能很多,設計者意圖很明確:我把所有的功能都做上,你要用哪塊就用哪塊吧,價格貴點也沒關系,反正做個項目也不再乎多那幾個錢的。不能說這種想法不對,但是對初學者來說并不適宜,很多人并不富裕,花個大價錢卻只用到整個板的幾分之一甚至十幾分之一的功能,怎么都覺得心痛!與成熟的開發者不同,很多愛好者的第一個項目根本賺不到錢,甚至是自己貼錢在做。另外還有很重要的一點,如此強大功能的板子,目標性反而變得不明確,什么地方都可以用,從另一個角度來說也是什么地方也不能用。就像一個小孩子,你給他一萬塊錢可能還不如給他一塊錢更有價值。
那么,究竟什么是簡單的,可行的呢?
我們認為,工業控制是大有可為的領域之一。去各種各樣的工業現場看一看,幾乎沒有什么地方看不到工業自動化控制的設備。在這些設備中,往往大量應用PLC,從編程的角度來看,這些PLC所要完成的功能非常簡單,如果用單片機來實現其功能,那是輕而易舉的。如果一定要做一個明確的說明的話,可以這么說:可能只要幾十個字節的程序量就能完成那些PLC所要完成的功能。如果你了解這臺機器的工作流程或者你就是這樣一臺機器的操作者,又略懂一些單片機,那么這樣的程序完全可以寫出來。可是,那里沒有用到單片機,而是用的PLC,為什么呢?關鍵在于可靠性!工業現場的苛刻要求,不要說是初學者,就是富有經驗的開發者,往往也覺得頭痛。一臺設備數十萬或更貴,設計者當然不愿意承擔風險去用單片機控制板,而是寧愿先用貴一些的PLC。但PLC畢竟是昂貴的,如果有把握用單片機控制板來替代,肯定會有市場,關鍵在于你要有把握。可是把握從何而來?
單片機工業控制板就是為這樣的應用而度身定做的。作者長期以來一直在做著工業控制方式的工作,在工作中我們發現,工業現場很難發現有國產單片機設備的蹤影,尤其是介入控制部分的,幾乎都是國外的產品一統天下。我們在做東西的過程中,也是酸甜苦辣各種滋味都嘗到,摸爬滾打,滿身傷痕,經過一段時間的摸索,逐漸掌握了一些規律,在解決工業現場干擾嚴重、單片機系統工作不可靠的問題上有了一些經驗,所做的一些產品、系統都能可靠地運行于各種工業應用現場。我們認為,要能夠做好工控產品,關鍵是對控制對象的理解,指望有什么技術可以一勞永逸解決所有問題是不現實的,也是開發者不成熟的標志。舉例來說,如果你設計一臺測重儀器,那么你事先一定要知道這臺儀器的測量范圍是多少,測量精度有多高,連續測量的速度有什么要求等等,如果在做儀器之前的想法是:范圍越大越好,精度越高越好,速度越快越好。那么可以說你這臺儀器一定做不成功!除了你拿它來評獎有用之外,不會有實用價值,更不會有商業價值。這一點并不難理解,同樣,工業品的抗干擾處理也是如此,如果你說:抗干擾能力越強越好,什么樣的干擾都能抗最好。那意味著你對所要控制的對象,即將面對的干擾源認識還不足,你很難做好項目,或者要為此付出極大的代價。但是,要對所遇到的干擾源有充分的認識,談何容易!這個東西看不到摸不著,很難抓住,至于各種報刊、雜志甚至專業書籍上的說法,也都言之不詳,泛泛而談,未涉及到深入的原因,所建議采取的措施往往難以有效實施。舉例來說,很多書上要求電源一定要好,但怎么個好法呢?都不詳說,或者是要求采用所謂的凈化電源供電,根本不現實。一臺儀器總共才能賣到200~300元,卻要為它配個凈化電源,頭重腳輕了。又如,印板設計很重要,一定要設計好,可是究竟如何才算好,卻不再多談,只是羅列一些注意事項,當這些注意事項不能完全被滿足時,究竟按什么要求取舍,不得而知。當然,能否看得懂這些設計原則還和各人的基礎知識有關,和各人的經歷有關。
在我們的工作中,我們掌握了一些規律,希望能幫助愛好者進入這一領域,為此,我們借助“平臺”這一概念,用我們掌握的知識,為大家搭建一個小小的平臺,一個硬件平臺,一個硬件抗干擾能力過關的平臺。借助于這個平臺,愛好者可以充分發揮你的聰明才智,將它應用到你的工作中去,為你的工作服務。和其他同類品相比,該平臺主要有這樣的一些特點:
1. 定位準確 應用目標鎖定在工業控制,需要的人就去用,不需要的人不必為此花錢,便于愛好者選擇。
2. 經過實踐檢驗 不僅所采用的是經過實踐檢驗的成熟技術,而且所面向的是經實踐檢驗的有前途的行業,這一點很重要;
3. 開發簡單 所做的就是開關量控制,不涉及模擬量,不用到復雜的測量、顯示等技術,只提供一個顯示模塊作為選用件,為使用者限制了應用范圍。開關量控制的編程相對比較簡單,但是其應用范圍卻極廣,如果能把這一塊做好,就能找到發揮自己能力的舞臺。
我們認為,單片機用于工業設備控制的條件已成熟,具體有這樣的一些表現:
1. 單片機開發工具日益成熟
目前,手提電腦的價格已日漸平民化,二手手提電腦的價格更低,因此,將手提電腦帶到工業現場已不再是奢望。優秀的單片機開發軟件如Keil的出現使得 “軟件仿真+寫片驗證”成為一種重要的開發方式。
2.單片機的新特性也為其工業現場應用創造了條件
目前,單片機的品種不斷增加,新的單片機加入了很多新特性,如內部RAM、Flash Rom的增加等,為高級語言的普遍使用創造了條件;幾乎都有ISP(在線編程)的功能,便于采用“軟件仿真+寫片驗證”的開發方式,一條下載線即可解決問題;采用SST系列單片機更可實現在板仿真功能。
3. 一線工人素質不斷提高
很多一線工人有中職、中專、大專甚至本科學歷,計算機的操作不成問題,有一些在學校中就學過一至二門的高級語言,甚至就學過C語言,因此,在掌握單片機的初步知識后,學習C語言編程不成為障礙。
4.實時操作系統的普及也使得單片機開發更容易
近年來,實時操作系統(RTOS)逐漸普及,加之單片機硬件價格的下降,使用操作系統編程不再是夢想。由于操作系統由計算機專家編寫,并經市場驗證,因此,
其性能是完全可以得到保證的,借助于操作系統編程,可使程序更易寫,并能得到更高的可靠性。以下舉一個例子,看一看使用操作系統編程是如何的方便。
例如:某電路P1口接有8個LED,要求P1.0所接LED每秒亮、滅各1次,P1.1所接LED每秒亮、滅5次。
用Keil所帶的Rtx51Tiny操作系統編程,非常簡單,源程序如下:
#include <rtx51tny.h> //使用rtx51必須加上該頭文件
#include "reg52.h"
sbit P1_0=P1^0;
sbit P1_1=P1^1;
//以上第一部份,變量定義
job0 () _task_ 0 {
os_create_task (1); /* 創建任務 1 */
os_create_task (2); /* 創建任務2 */
os_delete_task (0);/*刪除任務0 */
}
job1 () _task_ 1 { //任務1
while (1) {
P1_0=!P1_0;
os_wait (K_TMO, 50, 0);
}
}
job2 () _task_ 2 {
while (1) { /* endless loop */
P1_1=!P1_1;
os_wait (K_TMO, 20, 0);
}}
會使用C語言編程或匯編語言的人不妨按要求自己編一個程序試一試,一定能體會出使用操作系統帶來的方便。
雖然我們提供給大家的是一個經過驗證的平臺,但是現場情況非常復雜,誰也不能保證一板打天下,有了一塊板,什么問題都可以解決。我們只能確保:這塊板經過實踐驗證,完全可以在工業現場應用。而對于每一個具體開發者而言,要能把事做好,還必須注意現場布線等問題,所以作為初學者來說,這塊板可以稱之為:練習板,你需要做的不是馬上用它去做項目,而是將其為練習,試著解決你自己或別人所遇到的一些問題,做一些測試,看一看能不能行,如果不行,要找原因,由于你已經可以排除板的因素,因此可以集中精力查找其他原因。當然,如果你是成熟的開發者,完全可以直接用這塊板做產品開發,或用于技術革新,替代原有設備中部件。
注意:這里所謂的練習,不是讓你練習編程,用這塊板來練習編程,學習單片機,太浪費,也不合用,這是要讓你用這塊板去試著解決實際工作中遇到的問題,只是不要急著和別人簽定合同去做。警告:本控制板不得用于生命保障系統,不得應用于本機非正常工作后將產生重大的人生、設備事故的場合,如果使用者將本系列控制板應用在這些場合而產生重大事故,將會由您自行承擔責任。
以下是一些工業現場抗干擾技術的有益提示:
(1) 該板的供電線路必須處理好。要求本板的供電線路與產生干擾的用電設備分開供電,通常干擾源為各類大功率的設備,如大電機、電焊機及電弧爐等,它們
的供電均取自動力線路。本板供電可取自照明線路,在現場布線時須注意。
(2) 布線時,本板的供電線路與輸出線路盡量遠離,分別從兩邊走線,更不要交叉或平行。尤其注意本板的供電線路不要和本板負載從同一插座取電。
(3) 條件允許的話,加入低通濾波器和隔離變壓器接入電網,并將隔離變壓器的屏蔽層接入性能良的大地。
(4) 本板上方有接地端,如果能夠在現場能得到性能良好的大地,可將此端接入,否則此端可懸空。
(5) 輸入時采用軟件濾波技術。
(6) 如果本板帶接觸器,盡量選用220V的品種,并注意選用干擾較小的新型號,并在線圈兩端并聯阻容吸收器。如帶其他感性負載,可按同樣原則進行處理。
我們認為,如果一個人一直在用自己的工資或其他收入學、玩單片機,卻不能從中獲利,那么這種執著的精神雖可貴,卻不是長久之計,不值得宣揚和推廣,只有形成良性循環,能夠用做單片機項目賺來的錢玩單片機,才能玩得長,當然,如果除此之外還能獲利、成名,那是最好的。而在技術上要有所成就,沒有“速成”,尤其對于廣大的自學者來說更是如此,只有慢慢積累,積小勝為大勝,才有可能走向成功。
多年前,我們聽說喬布斯和他的伙伴在車庫里開發成功史上第一臺個人電腦-蘋果機時,我們不知道車庫為何物,更不明白這種工作方式,但是,二十多年過去后,中國目前也出現了這樣的開發和生產模式,而目前歐洲、美國的很多工業品都是很小的公司(也許就一、兩個人)做的,每家公司只做一樣,但是在行業里做得最好。我們相信,中國在這個領域落后美國、歐洲10~20年,也就是,10~20年后中國也將是同樣的情形,但愿到那一天在那支隊伍中有你、我。
文章版權歸西部工控xbgk所有,未經許可不得轉載。