Вход на форум 
В начало e-Mail

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

  
Smart Solutions VDT :: Просмотр темы - ControlLogix и строковые теги
 FAQFAQ   ПоискПоиск   ГруппыГруппы   ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

ControlLogix и строковые теги
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации
Предыдущая тема :: Следующая тема  
Автор Сообщение
Mr_Wasp
Эксперт
Эксперт


Зарегистрирован: Mar 14, 2006
Сообщения: 128
Рейтинг: +2/-0
Откуда: Липецк

СообщениеДобавлено: Вт 26 Сен, 2006 12:26:05    Заголовок сообщения: ControlLogix и строковые теги Ответить с цитатой

Здравствуйте, коллеги!

Никто не сталкивался с проблемой записи в строковые теги ControlLogix и чтения из них строк на русском языке? Есть такая необходимость, чтобы одно приложение по OPC записало в контроллер строку на русском языке, другое - прочитало.

Я так понимаю, что стандартный тип String в Logix не катит по причине того, что каждый символ в строке имеет тип ShortInt (SINT). Но есть якобы вариант с использованием массива INTов, к которым нужно лишь своеобразно обратиться: например, из RSView32 указать примерно следующее [LINX_TOPIC]int_str[0],SCxx. В этом случае получается забрать символы в латинской кодировке (опять с кодом от 0 до 127 десятичн.), но с кодом от 128 до 255 никак, точнее они отображаются не по-русски в любом случае.


Если есть решение, то буду рад за помощь.

С уважением,
Vitaliy D. Burtsev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Вт 26 Сен, 2006 13:30:05    Заголовок сообщения: Ответить с цитатой

Добрый день!
RSView32 отлично пишет и читает String в SoftLogix на русском языке.
За исключением того-что в RSLogix 5000 не прочитать текст, т.к. приведены коды.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dvoeglazov
Эксперт
Эксперт


Зарегистрирован: Mar 06, 2006
Сообщения: 278
Рейтинг: +1/-0
Откуда: г.Киров-Чепецк

СообщениеДобавлено: Вт 26 Сен, 2006 15:02:47    Заголовок сообщения: Ответить с цитатой

Правильно. Так и нужно делать. Одна программа пишет, другая читает, но в контроллере эти данные в ненаглядном (закодированном) виде. А все потому, что русские буквы имеют ASCII кода больше 127.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Mr_Wasp
Эксперт
Эксперт


Зарегистрирован: Mar 14, 2006
Сообщения: 128
Рейтинг: +2/-0
Откуда: Липецк

СообщениеДобавлено: Ср 27 Сен, 2006 5:27:56    Заголовок сообщения: Ответить с цитатой

Спасибо, конечно, за ответы, но я так и не понял: можно ли как-нибудь записать в ControlLogix именно РУССКУЮ строку, а затем ее прочитать?

Я знаю, что коды русских букв выходят за пределы стандартной ASCII таблицы и имеют значение большее 127 (десятичное), даже более того: если создать самому массив INTов и попытаться записать в него русские символы, то коды символов правильно раскладываются в шестнадцетиричном коде. Однако никто не может их считать: ни RSView32, ни OPCTestClient (RSLinx Tools), ни другие клиенты.

Неужели придется этот массив на ВАСИКе разбирать? Типа загружаем нулевой элемент массива: старший байт преобразуем, записываем в первый символ строки, младший байт преобразуем - записываем во второй символ строки; затем берем следующий INT и т.д. Честно говоря, по ощущениям выглядит не очень...

Vitaliy D. Burtsev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Ср 27 Сен, 2006 9:18:38    Заголовок сообщения: Ответить с цитатой

Mr_Wasp писал(а):
Спасибо, конечно, за ответы, но я так и не понял: можно ли как-нибудь записать в ControlLogix именно РУССКУЮ строку, а затем ее прочитать?

Skip



Можно. И никаких "Васиков" не надо.

Описываешь в RSLogix 5K тег как String, например имя "Text"

