关于OPC的相关内容以后再说,我又给自己挖了个坑,,,,,
关于S7和Simulink的连接可以看我CSDN的Matlab的更新,,,,过几天就写,,,
想学C#的可以百度个教程,当然这个篇教程只是配置与介绍,,具体应用后面慢慢更。
一、S7以太网协议
具体介绍内容看以下这篇博客:
http://gmiru.com/article/s7comm/
(1) 西门子通信场景
西门子设备使用多种不同现场总线协议,例如:MPI、Profibus、IE 、Profinet 等。Profinet用于将PLC连接到IO模块,而不是设备的管理协议。S7以太网通信协议,主要用于将PLC连接到(i)pc站(PG/PC - PLC 通信)。大多数情况下,西门子通信遵循传统的主从模式(master-slave)或者CS模式(client-server )。其中PC(master/client)将S7请求发送到现场设备(slave/server)。这些请求用于从设备查询或向设备发送数据或发出某些命令。当PCL作为通信主站时(master)有一些例外,通过FB14/FB15设备可以向其他设备发起GET和PUT请求。在S400系列中,实现了所谓的循环数据I/O功能,这类似于传统的发布者 - 订阅模型。PC可以订阅某些事件,而不是PLC 定期推送所请求的数据送到网络。还有一个合作伙伴(Partner )或点对点模型,当一个活动的合作伙伴请求连接并调用阻止发送(Block Send),与此同时被动合作伙伴调用阻止接收(Block Receive)方法。
简言之,西门子的S7的PLC基本通讯方式有两种第一种是:开放式的TCP\IP,可以用于连接PLC与其他非西门子硬件,第二种是西门子自己开发的S7 Protocol以太网通讯协议,用于西门子内部硬件通讯,这两者的传输报文是不一样的,如下图(引子官方):
PLC数存储到二进制时方式是大端模式(BIG-Endian),而我们的普通电脑常常为小端模式(Liitle-Endian)。大端模式是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中, 小端模式是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。
几个通信库的介绍:
(1) Snap7(Snap7 官方网站:http://snap7.sourceforge.net/)是一个基于S7以太网协议的西门子PLC通讯开源库。几乎支持所有的S7系列的PLC(括S7系列的S7-200、S7-200 Smart、S7-300、S7-400、S7-1200以及S7-1500)。几乎适用于所有常见系统和硬件,包括树莓派,Jetson,甚至可以在F767上进行搭载。
(2)