В том, что моих знаний не хватает, я во очередной раз убедился несколько дней назад, когда программировал сценарии для магазина, продающего автоматизацию дома. Простые сценарии делаю легко, а вот сложные (для меня сложные), многоходовые, с этим плохо, очень. Вот к примеру, хотел я создать два демонстрационных сценария, первый попроще, второй достаточно сложный:
- При открывании входной двери в первый раз за день, и при срабатывании геркона, после ввода пароля в систему охранной сигнализации, система должна включить стартовое освещение и поприветствовать хозяина. Что-то типа «Здравствуй, хозяин. Я к твоим услугам. Что бы ты хотел?», естественно приятным женским голосом :) И после голосовой команды, например: «включи освещение витрины с Овеном» система должна это сделать. И быть все время в ожидании исполнить следующую команду, например: включи вентиляцию (по этой команде должен включиться Тион О2 и открыться клапан естественной вытяжки.
- При подаче команды «Дискотека» (допустим радиоканальным выключателем), система должна оценить состояние нагрева дымогенератора. Если дымогенератор не готов к работе (не нагрет), оповестить пользователя, что начат нагрев и надо на это, например, 3 минуты. Можно раз в минуту сообщать, что осталась еще, например, минута. Если и когда дымогенератор готов, то оценить освещенность помещения, при необходимости опустить шторы, выпустить «дым» из дымогенератора и выпускать с периодичностью, например, 30 сек., поставить вентиляцию на минимум, включить музыку и световое лазерное оборудование, проиграть композицию, затем выключить музыку, открыть шторы, при необходимости включить свет, включить вентиляцию на полную мощность и очистить помещение от дымов.
В общем ничего у меня с моими скудными познаниями не получилось. Не смог ничего запрограммировать. Поэтому, помятуя выражение «высшее образование не дает знаний, оно дает умение найти необходимую информацию, изучить ее и воспользоваться», я недолго думая иду на обучение програмированию ПЛК в среде CODESYS 3.5.
Что такое ПЛК? Программи́руемый логи́ческий контро́ллер (сокр. ПЛК; англ. programmable logic controller, сокр. PLC; более точный перевод на русский — контроллер с программируемой логикой), программируемый контроллер — электронная составляющая промышленного контроллера, специализированного (компьютеризированного) устройства, используемого для автоматизации технологических процессов. В качестве основного режима работы ПЛК выступает его длительное автономное использование, зачастую в неблагоприятных условиях окружающей среды, без серьёзного обслуживания и практически без вмешательства человека.
Что такое CoDeSys? На сегодняшний день CoDeSys (Controller Development System) — это самый популярный в мире аппаратно независимый комплекс для прикладного программирования ПЛК и встраиваемых контроллеров. Основным его компонентом является среда программирования на языках стандарта МЭК 61131-3. Комплекс работает на компьютере. Программы компилируются в машинный код и загружаются в контроллер. Любую задачу, которая имеет решение в виде программы, можно реализовать в CoDeSys.
Что такое CODESYS 3.5? Если упрощенно, то это язык программирования с визуализацией. Визуализаций как для программиста, так и для пользователя, через сенсорные ПЛК (читай панели) ОВЕН.
ПЛК (программируемые логические контроллеры) Овен вполне себе приличное оборудование, да еще и нашего производства. Поэтому я все чаще применяю именно их, но знания необходимо очень сильно подтянуть.