当前位置: 首页 > news >正文

工业应用通信协议:IEC104

一、IEC104 协议概述

1.1 协议简介

IEC 60870-5-104 (简称 IEC104) 是国际电工委员会(IEC)制定的用于电力系统调度自动化的远动通信协议。它是在 IEC 60870-5-101 基础上,通过 TCP/IP 网络传输的扩展协议。

┌────────────────────────────────────────────────────────────────────┐ │ IEC 60870-5-104 协议栈 │ ├────────────────────────────────────────────────────────────────────┤ │ 应用层 ASDU (Application Service Data Unit) │ │ ┌──────────────────────────────────────────────────────────────┐ │ │ │ 类型标识 | VSQ | 传送原因 | 公共地址 | 信息对象地址 | 数据 │ │ │ └──────────────────────────────────────────────────────────────┘ │ ├────────────────────────────────────────────────────────────────────┤ │ APCI (Application Protocol Control Information) │ │ ┌──────────────────────────────────────────────────────────────┐ │ │ │ 启动字符(0x68) | APDU长度 | 控制域(4字节) │ │ │ └──────────────────────────────────────────────────────────────┘ │ ├────────────────────────────────────────────────────────────────────┤ │ 传输层: TCP (端口 2404) │ ├────────────────────────────────────────────────────────────────────┤ │ 网络层: IP │ ├────────────────────────────────────────────────────────────────────┤ │ 数据链路层 + 物理层: 以太网 │ └────────────────────────────────────────────────────────────────────┘

1.2 帧类型

IEC104 协议定义了三种帧格式:

帧类型名称功能控制域特征
I帧信息帧传输用户数据(ASDU)发送序号 + 接收序号
S帧监视帧确认接收、流量控制只有接收序号
U帧无编号帧链路控制(启动/停止/测试)STARTDT/STOPDT/TESTFR
I帧格式 (信息传输): ┌────────┬────────┬────────┬────────┬────────┬─────────────┐ │ 0x68 │ 长度 │ 发送序号(低) │ 发送序号(高) │ 接收序号(低) │ 接收序号(高) │ ASDU... │ └────────┴────────┴────────┴────────┴────────┴─────────────┘ S帧格式 (监视确认): ┌────────┬────────┬────────┬────────┬────────┬────────┐ │ 0x68 │ 0x04 │ 0x01 │ 0x00 │ 接收序号(低) │ 接收序号(高) │ └────────┴────────┴────────┴────────┴────────┴────────┘ U帧格式 (链路控制): ┌────────┬────────┬────────┬────────┬────────┬────────┐ │ 0x68 │ 0x04 │ 控制字 │ 0x00 │ 0x00 │ 0x00 │ └────────┴────────┴────────┴────────┴────────┴────────┘

1.3 核心数据类型

根据代码中的实现,主要支持以下数据类型:

数据类型类型标识符说明
遥信(DI)M_SP_NA (1), M_DP_NA (3)单点/双点状态信息
遥测(AI)M_ME_NC (13), M_ME_NA (9)浮点/归一化测量值
遥控(DO)C_SC_NA (45), C_DC_NA (46)单点/双点控制命令
遥调(AO)C_SE_NA (48), C_SE_NC (50)归一化/浮点设定值
SOEM_SP_TB (30)带时标的单点状态变化
电能量M_IT_NA (15)累积电能量
时钟同步C_CS_NA (103)时钟同步命令

二、应用场景

2.1 典型应用领域

┌────────────────────────────────────────────────────────────────────────────┐ │ IEC104 典型应用架构 │ ├────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 调度中心 / SCADA主站系统 │ │ │ │ (IEC104 Client / 控制站) │ │ │ └──────────────────────────┬──────────────────────────────┘ │ │ │ │ │ ┌──────────┴──────────┐ │ │ │ TCP/IP 网络 │ │ │ │ (端口 2404) │ │ │ └──────────┬──────────┘ │ │ ┌──────────────────┼──────────────────┐ │ │ │ │ │ │ │ ┌──────┴──────┐ ┌──────┴──────┐ ┌──────┴──────┐ │ │ │ 变电站RTU │ │ 配电终端DTU │ │ 新能源控制器 │ │ │ │ (Server) │ │ (Server) │ │ (Server) │ │ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ │ │ ┌──────┴──────┐ ┌──────┴──────┐ ┌──────┴──────┐ │ │ │ 保护/测控 │ │ 开关设备 │ │光伏/储能系统│ │ │ │ 装置 │ │ │ │ │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ └────────────────────────────────────────────────────────────────────────────┘

2.2 主要应用场景

