![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Но такой вот ПЦ (других слов у меня просто нет) показал, что я ошибался (как всегда, ага)....
На фото - "инструкция для оператора", прилепленная скотчем ВНУТРИ шкафа котельной автоматики.

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

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

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

Выступ слева от переключателя предназначен, чтобы случайно его не переключить.
Потому что не-плановый останов контроллера, мягко говоря, это ЧП.
Если кто-нибудь еще встречал нечто подобное - напишите в комментах, пожалуйста.
Я все же хочу верить в то, что мир добрый и хороший
После чего эксплуатирующая организация впала в полное отчаяние от безысходности, и обратилась за помощью для
В котельной были еще весьма интересные инструкции для оператора.
Вида "полагается проверять температуры и давления подачи по контурам раз в полчаса, а по ГВС раз в пятнадцать минут, и при необходимости регулировать" (ручками, вестимо)
К сожалению, после увиденного в шкафу я был в шоке и их не сфотографировал.
Я сунулся в программу. (Выгруженную из контроллера. Исходников, разумеется, нет).
Обнаруженное там быстро привело меня к однозначному вердикту:
Что я, собственно, и сделал.
(На текущий момент отработали уже полгода. Как говорится, без замечаний.)
Контроллер я убедил не менять, с мотивацией "этот переключатель вам больше никогда в жизни не понадобится".
Технические подробности, кому интересно:
- обработчики исключений отсутствуют в принципе. Даже в виде "заглушек". Да и в самом деле, зачем с ними заморачиваться?
- что-то зачем-то делится на уличную температуру. Что и зачем - я так и не понял (старый стал, мозги не варят уже). Конечно, уличная температура бывает и нулевой... но ведь далеко не всегда!
- минимум для четырех (дальше лень было искать) команд выделения фронтов FP, FN используется один общий меркер. Память же нужно экономить, в 315 контроллере всего-то 2048 меркеров!
Update: это байт 2048, а меркеров 16384. Спасибо muzzy0 за уточнение.
Возможно, там было еще много чудесатых чудес.
Но разбираться дальше и тратить свое время зря я уже не стал....
Как все это сдавалось (и принималось!) в эксплуатацию в таком виде?
Не спрашивайте. Не знаю.
P.S. Одно я знаю точно: работать, скажем, инспектором по газу, мне категорически противопоказано.
Очень скоро подрядчики - прибьют прямо где-нито в темном углу объекта.
Я ж буду требовать, чтобы все было по уму сделано...
Tags:
no subject
no subject
Это глобальная область памяти с битовой адресацией (возможность доступа словами по 8/16/32 бита тоже имеется)
Меркер - это один из битиков в ней
У Сименса (и не только) адреса ее начинаются с буквы М (Меркер же!)
Команде выделения фронта сигнала нужно где-то запомнить предыдущее состояние, чтобы было с чем сравнить состояние в текущем цикле
Тут вариантов много, а в данном конкретном контроллере S7-300 команде нужно прямо указать битик (в любой статической области памяти, не обязательно в меркерах)
Если нескольким командам выделения фронта РАЗНЫХ сигналов подсунуть один и тот же битик для сохранения - все команды, кроме первой - выдадут нам все, что угодно, кроме нужного выделения фронта. Потому что сравнивать состояние будут не с тем, чем нужно.
no subject
Чую, маркер это всё-же, маркер ;)))
no subject
no subject
no subject
no subject
Указать бит можно и не в статической области, например, в стеке (L). Компилятором не возбраняется :) А эффект получится такой же - генератор случайных чисел.
все команды, кроме первой - выдадут нам все, что угодно, кроме нужного выделения фронта
И первая тоже. Каждая команда перезаписывает этот бит текущим состоянием после проверки предыдущего. Соответственно, при каждом прогоне у тебя там будет предыдущее состояние другого сигнала.
no subject
no subject
no subject
no subject
А организация флагов примерно одинакова во всех контроллерах мира :)
no subject
PIC вряд ли может оказаться в сименсе (как и AVR). STM32 штука относительно новая, по сравнению с ПЛК.
У меня в памяти застряло, что у Инфинеона (бывшего Siemens AG Semiconductor) 8-разрядные МК были как раз на ядре 51. Вот и подумал, что очень вероятно использование именно их - хотя бы в ранних моделях.
Собственно, в инфинеоновских 16-разрядниках тоже уже нет битовой адресации.
no subject