Страница 1 из 1

Регистрация действий операторов

СообщениеДобавлено: Ср янв 27, 2010 8:09 am
Bender
Здравствуйте!

Необходимо регистрировать действия операторов (нажатие на кнопки и т.п.) время этих действий и, соответственно, логин оператора с последующим просмотром подобного лога средствами InTouch.

Подскажите каким образом лучше это реализовать?

Спасибо.

СообщениеДобавлено: Ср янв 27, 2010 11:10 am
Klinkmann_Msk
To Bender:
1. Tagname Dictionary - Log Events (номер приоритета выбирайте сами)
2. AlarmDBLogger Manager - настраиваете MSSQL-базу для ведения алармов, в окне Advansed Settings устанавливаете "галочку" Log Events
3. В окно InTouch добавляете элемент AlmDBViewer. Его можно настроить на просмотр конкретного приоритета.

СообщениеДобавлено: Пт янв 29, 2010 9:42 am
Bender
Спасибо за подсказку!

Создал тег actions (memory message ) установил галочку Log Events. Добавил следующую QuickFunction (LogActions):
actions = commentaction;

Для регистрации входа добавил скрипт Condiction $AccessLevel>0
со следующим содержимым:
CALL LogActions("Вход в систему");

На кнопку "Выход" повесил скрипт:
CALL LogActions("Выход из системы");
затем LogOff;

Сообщение о входе регистрируется, а сообщение о выходе нет, хотя в теге action нужные строки.

Может кто-нибудь объяснит почему регистрируется только одно событие?

СообщениеДобавлено: Пт янв 29, 2010 10:39 am
Klinkmann_Msk
To Bender:
Попробуйте между
CALL LogActions("Выход из системы");
и
LogOff;
вставить пустой цикл. Скорее всего не успевает отработать система эвентов, слишком быстро LogOff срабатывает.

СообщениеДобавлено: Пт янв 29, 2010 2:36 pm
Bender
Не работает.
Для тестовых целей сделал следующее:
добавил Condition скрипт test1 (on true) с содержимым
CALL LogOperatorAction("TEST");

На кнопку повесил скрипт:
test1 = NOT test1;

После первого нажатия на кнопку сообщение регистрируется, после сколько не нажимай, какие паузы не выдерживай значение меняется, но сообщение не регистрируется.

Такое ощущение что регистрация срабатывает только при изменении качества тега...

Как же тогда быть?

СообщениеДобавлено: Пн фев 01, 2010 7:56 am
Klinkmann_Msk
To Bender:
Ааааа
Тогда всё просто. У Вас условие срабатывет по OnTrue.
Сделайте 2 тега.
Test1, Test 2.
По Data Change (Test1) Test2=NOT Test1;
На Test1 - LogIN
На Test2 - LogOff

СообщениеДобавлено: Пн фев 01, 2010 8:30 am
Bender
Добавил Condition скрипт на NOT test 1. Действительно регистрирует событие. Получается, что на каждый тип события нужно заводить отдельный тег, хотя в справке сказано
Select Log Events if you want to log all data value changes to the tagname that are initiated by the operator, I/O, a QuickScript or by the system.

Tip When you define a tagname to do event monitoring, an event message is logged to the alarm system each time the tagname's value changes. The event message logs how the value changed. For example, whether the operator, I/O, QuickScripts or the system initiated the change.

When you select Log Events, the Priority field becomes active. The value you type for the Priority determines the event priority level for the tagname. Valid entries in this field are 1 to 999, where 1 is the highest and 999 is the lowest priority.

Пробовал по кнопке вызывать QuickScript LogOperatorAction. Ни разу не регистрирует, хотя значение меняется.

СообщениеДобавлено: Пн фев 01, 2010 8:49 am
Klinkmann_Msk
To Bender:
Нуууу
В семье, т.е. софте, не без уро.., тьфу не без бага :)

СообщениеДобавлено: Вт фев 02, 2010 7:46 am
Klinkmann_Msk
To Bender:
Попробуйте писать не только значение строковой переменной, но и поле .Alarm Coment (строка) этой же переменной.
У меня работает как на вход в проект, на и на выход.

СообщениеДобавлено: Вт фев 02, 2010 1:52 pm
Bender
Из QuickScript все равно не работает.
Сделал так: завел дискретный тег, повесил его в datachange, в нем делаю запись в регистрируемый тег (Action = CommentAction). Вызываю сие безобразие следующим образом:
Код: Выделить всё
CommentAction = "Выход из системы";
LogAction = NOT LogAction;

СообщениеДобавлено: Вт фев 02, 2010 2:24 pm
Klinkmann_Msk
To Bender:
Я пробовал без QuickScript-а, просто на Action-кнопке. Попробуйте отказаться от QuickScript в этом случае, не думаю, что это принципиально :)

