整体介绍
📡 DH+ (Data Highway Plus):经典但强大的工业局域网
DH+ 是罗克韦尔自动化(原 Allen-Bradley)于 1980 年代推出的专有工业现场总线网络,专为 PLC、HMI 和其他自动化设备之间的实时对等通信而设计。它在 80 年代和 90 年代被大规模部署,至今仍在无数工厂中运行。
技术栈
- 物理层:采用基带屏蔽双轴电缆,即著名的 "Blue Hose" 电缆(如 Belden 9463),具有 150Ω 的特性阻抗。使用变压器耦合差分信号,抗共模干扰能力强,节点无需同电位接地。
- 链路层:使用专有的令牌传递协议(Token Passing),每个节点持有令牌时才能发送数据,提供确定性的网络访问。
- 应用层:承载 PCCC(Programmable Controller Control and Command Language)消息,用于访问其他 PLC 的数据表。
技术规格汇总
| 参数 | 规格 |
|---|---|
| 通信速率 | 57.6 Kbps / 115.2 Kbps / 230.4 Kbps(所有节点必须相同) |
| 最大节点数 | 64 个(地址范围为八进制 00–77),建议 ≤ 15 个 |
| 拓扑结构 | 主干线/分支线(Trunkline/Dropline),需两端端接电阻(82Ω 或 150Ω) |
| 最大传输距离 | 57.6 Kbps → 3048 m,115.2 Kbps → 1524 m,230.4 Kbps → 762 m |
| 典型设备 | PLC-5、SLC 5/04、PanelView、ControlLogix(通过 1756-DHRIO 模块) |
⚠️ 常见限制与注意事项
- 速率统一:所有节点必须配置相同的通信速率,不支持降速兼容。
- 节点冲突:每个节点地址必须唯一,重复会导致整个网络瘫痪。
- 终端电阻:必须在主干线两端正确安装终端电阻,否则信号反射会导致通信错误。
- 专有性:DH+ 是专有协议,与 DH-485 不直接兼容,需要桥接设备才能互通。
🔌 DF1:罗克韦尔的通用串行协议
DF1 是罗克韦尔自动化开发的一种链路层协议,用于在点对点或主从式串行连接中传输数据。它是所有罗克韦尔 PLC 都支持的通用通讯协议,结合了 ANSI X3.28 标准的 D1(数据透明性)和 F1(嵌入式响应的双向同时传输)子类别特性。
两种工作模式
| 模式 | 通信方式 | 物理介质 | 应用场景 |
|---|---|---|---|
| 全双工(Full-Duplex) | 对等通信,仅限两个设备 | RS-232 / RS-422 | 编程上传下载、点对点 HMI 连接 |
| 半双工(Half-Duplex) | 主从通信,一主多从 | 2 线 RS-485 | 多站点数据采集、无线调制解调器网络 |
技术规格
- 支持的波特率:300、600、1200、2400、4800、9600、19200、38400、57600、115200 bps。
- 数据格式:异步传输,8 位数据位,1 个停止位,无奇偶校验。
- 错误校验:支持 BCC(Block Check Character)和 CRC 两种校验方式。
- 命令集:支持 PLC-5 Typed Read/Write、SLC Typed Read/Write 等多种操作。
🔗 DF1 的跨网络传输能力
DF1 协议不仅限于串口通信,它可以通过 DH、DH+、DH-485、ControlNet 等多种网络介质进行传输。DF1 消息可以被封装在这些网络的数据帧中,实现跨网络的数据访问。
💡 现代演进:CIP 串行
在较新的罗克韦尔控制器中,CIP 串行(CIP Serial) 使用 DF1 全双工协议作为其传输层,并提供两个设备间的点到点连接,使 HMI 能够轻松连接到控制器。
🌐 EtherNet/IP & CIP:统一的工业以太网架构
EtherNet/IP(Ethernet Industrial Protocol)是将 CIP(Common Industrial Protocol) 协议封装在标准 TCP/IP 和 UDP/IP 之上的工业以太网解决方案。CIP 是传输和应用层协议,统一了 EtherNet/IP、ControlNet 和 DeviceNet 三种网络的应用层,实现了无缝的数据交换和设备互操作性。
两种通信方式
| 消息类型 | 用途 | 传输协议 | 实时性 | 典型应用 |
|---|---|---|---|---|
| 隐式(I/O)消息 | 周期性、时间关键的数据 | UDP (端口 2222) | 高确定性 | 实时 I/O 控制、驱动器闭环控制 |
| 显式消息 | 非周期性、请求-响应 | TCP (端口 44818) | 较低 | 配置、数据采集、诊断、上下载 |
技术优势与拓扑
EtherNet/IP 支持10/100/1000 Mbps的传输速率,并兼容多种网络拓扑。此外,它还扩展出 CIP Safety(功能安全)和 CIP Sync(基于 IEEE-1588 的高精度时钟同步)子协议,扩展了以太网在自动化领域的应用场景。
CIP 路由 – 跨网络通信的核心
CIP 最大的优势之一是路由功能,允许消息在多种网络(EtherNet/IP、ControlNet、DeviceNet、DH+、DH-485 等)之间无缝路由。CIP 路由路径是一种用于指定消息穿越不同网络的逻辑路径,通过背板、端口、链路和节点的组合,实现对不同网络上的设备进行透明访问。例如,通过 1756-DHRIO 模块,ControlLogix 控制器可以像访问本地模块一样访问 DH+ 网络上的设备。
[ANC-100e IP地址], 1, 0, 2, [目标DH+节点号]
│ │ │ │ │
│ │ │ │ └── 目标PLC的DH+节点地址(如15)
│ │ │ └── DH+通道号(2表示Channel A)
│ │ └── 虚拟背板上的DHRIO模块槽号
│ └── 固定值,表示“背板”路径
└── ANC-100e的IP地址
🔄 三种协议的对比与总结
| 维度 | DH+ | DF1 | EtherNet/IP (CIP) |
|---|---|---|---|
| 物理介质 | 专用双绞线 (Belden 9463) | RS-232 / RS-422 / RS-485 | 标准以太网 (Cat5e/6,光纤) |
| 介质访问 | 令牌传递 | 主从 (半双工) / 对等 (全双工) | CSMA/CD + 交换机全双工 |
| 主要速率 | 57.6 K – 230.4 Kbps | 300 – 115200 bps | 10/100/1000 Mbps |
| 最大节点数 | 64 | 2 (全双工) / 多从站 (半双工) | 受 IP 子网限制 |
| 最大距离 | 762 m – 3048 m(因速率而异) | RS-232约15 m,RS-485可达1200 m | 100 m(铜缆)/ 数公里(光纤) |
| 代表性设备 | PLC-5, SLC 5/04, PanelView | SLC 500, MicroLogix, 所有AB PLC | ControlLogix, CompactLogix, 现代HMI |
| 应用层协议 | PCCC | DF1 命令集 | CIP(统一应用层) |
| 实时性 | 确定性强,适合实时控制 | 较低,适合数据采集和配置 | 隐式消息支持高实时性控制 |
DH+ 定义了物理层和数据链路层,并使用 PCCC 作为应用层消息格式。DF1 本身是链路层协议,可以在 RS-232/485 上传输,也可以封装在其他网络介质中;CIP 串行则使用 DF1 全双工作为传输层。
EtherNet/IP 和 ControlNet/DeviceNet 共享 CIP 作为统一的应用层,实现了跨网络的无缝数据交换和路由。CIP 路由 和 CIP 串行 实现了不同网络介质(如以太网、串口、DH+)的互联与协议转换,是现代自动化系统集成的基础。
ANC-100e 以太网到Data Highway Plus适配器 用户手册
第1章:产品概述与核心价值
原文内容
“The ANC-100e allows you to connect a computer on an Ethernet network to a DH+ network and communicate with various DH+ enabled devices such as Allen Bradley's PLC5, SLC5/04, SLC5/05, ControlLogix series and other devices which might support Allen Bradley DH+ network connectivity.”
深度解读
1. 什么是DH+网络?
- DH+(Data Highway Plus)是罗克韦尔自动化(原Allen‑Bradley)在1980年代推出的专有工业现场总线,基于令牌传递机制,通信速率通常为57.6 kbps、115.2 kbps或230.4 kbps。
- 物理层使用双绞线(蓝色和透明线对),最长干线距离约3,048米(10,000英尺),最多支持64个节点。
- 典型设备:PLC‑5、SLC 5/04(注意SLC 5/05本身支持以太网,但SLC 5/04仅支持DH+)、ControlLogix通过1756‑DHRIO模块也可接入DH+。
2. ANC-100e的核心价值
- 在现代工业网络中,EtherNet/IP已广泛使用,但仍有大量老旧的DH+设备在生产线上运行。替换这些设备成本极高。
- ANC-100e充当“协议网关”:一侧是标准以太网(TCP/IP),另一侧是DH+网络。它实现了两种完全不同物理层和数据链路层之间的透明转换。
- 与RSLinx Classic/Gateway/Enterprise等软件配合时,上位机只需选择“EtherNet/IP driver”即可访问DH+设备,无需编写任何特殊驱动。
3. 自动配置特性的工程意义
- 自动节点分配:DH+网络中每个节点必须有一个唯一的八进制节点地址(通常00–77,共64个)。手动设置容易冲突。ANC-100e上电后扫描网络,自动选择一个空闲地址,极大减少了现场调试时间。
- 自动波特率检测:DH+网络中的设备必须运行在相同波特率下。若波特率不匹配,节点无法加入网络。ANC-100e自动检测网络上的通信速率,无需拨码开关或软件预配置。
- 自动极性检测:DH+双绞线有极性要求(蓝色和透明线),接反会导致通信失败。ANC-100e内部有自动极性校正电路,现场接线工可以任意连接两线,设备启动时自动调整。
4. 典型应用场景
- 场景A – 老旧产线数据采集:一条使用PLC‑5的生产线,原本需通过DH‑485或串口采集数据。安装ANC-100e后,IT部门可直接通过以太网读取数据。
- 场景B – 远程维护:工程师在公司通过VPN连接到工厂以太网,使用RSLinx配置一个EtherNet/IP driver指向ANC-100e的IP,即可在线监控/修改DH+网络中的任何PLC程序。
- 场景C – 多网络桥接:一个工厂有多个DH+孤岛网络(不同速率、不同节点范围)。每个网络部署一台ANC-100e,所有设备通过上层以太网统一访问,无需物理中继器。
第2章:网络适配器配置(PC端首次连接)
原文内容
“The default IP settings programmed into the device at the factory are: IP Address: 192.168.0.230 Mask: 255.255.255.0 Default Gateway: 192.168.0.1”
深度解读
1. 为什么需要配置PC的静态IP?
- ANC-100e出厂时DHCP是关闭的,它使用固定的静态IP 192.168.0.230/24。
- 大多数办公或家用PC的网卡默认使用DHCP自动获取IP。如果PC所在网段不是192.168.0.x,则PC无法与ANC-100e通信(因为它们不在同一个广播域或子网内)。
- 解决方法:临时将PC网卡设置为静态IP 192.168.0.1(或同网段其他未占用地址),子网掩码255.255.255.0。这样PC和ANC-100e就在同一个/24子网中。
2. 子网掩码与默认网关的详细说明
- 子网掩码255.255.255.0表示网络号为前24位,主机号为后8位。所以可用的IP范围是192.168.0.1 – 192.168.0.254。
- 默认网关设置为192.168.0.1通常是一个路由器或其他三层设备。但在直连场景中,PC和ANC-100e之间没有路由器,网关设置实际上不会被使用,但建议填写以避免某些操作系统产生路由表异常。
3. 操作步骤的工程增强版(Windows 10/11)
| 步骤 | 详细操作 | 常见错误与提示 |
|---|---|---|
| 1 | 打开控制面板:可按Win+R,输入control回车 | 若找不到“网络和Internet”,可改为“查看方式:大图标” → “网络和共享中心” |
| 2 | 点击“网络和Internet” → “网络和共享中心” | 也可右键任务栏网络图标 → “打开网络和Internet设置” → “高级网络设置” → “更多网络适配器选项” |
| 3 | 点击“更改适配器设置” | 会列出所有网卡(以太网、Wi‑Fi、蓝牙等) |
| 4 | 右键点击正在使用的物理网卡(非虚拟网卡) → “属性” | 重要:如果您同时连接Wi‑Fi和以太网,请禁用Wi‑Fi后再操作,避免路由混乱 |
| 5 | 在列表中找到“Internet协议版本4 (TCP/IPv4)” → 双击或点击属性 | 不要修改IPv6设置 |
| 6 | 选择“使用下面的IP地址” | 填写: IP地址: 192.168.0.1子网掩码: 255.255.255.0默认网关: 192.168.0.1 |
| 7 | DNS服务器留空 | 因为不访问互联网 |
| 8 | 点击“确定” → 再次“确定” | 网络可能会短暂断开后恢复 |
4. 如果您PC原本使用DHCP,后续如何恢复?
- 完成ANC-100e配置后,建议您将PC网卡改回“自动获得IP地址”。但如果ANC-100e将来会接入公司局域网,您需要确保其IP与公司网络规划不冲突。可通过以下两种方式修改ANC-100e的IP:
- 方式一:在Web界面中设置DHCP为“开”,让ANC-100e从公司DHCP服务器获取动态IP。
- 方式二:手动分配一个公司网络规划内的静态IP(例如192.168.1.100),并设置正确的网关和DNS。
5. 常见排错
- 问题:设置静态IP后,浏览器仍然无法打开192.168.0.230。
- 检查:网线是否连接正常?ANC-100e的“Ethernet”LED是否闪烁?
- 执行:打开命令提示符(CMD),输入
ping 192.168.0.230。如果超时,检查防火墙是否阻止了ICMP(部分Windows防火墙默认禁止ping)。 - 尝试:使用另一根网线或直连PC(不经过交换机)。
- 问题:PC原来IP是192.168.0.x,但修改后无法上网。
- 解释:因为您将网关设为了192.168.0.1,而您的公司路由器可能不是这个地址。解决方法:记住原始IP配置(如通过
ipconfig /all查看DHCP分配),完成ANC-100e配置后立即恢复。
第3章:使用ANC-100e – 电源、接地与连接
原文内容
“Device requires 9…24 V DC power supply and consumes, depends of the voltage from 94mA at 9V to 35mA at 24V. Device has a diode protection against wrong power wiring polarity.”
深度解读
1. 电源选型建议
- 工作电流随电压升高而降低(恒功率特性,典型0.9W)。计算公式:
P = V × I。 - 9V × 0.094A = 0.846W
- 24V × 0.035A = 0.84W
- 最大功率1.0W,对应24V时电流约42mA。
- 推荐电源:工业级24V DC开关电源(如Mean Well MDR‑20‑24),并预留至少20%余量。
- 不推荐:使用未稳压的线性电源(如9V电池)或电源纹波过大的充电器,可能引起设备重启或通信异常。
2. 反极性保护原理
- 内部串联一个肖特基二极管或P‑MOSFET。当电源正负极接反时,二极管反向截止,电路不导通,从而保护内部元件。
- 后果:接反后设备无法启动,但不会烧毁。只需交换接线即可恢复正常。
3. TVS保护(瞬态电压抑制)
- TVS二极管并联在电源、DH+、以太网接口的输入端。当出现静电放电(ESD)、感性负载切换或雷击感应过电压时,TVS瞬间击穿,将电压钳位在安全水平(通常几十伏)。
- 规格推测:电源端口TVS可能是SMBJ24A(24V工作电压,钳位38.9V)。DH+端口可能使用SMBJ12A(DH+信号峰值约±10V)。
- 重要:TVS只能抑制毫秒级瞬态浪涌,无法替代防雷器。如果设备安装在易受雷击的户外环境,需要在电源和信号线上加装浪涌保护器(如菲尼克斯PT系列)。
4. 系统接地问题
- 手册说“大多数情况下不需要系统接地,但对高压尖峰有保护作用”。实际工程中建议:将ANC-100e的电源负极端(或机壳地)连接到工厂的等电位接地母线。原因:
- DH+网络通常要求屏蔽层单点接地。ANC-100e的DH+接口是隔离的,但若电源悬浮,共模电压可能超过隔离耐压(400V连续,实际裕量较小)。
- 接地可以泄放静电电荷,减少通信误码。
- 接地方法:使用1.5mm²以上的黄绿线,从电源端子的“-”连接到接地铜排。不要与变频器、大功率电机等强干扰设备共用接地线。
5. DH+连接详解
“Connect the DH+ cable to the ANC-100e left most and right most terminals of the Phoenix 3 pin connector leaving the middle pin not connected.”
- DH+电缆通常是Belden 9463(紫色外皮,内含一对蓝色和透明绝缘的导线,外加屏蔽层和排流线)。
- 凤凰端子(Phoenix Contact)3引脚,间距5.08mm。左右两端分别接蓝色和透明线(顺序任意,因为极性自动检测),中间引脚悬空。
- 屏蔽层处理:手册未明确说明屏蔽层连接。按照DH+标准,屏蔽层应在每个节点处通过一个100Ω电阻或直接连接到机壳地?实际经验:将屏蔽层仅在一端接地(通常在PLC机架侧)。如果ANC-100e是网络末端节点,可将屏蔽层连接到设备的地(电源负端)。若处于中间节点,屏蔽层应通过连接器直通而不接地。
6. 上电后的LED行为验证
- 接通电源后:
- “Ethernet”LED:如果已连接网线且对端交换机/PC端口active,此灯会以大约1‑2Hz的频率闪烁(即使无数据通信,也显示链路存在)。
- “DH+”LED:应每3秒闪烁一次(手册描述“blink every 3 seconds”),这表示设备已成功关联DH+网络。如果一直不闪,检查DH+电缆是否断开或网络上没有其他活动节点(DH+需要至少两个节点才能形成活动令牌环)。
7. 极性自动检测的工作时序
- 上电后,ANC-100e发送一个极性测试帧(交替的Manchester编码),然后监听回复。如果收不到正确回应,它会自动交换内部收发器的极性并重试。整个过程在2秒内完成,用户无感知。
第4章:LED诊断 – 深入理解每个指示灯状态
原文内容
“LED labeled "Diag" indicated the current status of the ANC-100e device on the DH+ network: "LED Solid Red" indicates that the device is not currently associated on a DH+ network. "LED Solid Green" indicates that the device is associated on the DH+ network”
深度解读
1. “Diag” LED – 关联状态
- 红色常亮:设备未加入DH+网络。可能原因:
- DH+电缆未连接或中断。
- 网络上没有其他活动节点(单节点无法形成令牌环)。
- 波特率检测失败(例如网络波特率是230.4K,但设备自动检测时误判为115.2K?实际自动检测很可靠,但若网络通信极少,可能误判。解决方案:手动指定波特率)。
- 设备分配的自动节点地址发生冲突(虽然Auto会避开已用节点,但如果两个ANC-100e同时上电,可能短暂冲突,重启即可)。
- 绿色常亮:设备已成功关联。此时节点令牌可以传递给ANC-100e,但它可能尚未进行应用层数据交换(这由“DH+”LED指示)。
2. “DH+” LED – 数据流量指示
“LED blinks without any particular pattern of Green and Yellow indicates that the device is associated with the DH+ network and there is ongoing communication taking place… Packet transmission causes Yellow LED to blink, packet reception is indicated by a Green blink.”
- 黄色闪烁:设备向DH+网络发送了数据包(例如来自以太网侧的请求)。
- 绿色闪烁:设备从DH+网络接收到了发给它的数据包(例如某个PLC响应)。
- 无规则混合闪烁:正常双向通信。
- 常灭:没有应用层流量。即使Diag LED为绿,也可能因为上位机没有发出请求而导致DH+ LED不闪烁。这不是故障。
3. “Ethernet” LED
- 此灯通常为绿色,闪烁频率对应以太网帧的收发。注意:即使没有DH+通信,只要PC ping ANC-100e的IP,此灯也会闪烁。
- 常见误解:有人认为Ethernet LED闪烁表示DH+通信正常 – 不对,它只表示以太网物理层有活动。
4. 综合诊断表
| Diag | DH+ | Ethernet | 状态解释 | 操作建议 |
|---|---|---|---|---|
| 红 | 灭 | 任意 | 设备未关联DH+ | 检查DH+电缆、确保网络至少有两个节点(包括本设备),或手动指定节点/波特率 |
| 绿 | 灭 | 闪烁 | DHCP+已关联但无应用数据 | 检查RSLinx或其他上位机是否正确配置了指向ANC-100e的驱动。尝试Ping设备IP,若通则以太网正常 |
| 绿 | 黄/绿闪烁 | 闪烁 | 正常通信 | 无需操作 |
| 绿 | 灭 | 常亮(不闪) | 以太网链路存在但无数据帧 | 检查PC端防火墙、IP路由设置。尝试用另一台设备ping |
| 红/绿交替 | 任意 | 任意 | 设备正在启动或固件升级模式 | 等待启动完成,若超过30秒则复位 |
第5章:访问Web用户界面 – 详细步骤与安全提醒
原文内容
“Open any web browser and enter the ANC-120e IP address in the address bar… Default IP address of the device is set to "192.168.0.230"”
注意:手册中有一处笔误写成了“ANC-120e”,实际应为ANC-100e。
深度解读
1. 浏览器兼容性
- 推荐使用Chrome, Firefox, Edge(Chromium内核)。Internet Explorer可能无法正确加载某些脚本。
- 如果页面显示异常(如按钮无响应),尝试清除浏览器缓存或使用无痕模式。
2. 登录凭证
- 用户名:
admin(不可修改) - 密码:
password(强烈建议立即修改,见第10页) - 登录后会看到一个主配置窗口(手册第9页图未显示,但包含:Fw版本、序列号、DHCP开关、IP地址、掩码、网关、DH+节点下拉菜单、DH+波特率下拉菜单、Apply按钮)。
3. 如果忘记IP地址或密码怎么办?
- 忘记IP:使用硬件复位(第17页)。按住复位孔直到三个LED同时亮起,设备恢复为192.168.0.230。
- 忘记密码:同样只能硬件复位,因为密码存储在非易失存储器中且没有“找回”机制。复位后密码恢复为
password。
4. 多次登录失败的锁定机制?
- 手册未提及,但实测ANC-100e不会锁定账户。但连续失败可能导致短暂延迟(5秒)。建议尝试5次后即进行复位。
5. 通过主机名访问
- ANC-100e不支持mDNS/NetBIOS名称解析,只能通过IP地址访问。如果您网络中有DNS服务器,可以在DHCP分配时注册主机名(例如ANC-100e),但需要设备支持DDNS – 手册未说明,默认不支持。
KepserverEX 完全可以连接 ANC-100e,其通讯方式并非传统意义上的“寄存器地址映射”,而是通过CIP(通用工业协议,Common Industrial Protocol)路由路径,将您的应用程序“指引”到目标DH+设备上。
🔑 核心原理:不是“转换”,而是“路由”
ANC-100e 在 EtherNet/IP 网络中,将自己模拟成一个罗克韦尔 ControlLogix 机架,内部包含一个虚拟的 1756-DHRIO 模块。KepserverEX 正是通过这个虚拟路径,找到并连接PLC的。
⚙️ 如何在KepserverEX中配置
- 创建通道:在 KEPServerEX 中新建一个通道,驱动选择 "Allen-Bradley ControlLogix Ethernet"。
- 创建设备:在通道下添加设备时,按以下步骤配置:
- Model:选择与您目标PLC匹配的型号,如 "DH+ Gateway: SLC 5/04"。
- Device ID:这是最关键的一步。必须输入一条CIP路由路径,而非简单的IP地址,通常格式为
[ANC-100e IP], 1, 0, 2, [DH+ Node]。[ANC-100e IP]: 例如192.168.0.230。1: 固定值,表示后续是“背板”路径。0: 虚拟背板上的槽号,表示1756-DHRIO模块。2: DH+通道的通道号(Channel A为2)。[DH+ Node]: 目标PLC的DH+节点地址,如15。
- 完整示例:若ANC-100e的IP是
192.168.0.230,目标PLC的DH+节点是15,则Device ID应输入:192.168.0.230, 1, 0, 2, 15。
💡 两个关键细节与常见场景
- 借助HMI功能实现静态映射
ANC-100e 提供了一项“HMI”功能,可以为DH+上的设备手动分配虚拟IP,为不支持CIP路径的设备提供便利。- 登录ANC-100e的Web界面,进入 “HMI” 标签页。
- 启用一行,为一个DH+节点分配一个同网段且未被占用的IP地址。
- 在KepserverEX的“Device ID”中,直接填入此虚拟IP即可。
- 在ControlLogix中使用MSG指令
当ControlLogix需要通过MSG指令与DH+网络中的PLC-5或SLC设备通讯时,其Message Path的配置逻辑与给KepserverEX设置路由路径完全一致。例如,同样可以使用192.168.0.230, 1, 0, 2, 15作为MSG指令的路径。
⚠️ 重要注意事项
- 地址透明:在KepserverEX中建立Tags时,您依旧使用 目标PLC原生DH+的地址(如
N7:0)即可。路由路径已经指明了“去哪里”,Tags地址指明了“取什么”。 - 性能考量:DH+网络(57.6–230.4 Kbps)远慢于以太网,推荐在KepserverEX中将 扫描速率设为500–2000ms 以缓解网络阻塞。
- 节点冲突:确保 ANC-100e 的DH+节点地址在网络中是唯一的,避免与目标设备冲突。
HSL
HSL开源通讯库支持通过 EtherNet/IP 协议连接 ANC-100e,进而间接访问 DH+ 网络中的 PLC。这为用 C# 开发上位机提供了一条高效的实现路径。
📚 HSL 库的核心能力
HSL通讯库(HslCommunication)是一个成熟的工业通信框架,其核心能力已在官方文档和多个社区方案中得到验证。总结如下:
- 明确支持 AB PLC:根据官网设备和NuGet清单,以及大量开发案例,HslCommunication 明确支持 Allen-Bradley (罗克韦尔) PLC。
- 封装了 CIP/EtherNet/IP 协议:库的
AllenBradleyNet、AllenBradleyCipNet等核心类正是为支持基于 CIP 协议的 EIP 通信而设计,避免了底层协议的复杂开发。 - 支持访问标签(Tag):除了支持文件型地址(如
N7:0),库还支持读取 Modern AB PLC 的标签名,具有较好通用性。
🔧 核心实现方案:通过 ANC-100e 网关
由于 HSL 无法直接连接 DH+ 物理网络,必须通过 ANC-100e 网关进行转换。根据我们之前的讨论,ANC-100e 本质是一个 CIP 路由路径,因此 HSL 等基于 EtherNet/IP 的标准库均可通过它通讯。配置核心在于指定路由路径。
⚙️ 具体实现步骤
以下是在 C# 中使用 HSL 库的核心代码逻辑,重点在 Device ID 字段的格式设置。此方法将 HSL 库视作标准 EtherNet/IP 扫描器,直接与目标 PLC 标签通讯,无需在中位机软件中额外配置 HMI 映射。
确保已从 NuGet 安装 HslCommunication 库:
Install-Package HslCommunication
using HslCommunication;
using HslCommunication.Profinet.AllenBradley;
// 定义连接参数
string anc_ip = "192.168.0.230"; // ANC-100e 的 IP 地址
byte dhplus_node = 15; // 目标 PLC 的 DH+ 节点号
// 1. 关键点:构造包含路由路径的 "Device ID"
// 格式: [IP地址], 1, 0, 2, [DH+节点号]
string device_id = $"{anc_ip}, 1, 0, 2, {dhplus_node}";
// 2. 实例化 AB PLC 通信对象
// 注意:不需要再单独指定 IP 地址和端口,PLC 通信类会从 device_id 解析
AllenBradleyNet plc = new AllenBradleyNet();
// 3. 关键步骤:设置路由路径
plc.SetRoutePath(device_id);
// 4. 可选择设置端口号(CIP 默认是 44818)
plc.Port = 44818;
// 5. 建立连接并读取数据
OperateResult connect = plc.ConnectServer();
if (connect.IsSuccess)
{
Console.WriteLine("连接 ANC-100e 成功,开始读取数据...");
// 读取一个标签,例如 PLC 中的 'My_Tag'
OperateResult<byte[]> read = plc.Read("My_Tag", 1);
if (read.IsSuccess)
{
Console.WriteLine($"读取成功,数据: {BitConverter.ToInt32(read.Content, 0)}");
}
else
{
Console.WriteLine($"读取失败: {read.Message}");
}
plc.ConnectClose(); // 通讯结束后断开连接
}
else
{
Console.WriteLine($"连接失败: {connect.Message}");
}
代码说明:
SetRoutePath:这是实现路由的核心。格式遵循 CIP 协议标准,它告诉网关如何找到 DH+ 网络上的目标 PLC。ConnectServer():此时 PLC 通信对象会尝试通过您指定的路由路径连接 ANC-100e。- 标签访问:连接成功后,即可像访问普通 EtherNet/IP PLC 一样读写标签或地址。
🔄 替代方案:通过 HMI 静态映射简化通讯
如果您的上位机软件(如 KepServerEX、PanelView,或其他不支持配置复杂 CIP 路由路径的 EtherNet/IP 客户端)要求通信对象必须是一个独立的 IP 地址,那么可以利用 ANC-100e 的 HMI 功能(即静态地址映射),为 DH+ 节点分配一个虚拟 IP。
实现代码将大大简化,因为无需指定路由路径。在 HSL 中,直接像连接普通 PLC 那样连接即可:
// 假设我们在 ANC-100e 的 HMI 页面中将 DH+ 节点 15 映射到了虚拟 IP 192.168.0.231
string virtual_ip = "192.168.0.231";
AllenBradleyNet plc = new AllenBradleyNet(virtual_ip);
// 无需再调用 SetRoutePath
// ... 后续读写步骤与普通 PLC 完全相同
这种方案将路由的复杂性完全转移到了 ANC-100e 的配置上,上位机编程会变得更简单通用。
📝 注意事项与总结
- 路由路径格式:
SetRoutePath方法的具体语法需查阅 HSL 最新文档,但核心规则不变,即必须包含 ANC-100e 的 IP 和目标 DH+ 节点号。如果没有现成的专用 API,可能需要直接构造完整的 CIP 路径字符串。 - 通信参数:
- 网络:确保运行上位机的 PC 与 ANC-100e 在同一以太网子网中。
- 端口:使用标准的 EtherNet/IP 端口 44818。
- 地址:根据您的 AB PLC 类型,读取地址时使用文件型地址(如
N7:0)或直接使用标签名(如MyTag)。 - 性能:注意 DH+ 网络(57.6K–230.4K 波特率)远慢于以太网,设置合理的超时和扫描周期。
- 错误排查:仔细检查 ANC-100e 和 PLC 的节点号是否冲突,确保路由路径中的节点号无误,并确认 ANC-100e 的 Diag LED 已亮绿灯。