Вопросы по Alarm Logging
Евгений Трунов; 31.7.01

А вопросы следующие:


1. Сохранение сообщений с дополнительными аргументами. Например: "Изменение задания контура регулирования с <x1> на <x2>". Для заполнения этих x1 и x2 я использую Process Value Blocks с номерами 9 и 10, на которые у меня назначены соответствующие теги, которые инициируются необходимыми значениями перед сменой состояния тега "задание". Однако в большинстве случаев сохранение идет как бы с запаздыванием. Т.е. в полях PV9 и PV10 видны предыдущие значения, а требуемые появляются при сохранении следующего сообщения. Иногда несколько раз подряд дублируются одни и те же значения x1 и x2 для разных сообщений. При этом в тегах находятся именно занесенные мной значения. В чем ошибка? Есть ли другой метод сохранения сообщения с одним номером, но всякий раз с различными дополнительными аргументами?

2. Почему сообщения типа System, Without Acknowledgement/Process Control System все инициируются при старте runtime? Как сделать так, чтобы сообщение, связанное с дискретным тегом (который может сразу после запуска принять значение как 1, так и 0), не создавалось при старте?
Уточнение
Евгений Трунов; 1.8.01

Фраза "Изменение задания контура" выглядит как "Изменение задания контура регулирования с x1 на x2 - просто написал их в угловых скобках, забыв, что это может трактоваться как тег HTML.

Re: Вопросы по Alarm Logging
Светлана; 28.8.01

Те же проблемы (никаких угловых скобок не используем!): если последовательно вводить два тега в окна ввода/вывода - процессное значение, затем тег инициирующий аларм - все срабатывает, но если программно написать то же в нескольких вариациях, то процессное значение дико отстаёт!!

Re: Вопросы по Alarm Logging
Андрей Миндрин; 9.9.01

Проблему 1 можно решить с помощью "Global Script". Используйте опцию "triggers an action", где принудительно читайте значения тэгов и с помощью функции MSRTCreateMsg создайте требуемое сообщение. Вариант, конечно, не идеальный ;), зато будет работать точно.

Re: Вопросы по Alarm Logging
Никаноров, Сименс; 10.9.01

Скорее всего, Ваши теги, которые Вы подставляете в PVх, больше нигде не актуализируются в проекте, т.е. не запрашиваются ни графической подсистемой, ни TagLogging или AlarmLogging.

А WinCC берет значение тегов из DataManager (среза значений переменных).
В DataManager теги обновляются, когда они запрашиваются какой-либо подсистемой WinCC, либо в скриптах функциями типа GetTagxxx. Например, если хотя бы один раз запросить в Action значение переменной функцией GetTagxxx, то в дальнейшем она актуализируется автоматически с циклом 2с.
В Вашем случае, если переменные более нигде не опрашиваются, то в сообщение подставляется значение из DataManager, которое было запрошено при выдаче предыдущего сообщения.
Таким образом, Вам нужно обеспечить автоматическое обновление переменных в DataManager. Это можно сделать, либо однократно вызвав в GlobalScript Action функцию GetTagxxx для нужной переменной, либо при установке флага Trigger an Action в GMsgFunction запустить функцию GetTagxxxWait(State).


Re: Вопросы по Alarm Logging
Максим Елхов; 18.9.01



Вопросы по Alarm Logging - всем спасибо
Евгений Трунов; 16.10.01

Спасибо 415,416 и 423. По 416 - эта особенность работы Data Manager интуитивно понятна, но ее четкого описания я в справочном руководстве не видел.