提供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;
当设备称重的物品有包装时,如果我们只需要称重物品自身的重量,就要把包装物作为皮重预去除。可以把包装实物直接放在称台上,然后去皮,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设置(零位标定&增益标定)砝码重量
※零位跟踪功能是基于称台使用的,所以要先设置称台功能,才能使用零位跟踪功能。