Страница 5 из 7 ПерваяПервая ... 34567 ПоследняяПоследняя
Показано с 41 по 50 из 62

Тема: Modbus-мастер в Visual Studio (.NET)

  1. #41

    По умолчанию

    На первой странице есть пример опроса плк из консольного приложения C#. По протоколу Modbus TCP. C# я только изучаю. Мне нужно написать мастера сети Modbus RTU для опроса входов МВ110-24.32ДН. Использую VS Community. NModbus подключил. Попробовал переделать пример с первой страницы с Modbus TCP на Modbus RTU. Не очень понятно, как это сделать. Нужно же где то номер порта, параметры подключения и т.д....
    Попробовал пример Create RTU из мануала на NModbus.

    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Modbus.Device;
    using System.Net.Sockets;

    namespace ModbusTest
    {
    class Program
    {
    static void Main(string[] args)
    {
    SerialPort serialPort = new SerialPort(); //Create a new SerialPort object.
    serialPort.PortName = “COM14”;
    serialPort.BaudRate = 115200;
    serialPort.DataBits = 8;
    serialPort.Parity = Parity.None;
    serialPort.StopBits = StopBits.One;
    serialPort.Open();
    ModbusSerialMaster master = ModbusSerialMaster.CreateRtu(serialPort);


    }
    }
    }

    Начеркало ошибок:
    Безымянный.jpg

    Можно ли где то глянуть рабочий пример или что то похожее? Нужно же с чего то начать, а дальше буду разбираться..

  2. #42

  3. #43

    По умолчанию

    Я это уже видел. Для меня это пока сложновато и избыточно. Я не готов пока за WinForm приниматься. Консоль еще не полностью освоил. И выудить то, что мне нужно из этого проекта вряд ли смогу без посторонней помощи...

  4. #44
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    7,537

    По умолчанию

    wad71 есть открытые проекты, где есть Modbus, но если вы не можете выудить нужное без помощи, то вероятно не поможет так же...

  5. #45

    По умолчанию

    Не так, чтобы совсем уж я деревянный... Из проекта для консоли, я думаю, смог бы нужное отсеять. По крайней мере времени уйдет намного меньше.

  6. #46

    По умолчанию

    Подключил к компу через преобразователь USB/RS485 модуль ввода МУ110-32Р. Сетевой адрес модуля 16, в диспетчере задач он отображается на COM14.

    Вот написал, руководствуясь мануалом на NModbus:



    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Modbus.Device;
    using System.Net.Sockets;
    using System.IO.Ports;


    namespace ModbusTest
    {
    class Program
    {
    static void Main(string[] args)
    {
    SerialPort serialPort = new SerialPort(); //Create a new SerialPort object.
    serialPort.PortName = "COM14";
    serialPort.BaudRate = 115200;
    serialPort.DataBits = 8;
    serialPort.Parity = Parity.None;
    serialPort.StopBits = StopBits.One;
    serialPort.Open();
    ModbusSerialMaster master = ModbusSerialMaster.CreateRtu(serialPort);
    //master.Transport.ReadTimeout = 300;

    while (true)
    {
    Console.WriteLine("адрес регистра - ");
    ushort registerAddress = ushort.Parse(Console.ReadLine());
    Console.WriteLine("значение - ");
    ushort value = ushort.Parse(Console.ReadLine());

    master.WriteSingleRegister(16, registerAddress, value);
    }
    }
    }
    }

    Сборка проекта без ошибок.

    С консоли ввожу адрес регистра, затем значение ШИМ (0-1000).

    В итоге выскакивает :
    ошибка.jpg

    Что делаю неправильно?

  7. #47
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    7,537

    По умолчанию

    а перевести ?

  8. #48

    По умолчанию

    А сам модуль при этом настроен?

  9. #49

    По умолчанию

    И еще. Из руководства на модуль: " ...запись осуществляется командой 16(0х10)....
    Из описания протокола: 16 (0x10) — запись значений в несколько регистров хранения (Preset Multiple Registers).
    Остается понять, какую команду отсылает функция WriteSingleRegister.
    Мне почему-то кажется, что это будет 6 (0x06) — запись значения в один регистр хранения (Preset Single Register).

  10. #50

    По умолчанию

    Перевел. Команда не поддерживается ведомым устройством. Переписал с использованием WriteMultipleRegisters. Так все работает без проблем. То есть МУ110 - 32Р не поддерживает запись одиночных регистров? Только группой?

Страница 5 из 7 ПерваяПервая ... 34567 ПоследняяПоследняя

Похожие темы

  1. Помогите с ActiveX в Microsoft Visual Studio 2005
    от Alex_31 в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 06.10.2013, 09:55
  2. ModBUS TCP ПЛК100(мастер) и Lectus(слейв)
    от GSK в разделе Сетевые технологии
    Ответов: 4
    Последнее сообщение: 14.09.2012, 11:35
  3. Modbus Universal MasterOPC Server и ПЛК мастер
    от smk1635 в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 13.09.2011, 22:22
  4. СМИ1, modbus-rtu, мастер. Команда 4. КАК?
    от Matysik в разделе Панели оператора (HMI)
    Ответов: 2
    Последнее сообщение: 26.05.2011, 15:32

Ваши права

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