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

Тема: Примеры HMI для СП270

  1. #1
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,817

    Lightbulb Примеры HMI для СП270 и СП3хх

    Может кто-либо желает поделится своими наработками по реализации элементов управления для СП270.
    Последний раз редактировалось petera; 22.06.2016 в 00:11.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  2. #2
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,817

    По умолчанию Выпадающие списки.

    Для затравки.
    Для экономии места на экране, предлагаю реализацию выпадающих списков. Подходит для тех случаев, когда нужно для какого-либо параметра выбирать одно значение из заранее заданных.
    Выпадающие списки:

    Выпадающие списки сделаны только стандартными средствами конфигуратора. Список может содержать не обязательно цифровые значения параметра, а например его название.

    ЗЫ. Во вложении обновленный вариант
    Вложения Вложения
    Последний раз редактировалось petera; 16.06.2014 в 23:53.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #3
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,817

    По умолчанию

    UPD. Немного исправил проект со списком. Т.к. в предыдущем варианте окна Меню1 и Меню2 ошибочно были с рамкой.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #4
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,817

    По умолчанию

    Видео инструкция по созданию выпадающего списка
    Видео:


    Для того, что бы список был красивым я использовал свое оформление кнопок для списка.
    Как сделать свое оформление для кнопок:

    Если все сделать по видео инструкции,то должно быть так
    :


    ЗЫ. Лишние "телодвижения" в первом видео после 7:25, связаны с тем, что забыл в начале исправить вариационный текст http://www.owen.ru/forum/showthread....l=1#post139860 иначе значения 38400 и 56000 не отображаются
    Последний раз редактировалось petera; 18.06.2014 в 00:20.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #5
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,817

    Cool Крестики-нолики

    Пример -не пример, а может просто баловство
    Интерфейс для игры двух игроков, один играет за "Х", второй - за "О".
    Крестики начинают первыми.
    Посмотреть:

    Захват-1.png

    Проект специально сделал без ГМ, используются только стандартные компоненты. Хотя с помощью ГМ можно было все упростить
    Игровое поле - девять индикаторов "пусто-О-Х" в виде динамического текста, для каждого индикатора свой регистр PSW256..PSW264. В этих регистрах хранится информация о клетках игрового поля в виде:
    0 -не занятая клетка, текст "пусто";
    2 -в клетке находится "О";
    8 -в клетке находится "Х".
    Для отображения "О" и "Х" использую шрифт "Marlett". Для этого шрифта символ "r" соответствует "Х", а символ "n" соответствует "О"
    Почему использую числа 2 и 8 объясню ниже.

    Поверх индикаторов расположены функциональные кнопки, невидимые, хотя можно их не скрывать. Каждая кнопка имеет бит разрешения PSB256..PSB264.
    Дополнительно используются два бита очередности хода игроков -PSB265 ход игрока "Х", PSB266 ход игрока "О", пришлось использовать два раздельных бита, т.к. ф.кнопки и ф.области не могут анализировать нулевое состояние управляющих битов, так же нельзя анализировать переход управляющего бита из "1" в "0".
    Индикатор очередности хода(счетчик ходов) и результата игры - динамический текст с регистром управления PSW269.
    Четыре регистра для анализа выигрышной комбинации для "Х" или "О":
    PSW265 -в одной из трех строк;
    PSW266 -в одном из трех столбцов;
    PSW267 -в первой диагонали;
    PSW267 -во второй диагонали.
    При запуске экрана или при нажатии кнопки "Сброс" все биты разрешения кнопок PSB256..PSB264 устанавливаются в "1", PSB265=1, PSB266=0(ход "Х"), клетки игрового поля очищаются (PSW256..PSW264=0), счетчик ходов PSW269=0.
    Теперь игрок "Х", может нажать любую из девяти кнопок, т.к. биты разрешения у кнопок в "1". В конце списка функций при нажатии любой кнопки(Pressing) стоят функции:
    -реверс бит очередности хода игроков (PSB265, PSB266), таким образом последующее нажатие другой кнопки будет обеспечивать ввод в другую клетку противоположного символа.
    -сброс бита разрешения для этой же кнопки, таким образом нажатая кнопка будет скрыта и повторное нажатие на нее будет не возможно.
    При отпускании кнопки(Releasing) происходит инкремент счетчика ходов, соответственно будет меняться надпись на индикаторе очередности ходов. При достижении счетчиком состояния 9, если не было выигрышных комбинаций, на индикаторе очередности хода будет надпись "Ничья" и так как все кнопки уже нажаты, то игра окончена и необходимо нажать кнопку "Сброс".
    Теперь вернемся к списку функций при нажатии любой кнопки(Pressing),
    Захват-1.png
    полу схематично список можно представить так
    1. PSW265=Сумма чисел в клетках в этой строки, за исключением текущей клетки;
    2. PSW266=Сумма чисел в клетках в этом столбце, за исключением текущей клетки;
    3. PSW267=Сумма чисел в клетках на диагонали, за исключением текущей клетки. Только для кнопок на диагоналях и центральной кнопки;
    4. PSW268=Сумма чисел в клетках на второй диагонали, за исключением текущей клетки. Только для центральной кнопки;
    5. Записать в текущую клетку "8", если ход у "Х";
    6. Записать в текущую клетку "2", если ход у "О";

    Примечание. Анализ "если ход у Х и если ход у О" осуществляется с помощью битов разрешения для каждой из функций. Доступ к этим битам -кнопка "Пароль". http://www.owen.ru/forum/showthread....l=1#post100969
    Функции 1, 2, 3 и 4 вычисляют выигрышные комбинации по строкам, столбцам и диагоналям игрового поля. Как это работает. Смотрим на функции 5 и 6. На предыдущих шагах эти функции могли записывать в клетки игрового поля или 2 или 8, или в клетках еще нет "О" и "Х" -значит будет число 0. И так, что мы можем получить в результате суммирования двух ячеек на текущих строке, столбце или диагонали?
    Если в обоих ячейках находились "О", то сумма=4, что соответствует установленному второму биту в результате суммирования.
    Если в обоих ячейках находились "Х", то сумма=16, что соответствует установленному четвертому биту в результате суммирования.
    Если в обоих ячейках нет одинаковых символов, то нет ни второго ни четвертого бита.
    Но если игрок в текущую клетку сейчас ставит "Х", то анализировать надо наличие четвертого бита в сумме чисел соседних клеток, а не второго. И наоборот, если игрок в текущую клетку сейчас ставит "О", то анализировать надо наличие второго бита в сумме чисел соседних клеток, а не четвертого.
    Для этого, в зависимости от, очередности хода выполняются оставшиеся функции при нажатии любой кнопки(Pressing):
    Сбросить бит PSW265.2, если ход у "Х";
    Сбросить бит PSW266.2, если ход у "Х";
    Сбросить бит PSW267.2, если ход у "Х";
    Сбросить бит PSW265.4, если ход у "О";
    Сбросить бит PSW265.4, если ход у "О";
    Сбросить бит PSW265.4, если ход у "О".
    Примечание см.выше.
    Осталось рассказать про фиксацию выигрышных комбинаций. Для этого используются четыре функциональные области для определения выигрыша "Х" и четыре функциональные области для определения выигрыша "О". В каждой из четырех ф.областей одни и те же функции, только запускаются они от разных бит. Это все по тому, что стандартными компонентами нельзя реализовать операцию ИЛИ.
    В группе функций для определения выигрыша "Х" каждая запускается от четвертого бита сумм ячеек по строкам, столбцам и диагоналям.
    Захват-1.png
    Что они делают. Записывают в счетчик очередности ходов "10", что соответствует надписи Выигрыш "Х", биты разрешения для всех кнопок сбрасываются, что исключает возможность нажимать кнопки после завершения игры.
    Аналогично и для группы функций для определения выигрыша "О", только надпись будет другая - Выигрыш "О".
    Вложения Вложения
    Последний раз редактировалось petera; 08.12.2016 в 13:18.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #6
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,817

    По умолчанию Меню в стиле Windows

    Тут один форумчанин захотел сделать меню в стиле Windows
    Однако мне кажется, что он слишком сложным путем пошел.
    Решил поучаствовать, может и мне пригодится. Предлагаю два варианта. Оба практически одинаковые, только в первом кнопка вызова меню вверху экрана
    :

    А во втором -в стиле кнопки "Пуск" Windows.
    :

    В таких меню можно использовать выпадающие списки.
    Для меню специально не использовал ГМ, все сделано с помощью стандартных компонентов.
    Описание проектов и методика создания таких меню сделаю позже.
    Вложения Вложения
    Последний раз редактировалось petera; 05.04.2015 в 05:36.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,817

    По умолчанию

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


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

    Оформление кнопок зависит от места, которое занимает кнопка в списке. Всего используется 10 типов оформления
    Захват-1.png
    Все кнопки прозрачные и имеют только контур и надпись.
    Кнопки, расположенные на против вызывающих кнопок меню предыдущего уровня, не имеют левой вертикальной линии. Это сделано для визуального выделения соответствия подменю пункту в меню предыдущего уровня. Т.к. ниспадающую структуру дерева каждого меню сделать не получится из-за ограничения вертикального размера экрана. По этому подменю последующих уровней придется размещать выше или ниже строки в текущем уровне.
    Каждое подменю вызывается стандартным "Вызовом окна". Вызовы окна размещаются на специальном невидимом окне по заранее известным координатам узловых точек, которые определяются по структуре дерева меню. Таким образом "Вызовы окон" не засоряют поле экранов и такое меню очень удобно редактировать -перемещать, добавлять или удалять требуемые "Вызовы окон" на служебном окне.
    Шаг узловых точек по горизонтали кратен ширине окон, а по вертикали -ширине строки меню.
    Захват-3.png
    Последнее меню в ветви может иметь ширину отличную от шага по горизонтали.
    В каждом столбце в одной ключевой точке может находится более одного "Вызова окна" для подменю этого уровня, по этому искать их нужно под другими "Вызовами окна"
    В качестве битов управления использую разряды трех регистров PSW, каждый регистр для своего уровня. Получилось меню с тремя уровнями.
    Регистры PSW использую потому, что так проще закрывать все открытые подменю, записал в регистр "0" и готово. Хотя можно было использовать биты PSB. Если правильно выбирать адрес для первого PSB в группе, то к такой группе можно обращаться как к одному регистру WORD или DWORD http://www.owen.ru/forum/showthread.php?t=15352
    Скрытое окно со структурой меню должно иметь высоту равную 234-высота кнопки вызова меню, ширина этого окна 480. Это окно вызывается в скрытом режиме функцией главной кнопки "Меню". Координаты вызова окна, если кнопка внизу экрана -{0,0}. Если кнопка будет вверху экрана, то координаты вызова окна ={0, высота кнопки}
    Главная кнопка вызова меню
    Функции в момент нажатия
    Захват-7.png
    функции в момент отпускания
    Захват-8.png
    результат выполнения будет зависеть от вспомогательного бита разрешения (кнопка "Пароль") http://www.owen.ru/forum/showthread....l=1#post100969. В результате при первом нажатие кнопки окна со структурой меню открываются, а при повторном нажатии закрываются.
    Последний раз редактировалось petera; 06.04.2015 в 14:50.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #8
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,817

    По умолчанию Снова о меню.

    Пример использования многоуровнего меню.


    Исходный проект без меню здесь http://www.owen.ru/forum/showthread....l=1#post187330

    Идеологию построения меню пришлось немного изменить, но об этом позже.
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #9
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,817

    По умолчанию График с автомасштабированием

    Озадачил меня таким графиком werg http://www.owen.ru/forum/showthread....l=1#post212794
    AutoScale сиречь автоматическое изменение масштаба графика, нужен мне для того, что бы на панельке с манюсеньким экранчиком
    наблюдать графическое отображение переменной с приличной точностью.
    Например величина переменной возрастает от 0 до 120 едениц а потом продолжает колебаться в пределах от 79 до 81.
    Вот и хотелось бы, что бы автоматически мин и макс оси Y был равен величина переменной +\- еденица например.
    И вот, что у меня получилось после реализации такого алгоритма решения http://www.owen.ru/forum/showthread....l=1#post212850
    Захват-1.png
    Видео:
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Похожие темы

  1. примеры для программирования
    от ALEX474747 в разделе Помощь Разработчикам
    Ответов: 238
    Последнее сообщение: 20.10.2023, 14:03
  2. СП270 примеры организации связи.
    от Адрей в разделе Панели оператора (HMI)
    Ответов: 30
    Последнее сообщение: 01.09.2014, 16:47
  3. HMI WagoID 1.1 (для Андроид) для Овен ПЛК
    от osv007 в разделе Панели оператора (HMI)
    Ответов: 2
    Последнее сообщение: 10.11.2012, 20:42
  4. примеры для программирования
    от РоманычЪ в разделе ПЛК1хх
    Ответов: 24
    Последнее сообщение: 26.09.2011, 09:27
  5. Примеры работы со СМИ1, ИП320, СП270
    от Kirill в разделе Панели оператора (HMI)
    Ответов: 16
    Последнее сообщение: 21.12.2010, 15:52

Ваши права

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