在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
使用tcp协议通信,标准tcp端口号是2404。服务端模拟软件可以使用gitbub上一个模拟器(IEC60870-5-104ServerSimulator.exe)。
2. 104公约数据结构
APCI------------------ Application Protocol Control Information 控制信息
I帧:编号的信息传输帧,包含APCI和ASDU。控制域1的 bit1=0 表示I帧 S帧:编号监视帧。 控制域1的 bit1=1 ,bit2=0表示S帧,只包含APCI U帧:未编号的控制帧。 控制域1的 bit1=1, bit2=1表示U帧,只包含APCI 3. U帧、控制功能帧U帧包括启动、停止、测试帧。控制域1的第一个bit=1,第二个bit=1定义了U帧。 启动帧:用于启动应用层传输 停止帧:用于停止应用层传输 测试帧:元数据传输时候,用于维持链路活动状态。 U帧只跟【控制域1】有关,不需要记表格,用的时候查就行了。
4. I帧、信息传输帧控制域1的比特1=0定义了I格式。I格式的APDU包含ASDU。
其中,高位有8bit,低位有7bit。比如发送序列号1000,转换成2进制是 0000 0011 1110 1000 ,因为序列号是由7+8bit组成的,所以高位就是0000 0011,低位就是110 1000 发送一个I帧报文,发送序列号+1, 接收一个I报文,接收序列号+1. TCP重连后,调度主站和子站的接收序号和发送序号都要清零。 5.S帧、确认帧控制域1的第一个bit1=1,第二个bit2=0定义了S帧。
6.ASDU类型标识
7.报文分析举例拿时钟同步报文举例:
8.发送接收的步骤
服务端,【收到的发送号】<【自己的接收号】------------报文重复 服务端,【收到的发送号】>【自己的接受号】----------------报文丢失 不管丢失还是重复,服务端需要断开连接重连。 k---默认值12,未被确认的I格式的最大数,适用于服务端,达到k指停止发文 w---默认值8,最迟收到w个I格式后必须确认。 t0 ----------默认30s--------建立连接超时---------客户端 t1-----------默认15秒-------发送或测试报文超时-----------服务端 t2-----------默认10秒------无报文时候,确认超时------客户端 t3--------默认20秒----------长期空闲,发测试帧超时----------双方 9.调试工具的使用第一步:打开程序
第二步、点击addServer:
第三步,加载配置:
第四步,启动服务:
这时候就可以通过客户端连接了。 10.c#代码下载此代码实现了,从104公约报文里获取时间的功能。其中有了【发送序列号、接收序列号的计数功能】、模拟了发送U帧、S帧、I帧的功能。模拟了解析数据并以友好中文显示功能。 效果如下:
源码地址: https://files.cnblogs.com/files/chlm/2020-4-26-104%E5%85%AC%E7%BA%A6%E8%A7%A3%E6%9E%90%E6%B5%8B%E8%AF%95.rar 调试工具可以从github上下载,也可以: https://files.cnblogs.com/files/chlm/IEC60870-5-104ServerSimulator.rar
|
请发表评论