Автор |
Сообщение |
Сообщение создано: 10. 12. 2010 [11:12]
|
yozhik
Алексей Николаев
Зарегистрирован(а) с: 29.11.2010
Сообщения: 127
|
А где правильнее размещать генерацию сообщений? Вот, к примеру, если по появлению определенных событий в ПЛК (установка битов в карте памяти Modbus TCP) необходимо сформировать сообщения, то как лучше это сделать? На ум приходит создать шаблон в template library для данных событий и там генерировать сообщение, а в logic level создать необходимые параметры. Но тогда вопрос как в коде шаблона получить доступ к имени параметра, созданого в logic level?
В DemoStation есть шаблон Analog value with alarm borders. Если бы на его примере было показано генерирование сообщений (например, при выходе за установленные границы), то можно было бы по образу и подобию сделать и в этом случае.
|
Сообщение создано: 10. 12. 2010 [11:39]
|
Maxim
Maxim Lisenko
Contributor
Зарегистрирован(а) с: 18.08.2008
Сообщения: 141
|
Ну, вот и добавьте строку генерации прямо там же, где проверяются границы в шаблоне.
|
Сообщение создано: 10. 12. 2010 [12:02]
|
yozhik
Алексей Николаев
Зарегистрирован(а) с: 29.11.2010
Сообщения: 127
|
"Maxim" wrote:
Ну, вот и добавьте строку генерации прямо там же, где проверяются границы в шаблоне.
С добавлением-то вопросов нет. Но как в сообщении в шаблоне задать имя объекта, сгенерировавшего сообщение? Ведь аттрибут NAME параметру присваивается в logic level и из шаблона недоступен. Получается что необходимо будет ввести в шаблоне в IO дополнительное поле для задания имени источника сигнала. В таком случае получается некоторое дублирование. Так?
|
Сообщение создано: 10. 12. 2010 [12:09]
|
Maxim
Maxim Lisenko
Contributor
Зарегистрирован(а) с: 18.08.2008
Сообщения: 141
|
Так. Не дублирование, а всего лишь связь, и таких связей может быть сколько угодно... Дублировать ничего не нужно! Шаблон всегда ассоциируется с каким-то конкретным параметром, от которого и берет все необходимые данные.
|
Сообщение создано: 10. 12. 2010 [12:14]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"yozhik" wrote:
Ведь аттрибут NAME параметру присваивается в logic level и из шаблона недоступен.
Доступен. Значения атрибутов "SHIFR", "NAME" и "DESCR" параметра логического уровня пробрасываются в процедуру шаблона, если там есть одноимённые атрибуты.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 10. 12. 2010 [13:52]
|
yozhik
Алексей Николаев
Зарегистрирован(а) с: 29.11.2010
Сообщения: 127
|
"roman" wrote:
"yozhik" wrote:
Ведь аттрибут NAME параметру присваивается в logic level и из шаблона недоступен.
Доступен. Значения атрибутов "SHIFR", "NAME" и "DESCR" параметра логического уровня пробрасываются в процедуру шаблона, если там есть одноимённые атрибуты.
Проверено. Работает. Теперь все встало на свои места. Спасибо.
|
Сообщение создано: 13. 12. 2010 [08:26]
|
yozhik
Алексей Николаев
Зарегистрирован(а) с: 29.11.2010
Сообщения: 127
|
А как производится генерации сигналов на включение сигнализации? В документации "Модуль подсистемы “Пользовательские интерфейсы” <VCAEngine>" в п. 3.5 "Сигнализация" есть описание атрибутов "alarm" и "alarmSt". Разбор alarmSt есть в обработке RootPgSo и там вроде все понятно. Но как и где устанавливать аттрибут alarm чтобы запустить сигнализацию из описания полностью неясно. У кого-нибудь есть примерчик?
|
Сообщение создано: 13. 12. 2010 [10:17]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"yozhik" wrote:
Но как и где устанавливать аттрибут alarm чтобы запустить сигнализацию из описания полностью неясно. У кого-нибудь есть примерчик?
http://oscada.org/ru/uslugi/obuchenie
Всё там ясно написано в пункте "Формирование сигнала и получение его визуализатором." раздела http://wiki.oscada.org/Doc/VCAEngine?v=9ci#h668-10 , со структурой "alarm" выше.
А пример есть в Демо БД, в элементе "Основные элементы" -> "Отобр аналог".
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 14. 12. 2010 [08:34]
|
yozhik
Алексей Николаев
Зарегистрирован(а) с: 29.11.2010
Сообщения: 127
|
В документации указано, что message - сообщение сигнализации; для помещение в строку статуса, отображения в протоколе и помещения в архив сообщений. Однако ни в строке статуса ни в архивах сообщений (уровень 0, категория *) оно не появляется, хотя сигнализация срабатывает. Так и должно быть или я что-то не так делаю?
|
Сообщение создано: 14. 12. 2010 [11:18]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"yozhik" wrote:
В документации указано, что message - сообщение сигнализации; для помещение в строку статуса, отображения в протоколе и помещения в архив сообщений.
Не должно. Это предполагалось, но сделано по иному. Документ исправил.
Learn, learn and learn better than work, work and work.
|