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

Тема: Visual Studio 2017 и СПК1ХХ

  1. #1

    По умолчанию Visual Studio 2017 и СПК1ХХ

    Добрый день.
    Есть необходимость получать значения из СПК в программу на Visual Basic.
    Использую библиотеку nmodbus,но никак не могу разобраться по каким адресам обращаться к СПК -выходам.
    С Modbus RTU на ПР200 разобрался без проблем там все просто ReadHoldingRegisters(1, 156, 1)(0) указываем адрес Slave, адрес регистра,кол-во бит считываемых. И потом преобразуем с помощью Modbus.Utility.ModbusUtility, конвертируем при необходимости.
    1)А как сделать это c MODBUS TCP?
    2)Как определить адрес регистра который указывать при обращении? %QX322.0 в обычном представление это какой адрес?
    3)Подскажите как считать DWORD или как правильно по битам это сделать?
    Во вложении настройки выходов СПК1ХХ в codesys.
    Буду благодарен за пример.
    Изображения Изображения
    • Тип файла: jpg 1.jpg (112.0 Кб, Просмотров: 12)
    • Тип файла: jpg 2.jpg (77.4 Кб, Просмотров: 12)

  2. #2

  3. #3

    По умолчанию

    Спасибо за ответ.
    Но я именно не могу понять в Visual какие адреса поставить. Допустим адрес %QX322.0 в функции чтения как указать?
    master = ModbusIpMaster.CreateIp(New TcpClient("192.168.1.12", 502))
    data(3) = master.ReadHoldingRegisters(0, 1)(0)
    data(4) = master.ReadHoldingRegisters(1, 1)(0)
    data(5) = master.ReadHoldingRegisters(2, 1)(0)
    data(6) = master.ReadHoldingRegisters(3, 1)(0)
    data(7) = master.ReadHoldingRegisters(4, 1)(0)
    data(8) = master.ReadHoldingRegisters(5, 1)(0)
    Все приходят 0.Хотя на СПК значение 1.
    См. вложение. Буду благодарен за подсказку с адресами.
    Изображения Изображения
    • Тип файла: jpg 3.jpg (118.3 Кб, Просмотров: 10)

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,145

    По умолчанию

    У вас на скриншоте переменные привязаны к битам 0-3 input регистра 0 - т.е. вы как минимум используете не ту функцию Modbus и, вероятно, не с теми аргументами.
    На %QX322.0 вообще не смотрите - ориентируйтесь на номер в квадратных скобках.

    Выходы[0] - input регистр 0
    Выходы[1] - input регистр 1

    Входы[0] - holding регистр 0

    и т.д.

    В документе все это описано.

  5. #5

    По умолчанию

    Спасибо всем огромное!
    Действительно проблема в функции,необходимо было считывать через
    data(3) = master.ReadinputRegisters(0, 1)(0)
    Документы читал,но смутило именно то , что в Codesys названия "Входные" и "Выходные" по другому определены.
    Еще раз спасибо.

Похожие темы

  1. Modbus-мастер в Visual Studio (.NET)
    от Yegor в разделе Помощь Разработчикам
    Ответов: 61
    Последнее сообщение: 27.08.2021, 14:15
  2. Подключение контроллера шд BE1105(исходник Visual Studio) к ПЛК ОВЕН
    от ДаниилСПб в разделе Сетевые технологии
    Ответов: 5
    Последнее сообщение: 18.06.2018, 15:15
  3. Ответов: 1
    Последнее сообщение: 16.08.2016, 09:22
  4. Помогите с ActiveX в Microsoft Visual Studio 2005
    от Alex_31 в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 06.10.2013, 09:55
  5. Visual Basic
    от trunf в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 14.02.2009, 09:33

Ваши права

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