Программирование в Logo Soft Comfort: более сложная схема
Ну что? И сейчас продолжаем веселиться с Logo и Logo Soft Comfort. На этот раз поразбираемся с парой фишек, которые точно вам сгодятся: это таймеры, настройка параметров блоков и вывод текстовых сообщений на экран. Зная их, можно мутить уже более сложные проекты.
Вспоминаем, что там у нас было? У нас была простая программка из прошлой части, в которой мы поставили пять штук импульсных реле с центральным управлением, если говорить обычными словами, и вывели их на кнопки. И ещё сделали кнопку «Выключить всё».
Теперь хорошо бы поиздеваться над ней дальше. Там, где свет — там ещё и вентиляторы в санузлах, верно? Ну или хотя бы один вентилятор. Вот щас мы его сюда и добавим. А заодно разберём кусочек схемы из щита Мурманска и добавим крутые статусные тексты на экран Logo — мол «Вентилятор в работе ещё хх минут».
Содержание
- 1. Таймеры и их параметры. Добавляем вентилятор в схему!
- 2. Настройка параметров блоков из самого Logo.
- 3. Изменение размеров страницы схемы (чтобы влезла схема побольше).
- 4. Придурочный редактор соединений. Ктулхизм.
- 5. Более сложная схема (часть Мурманска). Центральное выключение света по комнатам.
- 6. Вывод сообщений на экран Logo для пользователя.
- 7. Доводим и наш пример с вентилятором до ума окончательно.
- 8. Заключение.
1. Таймеры и их параметры. Добавляем вентилятор в схему!
Давайте сделаем самое простое управление вентилятором (которое у меня в Москве и прижилось): вышел из ванной, нажал кнопку — вентилятор заработал на сколько-то минут. Поработал — и сам отключился. Это решение оказалось самым простым и надёжным. Я даже себе так и не дописал другую автоматику.
Заведём себе ещё один вход (кнопка управления вентилятором) и выход (на сам вентилятор). Пущай это будут I8 и Q12.
Добавим блок входа на схему. У нас там было задействовано 6 штук входов (по I6), поэтому среда нам автоматом предложит блок I7. Но нам-то нужен восьмой вход (I8)!
Вот сейчас я покажу то, как это дело поменять. Тыкаем два раза мышкой на блок — и нам открывается окно, где можно его настроить. Это окошко отличается для разных блоков (и там выводятся разные настройки). Для блока I тут можно выбрать номер входа, которым он будет. Ставим для нас восьмой.
Настройки параметров входа I в Logo Soft Comfort
Также сразу, чтобы не бегать в окошко «Simulation parameters», можем настроить то, как этот блок симулировать. У нас это тоже будет кнопка, конечно же.
Настройки параметров симуляции входа I в Logo Soft Comfort
И теперь про таймеры — реле времени. Наверное, чтобы не ходить вокруг да около, выпишу их особенности и отличия от реле ABB CL:
- Настраиваются таймеры так же, как и там: в окошке задаём параметры времени в разных вариантах: «часы:минуты», «минуты:секунды» или «секунды:сотые».
- Таймеры бывают с задержкой на включение (On-Delay), на выключение (Off-Delay), и той и другой (On-Off-Delay), генератор импульсов (Pulse generator), формирователь короткого импульса (Wipe relay), а также годовые или недельные.
- Большинство таймеров в Logo запускаются по входу Trg. Но если в реле ABB CL таймер сбрасывался, если Trg отключали, то тут таймер будет считать до победного конца. Скинуть его может только сигнал по входу «R». Причём если в те моменты, когда таймер считает, пинать его через Trg — то таймер начинает отсчёт сначала (но не выключается).
Это немного неудобно в реале: если мы нажали кнопку вентилятора, то он начнёт считать свои 20 минут. Если мы случайно ткнули кнопку, то он начнёт считать свои 20 минут снова, с этого же момента. В реле ABB CL он бы забил на эти нажатия и отработал бы один раз.
Пожалуй, это самое главное отличие, и для меня оно было неприятно. Если вам хочется иметь таймер, который работал так же, как в реле CL — то возьмите Wiping relay: он управляется одним импульсом и не сбивает отсчёт (гм, надо проверить это). - Так же, как и в других реле, параметры таймеров пользователь может редактировать через меню Logo. В реле ABB CL там выводились только обозначения таймеров как Tx, а тут выводится название блока на схеме (это я потом покажу в посте).
Мы сейчас для примера делаем самое простое реле. Используем таймер Off-Delay: задержка выключения. Кнопка нам его запускает в работу, и таймер считает свои 20 минут вентилятора. Когда он досчитает — он выключится.
Выбираем таймер в списке компонентов. Если нам нужна по нему справка — то можно навести на него мышку и дождаться, пока название блока не вылезет в виде квадратика. В этом квадратике есть значок вопроса, по которому открывается справка.
Добавляем реле Off Delay для управления вентилятором в Logo Soft Comfort
В справке пишут примерно так:
Справка по реле Off Delay в Logo Soft Comfort (мутная)
Краткий примерный перевод:
- Вход «Trg» при переходе значения с 1 к 0 (спад сигнала) запускает отсчёт времени;
- Вход «R» немедленно сбрасывает время в ноль и останавливает отсчёт, выключая выход. Он имеет приоритет над «Trg»: выключить таймер можно всегда, даже если «Trg» активирован.
- Выход «Q» включается в 1, когда по сигналу «Trg» идёт отсчёт времени.
Это нам и надо. Вешаем на Trg нашу кнопку, а на выход таймера — Q12 Logo, на котором будет вентилятор. Вот и вся схема готова!
Установили реле Off Delay для управления вентилятором
Готова? Неа! А время кто будет настраивать? Не Пушкин же! Два раза щёлкаем на блок и попадаем в окно его настроек. Блок я здесь переименовал в Vent Time. Зачем это надо — вы потом поймёте и сильно обрадуетесь этой фишке!
Настройка параметров реле времени в Logo Soft Comfort
Можно ввести нужное время (и выбрать, в чём оно меряется). Видна галочка «Retentivity», которая включает режим памяти времени: если питание Logo отключить и потом включить, то такой таймер будет всё равно продолжать считать с того места, на котором он остановился. Про галочку «Protection Active» расскажу позже. Совсем через немного времени.
После того, как мы настроили время, схемой можно пользоваться — она будет работать.
Но мы — это ж не мы, если не подумаем о пользователе? Вот он ткнул наш вентилятор. Работает он у него 20 минут. А если ему этого много, и он решил его выключить пораньше?
Не думайте, что этим надо занимать мозги. Иногда это делается на потоке. Например, чем-то от соседей завоняет, ты ткнул вентилятор, чтобы он вытянул воздух. Крутится он себе, ты про него и забыл (но 20 минут ещё не прошло). А потом мельком проходишь мимо санузлов и думаешь: «А, во, можно и отрубить его».
Давайте сделаем мою стандартную фишку: выключение чего-нибудь той же кнопкой, но с длинным нажатием. Возьмём ещё одно реле времени, но теперь с задержкой на включение (On-Delay) и поставим его параллельно кнопке управления. Выставим там время в 2 секунды, а его выход (если сигнал на входе держится больше 2 секунд, то выход включается) ткнём на вход «R» реле времени.
Вот какая схема получится:
Добавили реле On Delay для ручного выключения вентилятора
Погоняем её в симуляторе. Вот сейчас я ткнул I8 и у меня пошёл отсчёт времени (пока делал скриншот, насчиталось 27 секунд). Вентилятор включен:
Симулируем схему вентилятора: он работает себе
Теперь нажмём на кнопку ещё раз. Вход «Trg» блока «Vent Time» активировался, и он, гад, обнулил свой отсчёт. Но заодно активировался и вход «Trg» блока «Vent Off», и там пошёл отсчёт времени:
Симулируем схему вентилятора: ручное выключение считает себе
Если сейчас отпустить кнопку, то блок «Vent Off» не досчитает до 2 секунд и отключится. А вот если кнопочку подержать, то будет вот чего:
Симулируем схему вентилятора: ручное выключение сработало
Блок «Vent Off» досчитает до 2 секунд и выдаст сигнал на выходе. А этот сигнал пойдёт на вход «R» блока «Vent Time». И сбросит его в исходное состояние. Наш вентилятор выключится раньше его нормального времени работы. Задачка выполнена.
Даю подсказку, как сделать так, чтобы при кратковременных нажатиях на кнопку отсчёт не обнулялся, и время считалось до победного конца. Как сейчас стоит эта задача? «Чтобы если вентилятор работает, то отсчёт времени не обнулялся». Как я ругаю заказчиков: «…а теперь перепиши это более понятно». Перепишем: «Чтобы вход Trg работал (включался) только если вентилятор выключен».
О! А вот это уже решаемо: взять сигнал с выхода блока и объединить его с «И» и «НЕ». Тогда описание этого куска схемы должно выглядеть так: «ЕСЛИ (I1 = 1) И (Q12 НЕ = 1) ТОГДА Trg = 1″.
2. Настройка параметров блоков из самого Logo.
Ща мы и узнаем, нафига была нужна галочка «Protection Active» в настройках блока реле времени ;). И заодно нафига мы давали блокам реле времени понятные имена.
Как вы думаете? Охота ли вам останавливать программу (и тушить оборудование) и садиться за комп, чтобы поправить и залить новую программу в Logo только ради того, чтобы исправить время работы вентилятора с 20 минут на 25 минут?
КОНЕЧНО ЖЕ НЕТ! Не, если это будет какая-нить ушлая фирма, то она специально может так сделать, чтобы почаще наладчика вызывали. А наладчик будет гнуть пальцы: «Ууу… ну это надо всё оборудование останавливать, перепрограммировать! Это будет стоить денег, вы же понимаете?». А заказчик будет считать убытки, которые он из-за простоя оборудования понёс.
Чтобы такого не было, мы можем дать пользователю возможность самому крутить некоторые параметры программы! За нас всё уже придумано. Заходим в меню «Program» (если программа сейчас работает — то надо нажать кнопку Esc» на Logo):
Меню доступа к параметрам программы в Logo
И выбираем пункт «Set Parameter». В некотором случае нас могут попросить программу остановить, а в некотором всё работает и так.
Меню доступа к параметрам программы в Logo
И чего мы тут видим? А видим мы тут наши родные названия блоков из нашей схемы!! Именно поэтому вбить в схему их можно только латиницей (обычно Logo кириллицу не отображает)! Сразу всё понятно, если разработчик о нас позаботился и вбил понятные названия, конечно. Если названия блокам не дать, то они останутся стандартные (B008 или какие-нибудь B044).
Выбор параметра для настройки внутри Logo
Тыкаем на наш параметр «Vent Time» и можем его менять как хотим. Всё просто, и не надо исправлять программу ради одной фигульки.
Можно настроить время работы вентилятора напрямую из Logo
Важный момент! Однако, если снова залить программу в Logo, то все параметры вернутся на те значения, которые были указаны в программе. Для юзера это выглядит как «настройки сбросились на значения по умолчанию». Не забудьте про это!
Хорошо. Но тут пока что есть один косяк. Юзеру надо настраивать только время работы вентилятора. А вот время работы длинного нажатия на кнопку — не надо. Оно должно быть стандартным для всего проекта. Да и кнопок с таким длинным нажатием может быть десяток — зачем нам путать юзера огромным списком фигни?
Вот как раз для этого и есть галочка «Protection Active» в настройках блока. Если она стоит — то параметры блока пользователь менять уже не может.
Включаем защиту от изменения параметра в Logo Soft Comfort
Поставим её для блока «Vent Off». Выключенные от пользователя параметры помечаются значком «-» (минусом) около времени отсчёта. А включенные — «+» (плюсиком).
Теперь всё хорошо: для пользователя у нас есть только один параметр, который он и может крутить так, как ему захочется.
Теперь лишних параметров нет в списке Logo
Конечно же, мы можем отрубить изменение всех параметров и говорить что «…не, ну это денег стоит». Тут уже всё зависит не от Logo, а от совести и отношения к людям. Я делаю так, как показал: системные тайминги скрываю, а те, которые можно крутить (время работы, время задержки запуска генератора или таймаута переключения рубильника) — конечно же оставляю.
3. Изменение размеров страницы схемы (чтобы влезла схема побольше).
Идём дальше. Схемы-то растут, да? Чего делать, если не влезем на одну страницу? А вот чего: добавить себе страниц. Называется это в этой среде «Page Layout»:
Программирование в Logo Soft Comfort: изменяем число страниц в проекте
Выставим две страницы по вертикали. Теперь можно нарисовать большую схему (это, кстати, как раз схема моего любимого Мурманска).
Программирование в Logo Soft Comfort: схема на две страницы (Мурманск)
Печатается это так, как нарисовано. Границы страниц соблюдаются, и эта наша схема будет напечатана на двух листах А4. Так что с печатью тут всё отлично! Ура!
4. Придурочный редактор соединений. Ктулхизм.
И вот щас мы снова возвращаемся к тому, насколько местами среда Logo Soft Comfort ублюдочная. Вот вам кусочек схемы (мы его потом будем разбирать). А ну-ка угадайте, что здесь с чем соединяется? Для человека, который не знаком с Logo Soft Comfort и ни разу там ничего не чертил, это будет не схема, а абсурд и полная жесть с трешем.
Среда Logo Soft Comfort хреново рисует соединения
А если так? Понятнее, да? ;)
Среда Logo Soft Comfort хреново рисует соединения - то, что получилось
В общем, как вы уже поняли, среде похер как идут соединения. Она рисует их как попадётся. Поэтому схему в процессе рисования надо приводить в порядок и такие мутные соединения окучивать и растаскивать.
Делается это так: кликаем на одно из соединений (любое) и получаем вокруг него маркеры. Если тащить за синие — то вся палка линии тащится целиком. Если за красные — то тащится только один угол линии (и можно вытянуть из него ещё один угол, если надо).
Среда Logo Soft Comfort хреново рисует соединения - правим
А вот вам ещё один такой же образчик. Для среды всё нормально — ей-то понятно, что и куда идёт.
Среда Logo Soft Comfort хреново рисует соединения - ненаглядно
А теперь и нам понятно:
Среда Logo Soft Comfort хреново рисует соединения - добавили наглядности
Но порыдать, как вы поняли, всё равно есть над чем. Я бы даже смешные скриншоты на память делал бы.
И есть ещё одна штука, которая может сгодиться. Это обрезка соединений («Cut connections»). Она нужна, чтобы разорвать линию соединения на схеме. Сначала мы рисуем соединение туда, куда оно должно идти. А потом режем его на две части.
Вот тут у меня так порезаны сигналы центрального выключения на группы комнат:
Программирование в Logo Soft Comfort: разрезанные соединения
5. Более сложная схема (часть Мурманска). Центральное выключение света по комнатам.
А вот, раз такое дело пошло, то сейчас я покажу вам тот кусочек, который я расктулхивал, полностью. Это кусочек щита в Мурманск:
Программирование в Logo Soft Comfort: управление светом с выключением по помещениям
Что он делает? Он позволяет нам любой кнопкой в пределах комнаты выключить эту комнату целиком. Скажем, лежите вы в этой самой детской у кровати, у вас навключено разного света, и вы спать хотите. Вместо того, чтобы щёлкать отдельнымми кнопками, вы нажимаете любую и держите её пару секунд. И весь свет гаснет, но только в этой комнате.
Сделано это вот как: с каждой кнопки сигнал идёт на своё импульсное реле для управления светом. И этот же сигнал через логическое «ИЛИ» (блок B014) собирается в кучу и подаётся на реле времени задержки включения On-Delay так же, как это было для длинного нажатия на кнопку вентилятора в начале этого поста.
Если любая кнопка нажата коротко — то ничего не будет. А если длинно — то B028 сработает и выдаст нам сигнал на блок B034. Этот блок — тоже «ИЛИ». Он работает по любому сигналу: локального выключения (вся комната) или сигналу «ALL_Off» (вся квартира). Вот и вся технология. Блоки «ИЛИ» нам тут нужны для того, чтобы сигналы не смешивались и не влияли друг на друга.
6. Вывод сообщений на экран Logo для пользователя.
Ну что? Какой же это у нас крутой контроллер (и щит), который не может написать на экране что-то типа «Генератор не запустился, таймаут, ошибка» или «Подъёмник включен, едем вверх, текущий этаж: 5ый». А чего это он не может? МОЖЕТ! Причём сделано это ОЧЕНЬ КРУТО!!! В СТО РАЗ КРУЧЕ, ЧЕМ В РЕЛЕ ABB CL! Ща расскажу!
Нам нужен блок «Message texts». Вот он:
Блок вывода текстовых сообщений в Logo Soft Comfort
Этот блок ставится на схему так же, как и остальные. Если на его входе управления будет «1», то он отобразит на экране Logo некое сообщение. Какое и как оно настраивается — это мы сейчас изучим. А пока дорисуем парочку таких блоков в нашу схему:
Выводим сообщения в Logo: добавили два блока Message
Обратите внимание на такие фишки, которые могут вам сгодиться:
- Мы повесили оба блока на выход вентилятора. Мы хотим, чтобы когда вентилятор работает, нам писали про это. А когда он не работает — выводился статус ламп освещения (включен или нет каждый выход).
- Чтобы блоки работали попеременно, мы инвертировали вход у одного из блоков. Про это говорит нам точка около входа. Инверсия включается двойным щелчком мышки по контакту входа. И выключается также.
- Блоки сообщений обязательно требуют, чтобы их выход был куда-то подключен (их можно воткнуть в разрыв перед выходом Q, например). Если это не надо — возьмите блок «Open connector» («X») и подцепите его на выход. Я так у себя и сделал.
- Если вы хотите, то вы можете поменять цвет подсветки экрана Logo. Делается это при помощи маркеров, которые тут зовутся «Flag», но обозначаются буквой «M». Если поставить любой маркер и ткнуть его параметры, то там можно вычитать, что M25 = белый, M28 = оранжевый, M29 = красный.
- Само сообщение может требовать подтверждения пользователя (чтобы он дошёл до Logo и нажал «OK», мол: «Понял я, хорошо»). Такие сообщения называются «Acknowledge message» и нужны, если у нас требуется вмешательство пользователя. Ну, не знаю… например, «Закончилась суспензия в баке! Налейте её в бак и нажмите ОК» или «Ошибка открытия привода. Проверьте привод! Работа остановлена!».
А вот дальше — тыкаем два раза на блок сообщений и попадаем в… в рай! Дело в том, что в других реле (у ABB CL, например) сообщение — это единый общий текст, который можно или вывести на экране, или не вывести целиком. А вот у Logo текст сообщения может быть большим шаблоном, куда можно вписать разные параметры: состояния входов/выходов, текущие параметры разных блоков (например, остаток времени работы нашего вентилятора). Сообщения можно выводить только построчно (затрагивать одну строчку на экране, не меняя другие) или сразу единым экраном.
Вот как этот редактор выглядит:
Выводим сообщения в Logo: редактор блока сообщения
Слева вверху можно настроить приоритет сообщения и выбрать блоки, параметры которых мы будем отображать. Справа снизу есть сам редактор сообщений. Зелёная часть — это та часть экрана, которая будет видима сразу. Синяя — та, которую можно прокрутить кнопками. Лучше укладываться в зелёную часть.
В нашем примере мне случайно повезло, потому что групп света у меня оказалось пять штук. Когда я накидывал этот пример, я даже не думал про то, что покажу сообщения. Давайте накатаем сообщение, в котором будут выводиться сразу все статусы линий света. Вот такое:
Выводим сообщения в Logo: набиваем своё сообщение, как хотим
А теперь подставим туда параметры выходов. Я там выделил кнопочку «ON/OFF». Она как раз и позволяет вставить нужный параметр. Открывается окошко, в котором можно выбрать вход, выход, маркер (флаг) или состояние выхода какого-то внутреннего блока. А заодно можно написать свой текст для состояния «1» и «0».
Выводим сообщения в Logo: вставляем состояние любого сигнала
Вдумайтесь, как это круто!! Например, если у нас где-то внутри есть свой таймер отсчёта таймаута запуска генератора (выдали команду запустить генератор и ждём для примера минуту — если за минуту не стартанул — значит авария). Вот чтобы не выводить специально внутри программы-схемы это состояние на флаг, можно взять выход с этого таймера напрямую и написать для состояния «1» текст «запуск…», а для состояния «0» текст «ждёт запуска». И выставить это значение перед словом: «Генератор: «. Это ОЧЕНЬ КРУТО!
Только для того, чтобы можно было выводить кириллицу, в проекте надо поменять кодовую страницу сообщений. Я этого делать не стал и оставил для нашего примера обычные ON-OFF. Вот что у меня получилось в шаблоне:
Выводим сообщения в Logo: создали сообщение для статусов освещения
Теперь сделаем второе сообщение для вентилятора. Если можно вставить любой параметр любого блока — то давайте вставим время, которое осталось до выключения вентилятора. Выбираем наш блок «Vent Time» и справа берём его параметр «Remaining Time» (оставшееся время) и жмём кнопку «Insert Parameter»:
Выводим сообщения в Logo: создаём сообщение для вывода задержки вентилятора
А теперь давайте прогоним всё через симулятор. Если есть хоть один блок сообщений, то симулятор автоматически показывает нам окошко экрана Logo, на котором будет отображаться то, что мы написали:
Выводим сообщения в Logo: сообщение статуса света в работе
А вот фотка с реального Logo и его экрана:
Пример текстового сообщения на дисплее Logo (свет)
Теперь стартанём вентилятор. В этот момент предыдущее сообщение отключается и сразу же включается другое:
Выводим сообщения в Logo: сообщение статуса вентилятора в работе
Вот так оно выглядит на Logo вживую:
Пример текстового сообщения на дисплее Logo (вентилятор)
7. Доводим и наш пример с вентилятором до ума окончательно.
И теперь доведём нашу схемку управления вентилятором в ванной до логического конца (это типа домашнее задание о том, как сделать так, чтобы при кратком нажатии на кнопку отсчёт времени не обнулялся). Вот что получилось:
Программирование в Logo Soft Comfort: полный пример схемы управления вентилятором санузла
У нас тут добавился блок B008 — логическое «И». Так как это «И» — то оно никогда не сработает, если неиспользуемые входы не подключить к статусу «Hi» (единице): условие «И» никогда не сойдётся, ибо неподключенные входы всегда будут равны логическому нулю.
Что мы делаем? Мы берём выход после Q12 (напрямую с таймера «Vent Time» сделать это нельзя, иначе Logo зациклится — среда про это предупреждает; сделать можно только через маркер M или выход Q). Прям на входе «И» инвертируем его (там стоит точка) и соединяем с входом от кнопки I8.
Теперь если вентилятор выключен (Q12 = 0) на инвертированном входе блока «И» будет логическое 1. Если нажать кнопку — то сигналы совпадут по «И», и сигнал пройдёт на Trg. Наш блок «Vent Time» включится и включит нам Q12. Теперь на инвертированном входе блока «И» будет ноль — и сигнал от кнопки не будет проходить на Trg. Блин, это реально как мои родные микросхемы =) Те же приёмы из раннего детства! =)
8. Заключение.
Это будет самое краткое заключение из всего, что было. Камрады! Я… у меня так получилось, что Logo меня АДСКИ ВТАЩИЛ. И я разжевал и показал даже то, что совсем не хотел показывать — про сообщения и всякие куски из Мурманска.
Не просите меня выложить схемы или примеры к постам. Тут всё настолько расписано, что если вы захотите — то вы сделаете всё сами. Такой пример у меня есть: один суровый дяденька «из органов», который первый раз в жизни увидел этот Logo, в итоге настолько в нём разобрался (и это в прошлом году со мной за чаем, без этих постов), что выдал потом: «Это охеренская штука! Я буду её своим по работе советовать! И сам буду программировать под свою квартиру!».
А кто не хочет разбираться — тому тупое копирование примеров не поможет. Извините! =) Жжом дальше!
Проекту исполнилось 15 лет! Поддержать проект материально, проспонсировать проекты Автора или сделать ему подарок можно на этой странице: "Донаты и Спонсорство, Список Желаний".
Замечательный пост. Про инвертированные входы, так это прям открытие для меня- можно будет кое-где поубирать блоки «NOT», просто инвертировав вход следующего за ним блока. Хотя, возможно, явные блоки «NOT» иногда могут быть нагляднее.
О чем еще стоило упомянуть, так это о UDF (User Defined Functions). Если я все правильно понимаю, фишка эта новая, появилась только в LOGO! 8.FS4 и, соответственно, только в последнем обновлении LOGO!Soft Comfort (здесь поправьте меня, если я не прав- мой первый LOGO! приехал ко мне полторы недели назад, и с более ранними версиями я не работал).
А теперь пара замечаний к посту.
А вот нифига. Считается, что неподключенные входы сами по себе установлены в 1, и дополнительный блок Hi не нужен. Я сначала проверил это в симуляторе, а потом обнаружил, что это документированное поведение:
И про отключение длительным нажатием.
Я здесь вижу маленькую проблемку с юзабилити, и заключается она в том, что при любом нажатии какой-то из кнопок перво-наперво сработает соответствующее импульсное реле. И если включено два контура освещения, и я пытаюсь выключить весь свет длительным нажатием на кнопку от третьего контура, то сначала этот третий контур включится, а уже потом весь свет погаснет. Для себя я нарисовал вот такую UDF, которая делает почти тоже самое, но (1) отрабатывает короткое нажатие по отпусканию (а не по нажатию) кнопки и (2) игнорирует факт отпускания клавиши если длительное нажатие по таймеру уже отработало:
andy.pmb Йо! Вот, я рад что кому-то сгодилось =)
Я про NOT случайно узнал, когда мышкой два раза кликнул. А потом знакомую точку увидел.
Про неподключённок. Это из цифры привычка. Что всё, что не подключено, недо подтягивать ибо нехер. Так что я у себя буду подтягивать — пущай так будет лучше и техничнее.
А вот с длительным нажатием да — это палка о двух концах. Гораздо проще сделать реакцию на отпускание. Но для меня как пользователя — это ПИЗДЕЦ ХОДЯЧИЙ. Реакция на отпускание убивает обратную отдачу (связь) напрочь. Так что я для себя выбрал первый вариант, если это будет не критично для каких-то механизмов: пущай лучше свет включится, но сразу будет понятно, что ты НАЖАЛ кнопку.
Даже и не знаю что сказать. Одним словом — КРУТО.
Включать свет можно только по нажатию кнопки, иначе будет жутко неудобно.
Кому-то неудобно, а кому-то пофиг. Дело привычки и личных предпочтений.
Кроме того вот в случае тех же Theben-овских диммеров (а может и любых других диммеров с управлением кнопкой) чтобы просто включить свет (сразу на определенную яркость, а не начать с минимальной яркости и плавно ее увеличивать) кнопку тоже необходимо отпустить сразу после нажатия. И имея в доме/квартире некоторое количество диммируемых контуров освещения логично было бы сделать, чтобы кнопки управления всеми контурами освещения вели себя более-менее одинаково (консистентно) в плане реакции на нажатия и отпускания.
По крайней мере себе я пока именно так и собираюсь сделать. А если вдруг не понравится, переделаю. Благо для этого нужно будет всего-лишь перезалить программу в LOGO!
Предложу свой вариант на управление светом в 1 комнате, с выключением по длительному нажатию с любого выключателя. И опять же мой вариант лишен недостатка предложенной автором схемы — у меня при нажатии и удержании выключается свет одновременно всех ламп.
Ээээ… так у меня при длинном нажатии тоже свет всех ламп гасится.
Чего-то я не пойму только, как у тебя получается. За счёт инерсии у тебя триггер работает по «отпусканию» кнопки и поэтому нажатие пропускает. То есть для юзера обратная связь есть, так?
По сути схема Puhon-а ничем принципиально не отличается от моей UDF, приведенной несколькими постами выше. Также отрабатывает короткое нажатие при отпускании, и игнорирует отпускание после срабатывания длинного нажатия.
И принцип тот же- Edge-triggered NAND после on-delay relay. Отличия больше косметические. У меня стоит явный блок NOT, в отличие от инвертированного входа у Edge-triggered NAND у Puhon. И еще у меня на выходе дополнительный блое AND, чтоб исключить одновременное срабатывание выходов из моей UDF-ки (Toggle и Reset), а Puhon не заморачивался, воспользовавшись тем, что вход R у импульсного реле имеет приоритет над входом Trg.
Да, гасится, но… есть нюанс.
В схеме к статье логика такова, что если к примеру — горят все лампы, но при нажатии на любой выключатель и его удержании, происходит мгновенное (в момент нажатия) выключение лампы к которой привязан этот выключатель(если она в тот момент горела), а уже затем (при удержании) через заданное в настройках время удержания, выключаются все остальные лампы.
Так же, если надо погасить весь свет, но при этом нажать выключатель лампа которого в данный момент выключена, произойдет моментальное (в момент нажатия) включение лампы, привязанной к нажимаемому выключателю, а уже затем, при удерживании погаснет весь свет, включая и первоначально загоревшуюся лампу. Получается что произойдет как бы лишнее мигание-включение, а уже затем полное выключение всего.
Ну может мудрено написал.
Да это-то понятно. И хрен с ним — всё равно свет гасить.
Но зато реакция есть СРАЗУ. На нажатие кнопки, а не на отпускание. За реакцию на отпускание я буду УБИВАТЬ, потом с помощью одной знакомой ведьмы воскрешать, а потом запихивать этот кабель в в главны по самую жопу.
Достаточно позрачно изъясняюсь? Реакция ДОЛЖНА быть ПО НАЖАТИЮ КНОПКИ (ФРОНТУ ИМПУЛЬСА). И нехер НИЧЕГО МУТИТЬ. Остальные разговоры в эту сторону я буду пресекать даже до бана.
Накушался я таких блядь решений. Никто не помнит разные пропиориетарные программки ещё под Win3.11 с самописными тулбарами? Когда кнопка тулбара была отрисована в трёх состояниях (не нажато, нажато и disabled) и картинки эти просто BitBlt на экраны выводились.
Хотя какое поколение щас знает о WinAPI и BitBlt, чего это я… да…
Так вот некоторые дибилы писали этот УЖАС с реакцией по отпусканию кнопки. И это был пиздец! Полный пиздец, товарищи!
А если попадались аппаратные устройства только из-за того, что какие-то дибилы не умели нормально пины микроконтроллера расширить и вешали на пару кнопок функии пяти — это было вообще удавиться.
Так что — НАХУЙ всех ублюдков с такими задумками. Для аппаратных решений — только по нажатию. Не знаю, какова ваша магия, но лично я начинаю ощущать себя без пальцев. А я тактильщик, и мне моментальная реакция очень нужна.
На всякий случай: сейчас в Win реакция идёт по отпусканию кнопок, но там есть обратная сязь в виде реакции интерфейса. Когда ты НАЖАЛ мышку — НАЖАЛАСЬ кнопка. И обратная связь есть.
В ешении по щёлканью светом связь должна быть. И тоже визуальная: ткнул кнопку — свет отреагировал. НЕ КНОПКА — она у тебя находится на 900 мм от пола, и ты глазами на неё на смотришь, и не видишь её — а СВЕТ!
Вот таково моё жёсткое мнение и менять я его не буду. Кто не согласен — в данном случае милости прошу валить нахер отсюда лесом. Без исключений на этот раз. Натерпелся я от таких программистов, мля.
Про реакцию. Будем спорить.
ДА, согласен с тем, что ответная реакция должна быть ВСЕГДА и СРАЗУ!
НО!
Во первых — в моей схеме выключатель — кнопка, и ее нажал и отпустил, и даже если человек не знаком с тем, какого типа выключатели установлены в доме, то ни один человек который пользовался моей схемой не ощутил никаких неудобств, я даже поинтересовался у пользующихся про эти самые неудобства, никто и не понял о чем речь.
А вот в схеме CS косяк именно по юзабилити:
Ну допустим та самая комната в которой реализована схема автора — детская.
И в ней спит маленький ребенок, и включен какой то мягкий потолочный свет.
А ко всему этому в комнате имеется ну допустим яркая люстра/софит/прожектор, или какие другие яркие светильники, которые заливают свет ну очень ярким светом (позволю прям подробно так расписать для описания ситуации).
И вот, вы укладываете ребенка, а возле его кроватки есть все 4 выключателя на каждую группу, но вы тыкаете первый вам попавшийся, который отвечает за самый яркий источник света в комнате иииииии…….. — происходит моментальное включение этой самой яркой лампы/люстры/софита/прожектора, а затем через одну секунду бац, и полная темнота.
ДА — мы добились того что свет погас везде, и реакция моментальная (на нажатие) но мы разбудили ребенка резкой вспышкой.
Так что в данном случае НАХЕР такую логику.
Вы живете в доме и знаете как и что устроено, и знаете что у вас в качестве выключателей кнопки, и знаете что короткое нажатие включит-выключит конкретный светильник, а длинное нажатие любого — выключит все светильники. и при пользовании вы будете именно или кликать, или держать.
P.S. Кстати, ну так на всякий — свою схему я подсмотрел на примерах самой Сименс, кажется какое-то толи здание то ли большое помещение — которые наверное так же задавались вопросом моментальности реакции и правильностью логики.
И кстати, я Маковод. А в нем всегда в программах и интерфейсах была реакция на отпускание (с визуальным откликом)
И WIN слизал реакцию на отпускание с Mac.
Так что я как то даже и не задумался при реализации схемы над этим. Давно привык именно на такое взаимодействие.
Нет. Спорить не будем. Я высказался, и ты высказался. Предлагаю прямо сейчас остановиться. Пост — про программирование, и мне нужно, чтобы он был полезен другим не срачами.
Итого у нас есть два варианта. Пусть кадый выбирает тот, который он считает верным. Ты — свой, я — свой. На этом всё — мир, но без флуда.
Где скачать прогу я не нашел, покупать пока не очень вижу смысл, а кто знает в чем различие софтварной версии и покупной. Может для поиграться скачать софтварную пока???
shtazi Туплю. Не понял тебя. Прога сюда идёт одна. Loo Soft Comfort. Ищется она в торрентах. Нужна версии 8.1.
В проге ты можешь И нарисовать схему для Лого. И сразу же её проверить. То есть виртуальный лого — это и есть эта же самая программа.
И если тебе нужно будет уже железо — то ты покупаешь Logo.
Здравствуйте. В первую очередь хочу поблагодарить CS-CS за роскошный Триптих о логических реле Siemens LOGO! Тема использования таких устройств в системах доступной (недорогой) домашней автоматизации созрела уже давно.
Удивляет что продвижением этого (в России) занимается в основном Электрошаман вместе с другими продвинутыми энтузиастами, которые делятся с сообществом своим опытом и практическими решениями, в то время как некоторые отечественные производители программируемых реле очень мало внимания уделяют бытовому сектору, приводя в примерах использования своих устройств всякую недорогую автоматизацию свиноферм и прочих «институций», которых в стране в тысячи раз меньше, чем обычных частных домовладений и квартир…
А теперь конкретный практический вопрос, который может заинтересовать не только меня (извините, если пропустил эту тему в тексте Ваших статей, но перечитав их несколько раз и пересмотрев все видео внутри них, так и не нашел для себя ответа):
— А что произойдет с системой управления освещением, построенной на Siemens LOGO, когда в электропитании квартиры произойдет кратковременное пропадание напряжения питания?
Если, на примере Вашего «мурманского» электрощита на LOGO (https://cs-cs.net/sh-murmansk-light-logo#more-10501), в этот момент были включены все 10 или 20 осветительных групп… они сначала погаснут, а потом, когда питание вернется на Siemes LOGO…
Если бы система была построена на обычных импульсных реле (за исключением электронных HAGER), то все светильники вернулись бы к своему прежнему состоянию. А вот в случае с Siemens LOGO, наверное, необходимо как то дополнительно позаботиться о такой ситуации, сохраняя состояния всех выходов как переменные в энергонезависимой памяти LOGO с последующим автоматическим восстановлением их значений после автостарта Siemens LOGO. Это возможно?
А если возможно возвращать состояния выходов LOGO в пред-аварийное состояние после возвращения напряжения питания в электросети, то какой сценарий взаимодействия с такой системой можно придумать (это уже вопрос и к сообществу), если, уезжая из загородного дома вечером, у вас вдруг пропал «свет» на линии и вы не можете отключить его с помощью неработающего LOGO, а жена (например) не пойдет к электрощиту отключать какой то там групповой автомат, обесточивающий только линии освещения…
Привет! Ответ будет кратким — обсмеёшься. Включи Retain (тут оно Retentivity зовётся) =))
СПАСИБО! Действительно обсмеялся…
Но сначала «нашел» этот флажок Retentivity в свойствах своих релюшек и таймеров (Block Properties), установил и проверил в эмуляторе…
ВСЕ ЗАРАБОТАЛО как надо: после отключения питания (в эмуляторе) реле восстанавливало состояния именно тех выходов, которые были «защищены» (отмечены в свойствах) флажком Retentivity, причем для этого пришлось «защитить» и некоторые предшествующие таймеры, управляющие этими реле!
На всякий случай сделал пару скриншотов этих моментов, может кому пригодится для большей наглядности.
Но тогда возникает еще один параноидальный вопрос (скорее даже не к CS-CS): а насколько лет хватит ресурсов встроенной в реле LOGO!8 энергонезависимой памяти, если для реализации выбранного алгоритма работы придется обставить этими свойствами Retentivity большое количество блоков, работающих с высокой скоростью переключения…
Ага! Единственное, я у себя вчера тестил на живом лого — и то ли что-то упустил, то ли не понял — но на ивот вроде не заработало, хотя должно было. Потом ещё раз проверю: возможно я тестил после того, как новую программу туда залил. А там, когда новую пограмму заливаешь, всё обнуляется.
Про паранойю. Тут надо только докапываться до производителя. В теории, если нам, разработчикам, дали возможность ставить эти галки хоть на всё подряд — то Сименс должен был предусмотреть механизм того, чтобы это нормально сохранялось.
Например, писать данные только при пропадании питания. Это самый простой способ.
CS, Ваши посты «заставили» меня предпринять практические действия:
прямо сейчас еду покупать Siemens LOGO!8 с модулем расширения, чтобы сделать испытательный стенд. Поставщик (помимо хорошей цены) обещал дать ПО и документацию по программированию, придется как следует изучать мат.часть, в которой больше 300 страниц.
Доступная сейчас в интернете версия Руководства по программированию LOGO! 0BA8 от 06/2014 — A5E3309675. С удовольствием поделюсь с сообществом любой полезной информацией по приборам LOGO. Жаль что немцы после 2014 года как то притормозили перевод свежих версий ПО и документации на русский язык.
По части паранойи (ресурса энергонезависимой памяти внутри реле) я предположил, что если у Вас будет возможность при случае подергать Сименс на эту тему, то полученная информация будет полезна для всех.
Да я сам тупо написал видимо. Прогу Софт Комфорт я на торрентах не нашел, покупать ее я пока не хочу, но есть возможность скачать софтваре версию на сайте Сименса. Вот меня и интересует различие платной и бесплатной версии. Может кто-то в курсе???
Прога (версия 8) точно есть на рутрекере. И на нее без проблем накатывается обновление до 8.1 с сайта Сименса.
С демо-версией LOGO! Soft Comfort невозможно передавать или загружать программные схемы в/из LOGO. Эти функции возможны только при использовании полной версии программного обеспечения.
Программа, разработанная с помощью demosoftware, может быть доработана и впоследствии перенесена в Logo с полной версией!
Обновление от LOGO! Soft Comfort: V1.0 / V2.0 / V3.x / V4.0 / V5.0 / V6.x / V7.0 — V8.1.1 (SP1) с официального сайта Siemens:
https://www.automation.siemens.com/salesmaterial-as/software/logo/upgrade/Windows/VM/win64/setup.exe
Это обновление необходимо для работы с последними версиями реле FS:04 и FS:05
Русская версия Руководства по монтажу и программированию LOGO! 0BA8 от 06/2014 A5E3309675 доступна для скачивания (342 стр.):
https://www.siemens-pro.ru/docs/logo/LOGO!_V8_ru.pdf
Подробный обзор всех логических модулей LOGO! 0BA8, включая все дополнительные модули (42 стр.):
https://www.siemens-pro.ru/docs/logo/02_LOGO8_2015_ru.pdf
P.S. Последние две ссылки не являются рекламой дистрибьютора, они просто отсылают к более менее проверенным источникам, а не левым файлообменникам.
Наверное потому, что автоматизация бытового сектора, в нашем случае — жилых помещений, во-первых, не настолько востребована(Вы даже не представляете, скольким людям нужен обыкновенный электрический щит с автоматами и УЗО, без всяких «свистелок и перделок»), во-вторых, даже при необходимости автоматизации и управления бытовыми нагрузками человек вероятнее всего, выберет либо простую для понимания схему (допустим, на импульсных реле), либо кто попродвинутее — Ardiuno подобные устройства с гораздо большим функционалом.
pressmaster Так а нафиг это руководство нужно, если есть Logo Soft Comfort? Я ни разу лого с экрана, кроме как для этого поста, не программировал. И то разбираться не стал.
Так что ищем софт в торрентах и жжом.
CS, отправляя коллег к руководству по программированию LOGO!8, не в коем случае и не думал предлагать им такой некомфортный и заведомо ограниченный способ ручного программирования с кнопок самого реле у экрана!
Просто в этом документе https://www.siemens-pro.ru/docs/logo/LOGO!_V8_ru.pdf
систематизирована почти вся необходимая информация для тех, кому нужно быстрее и глубже войти в тему конструирования систем автоматизации на LOGO!8, потратив, конечно, сначала дополнительное время (если оно есть) на изучение мат.части. А подробнейшее описание базовых и специальных функций, представленных на страницах 115…238 помогут любому при программировании в LOGO! Soft Comfort 8.
Немного паранойи в топик ;) http://www.securitylab.ru/news/489607.php
Да, классно! Давно пора и тут дыры позакрывать.
Отсюда вопрос: а нафига постоянно Logo в сети держать? =)
А там вся фишка в том, что не нужно постоянно в сети, один раз достаточно.
Интересная статья
Касперский скоро еще немного разбогатеет на новой продуктовой линейке для ПЛК…
Но бытовому сектору можно не переживать: если эта не липа (а попахивает), то аппаратно-программные средства для дистанционного снятия информации таким способом непомерно дороги и актуальны для окучивания только ОЧЕНЬ серьезных компаний, а не для отслеживания и управления сливом воды в бачке частного домохозяйства :)))
P.S. В статье написано «Исследователи написали для ПЛК Siemens S7-1200 код, генерирующий частотно-модулированные радиосигналы в диапазоне AM, которые кодируют похищенные данные…»
Вообще то AM всегда указывал на тип модуляции — Амплитудная Модуляция, а не на частотный диапазон! Че то тут неувязочка в куче умных фраз…
Так блин вспоминайте Stuxnet же. Было всё, было! Всё новое — это хорошо забытое старое! =)
Но ЧМ и АМ — это да… аффтор отжог! =)
«Догадался»: автор статьи «Атака на ПЛК…» использовал короткое, жаргонное, общепринятое в быту (во времена СССР) обозначение «в диапазоне AM«, имея в виду диапазон средних или длинных волн, в котором использовалась Амплитудная Модуляция.
Даешь импортозамещение!
Все дружно переходим на ПЛК «ОВЕН» :)))
Посты про Logo! и меня впечатлили. Несмотря на то, что самого зверька у меня пока нет, скачал демоверсию программы и сейчас колдунствую над контроллером защиты от протечек.
Возник у меня вопрос: как с помощью клавиш Logo! управлять поведением программы? Не изменять параметры, а именно включать/выключать что-нибудь? В программе предусмотрен блок Softkey. Подозреваю, что именно он мне и нужен. Как его использовать? Из мануала вообще ничего про него не понятно.
Не охота ради редкоиспользуемых функций кнопки на ДИН-рейку лепить. Хочу сделать сброс состояния аварии и временное открытие вентилей на время поиска протечки.
Йо! Смотри. Softkey — это хреновина, которая может потом в параметрах программы использоваться как опция. Ну вида «Авто обнуление = On/Off» или «Перезапускать насос = On/Off».
А тебе нужна кнопочка «Cursor Key». Кажется, они жмутся как «Esc + кнопка». Лежит в группе Input!
Спасибо.
Cursor Key — хорошее решение, но в нем нет диалога с пользователем, неюзабильно как-то. Мне нужно что-то вроде менюшки и подтверждения на экране: «открыть кран? Да/Нет»
Попробую поэкспериментировать и скрестить его с Acknowledge в текстовом блоке.
А вот Softkey очень даже может подойти. Если поставить его в режим Pushbutton, то по нажатию можно запускать таймер, который на время приоткроет вентили для поиска протечки. И отдельный Softkey для подачи сигнала Reset на Latching relay для сброса состояния аварии.
Можно ли изменить Softkey без остановки программы, не выходя из состояния RUN? Я правильно понимаю, что Softkey появится в разделе Program\Set Parameter? Тогда зачем блоку Softkey свойство Protection active?
Сейчас вот сижу, и думаю, а как сделать юзабильный интерфейс? Например: меня нет дома, жена или дитёнок разольют воду из тазика, система перекроет краны, они вытрут лужу и… И что? Как снова открыть-то, если авария ложная и ремонтировать ничего не нужно? Автоматом открывать воду нельзя, ведь если будет реальная протечка и лужа высохнет, то контроллер откроет воду и сделает новую лужу. Дрессировать домашних на комбинацию Esc+C — тоже не вариант. Если совсем user-friendly — то только кнопки на Дин-рейку.
Вообщем, меня поперло :-)
Так тебе надо-то ЧЕГО? =) Если сообщения — то бери с Acknowlege, да.
Если просто сделать 4 кнопки, чтобы не ставить аппаратные — то Cursor Key.
А Softkey — ага, будет в параметрах. А скрыть его оттуда можно для того, чтобы сделать например саму программу для лого ВНУТРИ, в среде разработки, удобно настраиваемой для совсем непосвящённых пользователей.
Например, чтобы сказать «если эта фича не нужна совсем — сними вот тут галочку», а не «тогда отключи это соединение и подключи его в обход этого блока и вон той цепочки».
Вот схемка контроллера протечек. Покритикуйте, что еще допилить. Теперь жду окончания ремонта и последующей за этим покупки самого зверька. http://we.cs-cs.net/blog/502.html
Siemens выпустил веб-редактор для модулей Logo! Пресс-релиз лежит тут. Скачать можно здесь.
Из пресс-релиза:
Чего-то я ничего не понял, куда там тыкать и почему его скачивать надо, если он Web-редактор.
Скачивать нужно сам веб-редактор.
Сам я пока этой штукой не пользовался, просто отметил, что такое существует и может быть полезно для домашней автоматизации.
Вот! СПАСИБО! Теперь вкурил! То есть это редактор HMI для Logo.
А я-то думал, что они сделали веб-версию редактора схем для Logo =)
Подождём и в торрентах найдём потом =)
HMI для Logo! — это дисплеи TDE. Конфигурируются через SoftComfort. А веб-редактор это, скорее, недоСКАДА.
Зачем торрент. Я дал ссылку на страницу с загрузками для линейки Logo!. SoftComfort — только демо, а всё остальное (включая веб-редактор)полнофункциональное.
v8.2… Интересно, достаточно только LOGO!Soft Comfort нужной версии иметь, или сами модули тоже должны быть новее, чем 8.FS4?
С форума сименса:
Информация о новом Веб-редакторе форм для LOGO!8 с форума Siemens:
1. Прямая ссылка для закачки первой полнофункциональной версии редактора Web-форм LOGO Web Editor: logo-web-editor.zip
2. Прямая ссылка для закачки pdf-документа LOGO! Web Editor Online Help: Help_en-US_en-US.pdf
Рекомендую сразу переименовать скаченный файл в — LOGO_Web_Editor_Online_Help_A5E42880034-AA.pdf (чтобы потом не путаться при появлении новых версий)
3. Важное замечание: модули ЛОГО!8 серии 0BA8 с номерами 6ED1 052-xxx 00-0BA8 (и более ранние) не имеют прошивки для использования веб-редактора форм и эта функция не может быть добавлена с помощью обновления прошивки.
4. Созданный в LOGO Web Editor проект может быть загружен только в последнее поколение LOGO!8, которое начнет отгружаться в Россию в начале 2018 года.
5. Номера новых продуктов LOGO8!, совместимых с LOGO Web Editor:
6ED1052-1FB08-0BA0 — LOGO!230RCE, 8DI/4DO, 400 BLOCKS
6ED1052-1MD08-0BA0 — LOGO!12/24RCE, 8DI(4AI)/4DO, 400 BLOCKS
6ED1052-2FB08-0BA0 — LOGO!230RCEO, 8DI/4DO,400 BLOCKS
6ED1052-2MD08-0BA0 — LOGO!12/24RCEO, 8DI(4AI)/4DO,400 BLOCKS
6ED1052-1CC08-0BA0 — LOGO!24CE, 8DI(4AI)/4DO, 400 BLOCKS
6. Актуальные ссылки (март 2018 г.) на свежие версии документации по LOGO!8:
LOGO_8.2_Soft_Comfort_Online_Help_(11_2017): тут или тут.
LOGO_8_System_Manual_11-2017_A5E33039675-AE (This manual applies to LOGO! 8 6ED1052-xxx08-0BA0 device series): тут или тут.
LOGO_8_Системное_Руководство_RUS_06-2014_A5E3309675 (последняя официальная русская версия руководства по LOGO!8, после которой немцы перестали переводить на русский): тут.
LOGO_Руководство_RUS_(старая_версия)_A5E00067781-01 (полезный документ с примерами использования LOGO): тут.
А может вы еще знаете, совместимы ли с новой модификацией Logo! «старые» модули расширения DM 16 230R (6ED1055-1FB10-0BA2)?
К сожалению пока точно не знаю насчет совместимости «старых» модулей расширения с новой функцией в новых модулях 6ED1 052-xxx 08-0BA8. Могу только предположить, что этот функционал не имеет отношения к внутреннему межмодульному интерфейсу сопряжения и скорее всего «старые» модули расширения будут функционировать полноценно.
Возможно на форуме Сименс скоро появится такая информация.
Так, всё! Ура! Ссылки все отсортировал и поправил комменты! Теперь — СТОП.
Накинулись все, как саранча, на новое. Опять же НАДО подождать полгода-год, пока это всё появится, устаканится — и потом уже действовать.
Разве так прям надо скорее рвать жопу, чтобы Лого с айфона управлять? Перебьётся!
Спасибо за пост и за комментарии. Сначала тоже столкнулся с проблемой «паразитного» дерганья реле при длительном нажатии. Намутил такую схему что черт ногу сломит. С тремя таймерами на кнопку) но все равно получилось не очень удобно так как после нажатия до включения нагрузки пауза была 30 мс. После прочтения комментов применил схему со сработкой от размыкания кнопкой и доволен как слон!)
Камрады, подскажите а можно ли в принципе к «длительному нажатию» еще какие нибудь действия добавить? Например «двойной быстрый клик» кнопкой? Или это нереально для LOGO?
Так через логическое ИЛИ всё реально вроде ж…
Тут я не выпендриваюсь, а не всё знаю. Ну, то бишь взять от Ixx сигнал и распихать его на отдельные блоки: блок двойного нажатия, блок длинного нажатия, блок одинарного нажатия.
Lamerok затронул интересную тему «двойного клика»: это действие стало понятным и привычным огромному количеству людей благодаря всеобщей компьютеризации и еще больше смартфонизации, и поэтому реально хочется «эксплуатировать» его (двойной клик) и в системах домашней автоматизации. И тут дело не в типе и количестве используемых логических элементов и таймеров, а в грамотном сценарии задействования этих кликов и личных пристрастий потребителя в совокупности с его приборами освещения, вентиляции, агрегации и т.п.
Парадигма двойного клика в рамках компьютерного приложения обыгрывается четкими условностями графического интерфейса и поведением виртуальных объектов на экране. В системах автоматизации в действия приводятся окружающие объекты физического мира, причем в некоторых случаях скорость отклика должна быть как можно выше, чтобы человек не ощущал дискомфорта (задержки), например, при включении света.
Представьте себе, что первое прикосновение к клавише включает свет мгновенно, т.е. по «фронту» импульса от нажатия, а не, пускай даже с небольшой задержкой, после отпускания (что категорически не приемлет CS). Такой подход затрудняет реализацию «двойного клика», т.к. в этом случае не так просто придумать красивое (разумное) решение при котором каждое повторное нажатие с минимальной задержкой не просто выключит только что включенный свет, а осуществит другое адекватное действие, например, включит вторую группу светильников в люстре…
Поэтому мне кажется интересным обсуждать реально востребованные сценарии поведения систем автоматизации, управляемых с помощью обычных настенных клавиш для систематизации коллективного опыта и продвижения новых решений, о которых потребители сейчас просто и понятия не имеют.
В плане возможностей самого Лого, сделать двойной клик не сложно. А вот в плане юзабилити есть вопросы. Вот в том же Theben DIMAX есть функции, активируемые быстрым двойным нажатием, но при этом в целом реакция диммера на внешние сигналы далеко не мгновенная, к этому нужно привыкать.
pressmaster Я прочитал, задумался. Ты мне про сработку при отпускании сказал и про применимость.
Дык вот это ж можно рассортировать как раз на примере интерфейсов виндовых программ (ну и Qt тоже):
* Там кнопки срабатывают по отпусканию. Для чего это сделано? Чтобы если ты передумал нажимать кнопку — ты зажатую мышь с неё уводишь и в стороне отпускаешь клавишу — кнопка тогда не нажмётся.
В наших делах этому смысла нет — мышь нам уводить некуда — у нас физический чувак физической рукой нажимает физическую кнопку.
* Двойной клик в интерфейсах сделан для запуска какого-то действия. Но как раз-таки сделан таким образом, что он НЕ отменяет действия по одинарному клику. Даю примеры:
а) Одинарный клик — выбор файлов/папок, двойной — открывание. При двойном клике сначала будет одинарный клик, который файл ещё раз выберет, а потом двойной клик, который его откроет. Всё логично.
б) Панели инструментов (toolbar) — сами панели, не их кнопки. Зажатие мышки (одинарный клик, длинное нажатие) перемещает панель, двойной клик — отстыковывает её. Опять противоречий нету и действия не пересекаются.
Поэтому я бы выдумал такую закономерность: сажать на кнопку такие действия, которые могут выполняться последовательно и не перекрывать друг друга. Тогда и изобретать ничего на тему того, как обойти одинарный клик при двойном не надо!
Даю примеры:
а) Кнопка выключения всего света в квартире (при входе). Длинное нажатие (защита от случайных нажатий) = выключить весь свет. Двойное = Включить как было до выключения. Одинарное не используем.
б) Кнопка включения-выключения вентилятора. Одинарное нажатие — включить вентилятор на хх минут, двойное — включить на nn минут. Они не пересекаются, потому что то и то нажатие включает вентилятор, а у него у включенного уже корректируется время работы. Длинное = выключить.
Вот! Всё логично и культурно.
А обработать нажатия можно. Я даже может свой UDF попробую сделать как-нить, который как раз принимает на входе сигнал и выдаёт сигналы на одинарное, двойное, длинное нажатия.
И ещё! Если брать оконные системы, то там события от мыши идут примерно так:
* Click
* DblClick / Drag
То есть всё равно Click (одинарное нажатие) передаётся.
Дополню (и потом комменты склею). Сделал вот такой вот UDF. Правда ушло аж 4 таймера, но работает. На выходе имеем три сигнала: Single, Double, Long — клики.
Вопрос к автору — а зачем ты к неиспользованным входам логических блоков «И» и «ИЛИ» прикрепляешь сигналы логических О и 1?
А это у меня с раннего детства привычка такая. В крови уже. Все неиспользуемые входы надо куда-то подключать, чтобы на них правильные уровни были и наводок не было.
Ща все среды разработки и сами это делают, но так стильнее и понятнее.
Не знаю, может известный факт, но оказывается, нет необходимости искать софт на торрентах. На страничке с демо лежит пакет обновления: https://w3.siemens.com/mcms/programmable-logic-controller/en/logic-module-logo/demo-software/Pages/Default.aspx
Он хоть и предназначен для обновления старых версий до 8.2 и ругается, когда не находит старую версию, но при этом Next активна и дальше он ставит полноценную версию как обычно. Проверить не могу (железа пока нет) но в меню Transfer активны все пункты. С java6 он работать не захотел, пришлось обновить до 8.
sba То есть можно старую 8.1 им попробовать обновить? Надо попробовать будет! Я ща скачал, но пока пробовать не буду — мало ли чего!
Скоро буду строчить 4ую версию поста! =) Освоил UDF, дык сегодня накатал охрененно крутой UDF для управления светом с функциями Store и Restore! Теперь по длинному нажатию на кнопку центрального выключения света свет гасится. А по двойному вертается как был включен!
CS, я сначала с торрентов поставил V8, потом попытался обновить — он ругнулся, но продолжил и поставил рядом V8.2. Правда, это на маке. На винде только что проверил на чистой vm — говорит, что не нашел установленную V8.2 (?) вроде как собирается продолжить и вываливается. Win7x64. По идее, можно попробовать поставить V7 и обновить. В общем я на досуге покопаю эту тему и попробую найти простой способ установки.
Про такой udf я тоже задумался, как раз начал изучать logo. Надеюсь на выходных доберусь и как следует покопаюсь в симуляторе. Хочется придумать что-то мега универсальное и интеллектуальное :) А куда сохраняется состояние? Флаги?
Я там еще, кстати, в документации PID контроллер видел — вот его тоже хочется покопать, уж больно полезная штука.
Ага, на Маке. Я про них не в курсе. У меня WinXP 32, так что видать проще будет.
Я потом про UDF напишу пост. Состояние кого? Света? Я триггеры полюбил, так что в триггеры.
Дополню. О! 8.2 встала отлично! Без проблем и фигни. Перехожу на неё тогда! =)
Точно, триггеры. Я на них смотрел, но чуть в другом ключе и не подумал сразу, что их как хранилки можно использовать.
Видимо на win платформе инсталлеру все же нужна прошлая версия, что бы он мог обновить.
Так ты шо! Триггер же — это ж как раз самая минимальная хранилка информации всегда была (Latching Relay который). Во! Он у меня тут хранит статус, а через «И» ему приходит сигнал на запись статуса (включенного или выключенного).
Ага, я уже осознал, что со стандартным подходом к написанию программ, тут особо делать нечего :) Надо мыслить логическими элементами, а я все как к обычному cpu подойти пытаюсь :) Идею я понял, спасибо. Пойду мозговать..
Дык ну представь что триггер — это программный флаг, и всё =)
А если к CPU — то это нужна другая хреновина, не Logo =)
Не, логические элементы я прекрасно понмаю. Проблема с логикой мышления — в голове упорно строится алогритм на C :) Надо просто немного покопать примеры из документации и тогда в голове наступит порядок.
А logo я осознанно выбрал. Мог бы на каком-нибудь stm32 с rtos построить, но ты правильно где-то сказал, что решение должно быть обслуживаемым и ремонтопригодным (заменяемым). Так что logo идеальный вариант для задач управления светом и несложной автоматизации.
sba А я приучился так, что просто для разных задач будут разные языки. И вот как раз какой-то алогоритм вида «ЗАпустить генератор, если через 5 минут не стартанул — выдать аварию и запустить то-то» мне пока проще на Сях написать или Асме, а как на Logo — ещё не допёр.
CS, а на чем выполнять эти задачи на c/asm? Т.е. все равно в итоге заведется в щите платка с arduino/stm ?
Да это я касательно алгоритмов написал. Так если только взять ПЛК и на ST писать! =)
КСТАТИ! Ты слышал про хреновину? Мне DI HALT когда-то показывал: рисуешь релейную диаграмму, а она её в ASM для Atmega преобразовывает! =) Вот: http://cq.cx/ladder.pl
Ага, посмотрел. Прикольная штука. Надо еще такую же, только обратно — пишешь программу и на выходе диаграмма для logo :) Кстати, предполагаю внутри logo что-то подобное и реализовано. В смысле компилятор диаграммы в код.
А никак он не вводится. В свойствах элемента указывается — либо Local Variable, либо remote address. Для работы с локальными переменными никакой адрес не нужен.
Это связано с реализацией работы S7. Если можно, приведу цитату из мануала, а то не могу объяснить своими словами:
LOGO! Base Modle uses VM (Variable Memory) as a local S7 communication interface for data exchange by means of connections/data-transfer configuration.
You can use LOGO!Soft Comfort with the Ethernet connections menu command following instructions in the Tools -> Ethernet Connections (0BA7 and 0BA8 only)(Page100) section to construct the network topology.
LOGO!Soft Comofort performs data exchange process as follows:
-The server stores the required data into the VM area specified by the S7 connection and data transfer. This is defined as a «share» action in the following section.
-The client unit reads the server’s VM area and then updates the corresponding local VM area in its network process step.
-After the local update, the circuit program in the client can use the informationin the local VM originated from the Server
Т.е. у него стек S7 работает только через эти переменные. Но совершенно не возбраняется использовать эти переменные локально.
Я вот не могу сразу на вскидку сказать, где это будет прям незаменимо, но определенная польза в этом есть и где-то это может сильно выручить.
Скрин рисовалки вечером зацеплю, т.к. все дома. А ссылка все та же: https://w3.siemens.com/mcms/programmable-logic-controller/en/logic-module-logo/demo-software/pages/default.aspx
В самом низу Web editor. У него в комплекте идет пример управления водокачкой :) Нужен лого FS04 или выше (у меня 1.82.01) и microSD для файлов.
Кстати, пока не забыл. У них с этими версиями чехарда полная. Я когда свой подключил, он мне показал FS01. Я чуть не поседел :) Потом разобрался. FS04 — это 1.81.04. А следом идет уже FS01 — 1.82.01.
И еще момент — есть обновления прошивки FS04->FS05 и FS05->FS06. Там видимо какой-то баг был, что они по этому поводу даже прошивку выпустили, чего они обычно не делают.
Скрин редактора с демо проектом (свой пока не нарисовал).
Слева палитра инструментов — чего можно кинуть на страницу. Справа свойства выбранного Digital Value. Кнопки pushbutton нет — меняет статус on/off по нажатию. Ползунки можно двигать, уровни показывают значение.
Живая страница выглядит ровно так же, как и в редакторе (wysiwyg).
Кстати, я ранее несколько ошибся: встроенный web сервер с возможностью загрузки страниц возможен только на новых logo, которые 1.82.хх. На FS04 это работать не будет.
koh, не очень понятна логика, но я так понимаю это попытка подавить срабатывание выхода single при активации остальных выходов?
Я вот все размышляю по поводу двойного нажатия. Мы ведь его рассматриваем так же, как и на компе — альтернативное действие. В нашем случае — скорее всего включение дополнительной подсветки. А вот с выключением возникает проблема — на первом нажатии гаснет основной свет и только на втором — подсветка.
А может изменить логику? Включение: первое нажатие — основной, второе — подсветка (dbl). При выключении — первое нажатие гасит подсветку, а второе — основной. Т.е. в обратном порядке.
Не будет ли так удобней?
sba, это не попытка, а самое что ни на есть подавление срабатывания выхода single при активации остальных выходов. реализовано при помощи таймеров. все работает четко. ложных срабатываний нет. таймеры можете пробовать перенастраивать как вам удобно.
Да, немного не так выразился. Сейчас нет возможности собрать это в эмуляторе, поэтому вопрос — какая задежка на выходе single?
CS вообще против каких-либо задержек (обсуждение было выше), а мне 0.5сек уже ощутимо.
Хочется все-таки мгновенной реакции. А если учесть, что используется задний фронт входного сигнала, то к задержке добавится время отпускания кнопки. Т.е. по идее секунда легко выйдет.
делал на овене ПР, а не на Logo, но разница небольшая (думаю).
основа — обычный универсальный счетчик, листает себе по кругу 4 значения, на последнем 4 нажатии кнопки обнуляется и начинает заново. После него дешифратор на элементах «И», сравнивает с записанными константами и активирует один из 4 выходов, соответстующих номеру световой сцены. Дешифратор и счетчик оформлены макросом и могут вставляться в любой проект.
После макроса стоят RS триггеры, по одному на каждый источник света, каждый активируется и сбрасывается в зависимости от того какая световая схема на него заведена.
Дополнительно стоит общее выключение всех триггеров длинным нажатием через таймер с задержкой включения, также оно сбрасывает счетчик-дешифратор номера световой схемы.
Еще планировал но не сделал пока, сделать пересортировку световых сцен в зависимости от времени суток, например чтобы ночью не слепить глаза
Классный пост.
Для управления вентилятором в санузле можно использовать Multiple function switch. Только нужно выставить время «T» и «TL». При нажатии кнопки запустится с задержкой выключения, при повторном нажатии выключится.
Возник вопрос про управление все того же вентилятора, есть ли на примете или возможно где-то использовались приличные ( по внешнему виду как обычные выключатели света) кнопки управления, только влагозащищенные, чтобы можно было в ванной комнате поставить безопасно? Почувствовал что в влажность высокая кликнул кнопку, надоел шум вентилятора выключил его, вышел из ванной кликнул по кнопке два раза, вентилятор 10 минут отработал и выключился.
В ванных комнатах, внутри, ЗАПРЕЩЕНО ставить любые кнопки и выключатели.
Добрый день!
Во-первых спасибо большое автору за статьи о ЛОГО, благодаря им самостоятельно разобрался что к чему. Информации о нем в интернете очень мало.. А тут все разжевано. Респект!!!
Во-вторых, хотел обратиться за помощью. Рабочую схему работы ЛОГО для своей однокомнатной квартиры уже сделал, программку написал, в эмуляторе протестил. Даже уже пробовал заливать в ПЛК.
Единственна хотелка, это добавить функцию на выключатель на выходе, чтобы при длительно нажатии выключался весь свет во всей квартире. Помогите дописать.
Заранее благодарен.
Ну, так я же это тут и разжёвывал. Прям даже с фотками схем.
Ты ж Reset подаёшь вот локально на несколько Pulse Relay. А теперь этот же RESET через ИЛИ подавай на все блоки сразу.
Alex_MX, мне кажется вентилятор в ванной можно более интересно реализовать на лого… Например, привязать его к свету и длительности его включения и кнопкой включения вентилятора практически не придется пользоваться…
Добрый день!
Очень познавательный ресурс, спасибо.
Вопрос к гуру, ибо сам не он —
как в ЛОГО получить доступ к системному времени?
Как получить текущую дату, месяц, час….?
Задача банальная — нужно через N-ть дней, часов, минут
включить реле. Нужно вычислить разницу между
будущим и текущим моментом времени в минутах и запустить таймер.
MAXX Прям как в других языках проганья для всяких там DateDiff — не получить.
Я сам не знаю, но я бы замутил бы On-Delay на нужное время, или счётчик — скажем генератор импульсов в 24 часа — и счётчик дней, по сработке которого чего-то включается. По вкусу врубать Retain на эту конструкцию.
И ещё ты не сказал, откуда их отсчитывать. К примеру, можно начинать считать, когда питание на Logo подали. Там есть один из Flag’ов (M), который срабатывает когда Logo инициализируется. Вот по нему и стартовать отсчёт.
На данный момент я так и сделал. На дисплее набираешь кол-во часов и минут до момента Х. Далее перевожу в минуты и запускаю таймер ОнДелай. Но хочется по феншую, ввел дату и время момента Х, …
Но это ж думать надо — сколько часов и минут должно пройти.
Сейчас переделываю по второму варианту, на дисплее нужно будет ввести «в рукопашную» текущее дату и время, а так же дату и время момента Х.
Практически то к чему я и стремлюсь.
На Электронщике Logo за дорого продают. На Mege.ru гораздо интереснее цены.
MAXX, чтобы получить текущее время, нужно воспользоваться VM.
Набери в хэлпе Soft Cmfort’a VM и по первой ссылке почитай.
Цитирую хэлп:
PA3JlUBHOE, спасибо, но прочитав справку я пришел к выводу что данный механизм предназначен для доступа к регистрам извне(ethernet, modbus, и иже с ними).
Variable Memory Configuration предназначен для настройки видимости регистров извне.
Мне удалось получить доступ к часам из программы.
Если я ошибаюсь, подскажи как.
MAXX, да, ты прав: https://support.industry.siemens.com/tf/ww/en/posts/red-directily-and-use-in-program-rtc-hour-minute/111933/?page=0&pageSize=10
Вообще ощущение, что ПО для Лого писали даже не студенты, а школьники, просто рукалицо. Тот же усилитель с коэффициентом усиления +-10 — его почти всегда нехватает. Нет переноса связей, ущербный UDF, аналоговое значение на экране чуть ли не пол строчки занимает, даже если необходимо всего 1 разряд вывести, дешифратор нужен — стая компараторов в помощь и т.д.
Йоу! Всем, кто подписан на комментарии: вышла четвёртая часть поста про UDF и сетевой проект (через год, хихихи)!
Часть комментов, где мы тут про UDF и сетевые адреса обсуждали, переехала в тот пост!
Подскажите, а возможно ли сделать такой функционал
1. чтобы в одной комнате все линии освещения отключались по длинному нажатию любой кнопки в этой комнате. Пример со схемой выше от Alex_MX
2. с «мастер-кнопки» при однократном нажатии отключилось все освещение в квартире.
Не получается соединить выход мастер-кнопки, к уже подключенным Reset-ам Pulse Rele.
KO40 Такс! Камрад, не наглей! Вот прям в этом же посте это ДАЖЕ нарисовано на схемах. Почитай, разберись!
sba, привет, выше ты писал что есть торренты для мака, пытаюсь найти второй день. Везде под винду. Можешь подсказать плз где искать свежую версию?
zabolotiny, я уже не помню где я его находил. Судя по форумам, их софт не работает на свежих версиях Mac os: https://support.industry.siemens.com/tf/ww/en/posts/logo-software-for-mac-os-catalina-64-bit/222473?page=0&pageSize=10
Но при этом в соседней ветке пишут, что взяли инсталлер от win версии и поставили на мак: https://support.industry.siemens.com/tf//WW/en/posts/logo-8-3-software-upgrade-for-big-sur-os-x/252922?page=0&pageSize=10
Я помню, что находил где-то на торрентах старую версию (полную) и потом ставил апдейт с сайта сименс — все нормально обновлялось.
Как вариант, поставить win версию в Parallels — на рутрекере есть :)