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