西门子s7-200smart PLC通讯协议(TCP)

2023-10-31

西门子s7-200smart PLC通讯协议(TCP)

由于网上找到的大部分指令解析资料都是以1200、300 等为主的指令,并未见到200smart系列,且恰巧项目需要与该plc通讯读写数据。虽然找到一些现有c#的工程代码不过对200smart系列通讯总有些问题,若用opc需要资金成本,故觉定自行开发通讯软件,找时间进行学习指令。

参考文档:
西门子PLC以太网 通讯协议 解析
常用PLC通讯协议
抓包工具 - Wireshark(详细介绍与TCP三次握手数据分析)

主要思路

使用kepwareOPC服务器以及Wireshark网络数据抓包工具实现对s7-200smart PLC通讯指令分析,最终通过软件组合对应指令实现数据读取。

具体实现

先配好OPC服务器,并通过quick client能正确读取到指定内存地址的数据。

根据网上资料显示西门子PLC通讯前需进行两次握手指令,而opc服务器仅在有客户端连接时才会发送指令。故:
1、先启动抓包软件监听与PLC连接的网卡,设置过滤规则只显示TCP协议;
2、启动quick client让opc服务器开始发送指令;
3、关闭quick client,观察抓取到的数据:

注:
本机IP:192.168.1.10 ;PLC:192.168.1.121
抓包软件中通过源IP及目标IP确定指令收发方向,在封包数据中只需观察以下几行数据即可:
数据包
Wireshark软件将数据包及协议进行明显的标识方便能查看到对应数据。

第一次握手数据

本机发送:(红框)
第一次握手
从数据包中可看到上位机发送的指令为

03 00 00 16 11 E0 00 00     00 01 00 C0 01 09 C1 02     02 00 C2 02 02 01   

其中每一位的意义说明如下:
握手一指令说明
s7-200smart只需注意倒数第四项Source TSAP和倒数第一项Destination TSAP,分别代表PLC参数中的localTASP和RemotTASP参数,默认为 0x02000x0201

PLC回复(上图黄框)
第一次握手 回复
从图中可看到回复的指令以及每一位对应意义

03 00 00 16 11 D0 00 01    00 08 00 C0 01 09 C1 02     02 00 C2 02 02 01

第二次握手数据

本机发送:
第二次握手发送
每一位对应如上图,对比资料发现第二次握手数据为固定格式。

03 00 00 19 02 F0 80 32     01 00 00 00 38 00 08 00     00 F0 00 00 01 00 01 00     F0

PLC回复:
第二次握手回复
自行对照

03 00 00 1B 02 F0 80 32     03 00 00 00 38 00 08 00     00 00 00 F0 00 00 01 00    01 00 F0

读取数据

本次测试读取PLC M20区一个字节、Q0区一个字、V0区双字;
注:OPC服务器会将多种读取目标组合成一个指令

本机发送:
读取多组数据
发送的指令为:
发送的指令

上图中从0030行中的“03 00 …”开始至结尾,每一位对应上上图。
此处读取的数据长度为十进制的十六进制显示,例如长度1,表示为0x01,长度4,表示为0x04.

该指令中包含三组读取指令,每组以
12 0A 10 02 ...
开头,后面紧跟两个字节为读取的长度,以字节为单位

PLC回复:

读取回复
依然从0030行的“03 00 …”开始至结尾
每一位对应意义如下图:
发送回复指令说明
由图中可知三组数据依次为:0x00,0x4000,0x00000000

软件介绍判断时可先判断指令中的成功读取标志:0xff然后截取对应长度的数据即可
此处长度表示为 ( 字节长度 x 8 ) 即位的数量,例如:1 指令中为0x08, 长度2在指令中为 0x10 长度4在指令中为0x20

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

