Логические реле SIEMENS Logo!, часть 3: Программирование в Logo Soft Comfort — таймеры и сообщения

Число просмотров: 1 808 

ВНИМАНИЕ! Мне не хотелось бы, чтобы этот пост был опубликован на других ресурсах (репост). Я хочу сохранить за собой право на его уникальность. Публикация поста возможна на определённых условиях.

Программирование в Logo Soft Comfort: более сложная схема

Ну что? И сейчас продолжаем веселиться с Logo и Logo Soft Comfort. На этот раз поразбираемся с парой фишек, которые точно вам сгодятся: это таймеры, настройка параметров блоков и вывод текстовых сообщений на экран. Зная их, можно мутить уже более сложные проекты.

Вспоминаем, что там у нас было? У нас была простая программка из прошлой части, в которой мы поставили пять штук импульсных реле с центральным управлением, если говорить обычными словами, и вывели их на кнопки. А так же сделали кнопку «Выключить всё».

Теперь хорошо бы поиздеваться над ней дальше. Там, где свет — там ещё и вентиляторы в санузлах, верно? Ну или хотя бы один вентилятор. Вот щас мы его сюда и добавим. А заодно разберём кусочек схемы из щита Мурманска и добавим крутые статусные тексты на экран Logo — мол «Вентилятор в работе ещё хх минут».

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″.

Ща мы и узнаем, нафига была нужна галочка «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 так же, как это было для длинного нажатия на кнопку вентилятора в начале этого поста.

Если любая кнопка нажата коротко — то ничего не будет. А если длинно — то B014 сработает и выдаст нам сигнал на блок B034. Этот блок — тоже «ИЛИ». Он работает по любому сигналу: локального выключения (вся комната) или сигналу «ALL_Off» (вся квартира). Вот и вся технология. Блоки «ИЛИ» нам тут нужны для того, чтобы сигналы не смешивались и не влияли друг на друга.

Ну что? Какой же это у нас крутой контроллер (и щит), который не может написать на экране что-то типа «Генератор не запустился, таймаут, ошибка» или «Подъёмник включен, едем вверх, текущий этаж: 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, в итоге настолько в нём разобрался (и это в прошлом году со мной за чаем, без этих постов), что выдал потом: «Это охеренская штука! Я буду её своим по работе советовать! И сам буду программировать под свою квартиру!».

А кто не хочет разбираться — тому тупое копирование примеров не поможет. Извините! =) Жжом дальше!

Если вас заинтересовала информация из этого поста и вы хотите со мной связаться (или заказать Сборку щита / Консультацию), то пишите мне на почту info@cs-cs.net или звоните на +7-926-286-97-35. Отзываюсь на имя "Электрошаман".
Невнимательных, тупых и наглых продаванов и менеджеров я буду жёстко стебать, если они не заглянут в инфу про контакты для организаций, а скорее кинутся звонить.

