31 Отзывов на “Логические реле 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 — запросто.

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

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