Управляющий контроллер – » :

составляющие элементы, назначение, принцип работы

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

контроллер умный дом

Что представляет собой управляющий контроллер?

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

Важно отметить многокомпонентность функционала таких средств контроля. Главная их задача ориентируется на управление вышеназванной пользовательской техникой. Однако, для поддержания функции самого контроллера также отводится часть его ресурсов, не говоря о вспомогательных модулях. Кроме того, отдельное внимание при разработке таких систем уделяется способам коммуникации. Например, GSM-контроллеры для «умного дома» оснащаются специальными модемами, передающими данные о состоянии обслуживаемых компонентов непосредственно пользователю через сотовую связь. Если же речь идет об управлении охранных комплексов или инженерных систем, то в случае тревоги или аварии контроллер может программироваться на информирование специальных служб. Причем система GSM является вовсе не единственной из тех, благодаря которым реализуется удаленная связь с владельцем дома.

Составные части контроллера

контроллеры управления умным домом

Базовый набор функциональных компонентов включает центральный управляющий шкаф, дополнительную панель контроля, серверный компьютер, коммутаторы и модемы. На случай прекращения подачи электроэнергии также предусматривается источник бесперебойного питания, но чаще всего он рассчитывается на кратковременное отключение, поэтому в постоянном режиме эксплуатации полагаться на него не стоит. Центральный шкаф, в свою очередь, содержит счетчик энергии, вводный автоматический выключатель, операторскую панель, силовые контакторы и программируемый блок контроллера. Иногда применяются также выключатели линий питания, модули ввода-вывода, электромагнитные реле, упомянутый GSM-модем и т. д. При этом набор может иметь и урезанное количество компонентов – в зависимости от того, какие задачи выполняет контроллер.

«Умный дом» на базе небольшого коттеджа, к примеру, может не иметь модулей ввода-вывода, если в блок управления изначально заложена оптимальная программа работы. Также сокращение количества функциональных единиц может быть обусловлено стремлением к оптимизации ресурсов, требуемых для поддержания работы комплекса. И это не говоря об упрощении системы с целью обеспечения пользовательской эргономики в процессе эксплуатации.

Теперь стоит рассмотреть состав дополнительного шкафа. Как правило, в него включают или дублирующие резервные системы, которые уже присутствуют в составе основного шкафа, или же вспомогательные средства коммуникации, а также системы безопасности. То есть его интеграция в систему повышает надежность функций, которые реализует основной контроллер «умный дом». Оборудование в этом сегменте, к примеру, может быть представлено средствами сетевой локальной коммуникации, усилителями и тем же блоком бесперебойного энергоснабжения.

Какие задачи выполняет контроллер?

vera контроллер умного дома

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

При этом независимые каналы управления могут программироваться в отдельном порядке. Это касается наиболее ответственных объектов. Например, для контроля «теплого пола» зачастую предусматривают линию сложного четырехзонного управления в нескольких помещениях. Это же можно сказать об охранной инфраструктуре, которую обычно обслуживают GSM-контроллеры для «умного дома» с возможностью отправки SMS-сообщений пользователю и на пульты служб безопасности. Причем оповещение может параллельно производиться и по каналам беспроводных модулей коммуникации на базе интернет-соединения.

Принцип работы устройства

Общая концепция систем интеллектуального управления базируется на создании автоматизированного контроля. То есть комплекс изначально настраивается на самостоятельное управление целевыми компонентами «умного дома». Здесь важно отметить, что именно подразумевается под таким управлением. Это может быть настройка температуры котла, «теплого пола», включение или выключение светильников, регулировка параметров работы аудио- и видеотехники и т. д. При этом контроллеры управления «умным домом» могут работать, то есть принимать решения и на основе заранее заложенной программы, и на базе обратной связи от того же оборудования. В первом случае пользователь вводит определенные параметры функционирования с указанием логических цепочек. Классический пример – установка уличного освещения на работу в определенные часы ночью и полное отключение днем.

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

Контроллер «Овен»

gsm контроллеры для умного дома

В качестве базового решения компания предлагает контроллер модификации ПЛК100, к особенностям которого можно отнести применение протокола Modbus для организации каналов обмена информацией. Система рассчитана на обслуживание частных жилых домов с двумя этажами, уличным освещением, напольным обогревом, сигнализацией и т. д. Основным элементом комплекса выступает логический контроллер, связанный с операторской панелью и устройствами ввода-вывода по интерфейсу RS-485. То есть «умный дом» на контроллере «Овен» этой версии может программироваться самим владельцем при его желании. Системы ввода-вывода представлены аналоговым модулем МВА8 и коммутирующими устройствами от производителя INSYTE.

Главное меню оператора имеет 6 блоков управления, каждый из которых берет на себя один из подчиненных сегментов. В частности, это энергоснабжение, система напольного обогрева, осветительное оборудование, средства контроля температуры в разных частях дома, диспетчеризация и событийный журнал. Важно отметить, что это тот же GSM-контроллер для управления «умным домом», посредством которого может производиться отправка SMS. Оповещение в данном случае будет выполняться при аварии в линии энергоснабжения уличного освещения, при неполадках в питающем контуре и т. д.

Контроллер Vera

Сегодня на рынке доступно огромное количество различных контроллеров, но специалисты рекомендуют обращаться к продукции производителей, имеющих большой опыт работы в данном сегменте. И в этом отношении модели семейства Vera имеют огромный запас доверия, поскольку компания существует на рынке много лет. Одним из новейших решений является комплекс VeraEdge. К отличительным чертам этой системы относится компактность, высокая производительность и эргономика. Причем разработка выделяется даже на фоне остальных представителей линейки Vera. Контроллер «умного дома» в этом исполнении привлекателен и технологичной начинкой. Создатели применили высокопроизводительную платформу SoC, частота которой составляет 600 МГц. При этом объем операционной памяти был повышен до 128 Мб.

контроллеры для системы умный дом

