Exemple #1
0
        private void SendSensor(ACFF Mode, byte[] Data, int Length)
        {
            Random ra = new Random();

            timer1.Enabled = false;
            FillValue();
            TxModBus.MsgFlag    = (byte)Mode;
            TxModBus.DataFlag   = 0x01;
            TxModBus.DataLength = Length;
            TxModBus.MsgLength  = Length + 3;
            int TxLength = ModBusClass.ModBus_CreateMsg(ref TxBuffer, ref TxModBus, (int)Mode, ra.Next(0, 255), 0x91, Data, Length);

            textBox5.Text = Tools.HexToString(TxBuffer, TxLength);
            TxBufferSize  = TxLength;
            Value.serialPort1.Write(TxBuffer, 0, TxLength);
        }
Exemple #2
0
        private void Write(ACFF Mode, byte[] Data, int Length)
        {
            Random ra = new Random();

            FillValue();
            TxModBus.MsgFlag    = (byte)Mode;
            TxModBus.DataFlag   = 0x01;
            TxModBus.DataLength = Length;
            TxModBus.MsgLength  = Length + 3;
            int TxLength = ModBusClass.ModBus_CreateMsg(ref TxBuffer, ref TxModBus, (int)Mode, ra.Next(0, 255), 0x91, Data, Length);

            try
            {
                Value.serialPort1.Write(TxBuffer, 0, TxLength);
            }
            catch { ResetCom(); }
        }
Exemple #3
0
 private string SendRead(ACFF Mode, byte[] Data, int Length)
 {
     try
     {
         Random ra = new Random();
         FillValue();
         TxModBus.MsgFlag    = (byte)Mode;
         TxModBus.DataFlag   = 0x01;
         TxModBus.DataLength = Length;
         TxModBus.MsgLength  = Length + 3;
         int TxLength = ModBusClass.ModBus_CreateMsg(ref TxBuffer, ref TxModBus, (int)Mode, ra.Next(0, 255), 0x91, Data, Length);
         TxBufferSize = TxLength;
         int RxLength = Usart.SendData(Value.serialPort1, TxBuffer, TxLength, ref RxBuffer, 100);
         ModBusClass.ModBus_Expend(RxBuffer, RxLength, ref RxModBus);
         return(Tools.GetStringFromByte(RxModBus.Data));
     }
     catch { try { Value.serialPort1.Open(); } catch { }; return("NULL"); }
 }
Exemple #4
0
 private string GetSensorHandParameter(ACFF Mode)
 {
     byte[] Data = new byte[100];
     return(SendReadSensor(Mode, Data, 0));
 }
Exemple #5
0
        private string SendReadSensor(ACFF Mode, byte[] Data, int Length)
        {
            Random ra = new Random();

            timer1.Enabled = false;
            FillValue();
            TxModBus.MsgFlag    = (byte)Mode;
            TxModBus.DataFlag   = 0x91;
            TxModBus.DataLength = Length;
            TxModBus.MsgLength  = Length + 3;
            int TxLength = ModBusClass.ModBus_CreateMsg(ref TxBuffer, ref TxModBus, (int)Mode, ra.Next(0, 255), 0x91, Data, Length);

            textBox5.Text = Tools.HexToString(TxBuffer, TxLength);
            TxBufferSize  = TxLength;
            int RxLength = Usart.SendData(serialPort1, TxBuffer, TxLength, ref RxBuffer, 100);

            textBox6.Text = Tools.HexToString(RxBuffer, RxLength);
            ModBusClass.ModBus_Expend(RxBuffer, RxLength, ref RxModBus);
            if (RxModBus.ErrorFlag == ModBusClass.ModBus_Ok)
            {
                string R = Tools.GetStringFromByte(RxModBus.Data);
                if (Mode == ACFF.ACFF_GetCPUModel)
                {
                    label16.Text = R;
                }
                if (Mode == ACFF.ACFF_GetBSD)
                {
                    label17.Text = R;
                }
                if (Mode == ACFF.ACFF_GetCPUID)
                {
                    label15.Text = R;
                }
                if (Mode == ACFF.ACFF_GetCANSpeed)
                {
                    label14.Text = R;
                }
                if (Mode == ACFF.ACFF_GetSensorModel)
                {
                    label10.Text = R;
                }
                if (Mode == ACFF.ACFF_GetSensorNumber)
                {
                    label11.Text = R;
                }
                if (Mode == ACFF.ACFF_GetSensorName)
                {
                    label12.Text = R;
                }
                if (Mode == ACFF.ACFF_GetSensorNote)
                {
                    label13.Text = R;
                }
                timer1.Enabled = true;
            }
            else
            {
                MessageBox.Show("ModBus解析错误代码[" + RxModBus.ErrorFlag + "]");
            }
            return(Tools.GetStringFromByte(RxModBus.Data));
        }
Exemple #6
0
        private string SendReadSensor(ACFF Mode, byte[] Data, int Length)
        {
            Random ra = new Random();

            timer1.Enabled = false;
            FillValue();
            TxModBus.MsgFlag    = (byte)Mode;
            TxModBus.DataFlag   = 0x01;
            TxModBus.DataLength = Length;
            TxModBus.MsgLength  = Length + 3;
            int TxLength = ModBusClass.ModBus_CreateMsg(ref TxBuffer, ref TxModBus, (int)Mode, ra.Next(0, 255), 0x91, Data, Length);

            textBox5.Text = Tools.HexToString(TxBuffer, TxLength);
            TxBufferSize  = TxLength;
            RxBuffer      = new byte[512];
            int RxLength = Usart.SendData(Value.serialPort1, TxBuffer, TxLength, ref RxBuffer, 100);

            // MessageBox.Show(Tools.HexToString(RxBuffer, 100));
            textBox6.Text = Tools.HexToString(RxBuffer, RxLength);
            ModBusClass.ModBus_Expend(RxBuffer, RxLength, ref RxModBus);
            if (RxModBus.ErrorFlag == ModBusClass.ModBus_Ok)
            {
                string R = Tools.GetStringFromByte(RxModBus.Data);
                if (Mode == ACFF.SCFF_GetSystemInfor)
                {
                    label16.Text = R;
                }
                if (Mode == ACFF.SCFF_GetCPUModel)
                {
                    label17.Text = R;
                }
                if (Mode == ACFF.SCFF_GetHandVersion)
                {
                    label15.Text = R;
                }
                if (Mode == ACFF.SCFF_GetSoftVersion)
                {
                    label14.Text = R;
                }
                if (Mode == ACFF.SCFF_GetSensorModel)
                {
                    label10.Text = R;
                }
                if (Mode == ACFF.SCFF_GetSensorNumber)
                {
                    label11.Text = R;
                }
                if (Mode == ACFF.SCFF_GetSensorName)
                {
                    label12.Text = R;
                }
                if (Mode == ACFF.SCFF_GetSensorNote)
                {
                    label13.Text = R;
                }
                if (Mode == ACFF.SCFF_GetProgTime)
                {
                    label22.Text = R;
                }
                if (Mode == ACFF.SCFF_GetFlashSize)
                {
                    label41.Text = R;
                }
                if (Mode == ACFF.SCFF_GetLibVersion)
                {
                    label43.Text = R;
                }
            }
            else if (TxModBus.SlaveAddr != ModBusClass.BroadAddr)
            {
                textBox6.Text = "ModBus解析错误代码[" + RxModBus.ErrorFlag + "]";
            }
            return(Tools.GetStringFromByte(RxModBus.Data));
        }