УкраїнськаEnglishmRussian
Вход/Новый
В теме много сообщений

Помогите разобраться!


Автор Сообщение
Сообщение создано: 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
Сообщения: 3747
"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
Сообщения: 3747
"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
Сообщения: 3747
"yozhik" wrote:

В документации указано, что message - сообщение сигнализации; для помещение в строку статуса, отображения в протоколе и помещения в архив сообщений.

Не должно. Это предполагалось, но сделано по иному. Документ исправил.

Learn, learn and learn better than work, work and work.



37016