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

Тема: Программа-переводчик конфигурации модбас-слейвов ПЛК1xx

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

    По умолчанию Программа-переводчик конфигурации модбас-слейвов ПЛК1xx

    pre-release
    https://github.com/yegorpetrov/owen-...2016.1.27.1031

    Кто организует связь с ПЛК1xx по Модбасу (когда ПЛК — слейв) знают, насколько муторно бывает дублировать регистры в мастере. Например, в вашем ПЛК создано несколько десятков регистиров для передачи данных на какой-нибудь операторский ПК — все эти регистры придётся скорее всего руками вписывать в среде разработки этого верхнего уровня. И в случае изменений придётся всё перепроверять.

    Представляю небольшую программу/библиотеку, которая перепишет все регистры из .pro-файла за вас по вашему шаблону.

    9f83isB.png

    На скриншоте показано, как программа получает на вход файл проекта и по шаблону csharp.stg выдаёт в консоль готовый к применению код для разбора регистров в теги/переменные на стороне мастера. Учитывается выравнивание и поразрядный доступ (модули «8 bit»).

    Код сгенерирован из такой конфигурации:

    02.png

    А для форматирования использовался вот такой шаблон:

    Форум съедает шаблоны. См. файлы .stg в исходниках: https://github.com/yegorpetrov/owen-...hell/Templates
    Код:
    csharp.stg<outs:{out |="" <out.name=""><nregs><slaveaddr><tag, object=""><outs:{out |="" dict[tags.<out.name=""><out.conversionname><out.conversionargs; separator=", "><out.comment>
    Не обязательно генерировать код на каком-то языке. Шаблон можно написать и под простое перечисление:

    03.png

    Код:
    simple.stg<outs:{out |="" <out.name=""><out.conversionname><out.conversionargs; separator=", "><out.comment>
    Для шаблонизации используется библиотека StringTemplate — оттуда и синтаксис шаблонов.

    Параметром -o (--out) вывод можно перенаправить в какой-нибудь файл. А параметры -a, -c и -n позволяют выбирать слейв по адресу, комментарию и номеру, если в проекте их несколько.

    Программа специально сделана консольной, чтобы её проще было автоматизировать и интегрировать в свою рабочую среду. А библиотеку ModbusImport можно использовать и отдельно от консольной оболочки. Например, её можно вызывать в шаблонах T4, которые использует Visual Studio. Для этого достаточно положить куда-нибудь файл ModbusImport.dll и сослаться на него в шаблоне. На следующем скриншоте показано, как шаблон генерирует часть класса PLCReader, который отвечает за разбор регистров. Остаётся дописать постоянную часть класса, и можно больше не тратить время на переписывание конфигурации из проекта.

    04.png</out.comment></out.conversionargs;></out.conversionname></outs:{out></out.comment></out.conversionargs;></out.conversionname></outs:{out></tag,></slaveaddr></nregs></outs:{out>
    Последний раз редактировалось Yegor; 27.01.2016 в 16:55.

  2. #2
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,258

    По умолчанию

    Спасибо Егор!
    Вы опять всех превзошли.

  3. #3

    По умолчанию

    Мммм... классная штука. Только не могу почему то запустить, пишет, что приложение не является приложением win32.

  4. #4

    По умолчанию

    так же пишет:
    Цитата Сообщение от energvk Посмотреть сообщение
    .... пишет, что приложение не является приложением win32.

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

    По умолчанию

    .NET Framework какой версии установлен?

  6. #6

    По умолчанию

    На домашнем с семеркой - v4.0.30319, на рабочем хр, пока не знаю

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 23.02.2016, 17:53
  2. Несовместимость слейвов по RS485.
    от Инженер-Эл в разделе Сетевые технологии
    Ответов: 11
    Последнее сообщение: 10.12.2014, 10:51
  3. ПЛК1хх. Несколько МодБас-ТСР слейвов + Лектус.
    от Gans в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 30.04.2014, 13:34
  4. Сохранение файлов конфигурации.
    от kip в разделе Сервисное ПО
    Ответов: 1
    Последнее сообщение: 22.03.2011, 11:02

Ваши права

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