В RSView32 в поле Adress также пишешь "Text", тип данных String.
Не используй "Text.data[*]".
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mr_Wasp
Эксперт
Эксперт


Зарегистрирован: Mar 14, 2006
Сообщения: 128
Рейтинг: +2/-0
Откуда: Липецк

СообщениеДобавлено: Чт 28 Сен, 2006 5:36:31    Заголовок сообщения: Ответить с цитатой

Можно. И никаких "Васиков" не надо.

Описываешь в RSLogix 5K тег как String, например имя "Text"

В RSView32 в поле Adress также пишешь "Text", тип данных String.
Не используй "Text.data[*]".



Именно так и делал с самого начала.
Не работает.

С уважением,
Vitaliy D. Burtsev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dvoeglazov
Эксперт
Эксперт


Зарегистрирован: Mar 06, 2006
Сообщения: 278
Рейтинг: +1/-0
Откуда: г.Киров-Чепецк

СообщениеДобавлено: Чт 28 Сен, 2006 6:21:21    Заголовок сообщения: Ответить с цитатой

А разъясните поконкретнее:
Какое приложение пишет?
Какое читает?
Производятся-ли какие-либо операции с этим тегом в контроллере?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Mr_Wasp
Эксперт
Эксперт


Зарегистрирован: Mar 14, 2006
Сообщения: 128
Рейтинг: +2/-0
Откуда: Липецк

СообщениеДобавлено: Чт 28 Сен, 2006 7:02:31    Заголовок сообщения: Ответить с цитатой

В качестве полигона используется следующий набор:

1. Процессор Logix5561
2. Пакет RSLogix5000, создан тег типа STRING
3. С помощью клиентов OPC Test Cliet (RSLinx Tools) или OPC Scout (Simatic Net) или RSView32 пытаюсь занести в строку значение.
4. Проверяю результат в RSView32.


Русскую строку удается увидеть только в OPC Scout.

В Monitor Tags самого RSLogix5000 вижу, что значения символов в шестнадцатеричном коде соответсвуют мною введенным, однако никто из клиентов Rockwell их не видит.


С уважением,
Vitaliy D. Burtsev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mr_Wasp
Эксперт
Эксперт


Зарегистрирован: Mar 14, 2006
Сообщения: 128
Рейтинг: +2/-0
Откуда: Липецк

СообщениеДобавлено: Чт 28 Сен, 2006 7:54:59    Заголовок сообщения: Ответить с цитатой

И еще, в качестве дополнения:

OPC Scout от Simatic Net видит русские буквы в значении строковой переменной только в случае того, если записано оно с помощью самого OPC Scout. OPC Scout похоже работает с 16-ти ричными кодами символов.

Если попытаться записать значение строковой переменной из RSView32, то оно преобразуется не понятно по какому алгоритму и Scout это значение уже не воспринимает.

Если же вручную записать в RSLogix5000 ASCII коды русских символов в 16-ти ричной кодировке, то Scout их обновляет, а все остальные нет.

Vitaliy D. Burtsev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Чт 28 Сен, 2006 9:13:54    Заголовок сообщения: Ответить с цитатой

Странно все, увидеть бы живьем...

У меня все работает, RSView32 пишет и читает, аналогично и для RSView SE.

RSI OPC Test показывает только понятные ему символы, т.е. до кода 127. Но русский текст при этом записывает и RSView32 правильно отображает.
Условия моей проверки:
- SoftLogix5860 ver. 13.26
- RSView32 ver. 7.20
- RSView SE ver. 3.20
- RSLinx ver. 2.50

Вспоминая старое - обмен по OPC между RSView32 - русские символы были корявые, но RSView32 были ver. 6.30.16 и 6.30.17.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Чт 28 Сен, 2006 9:20:18    Заголовок сообщения: Ответить с цитатой

Уточнение

dv_ писал(а):
Странно все, увидеть бы живьем...
RSI OPC Test показывает только понятные ему символы, т.е. до кода 127.


