首页 / 资讯中心 / 文章详情

IEC104模拟器安装配置全攻略:从主从角色到点表联调避坑指南

IEC104模拟器安装配置全攻略:从主从角色到点表联调避坑指南 ★ FEATURED ARTICLE
简介面向电力自动化通信开发者的IEC 60870-5-104协议仿真工具提供Master主站与Slave从站两种角色可在VS2015环境下模拟真实远动通信过程用于验证SCADA系统报文解析、连接建立与命令交互是否正确。资源包共104个文件、约14.18MB以h头文件与cpp源文件为核心配合sbr、obj、dll等编译中间与动态库文件另有dsp、vcproj、sln等VS工程配置及exe可执行程序构成可直接编译调试的完整工程。已有1510人学习下载。借助主从双端模拟读者可测试I帧、S帧、U帧收发检查ASDU与APDU结构、信息对象地址及校验机制评估通信延迟与丢包表现并开展多厂商设备兼容性验证从而缩短协议对接与问题定位周期。1. 从一次“连不上”的调试说起IEC104 模拟器到底装的是什么第一次接触 IEC104 模拟器是在一个变电站自动化联调的项目里。现场设备还没到位主站侧却要先验证点表解析和遥测遥信刷新逻辑手头只有一台笔记本。当时想当然地以为随便找个 104 工具装上就能用结果主站连从站报文发出去石沉大海抓包一看启动字符对不上端口也没监听。折腾了大半天才明白IEC104 模拟器不是“装个软件”那么简单它分 master主站/客户端和 slave从站/服务端两个角色端口、公共地址、点表类型必须成对配置任何一边错一个字节链路就起不来。这套环境在电力自动化、工业监控、协议对接的圈子里极其常见做 104 规约调试、点表验证、主从联调的人几乎绕不开。装不好会怎样轻则连不上、报文超时重则误判现场设备故障把排查方向带偏。这篇笔记面向的是正卡在装工具、配环境上的开发者从版本选择、下载安装、主从配置到验证排错一步步走完新手能照着跑通熟手能看到参数取舍和常见坑。2. 装前准备IEC104 模拟器的版本选择与运行环境2.1 先分清 master 和 slave 两个角色IEC104 模拟器通常以两种形态出现一种是主站模拟器master主动发起连接、下发总召唤和遥控命令另一种是从站模拟器slave监听端口、响应主站请求、按点表返回数据。有些工具把两者集成在一个界面里通过模式切换有些则是两个独立程序。装之前必须先确认你手上这份是哪种形态或者是否同时包含 master 和 slave。我一般会先看目录结构如果只有一个可执行文件多半是集成式启动后选模式如果有两个入口或两个配置目录那就是分离式master 和 slave 各装各的。分离式的好处是可以在同一台机器上同时起主从做回环测试集成式则更适合单机快速验证。这一步搞错后面配置会全乱。2.2 运行环境与依赖清单IEC104 模拟器大多是桌面程序常见运行环境是 Windows 7/10/11部分工控场景会跑在 Windows Server 上。也有基于 Java 或 Python 的实现需要对应运行时。装之前把下面这张表对一遍能省掉一半“双击没反应”的问题。项目常见要求说明操作系统Windows 7 SP1 及以上 / Windows 10/11工控现场仍有 Win7注意 .NET 版本运行时.NET Framework 4.5 或 .NET 6视工具实现而定缺运行时会报初始化失败网络本地回环或独立网卡主从同机测试用 127.0.0.1跨机用实际 IP端口默认 2404IEC104 标准端口可改但主从必须一致权限普通用户即可监听 2404 一般不需要管理员除非端口被占用常见做法是先在目标机器上确认 .NET 版本命令行执行dotnet --list-runtimes或查看注册表。如果是老工具依赖 .NET FrameworkWin10 自带 4.8 基本够用Win7 则可能要手动补 4.5 以上。缺运行时的典型现象是双击后闪退或弹“无法加载文件或程序集”这时候别急着重装工具先把运行时补齐。2.3 下载与解压的注意点这类模拟器多为绿色版或压缩包分发下载后解压到不含中文和空格的路径比如D:\tools\iec104。路径带中文或空格某些老程序读配置文件会出玄学问题血泪经验是能避就避。解压后先别急着双击看一眼目录里有没有config、ini、xml之类的配置文件以及readme。很多参数默认值就写在这些文件里提前看一眼能少走弯路。提示解压前确认压缩包完整部分工具带多个分卷缺一个分卷会导致程序缺 DLL表现为启动报错但看不出原因。3. 安装与主从配置端口、公共地址和点表怎么填3.1 安装与首次启动绿色版工具通常不需要安装解压即用如果是带安装程序的按向导下一步即可安装路径同样避开中文和空格。首次启动时程序一般会加载默认配置或提示新建工程。我习惯先不急着连设备而是新建一个空白工程把主从模式、端口、公共地址这些基础项先配好再谈点表。以常见的集成式模拟器为例启动后界面会分主站模式和从站模式两个页签。先确认当前处于哪个模式再填参数。下面是一段典型的从站侧配置示意不同工具字段名略有差异逻辑一致[slave] listen_ip 0.0.0.0 listen_port 2404 common_address 1 max_apdu 249 k 12 w 8 t0 30 t1 15 t2 10 t3 20这段配置的含义需要逐项说清listen_ip填0.0.0.0表示监听本机所有网卡跨机联调时主站才能连进来listen_port是 104 标准端口 2404主从必须一致common_address是公共地址ASDU 地址主站下发的报文里带这个地址从站只响应匹配的max_apdu是最大应用层数据单元长度常见 249太大太小都可能被对端拒绝k和w是发送/接收窗口t0到t3是各类超时这些在联调不稳定时可以适当放宽但不要随意改到离谱。主站侧对应配置则是目标 IP 和端口[master] target_ip 127.0.0.1 target_port 2404 common_address 1 connect_timeout 30target_ip同机测试填127.0.0.1跨机填从站实际 IPcommon_address必须和从站一致这是最常见的“连上了但没数据”的原因之一。connect_timeout是连接超时网络慢的环境可以调大。3.2 点表配置遥测、遥信、遥控怎么对应IEC104 的数据以点表为核心常见类型包括遥信单点/双点类型标识 1/3、遥测归一化/标度化/短浮点类型标识 9/11/13、遥控类型标识 45/46等。从站模拟器需要按点表配置每个点的类型、地址和初始值主站侧则按同样的地址去解析。我一般先在从站侧建点表再让主站按相同地址读。点表配置常见有两种方式界面表格逐行填或导入 CSV/Excel。批量点建议用导入手工填几十上百个点容易错位。下面是一个 CSV 点表示意type,address,value,quality single_point,1,1,good single_point,2,0,good measured_float,16385,220.5,good measured_float,16386,50.1,goodtype对应点类型address是信息对象地址value是初始值quality是品质位。注意遥测的地址段和遥信通常分开规划别混用地址超出范围或类型不匹配主站解析出来就是乱码或无效值。配置完保存从站启动监听主站发起连接和总召唤正常情况下就能看到数据刷新。3.3 启动顺序与连接验证配置完成后启动顺序有讲究先起从站监听再起主站连接。反过来主站会先报连接失败虽然重连能恢复但容易误判。启动后看从站日志有没有“连接建立”主站日志有没有“总召唤完成”。如果主站显示已连接但数据不刷新先查公共地址是否一致再查点表地址是否对得上。同机测试时防火墙一般不影响回环跨机测试要确认从站机器防火墙放行 2404 端口。命令行可以用netstat -ano | findstr 2404确认端口处于监听状态这是排查“连不上”最快的一步。4. 避坑与排查IEC104 模拟器装完连不上的五类问题4.1 端口没监听或监听在错误网卡现象主站连接超时从站界面显示已启动但抓包看不到 SYN 回应。原因多是从站listen_ip填了127.0.0.1只监听回环跨机主站连不进来或者端口被其他程序占用从站实际没绑上。解决把listen_ip改为0.0.0.0或实际网卡 IP用netstat -ano | findstr 2404确认监听地址和进程端口冲突就换端口并同步改主站。4.2 公共地址不一致导致“连上无数据”现象TCP 连接建立成功主站日志显示已连接但总召唤无响应或数据全为无效。原因主从common_address不一致从站收到报文后因地址不匹配直接丢弃。解决核对两侧公共地址改成一致有些工具公共地址在多个地方出现全局配置和点表配置要都改到。4.3 点表类型或地址错位现象数据能上来但数值明显不对遥信全是 0 或遥测是天文数字。原因主站点表类型和从站不一致比如从站配的是短浮点13主站按归一化9解析或信息对象地址错位。解决对照两侧点表逐项核对类型和地址批量点用导出对比别靠肉眼扫。4.4 防火墙或安全软件拦截现象同机正常跨机连不上从站日志无任何连接记录。原因从站机器防火墙未放行 2404或安全软件拦截了监听。解决临时关闭防火墙验证确认后添加入站规则放行对应端口不要长期关防火墙。4.5 运行时缺失导致启动闪退现象双击无反应或弹“无法加载文件或程序集”。原因缺少对应 .NET 运行时或 VC 运行库。解决按报错提示补装运行时Win7 环境尤其注意 .NET 版本补装后仍闪退换解压路径到纯英文目录再试。5. 装完怎么验证跑通一套可复现的自检流程装完不等于跑通我一般会走一遍固定自检确认主从链路、点表、报文都正常。第一步同机起从站netstat确认 2404 监听在0.0.0.0第二步起主站连127.0.0.1:2404看连接日志第三步主站发总召唤从站日志应出现总召唤响应主站数据区刷新出点表值第四步改一个遥测初始值重新总召唤确认主站数值跟着变第五步跨机再测一遍验证防火墙和网卡配置。下面这段命令用于快速确认监听和连接状态放在自检流程里很顺手# 确认 2404 端口监听地址和进程 netstat -ano | findstr 2404 # 跨机测试时从主站机器确认到从站的连通性 ping slave_ip telnet slave_ip 2404netstat看的是监听地址0.0.0.0:2404才是跨机可连telnet能通说明 TCP 层没问题剩下就是 104 应用层配置。如果telnet不通先解决网络和防火墙别在点表上浪费时间。再补一个报文层面的验证习惯主站抓包看启动字符是不是0x68长度字段和 ASDU 是否合理从站侧看是否回了对应的确认帧。这一步能区分“TCP 通了但 104 没通”和“104 通了但点表不对”。我踩过最冤的一次坑是主从都显示已连接结果抓包发现主站发的公共地址是 0从站配的是 1报文全被静默丢弃界面没有任何报错。从那以后我每次装完 104 模拟器都强制先走一遍“监听地址—公共地址—点表地址”三对照再谈联调。希望这套流程能帮到你少在连不上的夜里多熬几个小时。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站