Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя
Показано с 31 по 40 из 47

Тема: Использование ООП в CODESYS V3.5

  1. #31
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Цитата Сообщение от RV9WFJ Посмотреть сообщение
    Засрали тему про ООП��
    Где бы найти пример реального использования ООП?

    Не ООП ради ООП - а именно пример с живого объекта, и использование всех функций (Интерфейсы, Действие, Метод, Переход, Свойства).
    Где действительно видно разницу с ФБ.

  2. #32

    По умолчанию

    Цитата Сообщение от turkish945 Посмотреть сообщение
    Код:
    IF tpCMDRepeat.IN AND tpCMDRepeat.ET=tpCMDRepeat.PT THEN
    Что при этом происходит? ФБ таймера не исполняется?
    Ага, НЕ исполняется. Тут ты только его выходами пользуешься.
    А исполняется он тогда, когда ты его вызываешь как
    Код:
    tpCMDRepeat(.....);

  3. #33

    По умолчанию

    Цитата Сообщение от приборист Посмотреть сообщение
    Где бы найти пример реального использования ООП?

    Не ООП ради ООП - а именно пример с живого объекта, и использование всех функций (Интерфейсы, Действие, Метод, Переход, Свойства).
    Где действительно видно разницу с ФБ.
    А разницы и нет, все тоже самое на выходе. Просто этот механизм позволяет использовать один код для разных ФБ в их одинаковой части. Кому-то проще копи паст, я для себя решил что лучше заморочиться этим способом но потом изменять можно только в одном месте. Когда код живет и развивается от проекта к проекту то это имеет смысл. Если подход лишь бы сдать и забыть то смотреть в сторону ООП от CoDeSys смысла нет совсем, лишние танцы с бубном. Ну и как бонус ООП это еще более универсальная визуализация - опять из проекта в проект проще перетаскивать.

  4. #34
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Цитата Сообщение от RV9WFJ Посмотреть сообщение
    А разницы и нет, все тоже самое на выходе. Просто этот механизм позволяет использовать один код для разных ФБ в их одинаковой части. Кому-то проще копи паст, я для себя решил что лучше заморочиться этим способом но потом изменять можно только в одном месте. Когда код живет и развивается от проекта к проекту то это имеет смысл. Если подход лишь бы сдать и забыть то смотреть в сторону ООП от CoDeSys смысла нет совсем, лишние танцы с бубном. Ну и как бонус ООП это еще более универсальная визуализация - опять из проекта в проект проще перетаскивать.
    На выходе понятно.
    Можно вообще все в PCL_PRG написать и делайте что хотите дальше, работает же

    А можно увидеть пример кода? В связке с визуализацией.

  5. #35

    По умолчанию

    Попробую накидать что-то упрощеное, чтобы не влезать в лишние дебри не имеющие отношение к вопросу.

  6. #36

    По умолчанию

    Подскажите, как реализовать импульсное изменение переменной для ПЛК на языке ST, чем оно отличается от изменения моностабильной кнопкой?

  7. #37

    По умолчанию

    alex2021 Раз ты спрашиваешь, "КАК" реализовать - то значит ты на ST умеешь.
    Так вот делаешь FB, в котором на вход кнопки вешаешь R_TRIG, чтобы при длинном считывании кнопки всё срабатывало один раз, пока кнопку снова не отпустят и не нажмут. А потом по выходу этого R_TRIG фигачишь изменение переменной (да хотя бы bOut := NOT bOut.
    Отличается от моностабильного тем, что импульсное реле - бистабильное.

  8. #38
    Пользователь
    Регистрация
    31.01.2019
    Адрес
    РФ/РБ
    Сообщений
    917

    По умолчанию

    Цитата Сообщение от приборист Посмотреть сообщение
    Где бы найти пример реального использования ООП?

    Не ООП ради ООП - а именно пример с живого объекта, и использование всех функций (Интерфейсы, Действие, Метод, Переход, Свойства).
    Где действительно видно разницу с ФБ.
    Представьте СУ, с 8 (например) аналоговыми входами, у которой 2 типа аналоговых датчиков. Локальные и удаленные (например, modbus), При этом, эти 2 типа еще и подразделяются на, например, температурные и уровня.
    И у вас по ТЗ есть необходимость, что бы к каждому из входов СУ можно было подключить любой из датчиков, любого типа, сконфигурировав их в интерфейсе пользователя.
    Используя интерфейсы, вы создаете 8 входов СУ, используя наследование (раздельно для modbus и локальных) и интерфейсы - создаете датчики.
    Профит, все красиво, читаемо, рабочее.

  9. #39

    По умолчанию

    Цитата Сообщение от keysansa Посмотреть сообщение
    Представьте СУ, с 8 (например) аналоговыми входами, у которой 2 типа аналоговых датчиков. Локальные и удаленные (например, modbus), При этом, эти 2 типа еще и подразделяются на, например, температурные и уровня.
    И у вас по ТЗ есть необходимость, что бы к каждому из входов СУ можно было подключить любой из датчиков, любого типа, сконфигурировав их в интерфейсе пользователя.
    Используя интерфейсы, вы создаете 8 входов СУ, используя наследование (раздельно для modbus и локальных) и интерфейсы - создаете датчики.
    Профит, все красиво, читаемо, рабочее.
    У ООП много плюсов. Но насчет все красиво, читаемо - это не главное. Инкапсуляция, полиморфизм - да. Защитить данные объекта от некорректной записи, быстро создать множество однотипных сущностей с различными реализациями интерфейсов - тысячу раз да. Но есть один нюанс в работе на ПЛК. Если Ваше приложение не требует быстрой реакции на воздействия - можно творить что угодно, вызывать функции в функции. А вот если время реакции важно сократить, нужно учитывать что есть временные затраты на загрузку/выгрузку в/из стека при вызовах функционального блока, функции, задачи. Я пока новичок в ПЛК. И мне интересно - кто-нибудь оценивал как влияют временные задержки при вызовах функций, блоков и т.д. например на джиттер?

  10. #40

    По умолчанию

    Время реакции зависит от времени цикла и скорости связи с модулями ввода/вывода.

Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя

Похожие темы

  1. Использование УЗС-1
    от Сергей 2909 в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 31.05.2018, 07:56
  2. Ответов: 3
    Последнее сообщение: 05.03.2015, 14:01
  3. ПЛК 110, использование RS-232
    от =MiX@$= в разделе ПЛК1хх
    Ответов: 18
    Последнее сообщение: 14.10.2011, 14:26
  4. Использование АС4
    от alex_sinjawin в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 10.11.2009, 18:31
  5. Использование CoDeSys Service Tool (CST).
    от Юрий_1900 в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 03.09.2009, 09:49

Ваши права

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