版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MODBUS通訊協(xié)議及編程ModBus通訊協(xié)議分為RTU協(xié)議和ASCII協(xié)議,我公司的多種儀表都采用ModBus RTU通訊協(xié)議,如:CH2000智能電力監(jiān)測(cè)儀、CH2000M電力參數(shù)采集模塊、巡檢表、數(shù)顯表、光柱數(shù)顯表等。下面就ModBus RTU協(xié)議簡(jiǎn)要介紹如下:一、通訊協(xié)議(一)、通訊傳送方式: 通訊傳送分為獨(dú)立的信息頭,和發(fā)送的編碼數(shù)據(jù)。以下的通訊傳送方式定義也與MODBUS RTU通訊規(guī)約相兼容: 編 碼8位二進(jìn)制起始位1位數(shù)據(jù)位8位奇偶校驗(yàn)位1位(偶校驗(yàn)位)停止位1位錯(cuò)誤校檢CRC(冗余循環(huán)碼)初始結(jié)構(gòu) = 4字節(jié)的時(shí)間 地址碼 = 1 字節(jié)功能碼 = 1 字節(jié)數(shù)據(jù)區(qū) = N 字節(jié)
2、錯(cuò)誤校檢 = 16位CRC碼 結(jié)束結(jié)構(gòu) = 4字節(jié)的時(shí)間地址碼:地址碼為通訊傳送的第一個(gè)字節(jié)。這個(gè)字節(jié)表明由用戶(hù)設(shè)定地址碼的從機(jī)將接收由主機(jī)發(fā)送來(lái)的信息。并且每個(gè)從機(jī)都有具有唯一的地址碼,并且響應(yīng)回送均以各自的地址碼開(kāi)始。主機(jī)發(fā)送的地址碼表明將發(fā)送到的從機(jī)地址,而從機(jī)發(fā)送的地址碼表明回送的從機(jī)地址。功能碼:通訊傳送的第二個(gè)字節(jié)。ModBus通訊規(guī)約定義功能號(hào)為1到127。本儀表只利用其中的一部分功能碼。作為主機(jī)請(qǐng)求發(fā)送,通過(guò)功能碼告訴從機(jī)執(zhí)行什么動(dòng)作。作為從機(jī)響應(yīng),從機(jī)發(fā)送的功能碼與從主機(jī)發(fā)送來(lái)的功能碼一樣,并表明從機(jī)已響應(yīng)主機(jī)進(jìn)行操作。如果從機(jī)發(fā)送的功能碼的最高位為(比如功能碼大與此同時(shí)12
3、7,則表明從機(jī)沒(méi)有響應(yīng)操作或發(fā)送出錯(cuò)。數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)是根據(jù)不同的功能碼而不同。數(shù)據(jù)區(qū)可以是實(shí)際數(shù)值、設(shè)置點(diǎn)、主機(jī)發(fā)送給從機(jī)或從機(jī)發(fā)送給主機(jī)的地址。 CRC碼:二字節(jié)的錯(cuò)誤檢測(cè)碼。(二)、通訊規(guī)約: 當(dāng)通訊命令發(fā)送至儀器時(shí),符合相應(yīng)地址碼的設(shè)備接通訊命令,并除去地址碼,讀取信息,如果沒(méi)有出錯(cuò),則執(zhí)行相應(yīng)的任務(wù);然后把執(zhí)行結(jié)果返送給發(fā)送者。返送的信息中包括地址碼、執(zhí)行動(dòng)作的功能碼、執(zhí)行動(dòng)作后結(jié)果的數(shù)據(jù)以及錯(cuò)誤校驗(yàn)碼。如果出錯(cuò)就不發(fā)送任何信息。1信息幀結(jié)構(gòu)地址碼功能碼數(shù)據(jù)區(qū)錯(cuò)誤校驗(yàn)碼8位8位N × 8位16位地址碼:地址碼是信息幀的第一字節(jié)(8位,從0到255。這個(gè)字節(jié)表明由用戶(hù)設(shè)置地址的
4、從機(jī)將接收由主機(jī)發(fā)送來(lái)的信息。每個(gè)從機(jī)都必須有唯一的地址碼,并且只有符合地址碼的從機(jī)才能響應(yīng)回送。當(dāng)從機(jī)回送信息時(shí),相當(dāng)?shù)牡刂反a表明該信息來(lái)自于何處。 功能碼:主機(jī)發(fā)送的功能碼告訴從機(jī)執(zhí)行什么任務(wù)。表1-1列出的功能碼都有具體的含義及操作。 代碼含義 操作03讀取數(shù)據(jù)讀取當(dāng)前寄存器內(nèi)一個(gè)或多個(gè)二進(jìn)制值06重置單一寄存器把設(shè)置的二進(jìn)制值寫(xiě)入單一寄存器數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)包含需要從機(jī)執(zhí)行什么動(dòng)作或由從機(jī)采集的返送信息。這些信息可以是數(shù)值、參考地址等等。例如,功能碼告訴從機(jī)讀取寄存器的值,則數(shù)據(jù)區(qū)必需包含要讀取寄存器的起始地址及讀取長(zhǎng)度。對(duì)于不同的從機(jī),地址和數(shù)據(jù)信息都不相同。錯(cuò)誤校驗(yàn)碼冗余循環(huán)碼(CRC
5、)包含2個(gè)字節(jié),即因此必須對(duì)數(shù)據(jù)的備份工作一定做好,以防以外的發(fā)生。對(duì)于不同的系統(tǒng)數(shù)據(jù)的備份和恢復(fù)的方法會(huì)有一些不同,但是都是將系統(tǒng)數(shù)據(jù)通過(guò)某種方式存儲(chǔ)到系統(tǒng)以外的介質(zhì)里。CRC碼由發(fā)送設(shè)備計(jì)算,放置于發(fā)送信息的尾部。接收信息的設(shè)備再重新計(jì)算接收到信息的 CRC碼,比較計(jì)算得到的CRC(請(qǐng)參閱:某數(shù)控機(jī)床CRC碼的計(jì)算方法是,先預(yù)置系統(tǒng)參數(shù)備份)1。再逐步把每8位數(shù)據(jù)信息進(jìn)行處理。在進(jìn)行CRC碼計(jì)算時(shí)只用(1CRC碼計(jì)算。 在計(jì)算CRC碼時(shí),)位數(shù)據(jù)與寄存器的數(shù)據(jù)相異或,得到的結(jié)果向低位移一字節(jié),用0填補(bǔ)最高位。再檢查最低位,如果最低位為1(3,不進(jìn)行異或運(yùn)算。MMC 數(shù)據(jù); 其中MMC100
6、.28次。第8次移位后,下一個(gè)8位再與現(xiàn)在寄存器的內(nèi)容相相異或,這個(gè)過(guò)程與以上一樣重復(fù)(CRC碼值。pcin) 計(jì)算CRC碼的步驟為: 預(yù)置16位寄存器為十六進(jìn)制2、系列備份(1)、傳輸參數(shù)的設(shè)定(西門(mén)子系統(tǒng)V24寄存器;PC 把第一個(gè)位數(shù)據(jù)與16參數(shù)設(shè)定如表3CRC寄存器;所示 表把寄存器的內(nèi)容右移一位(朝低位,用0填補(bǔ)最高位,檢查最低位; 如果最低位為0:重復(fù)第3步(碼。數(shù)據(jù)區(qū)中的寄存器數(shù)據(jù)都是每?jī)蓚€(gè)字節(jié)高字節(jié)在前。 按下(Switch-over鍵)MessageBox("createfile error,error"BOOL error=SetupComm(hCom,
7、1024,1024;(2MessageBox("setupcomm error"error=GetCommState(hCom,&dcb;if(!errorMessageBox("getcommstate,error"dcb.BaudRate=2400;dcb.ByteSize=8;dcb.Parity=EVENPARITY;/NOPARITY;dcb.StopBits=ONESTOPBIT;的接口X6;b校驗(yàn)碼計(jì)算UINT crcvoid calccrc(BYTE crcbufBYTE i;crc=crc crcbuf;for(i=0;i<
8、;8;i+BYTE TT;TT=crc&1;crc=crc>>1;crc=crc&0x7fff;if (TT=1crc=crc0xa001;crc=crc&0xffff;(三)、數(shù)據(jù)發(fā)送zxaddr=11;/讀取地址為11的巡檢表數(shù)據(jù)zxnum=10;/讀取十個(gè)通道的數(shù)據(jù)writebuf20=zxaddr;writebuf21=3;writebuf22=0;writebuf23=0;writebuf24=0;writebuf25=zxnum;crc=0xffff;calccrc(writebuf20;calccrc(writebuf21;calccrc(wr
9、itebuf22;calccrc(writebuf23;calccrc(writebuf24;按下“input”writebuf27=crc/0x100;WriteFile(hCom,writebuf2,8,&comnum,NULL;(四)、數(shù)據(jù)讀取ReadFile(hCom,writebuf,5+zxnum*2,&comnum,NULL;/讀取zxnum個(gè)通道數(shù)據(jù)可增加錯(cuò)誤處理程序,如地址碼錯(cuò)誤、CRC碼錯(cuò)誤判斷、通訊故障處理等。; 如果最低位為1:CRC寄存器與多項(xiàng)式A001(1010 0000 0000 0001)進(jìn)行異或; 重復(fù)步驟3和4,直到右移8次,這樣整個(gè)8位數(shù)據(jù)全部進(jìn)行了處理; OFF 重復(fù)步驟2到步驟5XON位數(shù)據(jù)的處理; 最后得到的CR LF為段結(jié)束3功能碼03,讀取點(diǎn)和返回值:儀表采用DRS信號(hào)(“保持寄存器前后引導(dǎo)或返回值磁帶格式” 的操作。保持和輸入寄存器都是16位(2字節(jié))值,并且高位在前。這樣用于儀表的讀取點(diǎn)和返回值都是2字節(jié)。一次最多可讀取寄存器數(shù)是60。由于一些可編程控制器不用功能碼03,所以功能碼039600406,單點(diǎn)保存主機(jī)利用這條命令
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度夜間商業(yè)街區(qū)治安巡邏打更服務(wù)協(xié)議范本4篇
- 2025年度個(gè)人信用貸款簡(jiǎn)易合同范本年度更新3篇
- 二零二五年度車(chē)輛掛名轉(zhuǎn)讓過(guò)戶(hù)手續(xù)辦理服務(wù)協(xié)議4篇
- 2025廠(chǎng)房租賃安全協(xié)議書(shū):消防安全責(zé)任與維護(hù)細(xì)則2篇
- 二零二五年度車(chē)輛安全技術(shù)研發(fā)獎(jiǎng)勵(lì)合同4篇
- 二零二五年度砂石料行業(yè)碳排放交易合同范本3篇
- 自我驅(qū)動(dòng)學(xué)習(xí)如何有效提升學(xué)生的自主學(xué)習(xí)能力?案例分析
- 科技園區(qū)巡察的智能化與標(biāo)準(zhǔn)化進(jìn)程
- 百色2025年廣西百色邊境管理支隊(duì)招聘輔警10人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年度個(gè)人信用保證合同范本5篇
- 八年級(jí)語(yǔ)文下冊(cè) 成語(yǔ)故事 第十五課 諱疾忌醫(yī) 第六課時(shí) 口語(yǔ)交際教案 新教版(漢語(yǔ))
- 中考語(yǔ)文二輪復(fù)習(xí):記敘文閱讀物象的作用(含練習(xí)題及答案)
- 老年外科患者圍手術(shù)期營(yíng)養(yǎng)支持中國(guó)專(zhuān)家共識(shí)(2024版)
- 子宮畸形的超聲診斷
- 2024年1月高考適應(yīng)性測(cè)試“九省聯(lián)考”數(shù)學(xué) 試題(學(xué)生版+解析版)
- (正式版)JBT 11270-2024 立體倉(cāng)庫(kù)組合式鋼結(jié)構(gòu)貨架技術(shù)規(guī)范
- EPC項(xiàng)目采購(gòu)階段質(zhì)量保證措施
- T-NAHIEM 101-2023 急診科建設(shè)與設(shè)備配置標(biāo)準(zhǔn)
- 《復(fù)旦大學(xué)》課件
- 針灸與按摩綜合療法
- 四川2024年專(zhuān)業(yè)技術(shù)人員公需科目“數(shù)字經(jīng)濟(jì)與驅(qū)動(dòng)發(fā)展”參考答案(通用版)
評(píng)論
0/150
提交評(píng)論