Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Журнал действий оператора  (Прочитано 17186 раз)

Andrey1883

  • Пользователь
  • **
  • Сообщений: 75
    • Просмотр профиля
Журнал действий оператора
« : 05 Декабря 2023, 13:47:50 »
Задумка интересная, ибо ловить оператора на неправильных действиях в процессе управлением техпроцессом важно и полезно, а то порой приходится слушать сказки о том, что это не трогали и это не включали!!

Собственно, вопрос может и глупый, но как это работает и как этот журнал вообще настроить? все настройки в проекте излазил и не понимаю как с этим работать, да и в руководстве ни слова не нашел! мне нужно чтобы я точно понимал, какие совершены действия (нажата кнопка аварийного останова или выполнен пуск насоса) а то сейчас это у меня через сообщения сделано, что мне не нравится...

Timothy Clement

  • Постоялец
  • ***
  • Сообщений: 166
  • ОАО Борисовский завод "Металлист"
    • Просмотр профиля
    • Полымя
Re: Журнал действий оператора
« Ответ #1 : 05 Декабря 2023, 16:14:29 »
Добрый день!
В журнале будут автоматически фиксироваться нажатия кнопок и ввод в поля значений (не работает в версиях Demo64 и Minimal). Настраивать ничего не надо, но если вы хотите понимать что именно нажато, нужно позаботиться о назначении имен кнопкам и полям. Потому что сообщения о Button1 и Field133 вам наверное не очень помогут.

Andrey1883

  • Пользователь
  • **
  • Сообщений: 75
    • Просмотр профиля
Re: Журнал действий оператора
« Ответ #2 : 05 Декабря 2023, 16:53:54 »
А, вот оно как работает! а я думал, что сюда еще можно прикрутить внешние теги (физические кнопки)
спасибо за подсказку!
« Изменён: 05 Декабря 2023, 17:08:29 от Simple_Scada »

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 288
    • Просмотр профиля
    • Simple-Scada
Re: Журнал действий оператора
« Ответ #3 : 05 Декабря 2023, 17:17:43 »
Здравствуйте.

как это работает и как этот журнал вообще настроить? все настройки в проекте излазил и не понимаю как с этим работать, да и в руководстве ни слова не нашел! мне нужно чтобы я точно понимал, какие совершены действия (нажата кнопка аварийного останова или выполнен пуск насоса) а то сейчас это у меня через сообщения сделано, что мне не нравится...
В текст сообщения "Действия оператора" выводится имя объекта и переменной, для которых выполнено действие. Если у переменной указано описание, то при условии, что используется система архивации v2, в текст сообщения выводится описание переменной, а не имя. Соответственно, чтобы получить подробный текст сообщения, всем объектам и переменным нужно давать понятные имена и описания. Также, начиная с версии 2.6.10.0 (при использовании системы архивации v2) в настройках проекта можно менять формат сообщений о действиях оператора.

а я думал, что сюда еще можно прикрутить внешние теги (физические кнопки)
Если действия выполняются не из клиента Simple-Scada, то сообщения для таких действий можно добавлять через скрипты, используя процедуру AddActionMessage.

« Изменён: 05 Декабря 2023, 17:27:24 от Simple_Scada »

Andrey1883

  • Пользователь
  • **
  • Сообщений: 75
    • Просмотр профиля
Re: Журнал действий оператора
« Ответ #4 : 06 Декабря 2023, 10:06:48 »
Спасибо огромное!!

Andrey1883

  • Пользователь
  • **
  • Сообщений: 75
    • Просмотр профиля
Re: Журнал действий оператора
« Ответ #5 : 06 Декабря 2023, 14:35:18 »
Сделал скриптик
Код: (delphi)
begin
  AddActionMessage(Variable.Description + '! ' + ' Изменилась переменная: ' + Variable.Name + ' Стало: ' + Variable.AsStr
  + ' '+ Variable.Units, Variable.Address);
end.


Все работает как надо! пытался изначально описание переменной в объект засунуть - не вышло, точнее из-за узкой колонки "объект" не все описание влезает, так что остановился на адресе переменной!



Пытался вытащить предыдущее значение переменной, чтобы получить как "в оригинале": Было:...  Стало:... ! но не вышло!
Использовать пытался PrevAsInt ... подскажите как правильно сделать и можно ли....
« Изменён: 06 Декабря 2023, 14:57:17 от Simple Scada »

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 288
    • Просмотр профиля
    • Simple-Scada
Re: Журнал действий оператора
« Ответ #6 : 06 Декабря 2023, 15:49:45 »
Пытался вытащить предыдущее значение переменной, чтобы получить как "в оригинале": Было:...  Стало:... ! но не вышло!
Использовать пытался PrevAsInt ... подскажите как правильно сделать и можно ли....
Сообщение должно быть строкой, поэтому нужно использовать функцию "PrevAsStr"(работает только в скриптах с типами событий "Изменились переменные" и "Нарушена граница"). Также, чтобы исключить вывод сообщений при перезапусках проекта, можно использовать функцию "IsFirstChange":
Код: (delphi)
begin
  // пропускаем первое изменение, чтобы сообщения не выдавались при перезапусках проекта
  if IsFirstChange then Exit;
  // добавляем сообщение в список действий оператора
  AddActionMessage( 'Было: ' + PrevAsStr + ' Стало: ' + Variable.AsStr,'Кнопка М156');
end.

Andrey1883

  • Пользователь
  • **
  • Сообщений: 75
    • Просмотр профиля
Re: Журнал действий оператора
« Ответ #7 : 06 Декабря 2023, 16:19:13 »
Спасибо!
мысль проскакивала попробовать "PrevAsStr", но что-то меня остановило :D
ну не программист ни разу и скрипты вызывают трудности порой :'(

karim

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Журнал действий оператора
« Ответ #8 : 07 Декабря 2023, 06:33:36 »
В журнале будут автоматически фиксироваться нажатия кнопок и ввод в поля значений (не работает в версиях Demo64 и Minimal). Настраивать ничего не надо, но если вы хотите понимать что именно нажато, нужно позаботиться о назначении имен кнопкам и полям. Потому что сообщения о Button1 и Field133 вам наверное не очень помогут.
как не придумывай, всё равно получается не фонтан, так как имена эти на англицком. Если бы сделать не имя, а ObjectNameOrCaption, то будет нормально и можно будет использовать. А так всё одно - думай, не думай над именами окон и полей...
Если в поле объект будут что-то типа: "Окно ввода уставки", это гораздо лучше чем wndUstavkaInput. При выводе Caption окна хотя бы понятно где оператор изменил значение, и вот в таком случае уже можно будет нормально пользоваться сообщениями для действий оператора.
PS: При всём при этом Caption нужно брать у родительского окна, то есть ParentWnd->Caption. Вот тогда будет огонь!

но что касается кнопки - то здесь может и не быть никакого родительского окна. Поэтому лучше всего в функцию AddActionMessage просто добавить параметр "инициирующий объект", а уже как дополнительным полем в сообщении указывать имя кнопки, поля и прочего.
« Изменён: 07 Декабря 2023, 16:22:48 от Simple-Scada »