钡铼技术EdgeIO控制器系列BL190_说明书_V1.1
版本:V1.1 日期:2026-05-25 版权:深圳市钡铼技术有限公司 网址:https://www.bliiot.cn
EdgeIO控制器系列 BL190 Modbus协议边缘I/O控制器
BL190说明书

版权声明
本说明书之所有权由深圳市钡铼技术有限公司所有。未经本公司之书面许可,任何单位和个人无权以任何形式复制、传播和转载本手册之任何部分,否则一切后果由违者自负。
免责声明
本产品主要用于工业现场自动化测量和控制,操作人员必须是自动化或电气领域中具有经验的电气专家。请按照说明书提供的参数和技术规格使用,本公司不承担由于不正常使用或不恰当使用本产品造成的财产或人身伤害。
前言
感谢您使用深圳市钡铼技术有限公司的EdgeIO控制器系列产品,本说明书详细阐述了产品功能特性、操作规范及安全注意事项。为确保设备安全运行,请在安装、调试及使用前仔细阅读并妥善保存本文件。
修订记录
| 更新日期 | 文档版本 | 说明 | 作者 |
|---|---|---|---|
| 2025年05月26日 | V1.0 | 初版 | HYQ |
| 2026年05月25日 | V1.1 | 优化说明,优化脉冲输出和计数模块 | HYQ |
产品简介
概述
Modbus协议边缘I/O控制器是钡铼技术推出的工业级EdgeIO控制器,作为一款集数据采集、逻辑控制、远程运维于一体的多功能边缘计算设备,BL190 支持 1-3 个 IO 扩展槽位,用户可根据现场需求自由组合数字量、模拟量、温度、串口等多种 I/O 模块,灵活适配各类工业自动化场景。例如,BL190可以搭配3块Y11(8DI)组成24DI独立式IO模块,或者混搭不同类型的IO板,如Y11(8DI)、Y31(4AI)、Y52(2PT)即可组合成8DI+4AI+2PT独立式IO组成一个既有数字输入(DI)、模拟输入(AI)、又有热电阻输入(PT)的IO模块。它不仅可以作为 PLC 的远程 IO 扩展,更能独立完成寄存器运算、逻辑判断等控制任务,有效降低系统成本和复杂度。
一台 BL190,即可替代传统“PLC + I/O 模块 + 网关”的繁琐组合。

BL190 Modbus协议边缘I/O控制器采用电气隔离技术,通过EMC/EMI测试及-45~80℃高低温验证,内置独立硬件看门狗,确保在严苛环境下长期稳定运行。广泛应用于智能制造、能源电力、智慧楼宇、轨道交通、现代农业等领域,为工业物联网和自动化系统提供高可靠、易部署、易维护的边缘层解决方案。
典型应用
典型应用案例:包装产线数据采集与 SCADA 集成
背景
某食品包装工厂拥有一条自动化灌装线,包含灌装机、封口机、贴标机、装箱机等 8 台设备。原有控制系统为独立的 PLC 和普通 I/O,现场数据(如产量计数、故障报警、设备运行状态)无法集中监控。工厂已部署 SCADA 系统(支持 Modbus TCP),但设备层数据接口不统一,需要人工巡视并记录产量,导致生产统计滞后,故障响应慢。
痛点总结:
设备分散,各机台独立运行,无统一数据平台。
普通 I/O 模块无法直接与 SCADA 通信。
需要增加 PLC 作为主站,但点位不多、改造成本偏高。
无法远程查看产量和故障,管理人员依赖现场报表。
改造方案
采用 BL190 作为每个机台的边缘节点,替代原有的普通 I/O 模块,并将数据统一上传至 SCADA 系统。
硬件配置(以灌装机为例):
选用 Y11(8DI):采集灌装机运行/待机/故障干接点、安全门状态、物料到位传感器
选用 Y22(8DO):控制灌装机启停、报警灯、电磁阀
选用 Y31(4AI):采集灌装压力(420mA)、液位传感器
Modbus RTU采集:采集灌装瓶数脉冲,本地累积产量
本地逻辑控制:
利用 BL190 内置 Web 配置实现配置
液位低于下限 → 打开进料阀(DO),同时上报 SCADA
安全门打开 → 立即停止灌装机(DO),并记录故障原因
每日产量脉冲自动累加,每日 00:00 自动清零,同时将前一天总产量写入保持寄存器供 SCADA 读取
Modbus TCP 对接 SCADA:
SCADA 系统通过以太网轮询各 BL190 的寄存器地址
数字量输入(DI)地址 2000~2007 → 设备状态
数字量输出(DO)地址 1000~1007 → 远程控制启停
模拟量输入(AI)地址 3000~3003 → 压力、液位
保持寄存器 40000~40009 → 当日产量、累计产量、故障代码
每个机台的 BL190 作为 Modbus TCP 服务器(默认端口 502)
双网口级联简化布线:
将 8 台 BL190 通过菊花链方式连接(ETH0 接上一台,ETH1 接下一台),仅需一根总线连接至车间交换机,节省布线成本。
远程运维:
设备工程师通过 BLRAT 远程工具,在办公室即可修改 BL190 的报警阈值(如液位上下限)、清零产量寄存器、检查 I/O 状态,无需进入生产车间。
案例点睛:BL190 以极低的成本将传统生产线上“各自为政”的普通 I/O 节点转变为标准的 Modbus TCP 设备,与 SCADA 无缝对接。其双网口菊花链布线、内置逻辑控制与远程运维功能,让中小型产线的数字化改造变得简单、经济、可复制。
更多典型应用领域
| 领域 | 应用说明 |
|---|---|
| 智能制造 | 作为 PLC 远程 I/O 扩展,独立完成传送带启停、到位检测、故障报警等 |
| 智慧楼宇 | 连接照明、空调、门禁、风机,支持 Modbus TCP 直接接入 BAS |
| 农业与环境 | 监测温湿度、CO₂,控制风机、水阀、卷膜电机,本地阈值报警并上云 |
| 能源管理 | 储能柜电池监测、配电房数据采集、光伏电站监控,支持断网缓存与远程运维 |
| 轨道交通 | 地铁站设备状态监测、隧道环境控制,满足宽温高可靠性要求 |
| 物联网系统 | 作为边缘节点采集传感器数据,通过 Modbus TCP 直连公有云,本地执行联动逻辑 |
| 风力发电 | 监测机组状态、转速、风速、温度、报警信号,实现远程运维 |
功能特点
灵活的组合选项:用户可以根据需求自由组合1-3块Y系列IO板,支持多种配置,如24DI、16DI+8DO、8DI+4AI+2PT等,满足不同工业自动化场景的需求。
多样化的类型:支持数字量输入(DI)、数字量输出(DO)、模拟量输入(AI)、模拟量输出(AO)、热电阻输入(PT)和热电偶输入(TC)、数字量输入输出混合IO(DIDO)和脉冲输出/脉冲计数混合IO,适用于各种信号采集和控制任务。
工业级设计:通过EMC/EMI测试和-45~80℃宽温测试,能够在恶劣的环境条件下稳定运行,确保系统的可靠性。
标准化接口:通过标准Modbus TCP协议,与各类PLC和HMI无缝集成,简化了配置和使用过程。
边缘计算功能:内置逻辑控制和边缘计算,能够在本地执行一些简单的任务,减少对中央控制器的依赖。
交换机功能:配置2个RJ45接口,内置交换机功能,能够轻松建立线路拓扑结构,减少对额外交换机或集线器的需求,简化网络配置。
数据采集:自带1路隔离的RS485,支持Modbus RTU主站/从站双模式,可直连接智能仪表、传感器等设备,也可作为从站响应上位机指令;也可以通过网口采集Modbus TCP设备数据。
远程维护:集成BLRAT(Beilai Remote Access Tool),支持远程固件升级及参数配置,无需到现场调试与修改。
设备选型
EdgeIO控制器系列设备选型
| 编号 | 名称 | 型号 | 上行协议 |
|---|---|---|---|
| 1 | Modbus协议边缘I/O控制器 | BL190 | Modbus |
| 2 | OPC UA协议边缘I/O控制器 | BL191 | OPC UA |
| 3 | MQTT协议边缘I/O控制器 | BL192 | MQTT |
| 4 | 工业物联网边缘I/O控制器 | BL192Pro | MQTT、Modbus TCP、OPC UA |
| 5 | SNMP协议边缘I/O控制器 | BL193 | SNMP |
| 6 | EtherNet/IP I/O模块 | BL194 | EtherNet/IP |
| 7 | BACnet/IP协议边缘I/O控制器 | BA190 | BACnet/IP |
| 8 | 智慧楼宇边缘I/O控制器 | BA190Pro | BACnet/IP、MQTT、Modbus TCP、OPC UA |
Y系列IO模块选型
| 编号 | 名称 | 型号 | 通道 | 信号类型 |
|---|---|---|---|---|
| 1 | 8通道数字量混合模块 | Y01 | 8 | 4DI+4DO NPN |
| 2 | 8通道数字量混合模块 | Y02 | 8 | 4DI+4DO PNP |
| 3 | 8通道数字输入模块 | Y11 | 8 | NPN(低电平触发) |
| 4 | 8通道数字输入模块 | Y12 | 8 | PNP(高电平触发) |
| 5 | 8通道数字输入模块 | Y13 | 8 | 干接点 |
| 6 | 8通道数字输出模块 | Y21 | 8 | PNP |
| 7 | 8通道数字输出模块 | Y22 | 8 | NPN |
| 8 | 4通道继电器输出模块 | Y24 | 4 | Relay |
| 9 | 4通道模拟输入模块 | Y31 | 4 | 0-20mA/4-20mA输入 |
| 10 | 4通道模拟输入模块 | Y33 | 4 | 0-5V/0-10V单端输入 |
| 11 | 4通道模拟输入模块 | Y34 | 4 | 0-5V/0-10V差分输入 |
| 12 | 4通道模拟输入模块 | Y36 | 4 | ±5V/±10V差分输入 |
| 13 | 4通道模拟输出模块 | Y41 | 4 | 0-20mA/4-20mA输出 |
| 14 | 4通道模拟输出模块 | Y43 | 4 | 0-5V/0-10V输出 |
| 15 | 4通道模拟输出模块 | Y46 | 4 | ±5V/±10V 输出 |
| 16 | 2通道RTD输入模块 | Y51 | 2 | 三线制PT100 |
| 17 | 2通道RTD输入模块 | Y52 | 2 | 三线制PT1000 |
| 18 | 2通道RTD输入模块 | Y53 | 2 | 四线制PT100 |
| 19 | 2通道RTD输入模块 | Y54 | 2 | 四线制PT1000 |
| 20 | 4通道TC输入模块 | Y58 | 4 | TC(B/E/J/K/N/R/S/T) |
| 21 | 4通道串口通信模块 | Y61 | 4 | 4*RS485/RS232可选 |
| 22 | 8通道脉冲输出和脉冲计数模块 | Y95 | 8 | 4通道脉冲输+4通道脉冲计数(NPN) |
| 23 | 8通道脉冲输出和脉冲计数模块 | Y96 | 8 | 4通道脉冲输出+4通道脉冲计数(PNP) |
设备描述
尺寸
单位:mm