Показывает понятные ему коды (до 127) до первого в старшей части,
т.е. если первый символ будет из старшей части, тогда строка как-бы пустая.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mr_Wasp
Эксперт
Эксперт


Зарегистрирован: Mar 14, 2006
Сообщения: 128
Рейтинг: +2/-0
Откуда: Липецк

СообщениеДобавлено: Чт 28 Сен, 2006 9:41:45    Заголовок сообщения: Ответить с цитатой

У меня RSView32 ver 7.00 упорно не хочет отображать русские строки и пишет их тоже в контроллер непонятно. При попадании в PLC они преобразовываются к символам с кодом от 0 до 127. С другими клиентами такого не происходит: после записи из RSI - OPC Test Client или SimaticNet OPC Scout записываются в PLC символы, в десятичном виде представляющие собой значения дополнительного кода до полного байта: т.е. код русского символа - 256 = отрицательное число (которое записано и отображается в PLC).


С уважением,
Vitaliy D. Burtsev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DIMIOKS
Эксперт
Эксперт


Зарегистрирован: May 14, 2005
Сообщения: 290
Рейтинг: +9/-0
Откуда: г.Самара

СообщениеДобавлено: Пн 02 Окт, 2006 5:33:20    Заголовок сообщения: Ответить с цитатой

Доброе утро всем!

Может, немного не в тему, но мы на Дельфях делали ввод/вывод на форму стринги, в том числе и кириллицу. Тип данных в каонтроллере - String. L32E, RSLogix5000 v.15, RSLinxPro 2.5. Без проблем.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Mr_Wasp
Эксперт
Эксперт


Зарегистрирован: Mar 14, 2006
Сообщения: 128
Рейтинг: +2/-0
Откуда: Липецк

СообщениеДобавлено: Вт 03 Окт, 2006 5:10:29    Заголовок сообщения: Ответить с цитатой

Может, немного не в тему, но мы на Дельфях делали ввод/вывод на форму стринги, в том числе и кириллицу. Тип данных в каонтроллере - String. L32E, RSLogix5000 v.15, RSLinxPro 2.5. Без проблем.

У меня такое подозрение, что некорректно работает RSView32 v.7.00. Она не только не умеет прочитать записанные в ControlLogix строковые теги, но и пишет их туда неправильно. RSLinx у меня версии 2.42.

Если использовать практически любого другого OPC клиента к RSLinx, то получается и записать, и прочитать. Строка кладется с нормальными 16-ти ричными кодами русских символов и без проблем считывается в этот же клиент. А нужно именно использовать в качестве клиента RSView32.

С уважением,
Vitaliy D. Burtsev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DIMIOKS
Эксперт
Эксперт


Зарегистрирован: May 14, 2005
Сообщения: 290
Рейтинг: +9/-0
Откуда: г.Самара

СообщениеДобавлено: Вт 03 Окт, 2006 5:37:45    Заголовок сообщения: Ответить с цитатой

Цитата:
Если использовать практически любого другого OPC клиента к RSLinx, то получается и записать, и прочитать.


У нас вообще мысля есть свой OPC писать. Возможно, ближе к зиме и приступим. Хотя в Делфях использовался стандартный OPC. Будем думать Smile. При использовании других клиентов, действительно все вроде нормально. Скорее, очередная заморочка вьюшки (и скоко их еще будет Very Happy ).

Цитата:
А нужно именно использовать в качестве клиента RSView32.


Если необходимо RSView32, то скорее придется там делать обходным путем, т.е в окне RSView32 вызывать другое приложение и работать с ним. Сейчас пробовал средсвами RSView32 без VBA, ничего не получилось. Может у кого есть свой способ решения проблемы инструментами RSView32?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации Часовой пояс: GMT + 1
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах

Powered by phpBB © 2001, 2005 phpBB Group
Яндекс цитирования

Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany
Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de
Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна.
Открытие страницы: 0.128 секунды
/n