西门子s7-200smart PLC通讯协议(TCP) 的相关文章

  • 软件物理架构与逻辑架构在软件架构中的应用

    在不同的架构设计方法中出现的软件架构视图种类很多 本文介绍最常用的两种架构视图 逻辑架构视图和物理架构视图 并通过具体案例的分析说明如何运用它们进行架构设计 当观察和描述事物大局的时候 逻辑架构和物理架构是最常用的角度 比如 以我们办公室里
  • 如何用VB实现Modbus串行通讯

    如何用 VB 实现 Modbus 串行通讯 在一些应用中可能需要使用诸如 VB 来进行上位机监控程序的开发 而 Modbus 协议是这类应用中首选的通讯协议 Modbus 协议以其简单易用 在工业领域里已广泛的为其他第三方设备所支持 这里对
  • Google 的开源技术protobuf 简介与例子

    今天来介绍一下 Protocol Buffers 以下简称protobuf 这个玩意儿 本来俺在构思 生产者 消费者模式 系列的下一个帖子 关于生产者和消费者之间的数据传输格式 由于里面扯到了protobuf 想想干脆单独开一个帖子算了 p
  • Android软件开发之获取通讯录联系人 联系人图像

    Android软件开发之获取通讯录联系人信息 十二 发布于2011 10 12 图中选中的数据库 contacts2 db就是系统储存联系人的数据库 我们将它打开看看里面储存了些什么东东 打开contacts db后 发面里面有一堆表 同学
  • 可连接点对象及示例(一)

    转载请标明是引用于 http blog csdn net chenyujing1234 参考书本 EVC高级编程及其应用开发 客户是主动的 而组件是被动的 组件通过自身暴露给客户的接口来监听客户请求 一旦接收到客户请求便宜做出反应 这样的接
  • USB的阻抗匹配问题

    USB的阻抗匹配问题 USB特征阻抗90 总结 低速和全速时最好进行阻抗匹配 源端串联或终端并联90ohm 高速时不需要 USB 可以自动选择HS High Speed 高速 480 Mbps FS Full Speed 全速 12Mbps
  • 西门子s7-200smart PLC通讯协议(TCP)

    西门子s7 200smart PLC通讯协议 TCP 由于网上找到的大部分指令解析资料都是以1200 300 等为主的指令 并未见到200smart系列 且恰巧项目需要与该plc通讯读写数据 虽然找到一些现有c 的工程代码不过对200sma
  • Ubuntu9.04双网卡配置

    新手没怎么用过Ubuntu 所以走了不少弯路 网上找了很多方法 大都没对我起到帮助作用 所以把自己的配置方法写一写 环境 VPC2007SP1 Ubuntu9 04 Ubuntu上连了两块网卡 eth0为外网的eth1为内网的 VPC的特点
  • linux下搭建RabbitMQ操作

    引言 你是否遇到过两个 多个 系统间需要通过定时任务来同步某些数据 你是否在为异构系统的不同进程间相互调用 通讯的问题而苦恼 挣扎 如果是 那么恭喜你 消息服务让你可以很轻松地解决这些问题 消息服务擅长于解决多系统 异构系统间的数据交换 消
  • ESP32-C3 学习测试 蓝牙 篇(七、GATT 数据通信 — 发送自定义数据)

    前面我们已经入门了 GATT 的开发 更进一步 进行想要的数据通信 目录 前言 1 通信问题思考 2 如何才能每次传输不同的数据 3 对 handle 的认识 4 继续尝试 5 测试成功 结语 前言 本来计划直接做一个蓝牙的小应用 首先得实
  • 文献标志码

    发表日期 2005年1月29日 编辑录入 webmaster 1 中图分类号 这是在投向中国国内杂志时经常要用到的一个号码 编辑一般要你自己提供 目前国内大部分图书馆均采用 中国图书馆分类法 第四版 作为馆藏分类体系 因此上你所在的图书馆问
  • 测试及时通讯工具

    来自 51Testing软件测试论坛 测试像QQ那样的及时通讯工具 应该如何测试 参考答案 1 首先以核心功能为中心进行测试工作的部署 比如 关键功能或核心功能 收发等等 因为有可能联动一些其他辅助功能 事先进行规划部署 2 综合利用场景分
  • GRAPH --- 图的相关概念整理

    Graph 更多Graph 的观念与术语 被vertex v指到的vertex vertices 称为v的 successor s 指向v的vertex vertices 称为v的 predecessor s 以 通讯录 为例 v的通讯录内
  • 西门子PLC的常见的通讯方式

    1 PPI通信 T PPI协议是S7 200cpu最基本的通信方式 S7 200cpu的默认通信方式可通过原端口通信 西门子PLC是一种专为工业环境应用而设计的数字操作电子系统 可编程存储器 存储逻辑操作 顺序控制 定时 计数 算术操作等指
  • 短信猫(GSM MODEM)安装指南

    短信猫 GSM MODEM 安装指南 短信猫 又名GSM MODEM 专门针对短信应用设计 内含工业级短信发送模块 简化了通信接口 性能稳定可靠 符合各种商业和工业级短信应用要求 支持向移动 联通以及小灵通用户收发短信 适用于各行各业各个领
  • 嵌入式系统的通讯协议:I2C通讯、SPI通讯、USB通讯、SDIO 通讯、I2S通讯、PCI通讯简介

    本文简单的描述了在实际应用中会碰到的一些总线协议 让各位读者对实际系统中的总线有个概念上的理解 一 I2C I2C Inter Integrated Circuit 总线是一种由PHILIPS公司开发的两线式串行总线 用于连接微控制器及其外
  • 突破人生的瓶颈(心灵之灯)

    人生 四度 平时除了看新闻外我很少看电视 但是那天除外 那天晚上写完稿子 随意打开了一个频道 是央视三套的艺术人生 为何庆魁加油 我不喜欢主持人以煽情的方式 不停发掘主人公内心伤痛泪水的惯用风格 本想换台 考虑到剧作家何庆魁今年来家庭遇到的
  • 西门子PPI通讯协议

    过硬件和软件侦听的方法 分析PLC内部固有的PPI通讯协议 然后上位机采用VB编程 遵循PPI通讯协议 读写PLC数据 实现人机操作任务 这种通讯方法 与一般的自由通讯协议相比 省略了PLC的通讯程序编写 只需编写上位机的通讯程序资源S7
  • PPI协议详解 ppi通讯协议 ppi通信协议 vb与ppi协议通讯

    PPI协议详解 ppi通讯协议 ppi通信协议 vb与ppi协议通讯 PPI协议详解 ppi通讯协议 ppi通信协议 vb与ppi协议通讯 我们提供 PPI协议的官方文档 协议更新时间为2005年 下面是我们根据文档解析的PPI读取变量返回
  • 电脑设备中PCI简易通讯控制器驱动显示黄色感叹号图标怎么办【申明:来源于网络】

    电脑设备中PCI简易通讯控制器驱动显示黄色感叹号图标怎么办 申明 来源于网络 电脑设备中PCI简易通讯控制器驱动显示黄色感叹号图标 http wenda so com q 1467255688725898

