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/ |