Главное же нововведение, реализованное в VeraEdge, представляет чип системы Z-Wave Plus. Это уже пятое поколение микросхемы, в то время как большинство конкурентных аналогов все еще работает на платформах третьей генерации. Что это означает на практике эксплуатации? Пользователь может с максимальной нагрузкой использовать протоколы коммуникации, одновременно обслуживая более 200 устройств. Помимо этого, блок снабжен модулем Wi-Fi, что избавляет от сложностей с организацией проводных линий локальной связи. Это тоже новое решение, которым пока не могут похвастаться контроллеры управления «умным домом» от других производителей. Правда, не обошлось и без недостатков системы. К сожалению, она лишена интегрированного источника бесперебойного энергоснабжения.

Контроллер Arduino

Система Arduino предлагает довольно необычное, но вполне логичное решение для управления «умным домом». Ее справедливо называют комплексом, который реализуется своими руками, поскольку участие пользователя в организации контролирующей инфраструктуры в данном случае является основополагающим. Итак, что же предлагается в комплекте Arduino? Основу набора составляет непосредственно логический контроллер небольшого размера, а остальные компоненты представлены датчиками, сенсорами и всевозможными индикаторами. Когда говорилось, что количество компонентов может быть ограничено, то речь шла немного о других принципах сокращения элементов, но контроллер «умного дома» Arduino довел концепцию оптимизации практически до совершенства. Во-первых, все его датчики функционируют по беспроводному принципу, что избавляет от прокладки многочисленных сетей. Во-вторых, для непосредственного управления контроллером используются не традиционные блоки с операторскими панелями, а удобная и современная веб-страница, которая доступна и в качестве мобильного приложения. Что касается самих датчиков, то они представлены устройствами, фиксирующими данные потребления энергии, параметры влажности и температуры, открытие дверей и т. д.

умный дом на контроллере овен

Контроллеры Siemens

Немецкие управляющие контроллеры в основном ассоциируются с автоматизацией процессов в промышленности. Однако, недавно появилась весьма интересная линейка LOGO, в которой представлены системы для «умного дома». Компания при разработке данных комплексов придерживалась традиционного направления, предложив на выходе двухкомпонентную модель. Первичный модуль формирует инфраструктуру ввода-вывода информации, имеет в составе клавиатуру и дисплей. Второй модуль позволяет работать с контроллером через проводной интерфейс, то есть загружать программы с помощью компьютера. Для самостоятельной разработки рабочих режимов производитель предлагает и специальную программу – Soft Comfort. Если система используется как центральный контроллер «умного дома», то для нее вполне можно самостоятельно создавать алгоритмы управления и рабочие схемы. В плане производительности и функциональных возможностей модели этого семейства отличаются гибкостью. Дело в том, что каждую версию контроллера LOGO можно модифицировать посредством введения новых подсистем и модулей, которые и повысят эксплуатационные качества аппаратуры.

Плюсы и минусы контроллеров для «умного дома»

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

центральный контроллер умного дома

Заключение

Хотя многих потенциальных пользователей управляющих систем «умного дома» настораживает их многокомпонентность и громоздкость, с отдельными их элементами они давно знакомы. Например, электроника в современных котлах, холодильниках, акустических наборах и осветительных приборах нередко действует на тех же принципах. Более того, многие неосознанно делают тот же контроллер для «умного дома» своими руками, когда устанавливают систему безопасности на датчиках и модуле GSM. Только если в случае с охранными комплексами центром выступает панель, связывающая, например, сенсоры движения и детекторы дыма, то рассматриваемые контроллеры обслуживают весь спектр бытовых устройств, которые в принципе поддаются автоматическому управлению. Другое дело, что второй вариант оказывается более требовательным в части энергоснабжения, сложнее в реализации и эксплуатации.

fb.ru

Делаем контроллер для умного дома / Habr

Делаем контроллер для умного дома и не только.

В предыдущей статье я описывал разработку системы в целом. В этой я опишу разработку контроллера, который отвечает за опрос датчиков и модулей ввода-вывода. «Зачем изобретать велосипед?» — спросите вы. Во-первых, это интересно, во вторых, как ни странно, нет OpenSource решения для подобного контроллера, покрывающего как программную так и аппаратную часть. Статья ориентирована на людей немного разбирающихся как в электронике так и в embedded linux development.

Сделать контроллер, скажете вы, это же так сложно — нужно делать плату, писать софт, печатать корпус. Но в реалии всё чуть-чуть ещё сложнее, вот во что это вылилось для меня, но вы в принципе правы:

1. аппаратная часть контроллера

— выбор cpu платы для контроллера
— выбор IO контроллера
— выбор блока питания
— структурная схема контроллера
— разработка кросс платы для контроллера
— разработка плат для RS-485 модулей

— производство плат

2. софт для контроллера

— выбор системы сборки для ядра linux и rootfs
— структура разделов SD карты
— выбор бутлоадера и загрузка нужного rootfs
— изменения в device tree
— выбор системы сбора дебажных трейсов
— написание билдсистемы
— написание коммуникационного ядра
— написание mqtt гейтвея (дискретные/аналоговые точки контроллера -> топики mqtt)
— написание парсера гуглтаблицы и построение конфигурационного json файла для гейтвея
— написание point monitor для доступа к точкам контроллера
— монтирование readonly файловой системы

3. корпус контроллера

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

Пару слов о аппаратной части.

Наверно только самые отчаянные сейчас берут отдельно процессор, память, флеш, контроллер питания, еще пару сот компонентов и начинают лепить это всё вместе. Остальные же пользуются плодами трудов других людей, так быстрее и проще. Нужно всего лишь открыть браузер и написать «одноплатный компьютер» и весь остаток дня провести в выборе нужного. Мне нужно было много последовательных портов и желательно что бы плата поддерживала -40°C до +85°C, поэтому выбор пал на BeagleBone Black(BBB). Также на ВВВ вся периферия выведена на два разъёма PBD по 46 пинов с шагом 2.54, что удобно для макетирования и разработки кросс платы. Кросс плата нужна что бы объединить все компоненты на одной плате, у меня это — cpu плата, блок питания, IO контроллер, и платы каналов RS485. Также именно кросс плату нужно крепить к корпусу и на ней стоят разъемы для подключения питания и кабеля RS485.

Так, с cpu платой разобрались, следующее что надо решить — нужно ли на кросс плату ставить Input/Output(IO) контроллер или можно и без него. Я его заложил на плату, и успешно им пока не пользуюсь. Единственное что он делает это откладывает старт BBB на 1с после подачи питания и обслуживает кнопку reset.

