Tools


«Сименс» в России

«Сименс» в России

Логирование действий пользователей в TP1500 Comfort

Панели оператора PP/OP/TP/TD/MP, программные пакеты ProTool/WinCC flexible, SCADA система WinCC

Модераторы: nikanorov_vladimir, kosmin_aleksandr, yurchenko_vladimir

PSokolov
Сообщения: 17
Зарегистрирован: 31 май 2018, 16:32

Сообщение PSokolov » 05 апр 2022, 10:56

Добрый день.

В панели TP1500 Comfort, есть возможность вести лог действий пользователей???

При изменении тэга с панели, была запись в логе:

Пользователь: <Имя пользователя> Тэг: <Имя тэга>: <старое значение> <новое значение>

Как это реализовать?

И второй вопрос полноценно ли работают VB скрипты в симуляции панели?

PSokolov
Сообщения: 17
Зарегистрирован: 31 май 2018, 16:32

Сообщение PSokolov » 19 апр 2022, 12:13

Отвечу сам на собственные вопросы.

Вопрос: В панели TP1500 Comfort, есть возможность вести лог действий пользователей???
Ответ: Прямого решения от SIEMENS я не нашел, но получилось реализовать свои задачи с помощью «костылей».
Задача:
Регистрировать изменение значений в I/O field и изменение других тегов.
Формат записи:
Пользователь: <User name> <Tag name> Старое значение <Old value> Новое значение <New value>
Решение:
1. Как получить <User name>
Scheduled task - создаем задание, которое привязано к триггеру [User change], при срабатывании триггера используем:
- [GetUserName] => <User name>
- [GetGroupNumber] => <User group>
2. Как получить <Tag name>
- вариант с помощью скриптов отпал, нужно, более понятное описание тега или поля;
- второй вариант вписывать руками в качестве параметра при вызове VB скрипта, который формирует строку сообщения в записи.
3. Как получить <Old value>
При установке фокуса на элементе экрана, возникает событие [Activate], используем
- [SetTag], так как значение поля привязано к <PLC тегу>, то <Old value> = <PLC тег>
- [SetTag], устанавливаем значение для <Tag name> = “ТЕКСТ”
- Вызываем VB скрипт с параметром <Tag name>, который формирует строку сообщения <message> = Пользователь: <User name> <Tag name> Старое значение <Old value>

4. Как формировать и отображать записи
При срабатывании аварий формируется Alarm buffer. Решил использовать его.
В Discrete alarms прописал “триггер” <Trigger message>, который вывел в отдельный Alarm classes [Logs] со свойством Alarm without acknowledgment, это позволило выводит, удалять сообщения в отдельном окне и отделить от остальных аварий. На «экран» добавил Alarm_view, в свойствах дисплей - Alarm buffer, выводить только [Logs]

5. Как сформировать Alarm text в Discrete alarms.
Для Alarm text используем Insert tag field.
Таким образом добавляем в Alarm text = <message> Новое значение: <PLC тег>

6. Как сформировать вывод записи в буфер
Используем событие [Input finished] для I/O field, меняем состояние тега, к которому привязан Discrete alarms <Trigger message>
При изменении значения бита в буфере формируется 2 записи по событиям incoming/outgoing. В

Alarm_view отображается запись с формированным текстом.
(Как формировать одну запись не нашел решения, скорее не получится.)

С некоторыми «костылями» задача решена. Посмотрим, что скажут конечные пользователи…

Вопрос: полноценно ли работают VB скрипты в симуляции панели
При написании другого VB скрипта допустил ошибку, не формировалось событие выхода из цикла. Из-за этого один скрипт был зациклен и не давал возможности вызывать другие скрипты.

cron