freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

多個(gè)串口設(shè)備數(shù)據(jù)的連續(xù)采集-全文預(yù)覽

  

【正文】 = new byte[] { 0x04, 0x30, 0x31, 0x52, 0x30, 0x30, 0x05 }。 32 工控程序設(shè)計(jì) 3 HC100智能測(cè)控儀數(shù)據(jù)采集 HC100智能測(cè)控儀采用以上位機(jī)為主導(dǎo)的 “ 提問 ——應(yīng)答 ” 通信模式,管理該設(shè)備的類可以從 CActiveCOMHelper類派生而來,命名為 CHC100,在類中覆蓋 checkReply方法,并實(shí)現(xiàn)浮點(diǎn)數(shù)的解碼方法 AsciiToFloat。 ) ()。 if (DataReceived != null) //引發(fā)事件,通知使用該類的程序 DataReceived(this)。 //等待 3次后數(shù)據(jù)還未到達(dá) (bRecv, 1, 1)。amp。 //阻塞方式讀取數(shù)據(jù) 30 工控程序設(shè)計(jì) bRecv = new byte[]。 //清除接收緩沖區(qū) bSend = 。 byte[] bRecv, bSend。 try { if () ()。 //線程同步:在進(jìn)行 set操作時(shí),不準(zhǔn)進(jìn)行 get操作 = cmd。 = 。 = 。 } 27 工控程序設(shè)計(jì) public void stop() { stopFlag = true。 //該命令開始時(shí)處于完成狀態(tài) } public void start() { Thread t = new Thread(new ThreadStart(threadFun))。 = stopBits。 public event DataReceivedHandler DataReceived。//線程循環(huán)停止標(biāo)志 private int baudRate, dataBits。這樣分工的好處是,處于上層的 UI模塊沒有必要知道如何和串口通信、如何創(chuàng)建線程等等復(fù)雜瑣碎的具體操作,而只要知道該發(fā)什么命令,以及如何處理收到的結(jié)果。 //命令是否完成 public CCommand() //創(chuàng)建對(duì)象時(shí) mandName不能為 null,以免后面比較時(shí)出錯(cuò) { = 。//命令的內(nèi)容 public Parity parity = 。 下面將設(shè)計(jì)上位機(jī)主動(dòng)模式的串口通信類 CActiveCOMHelper,和CPassiveCOMHelper類不同的是, CActiveCOMHelper類中增加了一個(gè)名為mand的成員,存放當(dāng)前應(yīng)該執(zhí)行的命令,線程函數(shù)根據(jù)該成員的相關(guān)屬性,就知道現(xiàn)在應(yīng)該給下位機(jī)發(fā)送什么命令。 //保留兩個(gè)字節(jié)位置存儲(chǔ)校驗(yàn)碼 byte[] crc = CCheck. CRC16 (b, 0, – 2 ,0x8005)。 //低 8位在前 tmp[1] = (byte)((CrcReg amp。 //―u‖表示該常量是無符號(hào)整型 CrcReg = 1。 // 將當(dāng)前字節(jié)與 CRC寄存器的低 8位進(jìn)行按位異或 for (int n = 1。 //最低有效位 byte[] tmp = new byte[2]。 //保留一個(gè)字節(jié)位置存儲(chǔ)校驗(yàn)碼 byte xorsum = CCheck. XorSum(b, 0, 1)。 i offset + count。 //計(jì)算雙字節(jié)累加和 b[] = sum[0]。 //保留一個(gè)字節(jié)位置存儲(chǔ)校驗(yàn)碼 byte sum = (b, 0, 1)。 //低 8位在前 tmp[1] = (byte)((sum amp。 i offset + count。 0xFF)。 for (int i = offset。 常用的循環(huán)冗余校驗(yàn)標(biāo)準(zhǔn)多項(xiàng)式為: CRC16: X16+ X15+X2+1 CRCCCITT: X16+X12 +X5+1 CRC32: X32+X26+X23+X16+X12+X11+X10+ X8+X7+X5+X4+X2+X+1 其中 CRC16多項(xiàng)式對(duì)應(yīng)多項(xiàng)式碼為 1000 0000 0000 0101(0x8005), CRCCCITT對(duì)應(yīng)的多項(xiàng)式碼為 0001 0000 0010 0001(0x1021)。 5)重復(fù)第 3與第 4步直到 8次移位全部完成。下面是循環(huán)冗余校驗(yàn)碼的計(jì)算過程: 1)設(shè)置 CRC寄存器,并給其賦值 FFFF(hex)。 (2)異或和校驗(yàn) 異或和校驗(yàn)的過程是,發(fā)送端取出發(fā)送數(shù)據(jù)的第 1個(gè)字節(jié),與后續(xù)每個(gè)字節(jié)依次按位異或,然后將計(jì)算結(jié)果( 1個(gè)字節(jié))作為校驗(yàn)碼發(fā)送給接收端,接收端收到數(shù)據(jù)后,用同樣的方法計(jì)算異或和,并與發(fā)送過來的校驗(yàn)碼進(jìn)行比較,從而檢驗(yàn)發(fā)送的數(shù)據(jù)是否有誤。形象地說,校驗(yàn)位保證一個(gè)字正確,數(shù)據(jù)幀校驗(yàn)是保證一段話正確。尋址指令為單字節(jié)指令,第 18位為地址,第 9位(校驗(yàn)位)為 “ 1‖(非尋址指令為 “ 0‖)。 ( 3) LU902M位式調(diào)節(jié)儀 LU902M采用串行異步通訊,提供 RS232C、 422A或者 485通訊接口,波特率有 1200、 2400、 4800、 9600四種選擇。如果用 DCBA表示浮點(diǎn)數(shù), D為高位, A為低位,每個(gè)字母表示一個(gè)字節(jié),那么 DCBA依次為 SXXX XXXX XMMM MMMM MMMM MMMM MMMM MMMM,其中 S代表符號(hào), 1位, 1表示負(fù), 0表示正, X代表指數(shù), 8位, 0到 255轉(zhuǎn)換為 127到 128, M代表尾數(shù), 23位,注意尾數(shù)總共 24位,最高位等于 1是隱含的。小數(shù)點(diǎn)位置為 0,有 0位小數(shù)點(diǎn);小數(shù)點(diǎn)位置為 1,有 1位小數(shù)點(diǎn),小數(shù)點(diǎn)位置為 2,有 2位小數(shù)點(diǎn)。儀器收到命令后準(zhǔn)備接收 8個(gè)通道的量程表。數(shù)據(jù)類型是無符號(hào)整數(shù),高位在前。注意:寫扭矩參數(shù)不能少于 24字節(jié)。這 11個(gè)參數(shù)的排列順序,數(shù)據(jù)類型,數(shù)據(jù)長(zhǎng)度如表 。上位機(jī)應(yīng)按上述讀零點(diǎn)的順序依次將 60個(gè)字節(jié)寫回去。儀器收到命令后向上位機(jī)依次傳送 10個(gè)零點(diǎn)值和其相應(yīng)的轉(zhuǎn)速值。每通道 2字節(jié),高位在前。儀器收到命令后向上位機(jī) 傳送儀器狀態(tài)字節(jié)。在顯示內(nèi)轉(zhuǎn)速時(shí)收到此命令,將顯示外轉(zhuǎn)速;在顯示外轉(zhuǎn)速時(shí)收到此命令,將顯示內(nèi)轉(zhuǎn)速。在測(cè)量狀態(tài)收到此命令,將啟動(dòng)釋放操作;在釋放狀態(tài)儀器不再接受命令。在測(cè)量狀態(tài)收到此命令,將啟動(dòng)存儲(chǔ)操作;在存儲(chǔ)狀態(tài)收到此命令,將退出存儲(chǔ)狀態(tài)。 0:讀扭矩轉(zhuǎn)速 儀器受到命令后向上位機(jī)依次傳送扭矩,轉(zhuǎn)速,采樣時(shí)間 3個(gè)參數(shù)。儀器被本機(jī)地址觸發(fā)后,向上位機(jī)傳回本機(jī)地址,然后等待上位機(jī)發(fā)來的命令。數(shù)據(jù)位 8位,停止位 1位。 設(shè)備的所有數(shù)字變換成 ASCII碼進(jìn)行傳輸:例如:儀表編號(hào) Addr=01, 測(cè)量值 =, 則數(shù)據(jù)千位為 31H、 百位為 32H、 十位為 33H、 小數(shù)點(diǎn)為 2EH, 個(gè)位為 34H, 符號(hào)位 2BH為正 , 2DH為負(fù) 。工控程序設(shè)計(jì) 學(xué)習(xí)情景 多個(gè)串口設(shè)備數(shù)據(jù)的連續(xù)采集 3 工控程序設(shè)計(jì) 學(xué)習(xí)情景 多個(gè)串口設(shè)備數(shù)據(jù)的連續(xù)采集 學(xué)習(xí)要點(diǎn) : 煤礦鉆機(jī)性能檢測(cè)設(shè)備的數(shù)據(jù)通信協(xié)議,數(shù)據(jù)幀的校驗(yàn)方法 : 校驗(yàn)碼的計(jì)算,上位機(jī)主動(dòng)模式串口通信類的設(shè)計(jì), HC100智能測(cè)控儀、JW2A扭矩儀、 LU902M位式調(diào)節(jié)儀數(shù)據(jù)采集 任務(wù)描述 在前一個(gè)情景中實(shí)現(xiàn)了對(duì)單個(gè) HSDZC電能綜合測(cè)試數(shù)據(jù)的接收。 4 工控程序設(shè)計(jì) 相關(guān) 知識(shí) 1 煤礦鉆機(jī)性能檢測(cè)設(shè)備的數(shù)據(jù)通信協(xié)議 (1) HC100智能測(cè)控儀 HC100智能測(cè)控儀可以使用 RS23 RS485接口與計(jì)算機(jī)通訊 , 數(shù)據(jù)格式為 1個(gè)起始位 , 8個(gè)數(shù)據(jù)位 , 無奇偶校驗(yàn) , 1個(gè)停止位 , 共 11位 。 表 HC100返回的數(shù)據(jù)格式 STX 儀表編號(hào) 符號(hào) 千位 百位 十位 小數(shù)點(diǎn) 個(gè)位 校驗(yàn)碼 ETX 02H 30H 31H 2bH 31H 32H 33H 2eH 34H 83H 03H 6 工控程序設(shè)計(jì) 開 始結(jié) 束 清 理 緩 存 提 取 、 分 析 數(shù) 據(jù)判 斷 開 始 位 、 結(jié) 束 位 是 否 有 效 N Y 發(fā) 送 指 令 接 收 數(shù) 據(jù) 判 斷 地 址 位 是 否 正 確 判 斷 符 號(hào) 位 是 否 正 確Y N N YHC100智能控制儀的數(shù)據(jù)處理流程如圖 圖 HC100智能控制儀數(shù)據(jù)處理流程 7 工控程序設(shè)計(jì) ( 2) JW2A扭矩儀 JW2A扭矩儀采用多機(jī)通訊方式,本機(jī)地址為 0AH。儀器只被地址觸發(fā),即上位機(jī)只有向儀器發(fā) 0AH,并且奇偶位為 1時(shí),才能得到儀器的響應(yīng)。目前有效的命令有 15個(gè),下面敘述各命令代表的任務(wù)。每個(gè)參數(shù)的傳送順序都是從內(nèi)存的低地址到高地址 1:存儲(chǔ)操作。 3:釋放操作。 5:內(nèi) /外轉(zhuǎn)速顯示轉(zhuǎn)換。 7:讀儀器狀態(tài)。儀器收到命令后向上位機(jī)依次傳送 0至 7通道的 A/D采樣結(jié)果。 9:讀 0點(diǎn)。儀器受到命令后準(zhǔn)備接受 10個(gè)零點(diǎn),共 60個(gè)字節(jié)的數(shù)據(jù)。儀器收到命令后向上位機(jī)依次傳送 11個(gè)參數(shù),共 24個(gè)字節(jié)。上位機(jī)應(yīng)按上述讀扭矩參數(shù)的順序依次將 24個(gè)字節(jié)寫回去。每個(gè)量程 2個(gè)字節(jié),共 16個(gè)字節(jié)。 10 工控程序設(shè)計(jì) 表 JW2A的扭矩參數(shù) 數(shù)據(jù)名稱 數(shù)據(jù)類型 數(shù)據(jù)長(zhǎng)度( byte) 系數(shù) 無符號(hào)整數(shù) 2 量程 浮點(diǎn)數(shù) 4 齒數(shù) 無符號(hào)整數(shù) 2 采樣周期 無符號(hào)整數(shù) 2 扭矩報(bào)警值 浮點(diǎn)數(shù) 4 轉(zhuǎn)速報(bào)警值 無符號(hào)整數(shù) 2 小電機(jī)轉(zhuǎn)速 無符號(hào)整數(shù) 2 定時(shí)打印時(shí)間 無符號(hào)整數(shù) 2 轉(zhuǎn)速模擬輸出范圍 無符號(hào)整數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1