串口通訊微型傳感器,測力傳感器,稱重傳感器通用的協(xié)議
提供RS232與RS485串行口,以實(shí)現(xiàn)與上位機(jī)的通訊。有三種協(xié)議:ASCII協(xié)議,Modbus協(xié)議和自由協(xié)議。
ASCII協(xié)議
1、 協(xié)議:
數(shù)據(jù)格式:7位數(shù)據(jù)位,偶校驗(yàn),1位停止位
7位數(shù)據(jù)位,奇校驗(yàn),1位停止位
7位數(shù)據(jù)位,無校驗(yàn),2位停止位
8位數(shù)據(jù)位,偶校驗(yàn),1位停止位
8位數(shù)據(jù)位,奇校驗(yàn),1位停止位Z
8位數(shù)據(jù)位,無校驗(yàn),1位停止位(默認(rèn))
8位數(shù)據(jù)位,無校驗(yàn),2位停止位
傳輸速率:4800、9600(默認(rèn))、19200、38400、57600、115200、230400bps
2、 數(shù)據(jù)格式:
幀頭 | 地址 | 指令 | 內(nèi)容 | LRC校驗(yàn)(可選) | 幀尾 |
: | 3字節(jié) | 1~20字節(jié) | 0~255字節(jié) | 2字節(jié) | CR LF |
若用戶需要校驗(yàn)功能,可在指令中開啟CRC校驗(yàn)功能,CRC校驗(yàn)的范圍為地址字節(jié)、指令字節(jié)和內(nèi)容字節(jié),即除幀頭和幀尾以外的剩余字節(jié),CR LF為回車符號(hào)
3、 應(yīng)答格式
握手成功應(yīng)答
幀頭 | 地址 | 內(nèi)容 | LRC校驗(yàn)(可選) | 幀尾 |
: | 3字節(jié) | OK(2字節(jié)) | 2字節(jié) | CR LF |
寫入指令應(yīng)答
幀頭 | 地址 | 內(nèi)容 | LRC校驗(yàn)(可選) | 幀尾 |
: | 3字節(jié) | OK:成功;ER:失敗 | 2字節(jié) | CR LF |
讀取指令應(yīng)答
幀頭 | 地址 | 指令 | 內(nèi)容 | LRC校驗(yàn)(可選) | 幀尾 |
: | 3字節(jié) | 1~20字節(jié) | 1~255字節(jié) | 2字節(jié) | CR LF |
4、 具體命令表
類別 | 名稱 | 指令 | 指令說明 |
系 | 握手 | CONNECT | 模塊接收命令后發(fā)送OK給主機(jī)以示握手成功 |
地址設(shè)置 | ADDR=N | N(地址):串口通信地址;范圍1~247;(需解鎖) | |
波特率設(shè)置 | BAUD=N | N(波特率,單位bps):(需解鎖) | |
數(shù)據(jù)幀格式 | FRAME=N | N(協(xié)議類型):(需解鎖) | |
協(xié)議類型設(shè)置 | PROCOTOL=N | N(協(xié)議):協(xié)議切換后通信數(shù)據(jù)格式將恢復(fù)為默認(rèn)設(shè)置。(需解鎖) | |
指令應(yīng)答延時(shí)設(shè)置 | ACKDELAY=N | 用于RS485通信時(shí)有些主機(jī)收發(fā)切換較慢,導(dǎo)致應(yīng)答指令丟失 | |
CRC16校驗(yàn)設(shè)置 | CRCEN=N | N(使能開關(guān)):1:打開CRC16校驗(yàn);0:關(guān)閉校驗(yàn)(需解鎖) | |
連續(xù)發(fā)送測量值 | CONTI=Enable,DataType,SendType,Intervals,F(xiàn)ormat | Enable(使能開關(guān)):;01:連續(xù)發(fā)送;0:關(guān)閉; | |
鎖定系統(tǒng)配置 | LOCK=N | 防止模塊運(yùn)行過程中收到錯(cuò)誤指令導(dǎo)致系統(tǒng)配置被意外修改。一旦配置被鎖定,模塊將無法接收外部串口命令進(jìn)行修改,直到鎖定被解除。 | |
固件版本 | VER | 返回模塊內(nèi)部程序版本號(hào)給主機(jī) | |
恢復(fù)出廠設(shè)置 | DEFAULT | 恢復(fù)為出廠默認(rèn)參數(shù);初始化完成后模塊將重啟;需解鎖 | |
測 | 讀取測量值 | RDMS | 模塊返回當(dāng)前測量值給主機(jī),高位字節(jié)先發(fā) |
AD轉(zhuǎn)換速度 | CONV=Speed,Polar | Speed(速度):設(shè)置速度;速度越快,采樣精度越低 | |
濾波器設(shè)置 | FILTER=Type,Level | 根據(jù)不同應(yīng)用場合選擇合適的濾波方式及強(qiáng)度 | |
零點(diǎn)標(biāo)定設(shè)置 | CALIZERO=Measurement, | Measurement(測量值):;范圍:-8000000~8000000 | |
增益標(biāo)定設(shè)置 | CALISPAN=Measurement, | Measurement(測量值):;范圍:-8000000~8000000 | |
讀取AD內(nèi)碼 | RDAD | 模塊返回當(dāng)前AD內(nèi)碼值給主機(jī),高位字節(jié)先發(fā) | |
多點(diǎn)修正(最多50點(diǎn)) | 多點(diǎn)修正關(guān)閉 | MTCLOSE | 關(guān)閉多點(diǎn)修正功能 |
讀取修正數(shù)量 | RDMTNUM | 讀取模塊內(nèi)部多點(diǎn)修正的數(shù)量 | |
設(shè)置標(biāo)定點(diǎn)參數(shù) | MTPARA=Measurement, | 將參數(shù)寫入到模塊內(nèi)部的多點(diǎn)修正數(shù)據(jù)表中,最多可寫入50組,Measurement為測量值;AD_Code為AD內(nèi)碼值,AD_Code也可以選擇不發(fā)送,這樣模塊會(huì)自動(dòng)將當(dāng)前AD內(nèi)碼值寫入到修正數(shù)據(jù)表中;Measurement和AD_Code的取值范圍為-8000000~8000000 | |
稱 | 讀取毛重 | RDGROSS | 模塊返回當(dāng)前毛重值給主機(jī);高位字節(jié)先發(fā) |
讀取凈重 | RDNET | 模塊返回當(dāng)前凈重值給主機(jī);高位字節(jié)先發(fā) | |
去皮 | TARE=N | N為要設(shè)置的皮重值;不帶N參數(shù)時(shí)將當(dāng)前重量做為皮重。 | |
設(shè)置最大稱量和分度 | MAXDIV=Max,Div | Max(最大稱量):;范圍:0~8000000;使用稱臺(tái)功能前需先設(shè)置此值 | |
設(shè)置砝碼重量 | WEIGHT=Span,Zero | 設(shè)置標(biāo)定時(shí)增益和零點(diǎn)分別對(duì)應(yīng)的砝碼重量 | |
設(shè)置置零范圍 | ZERORANGE=Manual,Power | Manual:手動(dòng)清零范圍; | |
手動(dòng)置零 | CLSZERO | 手動(dòng)將稱臺(tái)置零 | |
設(shè)置自動(dòng)零點(diǎn)跟蹤 | ZEROTRACK=Range,Time | Range:跟蹤范圍;參數(shù)范圍:0~10000;單位:0.1d;設(shè)置0時(shí)關(guān)閉零位跟蹤功能 Time:跟蹤時(shí)間;參數(shù)范圍:1~50;單位:0.1s |
5、 基本指令集詳述
詳細(xì)的指令集說明如下列章節(jié)所述。
5.1 握手
指令格式::001CONNECT (001為放大器地址,客戶根據(jù)自己設(shè)定的地址輸入。)
返回格式::001OK
握手指令主要用于判斷設(shè)備是否上電初始化、通信是否正常和是否在線狀態(tài)等。
※握手失敗建議檢查以下問題:1.線路是否連接正確;2.核實(shí)串口號(hào)是否與放大器連接串口號(hào)一致(放大器串口號(hào)怎么看,右擊我的電腦,打開管理,選擇設(shè)備管理器,雙擊端口,然后看到USB serial port+串口號(hào)),;3.電腦上波特率設(shè)置是否和放大器一致;4.數(shù)據(jù)格式是否正確;5.ASC碼協(xié)議時(shí)不要選用十六進(jìn)制;6.串口是否打開。
5.2地址設(shè)置
客戶可通過2種途徑設(shè)置地址,一種是通過撥碼開關(guān)設(shè)定,最多可設(shè)定63種,具體設(shè)置方法已在1.2.4中說明,撥碼開關(guān)需在通電前撥好位置,第二種通過軟件設(shè)置,將SW1到SW6的撥碼開關(guān)都上撥到”off”檔。撥碼開關(guān)通電前撥才有效。
指令格式::001ADDR=002(使用前需解鎖)
返回格式::001OK
5.3波特率設(shè)置
放大器出廠時(shí)默認(rèn)波特率為9600, 修改為115200,輸入格式如下
指令格式::001BAUD=7, 手動(dòng)發(fā)送指令后將系統(tǒng)波特率選擇到115200(使用前需解鎖)
返回格式::001OK(應(yīng)答的數(shù)據(jù)是在變送器切換成新的波特率后返回的,如果上位機(jī)未及時(shí)切換到新的波特率,則無法收到數(shù)據(jù))
5.4數(shù)據(jù)幀格式
放大器出廠時(shí)默認(rèn)為5(8位數(shù)據(jù)位,無校驗(yàn),1位停止位)選項(xiàng)格式,修改為4(8位數(shù)據(jù)位,奇校驗(yàn),1位停止位)選項(xiàng)時(shí)
指令格式::001FRAME=4,手動(dòng)發(fā)送指令后將校驗(yàn)位、數(shù)據(jù)位、停止位在上位機(jī)上設(shè)置成4中內(nèi)容(使用前需解鎖)
返回格式::001OK(應(yīng)答的數(shù)據(jù)是在變送器切換成新的數(shù)據(jù)幀格式后返回的,如果上位機(jī)未及時(shí)切換到新的數(shù)據(jù)幀格式,則無法收到數(shù)據(jù))
5.5協(xié)議類型設(shè)置
協(xié)議可通過撥碼開關(guān)設(shè)置,參考1.2.4,也可通過軟件設(shè)置
指令格式::001PROCOTOL=1
返回格式::001OK
PROCOTOL=N,N可以是0(自由協(xié)議),1(Modbus 協(xié)議),2(ASC協(xié)議),協(xié)議類型切換后,數(shù)字幀格式將恢復(fù)成默認(rèn)值。
5.6指令應(yīng)答延時(shí)設(shè)置
指令格式::001ACKDELAY=200
返回格式::001OK
ACKDELAY=N,N為延時(shí)時(shí)間,單位為ms,應(yīng)答延時(shí)用于RS485通信,因?yàn)?/span>RS485是半雙工,只能發(fā)或收,不能同時(shí)發(fā)收。有些主機(jī)收發(fā)切換比較慢,導(dǎo)致應(yīng)答指令丟失,所以通過合理設(shè)置應(yīng)答延時(shí)時(shí)間可避免指令丟失。
5.7CRC16校驗(yàn)設(shè)置
指令格式::001CRCEN=1
返回格式::001OK
※校驗(yàn)計(jì)算方法:校驗(yàn)位前面所有的數(shù)相加(不含幀頭)并轉(zhuǎn)換為十進(jìn)制數(shù)據(jù),然后取后兩位轉(zhuǎn)換為ASCII碼(十位在前,個(gè)位在后)
加了校驗(yàn)之后發(fā)的指令格式為,如握手001CONNECT計(jì)算48+48+49+67+79+78+78+69+67+84=667,則在001CONNECT后面輸入67
指令格式::001CONNECT67
返回格式::001OK99
5.8連續(xù)發(fā)送測量值
指令格式::001CONTI=1,2,0,100,1
返回格式:14.97、14.97......14.97
(CONTI=Enable, DataType, SendType, Interval, Format, Enable(使能開關(guān)):;01:連續(xù)發(fā)送;0:關(guān)閉;
DataType(數(shù)據(jù)類型):0:測量值;1:AD內(nèi)碼值;2:毛重值;3:凈重值
SendType(發(fā)送類型):0:不管數(shù)據(jù)有沒有變化,都發(fā)送;1:只在數(shù)據(jù)變化時(shí)發(fā)送
Intervals(間隔時(shí)間):連續(xù)發(fā)送間隔時(shí)間,單位ms
Format(發(fā)送格式):0:標(biāo)準(zhǔn)格式;1:簡化格式)
5.9鎖定系統(tǒng)配置
指令格式::001LOCK=5AA5
返回格式::001OK
發(fā)送:001LOCK=5AA5解鎖系統(tǒng)配置,發(fā)送其它任何值則鎖定系統(tǒng)配置。解鎖后可修改模塊地址、波特率、協(xié)議類型、CRC校驗(yàn)、恢復(fù)出廠設(shè)置等寄存器。
※放大器上電后默認(rèn)為鎖定狀態(tài)。
5.10固件版本
返回模塊內(nèi)部程序版本號(hào)給上位機(jī)
指令格式::001VER
返回格式::001VER=100
5.11恢復(fù)出廠設(shè)置
指令格式::001DEFAULT
返回格式:無內(nèi)容
注意此操作將刪除放大器內(nèi)部所有用戶設(shè)置參數(shù)和標(biāo)定結(jié)果,并且不可恢復(fù),請(qǐng)慎用!
5.12讀取測量值
指令格式::001RDMS
返回格式::001MS=4651(數(shù)據(jù)根據(jù)實(shí)際情況變化)
測量值為AD內(nèi)碼值經(jīng)零點(diǎn)和增益標(biāo)定并轉(zhuǎn)換的值。
5.13AD轉(zhuǎn)換速度
指令格式::001CONV=0,0
返回格式::001OK
模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換,簡稱AD轉(zhuǎn)換,AD轉(zhuǎn)換速度越快,采樣精度越低。
AD采樣速率就是稱重設(shè)備對(duì)稱臺(tái)上物品重量的檢測速度,通常在每秒幾次至幾百次之間,高速的稱重應(yīng)用,可達(dá)幾千次,對(duì)于一個(gè)既定的稱重設(shè)備,AD速率越快,AD檢測的數(shù)據(jù)精度會(huì)相對(duì)越差,而AD速率越慢,AD檢測的精度會(huì)相對(duì)越高。因此應(yīng)根據(jù)實(shí)稱重對(duì)速率的需要,合理選擇能滿足需要的最低檔的速率進(jìn)行AD采樣,能最大限度提高檢測精度,從而在速度和精度上取得最佳平衡點(diǎn)。
5.14濾波器設(shè)置
指令格式::001FILTER=1,50
返回格式::001OK
FILTER=Type(濾波方式),Level(濾波強(qiáng)度)
Level(濾波強(qiáng)度):范圍:0~50,數(shù)字越大,濾波越強(qiáng)。
濾波強(qiáng)度:AD采樣后的數(shù)據(jù),由于各種原因,往往會(huì)混雜各種來自于不同原因的噪聲在其中,為了得到一個(gè)盡可能接近真實(shí)的稱重?cái)?shù)據(jù),稱重設(shè)備會(huì)采用數(shù)字濾波的方式進(jìn)行數(shù)據(jù)信號(hào)處理,而AD濾波強(qiáng)度,是這個(gè)數(shù)據(jù)處理的一個(gè)重要參數(shù),一般地,濾波強(qiáng)度越小,數(shù)據(jù)輸出的信號(hào)響應(yīng)速度越快,但是對(duì)噪聲濾除的效果也越差;而濾波強(qiáng)度越大,則輸出的信號(hào)響應(yīng)速度越慢,但是對(duì)于噪聲濾除的效果會(huì)越好,在響應(yīng)速度和濾波效果之間,合理取舍,尋找最佳平衡點(diǎn),是用好一個(gè)稱重設(shè)備關(guān)鍵的一步,這個(gè)沒有確定的標(biāo)準(zhǔn),需要使用者根據(jù)現(xiàn)場情況,做一個(gè)權(quán)衡取舍,究竟是速度優(yōu)先,還是穩(wěn)定優(yōu)先,根據(jù)客戶實(shí)際需要而定。
5.15零點(diǎn)標(biāo)定設(shè)置
指令格式::001CALIZERO=0
返回格式::001OK
零點(diǎn)就是稱重的基準(zhǔn)點(diǎn),在這個(gè)基準(zhǔn)上增減的重量就是實(shí)際稱重的重量。零點(diǎn)標(biāo)定,顧名思義,就是在標(biāo)定的時(shí)候,作為基準(zhǔn)記錄的一個(gè)零點(diǎn),然后在此基礎(chǔ)上做的重量標(biāo)定。
5.16增益標(biāo)定設(shè)置
指令格式::001CALISPAN=100
返回格式::001OK
放上砝碼,輸入想要標(biāo)定的值,比如放1KG砝碼到10KG壓力傳感器上,設(shè)定測量值為1000。當(dāng)標(biāo)定好后,放置2KG的砝碼到壓力傳感器上,讀取的測量值為2000。
5.17讀取內(nèi)碼值
指令格式::001RDAD
返回格式::001AD=32758
模塊返回當(dāng)前AD內(nèi)碼值給主機(jī)。
5.18多點(diǎn)修正關(guān)閉
指令格式::001MTCLOSE
返回格式::001OK
關(guān)閉多點(diǎn)修正功能
5.19讀取修正數(shù)量
指令格式::001RDMTNUM
返回格式::001MTNUM=0
讀取模塊內(nèi)部當(dāng)前使用的多點(diǎn)修正的數(shù)量
5.20設(shè)置標(biāo)定點(diǎn)參數(shù)
指令格式::001MTPARA=100
返回格式::001OK
將參數(shù)寫入到模塊內(nèi)部的多點(diǎn)修正數(shù)據(jù)表中,最多可寫入50組,Measurement為測量值;AD_Code為AD內(nèi)碼值,AD_Code也可以選擇不發(fā)送,這樣模塊會(huì)自動(dòng)將當(dāng)前AD內(nèi)碼值寫入到修正數(shù)據(jù)表中;Measurement和AD_Code的取值范圍為-8000000~8000000
5.21讀取毛重
指令格式::001RDGROSS
返回格式::001GS=50000(根據(jù)實(shí)際數(shù)據(jù))
輸入該指令,模塊返回當(dāng)前毛重值給主機(jī),高位字節(jié)先發(fā)
毛重=凈重+皮重
5.22讀取凈重
指令格式::001RDNET
返回格式::001NT=3000(根據(jù)實(shí)際數(shù)據(jù))
輸入該指令,模塊返回當(dāng)前凈重值給主機(jī),高位字節(jié)先發(fā)
凈重=毛重-皮重
5.23去皮
指令格式::001TARE=100
返回格式::001OK
TARE=N N為要設(shè)置的皮重值;不帶N參數(shù)時(shí)將當(dāng)前重量做為皮重。
范圍:-8000000~8000000;
當(dāng)設(shè)備稱重的物品有包裝時(shí),如果我們只需要稱重物品自身的重量,就要把包裝物作為皮重預(yù)去除。可以把包裝實(shí)物直接放在稱臺(tái)上,然后去皮,TEAR=N,不帶N參數(shù)時(shí)將當(dāng)前重量做為皮重,輸入指令“:001TARE=”,即可直接讀取包裝實(shí)物重量。如果包裝不便分開,而且已知包裝的重量,則可以通過發(fā)送指令把皮重重量輸入稱重設(shè)備,這個(gè)就是所謂的數(shù)字去皮。
5.24設(shè)置最大稱量和分度
指令格式::001MAXDIV=10000,7
返回格式::001OK
MAXDIV=Max,Div
Max(最大稱量):范圍:0~8000000;使用稱臺(tái)功能前需先設(shè)置此值
Div(分度):使用稱臺(tái)功能前需先設(shè)置此值
0:0.0001 1:0.0002 2:0005 3:0.001 4:0.002 5:0.005 6:0.01 7:0.02 8:0.05 9:0.1 10:0.2 11:0.5 12:1 13:2 14:5 15:10 16:20 17:50
舉例說明:有一個(gè)稱重設(shè)備,它最大能稱重的重量是100.00KG,稱重時(shí)數(shù)字跳動(dòng)變化的最小數(shù)字是0.02KG,那么這個(gè)稱的最大稱重,就是100.00KG,也就是說100.00KG是這個(gè)稱能稱量的最大稱量,分度值就是0.02KG,使用稱臺(tái)功能前需先設(shè)置最大稱量和分度。
5.25設(shè)置砝碼重量
指令格式::001WEIGHT=10000,0
返回格式::001OK
WEIGHT=Span,Zero
設(shè)置標(biāo)定時(shí)增益和零點(diǎn)分別對(duì)應(yīng)的砝碼重量
Span:增益標(biāo)定時(shí)對(duì)應(yīng)的砝碼重量
Zero:零點(diǎn)標(biāo)定時(shí)對(duì)應(yīng)的砝碼重量
范圍均為:-8000000~8000000;
5.26設(shè)置置零范圍
指令格式::001ZERORANGE=10,10
返回格式::001OK
ZERORANGE=Manual,Power
Manual:手動(dòng)清零范圍;
Power:上電清零范圍;
單位為滿量程的百分比;參數(shù)范圍為0~100;如果設(shè)置為0,則關(guān)閉相應(yīng)的功能
5.27手動(dòng)置零
指令格式::001CLSZERO
返回格式::001OK
手動(dòng)置零就是通過外部按鍵或者命令讓稱重設(shè)備把當(dāng)前的稱重?cái)?shù)據(jù)直接作為當(dāng)前零點(diǎn),只要當(dāng)前稱重重量不超過手動(dòng)置零的范圍,稱重設(shè)備就會(huì)立即將顯示清零復(fù)位。
5.28設(shè)置自動(dòng)零點(diǎn)跟蹤
指令格式::001ZEROTRACK=10,10
返回式::001OK
ZEROTRACK=Range,Time
Range:跟蹤范圍;參數(shù)范圍:0~10000;單位:0.1d;設(shè)置0時(shí)關(guān)閉零位跟蹤功能
Time:跟蹤時(shí)間;參數(shù)范圍:1~50;單位:0.1s
開機(jī)使用中的稱重設(shè)備,會(huì)因?yàn)?/span>AD溫飄,傳感器溫飄蠕變等各種原因,AD信號(hào)輸出會(huì)發(fā)生漂移現(xiàn)象,設(shè)備內(nèi)的零點(diǎn)跟蹤校準(zhǔn)程序會(huì)對(duì)這個(gè)非常緩慢的漂移做自動(dòng)跟蹤,抵消這個(gè)漂移,但是這個(gè)零點(diǎn)跟蹤的方式是有速度和范圍的。
6、使用步驟
6.1連接好線,通電
6.2握手
6.3零位標(biāo)定
6.4增益標(biāo)定
6.5讀取測量值使用
※以上是放大器的基本操作,如需使用稱臺(tái)功能,除以上步驟外,另加以下步驟
6.6設(shè)置最大稱量和分度
6.7設(shè)置(零位標(biāo)定&增益標(biāo)定)砝碼重量
※零位跟蹤功能是基于稱臺(tái)使用的,所以要先設(shè)置稱臺(tái)功能,才能使用零位跟蹤功能。