磁致伸缩位移传感器通讯协议
1.1 磁致伸缩位移传感器串行通信口采用RS485或者RS232;
1.2 位移传感器信息传输方式为异步方式,起始位1位,数据位8位,停止位1位,无校验;
1.3 数据传输速率默认为9600b/s。客户可在2400-115200 b/s之间进行设置
2 上位机单元与本模块的通信为主从方式, 上位机呼叫模块并下发命令,模块收到命令后返回响应信息。正常相应时间小于10毫秒,上位机在100ms内接收不到模块响应或接收响应信息错误,则认为本次通信过程失败。在问答模式时,为了保证成功率,建议上位机发出两帧信息之间间隔要大于20毫秒。
3.1 信息类型
信息分两种类型:由上位机发出到模块的命令信息;由模块返回到上位机的响应信息。
3.2 协议的基本格式(MODBUS RTU)采用MODBUS RTU模式
4上位机发送指令汇总
上位机发送指令举例(十六进制,以地址01H为例,):
上位机发送 | 定义 | 下位机返回 | 备注或者指令释义 |
01 03 00 00 00 01 84 0A | 查询位移(16位) | 01 03 02 03 E8 B8 FA | 03 E8为16位数据 |
01 03 00 00 00 02 C4 0B | 查询位移(32位) | 01 03 04 00 00 03 E8 FA 8D | 00 00 03 E8为32位数据一般仅仅用于脉冲 |
01 03 00 01 00 01 CB CF | 查询速度(16位) | 01 03 02 03 E8 B8 FA | 适用于带速度输出型 |
01 06 00 40 00 00 88 1E | 数据清零 | 01 06 00 40 00 00 88 1E | |
01 06 00 42 00 02 A8 1F | 设置地址 | 01 06 00 42 00 02 A8 1F | 将地址改为02 |
01 06 00 44 27 11 12 23 | 标定数据 | 01 06 00 44 27 11 D3 E3 | 2711H即10001表示将当前数据标定为1000.1 |
01 06 00 46 00 05 A8 1C | 设置波特率 | 01 06 00 46 00 05 A8 1C | 波特率改为19200 |
01 06 00 48 00 03 49 DD | 设置滤波系数 | 01 06 00 48 00 03 49 DD | 设置滤波系数为3对于正交编码输入此项无效 |
01 06 00 4A 00 05 68 1F | 设置发送时间间隔 | 01 06 00 4A 00 05 68 1F | 设为0.5S 定时发送 |
01 06 00 4C 00 02 C9 DC | 设置AD速率 | 01 06 00 4C 00 02 C9 DC | 设置AD速率,低速AD专用 |
01 06 00 4E 00 0A 69 DA | 设置速度更新率 | 01 06 00 4E 00 0A 69 DA | 设置速度每秒更新一次 |
01 06 00 52 00 01 E9 DB | 设置奇偶校验 | 01 06 00 52 00 01 E9 DB | 设置偶校验 |
说明
1、CRC为MODBUS RTU中规定的CRC16 本协议高8位在前低8位在后。上表发送和返回数据的最后2字节均为前面所有字节的CRC。CRC的计算法请查阅MODBUS标准或者咨询厂家。定时发送间隔最大200秒。
2、查询的数据默认为1位小数(例如如果是1位小数。则传送数据均为放大10倍,如十六进制03E8 即十进制1000,表示100.0)。
3、设置地址的范围是1-99。
4、滤波系数的范围是0-9,0为不滤波 9为最强滤波。
5、设置波特率范围为0-9,具体解释0-600bps 1-1200 bps;2-2400 bps 3-4800bps 4-9600 bps;5-19200 bps;6-38400; 7-56000; 8-57600; 9-115200 ;默认4-9600
6、默认地址是01 默认波特率9600;
7、设置速率范围为0-3 对应的采集速率分别是每秒8,16,32,128次,对应原始AD位数16 15 14 12,对应AD数分别为 65536, 32768, 16384,4096
8、设置连续发送,如果设置为0,表示禁止连续发送,1代表每0.1秒发送一次,最长20秒发送一次。
9、设置速度更新率,1代表每0.1秒更新一次,设置范围为1-200(0.1秒到20秒)上表中0A(也就是十进制10)表示1秒更新一次,速度表示的是每秒位移的变化量。
10、设置奇偶校验 00-8个数据位无校验 01-8数据位偶校验 02-8数据位奇校验 03-7数据位偶校验 04-7数据位奇校验 05-9数据位无校验
11、所以指令均可以用00地址进行广播通讯,如果是查询,会按本身地址返回,所有指令均有效。特别的如果修改地址可以发送 00 06 00 42 00 DD CRCH CRCL(其中DD是要修改的地址)。
下表为地址为01到32(20H)时查询16位数据的指令
01 03 00 00 00 01 84 0A | 02 03 00 00 00 01 84 39 | 03 03 00 00 00 01 85 E8 | 04 03 00 00 00 01 84 5F |
05 03 00 00 00 01 85 8E | 06 03 00 00 00 01 85 8D | 07 03 00 00 00 01 84 6C | 08 03 00 00 00 01 84 93 |
09 03 00 00 00 01 85 42 | 0A 03 00 00 00 01 85 71 | 0B 03 00 00 00 01 84 A0 | 0C 03 00 00 00 01 85 17 |
0D 03 00 00 00 01 84 C6 | 0E 03 00 00 00 01 84 F5 | 0F 03 00 00 00 01 85 24 | 10 03 00 00 00 01 87 4B |
11 03 00 00 00 01 86 9A | 12 03 00 00 00 01 86 A9 | 13 03 00 00 00 01 87 78 | 14 03 00 00 00 01 86 CF |
15 03 00 00 00 01 87 1E | 16 03 00 00 00 01 87 2D | 17 03 00 00 00 01 86 FC | 18 03 00 00 00 01 86 03 |
19 03 00 00 00 01 87 D2 | 1A 03 00 00 00 01 87 E1 | 1B 03 00 00 00 01 86 30 | 1C 03 00 00 00 01 87 87 |
1D 03 00 00 00 01 86 56 | 1E 03 00 00 00 01 86 65 | 1F 03 00 00 00 01 87 B4 | 20 03 00 00 00 01 82 BB |