注:1.這篇文章斷斷續續寫了很久,畫圖技術也不精,難免錯漏,大家湊合看.有問題可以留言. 2.論壇排版把我的代碼縮進全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調制波,通過調整輸出信號占空比,從而達到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環可以看出,完成一個PWM 周期,共循環255 次。 假設bright=100 時候,在第0~100 次循環中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環是高電平,155 次循環是低電平。 如果忽略指令執行時間的話,這次的PWM 波形占空比為100/255,如果調整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設置了每次for 循環之后,將bright 加一,并且當bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風格完全不同。不過對于驅動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數字IO 口變成PWM 引腳。 當一片Arduino 要同時控制多個PWM,并且沒有其他重任務的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設置 int StartPWMPin = 0, EndPWMPin = 13; //設置D0~D13為PWM 引腳 int PWMResolution = 255; //設置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環是為14盞燈做漸亮的。每次Arduino loop()循環, //brights 自增一次。直到brights=255時候,將brights 置零重新計數。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\ 所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。
上傳時間: 2013-10-08
上傳用戶:dingdingcandy
OMRON PLC解密軟件(無需注冊)
上傳時間: 2013-10-13
上傳用戶:CSUSheep
OMRON PLC解密軟件(無需注冊)
上傳時間: 2013-11-05
上傳用戶:aysyzxzm
摘要: 隨著微電子技術和計算機技術的迅速發展,PLC(即可編程控制器)在工業控制領域內得到十分廣泛地應用。PLC是一種基于數字計算機技術、專為在工業環境下應用而設計的電子控制裝置,它采用可編程序的存儲器,用來存儲用戶指令,通過數字或模擬的輸入/輸出,完成一系列邏輯、順序、定時、記數、運算等確定的功能,來控制各種類型的機電一體化設備和生產過程。本文介紹了利用可編程控制器編寫的一個五層電梯的控制系統,檢驗電梯PLC控制系統的運行情況。實踐證明,PLC可遍程控制器和MCGS組態軟件結合有利于PLC控制系統的設計、檢測,具有良好的應用價值。 電梯是隨著高層建筑的興建而發展起來的一種垂直運輸工具。多層廠房和多層倉庫需要有貨梯;高層住宅需要有住宅梯;百貨大樓和賓館需要有客梯,自動扶梯等。在現代社會,電梯已像汽車、輪船一樣,成為人類不可缺少的交通運輸工具。據統計,美國每天乘電梯的人次多于乘載其它交通工具的人數。當今世界,電梯的使用量已成為衡量現代化程度的標志之一。追溯電梯這種升降設備的歷史,據說它起源于公元前236年的古希臘。當時有個叫阿基米德的人設計出--人力驅動的卷筒式卷揚機。1858年以蒸汽機為動力的客梯,在美國出現,繼而有在英國出現水壓梯。1889年美國的奧梯斯電梯公司首先使用電動機作為電梯動力,這才出現名副其實的電梯,并使電梯趨于實用化。1900年還出現了第一臺自動扶梯。1949年出現了群控電梯,首批4~6臺群控電梯在紐約的聯合國大廈被使用。1955年出現了小型計算機(真空管)控制電梯。1962年美國出現了速度達8米/秒的超高速電梯。1963年一些先進工業國只成了無觸點半導體邏輯控制電梯。1967年可控硅應用于電梯,使電梯的拖動系統筒化,性能提高。1971年集成電路被應用于電梯。第二年又出現了數控電梯。1976年微處理機開始用于電梯,使電梯的電氣控制進入了一個新的發展時期。 1電梯簡介 1.1電梯的基本分類 1.1.1按用途分類 ⑴ 乘客電梯:為運送乘客而設計的電梯。主用與賓館,飯店,辦公樓,大型商店等客流量大的場合。這類電梯為了提高運送效率,其運行速度比較快,自動化程度比較高。轎廂的尺寸和結構形式多為寬度大于深度,使乘客能暢通地進出。而且安全設施齊全,裝潢美觀。
上傳時間: 2013-10-16
上傳用戶:lili123
針對目前PLC實踐教學中存在的問題, 如設備投入不足、學生學習興趣不高等, 提出將MCGS組態軟件與PLC控制技術相結合來設計監控系統,并以混料簡易控制為例,講解組態控制系統的構造過程。實踐證明,該上位機監控系統可以模擬現場自動設備系統的工藝流程,可以與PLC實施信息交互,可以實時監控PLC工作。此改革既可緩解高校PLC實踐教學設備投入不足的困難,又可提高學生的學習興趣,培養學生PLC控制系統的綜合開發能力。
上傳時間: 2013-10-08
上傳用戶:小鵬
本文提出了利用PLC控制球面軸承外滾道超精機實現自動磨削功能的見解和方法,給出了控制系統方案及軟、硬件結構的設計思想,對于工業實現相關機床的改造具有較高的應用與參考價值。1 引言以往深溝球面內外套精磨床是采用繼電器進行控制的,控制部分體積龐大,響應時間長,且可靠性不高,經常出現故障,磨床磨削工件的功能單一,有的磨床只能進粗磨,有的磨床只能進行精磨。完成一個成品工件加工,先在粗磨磨床進行粗磨,然后再將其送到精磨磨機進行精磨。基于這種情況,我們采用可編程序控制器對其控制電路進行了技術改造,將兩臺磨床的功能集中到一臺磨床上實現,即粗磨、精磨一次完成。這樣不僅可以減小控制部分體積、增強系統的可靠性,而且提高了系統的利用率,降低了成本,在實際應用中取得了很好的效果,對于工業企業實現相關機床的改造具有較高的應用與參考價值。
上傳時間: 2013-12-11
上傳用戶:huyahui
可編程控制器在工業自動化控制上得到越來越廣泛的應用。鉆井平臺上時應急發電機的自啟動控制要求很高,PLC正好可以滿足要求,當正常供電出現故障時,應急機組能在45秒內啟動,自動升速、自動合閘,向應急負載供電,進免事故的發生。根據設計要求和輸入輸出的分配,系統選用小型的5200可編程序控制器加上外圍執行繼電器構成,其最大特點是可以根據實際需要隨時修改程序,提高系統適用性。〔關 鍵 詞 」PLC;應急發電機;應急電網;自啟動;梯形圖;PLC編程
上傳時間: 2013-11-03
上傳用戶:磊子226
S7-300/400 的基本結構S7-300/400 屬于模塊式PLC,主要由機架、CPU 模塊、信號模塊、功能模塊、接口模塊、通信處理器、電源模塊和編程設備組成
上傳時間: 2013-10-25
上傳用戶:siying
本文詳述了空間矢量SV PWM 的算法, 并提出用FPGA 實現SV PWM 的方法, 最后分析了使用FP2GA 的優點
上傳時間: 2014-09-02
上傳用戶:wyc199288
教學提示: PLC的控制系統是由PLC作為控制器來構成的電氣控制系統。PLC的控制系統設計就是設計根據控制對象的控制要求制定電控方案,選擇 PLC機型,進行PLC的外圍電氣電路設計以及PLC程序的設計、調試。要完成好PLC控制系統的設計任務,除掌握必要的電氣設計基礎知識外,還必須經過反復實踐,深入生產現場,將不斷積累的經驗應用到設計中來 教學要求:通過本章教學使學生初步掌握PLC控制系統設計的幾種常用方法和步驟,能夠根據控制對象的控制要求制定合理的控制方案,確定經濟合理的PLC機型,進行PLC的外圍電路和程序的設計 7.1 PLC控制系統設計原則和步驟7.1.1 PLC控制系統設計的一般原則7.1.2 PLC控制系統設計步驟7.2 PLC控制系統的硬件設計7.2.1 I/O點數的簡化與擴展7.2.2 PLC的選型及模塊選型7.2.3 PLC的外圍電路設計7.3 PLC控制系統的軟件設計7.3.2 繼電器接觸器控制線路轉換設計法7.3.3 邏輯設計方法7.4 PLC的控制系統設計實例
上傳時間: 2013-10-08
上傳用戶:旗魚旗魚