Как перенаправить строку из агументов канала не в ОТ , а другую текстовую переменную?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Надо обнулить атрибут 43, а аргументы канала CALL.STRING, а его аргументы (можно через атрибуты) передавать в строковые аргументы экрана или программы.
Posted by sialiv (Участник № / Member № 6172) on :
Атрибут 43-отчет тревог. Это не то. Привязка это статическое значение, а надо динамическую смену текстов. Как надо: 1 - CALL.STRING содержит 20 строк; 2 - на вход записываю 10, строка №10 записывается в ГЭ "Текст". (подавая на вход число № CALL.STRING соответствующая строка записывается в ГЭ "Текст")
Posted by Nico (Участник № / Member № 5342) on :
2 - на вход записываю 10, строка №10 доступна через текстовое представление R
Posted by sialiv (Участник № / Member № 6172) on :
Поясните пожалуйста "текстовое представление R" - что это за атрибут.(CALL.STRING ID0,R,DINT-реальное значение)
Posted by sialiv (Участник № / Member № 6172) on :
Надо просто связать ГЭ Текст с экранной переменной STRING и привязать её к CALL.STRING.ID1(A).
PS:Зачем столько тумана господа? Будьте проще и к вам потянутся.
Posted by matveev2006 (Участник № / Member № 6238) on :
Как вывести текстовую строку в ГЭ "Текст"? Прочел несколько веток форума но так до конца и не понял. Желательно поподробнее...
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Вариантов очень много. Определяющими факторами являются источник строки и регламент вывода.
С более полным, ясным описанием задачи обратитесь, пожалуйста, на hotline@adastra.ru.
Posted by matveev2006 (Участник № / Member № 6238) on :
К сожалению на почту никто не отвечает. Прошу помощи на форуме. Меня интересует следующий вопрос. Через элемент ГЭ "текст" мне нужно выводить одно из нескольких текстовых сообщений для оператора. Текстовые сообщения, в количестве 4 шт. отражают статус соединения GSM модема с удаленным контроллером. Для этого у меня есть OPC тег, принимающий следующие значения: 0 - "обмен успешно завершен"; 1 - "идет установление соединения с сервером"; 2 - "идет обмен данными с сервером"; неопределенность - "соединение потеряно". Каким образом мне нужно настроить ГЭ "текст", что бы он выводил данные сообщения в зависимости от состояния OPC тега?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Ответ отправлен почтой.
Для вывода строк в зависимости от значения аргумента можно использовать ГЭ “Текст”, в котором выбрать “Вид индикации” = “Набор {Arg=Конст}”.
Posted by Жигалов Денис Николаевич (Участник № / Member № 6035) on :
Тоже заинтересовался в целях саморазвития задачей matveev2006, создал канал CALL.STRING в аргументах канала создал ARG_000 и поставил значение по умолчанию '123456'. Но в ГЭ Текст выводится только 1234. Как вывести остальное. Справку читал не чего не ясно.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
На самом деле, если посмотреть в окне "Просмотр компонентов" этот аргумент канала сохраняет 4 символа. Это особенность передачи текстовой константы "по умолчанию" в аргумент канала CALL. Она всегда обрезается до 4 символов. Задайте строку в аргументе другим способом (или измените ее в реальном времени). Она должна отобразиться на экране.
Posted by matveev2006 (Участник № / Member № 6238) on :
Метод, отправленный мне на почту, в данном случае не подходит по причине того, что одно из состояний OPC тега является неопределенность. По этому методу у меня выводится другая текстовая информация, так как числовые значения аргумента определены и отличны от нуля. Поэтому предполагалось в ST-программе проверять OPC тег на несколько условий (проверка на 0,1,2) и в случае не равенства делать вывод о не определенности тега и соответственно выводить нужное текстовое сообщение (присваивать аргументу нужную текстовую строку). Как это возможно реализовать?
Posted by Жигалов Денис Николаевич (Участник № / Member № 6035) on :
А когда тег равен не определенности то там какое значение? Допустим:
IF teg == 0 THEN message = 'обмен успешно завершен'; END_IF; IF teg == 1 THEN message = 'идет установление соединения с сервером'; END_IF; IF teg == 2 THEN message = 'идет обмен данными с сервером'; END_IF; IF teg > 2 OR teg < 0 THEN message = 'соединение потеряно'; END_IF; Так не пойдет?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Не нужна программа. В ГЭ "Текст" есть значение по умолчанию (там, где при создании ГЭ написано "текст"). Если значение аргумента не соответствует ни одному значению из заданных в "Наборе", будет выведено значение "по умолчанию".
Posted by matveev2006 (Участник № / Member № 6238) on :
Спасибо! Раз есть возможность обойтись без программы лучше так и сделать. Все заработало.