尺寸图
电源接口和指示灯
| 名称 | 描述 | ||
|---|---|---|---|
| DC V+ | 24V DC+ | ||
| GND | 0V DC | ||
| PGND | 接大地 | ||
| PWR | 电源指示灯 | 常亮 | 电源接通 |
| 灭 | 电源故障 | ||
| RUN | 系统运行灯 | 闪烁 | 设备正常运行 |
| 灭/常亮 | 设备故障 |

RJ45网口

通过ETH 0网口连接到基于Modbus TCP的现场总线中,ETH1用于连接其他需要接入的EdgeIO控制器节点。ETH 0默认IP为:192.168.3.2。
信号接口

每个卡槽的信号不一样,接线就不一样,具体接线看侧面的标签说明。
RS485接口

BL190自带一路RS485口,在网页配置中,串口COM1指的是这个RS485接口,需要增加串口请选Y61 IO版,BL190最多只能5个串口。
恢复出厂按钮
此按钮用于将设备配置参数恢复到出厂状态。
操作方法:在设备处于正常运行状态下,长按5秒以上,直到全部LED灯熄灭表明操作成功,然后设备会自动重启。

产品安装
支持壁挂式和导轨式安装。

BL190 Modbus协议边缘I/O控制器
BL190 Modbus协议边缘I/O控制器概述
Modbus协议边缘I/O控制器支持标准Modbus TCP服务器通讯,以太网支持双网口交换机级联功能。设备支持15个客户端同时访问,支持01/02/03/04/05/06/15/16号功能码。
技术参数
| 名称 | 参数 | 描述 |
|---|---|---|
| 电源 | 供电电源 | 24VDC |
| 功耗 | 55mA@24VDC | |
| 反接防护 | 支持 | |
| 以太网 | 数量 | 2 X RJ45 |
| 传输介质 | 双绞线,STP 100 Ω Cat 5 | |
| 最大线缆长度 | 100m | |
| 速率 | 10/100 Mbit/s | |
| 隔离保护 | ESD :±6kV(接触),±8kV(空气); EFT:1kV,5kHz。 | |
| 串口 | 串口数量 | 1x RS485+Y61可选(4xRS485/RS232可选) |
| 串口波特率 | 2400bps-230400bps | |
| 数据位 | 8 | |
| 校验位 | None,Even,Odd | |
| 停止位 | 1,2 | |
| 串口保护 | ESD :±6kV(接触),±8kV(空气); EFT:1kV,5kHz。 | |
| DIDO (可选) | 数字量输出参数 | |
| 通道 | 4通道 | |
| 输出类型 | Y01:输出低电平有效,输出0VDC。 Y02:输出高电平有效,输出24VDC。 | |
| 每个通道输出最大电流 | 100mA | |
| 隔离保护 | 2KVrms | |
| 数字量输入参数 | ||
| 通道 | 4通道 | |
| 触发方式 | Y01:低电平触发Y02:高电平触发 | |
| 逻辑电平 | Y01: 逻辑1:+15 ⋯+30VDC 逻辑0:-3 ⋯+5VDC 公共端:接电源+ Y02: 逻辑1:+15 ⋯+30VDC 逻辑0:-3 ⋯+5VDC 公共端:0VDC | |
| 隔离保护 | 2KVrms | |
| DI (可选) | 通道 | 8通道 |
| 输入类型 | 支持干接点和湿接点(NPN或PNP) | |
| Y13干接点 | 闭合:与COM 短路 断开:断路 | |
| Y11(NPN) | 逻辑1:+15 ⋯+30VDC 逻辑0:-3 ⋯+5VDC 公共端:接电源+ | |
| Y12(PNP) | Y12: 逻辑1:+15 ⋯+30VDC 逻辑0:-3 ⋯+5VDC 公共端:0VDC | |
| 隔离保护 | 2KVrms | |
| DO (可选) | 通道 | 8通道 |
| 输出类型 | Y21:输出高电平有效,输出24VDC。 Y22:输出低电平有效,输出0VDC。 | |
| 每个通道输出最大电流 | 100mA | |
| 隔离保护 | 2KVrms | |
| 继电器 (可选) | 通道 | 4通道 |
| 输出类型 | 继电器输出 | |
| 最大开关电压 | 250VAC/30VDC | |
| 最大开关电流 | 2A | |
| 开关功率 | 30W | |
| 隔离保护 | 2KVrms | |
| AI (可选) | 通道 | 4通道 |
| 输入方式 | 单端输入/差分输入 | |
| 输入类型 | 0 ⋯20mA / 4 ⋯20mA (4线制) 0-5V/0-10V(4线制) -5-5V/-10-10V(4线制) | |
| 分辨率 | 16 Bit | |
| 精确度 | ±0.1 % FSR @ 25 ℃ | |
| 采样周期 | 300ms | |
| 电流输入内置电阻 | 249Ω | |
| AO (可选) | 通道 | 4通道 |
| 输出类型 | 0 ⋯20mA / 4⋯20mA 0-5V/0-10V -5-5V/-10-10V | |
| 分辨率 | 12bit | |
| 精确度 | ±0.1 % FSR @ 25 ℃ | |
| 转换时间 | 20ms | |
| 负载阻抗(电流模式) | ≤1KΩ | |
| 负载阻抗(电压模式) | ≥5KΩ | |
| RTD (可选) | 输入类型 | 3线制或4线制PT100和PT1000线制 |
| 测量范围 | PT100(-200~850℃)、PT1000(-50~300℃) | |
| 分辨率 | 15 Bit | |
| 精确度 | ±1℃ 20m以内AWG16屏蔽线 | |
| 采集周期 | 400ms | |
| TC (可选) | 传感器类型 | J、K、T、E、R、S、B、N |
| 分辨率 | 16 Bit | |
| 精确度 | ±0.5% @25℃ | |
| 采集周期 | 400ms | |
| 脉冲输出和脉冲计数模块(可选) | 脉冲输出参数 | |
| 通道 | 4通道 | |
| 输出延时 | <1ms | |
| 占空比 | 0~1000(0%~100%),自定义设置。 | |
| 最大开关频率 | 40KHz | |
| 隔离保护 | 2KVrms | |
| 脉冲计数参数 | ||
| 通道 | 1路高速计数+3路低速计数 | |
| 最大开关频率 | 高速:最大150KHz,低速:最大10KHz | |
| 计数范围 | 32位无符号 | |
| 隔离保护 | 2KVrms | |
| 系统 | 操作系统 | Linux |
| 主频 | 300MHz | |
| RAM | 64MB | |
| Flash | 128MB | |
| 协议 | Modbus TCP , HTTP , DHCP , DNS | |
| 最大连接数 | 15 Modbus TCP | |
| 环境 | 工作温度、湿度 | -40~85℃,5~95% RH |
| 存储温度、湿度 | -40~85℃,5~95% RH | |
| 其他 | 外壳 | 塑胶材质 |
| 尺寸(1*I/O模块) | 30mm×83mm×110mm(LWH) | |
| 尺寸(3*I/O模块) | 40mm×83mm×110mm(LWH) | |
| 净重(1*I/O模块) | 133g | |
| 净重(3*I/O模块) | 171g | |
| 防护等级 | IP30 | |
| 安装方式 | 壁挂式、导轨式 | |
| 安规认证 | EMC | CE、FCC |
| EMS | IEC 61000-4-2 (ESD) Level 3 | |
| IEC 61000-4-4 (EFT) Level 3 | ||
| IEC 61000-4-5 (Surge)Level 3 | ||
| 振动 | IEC 60068-2-6 |
Modbus 寄存器映射
BL190现场I/O模块节点内部寄存器映射由2部分组成,一部分是数字输入输出和模拟输入输出模块的数据映射组成,地址范围是1000 ... 9999;另外一部分是modbus采集数据,地址范围是10000 ... 49999。
Modbus寄存器映射-本机I/O模块
| Modbus 地址 | 数据类型 | 访问 | 功能码 | 描述 | |
|---|---|---|---|---|---|
| 10进制 | 16进制 | ||||
| 1000…1999 | 0x03 E8…0x07 CF | 1 Bit | 读/写 | 0x01/05/0F | 数字输出DO |
| 2000…2999 | 0x07 D0…0x0B B7 | 1 Bit | 只读 | 0x02 | 数字输入DI |
| 3000…3999 | 0x0B B8…0x0F 9F | 32 Bit Float | 只读 | 0x04 | 模拟输入AI |
| 4000…4999 | 0x0F A0…0X13 87 | 32 Bit Float | 读/写 | 0x03/10 | 模拟输出AO |
| 5000…8999 | 0x13 88…0x23 27 | 32 Bit Unint | 读/写 | 0x03/10 | PWM输出和DI计数 |
| 50000...50015 | 0xC350…0xC35F | 32 Bit Float | 读/写 | 0x03/10 | 逻辑应用时可以存放值的寄存器 |
Modbus寄存器映射-modbus采集数据
| Modbus 地址 | 数据类型 | 访问 | 功能码 | 描述 | |
|---|---|---|---|---|---|
| 10进制 | 16进制 | ||||
| 10000…19999 | 0x27 10…0x4E 1F | 1 Bit | 读/写 | 0x01/05/0F | 数字输出DO |
| 20000…29999 | 0x4E 20…0x75 2F | 1 Bit | 只读 | 0x02 | 数字输入DI |
| 30000…39999 | 0x75 30…0x9C 3F | 16 Bit | 只读 | 0x04 | 模拟输入AI |
| 40000…49999 | 0x9C 40…0XC3 4F | 16 Bit | 读/写 | 0x03/06/10 | 模拟输出AO |
EdgeIO控制器连接
BL190 EdgeIO控制器有2个以太网接口,内部集成交换机功能,工作在存储转发操作模式,每个端口支持10/100 Mbit的传输速度以及全双工和半双工传输模式。
EdgeIO控制器只能通过ETH 0接口连接到基于以太网的现场总线中,ETH1用于连接其他需要接入以太网的节点。
内部集成的交换机支持旁路模式,当EdgeIO控制器系统故障时可以自动启动旁路模式,自动维持 ETH 0 和 ETH 1的链接。
这些以太网接口的接线符合 100BaseTX 的规范,该规范规定使用 5 类双绞线电缆作为连接电缆。可以使用最大长为 100 m的电缆类型 S/UTP(屏蔽非屏蔽双绞线)和 STP(屏蔽双绞线)。







