/// <summary> /// 检查当前的Modbus-Ascii响应是否是正确的 /// </summary> /// <param name="send">发送的数据信息</param> /// <returns>带是否成功的结果数据</returns> protected override OperateResult <byte[]> CheckModbusTcpResponse(byte[] send) { // 转ascii byte[] modbus_ascii = ModbusInfo.TransRtuToAsciiPackCommand(send); // 核心交互 OperateResult <byte[]> result = ReadBase(modbus_ascii); if (!result.IsSuccess) { return(result); } // 还原modbus报文 OperateResult <byte[]> modbus_core = ModbusInfo.TransAsciiPackCommandToRtu(result.Content); if (!modbus_core.IsSuccess) { return(modbus_core); } // 发生了错误 if ((send[1] + 0x80) == modbus_core.Content[1]) { return new OperateResult <byte[]>( ) { ErrorCode = modbus_core.Content[2], Message = ModbusInfo.GetDescriptionByErrorCode(modbus_core.Content[2]) } } ; // 成功的消息 return(OperateResult.CreateSuccessResult(modbus_core.Content)); }