Блок питания для контроллера я взял уже готовый MeanWell NSD10-12S5, разрабатывать его для единичного девайса — бессмысленная затея, просто подобрал его по потреблению и всё. На ЖКИ не обращайте внимание, он есть на плате, но поддержку я не реализовал.

Пару слов о платах каналов RS485.

На кросс плату выведены 4 последовательных интерфейса BBB. Так что туда можно поставить любой тип канала который нужно, RS485, CAN, Zigbee модуль…

Мне нужны были каналы RS485, так что я сделал только их, они с автоматическим управлением приемом/передачей и с гальванической развязкой. Почему не использовать управление приёмо-передачей с ВВВ, да потому что TI официально перестали поддерживать строб для RS485 в драйвере serial устройства. Можно найти патч к драйверу, можно дописать самому, но зачем? Сделав канал самостробирующий, можно его будет ставить на любую плату, например на RaspberyPi, где никогда и не было такой поддержки, если была, то поправьте меня. Строб для драйвера rs485 формируется на attiny10, дешево и сердито.

Возвращаемся к софту.

Выбор системы сборки для ядра linux и rootfs.

Существует несколько подобного рода систем, самые популярные это Yocto и BuildRoot. Ели вам нужно разработать большой проект, если у вас много времени и желания писать рецепты, то Yocto — ваш выбор. С помощью же BuildRoot, можно собрать всё что нужно для простого запуска платы очень и очень просто, т.к. я делаю систему на Beaglebone Black (далее ВВВ) то:

  1. почитать что написано здесь habr.com/ru/post/448638
  2. make clean
  3. make beaglebone_defconfig
  4. make

Вот и всё. Теперь всё необходимое для запуска платы, лежит в папке /buildroot/output/images.

Выглядит всё очень просто и не интересно, так что можно сделать немного посложнее:

  1. интегрировать buildroot в свою билдсистему, скачивать его скриптом, не забыв использовать стабильный тэг, а не брать последний develop
  2. написать свой defconfig и перед сборкой buildroot подкидывать его скриптом в папку /buildroot/configs, не забываем что все дефконфиги должны заканчиваться на *_defconfig, иначе buildroot его не видит
  3. копировать свой post-build.sh в board/beaglebone/post-build.sh
  4. сделать prepare скрипт, который будет делать п1, п2 и п3 за вас

Как результат buildroot будет генерировать zImage и rootfs.tar

Выбор структуры разделов SD карты:

На этом, думаю, не стоит много акцентировать внимание.
Я сделал 4 раздела BOOT / ROOT_1 / ROOT_2 / DATA.
В BOOT разделе хранится всё необходимое для начальной загрузки: MLO, barebox.bin, barebox.env, am335x-boneblack.dtb, zImage, boot.txt.

ROOT_1 и ROOT_2 содержат rootfs, выбор которого вписан в файле boot.txt(см. ниже). Все эти разделы монтируются как readonly во избежания крешев файловой системы при выключении питания. DATA содержит проектные конфиги, при изменении которых нет необходимости пересобирать код.

Такая структура разделов в будущем позволит легко написать software update компоненту. Эта компонента будет перезаписывать один из разделов ROOT_1/ROOT_2, который сейчас не используется, а потом просто менять файл boot.txt, если не нужно менять ядро.

Выбор бутлоадера.

У меня было много экспериментов с бутлоадерами для BBB. Сначала я использовал, как все, U-Boot который генерирует BuildRoot. Но мне он не понравился, может быть, конечно, это дело привычки, но мне показалось что это перебор, уж очень он тяжелый и сложно конфигурируемый. Потом, я подумал что не плохо бы было стартануть систему быстро, секунды за 2-3, и подпилив X-Loader так что бы он грузил ядро, у меня это получилось, но опять же остался вопрос с конфигурированием, да и время старта для меня не критично(система на systemd грузится сама по себе медленно, даже если удалить всё не нужное).

В конце концов я остановился на barebox, его простота мне очень понравилась, плюс на сайте есть вся документация (www.barebox.org).

Например, что-бы грузить rootfs c первого или второго раздела нужно всего лишь:

1. на boot разделе сделать файл boot.txt который экспортит переменную типа «export BOOT_NUM=Х»

2. сделать два скрипта /env/boot/sdb1 /env/boot/sdb2 в которых описать параметры загрузки, например:

echo "botting with mmcblk0p2 as rootfs..."
	global.bootm.image=/boot/zImage
	global.bootm.oftree=/boot/am335x-boneblack.dtb
	global.linux.bootargs.console="console=ttyO0,115200"
	global.linux.bootargs.debug="earlyprintk ignore_loglevel"
	global.linux.bootargs.base="root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait"

3. сделать скрипт /env/boot/sd в котором в зависимости от BOOT_NUM стартовать sdb1 или sdb2 скрипт

4. установить переменную boot.default

nv boot.default=sd
	saveenv

5. далее меняя BOOT_NUM в boot.txt мы будем загружать rootfs с первого или второго раздела, что в будущем можно использовать для software update.

Изменения в device tree.

Поскольку для связи с модулями я использую MODBUS RTU по RS485, то мне нужно было включить практически все существующие на ВВВ последовательные порты. Для этого надо заэнэйблить их в device tree, т.к. по умолчанию большинство из них выключены.

Правильно бы было сделать свой патч для файла am335x-bone-common.dtsi из пакета билдрута и применять его каждый раз перед его сборкой, но лень победила, и я просто вытащил все нужные файлы, поменял всё что нужно и сбилдил руками.

Т.к. это делается один раз, то можно и так:

1. Создаем папку с файлами необходимые для сборки:

am335x-bone-common.dtsi
	am335x-boneblack-common.dtsi
	am335x-boneblack.dts
	am33xx-clocks.dtsi
	am33xx.dtsi
	am33xx.h
	gpio.h
	omap.h
	tps65217.dtsi

