NiFi中Plc4xSinkProcessor使用示例及配置方法咨询
Plc4xSinkProcessor 配置及使用说明(Modbus 场景)
对接对象确认
Plc4xSinkProcessor 为工业数据写入类处理器,Modbus 协议场景下需对接Modbus Slave 应用/硬件从站,无需对接Modbus Poll:
Modbus Poll 属于主站侧读测工具,本身不对外提供可写入的寄存器资源,只有Slave从站会开放寄存器点位供主站写入,Plc4xSinkProcessor 在Modbus链路中承担主站写入角色。
核心配置项说明
- PLC 连接地址:按Modbus TCP规范填写,格式为
modbus-tcp://<Slave端IP>:<Slave端口>?unit-identifier=<Slave站号>,默认端口502、站号1的场景示例:modbus-tcp://192.168.3.20:502?unit-identifier=1 - 写入点位配置:在「PLC写入地址」栏填写对应Modbus寄存器地址,常用可写入点位格式如下:
- 线圈(布尔量可写):
coil:<点位序号>,如coil:1对应Modbus标准地址00001 - 保持寄存器(数值量可写):
holding-register:<点位序号>,如holding-register:3对应Modbus标准地址40003
- 线圈(布尔量可写):
- 数据类型匹配:需和上游Plc4xSourceProcessor读取时配置的点位数据类型完全一致,比如上游读的是INT16类型保持寄存器,Sink端对应点位也要设为INT16,避免数据溢出或解析错误
- 数据读取规则:默认从FlowFile内容读取待写入值,若你在传输链路中把值存到了FlowFile属性,可调整配置为从指定属性读取值
适配你现有链路的使用示例
你当前已跑通的链路为:Plc4xSourceProcessor -> PutTcp -> 跨服务器ListenTcp -> Plc4xSinkProcessor,按以下步骤配置即可完成数据写入:
- 提前启动目标Modbus Slave应用,配置好对应站号、开放端口,以及你要写入的寄存器区间的写入权限
- 填入Plc4xSinkProcessor核心配置:
上述配置需替换为你自己的Slave端IP、端口、站号、写入点位及对应数据类型PLC Connection URL: modbus-tcp://192.168.3.20:502?unit-identifier=1 PLC Write Address: holding-register:1 Data Type: INT16 - 保留ListenTcp到Plc4xSinkProcessor的透传连接,无需额外做数据转换即可直接写入
- 启动处理器后,在Modbus Slave端对应寄存器点位即可看到和上游Source端采集到的一致的数值
常见异常排查
- 连接超时:检查NiFi服务器到Slave端的网络是否通,对应端口是否被防火墙拦截
- 写入失败:检查Slave端对应寄存器是否开放了写入权限,点位地址、数据类型是否和上游采集配置匹配
内容的提问来源于stack exchange,提问作者J Hurst
相关产品推荐
相关产品推荐

