




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、經(jīng)典文胸的但誦以曲說R編程ModOui通訊協(xié)議分為RTI:的議和XSC口協(xié)議.我司的多種儀表部采用ModRuB KTI 遛調(diào)那談,如】TD2W口 HBR電力篙假,逛粉表.敖晶表,尤軒敢顯表帶,卜面箍UodBu s RTU協(xié)議茴要介紐如下:一、通ill怫說(-)、迎訊傳送方式:前訊為子介力如。的吃口頭.和發(fā)送的端叫幫樹 以下的訕加彳專送/嵬七幅陽 DBI S m通雙炊約柏及演筑舊 H位二遇制錯誤檢輸 CK【兀余肺壞碼】初妗精構-三宇宙臚段子問 埴址碼-字節(jié)M屈碼二I字節(jié)費提H N字節(jié)招戌校戶=lb忖C氏的結(jié)束玷構=今4字節(jié)的時間地址碼!地址科為通訊科送的第一今字節(jié).這個7節(jié)表明由用戶近定地址田府
2、從機將花也山J機發(fā)送土M1H息.并且晦十從機郵仃具有唯一的地址跖并且科威回送用以各自 印。5日H將主機集坐的地址翻亮胴送龕地刊的從機地址.而北機發(fā)送的地址碼亮明叵I 送的隊機地址.項能碼:通訊傳送的第二A字節(jié).M誦配界泌訊說妁出E功能勺為】J-J 127京儀表工 利用亂中的一部分功能叫.作為主HL請求發(fā)送、皿以由鹿口告訴從機執(zhí)仃fl么助件 作為 從機響應,從機發(fā)送的前能碼占從主機發(fā)送來的功能眄一樣.并表明從機已響應主機進行 操作.如果從機里出的功能碼畫最島值為1 f比如功比的大打匕大上12T).則表明隊機沒 宥響應操偉成發(fā)送出的.*K1截輾區(qū)品限據(jù)不同的功睦碼而不同.數(shù)據(jù)區(qū)可以是實際數(shù)值.諛置
3、點.主機 次建笳隊兒或靈機發(fā)送殆十機囹地ULCRC硒:二字節(jié)的情。檢割碼.(二、通訊耗的當通鈿帝金發(fā)送至儀窿時.符合相應地址碼的發(fā)名接通機命令.并除去地址碼.讀 以信息.如果祖有出錯,剜執(zhí)行相度的任翳;整打把械打結(jié)果返注給發(fā)送春,返送我佶忘中包括地址嗎、執(zhí)仃功仰的功造俏執(zhí)打動他后結(jié)果的數(shù)據(jù)以后錯誤的驗據(jù) 如果5錯就 不發(fā)送任何信息.L科01幅結(jié)構地垃冏功能何數(shù)據(jù)區(qū)博諾校喊曬8位位K M業(yè)也K位地址碼:地內(nèi)碼是;.口帕的第一信囹,從口到電這個字節(jié)賽站由用戶傻置下載可編輯復制經(jīng)典文他卻的從機將楂收田木機笈塞米的值屈,母個從用都必於右一唯一的地碼.并n只門符含 地址因怕狀肛,能響曲回送。當從機回搜值
4、息附相當峋地址碼表明該信息來自于何處;功能碼;主機發(fā)送的功質(zhì)碼告訴我機執(zhí)行什總?cè)蝿湛谄辤t列出的功能碼都有具體 的含義強操怦;代研含義操作03讀取數(shù)都讀取當一揖。搟內(nèi)一個里多個一班制電08崔單一寄存冊設置的二處制11寫入單一寄存塔數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)包含淅零雙機執(zhí)tH么動作或由從機及乩的思醫(yī)看思二一咒金息可以 是融值、善等地址等等 泣e .功處嗎告訴從it遺取寄存簿峋tn,煙數(shù)據(jù)區(qū)必需包含要讀 取奇有霜的起蚱地址員康堰牧度.冏1不同的從機.地址和幫掘信息都不相同,特課校驗碼:主機或從機可用校監(jiān)仍述行列別根收仃息是西山惜.司,由電子 聲或其它一當千就.信息在傳輸過程中會發(fā)牛二期做的變化.惜誤校駱碼戈訐
5、ri,或從機 利在肉送過口小山川的七總不起ftJIL這樣增加了系統(tǒng)的安全利效率,措識校甄錄用CRC T6校監(jiān)方法.在信息頓的格式那地不刑何;地址仍.功能叫、數(shù)弱區(qū)利希誤校獨帽.九獵陜校驗瓦爾端H;碼(匚咫,包含2午干節(jié),即16位二就制.匚即用市發(fā)送設蒂計W,酒酉于 貸讀信息的手部.掛收情息的設備再面新計第接收到侑息峋廠附碼.比虻U得利的叔 司是西與接收到的相格如果兩者不相符,則我明HitlLCM蚪的計算斤。,足.丸頊方 g位商存罌金為1。即透出也許E付數(shù)騏f總邊什處爬. 在遇仃G既得計算時只用8位數(shù)據(jù)懂,起崎位地匕川色加有奇偶校皖胡的話也包括奇耦 校蛤仲,都不寫與CRG碼計審.itMHC此碼時
6、.2位數(shù)兆。寄在罌狗敷甥和計或, M列的封梁向候仁移一字鼠用 U堪祚烈島山,理植自后乜,如聚嶼低位為I*把力存耨的內(nèi)柞與我H數(shù)出界或劃梟 日相歸出冷一革:汕小力:的下載可編輯復制經(jīng)典文這個過程一直重復8次,第8次豚位后.下一十8位再與以在皆存得的內(nèi)容相榴異 直,這個過程與以上一樣隸員8次,當斯存的軟察信息處理完后,最后寄存器的內(nèi)容即為 C耽碼值* GCP1中晌數(shù)據(jù)發(fā)送,接收時低字節(jié)在前.計算CRC碼的步驟為:, 購亞1b位奇存稀為八地制FF盯即全為I J二稱比奇存器為LRL寄存器: 把第 個H位數(shù)據(jù)與16位嗣寄存料的醺僮和異或r杷站果放于時寄存格; 把寄存豁的內(nèi)容&唐一栓(朝械也).川口填撲最
7、高位a檢查聶桂世, 如果最衽位為5重良第3般f再次辨桿);加里最低位為卜Ct寄存舞與多場式4 001 (1010 0000 OODO (0Q1 ) ill行異氏; 重復士理3川L我到八岸總次.這打裳4 位數(shù)據(jù)全部辿行了處理, 甫包布轆2tli的驟進行下一個8付數(shù)據(jù)的處理L及IZJ劃的C虬花存黠叩為LHC螞n3 .功能明口3.睡取點和返回假:崗段來川曲曲一酊口通訊規(guī)約.利用通福金令, M吼進杼讀取廣丁 “保苗寄存牌) 或返回世(1卷人寄存器”的操作,緊仲用慚入寄存器郡是15慢12字甘J值.并”島 便在前.這樣用于儀表前沒取點和返回值都是2字節(jié).一次品塞可設睨寄存翳數(shù)髭前.由 下一建可墉程投制器不
8、用功腌碼03.削以功能罔03破田作讀取點和返目值,從機晌應的 命令格式是從機地址.功能丹.數(shù)據(jù)區(qū)及。咫冏,數(shù)幫區(qū)中的甯存耦數(shù)據(jù)都是用兩個畢節(jié) 圖字節(jié)在前.4 .而彼碼口6,電告很乖下載可編輯復制經(jīng)典文1機利汨這條命令把單點和據(jù)保存打儀表的斤他端從機也任這個功非需向主機送送 信息.二組程舉程卜血皂一個川V。一寫的MoMuy RF通訊的咧子(-),通訊口設置NB deb;hCoi.=CrefitFi IeCON *,CeWRIC REAB 聊ERIC TRI1E,0, NULL. OFliN EXISTING, 0,NLLL);i 1 仆 Con -=1WR_HgO/心 E)E-MesF4KBox
9、(*creatf i I e error, eiLrcr*);)BOQ1. ert oi S/tupCunn hCofnH 1021 h 1 D2 I;l M ! 1m tn)MrsriguDjA tupcjKinii ul iui 卜.ri-i$l e liCnr, JldcH);i I(!eri jr)nmnstat. ri r7i ”);di Lj. fUudRei .tL-2 1(H);deb. RrtoSixe SI;rkKPii i iy=EVEPARir V)人RTTV;deb. SlopB Hs=WB5W1IT;n i or _Sc ICjirmSi ni rhror., &
10、-;-h):(二)、CRG酸弱碼il養(yǎng)UTN7 etcraid racrc(BYTE errbuf)IBYTE i;ric=crc cicbul :for i_0;) “新建項目”,打開“新建項目”對話框:下載可編輯復制經(jīng)典文請在“類別”中選擇“常規(guī)”,再從“項目”中選擇“Java應用程序”,然后點擊“下一步”,進入“新建 Java應用程序”對話框:口彳?在這個對話框中需要設置項目的名稱以及項目所在目錄,我為自己的項目起名為JUnitTest , “項目位置”為 G:YPJCCKJUnitNetBeans ,此外,請將“創(chuàng)建主類”前的對 號去掉。項目創(chuàng)建好后,已經(jīng)自帶了 JUnit 3.8.1
11、。二.編寫用于測試的 JavaBean用于測試的JavaBean很簡單,名為Book,只有id和name兩個屬性,這兩個屬性將分別用 于兩個用例當中。下面開始編寫該JavaBean o請點擊“文件”- “新建文件”,打開“新建文件”對話框:下載可編輯復制經(jīng)典文確?!绊椖俊边x擇的是 JUnitTest ,然后在“類別”中選中 Java類,在“文件類型”中選中Java類,點擊“下一個,進入下一窗口:設置類名為Book,包為net.zheng.junit.test ,設置完成后點擊完成,修改代碼如下:package net.zheng.junit.test;public class Book pri
12、vate String id = null; private String name = null;public String getId() return id;public void setId(String id) this.id = id;public String getName() return name;public void setName(String name) = name;下載可編輯復制經(jīng)典文至此,用于測試的 JavaBean編寫完成。三.編寫測試用例這里只用了一個類進行測試,名為 BookTest,該類繼承自junit.framework.Test
13、Case 類。BookTest類包含兩個用例,分別對應該類的testId 和testName方法,即每個方法實現(xiàn)了一個測試用例。注意,在 JUnit中,junit.framework.TestCase的子類中每個用來實現(xiàn)測試用例的方法都必須以testXXX的格式來命名,這些方法在運行時會被執(zhí)行。此外,BookTest還包括setUp和tearDown這兩個方法,前者在每個測試方法開始之前執(zhí)行,多用來做初始化;后者在每個測試方法完成之后執(zhí)行,多用來清理資源。下面開始編寫B(tài)ookTest。請點擊“文件”- “新建文件”,打開“新建文件”對話框:確保“項目”選擇的是 JUnitTest ,然后在“類
14、別”中選中 JUnit類,在“文件類型”中選 中現(xiàn)有類的測試,點擊“下一個”,進入下一窗口:選擇要測試的類,點擊“完成”,修改代碼如下:下載可編輯復制經(jīng)典文package net.zheng.junit.test;import junit.framework.TestCase;import junit.framework.Assert;public class BookTest extends TestCase Book book = null;/建議為測試類創(chuàng)建構造public BookTest(String name) super(name);protected void setUp()
15、throws Exception /調(diào)用超類的setUp(),以確保測試環(huán)境被初始化super.setUp();System.out.println( 測試開始!);book = new Book();System.out.println(book對象被初始化!);protected void tearDown() throws Exception System.out.println(book對象將被清理!);book = null;System.out.println( 測試結(jié)束!);/調(diào)用超類的tearDown(),以確保測試環(huán)境被清理super.tearDown();public vo
16、id testId() book.setId(001);/ 設置 id 屬性的值為 001/使用Assert查看id屬性的值是否為001Assert.assertEquals(001, book.getId();System.out.println(id屬性被測試!);public void testName() book.setName(ASP); / 設置 name屬性的值為 ASP/使用Assert查看name屬性的值是否為JSP,這是個必 然出現(xiàn)錯誤的測試Assert.assertEquals(JSP, book.getName();System.out.println(name屬性被
17、測試!);這里setUp和tearDown方法沒什么好說的,就是執(zhí)行了對 book對象的初始化和清理,不過testId 和testName需要說明一下。前者是在對book的id屬性進行測試,首先賦值為001”, 然后使用Assert的assertEquals 方法查看id屬性中存放的值是否是期待的值,由于我的 期待值也是“ 001”,所以執(zhí)行后這個用例應該是成功的;后者則是對book的name屬性進行測試,也是首先賦值為”ASP,然后使用Assert的assertEquals 方法查看其值是否是下載可編輯復制經(jīng)典文期待的,由于我特意將期待值設定為根本不可能的JSP,因此這個用例執(zhí)行后會出現(xiàn)一個
18、錯誤。但請注意,由于我是特意要讓測試出現(xiàn)錯誤,所以將期待值設定成了不可能的值, 如果你是測試人員,請千萬不要這么做,否則如果別的地方導致了錯誤,很容易給自己造成不必要的麻煩。下面簡單介紹一下上邊用到的靜態(tài)類junit.framework.Assert。該類主要包含 8個方法:1. assertEquals() 方法,用來查看對象中存的值是否是期待的值,與字符串比較中使用的 equals()方法類似;2. assertFalse() 和assertTrue() 方法,用來查看變量是是否為false 或true ,如果assertFalse()查看的變量的值是 false則測試成功,如果是 tru
19、e則失敗,assertTrue()與之相反;3. assertSame()和assertNotSame()方法,用來比較兩個對象的引用是否相等和不相等, 類似于通過“=和“ != ”比較兩個對象;4. assertNull() 和assertNotNull() 方法,用來查看對象是否為空和不為空;5. fail ()方法,意為失敗,用來拋出錯誤。我個人認為有兩個用途:首先是在測試驅(qū)動開發(fā)中,由于測試用例都是在被測試的類之前編寫,而寫成時又不清楚其正確與否,此時就可以使用fail方法拋出錯誤進行模擬;其次是拋出意外的錯誤,比如要測試的內(nèi)容是從數(shù)據(jù)庫中讀取的數(shù)據(jù)是否正確,而導致錯誤的原因卻是數(shù)據(jù)庫
20、連接失敗。四.運行BookTest編寫好BookTest后,就可以運行了。請在“項目”欄中選中 BookTest,點擊鼠標右鍵,選擇“運行文件”,測試信息會從“輸出”窗口輸出:下載可編輯復制經(jīng)典文當有多個測試類需要一次性進行測試時,可以使用測試套件來完成這項工作。在NetBeans中,點擊“文件”- “新建文件”,打開“新建文件”對話框:確?!绊椖俊边x擇的是 JUnitTest ,然后在“類別”中選中 JUnit類,在“文件類型”中選中測試套件,點擊“下一個”,進入下一窗口:修改“類名”為 AllTests ,點擊“完成”,然后修改代碼如下:package net.zheng.junit.te
21、st;import junit.framework.*;public class AllTests extends TestCase public AllTests(String testName) super(testName);public static Test suite() TestSuite ts= new TestSuite(AllTests);ts.addTestSuite(BookTest.class);return ts;下載可編輯復制經(jīng)典文)其中TestSuite 是用來組織測試類的, 通過其addTestSuite()方法將測試類添加到 ts對象 中,凡是添加到ts中的測試類都將在運行文件時被執(zhí)行。此外,您也可以在定義
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度數(shù)字娛樂領域藝人經(jīng)紀合作協(xié)議
- 二零二五年度2025年度房屋抵押貸款轉(zhuǎn)讓及解押協(xié)議
- 13人物描寫一組《摔跤》教學設計-2023-2024學年統(tǒng)編版語文五年級下冊
- Unit 1 How can I get there?PartC(教學設計)-2024-2025學年人教PEP版英語六年級上冊
- 高中信息技術選修2教學設計-5.1.4 組織多媒體信息1-教科版
- 農(nóng)民水稻買賣合同5篇
- 2025年發(fā)泡聚苯乙烯項目可行性研究報告
- 服裝代理的合同范本8篇
- 中國圣-約翰草提取物項目投資可行性研究報告
- 2025年中國連體馬桶行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報告
- 公路工程節(jié)后復工安全教育
- 2024.8.1十七個崗位安全操作規(guī)程手冊(值得借鑒)
- 小王子-英文原版
- T-CHTS 10021-2020 在役公路隧道長期監(jiān)測技術指南
- 醫(yī)院門診醫(yī)生績效考核標準及評分細則
- 醫(yī)院納入定點后使用醫(yī)療保障基金的預測性分析報告
- 北師大版六年級下冊書法練習指導教案教學設計
- 四百字作文格子稿紙(可打印編輯)
- 《飼料質(zhì)量安全管理規(guī)范》培訓2022年
- 交通安全設施養(yǎng)護技術.ppt
- 環(huán)錘式碎煤機使用說明書(參考)
評論
0/150
提交評論