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 co