
现需要使用8路采集器采用RS485协议组成采集网络。需要开发相应的上位机及数据库。现给出如下要求:
第一部分:软件要求
1、多路采集。周期性读取每一路采集器的采集数据。采集周期可设置
2、数据转换。可以按照所测量的物理量要求作相关数据转换。(转换形式可设置)
3、数据存储。上位机所读取的数据全部保存,并建立相应数据库。可实现Excel报表输出。该输出报表中应能体现出数据的发出位置(采集器编号、通道编号)、时间(精确到秒即可)等信息。如下图:
4、数据显示。可以将周期采到的数据以曲线形式表现出来。(该曲线精度应该能够设置)如下图:
5、所有通道同时显示。坐标曲线应能显示所有通道如下图:
6、操作权限:软件入口,软件操作给出分级权限。通过设置口令实现。
第二部分:通信协议
1、采用RS485 modbus通信协议,波特率使用9600bit/S。
2、数据判断:上行数据最大值为0xc0,最小值为0x30。若大于最大值小于最小值则需要报告传感器错误。以警告窗口弹出。
3、时间判断:发送数据并得到返回值时间大约68mS ,若75mS后没有返回,则认为通讯错误。
4、注意:一帧数据内字节间间隔不应大于1.5字节间隔,否则通讯错误。
接口协议格式
(1) 代码系统
消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII 方式传送更多的数据。
(2)协议中每个字节的位:
| 一个起始位 |
| 8个数据位,低位在前 |
| 无奇偶校验位 |
| 一个停止位 |
| 累加和校验 |
(4)AD转换精度:10位
(5)从机地址可由拨码开关来进行设定,范围:0~255
(6)协议中的功能域代码:
| 功能代码 | 含义 | 功能 |
| 0x03 | 读数据寄存器 | 读采集的数据 |
新的信息总是以至少3.5个字符的静默时间开始,紧接着传送第一个域:设备地址。
整帧的信息必须以一个连续的数据流进行传输,如果信息结束前存在1.5个字符以上的时间间隔,则出错。下位机不对错误帧进行回复,上位机通过超时来处理该错误帧。
一帧信息的标准结构如下:
| 开始 | 地址通道域 | 功能码域 | 数据域 | 校验域 | 结束 |
| T1-T2-T3-T4 | 2*8位 | 8位 | N*8位 | 8位 | T1-T2-T3-T4 |
6.2上位机命令帧数据格式
数据命令帧是通知下位机上传数,数据命令帧的格式如下:
| 从机地址 | 0X00 | 功能码 | 累加校验和 |
0X03:该命令要求下位机上传采样数据。
0X04:该命令要求上传设备序列号。
写入设备序列号命令格式:
| 0X00 | 0X00 | 0X05 | 0X08 | 八字节数据 | 累加校验和 |
下位机上传数据帧总的数据格式如下:
| 从机地址 | 00H | 功能码 | 数据长度 | 具体数据 | 累加校验和 |
通道号若为0:返回8个通道的数据,顺序依次为1、2、3、4、5、6、7、8通道,每通道1个字节;
通道号为1~8,返回对应通道的数据;
在8通道数据采集模式下,数据长度为8字节,每通道占1字节(依次为通道1~8);在单通道下,上传一通道数据,数据长度为1个字节。
