C#上位机通过标签读写西门子PLC的两种方案

写在前面

经常有小伙伴问我,欧姆龙、倍福、AB、Codesys这些PLC都可以实现标签变量读取,那么西门子PLC是否支持标签变量读取呢?

那么今天跟大家分享一下,上位机与西门子PLC实现标签读取的两种方案。

S7 Comm Plus

可能大家都听过S7协议,这个是西门子的官方协议,那么S7 Comm Plus是什么协议呢?.

Siemens S7 Comm Plus,顾名思义,就是S7协议的升级版。

S7-200、S7-300、S7-400系列的PLC采用早期的西门子私有协议S7comm进行通信。S7-1200/1500系列固件版本为V3.0以下的PLC采用西门子新一代的S7comm-Plus协议进行通信,该协议采用了一些特殊编码规范。

KepServer V6.6版本支持Siemens S7 Plus Ethernet驱动,通过本地S7 Comm Plus协议采集 S7-1200 和 S7-1500 PLC 的符号地址。使用在线自动生成标签功能,用户不再需要从 TIA Portal 项目中手动导入标签。

我们测试使用的是西门子S7-1500的PLC,创建好一个用于测试使用的DB块,这里的DB块是优化的块访问,没有偏移量。

C#上位机通过标签读写西门子PLC的两种方案

通过KepServer添加一个通道,驱动选择Siemens S7 Plus Ethernet,如下图所示。

C#上位机通过标签读写西门子PLC的两种方案

然后再添加一个设备,设备向导中,ID填写IP地址,如下图所示:

C#上位机通过标签读写西门子PLC的两种方案

再添加一个静态标记,如下图所示:

C#上位机通过标签读写西门子PLC的两种方案

这里的标记地址可以参考帮助,格式如下:PLC名称.Blocks.DB块名称.变量名称。

运行看下效果:

C#上位机通过标签读写西门子PLC的两种方案

我们用OPC客户端软件来连接测试一下:

C#上位机通过标签读写西门子PLC的两种方案

OPC UA

目前西门子新出的1200和1500PLC大多数都支持OPCUAServer,所以只需要简单做一个配置,激活一下OPCUA服务器功能,即可实现OPCUA通信。

C#上位机通过标签读写西门子PLC的两种方案

配置完成后,西门子OPCUA的URL为opc.tcp://192.168.2.153:4840。

我们通过OPCUA客户端来连接测试一下:

C#上位机通过标签读写西门子PLC的两种方案

写在最后

如果大家看到了这里,今晚八点就来我的直播间吧,咱们聊聊C#上位机与西门子PLC通信的那些事儿。