Страница 133 из 707 ПерваяПервая ... 3383123131132133134135143183233633 ... ПоследняяПоследняя
Показано с 1,321 по 1,330 из 7062

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

  1. #1321

    По умолчанию

    ...в котором, однако, не нашёл переменных, позволяющих цеплять его к конкретному полю структуры...

  2. #1322

    По умолчанию

    Цитата Сообщение от chm Посмотреть сообщение
    ...в котором, однако, не нашёл переменных, позволяющих цеплять его к конкретному полю структуры...
    Разве в фреймах нельзя подать на вход экземпляр структуры? Если так, то да - недопилили немцы.

  3. #1323

    По умолчанию

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

    А у меня 105 штук панелей, на каждой до 16 разных коммутационных аппаратов. Пусть они тупо рубильники, но натыкивать им вручную кому от кого зависеть - делается печально.

    То есть, по всей видимости, на вход подать - можно.
    Но всё равно для каждого "ящика" - свой фрейм рисовать. Ну или скопировать, но назначать экземпляр - всё равно руками.
    Последний раз редактировалось chm; 31.03.2017 в 15:40.

  4. #1324

    По умолчанию

    Фреймы вполне могут решить вашу, фреймы можно переключать переменной типа ИНТ, если их несколько и они изменяются в зависимости от условий. Переменную эту можете менять где угодно. На вход/выход фрейма вполне можно вставить любое количество переменных и структур, а так же полей структур. Фреймы могут входить друг в друга, при этом структуру для внутреннего фрейма надо передать во внешний фрейм либо отдельной переменной структуры, либо в составе внешней структуры. Говорят не следует вкладывать фреймы более чем на 3 порядка, я не проверял. У меня пока только 2 порядка было.
    Внутри фреймов могут быть свои переменные, которые видны только им. (например str: ARRAY[0..1] OF STRING:=['On','Off']; а в каком нибудь прямоугольнике в текст вписать str[BOOL_TO_INT(bVar)], и тогда надпись будет меняться в зависимости от логической переменной.)
    Не обязательно использовать все переменные структуры внутри фрейма. На разные фреймы может быть завязана одна структура, или 2 экземпляра 1 структуры.

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

    Если у вас 105 панелей с 16 рубильниками, то логично создать фрейм с 16 рубильниками, вар ин аут которого является массив структур arstRubilnik[1..16]. В структуру можно впихнуть, что вам нужно(видимость, цвет, переменная вкл/откл, запрет ввода, надпись при рубильнике, и тд).
    Этот массив структур пихнуть в отдельную структуру stPanel. (не уверен как оформить массив массивов) Создать массив этих структур по количеству панелей arstAllPannels[1..105]. Вставить фрейм на экран и привязать к нему arstAllPannels[i].stPanel.arstRubilnik. i менять где угодно в программе или визуализации, тем самым изменять панель во фрейме на любую из 105.
    Последний раз редактировалось slonegd; 31.03.2017 в 16:27.

  5. #1325

    По умолчанию

    не пойму, кто на ком стоял...
    пока всё вышеприведённое в разных сочетаниях не поехало.

    понимаю так:
    1. делаем DUT - структуру на рубильник, в нёй состояния, цвет покраски будущего сигнала визуализации, для краткости оно будет называться тип "рубильник". rub
    2. делаем DUT - структуру на панель, в ней разная штуковина, которая относится к панели целиком (пусть будет переключатель местного/дистанционного управления и т.д.) и массив из структур, которые рубильник, пусть он называется тип "панель". pan
    3. делаем DUT - структуру на усё хозяйство, в которой нечто общее на все панели вообще и массив из этих панелей.
    ну, в облегчённом виде в п. 3 можно сделать массив из панелей, и тогда уже не DUT, а в PLC_PRG в шапке. , оно будет тип "отделение" otd - ну пусть так.

    для последней таки делаем экземпляр в PLC_PRG, если не идём по облегчённому варианту с массивом, экземпляр будет называться "экземпляр отделения"

    4. вставляем новую визуализацию, которая пусть визуализирует отдельный рубильник. в ней разворачиваем шапку (не тыкательную хрень справа, а то место сверху, где var_in_out написано и туда объявляем переменную, пусть она будет называться ino_rub , у который будет тип "рубильник" (rub)). Рисуем квадратик для сигнализации состояния рубильника. Теперь надо, чтобы квадратик красился цветом, который будет определятся переменной Цвет в структуре "рубильник", являющейся элементом массива рубильников в структуре "панель", являющейся в свою очередь элементом массива в структуре "отделение" в её экземпляре "экземпляр отделения".
    выделяем квадратик, идем в правую часть и где "переменные цвета" - "нормальное состояние" - "цвет фрейма" - "цвет заливки" тыкаем. Там вылезает табличка, в ней ищем переменную ino_rub для текущей визуализации, ней находим поле "цвет". Он вставился, почему-то не ino_rub.color, а просто color.
    на всякий случай сохраняем это дело и пытаемся для смеха компилировать. Видим два ругательства, что визуализация "рубильник" не имеет экземпляров и третье - что идентификатор color в визуализации "рубильник" не задан. Опаньки. Ну ладно, может, всё целиком поедет...

    5. делаем визуализацию для панели. там вставляем элемент "фрейм", нам открывается диалог "конфигурация фрейма". там выбираем визуализацию одиночного рубильника, которую делали выше. Фрейм сразу принимает вид визуализации рубильника, которую заранее сделали маленькой, чтоб влезало. Так делаем 2 раза, пусть пока будет по 2 рубильника на панели и по 2 панели на секции/отделении. Да, в структурах этого тоже по 2 штуки. Ещё на панель приделываем просто прямоугольник, его изменение цвета будет сигнализировать о состоянии панели "в общем". В шапке ему делаем переменную ino Тип pan (панель).
    Оба фрейма "рубильников" сразу в правой части заимели в поле "ссылка" значение ino_rub, при компиляции опять ругается на "цвет" в рубильнике и про экземпляры тоже. Про "панель" такого, почему-то, не пишет.


    6. то же повторяем про "отделение".

    7. делаем последнюю, главную визуализацию "main", туда ставим визуализацию "отделение" во фрейме.


    чего дальше - не понял. Надо как-то к "отделению" привязывать экземпляр, запускать и смотреть, как меняются цвета. Если, конечно, оно всё будет, но похоже - нет.

  6. #1326

    По умолчанию

    по 4 пункту: переменная должна быть ino_rub.color, а не просто color, тогда одна ошибка компиляции уйдет.
    В визуализации main надо дать ссылку на конкретную структуру, экземпляр которой был создан в plc_prg. Внутри фрейма вы это же сделали, а в мейне забыли, вот он и ругается.
    Всё будет, надо верить в себя.

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

    По умолчанию

    Добрый день. Поднятая тема (сложная визуализация, типизация объектов) показалась интересной, поэтому в свободное время на коленке сделал видео.
    https://www.youtube.com/watch?v=eHWSI_Ll8VU&


    Может быть, кому-то оно в чем-нибудь поможет.

  8. #1328
    Пользователь
    Регистрация
    09.01.2017
    Адрес
    Киев
    Сообщений
    206

    По умолчанию

    Как сделать запуск проекта без CodeSysa ?
    Для этого есть как я понимаю пакет Codesys control RTE? Но как ему указать файл с прогой?
    Или проект должен быть "с HMI" ?

  9. #1329

    По умолчанию

    ага. не получалось, потому что я делал не так как на 10:42 и 11:25. чего-то не ясно, почему кнопки внутри панели размножать нельзя, а панели по основному экрану - можно.
    Дома вечером попробую.
    Фактически, тут всё есть, чтобы мне сделать нужное.
    Кое что предстоит выяснить на будущее и для собственного любопытства.

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

    По умолчанию

    Цитата Сообщение от chm Посмотреть сообщение
    чего-то не ясно, почему кнопки внутри панели размножать нельзя, а панели
    Вот это уже недоработка на стороне CODESYS. Я не проверял в последних сервис-паках - возможно, уже исправили.

Страница 133 из 707 ПерваяПервая ... 3383123131132133134135143183233633 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3193
    Последнее сообщение: Вчера, 12:51
  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

Ваши права

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