栏目类别
推荐产品
CI503P探头分离式色彩亮度计
CL503P探头式色彩照度计
CL138UV 能量计
CL503色彩照度计
CI510S小口径色彩分析仪
CL300色彩照度计
CI300色彩分析仪
CI808光谱色彩分析仪
CI510色彩分析仪
CI810光谱色彩分析仪
联系方式
邮箱:info@huicolor.com
电话:0755-23179385
手机:13316532084
地址:深圳市龙华区大浪街道星越大厦316
技术文章
CL照度计和CI亮度计通讯指令说明和二次开发平台说明
- 发布时间:2026-07-23
- 浏览次数:1
一 通讯概述
1.1 通讯说明
照度计和亮度计与PC电脑通讯的物理接口方式:串口(USB转虚拟串口,win10或win11电脑免驱动)或BLE蓝牙。
通讯协议:基于串口的Modbus RTU协议,照度计和亮度计默认设备地址为1。
高配的照度计和亮度计可测试80多项光度和色度参数,PC电脑可通过读取对应寄存器地址,读取对应的参数数据,配置弹性灵活,适应性强,读取指令和寄存器地址参照对应的技术文档。
通过USB bub扩展,一台PC电脑可以连接最多255台照度计和亮度计同步测试,借助HUICOLOR开发demo示例,用户可以快速部署自己的项目,实现多台设备同步测试各种光度参数。
图 1
1.2 通讯流程
PC电脑连接照度计和亮度计后,PC向仪器发送测试指令的流程如图2所示:
图 2
PC电脑连接照度计和亮度计后,PC向仪器发送读取仪器记录的流程如图3所示:

图 3
1.3 通讯参数说明
由于所有寄存器的值是直接读取仪器的数据,仪器数据是按小端存储,所以所有寄存器值都要先对调字节序,然后转换成字节数组再按相应类型组装起来。
数据类型说明:
A.Float:单精度浮点数,4字节,用两个寄存器存储;
B.Int32:有符号32位整数,4字节,用两个寄存器存储;
C.UInt32:无符号32位整数,4字节,用两个寄存器存储;
D.Int16:有符号16位整数,2字节,用一个寄存器存储;
E.UInt16:无符号16位整数,2字节,用一个寄存器存储;
F.Bytes[N]:字节数组,每个寄存器存储两个字节;
G.Bool:存尔类型,一位。
文档“照度计,亮度计Modbus通讯寄存器说明.xlsx”寄存器列表中的值并非所有型号的仪器都有效,如在支持400-700nm光谱范围的仪器,400nm以下及700nm以上的辐射光谱数据为无效值,具体哪些数据有效,可参考仪器规格书中所支持的参数。
具体如何转换请参考示例程序(C# DEMO)。

图 4

图 5
二 通讯命令说明
2.1 Modbus命令说明
注:除了modbus的寄存地址及长度,所有其他结构化数据都是小端模式.
2.2 读取仪器状态
- 类型:离散量输入;
- 地址:0x0000;
- 数量:`8`位;
状态位说明:
- `status[0]`: busy位,置位表示忙,复位表示就绪;
- `status[1]`: 操作执行结果指示,1表示执行成功,0表示执行失败;
- `status[2:7]`: 保留;
注意:像下面的测量、删除记录等操作都不会立即完成,需要读取状态查看是否执行结果.
2.3 获取仪器信息
- 类型:输入寄存器;
- 地址:0x0000;
- 数量:`sizeof(struct DeviceInfo_t)`字节;
struct DeviceInfo_t {
char model_name[20]; // 仪器型号名称
char sn[10]; // 序列号
char software_version[20]; // 软件版本
char hardware_version[20]; // 硬件版本
uint16_t product_id; // 产品识别码
char probe_number[12]; // 测量头编号
};
2.4 设置仪器时间
- 类型:保持寄存器;
- 地址:0x0000;
- 数量:`3`半字,必须同时输入;
struct Time_t {
uint8_t year; // 年份-2000
uint8_t month; // 月
uint8_t day; // 日
uint8_t hour; // 时
uint8_t minute; // 分
uint8_t second; // 秒
};
2.5 测量
- 类型:保持寄存器;
- 地址:0x0100;
- 数量:1,指明测量类型,`0`表示自动,大于零的值表示积分时间,单位为`ms`。
测量比较慢,可以通过遍历状态位来查看测量是否完成,将状态变成就绪且结果ok时,可以通过`读取测量结果`读取.
2.6 读取测量结果
- 类型:输入寄存器;
- 地址: 0x1000;
- 数量:256,数据结构参考`Record_t`。
2.7 获取记录个数
- 类型:输入寄存器;
- 地址:0x200;
- 数量:1;
2.8 读取记录
读取记录需要先通过`设置读取ID`设置要读取的记录的ID,然后读取下面的地址
- 类型:输入寄存器;
- 地址:0x2000;
- 数量:256
2.9 写入记录
先在下面地址写入要存储的记录:
- 类型:保持寄存器
- 地址:0x2000
- 数量:256
然后通过执行`设置写入记录ID`将让记录写入到指定ID位置。
......
三 仪器在电脑PC端的二次开发
注:本文档仅作为相关技术方案的示例阐述与可行性说明使用,文档中提及的所有软件均不提供任何非授权安装包,请您务必通过对应产品的官方网站、正规授权代理商等合法合规渠道获取正版软件。
QModBus是和串口助手一样的通用软件,QModBus RTU本质还是串口通讯,通讯和串口大同小异。用户可以借助QModBus助手快速与仪器通讯进行初步验证。
3.1 C++平台的二次开发
libmodbus驱动库是一个基于C语言实现的Modbus驱动库,可以部署MFC上。Qt平台可以QModbusRtuSerialServer类构建串口服务器,通过该类来构建PC电脑和仪器的通讯,开发适合自己的应用程序。
上位机软件HIQC就是采用QT平台开发的。
图 6
3.2 C#平台的二次开发
C#中实现Modbus通信主要通过NModbus库完成,通过该库来构建PC电脑和仪器的通讯。参照例程DEMO,快速实现多台仪器的同步测试。
图 7
3.3 LabView的二次开发
labVIEW中实现Modbus通信主要通过NI Modbus Libaray库完成,通过该库来构建PC电脑和仪器的通讯,参照例程DEMO,快速实现测试。
图 8
- 上一篇:CL800照度计与PC电脑的通讯说明
- 下一篇:没有了