应用场景描述特点
电网调度省/地/县调度中心与变电站通信大规模、高可靠性
配电自动化配电主站与配电终端通信分布式、实时性
新能源光伏/风电场与集控中心通信海量数据、变化频繁
储能系统BMS与EMS之间的数据交换双向控制
工业自动化工厂电力监控系统集成性强

三、客户端与服务端架构对比

3.1 该程序在控制器侧的角色

┌─────────────────────────────────────────────────────────────────────────────┐ │ 控制器侧 IEC104 通信架构 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌───────────────────────────────────────────────────────────────────┐ │ │ │ MGC V2 控制器 │ │ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ │ │ pro_iec104 模块 │ │ │ │ │ │ ┌─────────────────────┐ ┌─────────────────────────────┐ │ │ │ │ │ │ │ Sub104 (子站) │ │ TerminalMaster (主站) │ │ │ │ │ │ │ │ ┌───────────────┐ │ │ ┌─────────────────────┐ │ │ │ │ │ │ │ │ │ TCP Server │ │ │ │ TCP Client │ │ │ │ │ │ │ │ │ │ 监听端口2404 │ │ │ │ 主动连接主站 │ │ │ │ │ │ │ │ │ │ 被动等待连接 │ │ │ │ 主动发起请求 │ │ │ │ │ │ │ │ │ └───────────────┘ │ │ └─────────────────────┘ │ │ │ │ │ │ │ │ 功能: │ │ 功能: │ │ │ │ │ │ │ │ - 响应总召 │ │ - 发起总召 │ │ │ │ │ │ │ │ - 数据变化上报 │ │ - 接收数据 │ │ │ │ │ │ │ │ - 接收遥控命令 │ │ - 下发遥控命令 │ │ │ │ │ │ │ │ - 执行本地控制 │ │ - 时钟同步 │ │ │ │ │ │ │ └─────────────────────┘ └─────────────────────────────┘ │ │ │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ └───────────────────────────────────────────────────────────────────┘ │ │ ▲ │ │ │ │ TCP/IP │ TCP/IP │ │ │ ▼ │ │ ┌─────────┴─────────┐ ┌─────────┴─────────┐ │ │ │ 上级调度主站 │ │ 下级子设备RTU │ │ │ │ (SCADA Client) │ │ (IEC104 Server) │ │ │ └───────────────────┘ └───────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────┘

3.2 客户端(Client) vs 服务端(Server) 详细对比

特性子站模式 (Sub104/Server)主站模式 (TerminalMaster/Client)
TCP角色TCP Server (监听端口)TCP Client (主动连接)
默认端口2404 (可配置)连接远端2404
连接方式被动等待连接主动发起连接
数据流向上报数据给主站从子站采集数据
总召处理响应总召,上传数据发起总召,接收数据
遥控流程接收并执行遥控命令下发遥控命令
变化上报主动上报(COS/COT)被动接收变化数据
时钟同步接收对时命令发送对时命令
典型应用作为被采集设备对接上级调度采集下级子设备数据

四、IEC104 vs IEC61850 vs Modbus 协议对比

4.1 综合对比表

特性IEC 60870-5-104IEC 61850Modbus TCP
标准组织IEC TC57IEC TC57Modicon (Schneider)
发布时间2000年2003年1979年(RTU)/1999年(TCP)
传输层TCP/IP (端口2404)TCP/IP + 专用协议TCP/IP (端口502)
数据模型平面点表面向对象(IED/LD/LN)寄存器/线圈
应用层ASDUMMS/GOOSE/SMV简单请求/响应
语义描述类型标识符SCL语言描述
变化上报支持(COT机制)支持(Report/GOOSE)不支持(需轮询)
事件顺序SOE(毫秒级)支持(纳秒级)不支持
配置方式手动配置点表SCL/ICD/SCD自描述手动配置寄存器
互操作性良好优秀(自描述)一般
复杂度中等
实施成本中等
主要应用电力调度/配电变电站内部工业自动化

4.2 协议栈对比图

┌──────────────────────────────────────────────────────────────────────────────┐ │ 协议栈架构对比 │ ├──────────────────────┬──────────────────────┬──────────────────────┐─────────┤ │ IEC 104 │ IEC 61850 │ Modbus TCP │ OSI层 │ ├──────────────────────┼──────────────────────┼──────────────────────┼─────────┤ │ │ SCL 配置语言 │ │ │ │ ASDU 数据单元 ├──────────────────────┤ │ 应用层 │ │ (类型+COT+数据) │ MMS │ GOOSE │ SMV │ Modbus 功能码 │ │ ├──────────────────────┼─────┼───────┼────────┼──────────────────────┼─────────┤ │ APCI │ │ │ │ │ 表示层 │ │ (I/S/U帧控制) │ TCP │ 以太网│ 以太网 │ MBAP Header │ │ ├──────────────────────┼─────┼───────┼────────┼──────────────────────┼─────────┤ │ TCP │ TCP │ IEEE │ IEEE │ TCP │ 传输层 │ │ (端口2404) │ │802.1Q │802.1Q │ (端口502) │ │ ├──────────────────────┼─────┴───────┴────────┼──────────────────────┼─────────┤ │ IP │ IP │ IP │ 网络层 │ ├──────────────────────┼──────────────────────┼──────────────────────┼─────────┤ │ Ethernet │ Ethernet │ Ethernet │数据链路 │ └──────────────────────┴──────────────────────┴──────────────────────┴─────────┘

