Просмотр полной версии : Привязка данных ко времени
Здравствуйте.
К СПК107 по модбас с помощью библиотеки модулей подключен МВ110 8А. К МВ110 подключены датчики температуры. Из МВ в СПК средствами библиотеки я смог получить текущие данные по температуре, статус состояния по датчику и циклическое время. Подскажите пожалуйста как сравнивать текущие данные по температуре с данными полученными 2-10 сек назад. Никак не могу сообразить с чего начать.
График вставьте на визуализацию - на нем все и увидите
Вставил тренды, посмотрел, сначала не понял, потом дошло :)
Какой вопрос - такой ответ. Мой косяк, согласен полностью.
Дополняю вопрос: как сравнивать текущие данные по температуре с данными полученными 2-10 сек назад, с выдачей сигнала если разница более уставки?
а почему просто с уставкой нельзя сравнивать?
так обычно делается..
И тут согласен полностью и так все сделано.
Но есть такая мааленькая паранойя: Датчики стоят на температуру подшипников генератора. Перетерлись от вибрации провода (ну бывает на ДГ вибрация, ну проложили криво), в результате произошел не обрыв датчика и не КЗ , а резкий скачок показаний и как результат аварийная остановка.
И вот как вариант пришла в голову идея контролировать "немотивированные" скачки температуры.
Можно поэкспериментировать с фильтрами. А в чем смысл? Убрать ложные срабатывания? Главная цель не сгладить скачки, а при их появлении (т.е. сбои в работе системы) сработать сигнализацию: сравнивать текущие данные по температуре с данными полученными 2-10 сек назад, с выдачей сигнала если разница более уставки.
Можно поэкспериментировать с фильтрами. А в чем смысл? Убрать ложные срабатывания? Главная цель не сгладить скачки, а при их появлении (т.е. сбои в работе системы) сработать сигнализацию: сравнивать текущие данные по температуре с данными полученными 2-10 сек назад, с выдачей сигнала если разница более уставки.
Я бы тоже сказал - определитесь чего хотите. Причем тут обрывы, кз ? Это другой уровень сравнения как и связь.
Хотите поймать слишком быстрое изменение ? => |dT|/dt > .... Расчет только в момент изменения T. Сравнение - после 2-ого получения норм.данных. Причем тут "2-10 сек назад" ?
в общих чертах мой код как раз и сравнивает с предыдущими значениями. А вот с вами не понятно, не можете запустить таймер с заданным интервалом и записывать в буферную переменную текущее значение, а перед этим сравнить эту переменную с предыдущей итерации с текущей?
Со мной все понятно - я дилетант в программировании, поэтому и попросил на профильном форуме умного совета.
Я думал как бы привязать данные ко времени текущему/реальному. Про таймер? даже в голову не пришло и написал ведь: "Никак не могу сообразить с чего начать."
1. Таймер? Таймер - это я могу.
2. Теперь про буфер. Какой такой буфер, об чем речь?
Ну допустим дилетант, я же не скрываю исходники, даже рекомендовал посмотреть целый проект. А буф. переменная эта та, которая имеет значение, полученное 2-10 секунд назад - А чё так можно было?!
Всем причастным спасибо! Я понял как сделать то, что мне нужно.
Отдельная благодарность capzap за исходник, который отдельно и вдумчиво курить надо. У меня все просто: еслитоиначефсё!!!. Нам, оркам эльфийскый язык трудно дается.:D
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot