关于OPC的相关内容以后再说,我又给自己挖了个坑,,,,,

关于S7和Simulink的连接可以看我CSDN的Matlab的更新,,,,过几天就写,,,

想学C#的可以百度个教程,当然这个篇教程只是配置与介绍,,具体应用后面慢慢更。

具体介绍内容看以下这篇博客:

http://gmiru.com/article/s7comm/

西门子通信场景

西门子设备使用多种不同现场总线协议,例如: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设备可以向其他设备发起GETPUT请求。在S400系列中,实现了所谓的循环数据I/O功能,这类似于传统的发布者 - 订阅模型。PC可以订阅某些事件,而不是PLC 定期推送所请求的数据送到网络。还有一个合作伙伴(Partner )点对点模型,当一个活动的合作伙伴请求连接并调用阻止发送(Block Send),与此同时被动合作伙伴调用阻止接收(Block Receive)方法。

简言之,西门子的S7的PLC基本通讯方式有两种第一种是:开放式的TCP\IP,可以用于连接PLC与其他非西门子硬件,第二种是西门子自己开发的S7 Protocol以太网通讯协议,用于西门子内部硬件通讯,这两者的传输报文是不一样的,如下图(引子官方):

s7协议python s7协议与profinet有什么区别_大端模式

PLC数存储到二进制时方式是大端模式(BIG-Endian),而普通电脑端常常为小端模式(Liitle-Endian)。大端模式是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中, 小端模式是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。

几种常用通信库的对比介绍:

                                

 

通信库

是否收费

拓展性

备注

1

Prodave

加密性高但是应用性并不高,

对S7系列的PLC兼容性极高,

对其他PLC的兼容性不好

西门子的版权方,目前依旧应用

2

S7.Net

可以个人开发使用,兼容性好,

支持性高

目前停止更新,在GIT上有相关源码

3

S7.NetPlus

应用性极高,支持多种语言,对C#支持良好

S7.Net的升级版本

4

Sharp7

Snap7的C#实现,调用简单

在GIT上有相关源码

5

Snap7

应用性极高,支持多种语言,兼容多系统,几乎适用于所有常见系统和硬件,包括树莓派,Jetson,甚至可以在F767上进行搭载。

 在GIT上有相关源码