基於AT89C55單片機的PLC研究

2021-01-11 電子產品世界

隨著高職教育的迅速發展,將PLC技術引進高職教學並作為一門較為重要的課程,在高職教育中已達成共識,是課程建設現代化的重要措施。本文在研究 AT89C55單片機後,以該單片機為核心設計了一個綜合PLC系統,集成了多路開關量I/O及模擬量輸入,並可以通過RS232/RS485與上位機進行通訊,已經作為若干高校的實驗設備使用,並且,在要求較高的工程項目中也得到了具體的應用。

1 PLC的硬體功能設計

該PLC的設計思想基於三菱PLC的操作語言,仿照三菱編程器的操作,利用AT89C55單片機作為主控晶片,輔以其它晶片完成相關功能,其邏輯圖見圖1所示。為了達到教學目的,在設計思路上和常規的PLC有幾個不同點:一是為了使學生更多地接觸不同的輸出方式並進行相關的實驗,設計了兩種輸出形式,即8路繼電器輸出和4路電晶體輸出,而且,繼電器輸出的端子中有四路沒有公共端子,三個端子完全引出,由學生自由組合,可擴大控制範圍;二是在輸入上,除了16路開關量輸入外,還設計了2路模擬量輸入和高速開關量計數器輸入;三是原始碼開放,工科院校自控和計算機專業都開設單片機課程,由於條件所限,學生將實踐和學習相結合的機會並不多,鑑於這種情況,將原始碼開放,學生可以學習、補充、修改程序,既完善了PLC程序,又鍛鍊了教師和學生。

在大部分PLC中,例如,三菱[1]、歐姆龍和西門子等,上述功能一般由獨立的模塊來實現。這裡將各種功能集成到一個PLC 模塊中,可以降低實驗設備的成本。在圖1中,為增加學生對輸出模塊的認識,可控矽模塊可以和繼電器模塊互換,結構只是一個可控矽光耦(例如 MOC3023)驅動一個雙向可控矽(例如BTA10-600)。

IC卡的目的是當學生使用編程器編程時,用來記錄學生的程序,有利於程序的修改和調試以及教師評分,用於實際工程項目中的PLC省略此功能。串行通信接口支持RS232和RS485兩種標準,撥碼開關給出本機地址,使用RS485接口組成監控網絡時使用。


2 單片機語言的選擇及系統軟體設計

一般說來,現在通用的單片機程式語言有彙編語言和C語言,C語言編程方便、易讀,但需要佔用較多的內存,從而導致執行速度變慢。PLC是以循環掃描程序行的方式來工作的,對實時性要求較高,一個掃描周期一般不大於20ms,這樣,當程序較長時,速度就顯得尤為重要了。因此,選擇彙編語言作為PLC的系統設計語言。

由於PLC語言是面向用戶的,可以支持的語言並不是單片機可識別的,而且要求可以由用戶修改並下載到單片機的程序存儲器中,因此需要一個解碼模塊,在執行中把每一行用戶程序翻譯成機器可識別的子程序或過程。具體實現的方法為:

用戶程序4個字節為一幀:「XX XX XX XX」,其中第一字節為命令,例如,OR、 MOV、OUT等;第二字節為執行元件,例如,繼電器、輸入等;第三、四字節為相關數據,這與不同的命令內容相關,例如,「01 10 00 03」定義為「LD Y 03」,「00 XX XX XX」定義為「NOP」等。但是,數據區不足以表達數據,可以有後續數據,也是4位元組為一幀,以FE為第一字節,例如,「FE XX XX XX」,這樣,就將命令幀和數據幀區分了。用戶程序下載到 EEROM(FM25640),由主程序依序讀出,再交解碼模塊翻譯後執行。

程序中較難實現的是繼電器的上升沿或下降沿檢測。在PLC語言中許多情況是要檢測上升沿或下降沿的,有近千個繼電器,在每個循環中對所有的繼電器都進行檢測記錄,無論時間或記錄位置(寄存器)都是難以實現的,故開闢了一個存儲區,專門記錄激活了(即使用中)的繼電器狀態,在程序運行前,先對繼電器掃描,把激活的繼電器依序登錄,當程序運行到該繼電器時就對該繼電器進行當前狀態同前一周期狀態比較登記,當前一次狀態與當前狀態相反時便認為是上升沿(或下降沿)到達。