31 Отзывов на “Логические реле SIEMENS Logo!, часть 3: Программирование в Logo Soft Comfort — таймеры и сообщения”


  • 1 andy.pmb  [Харьков]

    Замечательный пост. Про инвертированные входы, так это прям открытие для меня- можно будет кое-где поубирать блоки «NOT», просто инвертировав вход следующего за ним блока. Хотя, возможно, явные блоки «NOT» иногда могут быть нагляднее.

    О чем еще стоило упомянуть, так это о UDF (User Defined Functions). Если я все правильно понимаю, фишка эта новая, появилась только в LOGO! 8.FS4 и, соответственно, только в последнем обновлении LOGO!Soft Comfort (здесь поправьте меня, если я не прав- мой первый LOGO! приехал ко мне полторы недели назад, и с более ранними версиями я не работал).

    А теперь пара замечаний к посту.

    Так как это «И» — то оно никогда не сработает, если неиспользуемые входы не подключить к статусу «Hi» (единице)

    А вот нифига. Считается, что неподключенные входы сами по себе установлены в 1, и дополнительный блок Hi не нужен. Я сначала проверил это в симуляторе, а потом обнаружил, что это документированное поведение:

    The output of an AND function is only 1 if all inputs are 1, that is, when they are closed. A block input that is not used (x) is assigned: x = 1.

    И про отключение длительным нажатием.

    Вместо того, чтобы щёлкать отдельнымми кнопками, вы нажимаете любую и держите её пару секунд. И весь свет гаснет, но только в этой комнате. … Если любая кнопка нажата коротко — то ничего не будет.

    Я здесь вижу маленькую проблемку с юзабилити, и заключается она в том, что при любом нажатии какой-то из кнопок перво-наперво сработает соответствующее импульсное реле. И если включено два контура освещения, и я пытаюсь выключить весь свет длительным нажатием на кнопку от третьего контура, то сначала этот третий контур включится, а уже потом весь свет погаснет. Для себя я нарисовал вот такую UDF, которая делает почти тоже самое, но (1) отрабатывает короткое нажатие по отпусканию (а не по нажатию) кнопки и (2) игнорирует факт отпускания клавиши если длительное нажатие по таймеру уже отработало:

  • 2 CS  [Москва]

    andy.pmb Йо! Вот, я рад что кому-то сгодилось =)
    Я про NOT случайно узнал, когда мышкой два раза кликнул. А потом знакомую точку увидел.

    Про неподключённок. Это из цифры привычка. Что всё, что не подключено, недо подтягивать ибо нехер. Так что я у себя буду подтягивать — пущай так будет лучше и техничнее.

    А вот с длительным нажатием да — это палка о двух концах. Гораздо проще сделать реакцию на отпускание. Но для меня как пользователя — это ПИЗДЕЦ ХОДЯЧИЙ. Реакция на отпускание убивает обратную отдачу (связь) напрочь. Так что я для себя выбрал первый вариант, если это будет не критично для каких-то механизмов: пущай лучше свет включится, но сразу будет понятно, что ты НАЖАЛ кнопку.

  • 3 migor  [Санкт-Петербург]

    Даже и не знаю что сказать. Одним словом — КРУТО.

  • 4 ksiman  [Нижний Новгород]

    Включать свет можно только по нажатию кнопки, иначе будет жутко неудобно.

  • 5 andy.pmb  [Харьков]

    Кому-то неудобно, а кому-то пофиг. Дело привычки и личных предпочтений.

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

    По крайней мере себе я пока именно так и собираюсь сделать. А если вдруг не понравится, переделаю. Благо для этого нужно будет всего-лишь перезалить программу в LOGO!

  • 6 Puhon

    Предложу свой вариант на управление светом в 1 комнате, с выключением по длительному нажатию с любого выключателя. И опять же мой вариант лишен недостатка предложенной автором схемы — у меня при нажатии и удержании выключается свет одновременно всех ламп.

  • 7 CS  [Москва]

    Ээээ… так у меня при длинном нажатии тоже свет всех ламп гасится.
    Чего-то я не пойму только, как у тебя получается. За счёт инерсии у тебя триггер работает по «отпусканию» кнопки и поэтому нажатие пропускает. То есть для юзера обратная связь есть, так?

  • 8 andy.pmb  [Харьков]

    По сути схема Puhon-а ничем принципиально не отличается от моей UDF, приведенной несколькими постами выше. Также отрабатывает короткое нажатие при отпускании, и игнорирует отпускание после срабатывания длинного нажатия.

    И принцип тот же- Edge-triggered NAND после on-delay relay. Отличия больше косметические. У меня стоит явный блок NOT, в отличие от инвертированного входа у Edge-triggered NAND у Puhon. И еще у меня на выходе дополнительный блое AND, чтоб исключить одновременное срабатывание выходов из моей UDF-ки (Toggle и Reset), а Puhon не заморачивался, воспользовавшись тем, что вход R у импульсного реле имеет приоритет над входом Trg.

  • 9 Puhon

    Ээээ… так у меня при длинном нажатии тоже свет всех ламп гасится.

    Да, гасится, но… есть нюанс.
    В схеме к статье логика такова, что если к примеру — горят все лампы, но при нажатии на любой выключатель и его удержании, происходит мгновенное (в момент нажатия) выключение лампы к которой привязан этот выключатель(если она в тот момент горела), а уже затем (при удержании) через заданное в настройках время удержания, выключаются все остальные лампы.
    Так же, если надо погасить весь свет, но при этом нажать выключатель лампа которого в данный момент выключена, произойдет моментальное (в момент нажатия) включение лампы, привязанной к нажимаемому выключателю, а уже затем, при удерживании погаснет весь свет, включая и первоначально загоревшуюся лампу. Получается что произойдет как бы лишнее мигание-включение, а уже затем полное выключение всего.
    Ну может мудрено написал.

  • 10 CS  [Москва]

    Да это-то понятно. И хрен с ним — всё равно свет гасить.
    Но зато реакция есть СРАЗУ. На нажатие кнопки, а не на отпускание. За реакцию на отпускание я буду УБИВАТЬ, потом с помощью одной знакомой ведьмы воскрешать, а потом запихивать этот кабель в в главны по самую жопу.
    Достаточно позрачно изъясняюсь? Реакция ДОЛЖНА быть ПО НАЖАТИЮ КНОПКИ (ФРОНТУ ИМПУЛЬСА). И нехер НИЧЕГО МУТИТЬ. Остальные разговоры в эту сторону я буду пресекать даже до бана.
    Накушался я таких блядь решений. Никто не помнит разные пропиориетарные программки ещё под Win3.11 с самописными тулбарами? Когда кнопка тулбара была отрисована в трёх состояниях (не нажато, нажато и disabled) и картинки эти просто BitBlt на экраны выводились.
    Хотя какое поколение щас знает о WinAPI и BitBlt, чего это я… да…
    Так вот некоторые дибилы писали этот УЖАС с реакцией по отпусканию кнопки. И это был пиздец! Полный пиздец, товарищи!

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

    Так что — НАХУЙ всех ублюдков с такими задумками. Для аппаратных решений — только по нажатию. Не знаю, какова ваша магия, но лично я начинаю ощущать себя без пальцев. А я тактильщик, и мне моментальная реакция очень нужна.

    На всякий случай: сейчас в Win реакция идёт по отпусканию кнопок, но там есть обратная сязь в виде реакции интерфейса. Когда ты НАЖАЛ мышку — НАЖАЛАСЬ кнопка. И обратная связь есть.
    В ешении по щёлканью светом связь должна быть. И тоже визуальная: ткнул кнопку — свет отреагировал. НЕ КНОПКА — она у тебя находится на 900 мм от пола, и ты глазами на неё на смотришь, и не видишь её — а СВЕТ!

    Вот таково моё жёсткое мнение и менять я его не буду. Кто не согласен — в данном случае милости прошу валить нахер отсюда лесом. Без исключений на этот раз. Натерпелся я от таких программистов, мля.

  • 11 Puhon

    Про реакцию. Будем спорить.

    ДА, согласен с тем, что ответная реакция должна быть ВСЕГДА и СРАЗУ!
    НО!

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

    А вот в схеме CS косяк именно по юзабилити:

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

    И вот, вы укладываете ребенка, а возле его кроватки есть все 4 выключателя на каждую группу, но вы тыкаете первый вам попавшийся, который отвечает за самый яркий источник света в комнате иииииии…….. — происходит моментальное включение этой самой яркой лампы/люстры/софита/прожектора, а затем через одну секунду бац, и полная темнота.
    ДА — мы добились того что свет погас везде, и реакция моментальная (на нажатие) но мы разбудили ребенка резкой вспышкой.

    Так что в данном случае НАХЕР такую логику.

    Вы живете в доме и знаете как и что устроено, и знаете что у вас в качестве выключателей кнопки, и знаете что короткое нажатие включит-выключит конкретный светильник, а длинное нажатие любого — выключит все светильники. и при пользовании вы будете именно или кликать, или держать.

    P.S. Кстати, ну так на всякий — свою схему я подсмотрел на примерах самой Сименс, кажется какое-то толи здание то ли большое помещение — которые наверное так же задавались вопросом моментальности реакции и правильностью логики.

    На всякий случай: сейчас в Win реакция идёт по отпусканию кнопок, но там есть обратная сязь в виде реакции интерфейса. Когда ты НАЖАЛ мышку — НАЖАЛАСЬ кнопка. И обратная связь есть.

    И кстати, я Маковод. А в нем всегда в программах и интерфейсах была реакция на отпускание (с визуальным откликом)

    И WIN слизал реакцию на отпускание с Mac.

    Так что я как то даже и не задумался при реализации схемы над этим. Давно привык именно на такое взаимодействие.

  • 12 CS  [Москва]

    Нет. Спорить не будем. Я высказался, и ты высказался. Предлагаю прямо сейчас остановиться. Пост — про программирование, и мне нужно, чтобы он был полезен другим не срачами.
    Итого у нас есть два варианта. Пусть кадый выбирает тот, который он считает верным. Ты — свой, я — свой. На этом всё — мир, но без флуда.

  • 13 shtazi

    Где скачать прогу я не нашел, покупать пока не очень вижу смысл, а кто знает в чем различие софтварной версии и покупной. Может для поиграться скачать софтварную пока???

  • 14 CS  [Москва]

    shtazi Туплю. Не понял тебя. Прога сюда идёт одна. Loo Soft Comfort. Ищется она в торрентах. Нужна версии 8.1.
    В проге ты можешь И нарисовать схему для Лого. И сразу же её проверить. То есть виртуальный лого — это и есть эта же самая программа.

    И если тебе нужно будет уже железо — то ты покупаешь Logo.

  • 15 pressmaster  [Москва]

    Здравствуйте. В первую очередь хочу поблагодарить CS-CS за роскошный Триптих о логических реле Siemens LOGO! Тема использования таких устройств в системах доступной (недорогой) домашней автоматизации созрела уже давно.

    Удивляет что продвижением этого (в России) занимается в основном Электрошаман вместе с другими продвинутыми энтузиастами, которые делятся с сообществом своим опытом и практическими решениями, в то время как некоторые отечественные производители программируемых реле очень мало внимания уделяют бытовому сектору, приводя в примерах использования своих устройств всякую недорогую автоматизацию свиноферм и прочих «институций», которых в стране в тысячи раз меньше, чем обычных частных домовладений и квартир…

    А теперь конкретный практический вопрос, который может заинтересовать не только меня (извините, если пропустил эту тему в тексте Ваших статей, но перечитав их несколько раз и пересмотрев все видео внутри них, так и не нашел для себя ответа):

    — А что произойдет с системой управления освещением, построенной на Siemens LOGO, когда в электропитании квартиры произойдет кратковременное пропадание напряжения питания?

    Если, на примере Вашего «мурманского» электрощита на LOGO (http://cs-cs.net/sh-murmansk-light-logo#more-10501), в этот момент были включены все 10 или 20 осветительных групп… они сначала погаснут, а потом, когда питание вернется на Siemes LOGO…

    Если бы система была построена на обычных импульсных реле (за исключением электронных HAGER), то все светильники вернулись бы к своему прежнему состоянию. А вот в случае с Siemens LOGO, наверное, необходимо как то дополнительно позаботиться о такой ситуации, сохраняя состояния всех выходов как переменные в энергонезависимой памяти LOGO с последующим автоматическим восстановлением их значений после автостарта Siemens LOGO. Это возможно?

    А если возможно возвращать состояния выходов LOGO в пред-аварийное состояние после возвращения напряжения питания в электросети, то какой сценарий взаимодействия с такой системой можно придумать (это уже вопрос и к сообществу), если, уезжая из загородного дома вечером, у вас вдруг пропал «свет» на линии и вы не можете отключить его с помощью неработающего LOGO, а жена (например) не пойдет к электрощиту отключать какой то там групповой автомат, обесточивающий только линии освещения…

  • 16 CS  [Москва]

    Привет! Ответ будет кратким — обсмеёшься. Включи Retain (тут оно Retentivity зовётся) =))

  • 17 pressmaster  [Москва]

    СПАСИБО! Действительно обсмеялся…
    Но сначала «нашел» этот флажок Retentivity в свойствах своих релюшек и таймеров (Block Properties), установил и проверил в эмуляторе…

    ВСЕ ЗАРАБОТАЛО как надо: после отключения питания (в эмуляторе) реле восстанавливало состояния именно тех выходов, которые были «защищены» (отмечены в свойствах) флажком Retentivity, причем для этого пришлось «защитить» и некоторые предшествующие таймеры, управляющие этими реле!

    На всякий случай сделал пару скриншотов этих моментов, может кому пригодится для большей наглядности.

    Но тогда возникает еще один параноидальный вопрос (скорее даже не к CS-CS): а насколько лет хватит ресурсов встроенной в реле LOGO!8 энергонезависимой памяти, если для реализации выбранного алгоритма работы придется обставить этими свойствами Retentivity большое количество блоков, работающих с высокой скоростью переключения…

  • 18 CS  [Москва]

    Ага! Единственное, я у себя вчера тестил на живом лого — и то ли что-то упустил, то ли не понял — но на ивот вроде не заработало, хотя должно было. Потом ещё раз проверю: возможно я тестил после того, как новую программу туда залил. А там, когда новую пограмму заливаешь, всё обнуляется.

    Про паранойю. Тут надо только докапываться до производителя. В теории, если нам, разработчикам, дали возможность ставить эти галки хоть на всё подряд — то Сименс должен был предусмотреть механизм того, чтобы это нормально сохранялось.
    Например, писать данные только при пропадании питания. Это самый простой способ.

  • 19 pressmaster  [Москва]

    CS, Ваши посты «заставили» меня предпринять практические действия:
    прямо сейчас еду покупать Siemens LOGO!8 с модулем расширения, чтобы сделать испытательный стенд. Поставщик (помимо хорошей цены) обещал дать ПО и документацию по программированию, придется как следует изучать мат.часть, в которой больше 300 страниц.
    Доступная сейчас в интернете версия Руководства по программированию LOGO! 0BA8 от 06/2014 — A5E3309675. С удовольствием поделюсь с сообществом любой полезной информацией по приборам LOGO. Жаль что немцы после 2014 года как то притормозили перевод свежих версий ПО и документации на русский язык.

    По части паранойи (ресурса энергонезависимой памяти внутри реле) я предположил, что если у Вас будет возможность при случае подергать Сименс на эту тему, то полученная информация будет полезна для всех.

  • 20 shtazi

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

  • 21 andy.pmb  [Харьков]

    Прога (версия 8) точно есть на рутрекере. И на нее без проблем накатывается обновление до 8.1 с сайта Сименса.

  • 22 pressmaster  [Москва]

    С демо-версией 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. Последние две ссылки не являются рекламой дистрибьютора, они просто отсылают к более менее проверенным источникам, а не левым файлообменникам.

  • 23 Gudbrudsson  [Санкт-Петербург]

    Удивляет что продвижением этого (в России) занимается в основном Электрошаман вместе с другими продвинутыми энтузиастами, которые делятся с сообществом своим опытом и практическими решениями, в то время как некоторые отечественные производители программируемых реле очень мало внимания уделяют бытовому сектору, приводя в примерах использования своих устройств всякую недорогую автоматизацию свиноферм и прочих «институций», которых в стране в тысячи раз меньше, чем обычных частных домовладений и квартир…

    Наверное потому, что автоматизация бытового сектора, в нашем случае — жилых помещений, во-первых, не настолько востребована(Вы даже не представляете, скольким людям нужен обыкновенный электрический щит с автоматами и УЗО, без всяких «свистелок и перделок»), во-вторых, даже при необходимости автоматизации и управления бытовыми нагрузками человек вероятнее всего, выберет либо простую для понимания схему (допустим, на импульсных реле), либо кто попродвинутее — Ardiuno подобные устройства с гораздо большим функционалом.

  • 24 CS  [Москва]

    pressmaster Так а нафиг это руководство нужно, если есть Logo Soft Comfort? Я ни разу лого с экрана, кроме как для этого поста, не программировал. И то разбираться не стал.

    Так что ищем софт в торрентах и жжом.

  • 25 pressmaster  [Москва]

    CS, отправляя коллег к руководству по программированию LOGO!8, не в коем случае и не думал предлагать им такой некомфортный и заведомо ограниченный способ ручного программирования с кнопок самого реле у экрана!

    Просто в этом документе https://www.siemens-pro.ru/docs/logo/LOGO!_V8_ru.pdf
    систематизирована почти вся необходимая информация для тех, кому нужно быстрее и глубже войти в тему конструирования систем автоматизации на LOGO!8, потратив, конечно, сначала дополнительное время (если оно есть) на изучение мат.части. А подробнейшее описание базовых и специальных функций, представленных на страницах 115…238 помогут любому при программировании в LOGO! Soft Comfort 8.

    Краткая инструкция по использованию Руководства A5E3309675:

    1…24 стр. — основные функциональные возможности универсального логического модуля (реле) LOGO! 0BA8 и дополнительных модулей расширения;

    25…52 стр.- особенности монтажа и электрических подключений к LOGO!;

    53…98 стр.- описание ручного программирования с панели самого реле (на случай если кому-то придется обслуживать реле в тундре с дизельной электростанцией и без компьютера);

    99…109 стр. – конфигурирование сетевых настроек; просмотр сетевых входов/выходов; изменение типа сетевого режима (master/slave); диагностирование программных и аппаратных ошибок;

    109…113 стр. – описание внутренних системных параметров LOGO! – объем памяти, типы и способы распределения внутренней памяти, которые влияют на допустимый размер и функциональность коммутационных программ для LOGO;

    115…238 стр. — кладезь подробнейшего описания базовых функций реле в парадигме БУЛЕВОЙ АЛГЕБРЫ (очень понятной и любимой теми, кто паял в свое время схемы на 155-й серии…) и всех специальных функций, доступных в среде программирования LOGO! Soft Comfort с диаграммами работы и… небольшими занудливыми примерами экранного программирования в конце каждого параграфа (вариант для тундры);

    239…248 стр. – описание веб-сервера встроенного в реле LOGO!;

    249…254 стр. – упоминание о пользовательской функции UDF для создания макросов – собственных функциональных блоков, и функции регистрации данных, где нас, к сожалению, отсылают к интерактивной справке в LOGO! Soft Comfort уже на нерусском языке (с 2015 г. немцы перестали переводить на русский многие мануалы, а 8-я версия ПО выпущена позже);

    255…268 стр. – конфигурирование параметров программы с панели реле без изменения самой коммутационной программы;

    269…290 стр. – описание работы с картами памяти microSD; функций безопасности для защиты LOGO!; краткое ведение в ПО Soft Comfort и ссылки на примеры возможного применения LOGO!;

    291…338 стр. – подробнейшие технические параметры LOGO!8 и всех модулей расширения; определение времени цикла коммутационной программы; структура меню LOGO!; парт-номера для заказов модулей LOGO.

  • 26 gsp

    Немного паранойи в топик ;) http://www.securitylab.ru/news/489607.php

  • 27 CS  [Москва]

    Да, классно! Давно пора и тут дыры позакрывать.
    Отсюда вопрос: а нафига постоянно Logo в сети держать? =)

  • 28 gsp

    А там вся фишка в том, что не нужно постоянно в сети, один раз достаточно.

  • 29 pressmaster  [Москва]

    Интересная статья
    Касперский скоро еще немного разбогатеет на новой продуктовой линейке для ПЛК…
    Но бытовому сектору можно не переживать: если эта не липа (а попахивает), то аппаратно-программные средства для дистанционного снятия информации таким способом непомерно дороги и актуальны для окучивания только ОЧЕНЬ серьезных компаний, а не для отслеживания и управления сливом воды в бачке частного домохозяйства :)))
    P.S. В статье написано «Исследователи написали для ПЛК Siemens S7-1200 код, генерирующий частотно-модулированные радиосигналы в диапазоне AM, которые кодируют похищенные данные…»
    Вообще то AM всегда указывал на тип модуляции — Амплитудная Модуляция, а не на частотный диапазон! Че то тут неувязочка в куче умных фраз…

  • 30 CS  [Москва]

    Так блин вспоминайте Stuxnet же. Было всё, было! Всё новое — это хорошо забытое старое! =)
    Но ЧМ и АМ — это да… аффтор отжог! =)

  • 31 pressmaster  [Москва]

    «Догадался»: автор статьи «Атака на ПЛК…» использовал короткое, жаргонное, общепринятое в быту (во времена СССР) обозначение «в диапазоне AM«, имея в виду диапазон средних или длинных волн, в котором использовалась Амплитудная Модуляция.

    Даешь импортозамещение!
    Все дружно переходим на ПЛК «ОВЕН» :)))

Оставить отзыв

Вы должны войти на блог, чтобы оставить комментарий.