简介这份PPT面向煤矿行业信息化建设人员、自动化与通信工程技术人员及矿业类高校师生系统梳理工业以太网在煤矿井下场景中的落地路径。内容围绕工业以太网概念、Ethernet应用于工业现场的关键技术、工业以太网协议、数字化变电所、WI-FI无线通信技术及基于WI-FI的新一代井下救灾监控指挥系统等模块展开重点讲解通信确定性与实时性、稳定性与可靠性、安全性、总线供电等核心议题并对比Modbus TCP/IP、ProfiNet、Ethernet/IP等主流协议特点。资源包共1个pptx文件约3.68MB以幻灯片形式呈现结构清晰便于课堂讲授或技术汇报直接使用。已有52人学习下载。读者可借此快速建立煤矿信息化技术知识框架理解工业以太网改造井下通信的可行方案与防爆、冗余等工程要点为课题研究或现场方案设计提供参考。1. 煤矿信息化技术从一份 PPT 标题拆出井下工业网络的落地骨架一份名为「煤矿信息化技术」的 PPT真正要讲清楚的不是概念堆砌而是井下这张网怎么搭、协议怎么选、数据怎么从采掘面回到调度室。煤矿信息化的核心是把工业以太网、Wi-Fi、Modbus TCP/IP、ProfiNet、Ethernet/IP 这些听起来偏工厂车间的词塞进一个高粉尘、高湿度、有防爆要求、设备还经常移动的环境里。它解决的是「井下设备数据上不来、调度看不见、控制下不去」的老问题适合矿井自动化工程师、系统集成商、以及被派去写煤矿信息化方案的技术负责人。这篇笔记不假装见过那份 PPT 的正文只顺着标题把最常见的落地路径讲透让你能照着搭出一套能跑通的井下网络骨架。2. 井下工业网络选型为什么 ProfiNet 和 Modbus TCP/IP 要分场景用煤矿信息化最容易被低估的一步是协议选型。很多人一上来就说「全上工业以太网」结果到了现场发现采煤机、掘进机、皮带保护这些设备来自不同年代、不同厂家接口五花八门。工业以太网是底座但底座之上跑什么协议决定了你后面调试是三天还是三周。这一章先把选型逻辑讲清楚再落到具体配置。2.1 工业以太网在井下的三层结构井下网络通常分三层井上调度层、井下主干层、现场设备层。井上调度层用普通商用以太网就行交换机放在机房跑监控画面、数据库、Web 发布。井下主干层是真正的考验必须用矿用阻燃网线或光缆交换机要过煤安认证环网冗余是标配因为井下断一处链路可能影响整个采区。现场设备层最杂PLC、变频器、传感器、摄像头混在一起这一层才轮到 ProfiNet、Ethernet/IP、Modbus TCP/IP 各显身手。常见做法是主干层跑千兆环网现场层按设备品牌分网段。比如西门子 PLC 主导的控制区走 ProfiNet安川机器人或罗克韦尔设备走 Ethernet/IP老式仪表和电表走 Modbus TCP/IP。三层之间用工业网关或三层交换机做路由不要试图用一个协议打通所有设备那是给自己挖坑。提示井下交换机选型时工作温度范围和防爆等级比端口数量重要别只看价格。2.2 ProfiNet 与 Modbus TCP/IP 的配置差异ProfiNet 是西门子系设备的首选实时性好支持 IRT 等时同步适合运动控制。配置时在 TIA Portal 里组态设备名和 IPPLC 作为控制器远程 IO 作为设备。关键参数是看门狗时间和更新周期井下网络抖动大更新周期别设太小一般 4ms 到 8ms 起步看门狗设成更新周期的 3 倍以上。Modbus TCP/IP 简单得多适合电表、温度变送器、老式保护装置。它没有设备名概念全靠 IP 和寄存器地址。配置时注意字节序很多国产仪表默认大端而部分 PLC 读出来是小端数据会翻车。下面是一段用 Python 读 Modbus TCP 寄存器的示例调试阶段很实用from pymodbus.client import ModbusTcpClient # 井下电表常见IP 192.168.10.21端口 502从站号 1 client ModbusTcpClient(192.168.10.21, port502) client.connect() # 读保持寄存器 0x0000 开始的 2 个寄存器对应电压值 rr client.read_holding_registers(address0, count2, slave1) if not rr.isError(): raw rr.registers # 大端拼接高字在前低字在后 value (raw[0] 16) | raw[1] print(电压原始值:, value, 实际值需乘量程系数) else: print(读取失败检查 IP、从站号、寄存器地址) client.close()这段代码的逻辑是先建立 TCP 连接再按从站号读寄存器最后按大端拼接成 32 位整数。参数说明address0是寄存器起始地址不同厂家可能从 1 开始要查手册slave1是从站号井下多台仪表串联时每个从站号必须唯一count2表示读两个 16 位寄存器拼一个 32 位值。如果读出来是 0 或报错先 ping 通 IP再用 Modbus Poll 这类工具确认寄存器地址最后才怀疑字节序。2.3 无线覆盖Wi-Fi 在井下不是随便布 AP井下 Wi-Fi 主要给移动设备用比如巡检手持终端、无线摄像头、人员定位。热搜里出现的 Wi-Fi 6E、AX211 这些是地面办公场景的网卡井下别直接套。井下 AP 要选矿用本安型功率受限覆盖半径通常只有 100 到 200 米巷道拐弯处信号衰减严重。布点时沿巷道每隔 150 米放一个拐弯处加一个用定向天线比全向天线更稳。频段选 2.4G 还是 5G 要看场景。2.4G 穿墙好但干扰大井下电机、变频器都是干扰源5G 速率高但覆盖近。常见做法是 2.4G 做覆盖兜底5G 做视频回传。信道规划要错开1、6、11 三个不重叠信道轮着用。如果手持终端漫游掉线检查 AP 间的信号重叠区是否足够一般要求重叠 15% 到 20%切换阈值设 -70dBm 左右。3. 从 PLC 到调度室数据采集链路怎么搭才不断协议选完下一步是把数据从井下设备送到井上数据库。这条链路最容易断在三个地方网关配置、网段隔离、数据缓存。这一章按数据流向讲每一步都给可抄的配置思路。3.1 用工业网关做协议转换现场设备协议不统一时工业网关是性价比最高的方案。比如把 Modbus TCP/IP 转成 ProfiNet或者把 Ethernet/IP 转成 OPC UA。配置步骤通常是先设网关 LAN 口 IP与设备同网段再在网关里建数据点表把 Modbus 寄存器映射到 ProfiNet 的输入输出区最后在 PLC 里组态网关的 GSD 文件。以某常见网关为例数据点表配置如下点名源协议源地址目标协议目标地址数据类型皮带电流Modbus TCP40001ProfiNetIW64UINT16电机温度Modbus TCP40003ProfiNetIW66INT16启停状态Modbus TCP00001ProfiNetQ0.0BOOL配置时注意源地址的寄存器编号要按设备手册写40001 和 0 是两种编址方式差一位就全错。目标地址要和 PLC 组态一致IW64 表示输入字 64。数据类型不匹配会导致数值乱跳比如 UINT16 和 INT16 在负温度时表现不同。3.2 网段隔离与路由配置井下设备多一个网段塞几百台设备会广播风暴。常见做法是按采区划分 VLAN比如采煤区 VLAN 10掘进区 VLAN 20皮带区 VLAN 30。三层交换机做 VLAN 间路由只放行需要的流量。调度室服务器放在独立 VLAN通过防火墙访问各采区。配置 VLAN 时交换机端口要设成 Access 或 Trunk。接 PLC 的端口设 Access划到对应 VLAN接交换机的端口设 Trunk允许所有 VLAN 通过。路由用静态路由或 OSPF井下网络规模不大静态路由更可控。下面是一段 Cisco 风格的三层交换机配置示例# 创建 VLAN vlan 10 name caimei vlan 20 name juejin vlan 30 name pida # 配置 VLAN 接口地址作为各网段网关 interface vlan 10 ip address 192.168.10.1 255.255.255.0 interface vlan 20 ip address 192.168.20.1 255.255.255.0 interface vlan 30 ip address 192.168.30.1 255.255.255.0 # 开启路由 ip routing # 上联口设 Trunk interface gigabitEthernet 0/1 switchport mode trunk switchport trunk allowed vlan 10,20,30逻辑说明先建 VLAN再给每个 VLAN 配网关地址开启ip routing后 VLAN 间才能通。Trunk 口放行需要的 VLAN不要用all避免无关广播串网。参数说明192.168.10.1是采煤区网关PLC 的 IP 要设成同网段且不冲突allowed vlan列表按实际规划写后期加 VLAN 要同步更新。3.3 断线缓存与数据补传井下网络抖动是常态数据采集程序必须能扛断线。常见做法是在采集端加本地缓存网络恢复后补传。缓存用 SQLite 或本地文件都行关键是记录时间戳和序列号补传时按序上传避免乱序。下面是一段带缓存重传的采集逻辑import sqlite3 import time from pymodbus.client import ModbusTcpClient # 初始化本地缓存 conn sqlite3.connect(cache.db) conn.execute(CREATE TABLE IF NOT EXISTS data (ts REAL, point TEXT, value REAL, sent INT)) conn.commit() def collect_and_cache(): client ModbusTcpClient(192.168.10.21, port502) try: client.connect() rr client.read_holding_registers(address0, count2, slave1) if not rr.isError(): value (rr.registers[0] 16) | rr.registers[1] conn.execute(INSERT INTO data VALUES (?,?,?,0), (time.time(), voltage, value)) conn.commit() except Exception as e: print(采集失败已缓存:, e) finally: client.close() def resend_cached(): rows conn.execute(SELECT rowid, ts, point, value FROM data WHERE sent0 ORDER BY ts).fetchall() for row in rows: # 这里替换成实际上传接口比如 HTTP POST 或 MQTT ok upload_to_server(row[1], row[2], row[3]) if ok: conn.execute(UPDATE data SET sent1 WHERE rowid?, (row[0],)) conn.commit() else: break # 网络仍不通下次再试逻辑说明采集时先写本地库标记sent0补传时按时间顺序读未发送记录上传成功才标记sent1。参数说明ts用 Unix 时间戳方便排序point是点位名用于区分不同测点sent是发送标志0 未发、1 已发。注意补传要限速别网络一恢复就猛发把交换机打挂。4. 避坑与排查井下网络调试最常见的 5 个翻车现场这一章全是血泪经验每条按现象、原因、解决写。井下环境特殊很多在地面不是问题的事到了井下就是大问题。4.1 ProfiNet 设备频繁掉线PLC 报看门狗超时现象PLC 诊断缓冲区里全是「看门狗超时」设备时好时坏换网线也没用。原因井下网络抖动大ProfiNet 更新周期设得太小比如 1ms设备稍微延迟就超时。另外交换机没开 QoS视频流量和 control 流量抢带宽。解决把更新周期调到 4ms 或 8ms看门狗设成更新周期的 3 到 5 倍。交换机开启 QoSProfiNet 流量标为高优先级。如果还掉检查是否走了无线链路ProfiNet 不建议跨无线。4.2 Modbus TCP 读出来全是 0 或 65535现象Python 脚本或组态软件读 Modbus 寄存器值要么是 0要么是 65535偶尔跳变。原因寄存器地址编址方式不对或者从站号写错或者字节序反了。65535 通常是读到了不存在的寄存器。解决先用 Modbus Poll 手动读确认地址和从站号。地址从 0 还是 1 开始查设备手册。字节序问题用struct.unpack试大端和小端看哪个值合理。如果读多个寄存器注意有些设备寄存器是连续的有些有间隔。4.3 Wi-Fi 手持终端漫游时断网现象巡检人员拿着终端走动跨 AP 时视频卡顿或直接掉线要重新连。原因AP 信号重叠区不够或者切换阈值设得太低终端死抱着弱信号不放。也可能是不同 AP 的 SSID 相同但认证方式不一致。解决调整 AP 位置保证重叠区信号在 -65dBm 以上。切换阈值设 -70dBm 左右让终端及时切。所有 AP 的 SSID、密码、加密方式必须完全一致信道错开。如果终端支持 802.11r/k/v在 AP 上开启快速漫游。4.4 网关数据点表对不上PLC 读到乱码现象网关配置完PLC 里读到的数值和现场仪表显示差很多或者负数变成大正数。原因数据类型不匹配比如仪表是 INT16网关按 UINT16 映射或者字节序在转换时没处理。解决逐点核对数据类型和字节序。INT16 负数在 UINT16 里会变成 32768 以上的值。网关一般有字节序选项试「大端」「小端」「字交换」三种组合。点表改完要下载并重启网关有些网关不重启不生效。4.5 环网冗余切换导致数据中断几秒现象环网断一处链路网络能恢复但数据中断几秒调度画面卡住。原因环网协议切换需要时间RSTP 通常 1 到 3 秒专有环网协议能到 50ms 以内。如果对中断敏感RSTP 不够快。解决换支持专有环网协议的交换机比如西门子 HRP、赫斯曼 HIPER-Ring切换时间能压到毫秒级。如果预算有限至少把 RSTP 的 hello 时间调小但别太小否则误切换。关键数据链路可以做双网冗余PLC 双网口接不同交换机。5. 进阶技巧用 OPC UA 把井下数据统一成一种语言前面讲的协议转换、网关映射都是「翻译」思路。设备一多点表维护量巨大改一个点要动好几处。进阶做法是上 OPC UA让 PLC、网关、仪表都通过 OPC UA 暴露数据上层用统一客户端订阅。这样新增设备只需在 OPC UA 服务器里加节点不用改采集程序。具体做法西门子 PLC 用 S7-1500 自带 OPC UA 服务器或者加 OPC UA 网关模块。Modbus 设备用软件网关转 OPC UA比如 KEPServerEX 或开源的 open62541。配置时给每个点位建一个 NodeID命名规范建议用「采区.设备.测点」比如Mine.Caimei.Belt01.Current。客户端订阅时按 NodeID 过滤只取需要的点。下面是一段用 Python 的opcua库订阅节点的示例from opcua import Client # 连接井下 OPC UA 服务器 client Client(opc.tcp://192.168.10.100:4840) client.connect() # 获取根节点下的对象 root client.get_root_node() objects root.get_child([0:Objects]) # 按 NodeID 直接取点位 node client.get_node(ns2;sMine.Caimei.Belt01.Current) value node.get_value() print(皮带电流:, value) # 订阅变化 class SubHandler: def datachange_notification(self, node, val, data): print(点位变化:, node, val) handler SubHandler() sub client.create_subscription(500, handler) # 500ms 发布周期 handle sub.subscribe_data_change(node) client.disconnect()逻辑说明先连 OPC UA 服务器再按 NodeID 取节点get_value读当前值create_subscription订阅变化。参数说明opc.tcp://是 OPC UA 的 TCP 协议前缀端口默认 4840ns2是命名空间索引不同服务器可能不同用 UaExpert 工具查500是发布周期单位毫秒井下网络慢可以设 1000。订阅比轮询省带宽但要注意服务器最大订阅数限制。验证方法用 UaExpert 连上服务器浏览节点树确认每个点位都能读到合理值。然后模拟断网看客户端是否自动重连OPC UA 客户端一般有重连机制但要设重连间隔别太频繁。我自己的习惯是新上 OPC UA 的项目先拿一个采区试点跑一周稳定了再推广。井下网络没有后悔药改一次配置可能要下井一次能在地面验证的绝不下井。希望帮到你。本文还有配套的精品资源点击获取