2. В файле am335x-bone-common.dtsi нужно правильно настроить пины и заэнейблить драйверы портов:
uart1_pins: pinmux_uart1_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0)
			AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
		>;
	};
	uart2_pins: pinmux_uart2_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE1)
			AM33XX_IOPAD(0x954, PIN_OUTPUT_PULLDOWN | MUX_MODE1)
		>;
	};
	uart4_pins: pinmux_uart4_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE6)
			AM33XX_IOPAD(0x874, PIN_OUTPUT_PULLDOWN | MUX_MODE6)
		>;
	};
	uart5_pins: pinmux_uart5_pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x8C4, PIN_INPUT_PULLUP | MUX_MODE4)
			AM33XX_IOPAD(0x8C0, PIN_OUTPUT_PULLDOWN | MUX_MODE4)
		>;
	};
	&uart1 {
		pinctrl-names = "default";
		pinctrl-0 = <&uart1_pins>;
		status = "okay";
	};
	&uart2 {
		pinctrl-names = "default";
		pinctrl-0 = <&uart2_pins>;
		status = "okay";
	};
	&uart4 {
		pinctrl-names = "default";
		pinctrl-0 = <&uart4_pins>;
		status = "okay";
	};
	&uart5 {
		pinctrl-names = "default";
		pinctrl-0 = <&uart5_pins>;
		status = "okay";
	};

3. Далее немного магии, и готовый файл am335x-boneblack.dtb лежит в этом же каталоге:
a. sudo apt-get install device-tree-compiler

b. запускаем препроцессор:
cpp -Wp,-MD,am335x-boneblack.dtb.d.pre.tmp -nostdinc -Iinclude -Isrc -Itestcase-data -undef -D__DTS__ -x assembler-with-cpp -o am335x-boneblack.dtb.dts.tmp am335x-boneblack.dts

c. запускаем сам компилятор:
dtc -O dtb -o am335x-boneblack.dtb -b 0 -i src -d am335x-boneblack.dtb.d.dtc.tmp am335x-boneblack.dtb.dts.tmp

4. am335x-boneblack.dtb нужно положить на boot раздел рядом с ядром и в скрипте запуска для barebox добавить следующую строчку — «global.bootm.oftree=/boot/am335x-boneblack.dtb«

Выбор системы сбора дебажных трейсов.

Как известно систем без багов не бывает, как и анализа многопоточной системы без трейсов. Очень удобно если эти трейсы не выводятся просто в консоль, а собираются чем-то специально для этого созданным, да так что бы можно было сортировать их по процессам, применять фильтры и т.д. И я как раз знаю одну неплохую систему, которую легко собрать как под host так и под target. Это DLT, если вы никогда не слышали об этом, то это не беда, все пробелы в знаниях можно легко покрыть прочитав at.projects.genivi.org/wiki/display/PROJ/Diagnostic+Log+and+Trace.
Данная система состоит из dlt-daemon и dlt-viewer. Как и понятно из названия dlt-daemon запускается на таргете, а dlt-viewer на хосте. Плюс к этому всему, к своему бинарнику, с которого мы хотим собирать трейсы, нужно прилинковать dlt либу.

В общем удобно всё, как собирать трейсы так и анализировать их, рекомендую.

Написание билдсистемы.

Зачем писать билдсистему, ведь можно всё скачать с репозиториев, сбилдить руками, собрать на основе этого rootfs и вуалля, контроллер работает. Но повторить такой трюк через месяц будет сложнее, а через два — так вообще невозможно. Опять придётся вспоминать что, куда положить, что сбилдить и как запустить. Поэтому потратив немало времени сначала, вы экономите его потом, плюс вы получаете возможность удобно билдить под host и target. Билдсистема состоит из набора скриптов, которые сначала подготавливают host для билда, скачивают сторонние компоненты, такие как buildroot, mosquitto, DLT daemon, с их репозиториев, билдят их, раскладывают по своим местам. А уж потом можно запускать билд вашего проекта. Если билд под host, сделать не сложно, то с билдом под таргет всегда нужно повозиться, и лучше что бы это делал скрипт.

Buildroot можно сконфигурировать так что бы он вызывал post-build скрипт после того как он сформирует rootfs, которая будет лежать в buildroot/output/target. Это даёт отличную возможность вам положить туда всё то, что вам нужно. И тогда, образ файловой системы уже будет содержать всё необходимое для запуска вашей системы.

Рецепт примерно такой:

  1. надо скопировать свои бинарники куда-то в buildroot/output/target, например в /opt/bin
  2. если есть конфиги, то с ними сделать то же самое, только в /opt/etc
  3. скопировать сторонние бинарники, для меня это mosquitto, DLT daemon, их либы и конфиги
  4. Что бы при загрузке контроллера система стартанула сама — нужно скопировать ваши systemd сервисы, лучше их объединить в свой target и заэнэйблить его сделав симлинку в multi-user.
  5. скопировать модифицированный fstab(зачем, расскажу позже)

После этого вам достаточно распаковать buildroot/output/images/rootfs.tar на нужный раздел SD карты и включить питание.
build git repo: https://github.com/azhigaylo/build

Написание коммуникационного ядра.

Концепция этого стара как сам modbus.

У каждого устройства ввода-вывода в modbus сети есть регистры(16 bit), доступные на чтение, чтение/запись, в которых хранятся данные и через которые идет управление этими устройствами. У контроллера, в свою очередь, есть массивы дискретных(статус и byte значение) и аналоговых точек(статус и float значение), в которых он и хранит состояние всех параметров.

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

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

Также я решил разделить логические устройства на две группы:

  1. Стандартные (модули Овен дискретного ввода/вывода), для которых заранее известны номера modbus регистров с данными, и достаточно только определить точки контроллера куда сохранить эти данные.
  2. Пользовательские устройства, для них надо самостоятельно описывать маппинг modbus регистров на точки контроллера.

Из всего выше сказанного логично иметь какой-то конфигуратор для контроллера, будь то просто json конфиг или самописная тула генерирующая бинарный конфиг, подходит что угодно. У меня второй вариант, потому что были идеи писать коммуникационное ядро так, что бы его можно было легко запускать не только на линукс борде но и на Ардуине с FreeRtos, меняя PAL уровень в софте.

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

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

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

core git repo: https://github.com/azhigaylo/homebrain_core

Написание mqtt гейтвея.

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

Т.к. параметров у меня довольно много, то постоянно возникали путаницы в файле конфигурации гейтвея, где был прописан маппинг точек контроллера на mqtt топики гейтвея. Помогла гугл таблица, и написание csv парсера этой таблицы в конфигурационный json файл для гейтвея.

