Среда программирования logo siemens доклад

Обновлено: 17.05.2024

Наводя порядок в шкафу, я нашел старый контроллер Siemens Logo! и ряд аксессуаров к нему. Когда-то, десять лет назад, я сделал несколько проектов на таких игрушках. Ностальгия и тёплые воспоминания про те времена побудили меня к написанию этого поста.


Под катом много фотографий (geek porn)!

1. Железо

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

1.1. Модуль процессора

image

Итак, модуль процессора 0BA3 питается от сети 220В, и имеет четыре дискретных выхода (реле) и восемь дискретных входов. Дискретный выход представляет собой реле с нагрузочной способностью до 10А при напряжении до 240В, дискретный вход допускает подключение цепей переменного тока напряжением 220В.

Самое интересное, конечно, внутри. Итак, модуль процессора в разобранном виде:

image

Модуль состоит из двух плат, на верхней плате расположен сам процессор и LCD, на нижней — блок питания, реле и дискретные входы.

Начнем с верхней платы.

image

Верхняя плата, верхняя сторона.

image

То же, со снятым LCD.

image

Верхняя плата, нижняя сторона.

На верхней плате размещается сам процессор (ASIC, разработанный специально для этого изделия), LCD, микросхема L4949EP (стабилизатор напряжения 5В, схема сброса и супервизор питания), кварц на 8МГц, ещё одна микросхема неизвестного назначения, микросхема Atmel 24C08 (EEPROM на 8 кбит), микросхемы 74hc4066 (4 аналоговых ключа) и 74HC11(?). Также на верхней плате расположены разъемы для подключения нижней платы, модуля расширения и модуля памяти.
Как видим, ничего особо интересного на верхней плате нет. Весь основной функционал заключается в одной специализированной микросхеме.

Дискретные выходы представляют собой реле Schrack с обмоткой на 24В. Кстати, маркировка на корпусе реле гласит, что коммутируемый ток составляет 8А, а Siemens заявляет для данного модуля 10А. Непорядок.

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

image

Схема дискретного входа

Также на нижней плате расположены винтовые клеммы, разъем для соединения с верхней платой и пьезопищалка.

1.2. Модуль дискретного ввода-вывода

Модуль дискретного ввода-вывода 0BA0, содержит четыре дискретных выхода (реле), четыре дискретных входа, и, как и другие модули этого семейства, пристыковывается к модулю процессора сбоку.


Отдельно он выглядит так:

image

И в разобранном виде:

image

Он также состоит из двух плат, верхней и нижней.

image

Верхняя плата, вид сверху.

image

Используются точно такие же реле Schrack на 8А, но на этот раз Siemens заявляет максимальный ток 5А. То есть в случае с процессорным блоком они рискуют тем, что будет превышен максимально допустимый ток через контакты реле, а здесь они перестраховываются.

Верхняя плата, вид снизу.

Здесь мы опять видим специализированную микросхему и уже знакомый нам стабилизатор питания L4949.

image

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

1.3. Загрузочный кабель

Кабель предназначен для загрузки программ через порт RS-232. Кабель имеет гальваническую развязку.

image

Посмотрим, что внутри.

image

Внутри гибко-жесткая печатная плата. На одной стороне две оптопары.

image

Микросхема MAX3221 (порт RS232) и буфер (74НС14 или какой-то аналог).

1.4. Модуль памяти

Желтенькая штучка на фото — это модуль памяти. В принципе, Logo! работает и без него, но желтый модуль позволяет копировать программы. После заливки программы в контроллер по кабелю её можно скопировать в желтый модуль и вставить в другой контроллер, скажем, находящийся на объекте. Удобно тем, что монтажнику не нужно брать с собой ноутбук и кабель. Бывают ещё красные модули, они не позволяют скопировать своё содержимое во внутреннюю память контроллера (типа, защита от копирования).

image

Внутри находится микросхема EEPROM Atmel 24C08, такая же, как в модуле процессора.

2. Пишем программу

Итак, подключаем питание, включаем контроллер, и видим следующее:

image

image

В этой же среде можно запустить симуляцию программы. В нашем случае программа состоит из одного блока Symmetrical Pulse Generator, одного дискретного выхода, и одной константы (лог. 1), разрешающей работу генератора. Всё предельно просто.

Программное обеспечение позволяет запрограммировать любое поколение контроллеров Logo!, как старые (этот, например, третья модель), так и новые (6-я и 7-я модель). Отличаются они тем, что в новых гораздо больше функций, и гораздо меньше ограничений. Третья модель, например, позволят использовать в программе всего лишь до 56 блоков, в современных моделях блоков может быть и 200.

Программное обеспечение хорошо документировано, есть примеры проектов (например, автоматика лестничного освещения).

Теперь самое интересное.

Конечно, именно эти модели давно устарели и сняты с производства, поэтому приведу цены на их современные инкарнации.
Цены приведены в рублях и являются приблизительными.

Модуль процессора — 4200 р.
Модуль дискретного ввода-вывода — 3000 р.
Кабель — 3800 р.
Модуль памяти — 650 р.

Впечатляет, не правда ли? Особенно на кабель (две микросхемы и две оптопары) и на модуль памяти (одна микросхема стоимостью меньше 10 р.)

Сборка электрощитов, автоматика и автоматизация для квартир и частных домов. Программы для ПЛК. Сценический свет (световые шоу, настройка оборудования). Консультации, мастер-классы.

Щит с автоматикой IPM для коттеджа (Поварово)

Щит с автоматикой IPM для коттеджа (Поварово)

Автоматика моего санузла на логическом реле ABB CL

Автоматика моего санузла на логическом реле ABB CL

Щиты TwinLine в Долгопрудный (таунхаус) и Солнечногорск

Щиты TwinLine в Долгопрудный (таунхаус) и Солнечногорск

Щит для котельной на базе сенсорного ПЛК ОВЕН (Папушево)

Щит для котельной на базе сенсорного ПЛК ОВЕН (Папушево)

Щиты с IPM (сеть, генератор, UPS) в Ядромино и Победа-2

Щиты с IPM (сеть, генератор, UPS) в Ядромино и Победа-2

Щит в ЖК Монэ на ПЛК ОВЕН со сценарным управлением светом

Щит в ЖК Монэ на ПЛК ОВЕН со сценарным управлением светом

Силовой щит в Весёлово (Тула): Простой трёхфазный

Силовой щит в Весёлово (Тула): Простой трёхфазный

Щит для квартиры в Митино на ПЛК ОВЕН (свет, отопление)

Щит для квартиры в Митино на ПЛК ОВЕН (свет, отопление)

Логические реле SIEMENS Logo!, часть 2: Программирование в Logo Soft Comfort — импульсные реле

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

Среда разработки Logo Soft Comfort

Среда разработки Logo Soft Comfort

Йо! Продолжаем мой случайно получившийся огромный цикл постов про Logo! =) Сегодня жжом на Logo Soft Comfort — специальной среде разработки от Сименса, которая в 2017 году до сих пор написана на Java. Помните это страшное слово, от которого вам хотелось блевать, потому что мелкая программка требовала ставить Java VM с жирным объёмом, а потом, когда вы наконец-то с матами запускали это дерьмо на Win98/XP, вы сталкивались с ужасно глючным Java-интерфейсом, который шёл вразрез со всеми Windows Common Controls.

В общем, наш Logo Soft Comfort написан на Java для совместимости с разными операционками. Готовьтесь к глючным окошкам, хер каким пойми шрифтам (там такое ощущение, что это писалось ещё под Windowx 3.x, где шрифты TrueType были адским прорывом), которые меняют свои размеры и двигаются по экрану как попало. При том, что софт этот платный. Сам Java-интерфейс ещё и имеет проблемы с кириллицей, поэтому могут возникать и такие вот глюки, которые были описаны в этом посте.

Но на самом деле, если знать как готовить Java, сама программа Logo Soft Comfort написана на нём терпимо. Мелкие моменты бесят (это когда мы до редактора схем дойдём в третьей части, вы ещё постебётесь), но софт удобный и хороший! Его можно штатно купить или стащить в торрентах, кому как нравится. Ссылок от меня тут не ждите — ищите сами. Наша с вами задача — разобраться с тем, как там всё программировать. Поехали!

1. Всякие вводные понятия и адресация модулей Logo.

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

В нашем проекте мы пользуемся уже конечными значениями. Нужен нам Q11 — мы его и используем, и нам не важно, что это на самом деле будет выход Q7 первого модуля расширения. Это отлично, потому что мы отвязаны от физической структуры Logo и можем в программе делать что хотим.

2. Параметры проекта в Logo Soft Comfort.

Самое лучшее, что нам будет хорошо сделать первым — это начать наш проект не со схемы, а с его настроек. Потому что в настройках лежат две важные штуки, которые потом облегчат нам работу: это IP-адрес самого Logo (который мы в нём настроили) и названия входов-выходов (по идее, мы заранее распределяем, какие входы и выходы у нас куда пойдут и уже потом пишем программу).

Меню настроек проекта Logo Soft Comfort

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

Первое, с чего начинаем — вбиваем IP-адрес нашего Logo, который мы для него выбрали (в предыдущем посте я настроил его в меню самого Logo). Если эти поля не заполнены — то Logo Soft Comfort будет каждый раз просить вас указать IP-адрес Logo, чтобы связаться с ним (залить программу, например). Поэтому лучше его заполнить, чтобы сто раз не вводить потом.

Настройки IP-адреса проекта Logo Soft Comfort

Выбор модели железа в Logo Soft Comfort

Разные модели Logo отличаются доступным набором ресурсов. Поэтому для справки то, что нам будет доступно, выводится под списком выбора модели. Вот списочек фишек для .FS4:

Возможности текущей выбранной модели Logo

Идём дальше. Тут мы можем задать параметры аналоговых выходов, если они у нас есть, хе хе. Так как обычно аналоговые выходы используют для пропорционального управления (сервоприводы 0..100%, задвижки, заслонки), то для них можно указать те значения, в которые они встают, когда вы остановили программу в Logo.

Настройки аналоговых входов в Logo Soft Comfort

Настройки названий входов и выходов в Logo Soft Comfort

3. Онлайн-параметры Logo (удалённая настройка) и Web-сервер (смешной).

А теперь попробуем подключиться к Logo по сетке. Напоминаю одну важную особенность: если в Logo прописан адрес шлюза (Gateway) то этот шлюз должен быть в сети и отвечать на пинги. Если он не будет пинговаться, то Logo Soft Comfort никогда не увидит Logo (хотя сам Logo будет нормально пинговаться).

Настройки параметров подключения к Logo

Обратите внимание, что внизу торчит жёлтый значок (и на сраные полосы прокрутки тоже обратите… нахер так дибильно программы писать?!). Смысл текста примерно такой, который я передавал, когда писал про безопасность приводов. Дескать, будьте внимательны, когда подключатетесь к Logo в рабочей системе, чтобы он не натворил беды и не включил чего-нить, что приведёт к взрыву или другой аварии.

Эти настройки применяются сразу же на горячую, и поэтому и требуют подключения к Logo.

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

Среда Logo Soft Comfort подключена к модулю Logo

Можно посмотреть версию Logo, который у нас стоит. У меня для примера был взят Logo для щита в Алтуфьево, куда мы повесим управление водой, вентилятором в ванной и прочими мелочами. Если что, разбирал я другой Logo.

Прочитали модель Logo из модуля

Можем тоже онлайн переназначить другой IP-адрес нашему Logo. Изменения вступят в силу сразу же, как с роутером: назначил новый адрес — перезайди уже по нему.

Можно поменять текущий IP на новый

Можно установить дату-время, считав их с компа.

Можно установить дату-время

Также у Logo есть свой небольшой WEB-сервер, при помощи которого можно зайти на него и потыкать менюшку удалённо, не подходя к щиту. Его надо включить и задать для него пароль.

Можно включить доступ к Logo через WEB-интерфейс

После этого, если зайти в браузер по IP-адресу самого Logo, то будет такая страничка:

