IEC104 工具和代码库
1. IEC104协议概述
电力系统IEC104规约是国家电网公司制定的调度接入网络通信规约,目前在电力系统中应用广泛。
IEC104 一般用于调度主站与变电站之间或者不同系统之间的网络数据通信。
通过将电力行业常用的IEC101、103、104等协议转换为ModbusTCP和MQTT协议,
将采集的数据同时上传到本地监控系统和云平台,实现本地和云端同时对新能源发电站的远程监控和控制
104规约测试软件主要是链接底层的设備,电闸之类的底层设备信号被接入继电保护装置,
然后装置转换成信号,显示在继电保护装置中,并通过104规约测试软件传输到后台,
把底层装置的数据读到软件里面,软件可以读取报文并且解析出来,而且还能通过软件去对底层装置进行遥控。
有专业做网管设备的机构和设备
https://blog.csdn.net/qq_42911733/article/details/128005773
https://blog.csdn.net/wtbl007/article/details/129246491
2. 关于源码
iec-60870-5-101-104源码工程需要自己编译
下载路径
https://libiec61850.com/iec-60870-5-101-104-test-client/
有一些客户端和服务端的example可以使用
编译过程:需要下载cmake https://cmake.org/download/
启动cmke-gui编译源码 生成可运行的客户端和服务端exe
cmake编译
源代码路径 E:/lib60870-2.3.2/lib60870-C
生成路径 E:/lib60870-2.3.2/lib60870-C/build_vc //新建build_vc路径,用于生成件
在build_vc目录下找到example中的各个exe 需要把生成的动态链接库 dll拷贝到exe同目录下,例如
E:\lib60870-2.3.2\lib60870-C\build_vc\src\Debug lib60870.dll 拷贝到需要运行的exe目录下,
E:\lib60870-2.3.2\lib60870-C\build_vc\examples\cs104_client\Debug 就可运行simple_client.exe成功
3. 想要快速了解协议内容和测试方法
https://blog.csdn.net/wgd0707/article/details/122344581
https://blog.csdn.net/geshemaster/article/details/119132250
4.找到一套客服端和服务端可运行的exe用来分析协议和通信过程
https://www.zhanghuanglong.com/dl/detail/cetcht8888/1017451 IEC60870-5-104客户端 可运行
https://download.csdn.net/download/dujie1219/13778149 S104TEST和M104TEST 客户端和服务端可配合运行
5. 启动源码生成的exe和测试工具S104TEST和M104TEST配合, IEC60870-5-104客户端仿真软件的解析报文功能还挺好用的
即可看到IEC104connect过程,
过程中也可用cmd netstat -an | findstr xxxport 查看端口状态 可以看到端口变化过程
C:\Users\xxx>netstat -an | findstr 2404
C:\Users\xxx>netstat -an | findstr 2404
C:\Users\xxxx>netstat -an | findstr 2404
TCP 0.0.0.0:2404 0.0.0.0:0 LISTENING
C:\Users\Nova006514>netstat -an | findstr 2404
TCP 0.0.0.0:2404 0.0.0.0:0 LISTENING
TCP 127.0.0.1:2404 127.0.0.1:51651 ESTABLISHED
TCP 127.0.0.1:51651 127.0.0.1:2404 ESTABLISHED
6. 具体过程报文分析
https://blog.csdn.net/weixin_44623055/article/details/124386518
https://blog.csdn.net/nsx_truth/article/details/131492211
https://blog.csdn.net/lin819747263/article/details/112602951
7.1 第一步:首次握手(U帧)
发送―>激活传输启动 :
接收―>确认激活传输启动:
第二步:总召唤,召唤YC,YX(可变长I帧)初始化后定时发送总召唤
发送―>总召唤 :
接收―>S帧:
7. 其他 lib61850
结合这两个博客 在本地运行了IEC104通信的客户端和服务端源码
https://pyfree.blog.csdn.net/article/details/130910242
https://blog.csdn.net/vipdafei/article/details/129129778