西门子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

西门子s7-200smart PLC通讯协议(TCP)相关推荐

  1. 西门子s7 200smart与力士乐VFC3610变频器通讯

    西门子s7 200smart与力士乐VFC3610变频器通讯原创可直接用于生产的程序,程序带注释,并附送触摸屏程序,有接线方式和设置,通讯地址说明等. 程序采用轮询,可以后续根据要求适当修改后扩展. ...

  2. 西门子s7 200smart与3台英威腾GD变频器通讯实战程序

    西门子s7 200smart与3台英威腾GD变频器通讯实战程序 原创可直接用于生产的程序,程序带注释,并附送触摸屏程序,有接线方式和设置,通讯地址说明等. 程序采用轮询,可以后续根据要求适当修改后扩展 ...

  3. 西门子s7 200smart与英威腾GD系列变频器通讯程序 原创可直接用于生产的程序

    西门子s7 200smart与英威腾GD系列变频器通讯程序 原创可直接用于生产的程序,程序带注释,并附送触摸屏程序,有接线方式和设置,通讯地址说明等. 程序采用轮询,可以后续根据要求适当修改后扩展. ...

  4. 西门子s7 200smart与台达变频器485通讯 触摸屏与plc以太网通讯,PLC与变频器通讯485口相连

    西门子s7 200smart与台达变频器485通讯 目标:用触摸屏和西门子smart 控制变频器通讯 器件:西门子s7 200 smart PLC,台达VFD-M变频器,昆仑通态触摸屏(带以太网),中 ...

  5. 西门子s7 200smart与台达VFD M变频器通讯 触摸屏与plc以太网通讯,PLC与变频器通讯485口相连

    西门子s7 200smart与台达VFD M变频器通讯 目标:用触摸屏和西门子smart 控制变频器通讯 器件:西门子s7 200 smart PLC,台达VFD-M变频器,昆仑通态触摸屏(带以太网) ...

  6. 西门子S7系列PLC以太网通讯处理器MPI-131

    基本说明:MPI-131用于西门子 SIMATIC S7 系列 PLC(包括 S7-200. S7-300. S7-400).西门子数控机床(840D,840DSL等)的以太网通讯,支持以太网编程下载 ...

  7. 西门子s7 200smart与台达变频器通讯 目标:用触摸屏和西门子smart 控制变频器通讯

    西门子s7 200smart与台达变频器通讯 目标:用触摸屏和西门子smart 控制变频器通讯 器件:西门子s7 200 smart PLC,台达VFD-M变频器,昆仑通态触摸屏(带以太网),中途可以 ...

  8. 西门子s7 200smart与台达DTA温控modbus通讯

    西门子s7 200smart与台达DTA温控modbus通讯 功能:采用西门子s7 200smart ST20的PLC,对台达DTA系列温控器进行modbus通讯控制,通过昆仑通态触摸屏实现温度设定, ...

  9. 西门子S7 200smart与欧姆龙E5cc温控器通讯程序

    西门子S7 200smart与欧姆龙E5cc温控器通讯程序 功能:通过西门子s7 200smart与欧姆龙e5cc温控器modbus通讯,实现目标温度设定,实际温度读取,设定报警类型,报警值,报警值上 ...

最新文章

  1. 【 C 】翻译与执行
  2. 我为什么选择在北上广深打拼?
  3. mybatis plugins_[MyBatis] SpringBoot 整合Mybatis
  4. bash初识,shell的基础语法及基本特性
  5. 社交媒体广告看不出来?Instagram加标签让你一目了然
  6. 实例对象的索引的方法
  7. ML.NET 1.3.1 发布,.NET 跨平台机器学习框架
  8. Microsoft.System.Center.Operations.Manager.2007 中文版完整光盘下载地址
  9. HDOJ 1564 Play a game【博弈论】
  10. k8s实战之部署Prometheus+Grafana可视化监控告警平台
  11. 性能测试之工具对比-ngrinder jmeter loadunner及ngrinder安装使用方法
  12. 《世界是数字的 》的读后感
  13. 蕊动矿机linux cpu超频,蚂蚁l3矿机超频方法!最佳超频参数!  |  呆毛网
  14. MIUI11线刷包精简
  15. Android 中 RecyclerView 的基本使用
  16. .xib could't be opend. Cound not read archive
  17. 转:罗永浩写给俞敏洪的求职信
  18. java实现微信企业付款到银行卡_java实现微信企业付款到个人
  19. 大数据在高校的应用场景_大数据技术在高校教育中的应用
  20. 如何实现RTS游戏中鼠标在屏幕边缘时移动视角

热门文章

  1. opencv-python 学习前的准备——Numpy-python详细教程2
  2. 最高补贴3000万元!深圳市战略性新兴产业专项资金项目申报中!
  3. 做响应式布局中的一些收获
  4. 蓝牙arrayBuffer数据转10进制在转有符号数
  5. C语言 | n个人围成一圈,顺序排号
  6. 有没有人能用人类的语言告诉我,相似矩阵有什么用?
  7. 亲爱的,与宝宝争宠要趁早
  8. 75 基于单片机钢琴电子节拍器系统设计【毕设课设】
  9. 【转】win10 远程时快捷键失灵
  10. 中国移动即将开启IPv6现网试点