Страничка входа на WEB-интерфейс Logo

После того, как мы залогинились, можно выбрать, что делать: полазить по Logo или по его переменным (Variables). Про переменные будет в третьей части, когда мы до таймеров дойдём.

Страничка выбора меню на WEB-интерфейсе Logo

Если зайти в Logo, то по WEB-интерфейс нам рисует настоящий Logo. На экране должен отображаться текст, но у меня было пусто (видать, баннерорезка порубила разные скрипты, на которых это крутится). На данный момент мне эта фишка не нужна, поэтому я не разбирался с ней и забил.

Текущий Logo через WEB-интерфейс (у меня не отобразился текст)

Собственно, про настройки проекта на этом всё. В общем, что самое основное надо сделать?

  • Вбить нормальный IP-адреса реального Logo, с которым мы будем работать;
  • Выбрать его модель в железе, чтобы программа создавалась именно для него;
  • Вбить понятные (но краткие) названия входов и выходов;
  • Отрубить аналоговые выходы, если их нет;
  • Проверить связь с Logo и выставить на нём дату-время.

4. Программируем: ставим блоки IO и делаем простую схему.

Итак, наша среда — Logo Soft Comfort — представляет из себя вот чего (дублирую скриншот из заголовка поста):

Среда разработки Logo Soft Comfort

Среда разработки Logo Soft Comfort

Если вы хотите почитать про какой-то блок подробнее — наведите на него мышкой и подождите, пока появится квадратик (фотка ниже — из третьей части постов про Logo). Теперь, если нажать на значок вопроса, то откроется справка.

Добавляем реле Off Delay для управления вентилятором в Logo Soft Comfort

В справке пишут о том, как этот блок работает, и что значат его входы-выходы. Справка тут тоже ублюдочная, на уровне HLP-файлов (если кто помнит, чем они от CHM-справки отличались) и ещё и с мелкими картинками диаграмм работы, но ориентироваться помогает.

Чтобы начать ставить блок на схеме — надо ткнуть на него мышкой (и отпустить кнопку). А потом тыкать мышкой в те места схемы, куда вам надо поставить этот блок. Также можно просто взять и потащить его в нужное место схемы.

Выбор разных блоков (входы и выходы) в Logo Soft Comfort

Мы тыкаем себе Input. Это у нас будет физический вход на Logo. Мы себе заняли первые шесть штук для управления светом (делаем такой пример). Среда автоматом увеличивает номер входа или выхода, поэтому если вы ставите их подряд — вы и получите подряд наши шесть штук.

Расположили все входы на схеме Logo Soft Comfort

Расположили все входы и выходы на схеме Logo Soft Comfort

Попробуем чего-нить порисовать из соединений. Для этого надо ткнуть кнопку правее кнопки со стрелкой (которая нужна для выбора объектов). Ставим курсор на начало соединения (вывод) и тянем мышкой до нужного. И потом отпускаем.

Наичнаем рисовать схему (соединять блоки между собой)

Среда иногда жжот, когда рисует соединения. Они могут закрутиться в такого ктулху, что только диву даёшься. Про это — в третьей части, я там набрал парочку ржачных ситуаций! Какие ещё моменты про рисование соединений могут сгодиться:

Поэтому ищем наши импульсные реле. Они тут ЕСТЬ! Их даже не надо изобретать! Называются они — Pulse Relay. А для тех, кто пришёл из цифровой логики — это будет родной T-триггер с отдельными входами S и R. В реале это могла бы быть микросхема типа К155ТМ2, например (у которой входы ~Q и D соединены вместе).

Добавим блок импульсного реле (Pulse Relay) в Logo Soft Comfort

Воткнём наши реле в схему. Если захочется — их тоже можно будет обозвать как-нибудь.

Сигналы R и S импульсного реле (Pulse Relay) в Logo Soft Comfort

Ну что? Осталось только соединить входы Logo с входами Trg импульсных реле, а выходы этих реле подать на выходы Logo. Вот чего получится:

Простая схема управления светом на импульсных реле (Pulse Relay) в Logo Soft Comfort

