1. 安装S7NetPlus

    image

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

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

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

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

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

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

代码演示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 声明一个私有的 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