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

Тема: Передача команд ПЛК, как значений регистров.

  1. #1

    По умолчанию Передача команд ПЛК, как значений регистров.

    Идея следующая. Из программы команда передается как ряд значений для двух и более регистров (функцией WriteMultipleRegisters, 0x17). В первый регистр пишем код команды, в последующие - ее параметры. На ПЛК из определенного регистра получаем код команды, на основании него снимаем значения параметров из остальных регистров, исполняем команду и обнуляем регистры.

    Судя по протоколу такой метод достаточно надежен и ситуации, когда часть параметров запишется в одной итерации цикла исполнения, а другая в следующем, возникнуть не должно. Я правильно понимаю?

  2. #2

    По умолчанию

    Запись, как мне кажется, транзакционна, да. но если ответ от ПЛК придет до того, как команда будет исполнена, то из программы может прийти следующая команда. А потом еще одна. Короче, если ответы формируются на уровне "драйвера" Модбаса по записи в регистры, можно прозевать команду. Как ьы не пришлось опрашивать ПЛК на предмет готовности к приему новой команды.
    Последний раз редактировалось rapucha; 18.12.2015 в 00:06.

  3. #3

    По умолчанию

    Цитата Сообщение от rapucha Посмотреть сообщение
    Как бы не пришлось опрашивать ПЛК на предмет готовности к приему новой команды.
    Да, действительно.

  4. #4

    По умолчанию

    Цитата Сообщение от krollcbas Посмотреть сообщение
    Write Multiple Registers 16 (0x10)
    Точно. 0x17 - это Read/Write Multiple registers. И в выбранной мною библиотеке для записи используется она. Надо разобраться, почему автор ее выбрал.

  5. #5
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,317

    По умолчанию

    Надо разобраться, почему автор ее выбрал.
    Чтоб читать/писать за раз. Чего разбиратся то. Тока эта нестандартная функция - а значит не все слейвы поддерживают ((

  6. #6
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Запись, как мне кажется, транзакционна, да. но если ответ от ПЛК придет до того, как команда будет исполнена, то из программы может прийти следующая команда.
    Просто не надо этот подход использовать для пакетной передачи большого числа команд. А небольшое число можно передавать с заведомо большим интервалом. Работает нормально, есть опыт.

Похожие темы

  1. Передача значений со СКАДЫ на панель
    от Safron в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 24.06.2015, 15:51
  2. Ответов: 3
    Последнее сообщение: 24.10.2014, 11:18
  3. Как сосчитать сумму средних значений?
    от mib_z в разделе Master SCADA 3
    Ответов: 22
    Последнее сообщение: 25.03.2013, 17:52
  4. Ответов: 0
    Последнее сообщение: 23.07.2010, 15:33
  5. передача значений переменной от плк к сми1
    от DimaSik в разделе Панели оператора (HMI)
    Ответов: 5
    Последнее сообщение: 12.10.2009, 09:54

Ваши права

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