gateway git repo
parser git repo

Написание point monitor.

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

pointmonitor git repo: https://github.com/azhigaylo/pointmonitor

Монтирование readonly файловой системы.

Обычно этому мало кто уделяет внимание, и даже в продакшен проектах можно встретить устройства в которых партишен с rootfs доступен на запись. Это рано или поздно приводит к крешу любой, даже самой устойчивой файловой системы. Т.к. контроллер может быть выключен в любой время, то это лишь вопрос времени/случая когда это произойдет. Что бы минимизировать эту вероятность надо немного повозиться с fstab и перед сборкой образа rootfs, положить его туда, как было описано выше. В fstab, во-первых, надо примонтировать файловую систему как readonly а во вторых всё что может меняться замапить в tmpfs.

Мой fstab таков, у вас он может отличатся:

/dev/root / auto ro 0 1
tmpfs /tmp tmpfs nodev,nosuid,size=50M 0 0
tmpfs /srv tmpfs nodev,size=50M 0 0
tmpfs /var/log tmpfs defaults,noatime,size=50M 0 0
tmpfs /var/tmp tmpfs defaults,noatime,size=50M 0 0
tmpfs /var/run tmpfs defaults,noatime,size=50M 0 0
tmpfs /var/lib tmpfs defaults,noatime,size=10M 0 0

Корпус контроллера.

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

Рисуем в FreeCAD, генерим gcode в Cura и получаем корпус, не забыв сделать посадочные места под плату, вырезы под разъёмы и охлаждение и закладные для клипс на din рейку.

Ну вот и всё, теперь у нас есть плата, софт на SD карте и корпус. Берем напильник(не шучу) и соединяем всё вместе, подключаем питание, кабели RS485 и всё начинает работать. А вы говорили сложно, сложно…

habr.com

управляющий контроллер — с английского на русский