随机推荐

  • 【Java】抽象类和接口

    并没有那么多天赋异禀 优秀的人总是努力翻山越岭 目录 1 抽象类 1 1 抽象类的概念 1 2 抽象类的语法 1 3 抽象类的特性 1 4 抽象类的作用 2 接口 2 1 接口的概念 2 2 接口的语法规则 2 3 接口的使用 2 4 接口
  • windbg调试驱动不用替换调试机器驱动的方法

    开发windows驱动 通常调试驱动的方法是在主机上编写代码编译通过 将sys和inf拿到被调试机台上安装测试 主机通过windbg连上调试机台 当代码有改动时 将编译好的驱动再拿到被调试机台上安装测试 每次都拷贝到调试机台上安装驱动这个动
  • 报错jinja2.exceptions.UndefinedError: ‘form‘ is undefined

    这是我在写flask项目时报的错误 报错原因 是因为两个视图函数引用了同一个模板 模板中使用了jinja2 其中一个视图函数没有使用其语法 所以报了以上错误 解决方法 只需要把两个视图所引用的模板分开写就可以了
  • 工具:valgrind学习

    Valgrind手册 Quick start 文章目录 概述 体系结构 Valgrind 原理 安装 编译时需要注意 快速入门 LEAK SUMMARY 内存泄漏总结 分类 实践 第一个例子 没有内存泄漏 第二个例子 只申请内存而不释放 编
  • 个人理解Vue和React区别

    监听数据变化的实现原理不同 Vue 通过 getter setter 以及一些函数的劫持 能精确知道数据变化 不需要特别的优化就能达到很好的性能 React 默认是通过比较引用的方式进行的 如果不优化 PureComponent shoul
  • 睿智的目标检测29——Keras搭建YoloV4目标检测平台

    睿智的目标检测29 Keras搭建YoloV4目标检测平台 学习前言 什么是YOLOV4 代码下载 YOLOV4改进的部分 不完全 YOLOV4结构解析 1 主干特征提取网络Backbone 2 特征金字塔 3 YoloHead利用获得到的
  • Latex-数学公式-网站

    mohu org info symbols symbols htm 常见问题 Xmind思维导图 中文官方网站 一些使用 normalsize textcircled scriptsize 2 n n 1 2n 2 1
  • 西门子模块选择pdf_「西门子1200PLC教程」17.硬件的组态

    头条号私信回复1 可免费获取海量资源下载链接 目录 1 添加新设备 2 添加模块 3 编辑属性和参数 4 组态设备网络 在S7 1200中 当用户新建一个项目时 应先进行硬件组态 硬件组态是编写项目程序的基础 在STEP7 Basic中 组
  • sql 判断两个字段是否相同_判断两个工作表中相同记录的SQL语句写法

    大家好 今日继续VBA数据库解决方案的讲解 今日讲解的是第47讲 内容是 在两个工作表提取数据记录 并显示相同记录的报告 我们在工作中经常会遇到这样的情况 要分析两个工作表 知道哪些记录是重复的 如果不用ADO解决 只用EXCEL来解决 该
  • signature=632120ed2e762a810e77edecc3de4568,zguide2/.signatures at master · imatix/zguide2 · GitHub

    9ac433a6bf5e85fc6c684ec22d64141aae1b79e0 examples Scala rrworker scala c9bcc4aabb7a713ad989d43af1eb6293b77da4e4 examples
  • 浏览器怎么扫描二维码_二维码的用法

    二维码是什么 说起来并不复杂 任何信息都可以通过特定的编码算法转化为二维码 我们常见的一段复杂信息 比如一个很长的URL 一些加密后的字符串 或者一个复杂的快递编号 如果人工输入是非常繁琐并且误差很大的 但如果把文本转化为二维码 通过扫描枪
  • 【分类器】感知机+线性回归+逻辑斯蒂回归+softmax回归

    一 感知机 详细参考 https blog csdn net wodeai1235 article details 54755735 1 模型和图像 2 数学定义推导和优化 3 流程 二 线性回归 1 定义及解析解 a XTX 1 XTy
  • 【Android Studio】AndroidManifest

    Android Studio AndroidManifest 去除标题栏 android theme style Theme AppCompat DayNight NoActionBar gt 更改图标 android icon mipma
  • python中的*,**与*args,**kwargs

    python中的 与 args kwargs 0 前言 1 用作算符运算符 2 用作打包运算符 2 1 用作函数形参 2 2 用作序列打包 3 用作解包运算法 3 1 用作函数实参 3 2 用作序列解包 4 打包和解包的混合使用 0 前言
  • 硅谷黑客增长

    1 增长黑客的90天计划 第一周 了解增长的工具箱 渠道管理系统 分析工具等 深入研究历史数据 发现问题 和领导 团队沟通 了解如何开展工作 合作 倾听用户的声音 看看评论 社交媒体留言 第一个月 确定增长指标 找到一个聚焦领域 摘取低垂的
  • react-router详解

    react router详解 react router详解 路由的基本使用 安装react router 使用react router 需求 导航区 头部一般组件 组件的使用 展示区 主体内容路由组件 路由组件与一般组件 NavLink与封
  • citespace快速上手教程(包括相关报错)

    文章目录 相关参考内容 一 启动citespace 注意 1 1点击startCitespace Windows bat 1 2弹出如下界面 输入数字2 1 3进行 操作后弹出如下界面 1 4citespace操作界面如下 二 citesp
  • Faster-RCNN

    每看一次都有新感觉 好文链接 https zhuanlan zhihu com p 32404424
  • VC调用matlab中定义的.m文件中的函数的实例

    matlab是一个强大的数学计算 仿真工具 其内置了很多实用的现成的函数
  • 西门子s7-200smart PLC通讯协议(TCP)

    西门子s7 200smart PLC通讯协议 TCP 由于网上找到的大部分指令解析资料都是以1200 300 等为主的指令 并未见到200smart系列 且恰巧项目需要与该plc通讯读写数据 虽然找到一些现有c 的工程代码不过对200sma