Страница 24 из 228 ПерваяПервая ... 1422232425263474124 ... ПоследняяПоследняя
Показано с 231 по 240 из 2520

Тема: CODESYS V3.5. Визуализация

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Если не сложно, опишите, пожалуйста, еще раз, четко и пошагово, что вы ожидаете от визуализаций и фреймов?
    На данном этапе разработки программы нужно отследить какой экран открыт во фрейме. Т.е. во фрейме открыта визуализация управления ПЧВ
    Содержание визуализации:
    Пуск прямо, Пуск реверс, заданная частота, Напряжение , ток, слово состояние ПЧВ.
    при активности данного экрана включаем триггеры опросов тех переменных которые опрашиваются по триггерам.
    При не активности триггеры выключаем.
    может опустить пока фреймы, сделаю я визуализации по больше с одинаковым содержанием, что бы от фреймов отказаться.
    Это упростит задачу?

    Приблизительно так
    Последний раз редактировалось KAPITOSHKARU; 24.11.2015 в 11:10.

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

    По умолчанию

    Цитата Сообщение от KAPITOSHKARU Посмотреть сообщение
    На данном этапе разработки программы нужно отследить какой экран открыт во фрейме. Т.е. во фрейме открыта визуализация управления ПЧВ
    Содержание визуализации:
    Пуск прямо, Пуск реверс, заданная частота, Напряжение , ток, слово состояние ПЧВ.
    при активности данного экрана включаем триггеры опросов тех переменных которые опрашиваются по триггерам.
    При не активности триггеры выключаем.
    Приблизительно так
    И, повторимся, мы хотим независимого переключения фреймов для клиентов.

    Ну, а давайте попробуем так? Пример с тремя экранами в фрейме, независимое для клиентов переключение с помощью кнопок, определение активного экрана фрейма в программе.

    1. Пишем такой вот код:

    001.png

    Здесь 10 - это максимальное число клиентов. Программа проходится по всем, считывая индекс открытого в фрейме экрана, тем самым определяя его название (порядок экранов определяется в конфигурации фрейма). Потом в программе мы можем проходиться по STRING массиву, и если хотя бы одно его значение совпадает с именем нужного нам экрана, то делаем, что хотим.

    2. Экран визуализации будет выглядеть так:

    002.png

    3. К фрейму мы привязываем вот такую переменную:

    003.png

    4. А кнопки переключения будут выполнять такой код (остальные две, соответственно, будут присваивать 1 и 2):

    004.png

    5. Ну и к прямоугольнику привяжем уже понятно что:

    005.png

    Прикладываю архив для 3.5 SP7 Patch3. Скачать эту версию CODESYS можно здесь:
    http://cleverhouse.club/scope/bms/re...7-patch-3.html

    SP5 Patch5 у меня, к сожалению, нет.


    Вложения Вложения

  3. #3

    По умолчанию

    Очень вам благодарен.
    Буду применять.

  4. #4
    Пользователь
    Регистрация
    27.08.2015
    Адрес
    Екатеринбург
    Сообщений
    22

    По умолчанию

    Цитата Сообщение от KAPITOSHKARU Посмотреть сообщение
    при активности данного экрана включаем триггеры опросов тех переменных которые опрашиваются по триггерам.
    При не активности триггеры выключаем.
    Я это делаю без информации об активном экране/фрейме. Все обращения к регистрам слейва обёрнуты в функцию read_reg(). В этой функции формируется список переменных, которые нужно запросить у слейва (или у слейвов). В отдельной задаче, которая выполняет обмен со слейвами, данный списк используется по назначению.

    // Регистр шины MODBUS.
    TYPE mb_reg :
    STRUCT
    vis: WORD; // Значение для визуализации; новые значения
    // (те, которые вводит оператор) заносятся сюда же.
    save: WORD; // полученное от слейва значение
    END_STRUCT
    END_TYPE
    // Путём сравнения полей vis и save (в функции find_changed_val) будем определять
    // изменние значения в регистре MODBUS для последующей передачи его слейву.
    Список требуемых регистров слейва:
    VAR_GLOBAL CONSTANT
    ring_size: WORD := 100;
    END_VAR

    VAR_GLOBAL
    arr: ARRAY [0..ring_size-1] OF WORD;
    head_idx: WORD := 0;
    tail_idx: WORD := 0;
    END_VAR
    FUNCTION ring_isIn : BOOL
    VAR_INPUT
    val: WORD;
    END_VAR
    VAR
    test_idx: WORD;
    ret_val: BOOL;
    END_VAR

    test_idx := ring.head_idx;
    ret_val := FALSE;

    WHILE ( NOT ret_val AND (test_idx <> ring.tail_idx) ) DO
    IF ( ring.arr[test_idx] = val ) THEN
    ret_val := TRUE;
    ELSE
    // test_idx := next_idx( test_idx );
    IF ( test_idx = ring_size - 1 ) THEN //test_idx := next_idx( test_idx );
    test_idx := 0;
    ELSE
    test_idx := test_idx + 1;
    END_IF
    END_IF
    END_WHILE

    ring_isIn := ret_val;
    FUNCTION read_reg : word
    VAR_INPUT
    idx: WORD;
    END_VAR

    IF ( NOT ring_isIn(idx) ) THEN
    ring_put( idx );
    END_IF

    read_reg := mb.regs[idx].vis;
    При формировании телеграмм для слейва индексы регистров забираю из кольца во временный буфер и запрашиваю те регистры, индексы которых оказались в буфере. После опроса всех таких регистров цикл повторяю.

    В высоконагруженной системе это будет не лучшее решение, но у меня СПК используется только как панелька, поэтому такое решение меня устраивает.

    Илья

  5. #5

    По умолчанию

    После компиляции вот это
    1.jpg
    превращается в это
    2.jpg

    Уже и перерисовывал заново, и менял местами начало и конец, но вот так ))) Посмотрим, как на реальной СПК будет...

  6. #6

    По умолчанию

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

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

    По умолчанию

    Обновил документ до версии 1.0 (см. первый пост темы).

    Список изменений:

    1. Исправлены ошибки предыдущей версии.
    2. Добавлена глава 12: Визуализация на СПК: ограничения и рекомендации
    3. Добавлена глава 13: Список изменений в новых сервис-паках (SP) CODESYS
    4. Добавлен пример 11.4.1: CODESYS HMI
    5. Добавлен пример 11.4.2: Работа с динамическими точками (элемент Ломаная)
    6. Добавлен пример 11.4.3: Считывание координат курсора
    7. Добавлен пример 11.4.4: Многопользовательский доступ. Независимая обработка клиентов визуализации
    8. Добавлен пример 11.4.5: Подсчет количества клиентов web-визуализации

    Это релизная версия документа. Следующие будут появляться по мере накопления новых примеров (если будет возникать потребность в таковых) и расширению функционала CODESYS.

  8. #8
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,614

    По умолчанию

    7. Добавлен пример 11.4.4: Многопользовательский доступ. Независимая обработка клиентов визуализации
    И где он этот пример?

  9. #9

  10. #10

    По умолчанию

    Подскажите, пожалуйста, как присвоить значения из таблицы кнопкам Y и Z?
    Сколько строк может иметь таблица максимум?
    сколько ячеек можно сделать энергонезависимыми?
    Вложения Вложения

Страница 24 из 228 ПерваяПервая ... 1422232425263474124 ... ПоследняяПоследняя

Похожие темы

  1. Визуализация CoDeSys
    от Newcomer в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 24.04.2018, 15:26
  2. Визуализация в CoDeSys
    от Newcomer в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 10.05.2017, 21:11
  3. Визуализация CodeSys
    от DanJer в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 30.08.2012, 04:53
  4. Визуализация Codesys
    от Slipknot в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 31.10.2008, 11:36
  5. Визуализация в CoDeSys 2.3
    от Slawa в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 29.08.2008, 18:30

Ваши права

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