S7.net 使用例子
时间: 2023-07-11 13:08:10 浏览: 63
以下是使用 S7.net 进行数据读写的简单示例:
```csharp
using System;
using System.Threading.Tasks;
using S7.Net;
class Program
{
static async Task Main()
{
// 创建 S7.Net 的 S7Client 对象
var plc = new Plc(CpuType.S71200, "192.168.1.100", 0, 1);
try
{
// 连接到 PLC
await plc.OpenAsync();
// 读取 DB1.DBX0.0 的值
var dbx0_0 = await plc.ReadAsync(DataType.DataBlock, 1, 0, VarType.Bit, 1);
Console.WriteLine($"DB1.DBX0.0 的值为:{dbx0_0}");
// 写入 DB1.DBW4 的值
await plc.WriteAsync(DataType.DataBlock, 1, 4, (ushort)12345);
Console.WriteLine("成功写入 DB1.DBW4 的值");
// 读取 DB1.DBW4 的值
var dbw4 = await plc.ReadAsync(DataType.DataBlock, 1, 4, VarType.Word, 1);
Console.WriteLine($"DB1.DBW4 的值为:{dbw4}");
}
catch (Exception ex)
{
Console.WriteLine($"连接到 PLC 失败:{ex.Message}");
}
finally
{
// 断开与 PLC 的连接
plc.Close();
}
Console.ReadLine();
}
}
```
在上面的示例中,我们首先创建了一个 `Plc` 对象,并使用 `OpenAsync` 方法连接到 PLC。然后,我们使用 `ReadAsync` 方法读取了 `DB1.DBX0.0` 的值,并使用 `WriteAsync` 方法向 `DB1.DBW4` 写入了一个值。最后,我们又使用 `ReadAsync` 方法读取了 `DB1.DBW4` 的值,并将其输出到控制台。最后,我们使用 `Close` 方法断开与 PLC 的连接。
请注意,使用 S7.net 进行数据读写时,需要确保所读写的地址和数据类型与 PLC 中实际的地址和数据类型匹配,否则会出现读写失败的情况。