См. также в других словарях:

  • контроллер (в системах обработки и передачи информации) — устройство управления блок управления блок контроля управляющий блок центральный процессор — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом Синонимы… …   Справочник технического переводчика

  • Контроллер радиосети — или RNC (ар эн си, англ. Radio Network Controller контроллер радиосети) управляющий элемент в UMTS сети радиодоступа (UTRAN), контролирующий подключенные к нему базовые станции Node B. RNC осуществляет функции управления радио ресурсами,… …   Википедия

  • Твердотельный накопитель — Запрос «SSD» перенаправляется сюда; см. также другие значения. Твердотельный накопитель 2,5 и карандаш Твердотельный накопитель (англ. SSD, solid state drive)  компьютерное немеханическое запоминающее устройство на основе микросхем… …   Википедия

  • Б41 — У этого термина существуют и другие значения, см. Б41 (значения). Б41 (англ. B41)  российский 16 разрядный микроконтроллер, разработанный зеленоградской фирмой Kedah Electronics Engineering в 2004 году. Содержание 1 Общие сведения …   Википедия

  • Location-based service — Location based service, LBS (англ. Служба, основанная на местоположении)  тип информационных и развлекательных услуг, основанных на определении текущего местоположения мобильного телефона (МЕ, mobile equipment) пользователя.… …   Википедия

  • Sharp PC-1401 — Sharp PC 1401  портативный микрокомпьютер, выпущенный японской компанией Sharp в 1983 году, первая модель серии PC 14xx. Представляет собой инженерный калькулятор …   Википедия

  • Sharp PC-1251 — портативный микрокомпьютер, выпущенный японской компанией Sharp в 1982 году. Он являлся основной моделью серии PC 125x, третьей по счету серии микрокомпьютеров Sharp (после PC 121x и PC 15xx). Имел встроенный интерпретатор языка Бейсик и… …   Википедия

  • LanDrive — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете отредактировать эту ста …   Википедия

  • Контроллёр — Контроллер (калька с англ. controller регулятор, управляющее устройство) устройство управления в электронике и вычислительной технике: Игровой контроллер Контроллер домена Контроллер прерываний Контроллер электрического двигателя (например у… …   Википедия

  • выключатель — ▲ управляющий механизм ↑ для (кого), электрическая линия выключатель прибор для включения и выключения электрической нагрузки. переключатель. тумблер малогабаритный переключатель. рубильник. | геркон. контроллер. контактор. | токоприемник.… …   Идеографический словарь русского языка

  • Нейроуправление — (англ. Neurocontrol)  частный случай интеллектуального управления, использующий искусственные нейронные сети для решения задач управления динамическими объектами. Нейроуправление находится на стыке таких дисциплин, как искусственный… …   Википедия


translate.academic.ru

управляющий+контроллер — с английского на русский

ɪsˈkeɪp
1. сущ.
1) а) бегство;
побег to make an escape, organize an escape ≈ организовать побег to foil an escape, thwart an escape ≈ срывать побег escape from prison ≈ побег из тюрьмы б) перен. уход от реальности But for me television is an escape. ≈ Но для меня телевизор — это отдушина. an escape from the depressing realities of wartime ≈ уход от угнетающей действительности военного времени
2) избавление, спасение I hear you had a very narrow escape on the bridge. ≈ Я слышал, что ты едва спасся на мосту.
3) истечение, выделение( крови и т. п.) ;
утечка (газа, пара и т. п.)
4) тех. выпускное отверстие
5) одичавшее культурное растение
6) амер. беглец Syn: fugitive
2. гл.
1) а) бежать, совершать побег( from;
to) Two criminals escaped from prison last night. ≈ Вчера из тюрьмы сбежали двое заключенных. Young people often desire to escape from their parents. ≈ Молодые часто хотят сбежать от своих родителей. I hear that our married neighbour has escaped to her lover. ≈ Я слышал, наша женатая соседка сбежала к своему любовнику? Syn: flee, run away Ant: remain б) уходить от реальности, отключаться
2) избежать( наказания, опасности и т. п.), спастись;
отделаться He narrowly escaped with his life when right-wing extremists fired shots into his office. ≈ Ему едва удалось спастись, когда правые экстремисты открыли огонь по его офису. He seems to have escaped suspicion. ≈ Кажется, он избавился от подозрений. Syn: avoid
3) улетучиваться, давать утечку
4) ускользать, избегать an actor whose name escapes me ≈ актер, чье имя выскочило у меня из головы a fact, the significance of which had previously escaped me ≈ факт, значение которого до этого ускользало от меня She was too striking to escape their attention. ≈ Она слишком бросалась в глаза, чтобы избежать их внимания.
5) вырываться( из чьих-л. губ, у кого-л.) No word of courtesy escaped his lips. ≈ Ни одного слова не вырвалось из его губ.
6) одичать( о растении)
3. прил. спасательный escape literature ≈ литература, уводящая от реальной жизни;
литература, позволяющая расслабиться, отвлечься escape clause ≈ пункт договора, предусматривающий отказ от взятого обязательства escape ladder ≈ спасательная лестница escape route ≈ дорога к отступлению бегство, побег — to make good one’s * совершить удачный побег — to make one’s * by a back door сбежать через черный ход — an * from captivity побег из плена — to seek * from the heat пытаться спастись от жары уход из жизни, замыкание (в самом себе) — * literature, literature of * эскапистская литература, литература, уводящая от основных проблем жизни (детективная, развлекательная) избавление, спасение — doom from which there is no * судьба, от которой не убежишь — to find no * from the dilemma не найти выхода из трудного положения — to have a narrow * едва избежать опасности, быть на волосок( от смерти) утечка (газа, пара) (медицина) выделение, истечение — * of blood кровотечение выпуск( газа, пара) (техническое) выпускное отверстие одичавшее культурное растение рывок (борьба) уходы с ковра (борьба) (гидрология) сброс, водосброс на канале — * canal сточный канал( физическое) высвобождение, вылет( частицы) (юридическое) заключенный, совершивший побег переход выход — * code управляющий код — * key клавиша выхода бежать (из заключения) ;
совершать побег, убегать( из тюрьмы) — to * pursuit ускользнуть от преследования — he *d to the mountains он скрылся в горах уходить, отключаться — to * from everyday life уйти от повседневной жизни избежать (опасности) ;
спастись, отделаться — to * a blow увернуться от удара — to * observation ускользнуть от наблюдения — to * punishment избежать наказания;
остаться безнаказанным — he just *d being killed его чуть не убили — they barely *d with their lives они еле-еле унесли ноги — all children *d the measles никто из детей не заболел корью — he *d with fright он отделался испугом — we cannot * the inpression that… мы не можем отделься от впечатления, что… ускользать (о смысле) — your point *s me я не понимаю (к чему вы клоните) — the details *d my mind подробности выпали у меня из памяти — his name *s me никак не могу вспомнить его имени вырваться( о словах, стоне) — a cry *d him он испустил крик — not a word *d his lips он не проронил ни слова( специальное) улетучиваться;
просачиваться — gas is escaping есть утечка газа( физическое) высвобождаться, вылетать( о частице) escape бегство;
побег;
перен. уход от действительности ~ бегство из-под стражи ~ бегство из-под стражы ~ бежать, совершать побег (из заключения, плена) ~ бежать из-под стражы ~ тех. выпускное отверстие ~ вырываться (о стоне и т. n.) ~ выходить ~ давать утечку;
улетучиваться ~ заключенный, совершивший побег ~ избавление;
спасение;
to have a hairbreadth escape едва избежать опасности, быть на волосок( от чего-л.) ~ избежать (опасности), спастись;
избавиться;
отделаться;
to escape punishment избежать наказания ~ истечение, выделение (крови и т. n.) ~ незаконно освобождать из-под стражы ~ незаконное освобождение из-под стражи ~ незаконное освобождение из-под стражы ~ одичавшее культурное растение ~ оставаться безнаказанным ~ вчт. отмена ~ переход ~ потеря ~ смена ~ совершать побег ~ уйти невредимым ~ ускользать;
your point escapes me я не улавливаю вашей мысли;
his name had escaped my memory не могу припомнить его имени;
nothing escapes you! все-то вы замечаете! ~ утечка (газа, пара и т. n.) ;
выпуск (газа, пара) ~ уход ~ уходить, отключаться, отстраняться, замыкаться в себе scape: scape уст. = escape ~ attr. спасательный;
escape ladder спасательная лестница;
escape route дорога к отступлению ~ hatch десантный люк ~ hatch люк для выхода в космическое пространство( в космическом корабле) ~ attr. спасательный;
escape ladder спасательная лестница;
escape route дорога к отступлению ~ избежать (опасности), спастись;
избавиться;
отделаться;
to escape punishment избежать наказания ~ attr. спасательный;
escape ladder спасательная лестница;
escape route дорога к отступлению route: escape ~ путь побега ~ velocity вторая космическая скорость ~ избавление;
спасение;
to have a hairbreadth escape едва избежать опасности, быть на волосок (от чего-л.) ~ ускользать;
your point escapes me я не улавливаю вашей мысли;
his name had escaped my memory не могу припомнить его имени;
nothing escapes you! все-то вы замечаете! locking ~ вчт. переход с блокировкой nonlocking ~ вчт. переход без блокировки ~ ускользать;
your point escapes me я не улавливаю вашей мысли;
his name had escaped my memory не могу припомнить его имени;
nothing escapes you! все-то вы замечаете! ~ ускользать;
your point escapes me я не улавливаю вашей мысли;
his name had escaped my memory не могу припомнить его имени;
nothing escapes you! все-то вы замечаете!

translate.academic.ru

Доработка компьютера до управляющего контроллера

 