还可以通过 ETH 0 和计算机直连。
登录网页配置
BL190 EdgeIO控制器内置web服务器是一个基于浏览器的配置实用程序。当节点连接到您网络时,您可以在 Web 浏览器中输入服务器的 IP 地址以访问 Web 控制台。
连接与IP配置
想要顺利的访问BL190 EdgeIO控制器节点,必须要将它正确的安装并且和计算机建立连接。除此之外还要给它们配置正确的IP地址,使他们保持在同一个网段内。
连接计算机和EdgeIO控制器
将现场总线节点安装到DIN35导轨上。按照“产品安装”章节中的安装说明进行操作。
将 24 V 电源连接到电源端子。
计算机和总线节点可以通过2种方式建立连接,一种是两者通过以太网接口接入本地局域网的交换机设备;另一种是两者点对点直接相连。详细步骤请按照“EdgeIO控制器连接”章节中的说明进行操作。
将电源开机,开始供电。
I/O模块上电工作后被初始化,同时根据现场总线节点的 I/O 模块配置并创建过程映像。
配置计算机IP地址
在 PC 端,有两种方法配置其 IP 地址;一种是在PC 的本地连接上开启自动获取 IP 地址选项,通过网络中DHCP动态分配;另一种是在PC 的本地连接上配置一个跟EdgeIO控制器节点处于同一个网段的静态 IP 地址。
下面以Windows 7 系统为例进行配置。Windows 系统的配置均相似。
单击“开始 > 控制面板 > 网络和共享中心”,在打开的窗口中单击“本地连接”。

在“本地连接状态”窗口中,单击“属性”。

在本地连接属性页面双击“Internet 协议版本 4(TCP/IPv4)

两种方法配置PC的IP地址:
自动获得IP地址(系统默认模式)
自动从DHCP 服务器获取IP 地址,选中“自动获得 IP 地址”

设置静态IP地址
选中 “使用下面的IP地址”,在IP地址,子网掩码和默认网关设置正确的数值。

配置节点IP地址
设备默认IP地址为:192.168.3.2,进入网页配置后可以修改。通过 “设置 > 本机设置“ 页面设置IP地址,也可以设置为自动分配。

出厂默认设置
登录Web配置页面前,您有必要了解以下的默认参数。
ETH0默认IP:192.168.3.2
Modbus TCP Server 端口:502,Modbus ID:1
出厂默认参数
| 项目 | 描述 |
|---|---|
| 用户名 | admin |
| 密码 | 无 |
登录配置页面
在计算机上打开浏览器,如 IE、 Chrome、Firefox等。
在浏览器的地址栏输入EdgeIO控制器节点的 IP 地址(192.168.3.2 )进入用户登录界面。

在登录界面输入“用户名“ 和 ”密码“,然后点击登录。默认用户名:admin,无密码。

成功登录web界面显示如下

配置完参数后,需要点击页面上的 “保存并应用” 按钮才能生效。

网页配置页面说明
状态
在状态菜单中,提供了概览、系统日志和内核日志,可以查看设备参数和设备运行状态。
状态 > 概览

状态 > 系统日志

状态 > 内核日志

系统
系统
系统属性 > 常规设置

系统 > 系统属性 > 常规设置
| 项目 | 描述 | 默认 |
|---|---|---|
| 本地时间 | 显示设备当前时间。可以点击“同步浏览器时间”或者“与NTP服务器同步”按钮更新设备时间。 | -- |
| 主机名 | 可以自定义设备名称,便于区分多个设备。 | EdgeIO-BL190 |
| 时区 | 可以通过下拉菜单选择时区 | UTC |
系统属性 > 日志

