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

Тема: Тиражирование и объектный подход в CoDeSys

  1. #1

    По умолчанию Тиражирование и объектный подход в CoDeSys

    Добрый день.
    1)Долгое время работали в MasterScada, в которой легко было реализовывать объектный поход при разработке проектов АСУТП.
    Объектный реализация проекта заключалась в:
    -В оборудовании выделялись системы управления (система нагрева,водяная система, система газонапуска и т.д.)
    -Для каждого объекта определялись списки внешних переменных ( входы/выходы для макрокоманд от главного объекта )
    -Далее каждый специалист разрабатывал объект(модуль) управления той или иной системой.
    -Готовые объекты (модули) вставлялись в конечный проект управления оборудованием через библиотеки. Внешние входы/выходы вставленного
    в проект объекта связываются с главным объектом системы.
    Такой подход позволяет легко добиться тиражирования объектов, организовать групповую работу над проектом и техническую поддержку.


    2) Сейчас встала задача реализовать несколько проектов в CoDeSys. На мой взгляд есть несколько вариантов реализации подобной технологии(см.п.1) в CoDeSyS:
    2.1.Библиотечные ФБ:
    -Объект управления системой делается как визуальный ФБ (программная реализация через ST).
    -После разработки - Объект(ФБ) помещается в библиотеку.
    -В конечный проект из библиотеки вставляются нужные ФБ (объекты-системы) и визуальными связями связываются между собой и с главным объектом.

    2.2. Папки
    Этот вариант появился после просмотра демо проектов (в частности VisuDemoMobile.projectarchive) в которых специфичные функции разделяются по папкам.
    Но как эти папки передавать в другой проект (без копировать/вставить) пока не решено.

    2.3 Application composer (http://www.codesys.ru/docs/conf14/UC...omposer_en.pdf)
    Концепция построения близка требуемой.

    2.4. Интерфейсы
    (пока не изучал)

    Уважаемые знатоки CODeSys, подскажите как бы Вы реализовали такую задачу? В какую сторону надо "копать"?
    Изображения Изображения

  2. #2
    Пользователь Аватар для murdemon
    Регистрация
    03.02.2014
    Адрес
    Санкт-Петербург
    Сообщений
    844

    По умолчанию

    как вариант чтобы каждая подзадача работала в своем Таске и имела описаный интерфейс за который другие таски могли бы дергать. (тут не чего нового не придумать) а в Modbus маппить как раз - это стандартный описаны интерфейс и все
    Dmitriy Murashov
    SPS Software Engineer Automation Engineering RUS

  3. #3

    По умолчанию

    Добрый день!
    Объектный подход в CODESYS v3 возможен благодаря
    "классам" - функциональным блокам (позволяет разбить программу на составляющие);
    методам функциональных блоков (в ООП - метод класса), которые позволяют реализовать т.н. событийный подход к программированию и разграничить доступ к переменным класса;
    интерфейсам (в ООП - интерфейсы) их использование позволяет в полной мере использовать полиморфизм т.е. работать с объектами разных классов сходным образом.

    В общих чертах ознакомиться с принципами можно по ссылке: http://www.intuit.ru/studies/courses...e/27107?page=1
    ООП В CODESYS (английский язык) во вложении.


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

    Application Composer - инструмент платный, но действительно должен подойти Вам.
    Единожды разработав библиотеку Вы сможете "собирать конструктор" из ее компонентов простым и удобным способом.


    От выделения каждой подзадачи в отдельную задачу TaskManager'a я бы воздержался т.к. в CODESYS v3 используется вытесняющая многозадачность и могут возникнуть конфликтные ситуации при взаимодействии между ними.
    Но их можно избежать используя т.н. синхронизацию (в CODESYS осуществляется при помощи функционала библиотеки SysSem).
    Вложения Вложения

  4. #4

    По умолчанию

    spdif123, Ваш вариант 2.2 Папки - как бы совсем не вариант. Никакого программного смысла Папка не несет, просто позволяет объединить часть POU проекта в одном месте для удобства работы.
    Как вариант могу предложить использовать массив Функциональных Блоков (FB) и работать с экземплярами FB.
    http://www.owen.ru/forum/showthread....l=1#post188294
    По Визуализации - вот здесь пример от Евгения Кислова:
    http://www.owen.ru/forum/showthread....l=1#post243083

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 20.03.2015, 13:16
  2. Тиражирование объекта и символа
    от VinSS в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 18.01.2013, 09:56

Ваши права

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