You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需PLC能否通过EtherNet/IP读取基恩士FD-XA2传感器数据

基恩士FD-XA2(配套NU-EP1通信单元)无PLC直连PC读取数据配置方案

通信角色明确

NU-EP1以太网通信单元默认是EtherNet/IP从站,对应TCP通信场景下为服务端角色,你不需要用PC端写的socket服务端,直接用PC作为客户端主动向传感器发起连接即可。

传感器端前置配置(必须先完成,无需编程)

  • 进入传感器本体菜单,找到「通信设置」-「以太网设置」,给NU-EP1配置和PC同网段的静态IP、子网掩码、网关,关闭DHCP功能,避免IP变动。
  • 找到「外部通信」-「EtherNet/IP设置」选项,开启无PLC直接通信权限,未开启状态下传感器只会响应PLC的通信请求,会直接拒绝PC的连接。
  • 确认NU-EP1的默认通信端口为44818,无特殊需求不需要修改。

Python读取实现代码(基于socket库)

按照NU-EP1的EtherNet/IP显式报文规则构造读取请求,即可直接读取传感器测量值,示例代码如下:

import socket
import struct

# 替换为你自己配置的NU-EP1静态IP
SENSOR_IP = "192.168.1.100"
SENSOR_PORT = 44818
# 读取FD-XA2瞬时流量值的标准请求报文,固定格式可直接使用
READ_FLOW_REQ = b'\x00\x00\x00\x00\x00\x16\x11\x01\x00\x00\x00\x01\x00\x02\xaf\x12\x00\x00\x00\x01\x00\x00\x00\x01'

if __name__ == "__main__":
    # PC作为客户端建立TCP连接
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((SENSOR_IP, SENSOR_PORT))
    # 发送读取请求
    sock.sendall(READ_FLOW_REQ)
    # 接收响应报文
    resp = sock.recv(256)
    # 解析报文:响应中第21-24字节为32位浮点数格式的测量值
    flow_value = struct.unpack('<f', resp[20:24])[0]
    print(f"当前传感器瞬时测量值:{flow_value}")
    sock.close()

异常排查

  • 连接失败先检查PC是否能ping通传感器配置的静态IP,ping不通优先排查网线连接、IP网段是否匹配。
  • 能ping通但接收不到响应,确认「无PLC直接通信」选项是否已经启用。
  • 数值解析错误可对照NU-EP1官方通信手册的寄存器映射表,调整请求报文中的寄存器地址和返回值解析规则即可。

内容的提问来源于stack exchange,提问作者RobertRondo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:39:02