系统 > 系统属性 > 日志
| 项目 | 描述 | 默认 |
|---|---|---|
| 系统日志缓冲区大小 | 64 | |
| 外部系统日志服务器地址 | ||
| 外部系统日志服务器端口 | ||
| 外部系统日志服务器协议 | ||
| 将系统日志写入文件 | ||
| 日志记录等级 | ||
| Cron 日志级别 |
系统属性 > 时间同步
可以设置NTP服务器,用来同步时间。

系统属性 > 语言和界面

系统 > 系统属性 > 语言和界面
| 项目 | 描述 | 默认 |
|---|---|---|
| 语言 | 可以在auto、 English、中文(Chinese)种选 | auto |
| 主题 | 目前只支持Bootstrap。 | Bootstrap |
管理权
管理权 > 主机密码
更改访问设备的管理员密码

管理权 > SSH密钥
与使用普通密码相比,公钥允许无密码 SSH 登录具有更高的安全性。要将新密钥上传到设备,请粘贴 OpenSSH 兼容的公钥行或将 .pub 文件拖到输入字段中。

备份/升级

系统 > 备份/升级 > 动作
| 项目 | 描述 | 默认 |
|---|---|---|
| 备份 | 点击“生成备份”下载当前配置文件的tar 存档。 | -- |
| 恢复 | 上传备份存档以恢复配置。要将固件恢复到初始状态,请单击“执行重置”(仅 squashfs 格式的固件有效)。 | -- |
| 刷写新的固件 | 从这里上传一个 sysupgrade 兼容镜像以更新正在运行的固件。 | -- |
升级操作说明:
1、点击“系统”→点击“备份/升级”→“刷写固件”。

2、点击“浏览”,找到固件所在的目录,选择固件,点击“打开”。


3、点击“上传”。

4、上传完后,点击“继续”,开始烧录固件。注意烧录过程中不要断电。

5、烧录完后,重新登录,在首页状态里面可以查看固件版本是否已变更。要注意IP是否改变,如果不保存当前配置烧录,IP会变化默认IP:192.168.3.2。
重启
点击“执行重启”将重启您的设备。

设置
本机设置

设置 > 本机设置
| 项目 | 描述 |
|---|---|
| IP地址类型 | 从“静态地址”、“动态地址”中选择。 |
| 设置设备IP地址 | 可以自定设置设备IP地址,设置后需要重启生效。 |
| 子网掩码 | 设置IP的子网掩码 |
| 网关地址 | 设置IP的网关地址 |
| DNS1 | 设置DNS |
| DNS2 | 设置DNS |
I/O模块
EdgeIO控制器最多可以有 3个Y系列 I/O 模块,包括数字输入输出,模拟输入输出和特殊功能模块。

I/O模块 > I/O状态
| 项目 | 描述 |
|---|---|
| IO卡位 | 分别与外壳面板上X1、X2、X3对应。 |
| 模块名称 | IO模块的详细型号。 |
| 模块类型 | IO模块功能类型。 |
| 通道数量 | IO模块的数据宽度。 |
| Modbus地址 | IO模块的过程映射modbus地址。 |
| IO状态 | IO模块通信状况。 |
| 通道状态 | 点击后可以查看和设置不同类型IO模块的参数。 |
数字量输入模块

数字量输入模块 > IO状态
| 项目 | 描述 |
|---|---|
| 通道 | 数字量输入模块的通道编号 |
| Modbus地址 | 布尔状态数据在I/O模块内部的过程映射地址 |
| 数值 | 显示当前的输入状态,断开:逻辑0,闭合:逻辑1 |
数字量输出模块

数字量输出模块
| 项目 | 描述 |
|---|---|
| 通道 | 数字量输出模块的通道编号。 |
| Modbus地址 | 数字输出布尔数据在I/O模块内部的过程映射地址。 |
| 数值 | 显示当前的输出状态,断开:0,闭合:1。 |
| 上电状态 | “最近状态”,断电重新上电,DO保持上一次状态。 |
| 断开/闭合 | 可以控制当前通道输出状态。 |
模拟量输入模块
模拟量输入(AI)类型模块支持通过I/O模块web页面设置参数,这样模块内部自动实现数据换算,可以直接输出与传感器对应的实际工程数值。

模拟量输入模块
| 项目 | 描述 |
|---|---|
| 通道 | 模拟量输入模块的通道编号 |
| Modbus地址 | 模拟量输入模块在I/O模块内部的过程映射地址 |
| 数值 | 显示当前通道输入的实际工程数值,32位单精度浮点型 |
| 模式 | 不同型号的模拟输入模块有不同的选项,详细参照具体模拟输入I/O模块手册。 |
| 最小值 | 传感器量程最小值 |
| 最大值 | 传感器量程最大值 |
| 偏移 | 通过偏移可以调整采集与实际的误差。 |
模拟输入模块的电信号数值(一般是传感器)和实际工程数值存在线性关系,它们的公式如下(以4-20mA为例):
实际工程数值 =(电流值 - 4)*((最大值 – 最小值)/(20 - 4))+最小值
以 4-20mA 类型的水位传感器测量水塔深度为例:
已知水位传感器量程是0-100m,电流数据5.6mA,计算水塔深度:
代入公式:
(5.6 - 4) * ((100 - 0) / (20 - 4)) + 0 = 10
水塔深度是10m。
模拟量输出模块

模拟量输出模块
| 项目 | 描述 |
|---|---|
| 通道 | 模拟量输出模块的通道编号 |
| Modbus地址 | 模拟量输出模块在I/O模块内部的过程映射地址 |
| 数值 | 显示当前通道输出的实际工程数值,32位单精度浮点型 |
| 模式 | 不同型号的模拟输出模块有不同的选项,详细参照具体模拟输出I/O模块手册。 |
| 最小值 | 实际工程数值最小值 |
| 最大值 | 实际工程数值最大值 |
| 设置值 | 可以设置输出所需要的实际工程数值 |
热电阻输入模块

热电阻输入模块
| 项目 | 描述 |
|---|---|
| 通道 | 热电阻输入模块的通道编号。 |
| Modbus地址 | 热电阻输入模块在I/O模块内部的过程映射地址。 |
| 数值 | 显示当前热电阻采集到的温度值。 |
| 传感器类型 | 能接的热电阻传感器类型。 |
| 范围 | 热电阻传感器采集的温度范围。 |
| 偏移 | 可以通过偏移调整采集与实际的误差。 |
热电偶输入模块

热电偶输入模块
| 项目 | 描述 |
|---|---|
| 通道 | 热电偶输入模块的通道编号。 |
| Modbus地址 | 热电偶输入模块在I/O模块内部的过程映射地址。 |
| 数值 | 显示当前热电偶采集到的温度值。 |
| 传感器类型 | 选择接的热电偶传感器类型。 |
| 范围 | 热电偶传感器采集的温度范围。 |
| 冷端补偿 | 设置热电偶传感器冷端补偿温度。 |
| 冷端温度 | 设置热电偶传感器冷端温度。 |
| 设置冷端温度 | 启用冷端温度设置。 |
DIDO混合模块

DIDO混合模块
| 项目 | 描述 |
|---|---|
| 通道 | 数字输入输出模块的通道编号 |
| Modbus地址 | 布尔状态数据在I/O模块内部的过程映射地址 |
| 数值 | 显示当前的输入状态,断开:逻辑0,闭合:逻辑1 |
| 上电状态 | “最近状态”,断电重新上电,DO保持上一次状态。 |
| 断开/闭合 | 可以控制当前通道输出状态。 |
PWM输出和DI计数模块

