关于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设备可以向其他设备发起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 |
Prodave |
是 |
加密性高但是应用性并不高, 对S7系列的PLC兼容性极高, 对其他PLC的兼容性不好 |
西门子的版权方,目前依旧应用 |
2 |
S7.Net |
否 |
可以个人开发使用,兼容性好, 支持性高 |
目前停止更新,在GIT上有相关源码 |
3 |
S7.NetPlus |
否 |
应用性极高,支持多种语言,对C#支持良好 |
S7.Net的升级版本 |
4 |
Sharp7 |
否 |
Snap7的C#实现,调用简单 |
|
5 |
Snap7 |
否 |
应用性极高,支持多种语言,兼容多系统,几乎适用于所有常见系统和硬件,包括树莓派,Jetson,甚至可以在F767上进行搭载。 |
原文地址:https://www.cnblogs.com/Anhongning/p/12310851.html