3 開關量I/O的軟硬體設計

開關量I/O是PLC的重要內容,一般來說,為了提高抗幹擾能力,輸入與MCU之間是通過光耦隔離的,考慮到成本和儘量減少接口的佔用,採用16選1模擬開關CD4067(U8),4條地址線用4個光耦521-1(U10-13)隔離。

由於受光耦響應速度和掃描周期的限制,不允許使用每個周期依序查詢的辦法,故在程序中設計了一毫秒定時(2)中斷,每毫秒查詢一個接口,同時將接口狀態映射到BIT 30H-3FH,因此,只需要對BIT30H-3FH查詢,便可知道接口狀態。中斷程序如下:

ORG 2BH

LJMPINPUT ;每毫秒中斷一次

INPUT:PUSH PSW

PUSH ACC

PUSH DPL

PUSH DPH

MOV C, P1.4

MOV A, 25H

MOV DPTR, #INPUT1

RL A

RL A

JMP @A+DPTR

INPUT1: MOV 30H, C

SJMP INPUT2

MOV 31H, C

SJMP INPUT2

MOV 32H, C

SJMP INPUT2

MOV 33H, C

SJMP INPUT2

MOV 34H, C

SJMP INPUT2

MOV 35H, C

SJMP INPUT2

MOV 36H, C

SJMP INPUT2

MOV 37H, C

SJMP INPUT2

MOV 38H, C

SJMP INPUT2

MOV 39H, C

SJMP INPUT2

MOV 3AH, C

SJMP INPUT2

MOV 3BH, C

SJMP INPUT2

MOV 3CH, C

SJMP INPUT2

MOV 3DH, C

SJMP INPUT2

MOV 3EH, C

SJMP INPUT2

MOV 3FH, C

INPUT2: INC 25H

ANL 25H, #0FH

ANL P1, #0F0H

MOV A, 25H

ORL P1, A

POP DPH

POP DPL

POP ACC

POP PSW

RETI

首先保護PSW、ACC和DPTR,讀入當前輸入P1.4至C寄存器。25H是CD4067的地址映像,指向當前輸入地址,將當前地址乘以4(跳轉地址佔4個字節),跳轉到相應位置得到輸入映像,指向下一個輸入地址,然後,恢復被保護的寄存器,返回。程序代碼長度為103個字節,執行所佔用的時間為 0.018毫秒,完全滿足PLC的實時性要求。

輸出分為兩部分,8個繼電器輸出和4個電晶體輸出,由於單片機上電時埠被置位,為了防止出現上電時誤導通,故而選用PNP管8550作為繼電器的驅動管,使得上電時電晶體處於截止狀態。在軟體上只要對相應埠復位,繼電器動作。

4 PLC的測試與應用

利用文獻[2]中的通用多功能計算機監控系統測試軟體,在攝氏40℃以上的環境中對PLC進行測試,採用CRC校驗,每4秒發送一個數據包,連續測試48小時,PLC都能夠成功識別數據包,並返回正確的結果,完全能夠滿足實際的工程要求。

內蒙第一機械製造集團公司是國有特大型企業,生產軍用裝備。該公司的液壓件打壓試驗臺,就是採用該PLC進行監控的。全部試驗過程通過PLC、數據採集卡、工控機等進行控制。試驗過程及結果通過計算機顯示屏隨時監控,並通過印表機列印輸出試驗數據。

在北方奔馳重型車輛製造有限公司的發動機轉速測量中,也使用了該PLC。這兩個監控系統目前運行可靠。該PLC還批量投入實驗室使用,在高級技工考試中也得到了成功的應用。

本文作者創新點

本文利用AT89C55單片機實現了工業和教學使用的PLC系統,系統穩定可靠,並用於實際的工業控制系統和教學設備中,對於替代昂貴的進口PLC和節省教育經費具有重要意義。

作者簡介:王建明(1957-),男(漢族),內蒙古包頭人,包頭職業技術學院副院長,副教授,主要從事計算機監控技術的開發研究。E-mail: wjm7591@yahoo.com.cn

