Как стать автором
Обновить

Комментарии 75

Наконец-то Киркоров полезным делом занялся!
Как же накаляют дамочки(в подавляющем большинстве) тем что нажимают на кнопки обоих обоих направлений. Последние пять лет везло работать в трех компаниях, в которых мой офис находился на последнем этаже и если на семиэтажном здании это терпимо, да и в принципе чаще ходишь пешком, как минимум вниз, то работая на пятнадцатом этаже бывает такое, что поднимаешься или спускаешься останавливаясь через этаж и на большинстве этих этажей просто никого нет. Кстати в пятнадцатиэтажном здании это происходило гораздо реже чем в десятиэтажном, интересно от чего это зависит. На текущем месте работы чаще всего жмут две кнопки на 2-5 этажах, хотя один или два этажа могли бы уже подняться/спуститься по лестнице.
Есть вообще три типа подобных персонажей, для которых в аду уготован специальный лифт с огненным дерьмом:
1) Описанный вами. Л — логика, видимо, взятая из такси — главное поймать, а там уже скажешь, в какую сторону ехать.
2) Заходящие в лифт, приехавший по кнопке кабины в другом направлении, а не по вызову с этажа. Абсолютно не понимают бессмысленность действия «скататься на ненужный этаж со всеми, потоптаться, пропуская выходящих там, на обратном пути помахать ручкой своему этажу, остановившись на свою же кнопку». Наверное, так и правда быстрее.
3) Очень спешащие и дорожащие временем. Нажмут кнопку, затем, услышав открытие дверей лифта на соседнем этаже, закатывают глаза и бегут на лестницу.

Бонусом еще бывают любители проехать один этаж, но среди таких попадаются реально старенькие боббушки или люди с какими-нибудь принтерами в руках, так что это не в 100% случаев бесит.
2) Заходящие в лифт, приехавший по кнопке кабины в другом направлении, а не по вызову с этажа. Абсолютно не понимают бессмысленность действия «скататься на ненужный этаж со всеми, потоптаться, пропуская выходящих там, на обратном пути помахать ручкой своему этажу, остановившись на свою же кнопку». Наверное, так и правда быстрее.

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

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


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

НЛО прилетело и опубликовало эту надпись здесь
Странно что никто ничего пока не написал про протокол. Он ШИКАРЕН! Это же надо… Надо взять на заметку. Ждать 9 бит, грохать все, что не проходит аппаратно. А потом нужное по 8-ми битному. Как по мне, это мега крутой лафхак. Подозреваю, что у такого протокола по любому есть название. Правда я о нем не слышал. Если кто знает, напишите пожалуйста.

Этот протокол называется proprietary. :-)


А серьезно 9/8 бит — если мне не изменяет память (8051 изучал еще 20 лет назад), это аппаратная особенность UARTа в 8051 контроллерах, которая и позволяет легко организовать мультипроцессорный режим — т.е. 9-и битные посылки — это а-ля multicast, а 8-битные — это уже работа с конкретным узлом в сети. Т.е. UART там имеет разные режимы, в зависимости от того, чего ждет данный узел.

Да, точно, в даташите он так и называется.
Не, про это я знаю. Имею в виду кто додумался использовать 9 бит на «выбор получателя», а 8 бит на «данные». Опять же, из-за шумов все может упасть (хотя тут размах большой и скорости низкие, так что не должно).
Имею в виду кто додумался использовать 9 бит на «выбор получателя», а 8 бит на «данные».

Ну лично я прочитал про такую возможность использования 9-го бита в какой-то книжке про программирование МК К1816ВЕ48/51 (такая черная обложка была). Там как раз описывался такой алгоритм работы с использованием 9-битного режима. А вот как он попал туда — ХЗ. Наверняка из ранних App-Notes на 8051-ый контроллер.


Вот, например, одно из описаний работы в этом режиме:
http://basicembedded.blogspot.com/2014/10/multiprocessor-communication-using-8051.html

Это есть на многих контроллерах. В таком виде точно присутствует на AVR и STM32.

Интересно, не может ли ошибочно быть принята 9-битная посылка в 8-битном режиме, если 9-й бит будет принят за стоповый (высокий уровень сигнала)?