МС подключается к параллельному порту ПК стандартным «принтерным» кабелем Cetronix, обозначен на схеме — А1, с указанием контактов разъема адаптера. Датчики К1-К5 работают на замыкание. Микросхема К155ЛН4 служит для некоторой защиты адаптера от неблагоприятных внешних воздействий (в случае чего, проще заменить одну микросхему, чем весь адаптер). Можно использовать и другие элементы типа ЛН той же серии, например 155ЛН1, 155ЛН2, но в таком случае при обработке сигнала надо будет учитывать инверсию. При замыкании одного из ключей К1 на соответствующем входе логического повторителя высокий уровень сменяется низким, и на вход адаптера поступает сигнал изменения внешнего воздействия и заносится в порт 379Н, либо в 37АН (сигнал «разрешение прерывания») и затем обрабатывается программой. В ответ на внешние воздействия компьютер в соответствии с алгоритмом вырабатывает управляющие сигналы. Управляющая информация записывается по шине данных в регистр RG после прохождения стробирующего сигнала на вход С микросхемы КР1533ИР23. ТТЛ выход регистра защищен диодами КД522Б и резистором номиналом 130 Ом. Затем сигнал усиливается блоком усиления БУ0-БУ7, собранным в виде транзисторного ключа на элементах Т1,Т2. Напряжение питания на транзисторный ключ подается в зависимости от применяемого реле от +5 до +24В. Реле РП21 или аналогичные. Напряжение питания микросхем +5В. Вот и вся аппаратная часть. Можно приступать к программному обеспечению.

При программировании управляющего сигнала нужно иметь в виду, что управление осуществляется сразу по всей шине данных. Например, если вначале был включен бит DАТА 0 (десятичный код 1, двоичный- 000000001), а затем возникла необходимость включить бит DАТА 1, не выключая DАТА 0, то надо подавать управляющий сигнал = 3 (00000011 двоичный). При управляющем сигнале=2 (00000010) произойдет отключение бита DАТА 0. Нужно также иметь в виду, что некоторые языки на прямую не поддерживают двоичный формат, поэтому, например в BASIC, все необходимые управляющие сигналы надо привести к десятичному формату. Входной сигнал считывается из МС в порт 379Н. Значимыми являются 4,5,6,7,8 биты порта. Опять же при необходимости надо привести входной сигнал к двоичному формату.

Управление портами осуществляется по алгоритму:

  1. Загрузить в 378H управляющий сигнал

  2. Загрузить в 37АH 1 (единицу- 00000001)

  3. Очистить 37АH — 00000000

  4. Загрузить в 37АH 1 (единицу- 00000001)

Чтение пришедших сигналов:

  1. Прочесть 379H

  2. Проанализировать биты 3,4,5,6,7

Вот как реализован этот алгоритм на языке BASIC:

10 REM ************* Обнуление констант и портов**************
g = 0 'выходной (управляющий) сигнал'
b = 0 'входной сигнал'
OUT &h478, 0: OUT &h479, 0: OUT &h47A, 0 'обнуление портов'
GO TO 100
20 REM ******** Выдача управляющего сигнала *************
OUT &h478, g
OUT &h47A, 1: OUT &h47A, 0: OUT &h47A, 1
RETURN
30 REM ********* Чтение входных сигналов ****************
b = INP(&h479)
REM *** b число десятичное его необходимо перевести в двоичное***
FOR n = 0 TO 7
IF b = 1 THEN c(n) = 1
b(n) = CINT(b / 2 - .4)
IF b(n) = b / 2 THEN c(n) = 0 ELSE c(n) = 1
REM интересуют сигналы : c(3), c(4), c(5), c(6), c(7)
b = b(n)
NEXT n
RETURN

Связь компьютера с МС происходит при выполнении подпрограмм, начинающихся строками 20 и 30. В общем случае при написании программ на BASIC достаточно в текст программы поместить фрагмент, выделенный красным цветом и в последующем к нему обращаться как к подпрограмме ввода/вывода. Алгоритм управления конкретным процессом строится с учетом этих замечаний и написание программ больше не имеет никаких особенностей.

Таким образом мы получили вполне работоспособный управляющий микроконтроллер, совмещающий в себе собственно контроллер и компьютер верхнего уровня. Кстати почувствуйте разницу: старое «железо» уже почти ничего не стоит, а новый самый простенький микроконтроллер «потянет» не менее 200$, плюс еще специальное ПО.

Несколько замечаний по теме.

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

Принтер есть ни что иное, как специализированный печатающий контроллер. Не составляет почти никакого труда превратить его в контроллер многофункциональный.
На самом деле, возьмем, например, матричный шестнадцати игольчатый принтер. Что мы имеем?

  • 16 выходов- иголок

  • 1 выход — звонок

  • 1 выход — управление кареткой

  • 1 выход — прогон листа

  • 1 вход — наличия бумаги

  • 1 вход — положения каретки

Итак, у нас почти готовый универсальный контроллер 2 х 19

Это только то, что видно невооруженным взглядом. А если еще почитать инструкцию?! 🙂

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

Клавиатура — может служить прекрасным (>100 разрядов) модулем входов. Нужно только клавиши — датчики на замыкание — установить в необходимых местах. А программу настроить на считывание скан — кода клавиш.

Звуковая карта — модуль ввода — вывода аналоговых звуковых сигналов, где микрофоны могут быть датчиками шума.

Мышь — датчик перемещения.

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

Примеры «нестандартного» использования компьютера.

Самый простой пример — управление переключением елочных гирлянд. О применении для этих целей принтера уже говорилось. Но можно обойтись и без него — достаточно к «принтерному» разъему системного блока подсоединить Модуль Согласования и к контактам реле подключить гирлянды. Задача сводится к написанию управляющей программы. В том же BASIC для восьми гирлянд это может выглядеть так (с учетом ранее веденного кода стандартного обращения к портам):


50 REM ****************Таймер*************************************
i = TIMER
55 IF TIMER >= i + 1 THEN RETURN ELSE GOTO 55
100 REM *************** Задание констант*****************************
K11= 85 '01010101'
K12=170 '10101010'
K21=102 '01100110'
K22=153 '10011001'
K31=119 '01110111'
K32=136 '10001000'
K41=240 '11110000'
K42=15 '00001111'
K51=0 '00000000'
K52=255 '11111111'
110 REM ****************Чтение порта********************************
GOSUB 30
IF C(3)=1 THEN GOSUB 120
IF C(4)=1 THEN GOSUB 130
IF C(5)=1 THEN GOSUB 140
IF C(6)=1 THEN GOSUB 150
IF C(7)=1 THEN GOSUB 160
RETURN
REM *** Вклвыкл выходов согласно заданных констант***************
120 g=K11:GOSUB 20:GOSUB 50
g=K12:GOSUB 20:GOSUB 50
GOSUB 110
GO TO 120
130 g=K21:GOSUB 20:GOSUB 50
g=K22:GOSUB 20:GOSUB 50
GOSUB 110
GO TO 130
140 g=K31:GOSUB 20:GOSUB 50
g=K32:GOSUB 20:GOSUB 50
GOSUB 110
GO TO 140
150 g=K41:GOSUB 20:GOSUB 50
g=K42:GOSUB 20:GOSUB 50
GOSUB 110
GO TO 150
160 g=K51:GOSUB 20:GOSUB 50
g=K52:GOSUB 20:GOSUB 50
GOSUB 110
GO TO 160
END.

