This is topic Данные с отчета тревог in forum Документирование в TRACE MODE / Data Documentation in Trace Mode at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/9/t/000041.html

Posted by Den (Участник № / Member № 75) on :
 
А что, функция EVENTS возвращает только количество записей в отчете тревог, а не сами записи?
Так хотелось под таблицей с параметрами аппарата вставить аварии за смену.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Функция EVENTS - возвращает не количество записей, а массив событий из ОТ. Размер этого массива можно узнать как SIZE(EVENTS(..)).
Для того, чтобы "вытащить" из сообщения необходимые параметры Вам нужно использовать соответствующие функции языка Техно_Лист. Например:

code:
var AlarmsList;
var AlarmsSize;
var i;

AlarmsList=EVENTS("NODE1"); // Взятие массива сообщений из ОТ
AlarmsSize=SIZE(AlarmsList); // Количество сообщений в массиве
for i=0 to AlarmsSize do
AlarmsList[i]; // Вернуть текстовое значение сообщения под номером i

for i=0 to AlarmsSize do
TIME( AlarmsList[i]); // Вернуть время сообщения под номером i

И так далее... Если Вы будете выводить эти параметры в таблице, то вместо цикла for и индекса i можно использовать ROW() или COL() - текущие индексы повторения элемента. А количество строк или столбцов задавать как AlarmsList.
 
Posted by Den (Участник № / Member № 75) on :
 
Следующий кусок кода на выходе выдает следующее:
07.02.2003 11:16:38 #INDEX#
Меняю части местами - получаю:
№1-Компрессор включен #INDEX#.
При попытке вставить в таблицу-#INDEX# в каждой строке.При пробной генерации в редакторе шаблонов все нормально, косяки начинаются при запуске через сервер документирования.Отчет тревог-тестовый все записи посчитаны-проверены.Данная запись единственная.Замучился совсем-помогите, чем можете.
------------------code-----------------
для первого тега SPAN:
{
var AlarmsList;
AlarmsList=EVENTS("NODE1", EFILTER(-1, -1, -1, -1,"","","№1*"));
TIMESTR( "%c",TIME(AlarmsList[0]));
для второго тега SPAN:
{
var AlarmsList;
AlarmsList=EVENTS("NODE1", EFILTER(-1, -1, -1, -1,"","","№1*"));
AlarmsList[0];
 
Posted by ATMosphere (Участник № / Member № 115) on :
 
Добрый день!

Сообщение #INDEX# указывает на то, что Вы вышли за пределы массива. Дело в том, что из отчета тревог забрать все сообщения функцией EVENT получается только один раз. Поэтому рещение следущее:
Создаете функцию пользователя Alarms:
EVENTS("NODE1", EFILTER(-1, -1, -1, -1,"","","№1*")); // Взятие массива сообщений из ОТ
А далее действуете так:
для первого тега SPAN:
{
var AlarmsList;
AlarmsList=@Alarms;
TIMESTR( "%c",TIME(AlarmsList[0]));
для второго тега SPAN:
{
var AlarmsList;
AlarmsList=@Alarms;
AlarmsList[0];

Теперь все должно работать. [Насмешка / Razz]
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2