Сергей123
Junior Member / Новичок
Участник № / Member № 6075
отправлено / posted
Здравствуйте! Версия 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 |
отправлено / posted
1. Строковые переменные в Trace Mode 6 по OPC-интерфейсу не передаются и не принимаются.
2. При непосредственной связи аргумента экрана с компонентом слоя "Источники/Приемники" аргументы в реальном времени автоматически получают тип данных INT (16-битовое целое).
Надо создавать каналы нужного типа (Float или HEX), связанные с "Источниками/Приемниками" и к их атрибутам привязывать аргументы экранов или других шаблонов. При этом надо иметь в виду, что OUT-аргумент экрана должен быть связан с атрибутом ВХОДНОЕ ЗНАЧЕНИЕ канала OUT, связанного с соответствующим OPC-компонентом,
Сообщения / Posts 17264 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Сергей123
Junior Member / Новичок
Участник № / Member № 6075
отправлено / posted
Удалось организовать передачу данных типа REAL из ОРС сервера, но симметричным образом организовать изменение (ввод значений переменных) не удалось. Как можно это сделать? Остальные проблемы были решены.
Сообщения / Posts 4 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Сергей123
Junior Member / Новичок
Участник № / Member № 6075
отправлено / posted
Для вывода из ОРС значений типа REAL делаю так: 1)создаю ОРС-компонент типа Input и привязываю к переменной ОРС сервера. 2)перетаскиваю ОРС-компонент в Каналы - создаю новый канал типа Float Input. 3)в опциях ГЭ "Текст" вид индикации - "Значение". 4)После нажатия графы "Привязка" создаю переменную типа IN REAL и привязываю её к вышеуказанному каналу.
В результате: в ТМ правильно отображается значение типа REAL.
Для ввода в ОРС значений типа REAL делаю так: 1)создаю ОРС-компонент типа Output и привязываю к переменной ОРС сервера. 2)перетаскиваю ОРС-компонент в Каналы - создаю новый канал типа Float Output. 3)в опциях ГЭ "Кнопка" - по нажатию передать значение, тип передачи - "Ввести и передать". 4)После нажатия графы "Результат" создаю переменную типа OUT REAL и привязываю её к вышеуказанному каналу.
отправлено / posted
1. Привязка OUT-аргумента экрана должна быть к атрибуту ВХОДНОЕ ЗНАЧЕНИЕ соответствующего канала FLOAT_OUT. 2. В окне "Просмотр компонентов" надо убедиться, что переданное с экрана значение получено в канале FLOAT_OUT. 3. При выполнения п.2. соответствующий OPC-тег, который должен иметь в OPC-сервере статус R/W (допускать запись), должен принимать значение. Если OPC-запись не проходит, каналу должен выставляться признак недостоверности.
Чтобы выявить возможные ошибки, можно ввести в конфигурационный файл запуска узла ключ DEBUGON=80000 В протоколе профайлера будут указаны ошибки инициализации OPC-интерфейса и ошибки обмена.
Посоветуйтесь с Вашими коллегами. Они давно и успешно используют OPC-интерфейс в проектах на базе Trace Mode 6.
Сообщения / Posts 17264 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Сергей123
Junior Member / Новичок
Участник № / Member № 6075
отправлено / posted
После нажатия графы "Результат" в переменной типа OUT REAL поменял тип на IN/OUT и привязал к атрибуту ВХОДНОЕ ЗНАЧЕНИЕ канала, после этого всё заработало. Благодарю за помощь!
Сообщения / Posts 4 | Из / From: Россия
| IP / IP: IP адрес / IP address |
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353
отправлено / posted
Здравствуйте. Создал ОРС-переменную (направление - input, формат - аналог), привязал ee к каналу hex16. Этот канал привязан к гэ "насос" (вид индикации - arg = конст, константа = 0). Атрибут канала реальное значение привязан к аргументу экрана типа in, формат данных int. В контроллере изменяю значение переменной, привязанной к каналу, на значение отличное от 0, но индикации у насоса не происходит. До привязки ОРС и изменении значения канала вручную (например, через гэ текст) индикация работала корректно. При этом, сейчас к каналу привязан индекс аварийного словаря и сообщения из этого словаря корректно отображаются в отчете тревог при изменении значения переменной в контроллере. То есть, фактически значение канала меняется, но не происходит индикация. В чем может быть причина?
Сообщения / Posts 73 | Из / From: Россия
| IP / IP: IP адрес / IP address |
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353
отправлено / posted
Почему задается формат Аналог, но канал используется целочисленный? Реально там какое значение?
Проверьте динамизацию ГЭ через Эмуляцию, откройте Экран на редактирование, кнопка Эмуляция. В появившемся окне введите ожидаемое значение привязанного к ГЭ Аргумента, наблюдайте есть ли ожидаемая динамизация. Если нет - смотрите настройки динамизации ГЭ.
Если динамизация настроена правильно, посмотрите в реальном времени, в панели МРВ в дереве каналов для канала вызова Экрана в 124 атрибуте какое значение у привязанного к ГЭ для индикации аргумента. Соответствует ли оно заданному условию и заданному в сервере значению. Можно для удобства выводить параллельно значение этого аргумента например в ГЭ Текст. Если нет, то анализируйте откуда приходит значение: числовой канал и правильность настроек источника.
Сообщения / Posts 17264 | Из / From: Россия
| IP / IP: IP адрес / IP address |
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353
отправлено / posted
Спасибо, вроде разобрался. Формат нужно ставить дискретный. Но проблема была еще и в том, что гэ насос не отображал индикацию, хотя настроена она правильно, на эмуляции работает, а в профайлере нет. Помогло удалить этот символ и добавить новый с идентичной настройкой.
Сообщения / Posts 73 | Из / From: Россия
| IP / IP: IP адрес / IP address |