fixik_papus: (Default)
fixik_papus ([personal profile] fixik_papus) wrote2016-02-16 12:11 pm

Я полагал, что меня уже ничем не удивить...

Но такой вот ПЦ (других слов у меня просто нет) показал, что я ошибался (как всегда, ага)....

На фото - "инструкция для оператора", прилепленная скотчем ВНУТРИ шкафа котельной автоматики.

reset.jpg

Крупнее можно посмотреть тут, а по листочкам - раз два.

Для не-специалистов: это инструкция по перезагрузке контроллера, при помощи переключателя на нем.
Зачем операторам его перезагружать? А затем, что контроллер у них там "виснет" несколько раз на дню.

До-перезагружались до того, что... (прошу крепче держаться за стул)
... что сломали переключатель.
Который совершенно не предназначен для постоянного-ежедневного использования.
(шепну на ушко по секрету: переключатель этот, при наличии мозгов, вообще не нужен. Я даже не помню, где и когда им пользовался крайний раз, хотя с трехсотым Сименсом имею дело постоянно-ежедневно)

switch.jpg

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


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

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

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

Я сунулся в программу. (Выгруженную из контроллера. Исходников, разумеется, нет).
Обнаруженное там быстро привело меня к однозначному вердикту:

Этот мир эту программу уже не спасти отлаживать бесполезно. Господь, жги! Нужно сделать заново.

Что я, собственно, и сделал.
(На текущий момент отработали уже полгода. Как говорится, без замечаний.)

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

Технические подробности, кому интересно:
- обработчики исключений отсутствуют в принципе. Даже в виде "заглушек". Да и в самом деле, зачем с ними заморачиваться?
- что-то зачем-то делится на уличную температуру. Что и зачем - я так и не понял (старый стал, мозги не варят уже). Конечно, уличная температура бывает и нулевой... но ведь далеко не всегда!
- минимум для четырех (дальше лень было искать) команд выделения фронтов FP, FN используется один общий меркер. Память же нужно экономить, в 315 контроллере всего-то 2048 меркеров!
Update: это байт 2048, а меркеров 16384. Спасибо muzzy0 за уточнение.

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

Как все это сдавалось (и принималось!) в эксплуатацию в таком виде?
Не спрашивайте. Не знаю.

P.S. Одно я знаю точно: работать, скажем, инспектором по газу, мне категорически противопоказано.
Очень скоро подрядчики - прибьют прямо где-нито в темном углу объекта.
Я ж буду требовать, чтобы все было по уму сделано...

[identity profile] fixik-papus.livejournal.com 2016-02-16 09:53 am (UTC)(link)
Первое правило при пуско-наладке систем жизнеобеспечения:
всегда держите в уме ситуацию "сброс нажать некому"...

[identity profile] nepilsonis.livejournal.com 2016-02-17 05:44 am (UTC)(link)
Вот, кстати, с того момента, как году в 89 впервые узнал значение понятия «вочдог» в применени к автоматике — не понимаю, почему инженеры-разработчики его не делают почти никогда и нигде. Хотя в огромном количестве современного оборудования встроить его — вопрос нескольких навесных элементов, а то и вовсе внутри чипа можно. То есть — цена вопроса ≈0.
Я понимаю, почему его не заказывают продукт-менеджеры. Но разработчики-то?
Ближайшие примеры для меня — все бытовые персоналки, Raspberry Pi, бытовые роутеры.

[identity profile] fixik-papus.livejournal.com 2016-02-17 06:56 am (UTC)(link)
Почему же не делают?
Делают. В любом микроконтроллере есть хардварно и обычно со своим отдельным генератором даже.
Ну, и в устройствах - в наличии.
В ПЛК - есть всегда (ну, Контар мы не рассматриваем), зовется "контроль времени цикла", и результатом срабатывания часто является не "тупо сразу сброс", а системное исключение с указанием "где мы зависли"

"Ближайшие примеры для меня — все бытовые персоналки, Raspberry Pi, бытовые роутеры."
Ключевое слово "Бытовые". Там один принцип "дешевле всеми средствами".
Подразумевается, что всегда найдется, кому нажать "сброс"
Raspberry при всем уважении и красивой идее - ну никак не является серьезной промышленной платформой (он вообще изначально предназначен для дешевого обучения работе с компьютерами, как бы)

н6г7троььььььььььььььььььььь

[identity profile] nepilsonis.livejournal.com 2016-02-17 08:58 am (UTC)(link)
Вот я и говорю — ставят его только там, где без него вообще никак, от слова «совсем». Хотя поставить его процентов в 90 от прочей электроники, имеющей процессор, не стоит ничего.
Принято считать, что это такая «энтерпрайзная фича».
Точно так же, как ECC память. Говорят «она дорогая и для серверов, в быту это не надо». Хотя во времена, когда её поддерживали несерверные чипсеты, она стоила дороже на величину, которая была меньше разницы в соседних магазинах. То есть на самом деле она дороже на какие-то 1-2%, даёт реальные преимущества, о которых просто не знают обычные люди — но интел решил её из несерверов убрать, а AMD согласился — и всё. Нету в десктопных чипсетах её поддержки, хотя сама она есть.