Ответы в темах
-
АвторЗаписи
-
litmi
УчастникНичего хорошего не получилось. По логу видно, что после фиксации «Ошибка связи», счетчик начинает на запросы параметра А отвечать параметром В. И после этого счетчик считает что всё в порядке и неполадки в Коммуникаторе не отображаются. Такое стабильно неверное состояние может длиться часами. Заметил, что если в это время по логу проскочит еще раз «Ошибка связи» (в 12:01 по графику), то счетчик начинает на запросы параметра А, отвечать параметром С. И тоже после этого счетчик находится в стабильном неверном состоянии запросов-ответов. График опроса напряжения фазы А здесь. По графику в 13 ч 15 мин я перезапустил линию связи в Коммуникаторе. Счетчик перешел в нормальное состояние. А через несколько минут «упал».
litmi
УчастникУстановил в закладке «Опрос КП»: Таймаут=10000, Пауза=10000, Период ранее был установлен 1 минута. Набираю статистику.
litmi
УчастникВыводы CE301 (А, В) соединены непосредственно с выводами А, В модема iRZ ATM2-485. Модем через GPRS передает данные на сервер RapidScada (сервер со статическим внешним IP-адресом подключен к интернету по LAN). Если дойдет дело до письма, то напишу в Энергомеру. К сожалению, я не нашел у них на сайте информацию об изменениях в версиях прошивки. Несколько дней назад такой сбой произошел ночью и держался до утра, т.е. несколько часов к ряду. Обычно на графике напряжений фазы сети сбой выглядел как игла, т.е. очень короткое время с быстрым самовосстановлением.
litmi
УчастникСчётчик: CE301 R33 146 JAZ
Версия ПО: CE301v11.84
т.е. более свежая. Может быть разработчик по этому поводу что-нибудь скажет?litmi
Участниктак точно!
litmi
УчастникНо как ее осуществить в формулах я не представляю, к сожалению.
litmi
Участникт.е. текст функции получился такой
double Predel()
{
if (Cmd>=2.7 || Cmd<=1.8)
{
return double.NaN;//игнорировать команду
}
else
{
return Cmd*10;//введенное в окно число *10
}
}litmi
УчастникЯ полагаю, что должна быть связка времени чтения канала и прочитанное в этот момент значение канала. Что-то типа Dictionary. Имея две таких пары значений можно посчитать текущую скорость изменения значения канала. Затем раннее значение пары заменить на только что считанное. При таком алгоритме будет не важно сколько времени прошло между событиями чтения канала — минута, час, 12 минут.
litmi
УчастникКак можно «игнорировать такую команду» если введено плохое число? Ведь я использую свою функцию для ограничения вводимых чисел, если число хорошее, то return Cmd*10, а если плохое, то какой же мне return делать? Значение входного канала?
litmi
Участникда, я тоже только что нашел Cmd, спасибо за сверхоперативное подтверждение.
litmi
УчастникMikhail! В #4698 Вы отвечали, что при чтении значения «Можно ещё моменты времени записывать в переменные для более точного расчёта». А как это сделать?
Там же указали, что «Вариант 2 реализован только для 1 измерения. Если их много, то нужен массив вместо double prevVal». Что значит «1 измерение»?litmi
УчастникСовершенно верно, оборудование воспринимает только целую часть. Т.е. мне надо введенное в окне число умножить на 10 (формула в канале управления), чтобы число стало целым, но я не знаю как обозначается это число. Во входных каналах это Cnl, а здесь как?
litmi
Участникчисла с плавающей точкой вводить можно. по крайней мере не ругается система, но оборудование запятую не воспринимает. Может быть в формуле канала управление введенное значение умножить на 10 и соответственно ограничения по вводимому значению поставить?
litmi
УчастникЗдравствуйте!
Вот где оказывается собака зарыта! Нужно «не указывать набор значений»! Где бы об этом почитать (и о другом тоже). Да, у меня получилось всплывающее окно, но только после того как в «Редакторе схем» в свойствах компонента в пункте «Действие» я выбрал «Отправить команду», а не «Отправить команду сразу». Но тут же возникли вопросы. Моя отображаемая уставка это число с десятичным знаком после запятой, а вводить во всплывшем окне можно только целые числа. Ну, ладно, можно инструкцию написать оператору при вводе уставки. Потом я подумал о защите от дурака. А вдруг оператор лишний нолик, к примеру, наберет и кликнет «ввести». Неприятности могут быть.
Я вернулся к двум кнопкам — увеличение (+) и уменьшение(-) уставки с шагом 0,1. В свойствах динамического рисунка (имитатор кнопки) в «Действие» выбрано «Отправить команду сразу». Входной канал уставки №3000. В его описании занесена формула Cnl/10, формат отображения D.D . В первом канале управления (увеличение уставки) указал формулу Val(3000) >= 2.7 ? Val(3000)*10 : Val(3000)*10+1, где 2,7 — это максимум уставки для ввода, т.е. увеличить уставку выше 2,7 оператор не сможет. Во втором канале управления (уменьшение уставки) указал формулу Val(3000) <= 1.8 ? Val(3000)*10 : Val(3000)*10-1, где 1,8 — это минимум уставки для ввода, т.е. уменьшить уставку ниже 1,8 оператор не сможет. При однократном кликании на кнопку (+) или (-) через несколько секунд отображаемое значение уставки (и регистр КП) изменится на 0,1.
Пока у меня такое решение. Покритикуйте, если будет желание. -
АвторЗаписи