cpu13.ru - форум OMRON
http://cpu13.ru/

Перменные типа Text. Обмен с контроллером.
http://cpu13.ru/viewtopic.php?f=3&t=465
Страница 1 из 1

Автор:  Sender [ Ср янв 21, 2009 09:58 ]
Заголовок сообщения:  Перменные типа Text. Обмен с контроллером.

При написании программы под Супервизор столкнулся со следующей проблемой.
Необходимо организовать обмен текстовыми переменными Супервизора с контроллером CJ1M.
В Супервизоре создаю переменную типа "Text", указываю адрес контроллера (например D100), указываю тип передаваемых данных типа "Raw char binary" (пробовал и другие) и указываю количество этих данных (например 40 символов, т.е. 20 слов).
Далее создаю поле ввода/отображения этой переменной типа "Text".
В результате получаю из контроллера данные, которые там представлены в виде ASCII кода, в виде текста (что мне и надо получить).
Далее я могу менять этот текст в созданном поле ввода, и в контроллере также меняется этот текст (отображаясь соответственно в ASCII кодировке).
Но при попытке присвоения текста этой переменной через скрипт (например TextVar="f18"), выдается сообщение об ошибке скрипта (при попытке его выполнить). Но при этом, если я указываю размерность переменной в 1 символ (и скриптом пишу TextVar="r"), то скрипт выполняется без ошибок и в контроллер нормально передается введенный символ. Т.е. ошибка выдается при любом другом размере переменной, кроме 1.
Подскажите пожалуйста, как решить проблему.

Автор:  Олег [ Сб янв 24, 2009 20:25 ]
Заголовок сообщения: 

Делаю почти тоже самое, тип "Signed char binary", Сохраняю в контроллере название рецепта, причём на русском языке, но не пишу в скрипте TextVar="f18" а передаю значение через другую текстовую переменную, у меня строчка Имя_1=Имя_рец[nr], там выбор текста из массива. Работает без проблем, ошибок нет, версия супервайзора 2.11(2) скрипт супервайзора, не VB

Автор:  E7 [ Вт янв 27, 2009 06:34 ]
Заголовок сообщения: 

такая же бяка была. Дело в том что супервайзер наотрез отказывается присваивать значение в ковычках текстовой переменной. не важно передаю я её в ПЛЦ или переменная типа memory. Пробовал делать Text_Line_Asp = Text_Auto ? где та и другая - типа text и Text_Auto в дефаулте присвоено АВТОМАТ.
-работает. далее в ПЛЦ - но сдесь важно соблюсти размерность массива. скажем всего могу передать 10 символов. значит при передаче в ПЛЦ передастся все 10- ять символов не важно что передаваемая строка состоят только лиш из 7-ми символов.

Автор:  Sender [ Вт янв 27, 2009 09:58 ]
Заголовок сообщения: 

Спасибо за ответы.
Все заработало.
Оказывается ключевым моментом было выполнение скрипта не в VB-Script, а в CX-Supervisor Script. Когда переключил на супервизоровский скрипт, сразу все заработало.
Единственный минус этого решения - необходимость выносить это действие в отдельный скрипт, т.к. остальные выполняемые действия идут только под VB, а в апострофах @VBSCRIPT не выполняются.

Страница 1 из 1 Часовой пояс: UTC + 3 часа (Russia: MSK)
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/