» Программное обеспечение » SCADA/HMI DataRate » Тренд DR4.2

Страниц (1): [1]
 

1. sialiv - 17 Сентября, 2019 - 09:24:45 - перейти к сообщению
День добрый!

Есть файл.csv c аналоговыми данными.

Как эти данные вывести на тренд?
2. Support - 17 Сентября, 2019 - 16:59:35 - перейти к сообщению
Примитив Тренд и вид Аналитически тренд отображают данные размещенные в перьях Менеджера трендов в истории. Для того чтобы отобразить данные из внешнего файла в любом их этих визуальных компонентов необходимо данные считать из этого файла, записать в тренд и тогда можно будет увидеть их на графике. Чтение и разбор csv файла придется делать скриптом. Затем использую функцию записи истории изменения технологического параметра перенести эти данные в перо менеджера трендов. Для этого можно использовать функцию HistoricalServiceHelper.AppendRange(). В справке есть раздел "Запись значений в тренд", где можно подробно ознакомиться с работой данной функции. При добавлении данных в тренд следите за хронологической целостностью данных иначе не получили правильного результата, в тренд не может быть записана точка с меткой времени ранее предыдущей записанной.
3. sialiv - 18 Сентября, 2019 - 13:31:52 - перейти к сообщению
Хорошо.
Мне не нужно сохранять данные в историю. (150 килобайт каждые 3 минуты)
Просто отобразить процесс в графике.

Как использовать C# Chart для этого отображения или что-нибудь попроще?
4. Support - 18 Сентября, 2019 - 17:06:46 - перейти к сообщению
1. Примитив Тренд не может работать без Пера Менеджера трендов. Функции Append() и AppendRange() требуют наличия пера для тега. Вы можете поставить ограничение на Группу настроек истории, чтобы у Вас не накапливалось много данных либо вообще отключить ведение истории.
2. Можно напрямую присваивать значение атрибуту тега, но тогда метка времени точки будет текущим временем присвоения. У Вас метка времени должна приходить из файла и этот вариант вам точно не подойдет.
3. Использование обозначенных выше функций, тега и примитива Тренд самый простой и удобный во всех отношениях способ для отображения импортированных данных.
5. sialiv - 19 Сентября, 2019 - 12:59:17 - перейти к сообщению
Создал макрос для чтения данных и загрузки в тренд.
// переменные
StreamReader f = new StreamReader(@"D:\1000-string.csv"Подмигивание;
string readF;
string[] str2 = new string[2];
char splitchar = ';' ;
int mas = 0;
AttributeValue set1;

// чтение файла и загрузка истории
while (!f.EndOfStream) {
readF= f.ReadLine(); // читаем строку
str2 =readF.Split(splitchar); // разбираем на числа
mas =Convert.ToInt32(str2[0]); // преобразуем строку в число
set1 = new AttributeValue(mas);// создаем точку для пера
HistoricalServiceHelper.Append(Client, "Объект", "pero1", "i32_1", null, set1); // пишем в тренд
} f.Close(); // закрываем файл

Разные результаты: из сравнения графиков в Excel и в DR42 обнаружил отличия и возникли вопросы (Trend_DR42.ipg и Trend_Excel.ipg)

1 - Как добавить время к точке?
2 - Часть точек пропущена, как это устранить?
6. Support - 19 Сентября, 2019 - 14:43:07 - перейти к сообщению
1. У AttributeValue есть свойство TimeStamp которому можно присвоить значение метки времени. Метки времени должны быть в UTC.
2. Часть точек может пропадать только по причине одинаковых меток времени. Для всего массива метки времени должны быть хронологически верно направлены.

Powered by ExBB FM 1.0 Final