利用c#结合keepserver读写西门子PLC的文章

在工业自动化项目中,使用 C# 通过 KEPServerEX 读写西门子 PLC 是一种常见且稳定的方案。KEPServerEX 作为 OPC 服务器,负责与 PLC 通信,而 C# 作为 OPC 客户端,通过 OPC DA 接口进行数据交换,实现了良好的解耦。

本文将详细介绍如何配置 KEPServerEX 并通过 C# 实现一个完整的读写示例。


🏗️ 一、整体架构

  1. 西门子 PLC:作为底层设备,通过以太网与上位机连接。

  2. KEPServerEX:作为 OPC 服务器,使用“Siemens TCP/IP Ethernet”驱动与 PLC 建立连接,并向上层提供标准化的 OPC 接口。

  3. C# 上位机:作为 OPC 客户端,使用Interop.OPCAutomation.dll动态库连接 KEPServerEX,进行数据的读写操作。


⚙️ 二、准备工作

  • 硬件与软件

    • 西门子 PLC (如 S7-1200/1500),并已在 TIA Portal (博途) 中配置好 IP 地址。

    • 已安装 KEPServerEX (推荐 V5 或更高版本)。

    • Windows 开发机,安装 Visual Studio (如 2017/2019/2022)。

  • 创建 C# 项目

    • 在 Visual Studio 中新建一个Windows 窗体应用 (.NET Framework)​ 项目。

    • 在项目中添加对Interop.OPCAutomation.dll的引用。该 DLL 通常位于 KEPServerEX 安装目录或随 OPC Core Components 一同安装。


🔌 三、配置 KEPServerEX

1. 新建通道 (Channel)
  1. 打开 KEPServerEX 配置界面,右键点击Channels->New Channel

  2. 通道名称:自定义,如Siemens_S7_Channel

  3. 设备驱动:选择Siemens TCP/IP Ethernet

2. 新建设备 (Device)
  1. 在新建的通道下,右键点击Devices->New Device

  2. 设备名称:自定义,如PLC_1200

  3. 设备型号:根据 PLC 型号选择,如Siemens S7-1200

  4. 设备 ID:填入 PLC 的实际IP 地址​ (如10.10.10.130)。

  5. 机架 (Rack) / 槽号 (CPU Slot):根据 TIA Portal 中的硬件组态填写,常见组合为Rack=0,