Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Пт мар 29, 2024 00:33

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 4 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Перменные типа Text. Обмен с контроллером.
СообщениеДобавлено: Ср янв 21, 2009 09:58 
Не в сети
Аватара пользователя

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


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 24, 2009 20:25 
Не в сети
Site Admin
Аватара пользователя

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


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 27, 2009 06:34 
Не в сети

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


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 27, 2009 09:58 
Не в сети
Аватара пользователя

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


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 4 сообщений ] 

Часовой пояс: UTC + 3 часа (Russia: MSK)


Кто сейчас на конференции

Сейчас этот форум просматривают: в настоящее время на конференции нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Переход:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3