PWM输出和DI计数模块
| 项目 | 描述 | |
|---|---|---|
| 通道 | PWM输出和DI计数模块的通道编号 | |
| Modbus地址 | 模块在I/O模块内部的过程映射地址 | |
| PWM输出 | 数值 | 显示当前占空比,32位无符号整型。 |
| 设置占空比 | 输入占空比的值,0~1000(0%~100%)自定义。 | |
| 设置 | 确定占空比的设置。 | |
| PWM频率 | modbus映射地址 | |
| 填写频率(最大40KHz) | ||
| 设置频率 | ||
| DI计数 | 数值 | 显示当前的输入计数值,32位无符号整型。 |
| 计数模式 | 选择“上升沿”、“下降沿”、“上升沿和下降沿”触发计数方式 | |
| 清除 | 可以清除当前通道计数器值 |
Modbus
可以通过自带的1路RS485或Y61串口模块(4路RS485/RS232可选)接入各种支持Modbus RTU 协议的传感器,终端等设备。串口功能可以选择“Modbus主站”、“串口透传”、“Modbus从站”、“Modbus RTU转TCP”。
串口设置
对串口的“波特率”、“数据位”、“校验位”、“停止位”进行设置,从“模式”里面选择串口的作用,点击“保存并应用”,串口属性和功能才生效。

串口透传
使用“串口透传”功能需要先在“串口设置”的“模式”选择透传。

点击“添加”,弹出配置框,进行配置。


| 项目 | 描述 |
|---|---|
| 设备 | 选择哪路串口作透传使用 |
| 网络协议类型 | TCP客户端、TCP服务端,UDP客户端、UDP服务端 |
| 主机IP或域名 | 填写服务器IP或域名,I/O模块作客户端时填写 |
| 端口号 | 默认:“5000” |
| 注册包 | 发送端和接收端需要按照约定好的注册包格式和内容进行通信参数的协商和注册,以确保通信的稳定性和可靠性 |
| 心跳包 | 作用类似于心跳信号,用于检测通信连接是否正常,以及及时发现通信故障或断线情况 |
| 心跳响应包 | 这种机制可以用来确认心跳包的正常接收,并进一步确保通信连接的健壮性和稳定性 |
| 心跳周期(秒) | 默认“60” |
| 主机静默时间(秒) | 默认“3600” |
Modbus RTU转TCP
使用“Modbus RTU转TCP”功能需要先在“串口设置”的“模式”选择Modbus RTU转TCP。

点击“添加”,弹出配置框,进行配置。

弹出配置框,进行配置

Modbus RTU转TCP 设置
| 项目 | 描述 |
|---|---|
| 设备 | 选择哪路串口作Modbus RTU转TCP使用 |
| 网络协议类型 | TCP客户端、TCP服务端,UDP客户端、UDP服务端 |
| 主机IP或域名 | 填写服务器IP或域名,I/O模块作客户端时填写 |
| 端口号 | 默认:“5000” |
| 注册包 | 发送端和接收端需要按照约定好的注册包格式和内容进行通信参数的协商和注册,以确保通信的稳定性和可靠性 |
| 心跳包 | 作用类似于心跳信号,用于检测通信连接是否正常,以及及时发现通信故障或断线情况 |
| 心跳响应包 | 这种机制可以用来确认心跳包的正常接收,并进一步确保通信连接的健壮性和稳定性 |
| 心跳周期(秒) | 默认“60” |
| 主机静默时间(秒) | 默认“3600” |
Modbus从站设置
作TCP从站,只需要配置端口号,默认是“502”,如果串口需要作从站功能,需要先在“串口设置”的“模式”选择Modbus 从站。

Modbus主站
Modbus 主站用于串口通信添加 Modbus RTU 设备也可以通过网口采集Modbus TCP设备。
说明:最多只能创建24条modbus命令。

在输入框输入自定义数据名称,点击添加

弹出配置框,进行配置

Modbus 设置
| 项目 | 描述 |
|---|---|
| 别名 | 设备昵称可以用与区分数据 |
| 从机接口 | 选择串口通道或网口 |
| 从机地址 | 从站设备地址,范围1-247 |
| 功能码 | 根据从站数据类型选择,包括:“01”、“02”、“03”、“04” |
| 寄存器首址 | 从站数据的寄存器起始地址 |
| 数据个数 | 从机数据的个数 |
| 映射地址分配 | 支持分配方式 自动 系统按照不同的数据类型,按照映射起始地址自动依次往下分配,地址是连续的。 手动 手动分配的方式可以让映射地址跨段分配 |
| 轮询周期(秒) | 相邻两条轮询指令之间的间隔时间 |
| 响应超时时间(秒) | 发送指令给从站后,等待从站返回数据的最长时间,超过该时间,将会认为从站无应答。 |
对建好的从机,可以进行修改、删除、查看数据功能,也可以不启用采集。

运算和控制
算术运算


支持AI、AO或RS485从机数值类型数据之间的“加减乘除”运算,也可以“加减乘除”常数进行运算,自由搭配1个或2个条件组合输出结果。如果使用16位寄存器地址作为输出结果,则有小数的输出为整数。
注意:使用“x^y”、“ln”、“log10”时,请每一个都单独使用,不要和其他算术混合使用。
逻辑运算

布尔量逻辑配置

数值逻辑配置

组合逻辑配置

提供强大的逻辑运算功能,可根据需要自由设置I/O(数字量输入输出、模拟量输入输出)或串口模块(Modbus从机数据)之间的各种组合联动。建好的逻辑是否触发,可以根据网页逻辑值项判断,“0”代表没触发,“1”代表已触发。逻辑值项不能自动更新,要手动刷新网页。注意:因中断不足,输出延时只可以用2个。
例:逻辑1(与),输入条件A与输入条件B同时满足触发条件,输出结果Y。
逻辑2(或),输入条件C或输入条件D任何一个满足触发条件,输出结果Y。
逻辑3:逻辑1+逻辑2可以组合出逻辑3或更多组合。
条件运算


条件运算是算术运算基础上加上条件触发,既是当条件满足时,AI、AO或RS485从机数值类型数据或常数,这些数据可以自由选择1-3个条件互相“加减乘除”算术运算。
注意:使用“x^y”、“ln”、“log10”时,请每一个都单独使用,不要和其他算术混合使用。
示例
以一个简单装箱系统为例
要求:(1)按下启动按钮后,传送带B先启动运行,拖动空箱前移至指定位置,达到指定位置后,由SQ2发出信号,使传送带B停止运行。
(2)传送带B停车后,传送带A启动运行,产品逐一落入箱子内,由SQ1传感器检测产品,检测到产品落入箱子,传送带A停止运行,传送带B启动运行,周而复始地进行,直到按下停止按钮,传送带A和B同时停止。

装箱系统
在S7-200SMART实现这样的功能,外围接线需要用到DI和DQ如下:
S7-200SMART接线
| 输入 | 输出 | ||
|---|---|---|---|
| I0.0 | 自动控制按钮 | Q0.1 | 传送带A输出 |
| I0.1 | 停止按钮 | Q0.2 | 传送带B输出 |
| I0.2 | B传送带点动 | ||
| I0.3 | A传送带点动 | ||
| I0.4 | SQ2输入 | ||
| I0.5 | SQ1输入 |
用BL190运算和控制模拟要实现这样的要求,接线需要用到的DI和DO如下:
BL190接线
| 输入 | 输出 | ||
|---|---|---|---|
| DI1 | A传送带点动 | DO1 | 传送带A输出 |
| DI2 | B传送带点动 | DO2 | 传送带B输出 |
| DI3 | 停止按钮 | ||
| DI4 | 自动控制按钮 | ||
| DI5 | 检测空箱子传感器, SQ2输入 | ||
| DI6 | 检测产品SQ1输入 |
布尔逻辑配置举例说明

示例布尔量逻辑配置

示例布尔量逻辑配置说明
步骤说明:(1)输入Achuansongdai,点击添加,弹出配置框。(2)输入1:选择DI1寄存器REG2000。(3)条件:选择闭合。(4)关系:选择“无”,因是DI1直接控制A传送带运行,所以没有其他条件故选择“无”。(5)输出类型:选择布尔类型,因DO1控制是布尔量,所以选择布尔类型。(6)输出地址:REG1000,DI1只控制一个DO1,所以只选择DO1寄存器地址,如果DI控制多个,可以选择多个寄存器。如第三条逻辑“tingzi”,按下停止按钮,传送带A和B都停止。(7)布尔值:关闭,DI1控制DO1闭合,所以选择关闭。(8)输出延时(毫秒):因是及时响应,不需要延时,故不填。(9)设置默认值:选择逻辑不成立时,DO1是否恢复默认状态,根据需求选择。(10)点击“保存”。(11)按同样的操作方法,把其他逻辑建好。(12)点击“保存并应用”写进BL190 EdgeIO控制器。
数值逻辑配置举例说明
AI1寄存器REG3000接温度传感器,监控电机的温度,当采集到的温度大于50时,风扇打开,风扇由DO3寄存器REG1002控制。

