/// <summary> /// 向PLC中位软元件写入bool数组,返回值说明,比如你写入D100,values[0]对应D100.0 /// </summary> /// <param name="address">要写入的数据地址,具体的地址参考文档</param> /// <param name="values">要写入的实际数据,可以指定任意的长度</param> /// <returns>返回写入结果</returns> /// <example> /// <code lang="cs" source="Communication_Net45.Test\Documentation\Samples\Profinet\OmronFinsNet.cs" region="WriteBool" title="WriteBool示例" /> /// </example> public OperateResult Write(string address, bool[] values) { // 获取指令 var command = OmronFinsNetHelper.BuildWriteWordCommand(address, values.Select(m => m ? (byte)0x01 : (byte)0x00).ToArray(), true);; if (!command.IsSuccess) { return(command); } // 核心数据交互 OperateResult <byte[]> read = ReadBase(PackCommand(command.Content)); if (!read.IsSuccess) { return(read); } // 数据有效性分析 OperateResult <byte[]> valid = ResponseValidAnalysis(read.Content, false); if (!valid.IsSuccess) { return(valid); } // 成功 return(OperateResult.CreateSuccessResult()); }
/// <summary> /// 批量写入PLC的数据,以字为单位,也就是说最少2个字节信息,具体的地址参考文档 /// </summary> /// <param name="address">地址信息</param> /// <param name="value">数据值</param> /// <returns>是否写入成功</returns> public override OperateResult Write(string address, byte[] value) { // 获取指令 var command = OmronFinsNetHelper.BuildWriteWordCommand(address, value, false);; if (!command.IsSuccess) { return(command); } // 核心数据交互 OperateResult <byte[]> read = ReadBase(PackCommand(command.Content)); if (!read.IsSuccess) { return(read); } // 数据有效性分析 OperateResult <byte[]> valid = ResponseValidAnalysis(read.Content, false); if (!valid.IsSuccess) { return(valid); } // 成功 return(OperateResult.CreateSuccessResult()); }