av日韩亚洲,一本一本a久久,亚洲一区二区三区,亚洲一区二区三区免费视频

基于Modbus協(xié)議的電火花控制系統(tǒng)

來源:期刊VIP網(wǎng)所屬分類:機(jī)電一體化時(shí)間:瀏覽:

  摘 要:提出了一套基于Modbus協(xié)議的總線控制系統(tǒng),分析了Modbus協(xié)議的特點(diǎn),介紹了Modbus協(xié)議的內(nèi)容及通信過程,給出了系統(tǒng)的軟件實(shí)現(xiàn)方法,包括系統(tǒng)流程圖及部分校驗(yàn)代碼。

  關(guān)鍵詞:Modbus,現(xiàn)場(chǎng)總線,電火花,RTU

  0. 前言

  國(guó)內(nèi)的大多數(shù)電火花設(shè)備由于實(shí)時(shí)性等方面的要求,控制系統(tǒng)均是基于dos環(huán)境設(shè)計(jì),這種系統(tǒng)能滿足電加工的基本要求,但也大大影響了人機(jī)交互的改進(jìn)以及遠(yuǎn)程通信等現(xiàn)代控制的要求;模塊化結(jié)構(gòu)可裁減性強(qiáng),便于滿足不同用戶的需求,是系統(tǒng)深入發(fā)展的良好基礎(chǔ);專業(yè)化的信號(hào)采集設(shè)備及檢測(cè)裝置成為系統(tǒng)穩(wěn)定和可靠運(yùn)行的保障;應(yīng)用網(wǎng)絡(luò)技術(shù),可做到信息處理綜合化,智能化;與此同時(shí),VB、VC以及各種組態(tài)軟件的發(fā)展為人機(jī)界面及總線控制的發(fā)展的提供了良好的開發(fā)環(huán)境,使我們能夠設(shè)計(jì)出更為合理及人性化的系統(tǒng)。本文試圖將現(xiàn)場(chǎng)總線理論應(yīng)用于電火花加工機(jī)床,并最終通過使用Modbus協(xié)議實(shí)現(xiàn)各設(shè)備之間的互聯(lián)。[4]

  現(xiàn)場(chǎng)總線是應(yīng)用在生產(chǎn)現(xiàn)場(chǎng),在微機(jī)化測(cè)量控制設(shè)備之間實(shí)現(xiàn)雙向串行多節(jié)點(diǎn)數(shù)字通信的系統(tǒng),也被稱為開放式,數(shù)字化,多點(diǎn)通信的底層控制網(wǎng)絡(luò)。[5][6]在整個(gè)工廠的控制網(wǎng)絡(luò)中,現(xiàn)場(chǎng)總線處于重要的基礎(chǔ)地位。

  1. 控制系統(tǒng)結(jié)構(gòu)

  1.1 系統(tǒng)基本結(jié)構(gòu)

  現(xiàn)場(chǎng)總線控制系統(tǒng)一般采用上位計(jì)算機(jī)結(jié)合下位智能儀表來實(shí)現(xiàn)控制功能。在本系統(tǒng)中,由于系統(tǒng)的檢測(cè)裝置簡(jiǎn)單易用,因此采用微控制器來讀取信號(hào)并最終傳輸給上位機(jī)。一般來說,總線系統(tǒng)主要包括變送器,總線和檢測(cè)站。在本套系統(tǒng)中,微控制器和檢測(cè)裝置成為智能儀表即變送器,它作為從機(jī)使用,但確是系統(tǒng)的核心部件,而上位機(jī)即檢測(cè)站主要完成人機(jī)交互的任務(wù)以及一些優(yōu)化、復(fù)雜計(jì)算和控制的功能。個(gè)性化的人機(jī)界面以及標(biāo)準(zhǔn)化的總線結(jié)構(gòu)設(shè)計(jì),可方便的擴(kuò)展系統(tǒng)的控制功能。

  整套系統(tǒng)結(jié)構(gòu)圖如圖1所示,系統(tǒng)最主要包括一個(gè)服務(wù)器,一臺(tái)pc機(jī),三個(gè)微控制器及相關(guān)檢測(cè)設(shè)備。

  圖1 系統(tǒng)結(jié)構(gòu)圖

  這幾層的工作主要包括:

  1. 最底層為數(shù)據(jù)采集層,需要從現(xiàn)場(chǎng)采集實(shí)時(shí)的數(shù)據(jù),比如油溫,油面高度等。三個(gè)微控制器作為現(xiàn)場(chǎng)控制層的核心器件,每個(gè)被賦予唯一的本機(jī)地址用以識(shí)別身份。微控制器即變送器也是整個(gè)系統(tǒng)的核心設(shè)備,其作用主要是采集間隙電壓,液位油溫,限位報(bào)警,手控盒控制等實(shí)時(shí)數(shù)據(jù),自動(dòng)實(shí)現(xiàn)伺服控制,自動(dòng)滅火,風(fēng)扇開關(guān),定時(shí)抬刀等功能,并同時(shí)將數(shù)據(jù)輸出到modbus現(xiàn)場(chǎng)總線測(cè)控網(wǎng)絡(luò)。

  2. 現(xiàn)場(chǎng)控制層的任務(wù)是將所有的加工狀態(tài)通過雙腳電纜送至控制室的監(jiān)控計(jì)算機(jī),組成現(xiàn)場(chǎng)總線網(wǎng)絡(luò),而在此網(wǎng)絡(luò)中,所有傳輸?shù)男畔⒕裱璵odbus協(xié)議。Modbus現(xiàn)場(chǎng)總線將現(xiàn)場(chǎng)變送器和檢測(cè)站連接成一個(gè)測(cè)控網(wǎng)絡(luò),實(shí)現(xiàn)電火花加工的監(jiān)測(cè)計(jì)量與管理。

  3. 工廠監(jiān)控層安裝人機(jī)界面軟件,負(fù)責(zé)監(jiān)視所有加工參數(shù)即電規(guī)準(zhǔn),以及所有相關(guān)數(shù)據(jù)的顯示及鍵盤輸入信息處理等人機(jī)交互過程。pc機(jī)作為監(jiān)控計(jì)算機(jī),通過以太網(wǎng)連接到遠(yuǎn)程管理中心,實(shí)現(xiàn)向上進(jìn)行網(wǎng)絡(luò)運(yùn)行;監(jiān)控計(jì)算機(jī)可以安裝moden,通過現(xiàn)場(chǎng)進(jìn)行單擊操作。

  4. 最上層為遠(yuǎn)程管理層,可以由以太網(wǎng),top等局域網(wǎng)段組成,一般設(shè)服務(wù)器,pc機(jī)與服務(wù)器之間通過以太網(wǎng)卡,網(wǎng)關(guān)相連,也可通過路由器連接至廣域網(wǎng)。服務(wù)器是系統(tǒng)的外擴(kuò)部分,可以選用。

  1.2 物理實(shí)現(xiàn)

  目前,可以通過下列三種方式實(shí)現(xiàn)Modbus通信:以太網(wǎng)上的TCP/IP;各種介質(zhì)(有線:EIA/TIA-232-F、EIA-422、EIA/TIA-485-A;光纖、無線等)上的串行鏈路上傳輸;Modbus PLUS,一種高速令牌傳遞網(wǎng)絡(luò)。選擇何種實(shí)現(xiàn)方式主要是依據(jù)他所連接的設(shè)備所處的地位。一般采用標(biāo)準(zhǔn)的232口即可,但由于計(jì)算機(jī)上的rs232傳送的距離不超過30m,因此可以選用485接口。除此之外,422口也為標(biāo)準(zhǔn)串行數(shù)據(jù)接口,表1列出了他們之間的主要差別。本套系統(tǒng)采用了隔離的RS-485通信方式來提供對(duì)Modbus的硬件支持。

  表1 有線介質(zhì)傳輸性能對(duì)比表

  Modbus系統(tǒng)是一種主從網(wǎng)絡(luò),容許一個(gè)計(jì)算機(jī)和一個(gè)或多個(gè)從機(jī)通信。當(dāng)在Modbus網(wǎng)絡(luò)上通信時(shí),每個(gè)控制器都有自己的設(shè)備地址,主機(jī)識(shí)別按地址發(fā)來的消息,并決定要產(chǎn)生何種行動(dòng)。當(dāng)在其他網(wǎng)絡(luò)上傳輸時(shí),包含了Modbus協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。此時(shí),控制器既可以作為主設(shè)備也可以作為從設(shè)備, 但不能兩者同時(shí)兼?zhèn)洹?/p>

  根據(jù)各種設(shè)備的不同接口,總線上還可以串聯(lián)打印機(jī)等設(shè)備,也可以將這些設(shè)備直接連接至監(jiān)控計(jì)算機(jī)的打印機(jī)端口或USB口,實(shí)現(xiàn)通信。

  芯片要根據(jù)所接收的信息進(jìn)行選擇,如果是數(shù)字量,則最常見的單片機(jī)或pic微控制器等均可選用,如果是模擬量如間隙電壓,則要選擇帶模擬端口的芯片。

  電纜選擇可以根據(jù)所選擇的傳輸通道及距離來確定,這里選用的是帶屏蔽的雙絞電纜。

  2 Modbus協(xié)議

  Modbus協(xié)議是OSI模型第七層上的應(yīng)用層報(bào)文傳輸協(xié)議,它在連接至不同類型總線或網(wǎng)絡(luò)的設(shè)備之間提供客戶機(jī)/服務(wù)器通信。互聯(lián)網(wǎng)組中已經(jīng)保留TCP/IP系統(tǒng)端口502用以訪問Modbus,Modbus協(xié)議已經(jīng)成為一種流行的工業(yè)控制傳輸標(biāo)準(zhǔn)。

  2.1 協(xié)議內(nèi)容

  Modbus協(xié)議定義了消息與格式和內(nèi)容的公共格式,主要采用命令/應(yīng)答方式,每一種命令報(bào)文都對(duì)應(yīng)著一種應(yīng)答報(bào)文,命令報(bào)文由主站發(fā)出,當(dāng)從站收到后,就發(fā)出相應(yīng)的應(yīng)答報(bào)文進(jìn)行相應(yīng)。Modbus的信息幀包括站點(diǎn)、字節(jié)長(zhǎng)度、功能碼、操作地址、操作數(shù)據(jù)、CRC校驗(yàn)值等。在Modbus系統(tǒng)中有兩種有效的傳遞模式即ASCII(美國(guó)標(biāo)準(zhǔn)信息交換碼)和RTU(遠(yuǎn)程終端裝置)模式。內(nèi)容格式及字符長(zhǎng)度如下:[2]

  由于RTU模式傳輸位數(shù)少,使用方便,本文內(nèi)容均采用RTU模式。

  2.2 通信過程

  Modbus主從節(jié)點(diǎn)之間通信過程大致為:

  (1)從節(jié)點(diǎn)通過特定的端口與主節(jié)點(diǎn)建立連接,等待接收主節(jié)點(diǎn)發(fā)送的請(qǐng)求幀信號(hào)。

  (2)主節(jié)點(diǎn)根據(jù)實(shí)際需要達(dá)到的目的選擇合適的功能,將其對(duì)應(yīng)的功能代碼保存在ADU的功能代碼域,把必要的參數(shù)和子功能代碼保存在數(shù)據(jù)域中,并將傳輸標(biāo)志、協(xié)議標(biāo)志、數(shù)據(jù)長(zhǎng)度等存放在標(biāo)志域中,從而組成一個(gè)完整的數(shù)據(jù)幀發(fā)送到從節(jié)點(diǎn)。

  (3)從節(jié)點(diǎn)對(duì)收到的請(qǐng)求幀經(jīng)過錯(cuò)誤檢測(cè)后,根據(jù)協(xié)議的規(guī)定將其分解成基本功能單元,并按照功能代碼的要求完成特定的操作,最后還要返回一個(gè)功能回應(yīng)信號(hào)。如果請(qǐng)求幀或某一步操作出錯(cuò),就返回一個(gè)錯(cuò)誤報(bào)告。完備的出錯(cuò)應(yīng)答是Modbus的一個(gè)特點(diǎn),這有利于通信主節(jié)點(diǎn)判斷通信的錯(cuò)誤原因,從而將其排除,保證通信可靠進(jìn)行,提高通信成功率。[3]

  3. 軟件實(shí)現(xiàn)

  軟件實(shí)現(xiàn)時(shí)包括:初始化關(guān)鍵字,包括波特率設(shè)置,數(shù)據(jù)位數(shù),停止位數(shù),奇偶校驗(yàn)?zāi)J降龋偩€上所有的master及slave的以上設(shè)置應(yīng)完全一致。

  Modbus編程主要需處理好校驗(yàn)碼的生成及數(shù)據(jù)包開始標(biāo)志的檢測(cè)。[3]

  3.1 地址定義

  通信程序必須處理好數(shù)據(jù)報(bào)開始的標(biāo)志,因?yàn)槊看沃鳈C(jī)發(fā)送數(shù)據(jù)時(shí),所有的從機(jī)都會(huì)接收到信息,但只有地址相同的從機(jī)才會(huì)響應(yīng),因此地址的判別至關(guān)重要。在兩個(gè)數(shù)據(jù)包之間modbus協(xié)議將提供3.5幀的空閑時(shí)間,此時(shí),總線上所有的從機(jī)要做好接收準(zhǔn)備,一旦主機(jī)有數(shù)據(jù)包發(fā)出,從機(jī)立刻接受此數(shù)據(jù)。這當(dāng)中的第1幀即為地址幀。從機(jī)記錄該地址并判斷是否執(zhí)行該功能。

  通常,程序中會(huì)設(shè)置一個(gè)3.5幀計(jì)時(shí)器,當(dāng)線路上有數(shù)據(jù)時(shí)計(jì)時(shí)器不計(jì)數(shù),一旦線路空閑則計(jì)時(shí)器計(jì)數(shù)開始,直至該計(jì)時(shí)器停止計(jì)數(shù),這時(shí)線路上開始有數(shù)據(jù)包發(fā)出,這第一幀數(shù)據(jù)即為地址幀。值得注意的是,3.5幀時(shí)間并非常數(shù),應(yīng)根據(jù)傳輸速率及幀校驗(yàn)方式(奇偶校驗(yàn)或無校驗(yàn))而定。

  表2 ASCII模式傳輸格式

  表3 RTU模式傳輸格式

  3.2 功能碼定義

  客戶所請(qǐng)求的服務(wù)和服務(wù)器所提供的服務(wù)均通過功能碼(Function Code)標(biāo)識(shí)。Modbus 功能碼分三種,即公共功能碼、用戶自定義功能碼和保留功能碼,

  公共功能碼是已定義的功能碼,保證其唯一性,包含現(xiàn)存已定義的公共指配功能碼和未來使用的未指配保留功能碼。用戶定義功能碼有兩個(gè)定義范圍,即 65 至 72 和十進(jìn)制 100 至 110。用戶沒有 Modbus 組織的任何批準(zhǔn)就可以選擇和實(shí)現(xiàn)一個(gè)功能碼。保留功能碼是一些公司對(duì)傳統(tǒng)產(chǎn)品通常使用的功能碼,并且對(duì)公共使用是無效的功能碼。

  為使用方便,在本套系統(tǒng)中,我們僅編寫Modbus協(xié)議中的三個(gè)公共功能碼,包括寫單個(gè)寄存器0x06,讀多個(gè)寄存器0x13,讀寫多個(gè)寄存器0x17。以寫單個(gè)寄存器為例,請(qǐng)求信息為

  響應(yīng)為

  函數(shù)流程圖如下:

  圖2 系統(tǒng)響應(yīng)流程圖

  除此之外,我們還可以擴(kuò)展其他功能,比如利用讀文件記錄0x20,寫文件記錄0x21兩個(gè)功能碼來存儲(chǔ)系統(tǒng)的相關(guān)信息,如故障記錄,使用過的規(guī)準(zhǔn)查詢,各設(shè)備使用情況等。

  3.3 校驗(yàn)碼的生成

  根據(jù)傳輸模式的不同,系統(tǒng)需要產(chǎn)生不同的校驗(yàn)碼(check sum),ASCII模式采用LRC校驗(yàn)(Longitudinal Redundancy Check)而RTU采用CRC校驗(yàn)(Cyclical Redundancy Check),實(shí)現(xiàn)這兩種方法的函數(shù)均可以在相關(guān)資料中找到。下面是用C語言設(shè)計(jì)的CRC校驗(yàn),其中Unsigned char* data 為指向訊息緩沖區(qū)(buffer)之指針 Unsigned char length 為訊息緩沖區(qū)中位元組數(shù)目,而產(chǎn)生的返回值reg-crc即為回傳之校驗(yàn)碼。[2]

  unsigned int crc_chk(unsigned char *data, unsigned char length)

  {

  int j;

  unsigned int reg_crc=0xFFFF;

  while(length——)

  {

  reg_crc︿=*data++;

  for(j=0;j>1)︿0xA001;

  }

  else

  {

  reg_crc=reg_crc>>1;

  }

  }

  }

  return reg_crc;

  }

  4. 總結(jié)

  通過上述系統(tǒng),希望能與先進(jìn)控制設(shè)備實(shí)現(xiàn)對(duì)接,從而提高系統(tǒng)的改進(jìn)速度,使機(jī)床整體性能得到提升。

  本文作者創(chuàng)新點(diǎn):將modbus這項(xiàng)廣泛應(yīng)用的協(xié)議用于電火花加工機(jī)床,并在加工中取得了很好的加工效果,提高了整體機(jī)床的自動(dòng)化程度。

  5.參考文獻(xiàn)

  (1) 朱小襄.Modbus通信協(xié)議及編程.電子工程師, vol.31. No.7 jul. 2005

  (2) 臺(tái)達(dá)VFD-M變頻器使用手冊(cè)

  (3) 基于Modbus/TCP協(xié)議通信節(jié)點(diǎn)的實(shí)現(xiàn).機(jī)床與液壓,2004.No.12

  (4) 楊大勇.電火花成形加工數(shù)控系統(tǒng)的研究.電加工與模具,2003年第1期

  (5) 鮑吉龍,葉平. 工業(yè)監(jiān)控系統(tǒng)的網(wǎng)絡(luò)化發(fā)展.微計(jì)算機(jī)信息,2006年第6-1期,P66-68

  (6) 陽憲惠.現(xiàn)場(chǎng)總線技術(shù)及其應(yīng)用.北京:清華大學(xué)出版社,2000

  (7) 陳維剛.一種工業(yè)以太網(wǎng)與現(xiàn)場(chǎng)總線協(xié)議轉(zhuǎn)換器的研制.儀器儀表學(xué)報(bào),第26卷第5期

主站蜘蛛池模板: 焦作市| 新乡县| 五大连池市| 长寿区| 乐亭县| 城固县| 台山市| 潮州市| 虹口区| 宾阳县| 泰顺县| 久治县| 二连浩特市| 汉沽区| 长宁县| 新绛县| 侯马市| 永定县| 枞阳县| 尉氏县| 麻城市| 新野县| 铁力市| 旌德县| 南宫市| 体育| 织金县| 鄂托克前旗| 老河口市| 浮梁县| 嘉义市| 竹山县| 札达县| 嘉祥县| 攀枝花市| 法库县| 青阳县| 依安县| 饶阳县| 鄂伦春自治旗| 信丰县|