Показано с 1 по 8 из 8

Тема: TPM202, Modbus, C#, System.TimeoutException

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию TPM202, Modbus, C#, System.TimeoutException

    Добрый день.
    Я пытаюсь взаимодействовать с TPM202 из кода по протоколу Modbus. Пишу на C#, Visual Studio 2013. Использую библиотеку NModbus.
    Устройство подключено через преобразователь AC4, системой порт определяется как COM2. Через выложенную у вас на сайте утилиту устройство видится, управлять им возможно.
    Однако, при попытке связаться с ним из кода у меня вылетает System.TimeoutException на строчках, отсылающих запросы устройству.
    Код следующий:
    Код:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO.Ports;
    using Modbus.Data;
    using Modbus.Device;
    using Modbus.Utility;
    using Modbus.Serial;
    
    namespace OWEN_TPM202_Control
    {
        class Data
        {
            public string ReturnedCommand { get; private set; }
            private bool connected;
            private SerialPort serialPort;      
    
            public Data()
            {
                connected = false;
            }
            public void Connect()
            {          
                if (!connected)
                {
                    serialPort = new SerialPort("COM2");
                    serialPort.BaudRate = 9600;
                    serialPort.Parity = Parity.None;
                    serialPort.DataBits = 8;
                    serialPort.StopBits = StopBits.One;
                    serialPort.Handshake = Handshake.None;
                    serialPort.ReadTimeout = 500;
                    serialPort.WriteTimeout = 500;
                    serialPort.Open();
                    connected = true;
                }
                var adapter = new SerialPortAdapter(serialPort);
                ModbusSerialMaster master = ModbusSerialMaster.CreateRtu(adapter);
                master.ReturnQueryData(1, 0); // вот здесь выдает исключение
    
                byte slaveID = 1; 
                ushort startAddress = 0; 
                ushort numOfPoints = 5;
                ushort[] registers = master.ReadHoldingRegisters(slaveID, startAddress, numOfPoints); // и здесь
            }        
        }
    }
    Объясните мне, пожалуйста, что я делаю не так и в чем может быть проблема.
    Последний раз редактировалось Tiruno; 16.03.2016 в 16:47.

Похожие темы

  1. Сбор данных с приборов OWEN через System.IO.Ports.SerialPort
    от iKarma в разделе Помощь Разработчикам
    Ответов: 11
    Последнее сообщение: 28.03.2015, 16:34
  2. СПК1xx System Events
    от pqqp в разделе СПК1хх
    Ответов: 5
    Последнее сообщение: 27.10.2014, 11:13
  3. TPM202 RS485
    от Filipp_1 в разделе Эксплуатация
    Ответов: 10
    Последнее сообщение: 16.07.2012, 19:00
  4. Tpm202
    от Alex в разделе Эксплуатация
    Ответов: 7
    Последнее сообщение: 22.11.2007, 11:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •