Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version » Проблемы вывода ОРС переменных

   
Автор / Author Тема / Topic: Проблемы вывода ОРС переменных
Сергей123
Junior Member / Новичок
Участник № / Member № 6075


Icon 1 отправлено / posted      Профиль для / Profile for Сергей123           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте! Версия 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 вводятся и отображаются только в целочисленном формате, дробная часть отсекается.
Подскажите, пожалуйста, что можно сделать для устранения проблем?

Сообщения / Posts 4 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
1. Строковые переменные в Trace Mode 6 по OPC-интерфейсу не передаются и не принимаются.

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

Надо создавать каналы нужного типа (Float или HEX), связанные с "Источниками/Приемниками" и к их атрибутам привязывать аргументы экранов или других шаблонов.
При этом надо иметь в виду, что OUT-аргумент экрана должен быть связан с атрибутом ВХОДНОЕ ЗНАЧЕНИЕ канала OUT, связанного с соответствующим OPC-компонентом,

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Сергей123
Junior Member / Новичок
Участник № / Member № 6075


Icon 1 отправлено / posted      Профиль для / Profile for Сергей123           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Удалось организовать передачу данных типа REAL из ОРС сервера, но симметричным образом организовать изменение (ввод значений переменных) не удалось. Как можно это сделать?
Остальные проблемы были решены.

Сообщения / Posts 4 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Сергей123
Junior Member / Новичок
Участник № / Member № 6075


Icon 1 отправлено / posted      Профиль для / Profile for Сергей123           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Для вывода из ОРС значений типа REAL делаю так:
1)создаю ОРС-компонент типа Input и привязываю к переменной ОРС сервера.
2)перетаскиваю ОРС-компонент в Каналы - создаю новый канал типа Float Input.
3)в опциях ГЭ "Текст" вид индикации - "Значение".
4)После нажатия графы "Привязка" создаю переменную типа IN REAL и привязываю её к вышеуказанному каналу.

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

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

В результате - ввести значение не получается, даже целочисленное. В чём ошибка?

Сообщения / Posts 4 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
1. Привязка OUT-аргумента экрана должна быть к атрибуту ВХОДНОЕ ЗНАЧЕНИЕ соответствующего канала FLOAT_OUT.
2. В окне "Просмотр компонентов" надо убедиться, что переданное с экрана значение получено в канале FLOAT_OUT.
3. При выполнения п.2. соответствующий OPC-тег, который должен иметь в OPC-сервере статус R/W (допускать запись), должен принимать значение.
Если OPC-запись не проходит, каналу должен выставляться признак недостоверности.

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

Посоветуйтесь с Вашими коллегами. Они давно и успешно используют OPC-интерфейс в проектах на базе Trace Mode 6.

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Сергей123
Junior Member / Новичок
Участник № / Member № 6075


Icon 1 отправлено / posted      Профиль для / Profile for Сергей123           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
После нажатия графы "Результат" в переменной типа OUT REAL поменял тип на IN/OUT и привязал к атрибуту ВХОДНОЕ ЗНАЧЕНИЕ канала, после этого всё заработало. Благодарю за помощь!
Сообщения / Posts 4 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353


Icon 1 отправлено / posted      Профиль для / Profile for jenyak542           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте. Создал ОРС-переменную (направление - input, формат - аналог), привязал ee к каналу hex16.
Этот канал привязан к гэ "насос" (вид индикации - arg = конст, константа = 0). Атрибут канала реальное значение привязан к аргументу экрана типа in, формат данных int.
В контроллере изменяю значение переменной, привязанной к каналу, на значение отличное от 0, но индикации у насоса не происходит. До привязки ОРС и изменении значения канала вручную (например, через гэ текст) индикация работала корректно.
При этом, сейчас к каналу привязан индекс аварийного словаря и сообщения из этого словаря корректно отображаются в отчете тревог при изменении значения переменной в контроллере. То есть, фактически значение канала меняется, но не происходит индикация. В чем может быть причина?

Сообщения / Posts 73 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353


Icon 1 отправлено / posted      Профиль для / Profile for jenyak542           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Канал hex16 типа input, все галки кроме "отчет тревог" отключены
Сообщения / Posts 73 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Почему задается формат Аналог, но канал используется целочисленный? Реально там какое значение?

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

Если динамизация настроена правильно, посмотрите в реальном времени, в панели МРВ в дереве каналов для канала вызова Экрана в 124 атрибуте какое значение у привязанного к ГЭ для индикации аргумента. Соответствует ли оно заданному условию и заданному в сервере значению. Можно для удобства выводить параллельно значение этого аргумента например в ГЭ Текст. Если нет, то анализируйте откуда приходит значение: числовой канал и правильность настроек источника.

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353


Icon 1 отправлено / posted      Профиль для / Profile for jenyak542           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо, вроде разобрался. Формат нужно ставить дискретный. Но проблема была еще и в том, что гэ насос не отображал индикацию, хотя настроена она правильно, на эмуляции работает, а в профайлере нет. Помогло удалить этот символ и добавить новый с идентичной настройкой.
Сообщения / Posts 73 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2