IReadWriteNetWriteAsyncT 方法 (T) |
命名空间: HslCommunication.Core
[缺少 "M:HslCommunication.Core.IReadWriteNet.WriteAsync``1(``0)" 的 <param name="data"/> 文档]
异常 | 条件 |
---|---|
ArgumentNullException |
// 假设你要读取几个数据的情况,我们把需要读取的数据定义成一个个的数量,本示例既适合单个读取,也适合批量读取,以下就是混搭的情况。 // 我们假设,我们要读取的PLC是西门子PLC,地址数据的假设如下 // 我们假设 设备是否启动是 M0.0 // 产量是 M10 开始的2个地址数据 // 温度信息是 DB1.0开始的4个地址数据 // 报警的IO信息是 M200 开始,5个字节,共计40个IO点信息 // 那么我们可以做如下的定义 public class DataExample { /// <summary> /// 设备是否启动 /// </summary> [HslDeviceAddress( "M0.0" )] public bool Enable { get; set; } /// <summary> /// 产量信息 /// </summary> [HslDeviceAddress( "M10" )] public short Production { get; set; } /// <summary> /// 温度信息 /// </summary> [HslDeviceAddress( "DB1.0" )] public float Temperature { get; set; } /// <summary> /// 连续的位报警信息 /// </summary> [HslDeviceAddress( "M200", 5 )] public byte[] AlarmStatus { get; set; } }
SiemensS7Net plc = new SiemensS7Net( SiemensPLCS.S1200, "192.168.0.100" ); // 此处需要注意的是,凡是带有 HslDeviceAddress 特性的属性都会被写入进去 DataExample data = new DataExample( ) { Enable = true, Production = 123, Temperature = 123.4f, AlarmStatus = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05 } }; OperateResult write = await plc.WriteAsync( data ); if (write.IsSuccess) { // success Console.WriteLine( "写入成功!" ); } else { // failed Console.WriteLine( "写入失败:" + write.Message ); }