예제 #1
0
        public void SetDataPointRealValueByFunNun16Test()
        {
            ModbusRTUServer modbusRTUServer = new ModbusRTUServer();

            modbusRTUServer.InitializeFromConfigFile(modbusConfigFile, serialPortConfigFile);
            List <DataPoint> dataPoints = new List <DataPoint>();

            modbusRTUServer.SerialPort.OnCurrentRequestDataChanged += new EventHandler <RequstDataEventArgs>(SerialPort_OnRequestDataChanged);
            modbusRTUServer.SerialPort.OnCurrentReceiveDataChanged += new EventHandler <ReceiveDataEventArgs>(SerialPort_OnReceiveDataChanged);

            dataAnalyzeMode = modbusRTUServer.DataAnalyzeMode;
            allDataPoints   = modbusRTUServer.AllDataPoints;

            dataPoints.Add(new DataPoint()
            {
                DeviceAddress        = 1,
                StartRegisterAddress = 83,
                DataPointType        = DataPointType.WriteAndReadByFunNum03,
                DataPointDataType    = DataPointDataType.F32,
                RealTimeValue        = -1,
                ValueToSet           = 101.7
            });

            List <List <byte> > writeRegisterCommandBytes = ModbusRTU.CreateWriteRegisterCommands(DataAnalyzeMode.DataHighToLow, dataPoints);

            if (modbusRTUServer.SerialPort.TryOpenSerialPort())
            {
                foreach (var writeBytes in writeRegisterCommandBytes)
                {
                    modbusRTUServer.SerialPort.WriteSerialPort(writeBytes.ToArray());
                }
            }
        }
예제 #2
0
        public void GetDataPointRealValueTest()
        {
            ModbusRTUServer modbusRTUServer = new ModbusRTUServer();

            modbusRTUServer.InitializeFromConfigFile(modbusConfigFile, serialPortConfigFile);

            modbusRTUServer.SerialPort.OnCurrentRequestDataChanged += new EventHandler <RequstDataEventArgs>(SerialPort_OnRequestDataChanged);
            modbusRTUServer.SerialPort.OnCurrentReceiveDataChanged += new EventHandler <ReceiveDataEventArgs>(SerialPort_OnReceiveDataChanged);

            dataAnalyzeMode = modbusRTUServer.DataAnalyzeMode;
            allDataPoints   = modbusRTUServer.AllDataPoints;

            if (modbusRTUServer.SerialPort.TryOpenSerialPort())
            {
                foreach (var readRegisterCommand in modbusRTUServer.AllReadRegisterCommands)
                {
                    modbusRTUServer.SerialPort.WriteSerialPort(readRegisterCommand.ReadCommand.ToArray());
                }
            }
        }