Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
        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);
        }