В общем поставил VisualStudio, включил отладку, но мне это не помогло. Не знаю, что в данном случае контролировать в VS. Последний вариант кода такой:
Код:
using System;
using MasterSCADA.Script.FB;
using MasterSCADA.Hlp;
using MasterSCADA.Hlp.Archive;
using FB;
using System.Linq;
using MasterSCADA.Hlp.Pins;
public partial class ФБ : ScriptBase
{
public override void Start()
{
System.Diagnostics.Debug.Assert(false);
}
public override void Execute() //алгоритм выполнения записывается в теле процедуры Execute()
{
//Получаем архивные данные
var elem = HostFB.InputGroup.GetPin("Вход").TreePinHlp;
var k=elem.DataArchiveItem;
DateTime startArch=k.FirstItemTime.ToUniversalTime();
DateTime endArch=k.LastItemTime.ToUniversalTime(); //конец считывания архива
var eventsArr=k.Read(startArch, endArch, false); //записываем считанные данные из архива в массив
Параметр1=eventsArr.Length;
foreach (var element in eventsArr)
{
НомерСобытия=Convert.ToInt16(element.Value);
ВремяСобытия=Convert.ToString(element.Time.ToLocalTime());
}
}
}
Разницы в результате никакой. В архиве 68 событий, после запуска в массиве получаю 66, после останова/последующего запуска 68. Но при этом первых двух значений нет, и последующие не всегда совпадают с архивными.