Страница 285 из 709 ПерваяПервая ... 185235275283284285286287295335385 ... ПоследняяПоследняя
Показано с 2,841 по 2,850 из 7084

Тема: CODESYS V3.5. Вопросы и ответы

  1. #2841

    По умолчанию

    fatlortroll Чёрт! Вот это телепатия! )) Я вчера перетряхнул проект на OwenCommunication!
    У меня в среднем в каждом проекте около 100 BOOL входов и 100 BOOL выходов.
    Мои требования были такие:
    а) Не привязывать переменные программного IO к дереву конфигурации. То есть, не вписывать туда все-все переменные IO, чтобы если в дереве надо что-то удалить или заменить, потом их не перенабивать руками (о том, что их можно выгрузить-загрузить в CSV я знаю).
    б) Получать статус каждого устройства в дереве программно. То есть если у меня один модуль IO отвалится, я хочу про него знать. И даже в визуализации я делаю системную страницу, где показываю состояние всего IO аппаратно. Например, мне ж надо знать что у меня отвалился модуль термодатчиков - и аварийно отключать нагрев.
    в) Ускорить опрос или сделать его контролируемым - чтобы точно знать, что и как будет опрашиваться и в какой последовательности.

    В итоге в соотнесении IO я забираю одну-две переменную (например для модулей IO - битовую маску и счётчик входов), а потом прям в коде разбираю их побитно как мне надо. Если именится способ опроса устройства или что-то будет копипаститься между проектами, то код копипастить проще.
    OCLка укорила опрос в 1,5 раза. Я вчера (как раз Евгению Кислову слал на мыло) написал под неё свою обёртку - массив, где задаются построчно данные, которые надо писать-читать, чтобы наглядно всё было.
    Оно рработает, и работает хорошо! В далёком будущем я думаю для себя написать какую-то простую программку (может на Visual Basic), в которой можно будет создавать модули IO, их переменные и привязку к битам, а она мне будет генерировать тот самый код для опроса этого всего.
    Прикладываю картинки, хвастаюсь:
    Вот так обычно обращаются через OCL к устройствам OCL-MB-Request-1.gif
    Из-за этого получается жёсткая копипаста, в которой надо не забывать менять адреса и регистры: OCL-MB-Request-2.gif
    Я замутил структуру, которая у меня описывает один регистр. Получился аналог "Канал IO" в штатном Slave-устройстве CodeSys: OCL-MB-Request-3.gif
    Дальше описал все свои "каналы" в виде массива этих структур: OCL-MB-Request-4.gif
    Ну и всё, дальше циклически беру из массива нужные данные и даже FB опроса, и выполняю: OCL-MB-Request-5.gif

    Страница с инфой про IO выглядит у меня так: OCL-MB-Request-6.gif
    Инфу для IO и программы я беру вот так (тут канал 1 берётся из OCL, а каналы 2 и 3 - из штатного дерева устройств): OCL-MB-Request-7.gif
    И побитово я всё IO после OCL разбираю примерно так: OCL-MB-Request-8.gif
    Вот для формирования этого всего кода я в будущем хочу накатать скрипт, хоть какой-то =)

    ИТОГО: OCL я буду применять для простого и быстрого опроса модулей IO в щите. А для внешних линий пока останусь на штатных средствах.
    Сорри, меня понесло! Для меня OCL, моя обёртка, и идея набросать себе программу-скрипт для генерации кода опроса - это ща прям открытие! Не мог не поделиться! =)

  2. #2842

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Попробуйте вот этот ключ оставить пустым или удалить.

    Вложение 52429
    Спасибо! Оставил ключ пустым и все заработало как надо )

  3. #2843
    Пользователь
    Регистрация
    08.02.2020
    Адрес
    Ставрополь
    Сообщений
    228

    По умолчанию

    > набросать себе программу-скрипт для генерации кода опроса
    Вроде как в CoDeSys 3.5 заявляют интеграцию с Python-ом, но я ещё в эту сторону только приглядываюсь.

  4. #2844

    По умолчанию

    Коллеги, я создал шаблон устройства с интерфейсом, впилил его фоеймом, потом изменил некоторые условия прямоугольников да кнопок, и похоже, что инстанс не обновляет поведение . Когда меняю положение элементов в шаблоне, инстанс меняется, а вот с условиями в свойствах - как застыли. Может надо как-т обновлять проект, потому что каждый раз по новой все фреймы пересоздавать - не вариант вообще.

  5. #2845
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,162

    По умолчанию

    Цитата Сообщение от borgivan Посмотреть сообщение
    Коллеги, я создал шаблон устройства с интерфейсом, впилил его фоеймом, потом изменил некоторые условия прямоугольников да кнопок, и похоже, что инстанс не обновляет поведение . Когда меняю положение элементов в шаблоне, инстанс меняется, а вот с условиями в свойствах - как застыли. Может надо как-т обновлять проект, потому что каждый раз по новой все фреймы пересоздавать - не вариант вообще.
    Опишите, пожалуйста, подробно и пошагово, как воспроизвести проблему.

  6. #2846

    По умолчанию

    Воспроизвести не пробовал. Но если подробнее: 1) Создал визуализацию: пара кнопок и рисунков 2) добавил интерфейс in_out 3) привязал переменные интерфейса к свойствам кнопок и картинок 4) на странице создал фрейм и туда вклячил этот шаблон 5) пошел в шаблон, поменял условия видимости, сохранил, перезалил проект 6) видимость кнопок не изменилась по новому условию 7) втупую привязал вход шаблона к параметру видимости, перезалил 8) в проекте форсом переменную пишу, которая передается в инстанс - по нулям

  7. #2847
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,162

    По умолчанию

    У меня эта ситуация не повторяется - изменения сразу применяются.
    Если выложите проект (где только этот фрейм и сразу понятно, куда жать и куда смотреть) - тогда могу посмотреть, в чем дело.

  8. #2848

    По умолчанию

    Попробую ещё раз воспроизвести

  9. #2849

    По умолчанию

    Коллеги, помогите разобраться с энергонезависимой памятью (PERSISTENT). Правильны ли мои размышления?

    1) Инициализирую PERSISTENT переменную каким-то значением в блоке инициализации
    2) Меняю её значение в программе
    3) При последующих обновлениях софта переменная будет инициализироваться сохраненным в памяти значением, а не из блока инициализации

    Есть ли какие-то хитрости и подводные камни?

  10. #2850
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,162

    По умолчанию

    Цитата Сообщение от borgivan Посмотреть сообщение
    Коллеги, помогите разобраться с энергонезависимой памятью (PERSISTENT). Правильны ли мои размышления?

    1) Инициализирую PERSISTENT переменную каким-то значением в блоке инициализации
    2) Меняю её значение в программе
    3) При последующих обновлениях софта переменная будет инициализироваться сохраненным в памяти значением, а не из блока инициализации

    Есть ли какие-то хитрости и подводные камни?
    Размышления правильные, единственный нюанс - если сам список PERSISTENT переменных как-то изменится, то все переменные будут проинициализированы заново значениями из области объявления.

Страница 285 из 709 ПерваяПервая ... 185235275283284285286287295335385 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3197
    Последнее сообщение: 23.04.2024, 13:45
  2. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 822
    Последнее сообщение: 20.11.2023, 17:48
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 245
    Последнее сообщение: 02.10.2022, 11:34
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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