Нет. В 8-битном режиме суммарно 11 бит, перед и после которых тишина в линии (высокий уровень). Вот в 9-битном режиме можно принять 8-битный пакет.
image
Мне кажется, в 9-битном режиме 8-битный пакет примется, только если парити-бит будет установлен в 1. Иначе будет аппаратная ошибка.

Да, именно так.

Обычно у всех контроллеров при настройке UART есть выбор из 5, 8, 9 бит. В ATmega/xmega точно есть. Девятый бит часто используют для обозначения начала пакета или ещё для каких-то нужд. Во-всяком случае, лет 15 назад это было модно, по моим наблюдениям.
Особенно радует, когда нужно сделать программу на ПК для связи по 9-битным протоколу. Там такой опции нет и нужно использовать бит чётности. Именно такую штуку мне пришлось писать в 2001 году, когда я устроился на работу после института.
А точно интерфейс +24/0 а не +12/-12, что характерно для RS232?
Это точно не 232.
А, что помешало сохранить оригинальный дизайн платы на оригинальных комплектующих, даже после разбора логики работы пульта? (и какого объёма получился результирующий файл для AVR по сравнению с 2Kb оригинала) Си компиляторы есть и для 8052 ядер контроллеров.

P.S. 8051 ядро даже ещё очень востребовано и например контроллер CY7C68013A-56VXC применяется в разных популярных логических анализаторах типа Saleae Logic, USBee и других. Есть и свободное sigrok ПО для логических анализаторов на данной микросхеме Ещё на данной микросхеме делают переходники USB-LPT

Как ни странно, но упоминания 8051, 8052 много в проектах на Github (наверное его много где ещё изучают)
Избыточность компонентов, старая элементная база (новая плата полностью под SMT). Даже сам контроллер AT89C2051 уже давно obsolete.
Даже сам контроллер AT89C2051 уже давно obsolete.

Как это obsolete? Вполне живой еще :-)
Да и вообще почти вся линейка Атмеловских 8051-совместимых МК все еще in Production.

Точно помню, что его нельзя было купить. Может микрочип оживил.
Было время с проблемой поставок, но это когда Атмел дышал на ладан. Хорошо, что майкрочип не дал ему сгинуть.
Для меня вообще новость, что в кнопках вызова есть целые платы и там хексами какие-то сложные алгоритмы намучены. Думал, что все решает если и не релейная схема, то уж по крайней мере один процессор в кабине или машинном. Зачем это вообще? Цикл «открывай двери на попутных этажах» и условия срабатывания датчиков этажа/фотоэлемента/реверса дверей, что еще нужно? Я правда, серьезно не понимаю.
Есть и релейные схемы, до сих пор используются. Электронные проще в обслуживании, экономия на проводке и её обслуживании (банально меньше проводов вызванивать).
Вот к примеру эта кнопка: на всю шахту к кнопкам вызова идёт шина из 4 проводов питания (одна пара для цепей безопасности, насколько помню) и 2 проводов шины данных. Этого достаточно для обработки до 4 кнопок, 4 светодиодов и индикатора этажа на каждом этаже. С релейной схемой нужен жгут из нескольких десятков проводов.
А в системах с группой из нескольких лифтов это уже необходимо для реализации алгоритмов оптимизации поездок. Их не построить на релейной логике.
Ну уж насчёт оптимизации алгоритмов поездок вы загнули…
Понятное дело, что логика может быть совсем примитивной в стиле «вверх едем без остановок, вниз собираем все нажатые кнопки» и даже с учётом кнопок вверх-вниз тоже, но тем не менее, она была и в полностью релейных станциях.

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

Да, сейчас алгоритмы оптимизации обслуживания лифтов настолько усложнились, что никакая релейная станция их не обслужит.
Интересно, где нибудь есть готовые и отлаженные имплементации хотя бы лифтов так на 8 в открытом доступе? Хотелось бы потестить.

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

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

Ну так ваш ответ и не противоречит моему. Я всего лишь возразил на ваш довод, что на релейной станции невозможна сколь-нибудь сложная логика, а она возможна. Конечно, не такая крутая, как вы описали, но сложнее примитивного «нажата одна кнопка, значит едем туда и всё остальное игнорируем» точно.

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

Про что я и говорю — оно есть и работает.

А сколько я видел — почти нигде не работало. Это всегда была головная боль электромехаников

