Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Пн ноя 19, 2018 12:51

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




Начать новую тему Ответить на тему  [ 10 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Необходимо ввести число в память контролеера, строго в HEX
СообщениеДобавлено: Пн апр 20, 2009 12:29 
Не в сети
Аватара пользователя

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Здравствуйте, Олег. У меня стоит задача в Supervisor. Необходимо ввести число в память контролеера, строго в HEX, т.е я должен в SCADA вводить числа HEX. Подскажите, пожалуйста, можно ли это сделать.
Вывода чисел в HEX я добился, а вот ввода никак не получается.
Если да, то как это реализовать.
Заранее благодарен.

_________________
С уважением, Павел.


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

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3019
Откуда: Москва
Оригинальная задачька, неужели оператор в хекс числах разбираться может?
Стандартными методами супервайзора этого кажись не сделать, ну разве только значение спайдером менять. можно подключить к супервайзору компонент OMRON CX Thumbwheel Control, и менять задание в хекс формате из него. (самый простой способ, но я не знаю в составе чего он идёт, кажись из сервер лайта)

можно и скриптами, в Примерах лежит Preobraz.rar, там скрипты преобразования в разные форматы. В твоём случае должен получится скрипт где ты редактируешь текстовую точку, т.е. записываешь в неё что-то вроде CAFE, потом подпрограммой скрипта из примера преобразуешь текст в число 51966 и отправляешь в котроллер


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

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Программу перевода я написал, беспроблем. А вот как из скрипта мне отправить значение переменной integer в вашем примере (result2), не знаю. Если есть функция записи переменной типа integer в контроллер, не могли бы вы мне ее подсказать, а то я ещё не во всех функциях разобрался. Точку с параметрами I/O и реальным адрессом контроллера я создал.
Заранее благодарен.

_________________
С уважением, Павел.


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

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
У меня получилось. Сделал я как вы мне посоветовали.
Я использовал функцию EditPoint по аналогу, прировнял внутреннюю переменную к внешней, а внешнюю поставил в функцию EditPoint. Постояно выпадает окно для подтверждения ввода уже с переведённым числом в десятичный формат :) А от этого уже наверно ни как не избавишся?

_________________
С уважением, Павел.


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

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3019
Откуда: Москва
Вообще-то я так и не понял в чём проблема...
Код:
EditPoint(xxx, "Set Text to", FALSE ,FALSE )
myHEX= xxx
CALL FF_255(  )
zzz = result2


zzz точка на чтение запись из контроллера (с интервалом в 3-5 сек), все остальные, точки в памяти супервайзора. Точка сама запишется по своему изменению в контроллер.
если хочется чтобы в окне редактирования отображалось текушее значение, поставь первой строчкой xxx = Hex(zzz)


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

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Извените, но у меня ни как не получается разобраться с Subrountain.
Кокда я прописываю функцию CALL у меня появляется Subrountain.
CALL FF_255( ), FF_255- это как я понимаю название самого скрипта?
И что это за условие Subrountain? Извените, просто я еще в этом не силен работал только над одним проэктом, а с СХ-Supervisor мне работать теперь постояно.

Спасибо, за удилённое мне время и за ранее благодарен.

_________________
С уважением, Павел.


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

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3019
Откуда: Москва
CALL FF_255( ) это обрашение к подпрограмме, которая в глобальном скрипте числится как Subroutine с именем FF_255.
т.е. чтобы обратится к подпрограмме с этим именем, её сначала нужно прописать в глобальном скрипте. (с текстом и переменными из примера)

Эта подпрграмма, текстовую точку myHEX (входные данные) преобразует в десятичное result2. (речь идёт о примере Preobraz.rar)
т.е. присваиваешь значение своей текстовой точки точке myHEX, потом своей точке, которая для связи с контроллером, передаёшь результат работы подпрограммы FF_255, т.е. result2.

Другими словами CALL FF_255( ), Вызов подпрограммы, (функции) преобразует текстовую переменную myHEX в десятичное целое result2, эти точки участвуют в работе подпрограммы.

про пост выше.
zzz это та точка которую тебе нужно писать в контроллер.
xxx это текстовое значение (мемори) которое нужно чтобы ввести тектовую сторку типа "CAFE", текстовое отображение числа "51966" в формате HEX.

Когда разберёшься, наверно удивишься как всё просто.


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

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Сделал все как вы сказали, и все получилось отлично. Оказалось все просто и легко.
Осталась только проблема многократного ввода, числа в переменную zzz, какие для этого можно использовать функции?, т.е. сначала например АААА, а потом FFFF.

_________________
С уважением, Павел.


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

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3019
Откуда: Москва
myHEX= "АААА"
CALL FF_255( )
zzz = result2

Потом когда нужно

myHEX= "FFFF"
CALL FF_255( )
zzz = result2

А если нужно вызвать окно для редактирования и изменить значение вручную, в скрипт на клик вставляещ:

xxx = Hex(zzz) 'Только для того чтобы в окне редактирования отображалось текущее значение
EditPoint(xxx, "Set Text to", FALSE ,FALSE )
myHEX= xxx
CALL FF_255( )
zzz = result2


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

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Огромное Вам спасибо, за помощь у меня все получилось.
Проблема состояла в том,что когда я создал новый проект и скопировал туда все точки и скрипты из Вашего проекта у меня при первом вводе в контроллер записывалось правильное значение,а при повторном вводе переменной xxx в память контроллера записывался 0.
Но когда я взял изначально Ваш проект удалил из него то что мне было не нужно, добавил точку zzz с реальным адресом, и проделал
"на клик"
xxx = Hex(zzz)
EditPoint(xxx, "Set Text to", FALSE ,FALSE )
myHEX= xxx
CALL FF_255( )
zzz = result2
все заработало.
Хотел бы от себя выразить Вам благодарность за помощь,за разъяснение по поводу САLL FF_255 () и за этот форум в частности.
Побольше бы таких людей как ВЫ.

_________________
С уважением, Павел.


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

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


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

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


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

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