private OperateResult CheckPlcReadResponse(byte[] ack) { if (ack.Length == 0) { return(new OperateResult(StringResources.Language.MelsecFxReceiveZore)); } if (ack[0] == 0x15) { return(new OperateResult(StringResources.Language.MelsecFxAckNagative + " Actual: " + SoftBasic.ByteToHexString(ack, ' '))); } if (ack[0] != 0x02) { return(new OperateResult(StringResources.Language.MelsecFxAckWrong + ack[0] + " Actual: " + SoftBasic.ByteToHexString(ack, ' '))); } if (!MelsecHelper.CheckCRC(ack)) { return(new OperateResult(StringResources.Language.MelsecFxCrcCheckFailed)); } return(OperateResult.CreateSuccessResult( )); }