private void FillValue() { ModBusClass.ModBus_Clear(ref TxModBus); //ModBusClass.HostAddr ModBusClass.ModBus_Clear(ref RxModBus); ModBusClass.ModBus_Create(ref ModBusClass.DefMoBus, 2, byte.Parse("5"), MasterSlaveMode.WorkMode_Master, ModBusClass.CheakMode_Crc); //产生默认配置 ModBusClass.ModBusCoppyCreate(ref ModBusClass.DefMoBus, ref TxModBus); ModBusClass.ModBusCoppyCreate(ref ModBusClass.DefMoBus, ref RxModBus); ModBusClass.ModBusCoppyCreate(ref ModBusClass.DefMoBus, ref Usart.ThreadRxModBusMsg); ModBusClass.ModBusCoppyCreate(ref ModBusClass.DefMoBus, ref Usart.ThreadTxModBusMsg); }
public static int SendData(SerialPort CommPort, byte[] TxBuffer, int TxLength, ref byte[] RxBuffer, int RxLength) { int Length = 0; MB TxModBus = new MB(); MB RxModBus = new MB(); ModBusClass.ModBusCoppyCreate(ref ModBusClass.DefMoBus, ref TxModBus); ModBusClass.ModBusCoppyCreate(ref ModBusClass.DefMoBus, ref RxModBus); for (int i = 0; i < 10; i++) { Length = SendDataOne(CommPort, TxBuffer, TxLength, ref RxBuffer, RxLength); ModBusClass.ModBus_Expend(RxBuffer, Length, ref RxModBus); if (RxModBus.ErrorFlag == ModBusClass.ModBus_Ok) { return(Length); } } MessageBox.Show("重试次数过多"); return(Length); }