Nuget安装以及西门子PLC通信
-
安装
S7NetPlus库
-
添加命名空间 ,
using S7.Net -
创建一个西门子PLC通信对象——成员变量
-
实例化 ,
this:表示的是当前对象 -
建立简介 ,
对象名.方法名,this.siemens.Open() -
读取变量 , 装箱的一个过程 ,
-
解析变量 ,拆箱的一个过程
代码演示:
// 声明一个私有的 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来进行模拟
这里我使用的是:


浙公网安备 33010602011771号