Ejemplo n.º 1
0
        private void HanlderModbusBaseRead(MasterReadDataBase masterReadData)
        {
            byte _readOrderCmd = 0x00;

            if (masterReadData is ReadCoilsData)
            {
                _readOrderCmd = (byte)ModbusBaseOrderCmd.ReadCoilStatus;
            }
            else if (masterReadData is ReadDiscreteInputData)
            {
                _readOrderCmd = (byte)ModbusBaseOrderCmd.ReadInputStatus;
            }
            else if (masterReadData is ReadHoldingRegistersData)
            {
                _readOrderCmd = (byte)ModbusBaseOrderCmd.ReadHoldingRegister;
            }
            else if (masterReadData is ReadInputRegisters)
            {
                _readOrderCmd = (byte)ModbusBaseOrderCmd.ReadInputRegister;
            }
            if (_readOrderCmd != 0x00)
            {
                using (ByteArrayBuilder builder = new ByteArrayBuilder())
                {
                    builder.Append(masterReadData.SlaveID);                            //高位在前
                    builder.Append(_readOrderCmd);                                     //功能码
                    builder.Append(ByteHelper.ToBytes(masterReadData.Address, true));  //高位在前
                    builder.Append(ByteHelper.ToBytes(masterReadData.Quantity, true)); //数量
                    ModBusAppData = builder.ToArray();
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 读取线圈/寄存器组包 构造函数
 /// </summary>
 /// <param name="masterReadData">Modubs Master 读取数据</param>
 public ModBusTCPPackage(MasterReadDataBase masterReadData)
 {
     HanlderModbusBaseRead(masterReadData);
 }