В начале бежит один огонь, затем, два, три, четыре, затем все гаснет и снова зажигается, после чего цикл повторяется. Очередность включения может быть и другой, в зависимости от предпочтений пользователя. Описанный метод можно применить и для более серьезного использования, например, для организации световых табло. Но в этом случае программа будет сложнее, должна работать в динамике, и МС придется немного доработать. Для этих целей надо использовать выходные сигналы порта 37АН: AUTO, INIT, SLCT, организовать через них 3-х разрядный счетчик, и через дешифратор управлять выбором индикаторов. Таким образом, можно получить световое табло » бегущая строка» из восьми символов. Используя сегментацию, длину «строки» можно наращивать. В общем случае возможности нестандартного применения компьютера ограничены только фантазией.

Источник: rаdiоteсh.by.ru

radiofanatic.ru

Управляющий контроллер КП «Исеть» | «НТК Интерфейс»

Рисунок 1 — Управляющий контроллер
КП «Исеть»
на базе «Синком-IP/DIN»

Управляющий контроллер КП, выполненный на платформе контроллера «Синком-IP», предназначен для:

  • приема телеинформации по шине CAN от функциональных модулей съема телесигнализации, телеизмерений текущих и телеизмерений интегральных;
  • формирования поля данных контролируемого пункта;
  • передачи телеинформации по выбранным каналам и протоколам;
  • организации телеуправления при приеме соответствующих команд со стороны верхнего уровня.

Основу контроллера «Синком-IP» составляет модуль, содержащий процессор архитектуры MCS-51 и набор микросхем, которые обеспечивают связь в протоколе UDP по локальной сети Ethernet. Контроллер выполнен в виде двухплатного модуля, предназначенного для установки на DIN-рейку.

Контроллер способен одновременно обслуживать на CAN-шине до 8 модулей «ТС430», 8 модулей «ТИТ430» и 8 модулей «ТУ430» одновременно.

Контроллер поддерживает одновременно два независимых канала связи с верхним уровнем:

  • По порту RS-232 — протоколы «Исеть COMTMPKT», ГОСТ Р МЭК 870-5-101*;
  • По порту Ethernet — протоколы «Исеть UDP», «Исеть Радио», ГОСТ Р МЭК 870-5-104*.

* Существует ограничение: невозможно одновременно использовать протоколы МЭК 870-5-101 и 870-5-104 на одном контроллере.

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

Рисунок 2 — Структурная схема КП «Исеть» на несколько каналов связи

Технические характеристики контроллера

Параметр Величина Ед. измерения
Скорость по сети Ethernet 10 или 100 МБод
Скорость по асинхронному порту от 50 до 115200 бод
Скорость по синхронному порту от 50 до 4800 бод
Скорость по шине CAN-BUS 50 или 500 кбод
Напряжение питания от 9 до 36 В
Потребляемая мощность, не более 1 Вт
Диапазон рабочих температур от −10 до +70 °C

iface.ru

управляющий контроллер — с русского на английский

См. также в других словарях:

  • контроллер (в системах обработки и передачи информации) — устройство управления блок управления блок контроля управляющий блок центральный процессор — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом Синонимы… …   Справочник технического переводчика

  • Контроллер радиосети — или RNC (ар эн си, англ. Radio Network Controller контроллер радиосети) управляющий элемент в UMTS сети радиодоступа (UTRAN), контролирующий подключенные к нему базовые станции Node B. RNC осуществляет функции управления радио ресурсами,… …   Википедия

  • Твердотельный накопитель — Запрос «SSD» перенаправляется сюда; см. также другие значения. Твердотельный накопитель 2,5 и карандаш Твердотельный накопитель (англ. SSD, solid state drive)  компьютерное немеханическое запоминающее устройство на основе микросхем… …   Википедия

  • Б41 — У этого термина существуют и другие значения, см. Б41 (значения). Б41 (англ. B41)  российский 16 разрядный микроконтроллер, разработанный зеленоградской фирмой Kedah Electronics Engineering в 2004 году. Содержание 1 Общие сведения …   Википедия

  • Location-based service — Location based service, LBS (англ. Служба, основанная на местоположении)  тип информационных и развлекательных услуг, основанных на определении текущего местоположения мобильного телефона (МЕ, mobile equipment) пользователя.… …   Википедия

  • Sharp PC-1401 — Sharp PC 1401  портативный микрокомпьютер, выпущенный японской компанией Sharp в 1983 году, первая модель серии PC 14xx. Представляет собой инженерный калькулятор …   Википедия

  • Sharp PC-1251 — портативный микрокомпьютер, выпущенный японской компанией Sharp в 1982 году. Он являлся основной моделью серии PC 125x, третьей по счету серии микрокомпьютеров Sharp (после PC 121x и PC 15xx). Имел встроенный интерпретатор языка Бейсик и… …   Википедия

  • LanDrive — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете отредактировать эту ста …   Википедия

  • Контроллёр — Контроллер (калька с англ. controller регулятор, управляющее устройство) устройство управления в электронике и вычислительной технике: Игровой контроллер Контроллер домена Контроллер прерываний Контроллер электрического двигателя (например у… …   Википедия

  • выключатель — ▲ управляющий механизм ↑ для (кого), электрическая линия выключатель прибор для включения и выключения электрической нагрузки. переключатель. тумблер малогабаритный переключатель. рубильник. | геркон. контроллер. контактор. | токоприемник.… …   Идеографический словарь русского языка

  • Нейроуправление — (англ. Neurocontrol)  частный случай интеллектуального управления, использующий искусственные нейронные сети для решения задач управления динамическими объектами. Нейроуправление находится на стыке таких дисциплин, как искусственный… …   Википедия


translate.academic.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *