Example #1
0
        public static bool WritePacket(int DevAddr, int StartReg, int RegCount, byte[] Datas, int DataLength)
        {
            if (CommByRS232.CommPort.IsOpen == false)
            {
                MessageBox.Show("端口未打开,请先打开端口!");
                return(false);
            }

            ModBusProc.CreateTxHeader(ref Modbus232, DevAddr, ModBusProc.CmdCode_Write, StartReg, RegCount, Datas, DataLength);
            byte[] TxBuffer = new byte[320];
            int    TxLength = ModBusProc.CreateTxMessage(ref Modbus232, ref TxBuffer);

            return(SendData(TxBuffer, TxLength, 8));
        }
Example #2
0
        public static bool ReadPacket(int DevAddr, int StartReg, int RegCount, ref byte[] Datas, ref int DataLength)
        {
            if (CommByRS232.CommPort.IsOpen == false)
            {
                MessageBox.Show("端口未打开,请先打开端口!");
                return(false);
            }

            bool R;

            ModBusProc.CreateTxHeader(ref Modbus232, DevAddr, ModBusProc.CmdCode_Read, StartReg, RegCount, Datas, 0);
            byte[] TxBuffer = new byte[320];
            int    TxLength = ModBusProc.CreateTxMessage(ref Modbus232, ref TxBuffer);

            R = SendData(TxBuffer, TxLength, 5 + RegCount * 2);
            if (R == true)
            {
                Array.Copy(Modbus232.RxMsg.DataBuffer, Datas, Modbus232.RxMsg.DataLenth);
                DataLength = Modbus232.RxMsg.DataLenth;
            }
            return(R);
        }