Имя тега по его адресу

Обсуждение SCADA-систем: Citect SCADA, Vijeo Citect, CitectSCADA, CitectFacilities, PowerLogic SCADA, PowerSCADA, MX4SCADA, Desigo Insight, Vijeo Look и HMI: Vijeo Designer, Operator Terminal Expert.
kvn
Сообщений в теме: 7
Сообщения: 105
Зарегистрирован: 08 сен 2015, 12:12
Откуда: Екатеринбург
Благодарил (а): 10 раз

Имя тега по его адресу

#1

Сообщение kvn » 23 окт 2015, 09:39

Добрый день!
Существует в Citect с использованием функции (функций) Cicode возможность определить STRING имя тега по его адресу задаваемому в поле Адрес (Теги - Переменные теги)?



Аватара пользователя
alex
Администратор
Сообщений в теме: 5
Сообщения: 1818
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 53 раза
Поблагодарили: 116 раз
Контактная информация:

Re: Имя тега по его адресу

#2

Сообщение alex » 23 окт 2015, 10:32

Штатно, я думаю что нет. Но кто Вам мешает открыть файл variable.dbf и запустить поиск по полю ADDR?



kvn
Сообщений в теме: 7
Сообщения: 105
Зарегистрирован: 08 сен 2015, 12:12
Откуда: Екатеринбург
Благодарил (а): 10 раз

Re: Имя тега по его адресу

#3

Сообщение kvn » 23 окт 2015, 11:08

Если я каким то образом - не в ручную (пока не понимаю как) выполню поиск и найду требуемое имя тега,
смогу затем это имя "переправить" в Cicode?



Андрей
Сообщений в теме: 1
Сообщения: 39
Зарегистрирован: 28 фев 2011, 11:39

Re: Имя тега по его адресу

#4

Сообщение Андрей » 23 окт 2015, 11:21

Если запустите перекомпиляцию и затем перезапустите сервер ввода-вывода и все это будет сделано программно, то все будет работать, но это будет уже какая-то "самоорганизующаяся" SCADA-система :)



kvn
Сообщений в теме: 7
Сообщения: 105
Зарегистрирован: 08 сен 2015, 12:12
Откуда: Екатеринбург
Благодарил (а): 10 раз

Re: Имя тега по его адресу

#5

Сообщение kvn » 23 окт 2015, 11:44

Мне (во всяком случае пока) не требуется изменять файл variable.dbf.
Я хочу "заполучить" имя тега по его адресу для его использования в Cicode.



Аватара пользователя
alex
Администратор
Сообщений в теме: 5
Сообщения: 1818
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 53 раза
Поблагодарили: 116 раз
Контактная информация:

Re: Имя тега по его адресу

#6

Сообщение alex » 23 окт 2015, 13:35

Покопался в документации, оказывается можно получить адрес программно, есть такие функции TagInfoEx и TagInfo.



kvn
Сообщений в теме: 7
Сообщения: 105
Зарегистрирован: 08 сен 2015, 12:12
Откуда: Екатеринбург
Благодарил (а): 10 раз

Re: Имя тега по его адресу

#7

Сообщение kvn » 23 окт 2015, 14:55

Да есть, на я то знаю адрес - мне надо имя по адресу.
Имя только что получил.
Применил функции TagBrowse...



kvn
Сообщений в теме: 7
Сообщения: 105
Зарегистрирован: 08 сен 2015, 12:12
Откуда: Екатеринбург
Благодарил (а): 10 раз

Re: Имя тега по его адресу

#8

Сообщение kvn » 26 окт 2015, 07:35

Имя могу получить, почему то, только для одного тега применяя функцию TagBrowse, указывая для атрибута Filter адрес одного тега - ADDR=*0.
hTBHandle = TagBrowseOpen("ADDR=*0; TYPE=0", "TAG", "ADDR:A", "")

Если выполняю подписку на теги с адресами меньше или равно 1 (адреса идут с 0), т.е. должен получить подписку для тегов с адресами 0 и 1,
hTBHandle = TagBrowseOpen("ADDR<=*1; TYPE=0", "TAG", "ADDR:A", "")
получаю в ответ ошибку 274 "Invalid argument passed"
Нельзя выполнять "фильтр" по адресам или не таким образом требуется выполнять запись поля Filter в функции TagBrowseOpen?



Аватара пользователя
alex
Администратор
Сообщений в теме: 5
Сообщения: 1818
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 53 раза
Поблагодарили: 116 раз
Контактная информация:

Re: Имя тега по его адресу

#9

Сообщение alex » 26 окт 2015, 14:59

Я думаю, что условие ADDR<=*1 здесь неправильное, т.к. адрес может быть не только числовым, но и иметь другие знаки, и здесь знак больше/меньше уже не применим.



kvn
Сообщений в теме: 7
Сообщения: 105
Зарегистрирован: 08 сен 2015, 12:12
Откуда: Екатеринбург
Благодарил (а): 10 раз

Re: Имя тега по его адресу

#10

Сообщение kvn » 26 окт 2015, 15:54

В встроенной помощи такое описания вводимых данных в Field для выражения-
"The following regular expressions are supported *expr, expr*, and *expr*."

Сейчас пытаюсь осмыслить как это понимать.
Вроде тогда надо вводить так - ADDR=*0*.
Хотя в примере (в помощи) с одной "звездочкой"-
// open
TBResult = TagBrowseOpen("ADDR=*2; TYPE<=2", "TAG,TYPE,ADDR", "ADDR:D", "");

Непонятно :(




Если эта тема может быть полезна другим, поделитесь ссылкой:

Вернуться в «Citect SCADA, Vijeo Citect, CitectSCADA, CitectFacilities, PowerLogic SCADA, PowerSCADA, MX4SCADA, Desigo Insight, Vijeo Look, Vijeo Designer, Operator Terminal Expert»