示例数值逻辑配置

示例数值逻辑配置说明
同理数值逻辑和布尔逻辑,逻辑原理一样,数值逻辑只是判断条件为“大于”、“小于”或“等于”某个数值,作为联动条件。
组合逻辑举例说明
传送带没有运行,电机的温度超过50度,风扇开启,触发报警器DO4 寄存器REG1003。

示例组合逻辑配置

示例组合逻辑配置说明
步骤说明:(1)在组合逻辑项,输入名称“bj”,点击添加,弹出配置框。(2)输入1:选择之前在布尔逻辑建的逻辑名称“zidongB”,这里可以根据需求选择,不规定是布尔逻辑或数值逻辑。(3)条件:选择“为假”,根据需求选择,输入1选择的逻辑是否触发作为条件。(4)关系:选择“逻辑与”,根据需求选择,条件1与条件2的逻辑关系。也可选择“无”条件2。(5)输入2:选择逻辑名称“wendu”,根据需求选择,不规定是布尔逻辑或数值逻辑。(6)条件:选择“为真”,根据需求选择,输入2选择的逻辑是否触发作为条件。(7)输出类型:选择“布尔类型”,根据“输出地址”是布尔或数值数据选择。(8)输出地址:选择要操作的寄存器地址。DO4寄存器REG1003。(9)布尔值:关闭,DO4闭合控制报警器(10)输出延时(毫秒):因是及时响应,不需要延时,故不填。(11)设置默认值:选择逻辑不成立时,DO4是否恢复默认状态,根据需求选择。(12)点击“保存”。((13)点击“保存并应用”写进BL190 EdgeIO控制器。
算术运算配置举例说明
传感器采集一天生产的数量存放到寄存器REG40002,通过算术运算功能计算一天8小时,每小时生产的数量存放到寄存器REG40004,这个寄存器REG40004的数据可以通过MQTT、OPC UA或Modbus 发送到你的平台或服务器。

示例算术运算配置

示例算术运算配置说明
步骤说明:(1)输入名称“shengchanxiaolv”,点击添加,弹出配置框。(2)输入1:选择产量寄存器REG40002。(3)运算:选择“/”,根据需求选择,这里可以选择“加减乘除”。(4)输入2:选择常数,根据需求选择,这可以选择其他寄存器地址。(5)输入2:因选择常数,故要填写常数,如果选择的是寄存器,没有这项。(6)运算:根据是否还有条件3选择,没有则随意。(7)输入3:选择“无”,因不需要这个条件选项,故选择“无”,这根据需求选择,可以选择寄存器、常数、无。(8)输出地址:选择运算结果存储到寄存器地址。(9)点击“保存”。(10)点击“保存并应用”写进BL190 EdgeIO控制器。
BLRAT
BLRAT(Beilai Remote Access Tool)是钡铼技术自主研发的一款专门为远程访问的工具,是钡铼技术BLRMS远程平台下的一个子服务。在EdgeIO控制器系列中BLRAT可以远程固件升级及参数配置。在EdgeIO控制器配置端只需点击启用,填写设备密钥。设备密钥是在BLRMS远程平台的通讯秘钥token码,每个注册用户的token码是唯一的。BLRAT使用操作请参考BLRAT使用说明书。

EdgeIO控制器通信示例
BL190 EdgeIO控制器通信示例
概述
Modbus 是一种独立于制造商的开放式现场总线标准协议,适用于制造和过程自动化中的各种应用。
MODBUS 是一种应用层消息传递协议,位于 OSI 模型的第 7 层,可以在不同类型的总线或网络上连接的设备之间进行客户端/服务器通信。
几种常用的网络如下:
TCP/IP over Ethernet。
多种媒体异步串行传输(有线:EIA/TIA-232-E、EIA-422、EIA/TIA-485-A;光纤、无线电等)。
MODBUS PLUS,高速令牌。
MODBUS 是一种请求/应答协议,提供由功能代码指定的服务。
MODBUS 协议允许在所有类型的网络架构内轻松通信。

Modbus 网络架构
MODBUS 协议定义了一个独立于底层通信层的简单协议数据单元 (PDU)。 MODBUS 协议在特定总线或网络上的映射可以在应用数据单元(ADU)上引入一些附加字段。

Modbus 数据帧
更多关于 Modbus 开放协议规范的细节可以在网站www.modbus.org查看。
Modbus TCP
Modbus TCP协议是Modbus协议的一种变体,该协议经过优化,可通过TCP/IP连接进行通信。该协议设计用于现场级的数据交换(即用于过程映像中的 I/O 数据交换)。在服务端,所有数据包都通过端口号为 502 的 TCP 连接发送。
一般 Modbus TCP 报文如下:
Modbus TCP 报文
| 字节 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 - n |
|---|---|---|---|---|---|---|---|---|---|
| 定义 | 事务标识符 | 协议标识符 (始终为00) | 字段长度 | 从机地址 | Modbus 功能码 | 数据 |
Modbus数据编码
MODBUS对地址和数据项使用“大端”表示。这意味着当传输大于单个字节的数字量时,首先发送最高有效字节。
Modbus数据类型
modbus协议基于以下基础数据类型:
Modbus基础数据类型
| 数据类型 | 对象类型 | 访问类型 | 描述 |
|---|---|---|---|
| 数字输入 | 1 bit | 只读 | 数字输入 |
| 线圈 | 1 bit | 读/写 | 数字输出 |
| 输入寄存器 | 16 bit (word) | 只读 | 模拟输入 |
| 保持寄存器 | 16 bit (word) | 读/写 | 模拟输出 |
对于每个基础数据类型,都定义了一个或多个功能码。这些功能码允许数字或模拟的输入和输出数据,以及内部变量被设置或直接从现场总线节点中读取。
Modbus 功能码描述
BL190 EdgeIO控制器节点支持的功能码如下表所示,要执行所需的功能,请指定各自的功能码和所选的输入或输出通道或寄存器的地址。
Modbus功能码列表
| 功能码 | 功能 | 访问类型 | 描述 |
|---|---|---|---|
| 0x02 | 读数字输入 | 只读 | 按1 bit 访问 |
| 0x01 | 读线圈 | 读/写 | |
| 0x05 | 写单个线圈 | 读/写 | |
| 0x0F | 写多个线圈 | 读/写 | |
| 0x04 | 读输入寄存器 | 只读 | 按16 Bit访问 |
| 0x03 | 读多个寄存器 | 读/写 | |
| 0x06 | 写单个寄存器 | 读/写 | |
| 0x10 | 写多个寄存器 | 读/写 |
MODBUS 功能执行如下:
MODBUS TCP 主站(例如PC)使用特定功能码向 BL190 EdgeIO控制器节点发出请求;
BL190 EdgeIO控制器节点接收数据报文,然后根据主站的请求,以正确的数据响应主站。
如果现场总线节点收到不正确的请求,它会向主站发送错误数据报文(异常)。
异常中包含的异常代码含义如下:
Modbus异常代码
| 异常代码 | 描述 |
|---|---|
| 0x01 | 非法功能 |
| 0x02 | 非法数据地址 |
| 0x03 | 非法数据值 |
| 0x04 | 从机设备故障 |
功能码0x02(读数字输入)
此功能码用于读取单个或多个数字输入连续状态。
请求
该请求指定了起始地址和要读取的数量。
功能码0x02-请求报文
| 字段名称 | 字节数 | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 01 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 06 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x02 | 读数字输入,用功能码0x02 |
| 起始地址 | 2 Byte | 0x07 D0 | 地址详见“Modbus 寄存器映射”章节 |
| 输入数量 | 2 Byte | 0x08 | 读 8 个数字输入 |
响应
数据字段表明了输入状态的值。二进制1对应开启状态,0对应关闭状态。第一个数据字节的最低有效位(LSB)包含请求的第一位,其他的则按升序排列。如果响应数据不是8的倍数,则最后一个数据字节的其余位将填充零(朝向字节的高位)。
功能码0x02-响应报文
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 01 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 04 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x02 | 读数字输入,用功能码0x02 |
| 数据字节数 | 1 Byte | 0x01 | 数据的字节数 |
| 数据 | 1 Byte | 0x89 | 响应的数据 |
异常
功能码0x02-响应异常
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| … | |||
| 功能码 | 1 Byte | 0x82 | Modbus功能码 + 0x80 |
| 异常编码 | 1 Byte | 0x01 | 0x01 或 0x02 |
示例
从地址2000到2007读8个数字输入的值。
请求
0x00 01 00 00 00 06 01 02 07 D0 00 08
功能码0x02-请求报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 06 | 01 | 01 | 07 D0 | 00 08 | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 起始地址 | 线圈数量 |
响应
0x00 01 00 00 00 04 01 02 01 89
功能码0x02-响应报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 04 | 01 | 01 | 01 | 89 | |||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 数据字节数 | 数据 |
从2007到2000的状态显示为字节值0x89或二进制1000 1001。地址2007是该字节最高有效位MSB,2000是最低有效位LSB,从高位到低位的分布如下:
数字输入数据
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 地址 | 2007 | 2006 | 2005 | 2004 | 2003 | 2002 | 2001 | 2000 |
| 状态 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
| 说明 | 闭合 | 断开 | 断开 | 断开 | 闭合 | 断开 | 断开 | 闭合 |
功能码0x01(读线圈)
此功能码用于读取远程设备中单个或多个线圈的连续状态。
请求
该请求指定了起始地址,即指定第一个线圈的地址,以及线圈的数量。
功能码0x01-请求报文
| 字段名称 | 字节数 | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 01 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 06 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x01 | 读线圈,用功能码0x01 |
| 起始地址 | 2 Byte | 0x03 E8 | 地址详见“Modbus 寄存器映射”章节 |
| 线圈数量 | 2 Byte | 0x00 08 | 读 8 个线圈状态 |
响应
数据字段表明了输入状态的值。二进制1对应开启状态,0对应关闭状态。第一个数据字节的最低有效位(LSB)包含请求的第一位,其他的则按升序排列。如果响应数据不是8的倍数,则最后一个数据字节的其余位将填充零(朝向字节的高位)。
功能码0x01-响应报文
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 01 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 04 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x01 | 读线圈,用功能码0x01 |
| 数据字节数 | 1 Byte | 0x01 | 数据的字节数 |
| 数据 | 1 Byte | 0x89 | 响应的数据 |
异常
功能码0x01-异常
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| … | |||
| 功能码 | 1 Byte | 0x81 | Modbus功能码 + 0x80 |
| 异常编码 | 1 Byte | 0x01 | 0x01 或 0x02 |
示例
从地址1000到1007读8个线圈的状态值。
请求
0x00 01 00 00 00 06 01 01 03 E8 00 08
功能码0x01-请求报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 06 | 01 | 01 | 03 E8 | 00 08 | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 起始地址 | 线圈数量 |
响应
0x00 01 00 00 00 04 01 01 01 89
功能码0x01-响应报文
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 04 | 01 | 01 | 01 | 89 | |||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 数据字节数 | 数据 |
从1007到1000的状态显示为字节值0x89或二进制1000 1001。地址1007是该字节最高有效位MSB,1000是最低有效位LSB,从高位到低位的分布如下:
线圈数据
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 地址 | 1007 | 1006 | 1005 | 1004 | 1003 | 1002 | 1001 | 1000 |
| 状态 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
| 说明 | 闭合 | 断开 | 断开 | 断开 | 闭合 | 断开 | 断开 | 闭合 |
功能码0x05(写单个线圈)
此功能将向从站设备写单个线圈状态。
请求
功能码0x05-请求报文
| 字段名称 | 字节数 | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 01 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 06 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x05 | 写单个线圈,用功能码0x05 |
| 寄存器地址 | 2 Byte | 0x03 E8 | 地址详见“Modbus 寄存器映射”章节 |
| 写入数据 | 2 Byte | 0xFF 00 | 此值为:0xFF 00 或者0x00 00。0xFF 00 表示写入1,0x00 00 表示写入0。 |
响应
功能码0x05-响应报文
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 01 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 06 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x05 | 写单个线圈,用功能码0x05 |
| 数据字节数 | 2 Byte | 0x03 E8 | 写入线圈的寄存器地址 |
| 写入数据 | 2 Byte | 0xFF 00 | 此值为:0xFF 00 或者0x00 00。0xFF 00 表示写入1,0x00 00 表示写入0。 |
异常
功能码0x05-异常
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| … | |||
| 功能码 | 1 Byte | 0x85 | Modbus功能码 + 0x80 |
| 异常编码 | 1 Byte | 0x81 | 0x01 或 0x02 |
示例
把地址1000的线圈的状态值写为1,即闭合状态。
请求
0x00 01 00 00 00 06 01 05 03 E8 FF 00
功能码0x05-请求报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 06 | 01 | 05 | 03 E8 | FF 00 | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 线圈地址 | 写“1” |
响应
0x00 01 00 00 00 06 01 05 03 E8 FF 00
功能码0x05-响应报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 06 | 01 | 05 | 03 E8 | FF 00 | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 线圈地址 | 写“1” |
功能码0x0F(写多个线圈)
此功能码用于把连续的多个线圈设置为断开或闭合。请求的开/关状态由请求数据字段的内容指定。逻辑“1”请求闭合相应的输出,逻辑上的“0”请求其断开。正常响应返回功能码、起始地址和执行的线圈数量。
请求
功能码0x0f-请求报文
| 字段名称 | 字节数 | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 01 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 08 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x0F | 写多个线圈,用功能码0x0F |
| 起始地址 | 2 Byte | 0x03 E8 | 地址详见“Modbus 寄存器映射”章节 |
| 线圈数量 | 2 Byte | 0x00 08 | |
| 数据字节数 | 1 Byte | 0x01 | |
| 数据 | 1 Byte | 0xFF |
响应
功能码0x0f-响应报文
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 00 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 06 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x0F | 写多个线圈,用功能码0x0F |
| 起始地址 | 2 Byte | 0x03 E8 | |
| 线圈数量 | 2 Byte | 0x00 08 |
异常
功能码0x0f-异常
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| … | |||
| 功能码 | 1 Byte | 0x8F | Modbus功能码 + 0x80 |
| 异常编码 | 1 Byte | 0x01 或 0x02 |
示例
从地址1000开始,将8个线圈全部闭合,即将8个线圈的值写为0xFF。
请求
0x00 01 00 00 00 08 01 0F 03 E8 00 08 01 FF
功能码0x0f-请求报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 08 | 01 | 0F | 03 E8 | 00 08 | 01 | FF | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 起始地址 | 线圈数量 | 字节数 | 数据 |
响应
0x00 01 00 00 00 06 01 0F 03 E8 00 08
功能码0x0f-响应报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 06 | 01 | 0F | 03 E8 | 00 08 | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 起始地址 | 线圈数量 |
功能码0x04(读输入寄存器)
此功能码用于读取多个远程设备中的连续输入寄存器。请求PDU指定起始寄存器的地址和寄存器的数量。响应消息中的寄存器数据被打包为每个寄存器两个字节,每个字节内的二进制内容靠右对齐。
请求
功能码0x04-请求报文
| 字段名称 | 字节数 | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 01 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 06 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x04 | 读输入寄存器,用功能码0x04 |
| 起始地址 | 2 Byte | 0x0B B8 | 地址详见“Modbus 寄存器映射”章节 |
| 寄存器数量 | 2 Byte | 0x00 08 |
响应
功能码0x04-响应报文
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 00 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 13 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x04 | 读输入寄存器,用功能码0x04 |
| 字节数 | 1 Byte | 0x10 | |
| 数据 | 16 Byte | 0x 3F 8E 38 86 40 0E 38 86 40 55 54 CA 40 8E 35 3F |
异常
功能码0x04-异常
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| … | |||
| 功能码 | 1 Byte | 0x84 | Modbus功能码 + 0x80 |
| 异常编码 | 1 Byte | 0x01 | 0x01 或 0x02 |
示例
从地址3000开始,读4个模拟输入的值。由于BL190 I/O模块节点寄存器映射数据类型是32Bit Float,即1个模拟输入数据 = 2个寄存器 = 4个字节 ,因此需要读8个输入寄存器。
请求
0x00 01 00 00 00 06 01 04 0B B8 00 08
功能码0x04-请求报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 06 | 01 | 04 | 0B B8 | 00 08 | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 起始地址 | 寄存器数量 |
响应
0x00 01 00 00 00 13 01 04 10 3F 9D 70 A4 40 15 C2 8F 40 5C CC CD 40 91 EB 85
功能码0x04-响应报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10…25 |
|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 13 | 01 | 04 | 10 | xxx | |||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 字节数 | 数据 |
其中数据部分共16个字节,转换成十进制如下:
读取输入寄存器 - 转换数据十进制
| Byte | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 3F 9D 70 A4 | 40 15 C2 8F | 40 5C CC CD | 40 91 EB 85 | ||||||||||||
| 十进制 | 1.23 | 2.34 | 3.45 | 4.56 | ||||||||||||
| 说明 | 第一个数据 | 第二个数据 | 第三个数据 | 第四个数据 |
功能码0x03(读保持寄存器)
此功能码用于读取多个远程设备中的连续保持寄存器。请求PDU指定起始寄存器的地址和寄存器的数量。响应消息中的寄存器数据被打包为每个寄存器两个字节,每个字节内的二进制内容靠右对齐。
请求
功能码0x03-请求报文
| 字段名称 | 字节数 | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 01 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 06 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x03 | 读保持寄存器,用功能码0x03 |
| 起始地址 | 2 Byte | 0x0F A0 | 地址详见“Modbus 寄存器映射”章节 |
| 寄存器数量 | 2 Byte | 0x00 08 | 需要读取的保持寄存器数量 |
响应
功能码0x03-响应报文
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 00 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 13 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x03 | 读保持寄存器,用功能码0x03 |
| 字节数 | 1 Byte | 0x10 | 数据字节数 |
| 数据 | 16 Byte | 0x 3F 9D 70 A4 40 15 C2 8F 40 5C CC CD 40 91 EB 85 | 响应的数据 |
异常
功能码0x03-异常
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| … | |||
| 功能码 | 1 Byte | 0x83 | Modbus功能码 + 0x80 |
| 异常编码 | 1 Byte | 0x01 | 0x01 或 0x02 |
示例
从地址4000开始,读4个模拟输出(属于保持寄存器)的值。由于模拟输出I/O模块寄存器映射数据类型是32Bit Float,即1个模拟输出数据 = 2个寄存器 = 4个字节 ,所以需要读取8个保持寄存器。
请求
0x00 01 00 00 00 06 01 03 0F A0 00 08
功能码0x03-请求报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 06 | 01 | 03 | 0F A0 | 00 08 | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 起始地址 | 寄存器数量 |
响应
0x00 01 00 00 00 13 01 03 10 3F 9D 70 A4 40 15 C2 8F 40 5C CC CD 40 91 EB 85
功能码0x03-响应报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10…25 |
|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 13 | 01 | 03 | 10 | xxx | |||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 字节数 | 数据 |
其中数据部分共16个字节,转换成十进制如下:
读取保持寄存器 - 转换数据十进制
| Byte | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 3F 9D 70 A4 | 40 15 C2 8F | 40 5C CC CD | 40 91 EB 85 | ||||||||||||
| 十进制 | 1.23 | 2.34 | 3.45 | 4.56 | ||||||||||||
| 说明 | 第一个数据 | 第二个数据 | 第三个数据 | 第四个数据 |
功能码0x06(写单个寄存器)
此功能码用于写入单个远程设备中的保持寄存器。请求PDU指定起始寄存器的地址和寄存器的数量。响应消息中的寄存器数据被打包为每个寄存器两个字节,每个字节内的二进制内容靠右对齐。
该功能码只适用读取串口I/O模块寄存器映射数据,地址范围: 40000 ... 49999 。模拟输入输出 I/O模块的数据类型是32Bit Float 格式,无法读取完整数据,不可以使用该功能。
请求
功能码0x06-请求报文
| 字段名称 | 字节数 | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 01 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 06 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x06 | 写单个保持寄存器,用功能码0x06 |
| 寄存器地址 | 2 Byte | 0x9C 40 | 地址详见“Modbus 寄存器映射”章节 |
| 数据 | 2 Byte | 0x04 D2 |
响应
功能码0x06-响应报文
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 00 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 06 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x06 | 写单个保持寄存器,用功能码0x06 |
| 寄存器地址 | 2 Byte | 0x75 30 | |
| 数据 | 2 Byte | 0x04 D2 |
异常
功能码0x06-异常
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| … | |||
| 功能码 | 1 Byte | 0x86 | Modbus功能码 + 0x80 |
| 异常编码 | 1 Byte | 0x01 | 0x01 或 0x02 |
示例
将寄存器地址40000的值写入1234 (0x04 D2).
请求
0x00 01 00 00 00 06 01 06 9C 40 04 D2
功能码0x06-请求报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 06 | 01 | 06 | 9C 40 | 04 D2 | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 寄存器地址 | 数据 |
响应
0x00 01 00 00 00 06 01 06 9C 40 04 D2
功能码0x06-响应报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 06 | 01 | 0F | 9C 40 | 04 D2 | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 寄存器地址 | 数据 |
功能码0x10(写多个寄存器)
此功能码用于写入多个远程设备中的连续保持寄存器。请求PDU指定起始寄存器的地址和寄存器的数量。响应消息中的寄存器数据被打包为每个寄存器两个字节,每个字节内的二进制内容靠右对齐。
请求
功能码0x10-请求报文
| 字段名称 | 字节数 | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 01 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 17 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x10 | 写多个保持寄存器,用功能码0x10 |
| 起始地址 | 2 Byte | 0x0F A0 | 地址详见“Modbus 寄存器映射”章节 |
| 寄存器数量 | 2 Byte | 0x00 08 | |
| 数据字节数 | 1 Byte | 0x10 | |
| 数据 | 16 Byte | 0x 3F 9D 70 A4 40 15 C2 8F 40 5C CC CD 40 91 EB 85 |
响应
功能码0x10-响应报文
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| 事务标识符 | 2 Byte | 0x00 00 | Modbus请求/响应事务处理的识别 |
| 协议标识符 | 2 Byte | 0x00 00 | 0x00 00 :Modbus协议 |
| 报文长度 | 2 Byte | 0x00 13 | 后面数据的字节数 |
| 设备地址 | 1 Byte | 0x01 | 从站的地址识别 |
| 功能码 | 1 Byte | 0x10 | 写多个保持寄存器,用功能码0x10 |
| 起始地址 | 2 Byte | 0x0F A0 | |
| 寄存器数量 | 2 Byte | 0x00 08 |
异常
功能码0x10-异常
| 字段名称 | 字节(Byte) | 示例 | 说明 |
|---|---|---|---|
| … | |||
| 功能码 | 1 Byte | 0x90 | Modbus功能码 + 0x80 |
| 异常编码 | 1 Byte | 0x01 | 0x01 或 0x02 |
示例
从地址4000开始,写4个模拟输出的值。由于BL190I/O模块节点寄存器映射数据类型是32Bit Float,即1个模拟输出数据 = 2个保持寄存器 = 4个字节 ,所以需要写入8个保持寄存器。
请求
0x00 01 00 00 00 17 01 10 0F A0 00 08 10 3F 9D 70 A4 40 15 C2 8F 40 5C CC CD 40 91 EB 85
功能码0x10-请求报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14…29 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 17 | 01 | 10 | 0F A0 | 00 08 | 10 | xxx | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 起始地址 | 寄存器数量 | 字节数 | 数据 |
其中数据部分共16个字节,转换成十进制如下:
写入保持寄存器 - 转换数据十进制
| Byte | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 3F 9D 70 A4 | 40 15 C2 8F | 40 5C CC CD | 40 91 EB 85 | ||||||||||||
| 十进制 | 1.23 | 2.34 | 3.45 | 4.56 | ||||||||||||
| 说明 | 第一个数据 | 第二个数据 | 第三个数据 | 第四个数据 |
响应
0x00 01 00 00 00 06 01 10 0F A0 00 08
功能码0x10-响应报文-示例
| Byte | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Data | 00 01 | 00 00 | 00 06 | 01 | 10 | 0F A0 | 00 08 | |||||
| 说明 | 事务标识符 | 协议标识符 | 报文长度 | 设备地址 | 功能码 | 起始地址 | 寄存器数量 |
保修条款
1) 此设备从购买之日算起,为期一年内有任何材料或质量问题,免费维修。
2) 此一年保修不包括任何人为损坏、操作不当等造成的产品故障问题。
技术支持
深圳市钡铼技术有限公司
电话:0755-29451836
网址:https:// www.bliiot.cn