This is topic Проблемы вывода ОРС переменных in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/001167.html

Posted by Сергей123 (Участник № / Member № 6075) on :
 
Здравствуйте! Версия 6.08, базовая. Начинающий.
Задача: реализовать вывод значений переменных из ОРС сервера ISaGRAF в ГЭ "Текст" с возможностью изменить.
Типы переменных: REAL, DINT, STRING, TIME.
Текущий вид реализации: ОРС-компонент ТМ с направлением Input привязан к переменной ОРС-сервера. В ГЭ "Текст" вид индикации: "Значение". После нажатия "Привязка" создана входная переменная соответствующего типа, в значении "Привязка" которой ОРС-компонент.
Ввод значения организован похожим образом: создан ОРС-компонент с направлением Output. У ГЭ "Кнопка" событие по нажатию - "Ввести и передать". После нажатия "Привязка" создана выходная переменная соответствующего типа, в значении "Привязка" которой ОРС-компонент.
Особенность - для удобного ввода милисекунд в переменную типа TIME использован тип DINT (тип переменной после нажатия "Привязка").
Результат: переменные типа DINT правильно отображаются и вводятся.
Проблемы:
1)переменные типа String (используются длиной от 16 до 50) не отображаются.
2)в переменные String возможен ввод только десятичных цифр, которые автоматически преобразуются в 16-ти ричный формат. Ввод текста невозможен - после ввода букв получается 0.
3)Переменные типа TIME выводятся и читаются правильно, в милисекундах. Требуется отображать числа из диапазона DINT, например - 120000, но выводимое значение не превышает 65535.
4)Переменные типа REAL вводятся и отображаются только в целочисленном формате, дробная часть отсекается.
Подскажите, пожалуйста, что можно сделать для устранения проблем?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Строковые переменные в Trace Mode 6 по OPC-интерфейсу не передаются и не принимаются.

2. При непосредственной связи аргумента экрана с компонентом слоя "Источники/Приемники" аргументы в реальном времени автоматически получают тип данных INT (16-битовое целое).

Надо создавать каналы нужного типа (Float или HEX), связанные с "Источниками/Приемниками" и к их атрибутам привязывать аргументы экранов или других шаблонов.
При этом надо иметь в виду, что OUT-аргумент экрана должен быть связан с атрибутом ВХОДНОЕ ЗНАЧЕНИЕ канала OUT, связанного с соответствующим OPC-компонентом,
 
Posted by Сергей123 (Участник № / Member № 6075) on :
 
Удалось организовать передачу данных типа REAL из ОРС сервера, но симметричным образом организовать изменение (ввод значений переменных) не удалось. Как можно это сделать?
Остальные проблемы были решены.
 
Posted by Сергей123 (Участник № / Member № 6075) on :
 
Для вывода из ОРС значений типа REAL делаю так:
1)создаю ОРС-компонент типа Input и привязываю к переменной ОРС сервера.
2)перетаскиваю ОРС-компонент в Каналы - создаю новый канал типа Float Input.
3)в опциях ГЭ "Текст" вид индикации - "Значение".
4)После нажатия графы "Привязка" создаю переменную типа IN REAL и привязываю её к вышеуказанному каналу.

В результате: в ТМ правильно отображается значение типа REAL.

Для ввода в ОРС значений типа REAL делаю так:
1)создаю ОРС-компонент типа Output и привязываю к переменной ОРС сервера.
2)перетаскиваю ОРС-компонент в Каналы - создаю новый канал типа Float Output.
3)в опциях ГЭ "Кнопка" - по нажатию передать значение, тип передачи - "Ввести и передать".
4)После нажатия графы "Результат" создаю переменную типа OUT REAL и привязываю её к вышеуказанному каналу.

В результате - ввести значение не получается, даже целочисленное. В чём ошибка?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Привязка OUT-аргумента экрана должна быть к атрибуту ВХОДНОЕ ЗНАЧЕНИЕ соответствующего канала FLOAT_OUT.
2. В окне "Просмотр компонентов" надо убедиться, что переданное с экрана значение получено в канале FLOAT_OUT.
3. При выполнения п.2. соответствующий OPC-тег, который должен иметь в OPC-сервере статус R/W (допускать запись), должен принимать значение.
Если OPC-запись не проходит, каналу должен выставляться признак недостоверности.

Чтобы выявить возможные ошибки, можно ввести в конфигурационный файл запуска узла ключ DEBUGON=80000
В протоколе профайлера будут указаны ошибки инициализации OPC-интерфейса и ошибки обмена.

Посоветуйтесь с Вашими коллегами. Они давно и успешно используют OPC-интерфейс в проектах на базе Trace Mode 6.
 
Posted by Сергей123 (Участник № / Member № 6075) on :
 
После нажатия графы "Результат" в переменной типа OUT REAL поменял тип на IN/OUT и привязал к атрибуту ВХОДНОЕ ЗНАЧЕНИЕ канала, после этого всё заработало. Благодарю за помощь!
 
Posted by jenyak542 (Участник № / Member № 9353) on :
 
Здравствуйте. Создал ОРС-переменную (направление - input, формат - аналог), привязал ee к каналу hex16.
Этот канал привязан к гэ "насос" (вид индикации - arg = конст, константа = 0). Атрибут канала реальное значение привязан к аргументу экрана типа in, формат данных int.
В контроллере изменяю значение переменной, привязанной к каналу, на значение отличное от 0, но индикации у насоса не происходит. До привязки ОРС и изменении значения канала вручную (например, через гэ текст) индикация работала корректно.
При этом, сейчас к каналу привязан индекс аварийного словаря и сообщения из этого словаря корректно отображаются в отчете тревог при изменении значения переменной в контроллере. То есть, фактически значение канала меняется, но не происходит индикация. В чем может быть причина?
 
Posted by jenyak542 (Участник № / Member № 9353) on :
 
Канал hex16 типа input, все галки кроме "отчет тревог" отключены
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
Почему задается формат Аналог, но канал используется целочисленный? Реально там какое значение?

Проверьте динамизацию ГЭ через Эмуляцию, откройте Экран на редактирование, кнопка Эмуляция. В появившемся окне введите ожидаемое значение привязанного к ГЭ Аргумента, наблюдайте есть ли ожидаемая динамизация. Если нет - смотрите настройки динамизации ГЭ.

Если динамизация настроена правильно, посмотрите в реальном времени, в панели МРВ в дереве каналов для канала вызова Экрана в 124 атрибуте какое значение у привязанного к ГЭ для индикации аргумента. Соответствует ли оно заданному условию и заданному в сервере значению. Можно для удобства выводить параллельно значение этого аргумента например в ГЭ Текст. Если нет, то анализируйте откуда приходит значение: числовой канал и правильность настроек источника.
 
Posted by jenyak542 (Участник № / Member № 9353) on :
 
Спасибо, вроде разобрался. Формат нужно ставить дискретный. Но проблема была еще и в том, что гэ насос не отображал индикацию, хотя настроена она правильно, на эмуляции работает, а в профайлере нет. Помогло удалить этот символ и добавить новый с идентичной настройкой.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2