4.3 数据模型对比

┌─────────────────────────────────────────────────────────────────────────────┐ │ 数据模型对比 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ IEC 104 (平面点表): │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ 公共地址 │ 信息对象地址 │ 数据值 │ 品质描述 │ 时标 │ │ │ │ 1 │ 0x0001 │ 1 │ 0x00 │ CP56Time2a │ │ │ │ 1 │ 0x4001 │ 220.5 │ 0x00 │ - │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ IEC 61850 (面向对象): │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ IED: Bay1_Protection │ │ │ │ └─ LD: Protection │ │ │ │ └─ LN: PTOC1 (过流保护) │ │ │ │ ├─ DO: Str (启动) │ │ │ │ │ └─ DA: stVal = true │ │ │ │ │ └─ DA: q = good │ │ │ │ │ └─ DA: t = 2024-01-15T10:30:00.123Z │ │ │ │ └─ DO: Op (动作) │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ Modbus (寄存器模型): │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ 线圈 (Coil): 地址 0-65535, 单bit读写 │ │ │ │ 离散输入 (DI): 地址 0-65535, 单bit只读 │ │ │ │ 保持寄存器 (HR): 地址 0-65535, 16bit读写 │ │ │ │ 输入寄存器 (IR): 地址 0-65535, 16bit只读 │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────┘
http://www.cnnetsun.cn/news/140811.html

相关文章:

  • 群体分析如何改变你的客户洞察
  • 别再为BGM被下架了,可以生成带声音且无版权素材的AI,真的来了
  • vue和springboot框架开发的校园商店零售管理系统_pt87nuk3
  • vue和springboot框架开发的校园智能AI问答技术的快递物流管理系统_5kf8to85
  • 文件句柄数超限
  • 如何用 Oracle 的账号和权限来连接 ZooKeeper 的客户端认证、ACL 绑定到身份 2 个概念
  • 艾宝体案例 | 以人为本、灵活赋能:Spectris携手KnowBe4打造高效安全意识与合规培训体系
  • 面向2025:融合AI安全的网络安全学习路线与技能清单
  • 迎战2026:网络安全从业者必须掌握的核心技能与实战路线图
  • python-uniapp微信小程序的字典词韵查询系统的设计与实现_79zfkl8b
  • 7个免费网站帮你降低论文AI率,通过万方AIGC查重,亲测有效
  • 【Java毕设全套源码+文档】基于springboot的拍卖管理系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 基于开源AI智能名片链动2+1模式多商户商城小程序的销售工作性质与能力要求研究
  • 科研人都懂的绘图痛:你是否还在为这些问题熬夜?
  • 传统vs智能:编辑分配效率对比实验报告
  • Watt Toolkit实战:构建电商价格监控系统
  • 技术演进中的开发沉思-258 Ajax:自定义事件
  • 幽冥大陆(五十三)人工智能开发语言选型指南——东方仙盟筑基期
  • 小程序python-uniapp巴山大峡谷景区酒店预定系统的设计与实现_98434fj3
  • 【Java毕设源码分享】基于springboot+vue的易家宜超市云购物系统设计与实现(程序+文档+代码讲解+一条龙定制)
  • 用AI一键识别网站技术栈:Wappalyzer的智能分析
  • 【Java毕设源码分享】基于springboot+vue的苹果批发销售管理平台设计与实现(程序+文档+代码讲解+一条龙定制)
  • 【Java毕设源码分享】基于springboot+vue的街道办管理系统设计与实现(程序+文档+代码讲解+一条龙定制)
  • 代码随想录算法训练营第三十八天:最长公共子序列,不相交的线,最大子序和,判断子序列
  • 电脑与手机互传工具--强大的Coolmuster Android Assistant
  • Nacos注册/配置中心
  • Vue-cli如何集成WebUploader完成百万文件分块上传?
  • HTML如何设计JQuery支持大文件上传的暂停与继续功能?
  • 35岁程序员失业,只能开滴滴?这五个大模型高价值转型方向,让你身价翻倍!
  • CSS margin(外边距)