Nuget安装以及西门子PLC通信

  1. 安装S7NetPlus

    image

  2. 添加命名空间 ,using S7.Net

  3. 创建一个西门子PLC通信对象——成员变量

  4. 实例化 ,this:表示的是当前对象

  5. 建立简介 ,对象名.方法名 , this.siemens.Open()

  6. 读取变量 , 装箱的一个过程 ,

  7. 解析变量 ,拆箱的一个过程

代码演示:

// 声明一个私有的 Siemens S7 PLC 通信对象,初始值为 null
// 使用 S7NetPlus 库中的 Plc 类来实现与西门子 PLC 的通信
private Plc siemens = null;

// 定义一个名为 S7Test 的公共方法,用于测试与西门子 PLC 的连接和数据读取
public void S7Test()
{
    // 创建一个新的 Plc 实例,指定 CPU 类型为 S7-1500
    // 参数说明:
    //   CpuType.S71500: 指定 PLC 的 CPU 类型为 S7-1500
    //   "127.0.0.1": PLC 的 IP 地址(此处为本地回环地址,实际使用时需改为真实 PLC 的 IP)
    //   0: 槽号(Rack),通常 S7-1500 默认为 0
    //   0: 机架号(Slot),S7-1500 在博图中通常设置为 2,但默认也可能为 0(需根据实际项目配置)
    this.siemens = new Plc(CpuType.S71500, "127.0.0.1", 0, 0);

    // 打开与 PLC 的连接
    // 如果 IP、槽号或机架号配置错误,或网络不通,连接将失败
    this.siemens.Open();

    // 读取 PLC 中地址为 "M200.0" 的位(M 标志位寄存器的第 200 字节的第 0 位)
    // 返回值为 object 类型,具体值可能是 bool、int 等,取决于实际读取的数据类型
    object value = this.siemens.Read("M200.0");

    // 将读取到的对象转换为布尔值(bool)
    // M200.0 是一个位地址,因此预期值为 true 或 false
    bool result = Convert.ToBoolean(value);

    // 弹出一个消息框,显示转换后的布尔值(true 或 false)
    // 用于测试和验证是否成功读取到数据
    MessageBox.Show(result.ToString());
}

注意:需要注意的是 ,在连接的时候需要使用S7来进行模拟

这里我使用的是:

image

posted @ 2025-09-24 19:48  恨水长秋  阅读(20)  评论(0)    收藏  举报