Вопросы по 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
интуитивно понятна, но ее четкого описания я в справочном
руководстве не видел.