ggg__ggg уж не хотите ли вы сказать что невозможно опознать аварию большинства датчиков?
Вот давайте так. Порассуждаем издалека. Вот скажите, какова вероятность того что в Москве 4 января на улицах будет лежать снег? Очень высокая, потому что в России снегу свойственно выпадать в декабре-феврале.
Вот и здесь также! Датчик ведь выполняет одну и ту же функцию. Дискретный - проверяет наличие/отсутсвие объекта. Так ведь можно же предугадать его поведение?!
Допустим у нас есть некий ковейер. По нему идет какой то объект, на одной части конвеера, оптический датчик увидел объект, через 4 метра другой датчик его не увидел. Почему? Вероятно - обрыв второго датчика (или объект украли

). Можно выдать соответсвующее предперждение на панель оператора (скада систему).
С аналоговыми датчиками. Ну допустим датчик уровня. Когда происходит изменение уровня? Когда происходит наполнение или слив емкости. Допустим идет заливка емкости, а датчик в течении какого то времени не изменяет показания - очевидно что застрял поплавок (заклинил клапан заливки). Или наоброт... Может это "выловить" контроллер? Легко!
Какая связь между всем этим и ООП, языком C и ST? Да вот в чем. Конечно можно все это написать на LAD, но времени на это уйдет на порядок больше, чем на языке ST с использованием принципов ООП (в частности классов и наследования).
А теперь все таки скажите. Какая программа лучше - та которая сама "скажет" оператору (электрику, инженеру) что с ней не так (какой датчик не срабатывает, какой клапан заел), или ту для которой нужно принести ноутбук, привести электрика с высшим образованием (и курсами STEP 7), и который полчаса будет ковырятся в лестницах нормальнооткрытых-нормальнозакрытых контактов и в итоге что-то там найдет? С моей точки зрения - вопрос риторический...
Это знаете... Какой прибор лучше - тот который легко починить, или тот который не ломается?