[Do-more H2-DM1E] Зависание вычислений LERP |
Ответить |
Автор | |
Новичок Присоединился: 22 Июнь 2009 Категория: Russian Federation Online Status: Offline Публикации: 19 |
Опубликовано: 31 Август 2018 20:30 |
При использовании инструкции LERP прекратились вычисления с её применением.
Программа корректно работала с некорректными данными (три одинаковых первых входных значения) примерно неделю. Потребовалось обновить программу в RUN mode. После обновления вычисления прекратились. Стал искать причину, и после ввода уникальных входных значений всё заработало. В справке нашёл: "Each of the data pairs must have a unique Input Point value, and must be sorted into increasing order by those Input Point values." Понятно, что теплотехник при наладке с панели ввел некорректные данные. Потом всё работало неделю и, после обновления в RUN mode, вычисления обнаружили некорректные данные и стали пропускать инструкцию LERP, прекратилось обновление выходной переменной. Вопрос в следующем - как программно диагностировать некорректные данные? Есть встроенные средства или нужно для каждой инструкции LERP набирать цикл проверки возрастания входных данных? |
|
Действительный член Присоединился: 18 Декабрь 2006 Категория: Russian Federation Online Status: Offline Публикации: 275 |
|
Павел, добрый день!
Абсолютной защиты "от дурака", увы, не существует. Оффтоп: кто Вам запрещает на "механике" с пятой скорости врубить первую? Что будет с машиной при этом? Или на "автомате" - на ходу в 100км/ч уйти в режим "парковка"? Вы, безусловно, можете попробовать анализировать каждую константу на совпадение с прочими заданными. И это можно сделать только частью прикладной программы (встроенных функций такого анализа нет). Но насколько разумен такой подход? Отяготите программу панели или контроллера большими кусками кода - начнутся претензии к скорости реакции. Более того, вот тот же самый оператор начнет вводить так же с ошибкой. Программа не воспримет - видимо, Вы запрограммируете, чтобы оператору выдавалось сообщение об ошибке ввода, потому что константы не должны совпадать и проч. Так мб все же разумней операторов научить как следует? Вернее, потребовать с них в должностной инструкции определенных правил по вводу параметров? Под их, естественно, ответственность! Иначе все равно же тупик! Программа за оператора данные не придумает - она сможет только ругаться на неправильный ввод. Если оператор не понимает - что вводить, то это "клинч". Другими словами, приходим в любом случае к тому, что оператор должен понимать технологический процесс и его отображение на панели. |
|
Новичок Присоединился: 22 Июнь 2009 Категория: Russian Federation Online Status: Offline Публикации: 19 |
|
Astilya, добрый день!
Жаль. Я надеялся на собственную невнимательность - что пропустил какой-нибудь флаг состояния (деление на ноль или подобное), который нужно проверять сразу после LERP - ведь LERP диагностирует нарушение (хоть и не сразу, а лишь после обновления ПО) и пропускает вычисления (именно пропускает, т.к. выходная переменная не обновляется), может быть и "наружу" как-то об этом сообщает. Но-нет, значит нет. Непредсказуемость момента зависания вычислений страшнее. Сделаю циклы проверки возрастания элементов для каждой таблицы. Их можно не в каждом цикле сканирования проверять, а с некоторой периодичностью. При нарушении - сообщение в соответствующем экране панели, чтобы при вводе сразу обратить внимание. |
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |