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


  • 1 sba  [Москва]

    Немного попытался нарисовать реализацию с одинарным/двойным и длинным нажатием. Выход Q1 всегда будет срабатывать по нажатию (0->1), тут ничего не поделаешь. По отпусканию запускается таймер, в течение которого второе нажатие активирует Q2. Ну а Q3 по длинному нажатию. В симуляторе вроде работает.
    Это к дискуссии pressmaster & CS. Об этом речь была?

  • 2 CS  [Москва]

    УГУ! Я также выдумал его: по отпусканию кнопки запускается мелкий таймер. Если, пока он считает, пришло ещё одно нажатие — то двойное. Иначе — одинарное! =)
    А ты нафига на триггеры вывел? Это ты тестировал или хотел у себя в проекте фиксировать такие нажатия и переключать ими чего-то?

  • 3 sba  [Москва]

    Это pulse relay на выходе. Собственно это простейший вариант реализации кнопки — сразу на выход. А с триггерами я еще думаю. Дело осложняется тем, что logo запрещает рекурсию — только через Q или M. Одно нельзя использовать в udf, второе в ограниченном количестве. А хочется запилить udf, который будет pulse relay w/ memory. Что бы на входе был Trg, Store&Reset, Restore. Но пока не получается, надо думать.

  • 4 CS  [Москва]

    sba Я у себя M заюзал и не стал париться, потому что заточил UDF под свет, а тут всё равно больше 20 выходов ты их и не сделаешь — значит из 64 маркеров потратится 20 штук — да и плевать на них!
    А если система будет распределённая по сети — то опять же, в каждом Logo тогда будет занято 20 маркеров из 64.

  • 5 sba  [Москва]

    Да, с флагом все работает. Только вот не ясно, при использовании в udf — это будут разные флаги? И как тогда будет нумерация? Если начать с М1, то там М8 и далее есть служебные флаги. Их бы не хотелось трогать. В общем с флагом у меня получилась такая вот схема одного исполнительного элемента — импульсное реле (Trg), вход Store/Reset — сохраняет статус и сбрасывает реле, Restore — подает импульс / либо не подает на Trg, в зависимости от состояния триггера. В udf пока не заталкивал — так проще отлаживать с I/Q — их видно на симуляторе :) Однако хотелось бы как-то этот флаг убрать и сделать без него. Не люблю глобальные переменные :)
    Еще, кстати, момент. При включенном сохранении состояния, по идее в EEPROM/FLASH будет записываться каждое изменение состояния элемента. Не знаю, как они там организовали хранение, но если в ту же ячейку, то ресурс не бесконечен. А при такой схеме сохранение производится только при наличии сигнала Store.

  • 6 sba  [Москва]

    О, вроде как все получилось. Ничего, если я тут немного картинок понакидаю?
    Первый блок — Btn, на входе кнопка, на выходе импульсы Single/Double/Long. Причем Single/Double работают напрямую от кнопки (отпускание), а Long принудительно делается импульсом в 1 такт (иначе Reset нормально не работает).
    Второй блок — собственно реле с памятью. Выше уже описывал. Нарисовал схему использования:
    I1 — это кнопка в комнате, управляет двумя группами света. Одиночное — 1, двойное — 2, длинное — выключает (с сохранением).
    I2 — общая кнопка на выходе — длинное выключает с сохранением, двойное — восстанавливает.
    Эх, осталось обзавестись железкой и потестить как следует :)

  • 7 CS  [Москва]

    Один раз ничего! Потом, как я говорил, я пост накидаю и туда эти комменты переедут, чтобы по теме было! =)
    У меня подобная задумка и есть! Только я замутил Set/Reset, Store/Restore и Clear ещё =) И сделал приоритеты для Store/Restore.
    Поэтому по помещению у меня подаётся просто Reset (для концепта), и блок просто вырубается (центральное выключение по помещению), а по всей квартире подаётся Reset + Store.

  • 8 sba  [Москва]

    Идея понятна. А зачем отдельные сигналы Store и Clear? Я исходил из логики, что сохранение необходимо только при сбросе и в принципе без разницы, центральный это сброс был или местный — сохраняется всегда. Не могу придумать ситуацию, когда нужно сохранение просто так, отдельно от сброса. А прямые Set/Reset согласен, хорошо бы иметь если надо откуда-то выставить принудительно. Так-то я старался управлять только импульсным реле, т.е. что бы выход был только через него. Заодно обнаружил у себя баг — если после выключения с сохранением что-то включить, а потом сделать restore, то он перещелкнет включенное реле.
    Кстати, про флаги. На форумах пишут, что где-то он их сам нумерует при добавлении элементов на схему. Но при этом как-то странно — я в udf использовал M32, добавил на схему два элемента. При добавлении на схему флага видно, что М32 недоступен (используется в udf), а вот М33 — есть. И при работе двух udf они друг на друга не влияют. В общем не понятно, что там внутри происходит. Зато нашел способ, как обойти запрет рекурсии не используя флаг :)

  • 9 CS  [Москва]

    sba А я исходил, как обычно — из универсальности. Мало ли чего и где понадобится?
    Про флаги — скорее всего среда глючит и толком в UDF их не может подсчитать =)
    Надо опыт поставить. Воткнуть мигалку на M33 твой и накидать UDF и посмотреть — будут глючить или среда возьмёт другой, не занятый? =)

  • 10 sba  [Москва]

    С флагами я проверил — там все корректно. Какие флаги берет — не сознается, но они не пересекаются. А вот я еще другую интересную штуку раскопал. Сетевые входы/выходы. Оказывается, это все реализовано через локальные переменные, коих там аж 850 штук. И что самое главное — эти входы/выходы не обязательно по сети должны работать, они и с локальными переменными прекрасно общаются. Первое, что приходит на ум — сигнальная шина. Вместо того, что бы тянуть кучу линков к примеру на общий reset, ставим один Nout, в нем выбираем адрес, и к блокам где надо получить сигнал — ставим Nin. Теперь подаем сигнал на наш Nout и он разлетается по всем блокам. Единственное — ограничение в 64 штуки всего. А еще, эти переменные можно мапить к параметрам блоков.

  • 11 CS  [Москва]

    Про выходы по сети — это я даже давно писал. И писал, почему я их не использую. Там и Modbus есть. Просто читать надо.

  • 12 sba  [Москва]

    А вот про сетевые порты мне на глаза не попадалось, хотя вроде все прочитал. Ок, перепроверю.
    Modbus я видел, но это уже промышленная автоматика, явно не для дома :)

  • 13 CS  [Москва]

    sba А оно в явном виде и не попадётся. Это может быть всего лишь одно предложение вида «вообще у Logo есть возможность работать по сети в редиме Master-Slave, но я этим не пользуюсь, потому что не хочу чтобы мои щиты зависели от состояния внешней сетки» ;)
    А modbus — это ты зря. Например можно к Logo какие-нить нестандартные датчтки подцепить или тоже IO расширить. Но опять же по сетке.

  • 14 sba  [Москва]

    Ну разве что нашел упоминания про общение по сети между logo. Это понятно — зависимость от сети.
    Я же говорил несколько о другом. Тут речь о работе через loopback. Если быть точнее, то с локальными переменными. К сети это в принципе, отношения особо не имеет, кроме названия.
    Но профит здесь такой — не надо тянуть к каждому блоку глобальные сигналы с единой точки, а просто расставляя в нужных местах NI и NQ и выбирая соответствующий адрес переменной можно сделать такой себе локальный broadcast.
    Так же, стоит упомянуть, что через переменные очень удобно работать со встроенным web сервером. Это весьма удобная штука, т.к. не требует никаких дополнительных устройств — рисуешь план квартиры, расставляешь управляемые точки (картинки) и отображаешь статус. Так же и управлять можно.
    Я у себя проверил — вполне неплохо работает. И рисовалка страниц весьма примитивная, делов на 5 минут. Только ему вроде sd карта нужна, что бы сохранять созданные страницы.
    А modbus — согласен, много чего можно подцепить, но пока не возникло такой необходимости :) Еще, кстати, есть S7. А для работы по S7 есть библиотека snap-s7 и на базе этой либы запилили драйвер для node-red. Ну а дальше стандартно — малина и понеслись навороты :)

  • 15 CS  [Москва]

    sba Агась, loopback. А IP как вводится? Не опять ли в коде программы? А шо будет, если ты ИП в настройке Logo сменишь? К примеру, у меня дома сеть 10.0.x.x, а у многих — 192.168.x.x.
    С глобальными сигналами всё проще. На панели инструсментов есть кнопка «Cut Connections», и я ею активно пользуюсь. Можно даже по разным страницам соединения раздирать.
    Не усложняй простые вещи, а? Я помню, у тебя есть эта черта ;)
    Цепани скриншот рисовалки! Интересно! Надо себе поставить (у нас тут где-то ссыль пробегала) и заценить на каком-нить Лого! =)

  • 16 koh

    вот моя реализация выключателя single double long клик

  • 17 Zoer

    Коллеги, кстати, если кому-то будет полезно, то два контроллера видят друг друга по ethernet без коммутатора. Патч-корд брать нужно с прямой (обычной) обжимкой, не кросс. Я назначал один мастером, второй слейв и … все работает.

  • 18 MechMan  [Москва]

    Коллеги, кстати, если кому-то будет полезно, то два контроллера видят друг друга по ethernet без коммутатора

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

  • Не нужно пытаться «попасть» ip адресами в сеть заказчика.
    Наоборот нужно отделить ip cеть автоматики от остальной.
    Желательно и физически.
    Т.е. отдельный свич для щита это не проблема, а наоборот отличный вариант для закоченного щитка. (А при только двух устройсвах и свича не нужно)
    Если же планируется подключать удаленное управление по сети (ethernet датчики, или исполнители), то тогда можно соединить свич в щитке с общедомовым. Но объединять ip адресацию не нужно и даже противопоказано (а для полной красоты выделить vlan для устройств автоматики).

    А про «потенциальный источник коллизий» это что-то из прошлого века. Не нужно так. :-)

  • 20 CS  [Москва]

    alpha.fm Ну нет уж! Я считаю, что для квартиры извраты с обособленными сетями — уж слишком перебор и гадко.
    Это, прикинь, если надо будет новую программу в Logo влить — бери комп, прись в щит, цепляйся к его обособленной сети, меняй IP-адрес компа, заливай, потом возвращай всё назад.
    А ещё ты, камрад, забыл про WEB-визуализацию в Logo. Она там есть (через Logo Web Editor) — и как тут быть? Не менять же IP компа всякий раз, когда на лого надо глянуть…

  • 21 Wirth  [Челябинск]

    Сделал вот такую реализацию кнопок.

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

  • 22 CS  [Москва]

    Отлично! Вот здорово! Я дал принцип, а вы дальше его дорабатывайте =)
    Я не хотел так морочиться, мне было интересно сделать именно как в компе: что Double обязательно означает то, что Single тоже проходит.

  • Если нужно более менее регулярно связываться по сети с Logo, то нужно сети соединить физически и сделать маршрут на роутере.
    Нет тут никакого перебора. Это реально на порядок проще, чем остальное что обсуждается в данной статье. :-)

    В данном вопросе две части. Физическая зависмость автоматики от «какого-то внешнего свича», что решается выделенным свичом и одним проводом наружу.
    И логическая, это в частности ip адресация.
    Я бы очень не хотел чтобы автоматика зависела от того что происходит во внешней сети. Более того, я бы не давал доступ в интернет Logo, а это легко организовать выделив ему отдельную ip сеть.

    Я так понимаю, что дискуссия у нас в данном случае от разных сфер деятельности. :-)
    Я вот знаю про логические элементы, и схемы из этой статьи для меня не китайская грамота, но сложно из-за отсутствия опыта.
    А для тебя ip сети это знакомая сфера, но сходу не понятны нюансы, а для меня наоборот.
    Это нормально :-)
    Пообщайся на тему сетей с каким нибудь знакомым авторитетным для тебя человеком, я так понимаю такие люди есть.
    В данном случае часовой мастер-класс за чашкой чая может дать отличный толчек для дальнейшего понимания и развития.

  • 24 CS  [Москва]

    alpha.fm Хмммм… я когда-то спрашивал про ArtNet. Вот, на сообществе. Хер кто сказал как это сделать без изъёбов или этого… microtik. А там задача была такая же, как ты ставишь — подружить 2.2.х.х и 10.0.х.х так, чтобы они в одном свитче работали и можно было с одной сетки коннектиться к другой как нефиг делать.
    Это — изъёбы. Нахер такое. А то давай до VLAN ещё докатимся, который Logo не понимает.

    Так, давай ещё раз подерёмся. Не думаю, что за 20 лет TCP/IP прям так поменялся или выдумали чего-то новое в MAC-адресах или роутинге. Да, роутинг я знаю только как NAT и VPN, как подружить две сети — я не умею. Но мне это и не надо. Поэтому не хочу я в этом разбираться.

    Я хочу, чтобы никакие мои заказчики не трахали себе мозги с Logo и сеткой. И ещё я хочу, чтобы мой щит был готовым изделием и при этом, когда у заказчика дома 19″ шкаф и гигабитная сетка, никакой 100- или 10-мегабитной инфекции в щите не стояло. Вообще.

    А ещё, чтобы не драться, я тебе доскажу. Да, я в курсе, что ОБЫЧНО стараются разносить всякие хуйни по разным сеткам. Через VLAN или физически. Тот же ArtNet так и задуман, к примеру. Или так удобно сделать для видеонаблюдения, чтобы какой-нить вор снаружи сетку не начал укладывать.
    Но я не хочу заниматься этим на потоке щитов. Я хочу, чтобы мои щиты были простые в плане подключения и настройки. А чтобы пусконаладка шла к сложным щитам, а не к таким, где Logo светом рулит и через визуализацию это отдаёт.

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

    UPD. Что касается людей. ХУЙ ТАМ! У меня ща полный кризис общения. Только два человека остались, с которыми я могу искренне общаться.
    А те, кто пытается дружить с блога — чаще всего делают это или из корысти, или из какого-то уважения/пресмыкания, что отбивает вообще всю охоту общаться.
    Поэтому да, я с радостью вспоминаю о тех временах, когда вокруг меня были люди такие же увлечённые и своим рассказом про 1Ски, серваки, компы могли вдохновить. А не тупо дать инфу или сказать «делай так, тебе понравится».
    Ща у меня набираются новые вопросы — про WEB, облака, нейросети — но нет тех, кто может увлечённо рассказать про это.
    Поэтому в плане общения у меня треш, кризис и пиздец. И я от этого сильно страдаю.

  • 25 Wirth  [Челябинск]

    Если периодически нужно налазить на контроллеры, которые находятся в другом адресном пространстве, то можно объединить эти сети железно через коммутатор.
    А на компе, с которого будем заходить на контроллеры, поднять второй ip адрес на интерфейсе, единственное условие, статика на этом интерфейсе у обоих диапазонов

  • 26 CS  [Москва]

    Wirth А спинку этой сетке вареньем крыжовенным не намазать ещё?
    Что-то какой-то ёбаный гемор получается ради того, чтобы зайти с телефона на Logo и перетыкнуть там свет.
    Нахер такие сложности дома нужны?

  • 27 MechMan  [Москва]

    Нахер такие сложности дома нужны?

    Ща объясню. Например, у меня на даче инет только мегафон или йота. Сответствено серый IP (можно на мегафоне белый но дюже дорого). Поэтому у меня в москве и на даче по микротику. В москве белый ip и vpn (l2tp и openvpn) с дачи домой, c автопереключением между ними. Плюс куча скриптов, обеспечивающих резервирование. Соответсвенно 2 разные сети (Москва и дом). И таки да, чтобы пощелкать светом (или включить отопление) knok-knok защита, чтоб это сделал только я. Поскольку безопасность и бытовой контроллер — не совсем одно и то же.

  • 28 MechMan  [Москва]

    Csыч, не могу разобраться. Есть в лого начальная инициализация переменных?
    Мне надо устанавливать SetPoint со стороны сети. NAI связанный с локальной переменной. Вот как мне ее при старте лого, или при перезапуске сбрасывать на какое-то значение. Сделал схему, но мне не нравится.

  • 29 CS  [Москва]

    Что такое SetPoint?
    Маркер ты правильно взял. Только ты забыл, что у этого мудака Logo минимум 80 мсек опрос идёт по сети.
    Поэтому тебе надо по маркеру запускать какой-нить формирователь импульса, который тебе это значение будет держать например 500 мс.
    И ещё не забудь, что у этих мудил все значения Signed, а не Unsigned бля.

  • 30 MechMan  [Москва]

    Установка целевой температуры. С возможность установки из сети.
    И задача чтобы при старте Лого, он уже какое то состояние задал. Чтобы когда-то потом через KNX интерфейс его можно было установить. Не спрашивай, почему не все на KNX (слишком жирно для простой котельной). Да и Лого в запасах валяется.

  • 31 CS  [Москва]

    Ну вот если там типа ModBus — то нужно чтобы этот твой мультиплексор выдавал сигнал хоть на 500 мсек или одну секунду, иначе он просто не успеет на выход попасть.
    Попробуй подключить его на постоянку и вообще посмотреть, доходит ли эта инфа до получателя или нет.
    А то я трахался так с ModBus — он у меня никак не хотел Write Registers писать, а Write Coils — запросто.

  • 32 Romesskin

    Еще один вариант включения разных групп. Доработал схемку, добавил длинное нажатие.
    Одиночное нажатие подает сигнал на Q1, двойное на Q2 и тройное на Q3.

  • 33 Wirth  [Челябинск]

    Romesskin а если быстро нажать 1 раз а потом долгое нажатие, отработает долгое и 2ое нажатие?

  • 34 Romesskin

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

  • 35 Romesskin

    Wirth, есть решение проблемы добавлением в разрыв второго и третьего выхода, блока B009, как у первого выхода, с таким же подключением.

  • 36 CS  [Москва]

    Комменты подрезал чуток =)
    Я делал с таймерами. Нажали один раз — запустился таймер на выдержку. Если за это же время отпустили и ещё раз нажали — то выдаём двойное нажатие. Тут без коллизий будет.

  • 37 Romesskin

    CS, коллизии убрал, все работает.))

  • 38 MacSergey

    Привет. Хотел бы поделиться своей реализацией пользовательской функции. У неё в качестве параметров минимальное и максимальное количество нажатий. То есть можно задать, например, от 49 до 97 и если подряд будет нажатий в этом диапазоне, то функция выдаст сигнал, если меньше или больше — не выдаст. С помощью ее у себя реализую одинарное, двойное, тройное нажатия, задавая от 1 до 2, от 2 до 3 и от 3 до 4 соответсвенно. Если нужно несколько функций на одной кнопке, то ставится несколько таких блоков с входом от кнопки и только один в итоге дас сигнал на свой выход

    Так же есть реализация длинного нажатия, комбинаций нажатий (например длинное, а потом тройное короткое) — если интересно, могу показать

  • 39 CS  [Москва]

    MacSergey Слушай, а ты помнишь что количество экземпляров UDF в проекте ограничено?
    Ну, там 64 штуки — но с таким каскадом UDFох их реально занять все, если ещё какие-нить UDFки на свет сделать!

  • 40 MacSergey

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

    P.S. Есть возможность показать какой щит получился у меня, который сделал в основном основываясь на твоём блоге, так сказать интересно что скажет профессионал: говно или имеет право на жизнь :)

  • 41 CS  [Москва]

    MacSergey Не, не! Я хочу придраться к следующему:
    а) Дилемма в подходе — с этим я согласен. Скажем, сделали мы универсальный FBD для всех нажатий, ставим их — а используем не всё.
    Это нормально. Программа перегружена, но если памяти хватает — то норм. И решение типовое получается.
    б) А вот с тем, как ты описал свой подход — я не до конца согласен. Сделать FBD, чтобы их них делать, образно говоря, по месту ещё вложенные FBD — это изврат.
    И раньше говорили, что это от неумения программировать. Ну как если бы чуваку надо было вывести поверх WEB-страницы окно — и вместо того чтобы подключить одну библиотеку (типа там jQuery или Node.js), чувак перевёл весь сайт полностью на Ajax, переписал код движка — и благодаря этому смог подключить какую-нить платную хуйню, которая выводит ему это окошко.
    А потом оправдывался как «Ну… у меня многофункциональный подход» — это пиздец =)

    Доработай свой UDF так, чтобы он один делал всё =)

  • 42 MacSergey

    CS, как раз таки вложенные функции друг в друга это нормальный подход: весь повторяющийся код выносится в отдельные функции. Но у меня как раз нет вложенных функций.

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

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

  • 43 MaxDesperate

    // Так же есть реализация длинного нажатия, комбинаций нажатий (например длинное, а потом тройное короткое) — если интересно, могу показать

    MacSergey, да, интересно. Хотел бы посмотреть.

  • 44 CS  [Москва]

    MaxDesperate Это если он нам покажет. Здесь не форум, такие прыжки через мою голову (владельца ресурса) запрещены.

  • 45 Zoer

    А был опыт построения управления сценами освещения и одновременно с другого места управление группами независимо? Т.е. одной кнопкой включил\выключил 2 группы. Другой кнопкой вкл.\выкл. одну из этих же групп.

  • 46 CS  [Москва]

    Zoer БУГАГАШЕНЬКИ!!! ЕСТЬ ОПЫТ! =)) Вот: https://cs-cs.net/sh-knx-light-scenarios-owen-mone =))
    А вообще смотри посты по тэгу «Logo». Я ещё дописал про визуализацию.

  • 47 Zoer

    Так я имел ввиду именно на Logo. У меня щит собран, осталось с логикой разобраться.
    UPD. Блин, я понял. В топку сцены, на Лого я это не реализую. Нужно было укатывать заказчика на ПЛК.

  • 48 CS  [Москва]

    Zoer УГУ! Или хотя бы на ОВЕН ПР200. Я ща начинаю готовить посты про них, они ОХУЕННЫ (через неделю точно выложу первую часть про железо)!
    Там тоже FBD, но настолько продвинутые, что один чувак смог написать там сцены эти!
    А, да! И ModBus НОРМАЛЬНЫЙ есть — я за это ваще прям ПРки полюбил!

  • 49 DM  [Russia]

    Доброго времени суток всем хорошим людям.
    Очень пондравилась реализация подключения с вентилятором для санузла.

    А как можно реализовать схему что-бы вентилятор (или какая либо другая нагрузка) включался на заданный промежуток времени только после выключения света?

  • 50 CS  [Москва]

    DM Ты хочешь совсем готовое решение? Ну, чтобы я нарисовал схему и ты тупо скопировал (это мне не всегда приятно)?
    Или ты более-менее разобрался с Logo и знаешь, как та схема из примера работает (ты читал все посты про Logo — предыдущие три части)?
    КОНЕЧНО ЖЕ МОЖНО. Я не делал, но сделал бы так:
    а) Оставил бы именно эту схему, чтобы юзер мог всё равно врубать или вырубать вентилятор кнопкой.
    б) Вот у нас у таймера вентилятора (который его включает) есть вход T — запуск.
    Если подать на него ещё откуда-то сигнал (через OR) — то вентилятор тоже включится. Мы этим будем пользоваться как раз ща.
    в) Есть ещё херня «Wiping Relay» (пишу на память, уточни). Она делает следующее: если сигнал на вход подаётся постоянно — на выходе превращает его в короткий импульс.
    Эта штука нужна для тех случаев, когда нам важно чтобы сигналы запуска или переключения чего-то (короткие) не пересекались. То есть для сигнала «Т» на таймер вентилятора и других мест (ща дорасскажу).

    Дальше про это всё временно забываем и делаем отдельную херовину, которая нам вентилятор будет запускать (сигнал на Т подавать).
    Тут оставляю на твлю фантазию. Идеи таки:
    * Ставим это самое Wiping Relay таким образом, чтобы когда свет погасили (был переход с 1 на 0) — оно выдавало импульс (для этого на вход этого реле подаём инверсный сигнал — при переходе с 0 на 1, когда зажгли свет оно НЕ должно работать, а при переходе с 1 на 0 — должно).
    Вот сразу и будет логика: погасили свет = ткнули таймер вентилятора.
    * Перед Wiping Relay воткнём таймер On-Delay (выход света — таймер — реле). Тогда можно настроить его на какое-то время и сделать логику «Если свет горел больше чем хх (On-delay досчитал до этого времени) — то когда свет погаснет — выдать импульс на запуск вентилятора».
    * Навернуть то же с кучей таймеров и заданием настроек таймера вентилятора (или несколькими таймерами) таким образом, чтобы вентилятор стартовал на разное время. Например, если свет горел больше чем 5 минут — вентилятор старутет с одним временем, если больше 20 минут — с другим.

    Вот! Я думал, что это очевидно всё, потому и не стал писать.

  • 51 DM  [Russia]

    CS Я так понимаю что Wiping Relay — это интервальное реле.
    Ну просто у меня установлен logo soft comfort на великом и могучем.
    У таймера есть вход T, или все-таки Trg? …
    В любом случае спасибо за развернутый ответ.
    Я понял… что нихера не понял.

  • 52 CS  [Москва]

    DM Гммм.. как это будет на русском — я НЕ в курсе, потому что я таким софтом я работаю на английском, если есть возможность… после того, как я русский перевод Автокада увидел со словами «вырезать», «обрезать», «растянуть», «расчленить», «взорвать» =))

    Про таймер — могу путать (пишу ща по памяти, так как дал тебе идею). Возможно и Trg.
    Ну чего ты не понял? Начни с малого. Вот можешь ты сделать такой участок схемы, который выдаёт импульс, когда свет в ванной погасили? Вот по выключению света ставим это «интервальное реле», например на 0,5 секунды.
    И импульс от этого реле «нажимает» на кнопку запуска вентилятора. Через «ИЛИ», чтобы и сигнал от обычной кнопки тоже проходил нормально.

    Смотри. Я тебе нарисовал на базе своего UDF из этого поста (то, что там внутри — тут же в посте ты и увидишь).
    а) В правой части стоит U002 и Q4 — это блок управления вентилятором из поста и выход на вентилятор.
    б) Вход «Button» этого U002 через «ИЛИ» (OR) подцеплен к кнопке I4, которая управляет вентилятором (чтобы его можно было вручную включить или выключить).
    Ещё на этот же вход запуска вентилятора (кнопки) подаётся сигнал с блока «И» B019. Обрати внимание, что один из входов у него инвертирован (точка стоит).
    в) Теперь смотрим на цепочку I5 — Q5 — B018. Это и есть то, про что я говорил — что надо добавить. Q5 — это лампы света ванной, от которых ты хочешь вентилятор запускать. I5 — это мне для проверки схемы надо было имитировать включение ламп.
    B018 — это то самое Wiping Relay на 0,5 секунды — оно формирует импульс, когда погас свет. Обрати внимание, что вход у него тоже с точкой — инвертирован.

    НО! Если щас (без B020) запустить схему — то при первом включении Logo получится так, что свет ванной не горит, и система подумает что свет погас — и врубит вентилятор.
    Чтобы этого не было — я сделал ещё один формирователь импульса B020, который ВСЕГДА и ОДИН раз выдаёт импульс при запуске Logo — потому что мы на вход B020 воткнули «1».
    Это и есть блокировка от ложного включения вентилятора про старте Logo: пока этот импульс от B020 выдаётся, то импульс включения от B018 пройти до кнопки не может.

    Так хоть понятно? =)) Если не ясно — то вон набери мне на телефон, я тебе голосом поясню.

  • 53 DM  [Russia]

    Или лыжи не едут … или ТЗ описал не верно.
    Все перепробовал, не контачит так как надо.
    Суть задумки была такова.
    Работает только Нагрузка 1
    При ее выключении должна включаться Нагрузка 2 на заданный отрезок времени (по таймеру, дням или как то еще).
    У меня не выходит именно это. Все время получается с ложными срабатываниями (((

  • 54 Wirth  [Челябинск]

    DM, элементарно.
    Если не нужно отключение нагрузки 2, когда включили нагрузку 1 при работающей 2, то удали связь R у блока B005.

    CS, знаю нельзя… прости не сдержался.

  • 55 CS  [Москва]

    Последние комменты подчистил, так как пошло уже не по вопросу и уже вширь.
    У меня такое ощущение, что кто-то врёт, говоря про вентилятор. Пример под него я показал, и там не справится только идиот. Тем более, что я всё нарисовал и даже в симуляторе проверил. Изначальному вопросу это соответствует.
    Поэтому дальше делаем так (прерывая наглость): если нужна консультация по разработке программы для Logo — то DM пишет мне на мыло с запросом на консультацию и описанием того алгоритма, который должен быть. Без вентиляторов — а про то, что там реально надо сделать.
    Я выставляю счёт и после его оплаты работаю.

    Wirth Спасибо, да! Но сдаётся мне, что верить тут не надо. И щас тут будут пытать что-то вида «я всё равно не понял, вообще у меня не свет, а привод гидропресса».

  • 56 DM  [Russia]

    CS А вот зря ты так.
    Я вот чесно написал

    А как можно реализовать схему что-бы вентилятор (или какая либо другая нагрузка) включался на заданный промежуток времени только после выключения света?

    Wirth сам вызвался… никто за… нетянул.
    Искал инфу в инете и наткнулся на этот сайт. Вот и решил спросить.
    В ветке есть и скрины и обсуждения и комментарии!
    По факту только свет в квартире. Гидропресса НЕТ.
    Двушка во вторичке.

  • 57 CS  [Москва]

    Так тогда ЧТО тебе не понятно их моих примеров, если я тебе не просто показал, а дал прям готовый и бесплатный ответ? Тебе надо только это всё повторить.

  • 58 KO40

    Перечитал эту статью с комментариями и три предыдущие и так и не понял возможно ли все же сделать так, чтобы одна кнопка корректно управляла тремя нагрузками при разных нажатиях (одинарном, двойном и длинном). Тут предлагали два варианта. Первый вариант в третьей части от CS и еще один в начале комментариев этой 4-й части от KOH. В первом варианте некорректно работает однократное нажатие, а во втором — двойное, а после однократного нажатия выход включается не сразу. И почему то нет даже реле для включения выхода.
    Может все же кто то знает алгоритм корректной работы с одной кнопки в трех режимах? Или хотя бы в двух: однократной/двойное или однократное/длинное

  • 59 CS  [Москва]

    KO40 Да такое обычно противоречит концепту. Вот на компе с мышью ж всегда одинарное нажатие следует за двойным. И никак от этого не избавиться.
    Алгоритмы?.. Хммм! Поискать можно не только для Logo — а для любого ПЛК. Я не морочился, потому что такие извраты исключил как класс сразу же!

  • 60 Wirth  [Челябинск]

    KO40 посмотри мой вариант за 29 октября (https://cs-cs.net/logicheskie-rele-siemens-logo-programmirovanie-udf-net-project#comment-38868). В схеме формируются импульсы на включение и отключение, импульсное реле ты можешь добавить сам.

  • 61 KO40

    Да, увидел. Но все схемы эти, в т.ч. и ваша, не совсем идеальные. Где то ложные срабатывания, где то срабатывание после отпускания кнопки (неприятно при длительном нажатии).
    Пытаюсь создать схемку с включением сразу при нажатии хотя бы на двух комбинациях: одинарной и двойное нажатие или одинарное и длинное. Может кто то уже изобрел такую схему, чтобы красиво, понятно и надежно?

  • 62 Wirth  [Челябинск]

    KO40 Чтобы длительное нажатие срабатывало после 1 секунды а не по отпусканию кнопки нужно заменить блок B004 на импульс по переднему фронту а не по заднему. По ложным срабатываниям можно подробней? как не побывал у себя на схеме, все ок.

    Если требуется как минимум двойное нажатие, то с технической точки зрения без выдержки не обойтись. здесь ты можешь играться с таймерами.
    Если использовать только 2 комбинации, то с точки зрения алгоритма можно реализовать
    — только одиночное и двойное нажатие:
    одиночно нажатие будет срабатывать с заданной выдержкой, но ее можно уменьшить скажем до 200 мс. двойное нажатие будет отрабатывать сразу, как только нажал 2 раз
    — одиночное и длительное нажатие:
    одиночное нажатие сработает моментально когда отпустил кнопку. длительное нажатие отработает как только пройдет выдержка длительного нажатия, ее задаешь сам. это может быть и 100 мс и 1с.

    Готовых схем, которые тебя удовлетворят, скорее всего не будет. каждый делает либо для себя, либо для заказчика. На вкус и цвет все фломастеры разные.

  • 63 KO40

    Спасибо, разобрался. все хорошо, немного доработал.
    Задачи были такие
    1. Это кухня и лоджия.
    2. В кухне две кнопки. Нужно чтобы с одной кнопки по простому однократному нажатию управлялся свет над столешницей, а с другой — по однократному нажатию управлялся основной свет.
    3. Освещение лоджии должно управляться с кнопки на самой лоджии. И дополнительно хотелось бы, чтобы он управлялся с кнопки в кухне (если дверь на лоджию закрыл, а свет забыл выключить). Сделал управление светом в лоджии дополнительно по двойному нажатию кнопки основного света.
    4. Нужно, чтобы обе группы света гасились в кухне при длительном нажатии на любую клавишу в кухне.
    5. Нужно, чтобы все освещение гасилось при нажатии основного мастер-выключателя квартиры (на схеме его не сделал, чтобы не загружать схему), но входы под эту мастер-кнопку запланированы на блоках В46, В49 и ресет на В30.

    Все нравится, кроме одного. Управление основным светом происходит с задержкой (сейчас 100 мсек.).
    Знатоки, есть способ убрать или существенно сократить такую задержку на основной свет?

  • 64 Wirth  [Челябинск]

    KO40
    Убрать задержку при двойном тройном и т.д. нажатиях логически не возможно.
    Программа же не знает сколько раз ты нажмешь кнопку, по этому она выжидает эту задержку, и если ты не нажал еще раз, выполняет действия по текущему количеству нажатий.
    Как я писал выше, без задержки возможен только вариант, когда используется одинарное и длинное нажатие.
    Для удобства создай блок UDF(смотри картинки) который обрабатывает нажатия и дает импульс на выхода одиночного и долгого нажатия, здесь же ты можешь задать выдержку, по которой будет определяться долгое нажатие. У меня стоит 500 мс.
    На второй картинке пример программы. Но так как пришлось отказаться от задержки на включение, управление светом на лоджии реализовано на 2 кнопке в кухне при длительном нажатии.
    Если выключение света на кухне необходимо с обоих кнопок при длительном нажатии, то можно подвязать к одной из кнопок отключение не только кухни но и лоджии.
    Если такой вариант тоже не подходит, то с текущем количеством объектов и субъектов управления, при условии отсутствия задержки управления, задача не имеет решения. Нужно за»;%рить еще одну кнопку =)

  • 65 NikitaDA

    Пытаюсь самостоятельно разобраться с программированием функциональными блоками и перерыл уже достаточно много инфы. В чем смысл использования МАРКЕРА?

    Единственное, что приходит в голову, что его состояние можно как-то считывать из какого-то другого функционального блока, но в своем простеньком контроллере от EKF я пока не смог такого найти.

    В лестничных схемах у реле (М) вроде как есть катушка и контакт — тут все понятно. Но в функциональных блоках у меня ступор.

  • 66 CS  [Москва]

    NikitaDA А ты все посты про Logo перечитал у меня, или только этот комментишь? И как так инфа про EKF может быть связана с Logo? Это ж разные системы, и назначение маркеров у них разное.

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

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