点击或拖拽改变大小

IReadWriteNet 接口

所有的和设备或是交互类统一读写标准

命名空间:  HslCommunication.Core
程序集:  HslCommunication (在 HslCommunication.dll 中) 版本:8.1.3.0 (8.1.3.0)
语法
public interface IReadWriteNet

IReadWriteNet 类型公开以下成员。

方法
  名称说明
公共方法Read(String, UInt16)
批量读取底层的数据信息,需要指定地址和长度,具体的结果取决于实现
公共方法ReadT
从设备里读取支持Hsl特性的数据内容,该特性为HslDeviceAddressAttribute,详细参考论坛的操作说明。
公共方法ReadBool(String)
读取底层的bool数据信息,具体的结果取决于实现
公共方法ReadBool(String, UInt16)
批量读取底层的数据信息,需要指定地址和长度,具体的结果取决于实现
公共方法ReadCustomerT
读取自定义的数据类型,需要继承自IDataTransfer接口
公共方法ReadDouble(String)
读取双浮点精度的数据
公共方法ReadDouble(String, UInt16)
读取双浮点精度的数据的数组
公共方法ReadFloat(String)
读取单浮点精度的数据
公共方法ReadFloat(String, UInt16)
读取单浮点精度的数组
公共方法ReadInt16(String)
读取16位的有符号整型
公共方法ReadInt16(String, UInt16)
读取16位的有符号整型数组
公共方法ReadInt32(String)
读取32位的有符号整型
公共方法ReadInt32(String, UInt16)
读取32位有符号整型的数组
公共方法ReadInt64(String)
读取64位的有符号整型
公共方法ReadInt64(String, UInt16)
读取64位的有符号整型数组
公共方法ReadString
读取字符串数据,
公共方法ReadUInt16(String)
读取16位的无符号整型
公共方法ReadUInt16(String, UInt16)
读取16位的无符号整型数组
公共方法ReadUInt32(String)
读取32位的无符号整型
公共方法ReadUInt32(String, UInt16)
读取设备的uint类型的数组
公共方法ReadUInt64(String)
读取64位的无符号整型
公共方法ReadUInt64(String, UInt16)
读取64位的无符号整型的数组
公共方法Write(String, Boolean)
写入bool数据
公共方法Write(String, Boolean)
写入bool数组数据
公共方法Write(String, Byte)
写入byte数组数据
公共方法Write(String, Double)
写入double数据
公共方法Write(String, Double)
写入double数组
公共方法Write(String, Int16)
写入short数据
公共方法Write(String, Int16)
写入short数组
公共方法Write(String, Int32)
写入int数据
公共方法Write(String, Int32)
写入int[]数组
公共方法Write(String, Int64)
写入long数据
公共方法Write(String, Int64)
写入long数组
公共方法Write(String, Single)
写入float数据
公共方法Write(String, Single)
写入float数组
公共方法Write(String, String)
写入字符串信息,编码为ASCII
公共方法Write(String, UInt16)
写入ushort数据
公共方法Write(String, UInt16)
写入ushort数组
公共方法Write(String, UInt32)
写入uint数据
公共方法Write(String, UInt32)
写入uint[]数组
公共方法Write(String, UInt64)
写入ulong数据
公共方法Write(String, UInt64)
写入ulong数组
公共方法Write(String, String, Int32)
写入指定长度的字符串信息,编码为ASCII
公共方法WriteT(T)
从设备里读取支持Hsl特性的数据内容,该特性为HslDeviceAddressAttribute,详细参考论坛的操作说明。
公共方法WriteCustomerT
写入自定义类型的数据,该类型必须继承自IDataTransfer接口
Top
备注
Modbus类,PLC类均实现了本接口,可以基于本接口实现统一所有的不同种类的设备的数据交互
示例
此处举例实现modbus,三菱,西门子三种设备的统一的数据交互
IReadWriteNet示例
List<IReadWriteNet> devices = new List<IReadWriteNet>( );
devices.Add( new ModbusTcpNet( "192.168.0.7" ) );                      // 新增modbus的设备
devices.Add( new MelsecMcNet( "192.168.0.8", 2000 ) );                 // 新增三菱的设备
devices.Add( new SiemensS7Net( SiemensPLCS.S1200, "192.168.0.9" ) );   // 新增西门子的设备

// 添加各自的数据地址,不同的设备的数据地址格式肯定不一致的
List<string> address = new List<string>( );
address.Add( "x=4;100" );                // 假设modbus的数据地址是输入寄存器的100的地址,类型为short
address.Add( "M100" );                  // 假设三菱的数据地址是数据寄存器M100
address.Add( "DB1.100" );                // 假设西门子的数据地址在DB块1的偏移地址100上

short[] values = new short[3];
for (int i = 0; i < devices.Count; i++)
{
    values[i] = devices[i].ReadInt16( address[i] ).Content;
}

// values即包含了多种设备的值,实际上如果想要开发一个完善的系统,还要更加复杂点
参见