Array в KepServer for Wonderware. Доступ из InTouch

Связь между InTouch и программируемыми логическими контроллерами, компьютерами
и другими устройствами.

Array в KepServer for Wonderware. Доступ из InTouch

Сообщение LexSL » Пт июн 03, 2011 3:34 pm

День добрый.
Подскажите как объявлять теги в Интаче с привязкой к элементам массива в KepServer.
В KepServer объявляю тег "MIS" с адресом 300000 [15] (тип данных Word).
Подключаясь к kepServer OPC клиентом (который с kepServer устанавливается) вижу поступающие данные в виде: [0,0,xx,xx,...,xx].

в Интаче делаю через AccessName: Node Name = localhost, AppName = Servermain, TopicName = _ddedata.
в словаре тегов создаю тег, указываю созданный AccessName, а Item = Channel1.device1.mis. Ну и на мнемосхему вывожу - он мне выводит первый элемент - "ноль". QualityStatus этого тега = 3 (гуд).
А как получить доступ к остальным элементам-то?
указывал и так "Channel1.device1.mis[3]", и так "Channel1.device1.mis.5" - в логах пишет "Failed to advise item "Channel1.Device1.MIS.5" for Access Name "kepware"". типа - нет такого Item.
Как быть?

----
Спасибо за поддержку
LexSL
 
Сообщения: 80
Зарегистрирован: Вт дек 14, 2010 2:53 pm

Re: Array в KepServer for Wonderware. Доступ из InTouch

Сообщение Генератор зла » Пт июн 03, 2011 3:54 pm

OPC-specific array data type (VT_ARRAY) is not supported in the DDE/SL plug-in. These arrays are converted to HEX strings, which provide legacy behavior.
1. Передавать каждый элемент массива в свой тег.
2. Передать массив как строку и в InTouch на скрипте эту строку "ломать".
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Array в KepServer for Wonderware. Доступ из InTouch

Сообщение LexSL » Пт июн 03, 2011 4:43 pm

Эээххх, а зря не поддерживается... :(
Объявил тег-строку I/O Message. на мнемосхеме отображает результат слияния всех word. вот так примерно "001158441740243107174173584182204404611113715702801530"
:))))
глядя то на числа - понимаю примерно, что я принимаю от прибора, но в том то и дело, что например, первый элемент word - он равен первому нулю, второй ворд = второй ноль, третий ворд = 1, ну а дальше четвертый ворд = 15844, и вот так и дальше вперемешку идет. и получается что строка в разные моменты времени имеет разную длину...как ее парсить в скриптах, не представляю. :(





Upd.
Сейчас поставил этот строковый тег в интаче на UserInputs, щелкнул на этом теге на мнемосхеме и обнаружил что числа(эти самые элементы массива) разделены символом типа "Tab".
Вот так:
0 0 1 45489 17401 36228 17417 31232 18062 18237 1 0 0 0 1699

сейчас думаю, может это мне чем то помочь или нет :))..наверно нужно всякими функциями типа StringLen, StringTrim, StringInString и т.п. поиграться...
правда, мне кажется что это не самое изящное решение, громоздко и неуклюже получится...
Последний раз редактировалось LexSL Пт июн 03, 2011 4:54 pm, всего редактировалось 1 раз.
LexSL
 
Сообщения: 80
Зарегистрирован: Вт дек 14, 2010 2:53 pm

Re: Array в KepServer for Wonderware. Доступ из InTouch

Сообщение Генератор зла » Пт июн 03, 2011 4:50 pm

Разве я говорил, что будет легко? :)
Word = 2 Байта = 2 символа в строке (по идее).
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Array в KepServer for Wonderware. Доступ из InTouch

Сообщение LexSL » Пт июн 03, 2011 5:13 pm

Генератор зла писал(а):Разве я говорил, что будет легко? :)
Word = 2 Байта = 2 символа в строке (по идее).


Word = 0..65535 поэтому в строке от одного до 5 символов может быть. (по идее) :))
LexSL
 
Сообщения: 80
Зарегистрирован: Вт дек 14, 2010 2:53 pm

Re: Array в KepServer for Wonderware. Доступ из InTouch

Сообщение Генератор зла » Пт июн 03, 2011 5:28 pm

Именно поэтому в таких случаях массив Word-ов описывают в InTouch-е как строку, получая по 2 символа на каждый элемент массива.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm


Вернуться в Связь InTouch с ПЛК

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

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