校驗(yàn)和:一條指令內(nèi)所有發(fā)送出的數(shù)據(jù)按Uin8進(jìn)行累加,取低兩個(gè)字節(jié),低字節(jié)在前,高字節(jié)在后。
在定時(shí)中斷0中檢查串行0口收到的數(shù)據(jù),并進(jìn)行協(xié)議的解析。
由于串行中斷的等級(jí)較低,可能會(huì)出現(xiàn)中斷來(lái)不及響應(yīng)從面造成串行接收的數(shù)據(jù)丟失,在向儀器發(fā)串行數(shù)據(jù)時(shí),*好能一次發(fā)16字節(jié),延時(shí)一段時(shí)間后再發(fā)。
儀器收到命令的判定
是否己收到命令?是:根據(jù)命令類型進(jìn)行分支處理,命令處理完后**收到命令標(biāo)記。
否,判定接收緩沖區(qū)的長(zhǎng)度是否大于等于4? 否:退出
是,則讀出**個(gè)字節(jié)判定是否是A? 否:退出
是,則讀出**個(gè)字節(jié)判定是否是W?否:退出
是,則讀出第三個(gè)字節(jié)判定是否是A?否:退出
是,則讀出第四個(gè)字節(jié),設(shè)置己收到命令標(biāo)志。
判定發(fā)送緩沖區(qū)是否為0,并且串行發(fā)送己空閑,則將**個(gè)字節(jié)發(fā)送出去,啟動(dòng)串行口自動(dòng)發(fā)送,
1.瞬時(shí)值傳輸指令:
AWA A :主動(dòng)上傳瞬時(shí)值開(kāi).
AWAa :主動(dòng)上傳瞬時(shí)值關(guān)。
回答:AWA+數(shù)據(jù)類型+數(shù)據(jù)長(zhǎng)度+時(shí)間+數(shù)據(jù)+校驗(yàn)和。
數(shù)據(jù)類型:A :
數(shù)據(jù):100倍的瞬時(shí)值,按int16 linstFZ; int16 linstSZ; int16 linstIZ; int16 linstFC; int16 linstSC; int16 linstIC; int16 linstFA; int16 linstSA; int16 linstIA; 順序發(fā)送,每個(gè)數(shù)據(jù)為2字節(jié),低字節(jié)在前。主動(dòng)上傳時(shí)一秒47次。
數(shù)據(jù)長(zhǎng)度兩個(gè)字節(jié),
時(shí)間:4年2月2日2時(shí)2分2秒 (十六進(jìn)制碼) 2字節(jié)OCT次數(shù)。
儀器收到此命令后,設(shè)置相應(yīng)標(biāo)志,允許串行發(fā)送中斷。在softint1程序中檢查標(biāo)志,如果有主動(dòng)上傳標(biāo)志,則每次實(shí)時(shí)分析完成后將要發(fā)送的數(shù)據(jù)送到發(fā)送緩沖區(qū),發(fā)送緩沖區(qū)*長(zhǎng)為256字節(jié)。向發(fā)送緩沖區(qū)寫(xiě)數(shù)據(jù)時(shí)不考慮緩沖區(qū)內(nèi)己有的數(shù)據(jù)。
2.1秒值傳輸指令:
AWAB :主動(dòng)上傳1秒值開(kāi). TEST OK
AWAb :主動(dòng)上傳1秒值關(guān)。 TEST OK
回答:AWA+數(shù)據(jù)類型+數(shù)據(jù)長(zhǎng)度+時(shí)間+數(shù)據(jù)+校驗(yàn)和。
數(shù)據(jù)類型:B:
數(shù)據(jù):100倍的1秒值,按int16 lpFZ; int16 lpSZ; int16 lpIZ; int16 lpFC; int16 lpSC; int16 lpIC; int16 lpFA; int16 lpSA; int16 lpIA;int16 leq1sA int16 leq1sC int16 leq1sZ ;每個(gè)數(shù)據(jù)為2字節(jié),低字節(jié)在前。主動(dòng)上傳時(shí)一秒一次。
時(shí)間:4年2月2日2時(shí)2分2秒 ((十六進(jìn)制碼))
儀器收到此命令后,設(shè)置相應(yīng)標(biāo)志,退出外部中斷0。在softint1程序中檢查標(biāo)志,如果有主動(dòng)上傳標(biāo)志,則每秒將要發(fā)送的數(shù)據(jù)送到發(fā)送緩沖區(qū),發(fā)送緩沖區(qū)*長(zhǎng)為256字節(jié)。向發(fā)送緩沖區(qū)寫(xiě)數(shù)據(jù)時(shí)不考慮緩沖區(qū)內(nèi)己有的數(shù)據(jù)。
3.讀寫(xiě)時(shí)鐘(暫無(wú)用)
AWAC:讀出儀器內(nèi)部時(shí)鐘
回答:AWA+C+數(shù)據(jù)長(zhǎng)度+當(dāng)前時(shí)鐘+ 校驗(yàn)和
AWAc+數(shù)據(jù)總長(zhǎng)+時(shí)鐘 +校驗(yàn)和:寫(xiě)入時(shí)鐘 TEST OK
時(shí)間:4年2月2日2時(shí)2分2秒 (BCD碼) 。
儀器收到此命令后,允許串行發(fā)送中斷,將要回答的數(shù)據(jù)寫(xiě)入發(fā)送緩沖區(qū),如果是寫(xiě)入時(shí)鐘,則直接跳到寫(xiě)入。
5. 讀積分值,啟動(dòng)暫停測(cè)量(暫無(wú)用)
AWAI:讀出儀器內(nèi)部的積分值。
回答:AWA+I+數(shù)據(jù)總長(zhǎng)(48)+啟動(dòng)時(shí)間+Tm+LeqAT+ LeqCT + LeqZT +sta_weight+3字節(jié)保留+sta_ln[10]+校驗(yàn)和
sta_ln[10]內(nèi)的指標(biāo)順序?yàn)長(zhǎng)max,Lmin,L5,L10,L50,L90,L95,SD,SEL,E
AWAi +數(shù)據(jù)總長(zhǎng)+Ts+stat+校驗(yàn)和 **積分值,設(shè)定測(cè)量時(shí)間,啟動(dòng)測(cè)量
uint8 stat; //測(cè)量狀態(tài),送0
Ts由Ts.hh,Ts.mm,Ts.ss 三個(gè)字節(jié)組成。
6.讀寫(xiě)峰值(暫無(wú)用)
AWAP:讀出峰值C聲級(jí)
回答:AWA+P+數(shù)據(jù)總長(zhǎng)+Cpeak+(int16)+ Cpeak-(int16)+校驗(yàn)和
AWAp: 峰值C聲級(jí)清零(暫無(wú)用)
8. 關(guān)閉打開(kāi)串行口通信
AWAO+儀器序號(hào)(6位):打開(kāi)串行口發(fā)送,儀器每次復(fù)位后總是允許串行口發(fā)送。
AWAo+儀器序號(hào)(6位):關(guān)閉串行口發(fā)送,儀器只能接收打開(kāi)串行通信命令,不再對(duì)其它串行口命令回應(yīng),并將主動(dòng)上傳命令**。
9,**FLASH
AWAf+數(shù)據(jù)總長(zhǎng)+X+儀器機(jī)號(hào)(6位)+ 校驗(yàn)和 :**X區(qū)FLASH
X=22到27
22,23區(qū)放預(yù)存測(cè)點(diǎn)名,24,25區(qū)放歷史校準(zhǔn)信息,26,27放儀器信息
10.讀FLASH(測(cè)量結(jié)果,64k)
AWAF+ASC(0):查尋存貯的測(cè)量結(jié)果總數(shù)
回答:AWA+F+數(shù)據(jù)總長(zhǎng)+總數(shù)+ 校驗(yàn)和
AWAFX :讀出位置號(hào)為X的測(cè)量結(jié)果,X為位置號(hào),取值范圍為1~128,每個(gè)位置號(hào)下*多存放512字節(jié)數(shù)據(jù)。
回答:AWA+F+數(shù)據(jù)總長(zhǎng)+數(shù)據(jù)+ 校驗(yàn)和
11.讀/寫(xiě) flashname區(qū)(預(yù)存文件名,8k)
AWAD:讀出所有預(yù)存文件名
回答:AWA+D+數(shù)據(jù)總長(zhǎng)+數(shù)據(jù)+ 校驗(yàn)和
AWAd+數(shù)據(jù)總長(zhǎng)+起始位置+要寫(xiě)入?yún)^(qū)塊數(shù)+校驗(yàn)和---等回應(yīng)寫(xiě)入的命令----寫(xiě)入數(shù)據(jù)。
從起始位置寫(xiě)入數(shù)據(jù),要寫(xiě)入?yún)^(qū)塊數(shù)一次必須為1、2、8。起始位置取值范圍為0~15,一個(gè)區(qū)塊為512字節(jié)。
注意寫(xiě)前應(yīng)先清FLASH區(qū)
12.讀校準(zhǔn)結(jié)果,8k
AWAE:讀出校準(zhǔn)記錄
回答:AWA+E+數(shù)據(jù)總長(zhǎng)+數(shù)據(jù)+ 校驗(yàn)和
15.讀/寫(xiě)15區(qū)FLASH(儀器信息,8k)(暫無(wú)用)
AWAG:讀出儀器信息
回答:AWA+G+數(shù)據(jù)總長(zhǎng)+數(shù)據(jù)+ 校驗(yàn)和
AWAg+數(shù)據(jù)總長(zhǎng)+起始位置+要寫(xiě)入?yún)^(qū)塊數(shù)+校驗(yàn)和---等回應(yīng)寫(xiě)入的命令----寫(xiě)入數(shù)據(jù)。
從起始位置寫(xiě)入數(shù)據(jù),要寫(xiě)入?yún)^(qū)塊數(shù)一次必須為1、2、8。起始位置取值范圍為0~15,
AWA6228儀器的計(jì)算機(jī)接收軟件功能及操作同AWA6291,可以在AWA6291軟件的基礎(chǔ)上加入儀器型號(hào)選取菜單,也可利用儀器復(fù)位時(shí)發(fā)出的儀器型號(hào)來(lái)判定。
AWA6228軟件主要完成
1. 預(yù)存測(cè)點(diǎn)名的讀出,編輯,**,寫(xiě)入,保存。
2. 測(cè)量結(jié)果的讀出,**,保存,轉(zhuǎn)為EXCEL文件。
3. 校準(zhǔn)信息的讀出,**,保存。
4. 實(shí)時(shí)監(jiān)測(cè)功能,實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)的記錄。
http://ymmsjz.com