Это называется "распределенная система" и причина в том, что в классическом исполнении на каждый этаж нужно как минимум пара сигнальных проводов. При увеличении этажности общая длина проводов растет в геометрической прогрессии (больше проводов + суммарная высота каждого из них) и где-то начиная с 10+ этажей переход на последовательный интерфейс с платой на каждом (иногда на 2-4 этажа) становится экономически более выгодным.


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


Кстати сейчас часто используется интерфейс CAN.

Похоже в лифтах все хуже, чем я предполагал… и главное никакой сертификации или проверки в крайних режимах, к примеру, пожарном…
Нередко безопасные системы разделяют на части — та, которая отвечает за безопасность, и та, которая не отвечает. Хорошее решение, чтобы избежать оверинжиниринга и геморроя с сертификацией.
Например, на железной дороге есть такой класс систем — электрическая централизация. Она отвечает за управление стрелками и сигналами в рамках одной станции. Так вот, наборная группа централизации — то есть средства задания маршрута в рамках станции (кнопки, АРМы, кое-какая логика — в зависимости от релизации) — не являются безопасной схемой. А вот исполнительная группа (аппаратура, которая непосредственно переводит стрелки и переключает сигналы) — отвечает всем требованиям безопасности, т.е. исключает перевод стрелки под составом, задание враждебных маршрутов и прочие опасные ситуации.
В случае с лифтом кнопка может не относиться к безопасной части, поэтому на неё можно забить. Но это не точно.
боялся, что не вспомнят:)
Везде всё хуже, чем кто-то предполагает.

Кто сказал, что нет сертификации и стандартов? В пассажирских лифтах давно действуют ПУБЭЛ, и европейские стандарты EN-81.
Сертифицируют и лифты и электронику к ним.

Кнопка лифта не относится к цепям безопасности, но тоже сертифицируется.

Мы похожий протокол используем с 1995 г. Просто, надежно, красиво. На старых объектах до сих пор работает.
Те, кто пошел другим путем (например, все данные по 8 бит), были вынуждены изобретать методы выделения начала и конца передачи (разного рода staff-byte, управляющие символы и т.п.), выделение адреса в посылке, и контроллер основную часть времени занимается анализом обмена.
Сама линия связи формируется из RS-232 с помощью одного резистора и двух диодов. При этом режим работы строго симплекс: приемник принимает сначала данные, переданные своим же передатчиком, а потом ждет ответ.
На стороне контроллера стоит усилитель — повторитель на двух транзисторах.
Опять таки проще некуда, надежно, дешево, но имеется гальваническая связь между приборами (одна из причин последующего перехода на RS-485 — возможность использования гальванической развязки).
Годах этак в 1990-1995 типовых решений для RS-485 не было, и реализация интерфейса стоила ощутимых денег, поэтому и изобретали подобные схемы.
Забавно увидеть сходные решения в столь серьёзном деле, как лифтовое хозяйство.

Те, кто разрабатывали распределенные системы управления лифтами в 2000-ые годы в связи с появлением серьезного спроса на повышенную этажность (18 этажей и выше), и с отсутствующей в то время доступной элементной базой для реализации честных RS-485/CAN, были весьма в затрудненном положении и извращались как могли.
Лично я видел и что-то на подобии SPI (а-ля на сдвиговых регистрах) и а-ля I2C (с отрытым коллектором) и как вот здесь. Еще есть матричные системы. Отдельным вопросом шла гальваническая развязка. На главном контроллере это маст-хэв и так как он всего один на всех, это не дорого. А вот на каждой плате на этаже — очень большая копейка выходит. В итоге опять же извращались как могли — и если гальванической развязки нет — у многих были интересные защитные решения.


Сейчас, есс-но все намного упростилось.

Например, включение реле производилось через тройной каскад из биполярного транзистора, оптопары и полевика (именно в таком порядке).


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

Реле на фото видно, там 5В и что-то вроде 1А/250В на коммутацию. Для него достаточно полевика, а питание с остальной схемой не развязано, поэтому оптопара точно бесполезна.
Я немного в сторону, опасное дело, этот лифт.
Если он сломается, и со смертельным исходом, то к кому претензии будут.
Даже если вы не виноваты будете.
Например, сломается датчик, лифт зажмёт человека дверьми и разрежет, кто отвечать будет.
Это юридические вопросы.
Но с точки зрения программиста, мне нравится статья.
Трясти начнут обслуживающую компанию с механиками и директором и сертифицировавшую этот лифт, как годный к эксплуатации.

