Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: ПЛК110. Как реализовать функцию 0x05 Write Single Coil через конфигуратор

  1. #1

    По умолчанию ПЛК110. Как реализовать функцию 0x05 Write Single Coil через конфигуратор

    Здравствуйте, коллеги.
    Подскажите, как реализовать функцию 0x05 (Write Single Coil) через конфигуатора в Codesys 2.3 для Modbus Master?
    Нигде найти не могу, перебором всех элементов тоже не увидел.

  2. #2

    По умолчанию

    Добрый день!
    В ПЛК110 нет возможности записывать биты функцией 0x05 (Write Single Coil) через модуль Modbus Master из Конфигурации ПЛК.
    С уважением, Коськовецкий Владислав.
    Инженер группы технической поддержки компании "ОВЕН"

  3. #3

    По умолчанию

    Цитата Сообщение от Коськовецкий Владислав Посмотреть сообщение
    Добрый день!
    В ПЛК110 нет возможности записывать биты функцией 0x05 (Write Single Coil) через модуль Modbus Master из Конфигурации ПЛК.
    А как тогда её реализовать?

  4. #4

    По умолчанию

    Цитата Сообщение от Никола Казанский Посмотреть сообщение
    А как тогда её реализовать?
    Использованием библиотеки OWEN Modbus. Она даёт полный функционал. Но тогда весь опрос придётся писать руками в коде, и НЕ использовать конфигурацию для этой части Modbus (в смысле - для всего канала RS-485).
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  5. #5

    По умолчанию

    А вот еще вопрос.
    По тем же койлам.
    Считываю состояние койла некоего прибора через Register input module, Read Coil Status (0x01).
    Ответ приходит с правильным состоянием- 0 или 1.
    При изменении состояния другого койла ответ меняется на произвольный, вплоть до 65381.
    Слушаю порт с помощью Advanced Serial Port Monitor, и вижу посылку вида 01 01 02 00 00 10, то есть запрашивает 10 байт с адреса 02 00.
    Соответственно, в зависимости от состояния некоего прибора ответ меняется на фигню.
    Посылаю из Advanced Serial Port Monitor правильную посылку вида 01 01 02 00 00 01, получаю правильный ответ вне зависимости от состояния некоего прибора.
    Как сделать так, чтобы посылка с командой 0х01 формировалась правильно.
    Modbus.lib не предлагать, поскольку весь опрос переделывать под него не имеет смысла из-за неправильной реализации этой функции в CodeSys.

  6. #6

    По умолчанию

    Так ну нет же в этой среде штатно команды чтения одного Coil. НЕТ.
    Тут ПЛК запрашивает какую-то дичь: может 10 Coil подряд, а может что попало.
    В Modbus.Lib всё раелизовано правильно: лично делал через него опрос оборудования Carel, которые обожают везде пихать Coil.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  7. #7

    По умолчанию

    Могли бы и сделать за столько лет.

    P.S.: А у меня Dixell))) Только в связке с МВ110 и им подобным.

  8. #8

    По умолчанию

    А можно сделать так, чтобы часть приборов, посадив их на 485-1 читать через Конфигурацию ПЛК, а эти шкатулки с койлами посадить на 485-2 и опрашивать через Modbus.lib?
    Последний раз редактировалось Никола Казанский; 01.07.2023 в 17:05.

  9. #9

    По умолчанию

    1. Так поддержка CodeSys 2.3 прекращена уже "столько лет". Она осталась хорошей и быстрой системой, но обновляться не будет.
    2. Мат следует убрать (подретактируй коммент) - а то забанят в хлам (это у меня на блоге можно вовсю материться, если по делу).
    3. У CodeSys 2.3 правило такое: один интерфейс должен опрашиваться чем-то одним. То есть или через библиотеку, или через конфигурацию.
    Поэтому, если у тебя там интерфейсов хватает - то разнеси на два. А если не хватает - то тогда придётся всё на библиотеку переписывать.
    У меня обычно хватает: всё, что внутри щита, у меня сидит на одном интерфейсе, а всё, что снаружи - на другом.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  10. #10

    По умолчанию

    Библиотека UNM позволяет отжать на время у системы порт и спросить все что хочется!!!

    Насколько я понял Вы используете Register input module и ставите команду 0x01(чтение массива дискретных выходов),
    в которой нельзя указать количество считываемых выходов, поэтому считываются все 16 (0x10) элементов (выходов).
    Их значения записываются в объявленную переменную типа WORD побитно справа на лево.
    Если нужно значение конкретного бита, попробуйте использовать 8-bit input module (будут считываться 8 выходов за раз),
    где дайте имя конкретному биту - получите нужный бит в виде BOOL.

    Однако я считываю все выхода сразу в 32-битный модуль, а значения забираю через <имя переменной>.<номер бита>
    bits.jpg

    так быстрее и меньше нагрузка на сеть
    Последний раз редактировалось EFrol; 01.07.2023 в 13:40.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 6
    Последнее сообщение: 22.12.2021, 10:50
  2. Записывать из Скады в Coil только True
    от Lukasevich в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 10.04.2018, 06:34
  3. ПЛК160. Чем заменить функцию записи 0x05?
    от FallenDAY в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 26.08.2017, 13:19
  4. Ответов: 16
    Последнее сообщение: 10.04.2017, 10:58
  5. Ответов: 1
    Последнее сообщение: 26.09.2014, 00:07

Ваши права

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