СообщениеДобавлено: Пн фев 07, 2011 11:52 am
aman
Аналогично, нужна регистрация алармов и событий. InTouch 10.0. Сделал 2-мя способами: через MSSQL+AlmDbViewCtrl и Alarm Printer.
Тэгов в моем проекте InTouch - 7000. При открытии окна AlmDbViewCtrl загружается постоянно разное количество записей - максимум 860, это примерно 2 - 3 часа истории, т.е. практически ничего. Максимальное количество загружаемых записей в свойстве AlmDbViewCtrl можно указать 1000. Как быть?

Alarm Printer мне понравился. На выходе создает текстовый файл с разделителем, который можно просмотреть как таблицу в Excel. История нового дня храниться в отдельном файле. Но это удобно если смотреть технологу или инженеру АСУТП. Но оператор эту информацию не может просмотреть. В InTouch 7.0 точно такие же файлы содавались без использования всяких Alarm Printer и потом доступны для просмотра в окне отображающем алармы (всего то нужно было в свойствах проекта отметить Alarm History). Я так понимаю в InTouch 10.0 результаты сохранения программой Alarm Printer в сам InTouch уже нельзя загрузить?
Как быть?

СообщениеДобавлено: Пн фев 07, 2011 12:20 pm
Klinkmann_Msk
aman писал(а):Аналогично, нужна регистрация алармов и событий. InTouch 10.0. Сделал 2-мя способами: через MSSQL+AlmDbViewCtrl и Alarm Printer.
Тэгов в моем проекте InTouch - 7000. При открытии окна AlmDbViewCtrl загружается постоянно разное количество записей - максимум 860, это примерно 2 - 3 часа истории, т.е. практически ничего. Максимальное количество загружаемых записей в свойстве AlmDbViewCtrl можно указать 1000. Как быть?

Max record - колво записей, возвращаемое по запросу, который исполняется при вызове данного ActiveX. А справа есть стрелки (вверх/вниз), которыми можно листать историю алармов. Каждое листание будет возвращать Max Records записей из БД.
+ Пользуйтесь фильтрами, отображением алармов по приоритетам, группам алармов,...
Alarm Printer мне понравился. На выходе создает текстовый файл с разделителем, который можно просмотреть как таблицу в Excel. История нового дня храниться в отдельном файле. Но это удобно если смотреть технологу или инженеру АСУТП. Но оператор эту информацию не может просмотреть. В InTouch 7.0 точно такие же файлы содавались без использования всяких Alarm Printer и потом доступны для просмотра в окне отображающем алармы (всего то нужно было в свойствах проекта отметить Alarm History). Я так понимаю в InTouch 10.0 результаты сохранения программой Alarm Printer в сам InTouch уже нельзя загрузить?
Как быть?

Можно преобразовать (перименовать) эти файлыв CSV, XLS, и открывать с помощью ActiveX Microsoft Web Browser, который интегрировать в окно InTouch.

СообщениеДобавлено: Пн фев 07, 2011 2:20 pm
aman
Klinkmann_Msk писал(а):Можно преобразовать (перименовать) эти файлыв CSV, XLS, и открывать с помощью ActiveX Microsoft Web Browser, который интегрировать в окно InTouch.


Преобразование не подходит, к сожалению, нужна прозрачная связь файлов истории, хранящихся на локальном диске и пишущихся в реальном времени, с объектом InTouch, отображающим алармы. Я так понимаю, нужен специальный ActiveX Controls, умеющий работать с файлами, имеющими расширение *.ALG?
Может есть такой компонент у Wonderware?

А как такой вариант: в Alarm Printer можно задавать расширение выходного файла отличное от ALG, допустим задать расширение XML, а потом читать объектом AlarmTreeViewerCtrl или чем-то еще чего нет в стандартной поставке InTouch?

СообщениеДобавлено: Вт фев 08, 2011 5:16 am
Klinkmann_Msk
aman писал(а):нужен специальный ActiveX Controls, умеющий работать с файлами, имеющими расширение *.ALG?
Может есть такой компонент у Wonderware?
А как такой вариант: в Alarm Printer можно задавать расширение выходного файла отличное от ALG, допустим задать расширение XML, а потом читать объектом AlarmTreeViewerCtrl или чем-то еще чего нет в стандартной поставке InTouch?

Alarm Printer мне понравился. На выходе создает текстовый файл с разделителем, который можно просмотреть как таблицу в Excel.

Всё уже есть. Назначаете выходной файл как XLS или настраиваете ОС, чтобы обработчиком по умолчанию файлов ALG был Excel. Затем делаете в InTouch окно, через Wizard ActiveX Installation кидаете на него ActiveX Microsoft Web Browser и просматриваете файлы в нём.