什么是S7通讯?
S7通信协议是西门子S7系列PLC内部集成的一种通信协议,其为西门子PLC所特有的一种通讯方式。是一种运行在传输层之上的(会话层/表示层/应用层)、经过特殊优化的通信协议,其信息传输可以基于MPI网络、PROFIBUS网络或者以太网。
如何实现通讯?
1、在西门子博图软件中分别修改以下两个设置。
1)PLC设置连接机制为允许来自远程对象的PUT/GET通讯访问。
2)取消交互数据块中的优化块选项。通常当PLC程序中创建数据块时,该选项默认为勾
选状态。
2、查看PLC数据块中的变量偏移量,该值即为S7通讯所需读取的基本单元
3、创建通讯实例
主要传递参数为以下几部分:
PLC型号:即下图中的CpuType
IP:PLC的IP地址
Rack:机架号(PLC组态中可以查看)
Slot:槽号(PLC组态中可以查看)
以下为通讯示例,建立通讯后开启了一个读取线程,用于实时读取PLC数据
4、建立通讯连接。s7.net库中提供两种方法,Open方法用于建立PLC连接,Close方法用于断开连接。
实现示例如下,其中IsConnected属性返回连接状态,返回True则说明连接成功,返回False则说明连接失败。
5、数据读取与写入
读取:通过Read方法实现PLC数据的读取,传入参数为DB块.偏移量
写入:通过Write方法实现PLC数据的写入,传入参数1为DB块.偏移量,传入参数2为待写入的数据