Добрый день! В продолжение темы. Есть архив с данными:
архив.csv.txt
Обрабатываю его скриптом:
код скрипта.txtКод:using System; using InSAT.OPC; using MasterSCADA.Script.FB; using MasterSCADA.Hlp; using FB; using System.Linq; using MasterSCADALib; using System.Collections.Generic; using MasterSCADA.Common.Events; using MasterSCADA.Hlp.Pins; using MasterSCADA.Hlp.Events; using MasterSCADA.Hlp.Archive; using MasterSCADA.Archive.Events; public partial class ФБ : ScriptBase { DateTime startArchT = new DateTime(); // переменная начала считывания архива //string name="Событие"; public override void Execute() //алгоритм выполнения записывается в теле процедуры Execute() { //Получаем архивные данные string events=HostFB.TreeItemHlp.FullName+".Входы."+"Вход"; //путь до входа скрипта var elem = (ITreePinHlp)HostFB.TreeItemHlp.Project.Item(events); PinDataArchiveHlp k=elem.DataArchiveItem; //переменная из архива //if (startArchT==null) //если время не определено, начинаем считывание сначала архива //{ //startArchT=k.FirstItemTime; //} var startArch=k.FirstItemTime; //начало считывания архива var endArch=k.LastItemTime; //конец считывания архива var eventsArr=k.Read(startArch, endArch, true); //записываем считанные данные из архива в массив //startArchT=k.LastItemTime; //присваиваем время начала архива по последней считанной записи Параметр1=eventsArr.Count(); //Int16? eventsVal=null; //код аварии //НомерСобытия=Convert.ToInt16(eventsArr[Convert.ToByte(eventsArr.Count())].Value); //получаем код аварии //ВремяСобытия=Convert.ToString(eventsArr[Convert.ToByte(eventsArr.Count())].Time.ToLocalTime()); for (int i=0;i<eventsArr.Count();i++) { DateTime? TStart=null; //время начала Int16? eventsVal=null; //код аварии eventsVal=Convert.ToInt16(eventsArr[i].Value); //получаем код аварии //Параметр1=Convert.ToInt16(eventsArr[i].Value); НомерСобытия=eventsVal; ВремяСобытия=Convert.ToString(eventsArr[i].Time.ToLocalTime()); } } }
На выходе получаю некорректный массив:
массив_после обработки.csv.txt
Не могу понять в чём дело. Перепробовал массу вариантов обработки, опросов (периодический/по изменению/входов-выходов), но корректный массив с данными не могу получить. Что-то не так в коде скрипта?




Ответить с цитированием