示例#1
0
        public void GetValues(ConnectionProperties connectionProperties, int functionPropertyID)
        {
            modbusClient = connectionProperties.modbusClient;
            if (!modbusClient.Connected)
            {
                modbusClient.IPAddress = connectionProperties.ModbusTCPAddress;
                modbusClient.Port      = connectionProperties.Port;
                modbusClient.Connect();
            }

            switch (connectionProperties.FunctionPropertiesList[functionPropertyID].FunctionCode)
            {
            case FunctionCode.ReadCoils:
                connectionProperties.FunctionPropertiesList[functionPropertyID].values = modbusClient.ReadCoils(connectionProperties.FunctionPropertiesList[functionPropertyID].StartingAdress, connectionProperties.FunctionPropertiesList[functionPropertyID].Quantity);
                break;

            case FunctionCode.ReadDiscreteInputs:
                connectionProperties.FunctionPropertiesList[functionPropertyID].values = modbusClient.ReadDiscreteInputs(connectionProperties.FunctionPropertiesList[functionPropertyID].StartingAdress, connectionProperties.FunctionPropertiesList[functionPropertyID].Quantity);
                break;

            case FunctionCode.ReadHoldingRegisters:
                connectionProperties.FunctionPropertiesList[functionPropertyID].values = modbusClient.ReadHoldingRegisters(connectionProperties.FunctionPropertiesList[functionPropertyID].StartingAdress, connectionProperties.FunctionPropertiesList[functionPropertyID].Quantity);
                break;

            case FunctionCode.ReadInputRegisters:
                connectionProperties.FunctionPropertiesList[functionPropertyID].values = modbusClient.ReadInputRegisters(connectionProperties.FunctionPropertiesList[functionPropertyID].StartingAdress, connectionProperties.FunctionPropertiesList[functionPropertyID].Quantity);
                break;

            default: break;
            }
            if (valuesChanged != null)
            {
                valuesChanged(this);
            }
        }
        public MainForm()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            modbusClient = new EasyModbusSecure.ModbusClient();
            modbusClient.ReceiveDataChanged += new EasyModbusSecure.ModbusClient.ReceiveDataChangedHandler(UpdateReceiveData);
            modbusClient.SendDataChanged    += new EasyModbusSecure.ModbusClient.SendDataChangedHandler(UpdateSendData);
            modbusClient.ConnectedChanged   += new EasyModbusSecure.ModbusClient.ConnectedChangedHandler(UpdateConnectedChanged);
            //          modbusClient.LogFileFilename = "logFiletxt.txt";

            //modbusClient.Baudrate = 9600;
            //modbusClient.UnitIdentifier = 2;
        }
示例#3
0
 void UpdateTextBoxSend(object sender)
 {
     EasyModbusSecure.ModbusClient modbusClient = (EasyModbusSecure.ModbusClient)sender;
     if (textBox1.InvokeRequired)
     {
         UpdateSendDataCallback d = new UpdateSendDataCallback(UpdateTextBoxSend);
         this.Invoke(d, new object[] { modbusClient });
     }
     else
     {
         textBox1.AppendText("To: " + modbusClient.IPAddress.ToString() + "Tx: ");
         string hex = BitConverter.ToString(modbusClient.sendData);
         hex = hex.Replace("-", " ");
         textBox1.AppendText(hex);
         textBox1.AppendText(System.Environment.NewLine);
     }
 }