Biography: Wang Jianming, male, the Han nationality, born in 1957, deputy headmaster and associate professor of Baotou Vocational Technical College. His main research field is the development of computer monitor system. E-mail: wjm7591@yahoo.com.cn

參考文獻

[1] 沈世斌. 三菱PLC 與PC 機間的通訊應用[J], 微計算機信息, 2006,22(4-1):81-83.

[2] 王建明. 智能設備的通用測試.工業控制計算機, 2002, 15(12):10-12.

相關焦點

  • 基於MPI協議的S7-300 PLC與單片機通信的實現
    介紹了基於MPI協議的西門子S7-300 PLC與單片機實現數據通信的應用實例及其主要設置。西門子S7-300 PLC因其功能強、速度快、擴展靈活,在工業控制領域中佔有重要地位。MPI網絡是西門子工業控制系統中經常用到的一種通信方式,其使用RS485物理接口進行數據傳輸。目前,S7-300 PLC與PC的通信是通過專用接口卡5611卡和MPI電纜實現的。
  • 基於MSP430單片機編程器的設計
    1.引言 單片機開發與應用已滲入我們生活中各個方面,其中一個應用就是對內存較小的晶片大批量燒錄,就有了性能穩定的高速編程器誕生以滿足各大廠商實現大量晶片燒錄的目標。目前市場上運用最廣泛的編程器是基於89C51的,但其功能過於單一,不能滿足日益發展的市場需求。
  • 基於單片機的自動貓廁所設計(任務書)
    江蘇理工學院 2019屆畢業設計(論文)任務書學 院 電氣信息工程學院題 目 基於單片機的自動貓廁所設計 主要內容及基本要求 主要內容:基於單片機,設計一個自動開關門具有自動清理貓排廢物的簡易貓廁所。
  • 基於單片機旋轉時鐘的設計
    摘要:目前,社會、家庭普遍使用的是機械錶盤時鐘,而一款打破傳統的電子旋轉時鐘如果推出就能夠以其新穎的創意來吸引人們,於是文章就研究並設計了一個基於單片機的電子旋轉時鐘。文章基於單片機設計了一款跟傳統機械時鐘一樣具有秒針、分針、時針和錶盤刻度的旋轉時鐘,並且具有準確顯示即時時間和校準時間功能,且均可由紅外遙控器方便完成。
  • 電工必學:PLC與單片機的本質區別是什麼?
    PLC與單片機的本質區別是什麼? PLC與單片機的差別是: 1、PLC是應用單片機構成的比較成熟的控制系統,是已經調試成熟穩定的單片機應用系統的產品。有較強的通用性。
  • 8051單片機簡史:深度認識8051單片機的來龍去脈
    8051單片機具有許多功能,例如:串行通信、定時器、中斷等,因此許多學生和初學者都開始使用8051單片機來研究單片機的概念(儘管隨著Arduino的引入,這種趨勢似乎有了一些改變)。即使8051單片機可能看起來有些過時,我們仍認為它是開始學習單片機、嵌入式系統和編程(包括C和彙編語言)的最佳平臺之一。
  • 基於單片機設計的音樂馬桶
    這次程序倒是不難,也才用了51單片機的兩個I/O口,不過方案思路卻是推倒老師自立的。假如以後回看有什麼問題,加以反思。若是行得通,那就最好。因為是從WORD複製而來,格式什麼的比較花時間,插圖錯誤也要以後慢慢改。
  • 基於MSP430系列單片機快速開發紅外體溫檢測儀原型機
    基於MSP430系列單片機快速開發紅外體溫檢測儀原型機 wenwei 發表於 2020-04-03 16:13:14 MSP430系列單片機是德州儀器(TI)公司1996
  • 基於P89V51單片機和CD4051晶片實現4路智能溫控儀產品樣機的設計
    打開APP 基於P89V51單片機和CD4051晶片實現4路智能溫控儀產品樣機的設計 張愛民,林輝 發表於 2020-12-23 10:00:44
  • 51,AVR,PIC,MSP430,STM32單片機比較
    缺點:解密容易(傳統51說:誰讓咱出道早呢,大家都研究我,哎!哭......)一般功能也有,, 但AD、eeprom等功能要靠擴展,增加硬體和軟體負擔。IDE環境推薦 keil。編程器自己自製ISP下載線就行,好做,成本5元左右。
  • 基於CC2420晶片和ARM單片機實現智能交通系統的設計
    基於CC2420晶片和ARM單片機實現智能交通系統的設計 黃武陵,艾雲峰 發表於 2020-12-22 09:59:25 智能交通系統(ITS)應用在城市交通中主要體現在微觀的交通信息採集
  • 基於單片機的軸類零件溫度測量系統設計
    本文給出一種對軸類零件的溫度進行較準確測量的系統組成,系統由單片機80C552為控制核心,簡單可靠,精度高。同時能計算出在不同溫度下軸的熱變形量。  二、 傳感器組成及接口電路  1.傳感器組成  傳感器採用Pt溫度傳感器,如圖1所示。
  • 基於PLC控制的套件分揀計數法研究
    *基金項目 :2017年安徽省高校優秀青年人才支持計劃項目(gxyq2017175),2016年省級質量工程項目大規模在線開放課程(2016mooc038、2016mooc035);2016年校級品牌課程(2016yjppkc30); 2017年安徽省自然科學基金研究項目(KJ2017B002)2015教育部創新發展行動計劃(XM-07-S34);2019年校級品牌課程(2019yjppkc05
  • 從一個新手電工要學會電工PLC需要什麼知識
    嗯,看了你深有同感啊,我也是從那個階段過來的,學會電工PLC是一回事,學精又是一回事,只要你肯用心學會只需一星期,學精某一品牌的plc僅需半年,我來說一下我的經驗吧,首先必須會畫會接以下繼電器接觸器控制線路:1.三相異步電機直接啟動線路2.定子串電阻降壓啟動線路3.星三角啟動線路4.正反轉控制線路,
  • 89C51單片機怎麼樣?89C51單片機過時了嗎
    打開APP 89C51單片機怎麼樣?89C51單片機過時了嗎 電工之家 發表於 2020-02-12 14:34:17   89C51單片機是一款8位單片機,最常用的是艾特梅爾產的AT89C51,我在上學時是用的最多的一款單片機晶片
  • dcs系統和plc系統區別 dcs和plc控制系統什麼意思
    dcs系統和plc系統到底是什麼意思呢?它們的全稱是什麼呢?想要了解dcs系統和plc系統是什麼,這之間又有什麼區別的朋友,快來跟著小編一起看看下面這篇文章吧!  dcs系統和plc系統區別  dcs系統和plc系統區別:DCS的全稱是分散控制系統,PLC的全稱是可編程邏輯控制器;DCS更側重於過程控制領域,PLC
  • 基於視覺暫留的動態掃描LED旋轉屏
    摘要:為了研究並控制基於視覺暫留的發光二極體旋轉顯示屏,在系統仿真研究的基礎上,設計並改善了紅外驅動電路、磁電傳感器電路以及單片機控制系統,在Keil-彙編語言環境下編寫了單片機控制程序,製作出PCB電路板並進行了軟硬體調試。
  • 同是PLC中國的與外國的有何不同
    西門子的PLC抗幹擾能力強,可靠性高西門子公司生產的plc業界算知名度最高的品牌之一。因為西門子一直在工業科技領域佔領了一定的地位,所有旗下生產的產品,相對來說都是值得信賴的。西門子的plc在我國的應用也相當廣泛,在冶金、化工、印刷生產線等領域都有應用。
  • 51單片機 stc-B板學習——八位數碼管動態顯示
    51單片機+1602+DS18B20的溫度報警程序 51單片機做的溫度顯示,溫度顯示在然後按鍵可以調整溫度閾值,溫度高於或低於所設溫度,蜂鳴器就會響……單片機源程序如下:/***************************************************************************************                              基於單片機的實時溫度報警系統設計        &nbsp
  • 基於瑞薩R7F0C002單片機的JJY數字電波鐘設計(上)
    2 系統構建  基於日本低頻時碼授時信號 JJY 的數字電波鐘設計,以瑞薩 16 位單片機R7F0C002 為處理核心,以 CME6005 專用 IC 為主要接收晶片,通過軟體算法