Теоретически, если захотят повесить вину на вас, то тоже могут придраться — вмешательство в систему управления без разрешения ее изготовителя вроде как запрещено правилами. Или вы хоть какую-то отписку получили?

Не могут, я только разработчик. Эту плату сертифицировали и она сейчас является полноценной заменой оригинальной.
Небольшое пояснение: микроконтроллер — это такая микросхема, содержащая вычислительное ядро и набор периферии для управления внешними устройствами.
Особенно веселит это пояснение в статье, где описывается реверс-инжиниринг.
Я бы начал с поиска всяких меток на плате, чтобы идентифицировать китайскую компанию-разработчика, затем, в случае фейла, принес бы эйчарам шоколадку, чтобы поискали на hh инженерный народ с названием этой исчезнувшей компании в резюме. И уж только потом полез бы в реверс-инжиниринг, дорогой и непредсказуемый.
Хотя, может быть, автору просто нравится копаться в таких штуках. А может быть, автор это вначале и сделал, но потом решил подсократить статью.
Знакомый, работающий с китайскими производствами, рассказал мне, что китайцы занимаются подобным усложнением схем для увеличения стоимости разработки и производства, если то и другое делают одни люди.
Я работал с китайскими производителями сотовых телефонов. Разработчики называются IDH, производители — ODM. Расшифровывать не буду, погуглите. Никто такое не делает. Есть список компонентов, называемый BOM, и на разработчиков жестко давят производители (а на тех — продавцы), чтобы стоимость BOM была минимальной. Зачастую в ущерб качеству — идет замена брэндовых чипов китайскими аналогами и т.п.
Я вижу причину показанного на фотографии в другом. Плата одной из первых версий, в опытных образцах нагрузочную способность силовой части проверяли и поставили посадочные места, чтобы резисторы не висели на проводках — вполне грамотное решение, кстати, если лишнее место на плате есть. Пропустили эту тестовую часть в производство, потому что она ни на что, кроме стоимости BOM, не влияет, и все работало нормально. Но, поскольку успели наштамповать несколько тысяч штук — не выкидывать же эти платы? Так и продали. В следующей версии девайса, когда опять будут нажимать на инженеров со стоимостью BOM, эти резисторы выкинут.
Я бы начал с поиска всяких меток на плате, чтобы идентифицировать китайскую компанию-разработчика, затем, в случае фейла, принес бы эйчарам шоколадку, чтобы поискали на hh инженерный народ с названием этой исчезнувшей компании в резюме.

Это китайский подрядчик производил. Фантастику какую-то пишешь.

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

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

Никто такое не делает.

Ну а у меня другая информация и несколько наглядных примеров. И на разработке телефонов работают люди совсем другой квалификации.
Это китайский подрядчик производил. Фантастику какую-то пишешь.
Мы уже на «ты»?
Из статьи:
Компания-производитель перестала существовать, но по всей стране ещё был спрос на замену сломанных или отработавших свой ресурс девайсов.
Я так понял, что была локальная компания-производитель лифтов, использовавшая китайские контроллеры — не китайские же лифты устанавливались. И советовал искать среди экс-работников этой компании тех, кто имел дело с выбором этой платы и ее поставками, чтобы получить контакты поставщиков платы. Наверное, я выразился слишком сжато.
Плата на руках есть, перспективы можно было оценить. Это явно логичнее и реалистичнее поиска одной из тысяч китайских фабрик.
Логичнее и реалистичнее десятка запросов в Гугле? Или поиска по фото платы? Ну, кому как…
Опять же, я не знаю, что было написано на плате, но шелкография там есть, так что, вероятно, производитель добавил пару иероглифов, по которой можно было попробовать его идентифицировать. А мог и не добавить.
Фотку платы прикрепите в ответ, пожалуйста. Интересно стало.
Ну а у меня другая информация и несколько наглядных примеров. И на разработке телефонов работают люди совсем другой квалификации.
Даже спорить тут не буду. Разный опыт.
Я так понял, что была локальная компания-производитель лифтов, использовавшая китайские контроллеры — не китайские же лифты устанавливались.

