Python实现PC与S7-1200的通信

Debian的环境搭建

安装Anaconda Python发行版,本人安装的是python3.6版本。西门子通信协议S7comm

S7Comm以太网协议基于OSI模型,这里对OSI七层网络模型做出介绍:

协议结构:

OSI模型 协议

应用层 S7 communication

表示层 S7 communication(COTP)

会话层 S7 communication(TPKT)

传输层 ISO-on-TCP (RFC 1006)

网络层 IP

数据链路层 Ethernet

物理层 Ethernet

第1~4层为底层驱动程序,由计算机本身完成;第5层TPKT,应用程数据传输协议,介于TCP和COTP协议之间,这是一个传输服务协议,主要用来在COTP和TCP之间建立桥梁;第6层COTP是 OSI 7层协议定义的位于TCP之上的协议,COTP 以“Packet”为基本单位来传输数据,这样接收方会得到与发送方具有相同边界的数据;第7层,S7 communication,这一层和用户数据相关,对PLC数据的读取报文在这里完成。

这里,TPKT的作用是包含用户协议(5~7层)的数据长度(字节数);COTP的作用是定义了数据传输的基本单位(在S7Comm中 PDU TYPE:DT data)。

顶层协议:

S7 communication包含三部分:1-Header;2-Parameter;3 – Data。

这里通过实验来对S7 communication做出介绍:

(1)Header

Protocol Id:S7 communication的协议ID号为0x32

ROSCTR: 这里为Job(1)--工作请求

Redundancy Identification:冗余识别

protocol data unit reference:协议数据涉及单元

Parameter length:这里为读取Q0.0单元,参数长度为14

Data length:因为不涉及写操作,所以为0

(2)Parameter

Parameter:这里为读取数据

Function:读取功能码为(0x04)

Item count:读取地址个数

(3)Data

在读操作时,Data报文未存在。S7Comm以太网通讯过程

计算机与1200PLC进行S7Comm以太网通讯,需经过三个过程:

(1)“握手”

当PC与PLC通过Socket建立链接时,会进行“三次握手”,这是标准的TCP连接方式;这个过程会有Socket自动完成;

(2)通讯请求

在“握手”之后,并不能马上进行数据交换,还需要"通讯请求"过程。这个过程包含两次报文交换:PC 发送COTP报文给PLC,PLC反馈COTP报文,包含“连接确认”;

PC 发送S7Comm报文给PLC,PLC反馈S7Comm报文。

交换数据

数据读写就在这个过程内完成。我们可以组织报文来实现我们需要的功能。这个过程内的报文是S7Comm格式。具体实现时,需要对S7Comm中的第5、6、7层进行编程。

python与西门子1200通讯_西门子S7-1200的以太网通信相关推荐

  1. python 西门子触摸屏通讯_西门子触摸屏以太网通讯设置

    西门子的触摸屏用MPI口进行OS更新或程序的上传下载,速度都太慢了,要两三个小时,是否以通过以太网进行更新?那通信电缆是怎么制作的呢? 答:首先,您用什么屏?是否带有以太网功能(是否有网线接口)? 有 ...

  2. python 西门子触摸屏通讯_详解博途编程实现S7300与西门子触摸屏通讯

    目前国内流行用昆仑通泰或者威纶通触摸屏做项目,一方面价格便宜,另一方面编程简单.但西门子屏也经常会被用到,所以不得不学.简单写一下会用博图建立西门子触摸屏和S7300PLC的通讯. 西门子触摸屏和PL ...

  3. python 西门子触摸屏通讯_实例讲解博途编程实现S7300与西门子触摸屏通讯

    原标题:实例讲解博途编程实现S7300与西门子触摸屏通讯 目前国内流行用昆仑通泰或者威纶通触摸屏做项目,一方面价格便宜,另一方面编程简单.但西门子屏也经常会被用到,所以不得不学.简单写一下会用博图建立 ...

  4. 西门子滚筒洗衣机教程_西门子洗衣机怎么样 西门子洗衣机哪款好

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注. 注:本文转载自网络,不代表 ...

  5. 西门子array数据类型_西门子S71200之间以太网通信(图文)

    西门子S7-1200之间以太网通信 一.通信前的准备 首先创建新项目,并命名为"s7-1200之间通信",如下图所示: 然后组态设备,选择s7-1200的CPU 1214C DC/ ...

  6. 查看PLC IP 端口_详解S7-1500的以太网通信数据类型:TCON_IP_v4

    西门子S7系列PLC的开放式以太网通信过程包括如下几个步骤:建立连接(Establish connection).发送/接收数据(Send/receive data).断开连接(Disconnect) ...

  7. python 西门子触摸屏通讯_触摸屏通讯

    wincc flexible是可以打开Protool 做的程序的,也可以向触摸屏下载画面. 下载线是RS232,但需要符合下面的接线规则,也可自己做: 2----3 3----2 4----6 5-- ...

  8. python 西门子触摸屏通讯_实例 | 博途V15 西门子S7-1200与触摸屏通信详解

    1. 创建项目 创建名称为PLC_HMI 2. 添加PLC添加一个PLC到项目中 3. 添加HMI,添加一个HMI到项目中,不根据HMI设备向导设置,点取消 ,然后确定 ,这样子就添加了一个触摸屏HM ...

  9. python 西门子触摸屏通讯_触摸屏与PC机通讯

    你触摸屏里的设置呢,IP设置是否一样啊. 回答者: aa13123 - 中级工程师&nbsp&nbsp第10级 2020-02-10 07:49:34 本回答有2位钻石用户推荐 回答者 ...

  10. 西门子1500通讯与西门子1200通讯(1)

    主站为西门子1500,两个从站为西门子1200! 任务要求:通过主站plc控制从站plc输出 1.第一步 主(192.168.0.20)从站一(192.168.0.21),从站二(192.168.0. ...

最新文章

  1. joomla3.6.5 nginx下 前台页面404错误
  2. python django部署docker_centos利用docker部署django项目
  3. python调试_Python 调试
  4. Oracle中的sequence对象
  5. selenium+python自动化82-只截某个元素的图
  6. Laravel使用腾讯云COS服务
  7. 继电保护原理6-发电机保护
  8. CentOS7将home目录下中文目录改为英文目录
  9. 笔记本什么都没开,风扇为什么一直转?——CDPUserSvc服务
  10. 鱼塘钓鱼 优先队列 多路归并排序 贪心
  11. 软件测试价值观-SMBT新理念
  12. 细数SuperComputer最新排名和常见Benchmark类型
  13. 阿里云域名使用cloudflare的DNS解析隐藏真实IP
  14. 阿里云学生成长计划续费资格考试
  15. css3探测光圈_CSS3光圈散开提示效果
  16. linux--Flex and Bison
  17. nginx的作用及原理(一)
  18. SpringMVC 的核心组件有哪些?
  19. 生产环境容器落地最佳实践 - JFrog 内部 K8s 落地旅程
  20. php 206实现微信浏览器,PHP实现限制页面只能在微信自带浏览器访问的代码

热门文章

  1. Java计算接口请求时间
  2. 力扣算法题—069x的平方根
  3. MySql字符集修改
  4. 《一胜九败》读书笔记
  5. js面向对象技术小结
  6. sphinx的使用1-创建索引
  7. 夜,思考——我想要的到底是什么?
  8. 配置CPE作为PPPoE或PPPoA的客户端
  9. hardlockup的原理说明
  10. [RK3399][Android7.1] HDMI Debug