Хе, хе! И всё! Схема уже рабочая, можно заливать в Logo и управлять светом на импульсных реле. Вуаля! =)

Соединяем вход центрального выключения света для Logo

И у нас получилась вот такая вот схема. Наглядно (если заранее всё красиво расположить)! И красиво!

Полная схема управления светом на импульсных реле в Logo

Для меня это всё — привет из детства. Мои 5-10 лет, паяльник и кассетницы из спичечных коробков со 155-ой серией микрух. Принципы те же, как и тут. Только там были дискретные микрухи. Например, отдельно берёшь элементы И-НЕ (К155ЛА3), делаешь на них генератор импульсов. Импульсы с генератора подаёшь на счётчик (К155ИЕ5), а со счётчика — на дешифратор (К155ИД10 или К155ИД3). А дальше — на ключи и вот тебе бегущий огонь =) А в качестве таймеров хорошо шли К155АГ1. Вот в моей старой дымовой установке все тайминги были на них и сделаны.

5. Программируем: симулируем схему и заливаем её в Logo.

Ну что? Погрели задницу паяльником ностальгии? Пора возвращаться из старой пыли в реальность. Давайте посмотрим, как можно проверить нашу схему в работе. Для этого, конечно же, есть симуляция — чтобы не сразу заливать всё в реальное устройство (опять же, чтобы никого не убило из-за мелкой ошибочки). Помню, как у меня глюканул конвертер ArtNet -> DMX, и все каналы DMX врубились на максимум вместо нулей. И новая дымовая установка тоже. И как ПОПЁР ДЫМИНА! =)) Хорошо, что успел быстро отключить.

Как вы знаете, в реальности наши входы у Logo могут идти к разным датчикам. Это могут быть концевые выключатели на каких-нить дверях или воротах, сигналы от положения рубильника с мотором OTM, или просто кнопки для управления чем-нибудь.

Настройка параметров симуляции в Logo Soft Comfort

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

Выбор режима симуляции для входов в Logo Soft Comfort

Режимы там называются так:

  • Switch — обычный выключатель (вкл-выкл постоянно);
  • Momentary pushbutton (make) — кнопка на замыкание;
  • Momentary pushbutton (break) — кнопка на размыкание;
  • Frequency — импульсы с определённой частотой.

Мы все свои линии переводим на кнопки с замыканием. Это окошко выбора параметров тоже мутное, мать его. Если повторно нажать на список выбора, ничего там не выбирая, то само собой подставится первое значение из него. Как будто те, кто писал Grid с Combobox (есть тут такие ещё?), сделали конец обработки выбора из списка не по Combobox_Select, а по Grid_Click — любой щелчок по сетке заканчивает выбор из списка, даже если он не открыт =) Пиздец индиокодинг.

Эх! Ладно! В очередной раз постебались над средой и ужасами Java и идём дальше.

Симулируем схему в Logo Soft Comfort: управляем IO из панели снизу

А ещё управлять схемой можно, тыкая входы на ней напрямую. Для этого надо подвести мышку на вход. Наш курсор меняется на карандашик. Можно и таким способом переключаться, если хочется. Иногда это удобнее вместо того, чтобы таскать мышь к панельке.

Симулируем схему в Logo Soft Comfort: нажали мышкой на вход I

Те сигналы, которые сейчас активны (1, TRUE), подсвечиваются красным. Те, которые неактивны (0, FALSE) — синим.

Меню выбора загрузки программы с компьютера в Logo

Вам вылезет такое же окошко, какое было для подключения к Logo по сетке (я его тут не показываю). Если в Logo уже есть программа и она сейчас запущена, то вас спросят — надо ли её остановить. А после того, как новая программа будет загружена — спросят, надо ли её запустить.

А вот так наша схема выглядит в редакторе самого Logo. В принципе, более-менее понятно. Но вот пачка соединений от I1 впечатляет, да.

Наша схема загружена в Logo и там так выглядит

На этом всё. В третьей части будем стебаться над средой и жечь с таймерами (вентилятор в воображаемые санузлы) и выводить тексты на экранчик Logo.

Читайте также: