网站首页 > 博客文章 正文
上一讲我们讲了如何连接S71200PLC,这讲我们分析下如何读取DB。
由于我今天手里没有1200,我安装了Advanced用1500来模拟,大家都知道Advanced可以仿真通讯,关于如何使用Advanced,请查看我发表的上一篇文章《西门子TIAV16仿真器Advanced安装使用避坑》,刚好顺便讲讲1500的连接握手协议。
言归正传,我们首先准备环境,工欲善其事必先利其器嘛。
硬件环境:不好意思,没有啊。
软件环境:Kepserver(或者其他支持S7协议的上位机)、Advanced V3.0、TIAV16、Wireshark抓包工具、VS2019
二、我们开始抓包分析:
电脑IP:192.168.0.241
S7-1500PLCIP:192.168.0.1
1.运行KepServer,我们发现还是三次TCP握手
2.我们主要关注下,COTP,S7COMM报文连接是否一致
3.我们发现COTP报文一致,那说明昨天1200连接的这部分报文是可以公用的。
4.我们发现S7COMM报文一致,那说明昨天的1200连接报文是一致的,全部可以共用
5.我们分析下读DB报文是怎么样的?我们可以发现当读DB2.db0时报文如下
6.多次分析报文看到规律第23(高8位)24(低8位)控制读取长度
7.返回报文为数据01是我们需要的数据,从索引25开始。
8.我们尝试改变这几个字节是否能达到我们的需求,创建读代码
public byte[] ReadDB(int DB, int startByte, int count)
{
//通过查看报文获得读取db2.dbx0.0读取1个字节的报文
byte[] s7Comm = new byte[31]
{
0x03,0x00,0x00,0x1f,0x02,0xf0,0x80,0x32,0x01,0x00,0x00,0x00,
0x00,0x00,0x0e,0x00,0x00,0x04,0x01,0x12,0x0a,0x10,0x02,0x00,
0x01,0x00,0x02,0x84,0x00,0x00,0x00
};
//获得字节数组 先转为ushort类型是为了确定输出字节为2个
byte[] conutArry = BitConverter.GetBytes((ushort)count);
//分析报文看到规律第23(高8位)24(低8位)控制读取长度
s7Comm[23] = conutArry[1];
s7Comm[24] = conutArry[0];
//获得字节数组 先转为ushort类型是为了确定输出字节为2个
byte[] dbArry = BitConverter.GetBytes((ushort)DB);
//分析报文看到规律第25(高8位)26(低8位)控制要读取的DB号
s7Comm[25] = dbArry[1];
s7Comm[26] = dbArry[0];
byte[] result = new byte[count];
S7TcpClient.Send(s7Comm);//发送s7报文
Thread.Sleep(10);//等待10ms给1500CPU反应时间
byte[] s7Result =new byte[S7TcpClient.Available];
S7TcpClient.Receive(s7Result);
for (int i = 0; i < count; i++)
{
result[i] = s7Result[25 + i];//从第25字节后是我们需要的报文
}
return result;
}
9.我们尝试一次读240个字节
10.如上图我们已经读成功
下期我们讲如何写DB区,如果对您有帮助,帮忙点个关注感谢
猜你喜欢
- 2024-10-19 IP和TCP抓包分析实验(ipv4抓包实验)
- 2024-10-19 抓包分析之蠕虫网络行为特征(蠕虫抓取软件)
- 2024-10-19 wireshark抓包工具的使用详解(wireshark抓包工具的工作原理)
- 2024-10-19 玩玩抓包(七)巧用“科来”,让分析更轻松
- 2024-10-19 WireShark抓包报文结构分析(wiresharkicmp抓包分析)
- 2024-10-19 wireshark及抓包分析助力网络工程师甩锅、TCP滑动窗口机制
- 2024-10-19 SSL/TLS握手详解抓包分析(ssl握手失败是什么意思)
- 2024-10-19 记一次抓包的最基本原理(抓包程序原理)
- 2024-10-19 如何使用Wireshark捕获和分析网络数据包?
- 2024-10-19 Redis的RESP协议:抓包分析与深度揭秘
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)