Целиком лифты. Это крупная международная компания и её китайское подразделение, которое ещё и занималось разработкой своих моделей лифтов. Китайское подразделение и загнулось.

Логичнее и реалистичнее десятка запросов в Гугле? Или поиска по фото платы? Ну, кому как…
Опять же, я не знаю, что было написано на плате, но шелкография там есть, так что, вероятно, производитель добавил пару иероглифов, по которой можно было попробовать его идентифицировать.

Я знал маркировку платы и производителя. В статье даже есть скан фрагмента электросхемы лифта. Никаких посторонних надписей на плате не было и быть не могло, заказчик слишком крупный. Этот заказчик передавал разработку и производство неизвестным китайским подрядчикам. Наивно предполагать, что можно найти концы и кто-то из китайцев пойдёт на контакт.
«Простоту устройства и прошивки можно оценить по объёму кода, он содержит всего лишь около 600 строк на языке Си.»

Это сарказм надеюсь? У кнопки всего 2 функции: сообщить о своем нажатии и зажечь подсветку по команде. Остальное — разбор протокола?
Нет. Около 100 строк инициализация периферии, остальное логика и комментарии. Нормальный объём кода. Ты вообще с программированием как-нибудь связан?

А ты не индус часом?

А ты не еврей?

Да ладно, на кубе можно и больше :)
Да, cubeMX пустой проект с инициализацией на 2к строк выдаёт. В любом случае это лучше любого наркоманского кода с кучей хаков и неочевидными оптимизациями.
Так самый главный вопрос, какой код надо нащелкать кнопкой, чтобы приехал пустой лифт, а не уже занятый кем-то?
Спасибо за рассказ!
Весьма надеюсь (и желаю в будущем), что работа оплачена достойно.
Хоть кто-нибудь видел лифт в котором работает оптимизация «по весу»?
Сколько раз видел: лифт останавливается, зашагивает человек, лифт орет «перегрузка», человек выходит… и так на каждом этаже. А вот чтобы предперегруженный лифт проезжал — не видел.
Такие лифты бывают, но почти всегда только в административных зданиях. У весовых датчиков на таких кабинах три сигнала: загрузка выше 15 кг (присутствие в кабине), 75%-90% (полная загрузка, зависит от грузоподъёмности) и выше 100% — перегруз. Вот при полной загрузке такие лифты не останавливаются на вызовы, а при пустой кабине не едут по приказам из кабины.
одна мініатюрная жэнщіна выходила из дома в машину и возвращалась с 5тилитровой бутылкой воды. один из соседей, раздираемый любопытством, поинтересовался — в чем прикол? оказалось все просто — лифт не хотел ее возить без дополнительных 5ти килограм

Ну вообще-то все советские модели лифтов с так называемым "подвижным" полом оснащались тремя выключателями загрузки — 15кг, 90% и 110%. И именно выключатель 90% отвечал за то, чтобы лифт не останавливался на попутные вызовы. Но насколько корректно он работал, не скажу. Судя по вашему посту, наверное, не корректно.


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

Да не очень надёжно работает. Показания плавают от температуры и усталостных деформаций в металле датчиков. Их надо калибровать довольно часто или задавать бОльшие допуски.

Да, скорей всего. Мы когда-то сами ставили эксперименты и оказалось, что 15кг с такими датчиками вообще не поймать, а между 90% и 110% разница очень плавающая. Поэтому скорей всего их сейчас ставят только на перегрузку.

Спрошу из любопытства: а зачем реверсить китайский алгоритм? Нельзя сделать свой для своей платы?
Я же написал, что плата должна заменить китайскую в китайской системе. Только считывание трафика не дало бы полной информации обо всех функциях, так как лифт я не смог бы погонять во всех режимах и сымитировать аварии.
Станция управления лифтом общалась с платами кнопок вызовов по полнодуплексному 24-вольтовому интерфейсу.

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

А разве токовая петля может использоваться для создания сети из более, чем двух узлов? Всегда считал, что этот интерфейс является аналогом RS-232 — т.е. один передатчик на один приемник.

В каком месте там токовая петля? Ничего, что все устройства на одной шине висят?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории