点击或拖拽改变大小

OmronHostLinkCModeHelperWriteAsync 方法

向PLC写入数据,数据格式为原始的字节类型,地址格式为"D100","C100","W100","H100","A100"
Write data to PLC, the data format is the original byte type, and the address format is "D100", "C100", "W100", "H100", "A100"

命名空间:  HslCommunication.Profinet.Omron.Helper
程序集:  HslCommunication (在 HslCommunication.dll 中) 版本:12.1.2.0 (12.1.2.0)
语法
public static Task<OperateResult> WriteAsync(
	IReadWriteDevice omron,
	byte unitNumber,
	string address,
	byte[] value
)

参数

omron
类型:HslCommunication.CoreIReadWriteDevice
PLC设备的连接对象
unitNumber
类型:SystemByte

[缺少 "M:HslCommunication.Profinet.Omron.Helper.OmronHostLinkCModeHelper.WriteAsync(HslCommunication.Core.IReadWriteDevice,System.Byte,System.String,System.Byte[])" 的 <param name="unitNumber"/> 文档]

address
类型:SystemString
初始地址
value
类型:SystemByte
原始的字节数据

返回值

类型:TaskOperateResult
结果
备注
地址里可以额外指定单元号信息,例如 s=2;D100
示例
假设起始地址为D100,D100存储了温度,100.6℃值为1006,D101存储了压力,1.23Mpa值为123,D102,D103存储了产量计数,读取如下:
Write示例
OmronFinsNet omronFinsNet = new OmronFinsNet( "192.168.1.110", 9600 );

// 拼凑数据,这样的话,一次通讯就完成数据的全部写入
byte[] buffer = new byte[8];
omronFinsNet.ByteTransform.TransByte( (short)1234 ).CopyTo( buffer, 0 );
omronFinsNet.ByteTransform.TransByte( (short)2100 ).CopyTo( buffer, 2 );
omronFinsNet.ByteTransform.TransByte( 12353423 ).CopyTo( buffer, 4 );

OperateResult write = omronFinsNet.Write( "D100", buffer );
if (write.IsSuccess)
{
    // success
}
else
{
    // failed
}

// 上面的功能等同于三个数据分别写入,下面的性能更差点,因为进行了三次通讯,而且每次还要判断是否写入成功
// omronFinsNet.Write( "D100", (short)1234 );
// omronFinsNet.Write( "D100", (short)2100 );
// omronFinsNet.Write( "D100", 12353423 );
以下是写入不同类型数据的示例
Write示例
OmronFinsNet omronFinsNet = new OmronFinsNet( "192.168.1.110", 9600 );

// 此处以D寄存器作为示例
omronFinsNet.Write( "D1000", (short)1234 );                // 写入D1000  short值  ,W3C0,R3C0 效果是一样的
omronFinsNet.Write( "D1000", (ushort)45678 );              // 写入D1000  ushort值
omronFinsNet.Write( "D1000", 1234566 );                    // 写入D1000  int值
omronFinsNet.Write( "D1000", (uint)1234566 );              // 写入D1000  uint值
omronFinsNet.Write( "D1000", 123.456f );                   // 写入D1000  float值
omronFinsNet.Write( "D1000", 123.456d );                   // 写入D1000  double值
omronFinsNet.Write( "D1000", 123456661235123534L );        // 写入D1000  long值
omronFinsNet.Write( "D1000", 523456661235123534UL );       // 写入D1000  ulong值
omronFinsNet.Write( "D1000", "K123456789" );               // 写入D1000  string值

// 读取数组
omronFinsNet.Write( "D1000", new short[]  { 123, 3566, -123 } );                        // 写入D1000  short值  ,W3C0,R3C0 效果是一样的
omronFinsNet.Write( "D1000", new ushort[] { 12242, 42321, 12323 } );                    // 写入D1000  ushort值
omronFinsNet.Write( "D1000", new int[]    { 1234312312, 12312312, -1237213 } );         // 写入D1000  int值
omronFinsNet.Write( "D1000", new uint[]   { 523123212, 213, 13123 } );                  // 写入D1000  uint值
omronFinsNet.Write( "D1000", new float[]  { 123.456f, 35.3f, -675.2f } );               // 写入D1000  float值
omronFinsNet.Write( "D1000", new double[] { 12343.542312d, 213123.123d, -231232.53432d } );         // 写入D1000  double值
omronFinsNet.Write( "D1000", new long[]   { 1231231242312, 34312312323214, -1283862312631823 } );   // 写入D1000  long值
omronFinsNet.Write( "D1000", new ulong[]  { 1231231242312, 34312312323214, 9731283862312631823 } ); // 写入D1000  ulong值
参见