1.引言
瀝青混凝土攤鋪機是用于鋪筑瀝青混凝土路面的機械,是路面機械的主要機種之一。攤鋪機中自動找平系統的控制精度反映到路面即是該攤鋪機的攤鋪平整度。在通常的液壓伺服控制方案中,自動找平的過程如下:由檢測傳感器測出基層面實際高度并與標準高度進行比較,當偏差值達到一定的程度時,認為需要加以調整,這時由控制器發出指令,通過液壓泵驅動找平液壓缸使牽引大臂產生一定量的位移;牽引點位置改變引起熨平板相應垂直運動,從而使鋪層產生變化,彌補路面波動,使鋪后表面均勻一致,實現所要求的路面平整度。瀝青混凝土攤鋪機由于其作業環境十分惡劣,環境溫度高,溫度變化大,灰塵多,故檢測路面高度傳感器的選取非常重要.目前在攤鋪機自動找平系統中常采用的有以下幾種傳感器:角位移式傳感器、超聲波傳感器、光學傳感器。
2.攤鋪機工作原理
瀝青混凝土道路的攤鋪過程是:作業時,攤鋪機的前推輥頂推著載料自卸汽車后輪前進,并接受瀝青混合料。卸于料斗內的瀝青混合料,由斗底左右兩個獨立驅動的刮板輸送器送至螺旋攤鋪室,送料量由后斗壁左右兩閘門分別控制。螺旋攤鋪器有左右兩螺旋,同時將料向左右兩側均勻攤鋪,但亦能左右各自獨立驅動。隨著攤鋪機的向前移動,振實、熨平部分按一定的寬度、厚度和拱度對鋪層進行初步振實和整平。熨平板內裝有加熱裝置,以便在寒冷季節或在作業開始前對板底進行加熱,防止瀝青混合料的粘附。由于熨平板有浮動特性,故能通過厚度調節器來改變熨平板底面相對于地面的仰角,以調節鋪層厚度。
圖1 通信模塊的網絡拓撲結構
自動攤鋪機系統既龐大、又復雜。包括車體的方向、速度控制,輸分料控制,大臂、熨平板、找平控制,發動機的起、停控制以及各種狀態參數的測量、顯示和故障報警。為了提高系統的可靠性,采用了集散型計算機體系結構,實現了集中管理以及功能和危險的分散。所有這些子控制系統都在不同的單片機上完成,而這些子系統之間的參數傳輸則由主交互機進行協調。顯而易見,攤鋪機能否在工作環境相當惡劣的條件下正常、可靠、穩定地工作,很大程度上取決于各個單片機于系統能否進行可靠、穩定的通信。根據項目的要求,對人機交互系統和測控機系統的各種輸入/輸出量的關系進行了深入細致的研究和測量,制定了如圖l所示的網絡拓撲結構。
在圖1中,主交互機與左交互機、右交互機、車體行駛測控機、找平輸分料測控機利用CAN總線進行通信;而主交互機與移動電話則利用RS232C進行串行通信。
4.通信模板的硬件設計
本系統中采用億恒公司的16位CMOS單片機系列的C164作為主控制器。億恒C164是單片機是一款非常優秀的單片機,特別是它的16位單片機,高性能CPU 結合功能豐富的外設,每秒可執行1250萬條指令,在CPU時鐘頻率20MHz時具有下面的性能特點:
(1)帶有4級流水線高性能16位CPU
80ns最小指令循環時間,大多數指令僅需1個循環,即兩個CPU循環;16*16位乘法需400ns(20個CPU循環),32位除16位需800ns(40個CPU循環)。處理能力達到10MIPS.
(2)集成在片存儲器
64KB在片可編程FLASH;2KB內部RAM,用于變量存儲器池、系統堆棧和代碼;2KB在片高速RAM,用于變量、用戶堆棧和代碼;4KB在片數據EEPROM,用于non-volatile變量。
(3)外部總線接口
獨立或復用總線配置;段分配和片選信號產生;8位或16位數據總線。
(4)16個優先級中斷系統
可達33個中斷節點帶有獨立的中斷矢量;在內部程序執行時,240ns/400ns中斷等待時間;快速外部中斷。
(5)智能在片外設子系統
8通道10位A/D轉換器,帶有可編程轉換時間(最小為7.76us;5個定時/計數器;同步/異步串行通道;帶有15個信息體的CAN摸量;可編程時間間隔的看門狗定時器;實時時鐘;用于系統初始化的程序引導裝載器。
(6)59個I/O引腳
輸入模式具有三態;具有位尋址功能。
通信模塊的硬件電路如圖2所示。
圖2 通信模塊的硬件電路圖
通信模塊帶有CANBUS、RS232C各一路,可獨立進行CAN總線通信和RS232C串行通信。RS232C通信硬件電路由C164片內異步串行口、光耦、MAX232A和傳輸線構成。CAN通信由C164片內CAN控制器、光耦、CAN收發器PAC82C250和傳輸線構成。
CAN收發器PAC82C250與C164CI的接口均帶有光電隔離,隔離前后采用兩套電源:
(1)系統電源:+Vs(+5V), Gs ;
(2)機器電源:+Vm(+5V), Gm.
5.RS232C通信軟件設計
5.1 C164CI的異步串口
C164CI的異步串行口ASC0提供了與其它系統串行通信端口,它的特點是:自帶波特率發生器的異步串口;異步模式,最大625Kbaud傳送速率;全雙工位;可編程特點(1或2停止位,7、8或9數據位);在數據發送時產生校驗或喚醒位;奇或偶校驗位;錯誤檢測等。
5.2 串行口通信編程
串行口主要用于移動電話和主交互機之間進行通信。串行通信的實現主要是通過對串口控制寄存器進行配置實現初始化。下面是這一過程的實現步驟:
1. 串口控制寄存器初始化;
2. 定義波特率;
3. 定義中斷;
4. 定義引腳的特殊功能;
5. 系統啟動。
下面為實現串口的通信程序:
#include
unsigned int a;
interrupt(0x2B) void S0RINT(void) //接收中斷服務子程序
{
a=S0RBUF; //將接收數據保存
}
void putchar(unsigned char tdata) //串行發送程序
{
while(!S0TBIR){;} //等待發送緩沖區清空
S0TBIR=0; //復位發送緩沖區中斷請求標志
S0TBUF=tdata; //裝載發送緩沖寄存器
}
void ASC_vInit(void) //串行通信初始化
{
S0CON=0x8011; //定義控制寄存器:SOR=1;SOREM=1;串行方式1
S0BG=0x0040; //定義波特率9 600Bd
S0RIC=0x0062; //定義接收中斷控制寄存器
S0TBIC=0x0080; //定義發送緩沖控制寄存器
P3 |=0x0400; //定義P3.10引腳為輸出鎖存(TXD0)
DP3 |=0x0400; //定義P3.10方向控制(TXD0為輸出)
Dp3 &=0xF7FF; //定義P3.11方向控制(RXD0為輸入)
IEN=1; //開中斷
}
void main(void)
{
……;
ASC_vInit(); //串口初始化
putchar('……'); //串行發送
……;
}
6.CAN總線通信軟件設計
CAN 是Controller Area Network 的縮寫(以下稱為CAN),是ISO國際標準化的串行通信協議。在當前的汽車產業中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由于這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應"減少線束的數量"、"通過多個LAN,進行大量數據的高速通信"的需要,1986 年德國電氣商博世公司開發出面向汽車的CAN 通信協議。此后,CAN 通過ISO11898 及ISO11519 進行了標準化,現在在歐洲已是汽車網絡的標準協議。
現在,CAN 的高性能和可靠性已被認同,并被廣泛地應用于工業自動化、船舶、醫療設備、工業設備等方面。現場總線是當今自動化領域技術發展的熱點之一,被譽為自動化領域的計算機局域網。它的出現為分布式控制系統實現各節點之間實時、可靠的數據通信提供了強有力的技術支持。
6.1 C164CI的CAN模塊概述
C164CI的CAN模塊特點如下:
(1)遵循CAN V2.0B規定(符號標準和擴展功能)。
(2)最大CAN通信速率為1MB/S.
(3)完全的CAN裝置:
l 15個信息體,帶有自己的識別器和狀態控制位;
l 每個信息體可以定義為發送或接收。
(4)通過在片內部XBUS(16位獨立方式)與主CPU相連(C166-內核)。
(5)接收濾波器用可編程屏蔽寄存器:
l 全域屏蔽輸入信息體(全CAN功能);
l 信息體15有附加屏蔽(基本CAN功能);
l 靈活的中斷事件控制;
l 帶有兩個接收緩沖器;
l 用自己的全域屏蔽寄存器進行接接收濾波。
6.2 CAN總線通信軟件設計
自動攤鋪機系統CAN總線通信軟件設計的任務是:在選定通信規程CAN2.0B以后,規定各計算機傳送數據的格式和約定;協調各計算機之間的通信;統一考慮通信中的可靠性措施。
6.2.1 數據發送模式
由于要傳送數據的重要程度、傳送周期不同,在本系統的通信中采用兩種不同的數據發送模式:
(1)發送模式0:即發送一次,不檢測接收是否正確,發送結束返回。接收方接收到此類數據包后,不必發送應答信息包。該數據包的特點是:按照一定周期定時發送,用于主操作面板上的狀態顯示,所以偶爾的傳送失敗不會影響系統的正常運行與操作。
(2) 發送模式1:即一定要將數據包正確發送給接收方。采用重發機制,等待接收方應答,若沒有接收到應答則重發。5次發送均失敗,則返回FALSE,由發送方做出相應的處理動作,如報警、停機等;成功則返回TRUE.該數據包的特點是:由相應事件觸發發送,如果傳送失敗,將影響系統的正常運行。
6.2.2 數據發送模式
對于自動攤鋪機系統來說,其CAN 網絡中節點數量較少,而每種數據包只需要一部分節點來接收,因此在通信設計中利用數據幀標識符來實現定址組播。為避免接收不必要的數據包,對接收節點按位編址,每個節點對應驗收濾波中的一位。若一個報文標識符高8位中對應位為1,則接收;否則忽略。因此只要在發送節點根據數據包內容設置合適的報文標識符,數據包即可被相關節點正確接收,而被無關節點忽略。
6.2.3 校驗
在CAN 結構的MAC層中已經實現了循環冗余碼〔CRC〕校驗。但自動攤鋪機工作環境惡劣,工作條件復雜,為了系統通信的可靠性,在控制程序級的通信中也進行校驗。為減輕系統負擔及降低程序復雜性,控制程序級的校驗采用了比較簡單的求和取模校驗方式,每個數據幀的最后一個數據字節作為校驗和,其值是之前所有數據字節求和后對256取模的值。各節點的接收接口中以相同方法計算校驗和,若校驗正確則將數據包壓入接收隊列,否則拋棄該包。
6.2.4 數據包格式及內容
其中:L取值為2—8:采用CAN2.0B標準,使用29位標識符。
ID28—ID21:確定此幀的接收節點,每位代表1個節點,可以廣播。
ID20—IDl7:此幀的順序號,每發一個幀增1,用于區分不同數據幀與重發數據幀。
IDl6:應答標志位:為1表示此幀需要應答,為0表示此幀不需應答。
IDl5—IDl3:指定此幀的發送節點,0—3分別代表左交互機、右交互機、車體行駛測控機和找平輸分料測控機。
ID12—ID0:無意義。
6.3 CAN總線通信編程
CAN總線通信編程是一個比較煩瑣的事情,主要是涉及諸多的CAN寄存器,但只要掌握其規律和技術關鍵,就會變得容易起來。下面是CAN總線通信編程的實現步驟:
(1)CAN模量初始化;
(2)定義每一個信息體;
(3)裝載信息體數據(僅針對發送信息體);
(4)接收信息體接收數據;
(5)發送一個信息體;
(6)檢查一個信息體;
(7)檢查是否關閉CAN總線。
為便于進行模塊化編程,將CAN通信功能封裝成一個個子程序,并且生成一個專用的程序庫,供不同的程序員調用,這樣就提高了編程效率,并易于功能擴展。下面給出其中的兩個子程序。
下面為發送一個信息體的CAN通信程序:
#include //C164寄存器定義
#include //CAN控制寄存器定義
void send_mo_16x(unsigned char a) //發送信息體“a”(1..14)
{
if((a<15)&&(a))*msgctrl_ptr_16x[a]=0xefff; //置位TXRQ
}
下面為檢查是否關閉CAN總線的CAN通信程序:
#include //CAN控制寄存器定義
unsigned char check_busoff_16x(void) //檢查總線是否關閉,并在必要時恢復
{
unsigned char busoff_var=0;
if(SR&0x80) //如果BOFF=1
{
busoff_var=1;
CR=CR&0xfe; //恢復關閉的總線(清零INIT)
}
}
7.結論
由于攤鋪機的功能繁多,運作復雜,工作環境十分惡劣,因此控制系統的工作可靠性問題就是自動攤鋪機設計的關鍵。在本系統中,利用RS232C 實現了主交互機與移動電話之間的串行通信;采用帶CAN總線的單片機完成不同模塊各自的功能,又通過CAN總線傳送數據或命令,實現了功能分散又集中監視,危險分散。因此,很適合于自動攤鋪機中分布式控制系統的實現。現場實驗結果表明:該通信模塊具有良好的可靠性、穩定性和安全性。
-
拓撲
+關注
關注
4文章
341瀏覽量
29671 -
計算機
+關注
關注
19文章
7540瀏覽量
88647 -
通信模塊
+關注
關注
2文章
150瀏覽量
33150
發布評論請先 登錄
相關推薦
基于虛擬儀器的城市景觀照明分布式控制系統設計與實現
分布式控制系統有哪些功能和應用
Modbus通信協議在分布式控制系統中的應用
CAN總線在車輛分布式控制系統中的應用
分布式控制系統(DCS)問答
工業機器人分布式控制系統實例
![工業機器人<b class='flag-5'>分布式控制系統</b>實例](https://file.elecfans.com/web2/M00/49/08/pYYBAGKhtDSAKunSAAAVIVxERZo284.jpg)
新型的高壓變頻分布式控制系統
![新型的高壓變頻<b class='flag-5'>分布式控制系統</b>](https://file.elecfans.com/web2/M00/49/18/pYYBAGKhtDiAK2wfAAAMItYOygc477.jpg)
分布式控制系統的介紹
![<b class='flag-5'>分布式控制系統</b>的介紹](https://file.elecfans.com/web1/M00/99/B7/pIYBAF0ZpteAHtfVAAGxfF20H8c173.png)
評論