Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
16.01.2018, 22:09:53
 
Начало Помощь Поиск Войти Регистрация
Новости: Форум обновлен

+  Форум АО "ВЗЛЕТ"
|-+  Приборы ЗАО "Взлет"
| |-+  Отдел программистов
| | |-+  OPC сервер Vzjot.OPC.Server
0 Пользователей и 2 Гостей смотрят эту тему. « предыдущая тема следующая тема »
Страниц: 1 ... 3 4 [5] 6 7 ... 11 Печать
Автор Тема: OPC сервер Vzjot.OPC.Server  (Прочитано 136874 раз)
Денис Пономарев
Global Moderator
*****

Харизма: 6
Офлайн Офлайн

Сообщений: 74



« Ответ #60 : 07.11.2008, 15:04:10 »

Практика показывает, что мощные SCADA системы типа InTouch или MasterScada не хотят воспринимать тэги, у которых тип array. Хотя простенькие ОРС клиенты вроде dOPCExplorera или "Visual OPCTest Validator" массивы прекрасно разбирают.
В виду этого тэги соответствующие полям архивных записей изменены с типа "массив" (array) на простые типы, и возвращают не набор значений с "датыОТ" до "датыДО", всегда одно значение, которое соответствует полю "датаОТ".
Тэг "архивная запись" по прежнему будет отдавать массив. Вдруг кому надо.
Записан
XTech
Гость
« Ответ #61 : 19.02.2009, 10:24:04 »

Может я чего-то не понимаю...
Но где можно более или менее подробно прочитать про работу с архивами Взлетов через OPC - из приложенной к серверу html-ки ничего толком понять не удалось.

Что я делаю не так?
0. Прибор УРСВ-010, сервер последней версии;
1. Подключаюсь через OPC DA;
2. Записываю единицу в "<Прибор>.Открыть/закрыть канал связи";
3. Текущие данные читаются на ура;
4. Пишу пустые строки в "<Прибор>.Часовой_архив.Начало периода" и "<Прибор>.Часовой_архив.Конец периода", а в "<Прибор>.Часовой_архив.Индекс от" и "<Прибор>.Часовой_архив.Индекс до" 0 и 5 соответственно.
5. Читаю "<Прибор>.Часовой_архив.Архивная запись";
6. Получаю Variant Array of Variant;
7. Определяю границы массива (почему-то всегда получаю 5);
8. Разбираю массив по параметрам - получаю <текущая дата/время прибора>,0,0,0,<число (меняется при каждом перезапуске сервера)>;

Результат - явно не то, что хотелось бы получить.

И еще один вопрос - OPC сервер кэширует данные или на каждый запрос дергает прибор?
Записан
Денис Пономарев
Global Moderator
*****

Харизма: 6
Офлайн Офлайн

Сообщений: 74



« Ответ #62 : 19.02.2009, 12:07:46 »

Часовой архив для этого прибора указан как индексный. То есть работать с тэгами "дата от" и "дата до" не нужно.
В часовом архиве определены 5 записей:
- Дата_время
- V_в_прямом_напр
- V_в_обратном_напр
- Суммарный_V
- Суммарное_время_НС

То есть если со 2 по 4 поле все нули, а меняется только Суммарное_время_НС, значит в приборе растет время наличия НС.

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

Данные не кэшируются.
Записан
XTech
Гость
« Ответ #63 : 19.02.2009, 12:23:17 »

Так... Начинает проясняться Smiley Спасибо! Smiley
Как тогда получить следующую архивную строку?
Просто послать еще один OPCSyncIO.Read?
Записан
Денис Пономарев
Global Moderator
*****

Харизма: 6
Офлайн Офлайн

Сообщений: 74



« Ответ #64 : 19.02.2009, 13:48:47 »

Данные в тэге "архивная запись" соответствуют дате (или индексу) тэга "Дата от" (или "Индекс от").
Записан
XTech
Гость
« Ответ #65 : 19.02.2009, 16:51:37 »

Хм... А тогда какой смысл в тэгах "Конец периода" и "Индекс до", если запрос возвращает только одну строчку? Или я тут чего-то опять не понимаю?
Записан
Денис Пономарев
Global Moderator
*****

Харизма: 6
Офлайн Офлайн

Сообщений: 74



« Ответ #66 : 19.02.2009, 16:53:14 »

Прочитайте сообщение №60 в этой теме. Там написано что было и что стало.
Оставили на память Smiley
Записан
XTech
Гость
« Ответ #67 : 20.02.2009, 05:09:53 »

Я чуть-чуть попридираюсь:

В виду этого тэги соответствующие полям архивных записей изменены с типа "массив" (array) на простые типы, и возвращают не набор значений с "датыОТ" до "датыДО", всегда одно значение, которое соответствует полю "датаОТ".
Тэг "архивная запись" по прежнему будет отдавать массив. Вдруг кому надо.

Я это прочитал и понял именно так, что сервер по-прежнему отдает массив значений от и до в тэге "архивная запись". Выходит, что это не так.

Более того, по запросу GetItemProperties для полей по прежнему возвращается тип 0x2004 или 0x2012, что есть совсем непонятно для вышеотквоченного описания.
Записан
alsz
Гость
« Ответ #68 : 20.02.2009, 08:02:00 »

Мне нужно интерировать Vzjot.OPC.Server в СКАДУ систему Desigo Insight .
Проблема в том, что я не могу вбить адреса тэгов, потому что СКАДА понимает символы только на английском языке разделенные точкой, количество символов не больше 64.
Каким образом можно перебить адреса тэгов???
Записан
XTech
Гость
« Ответ #69 : 20.02.2009, 08:16:11 »

Мне нужно интерировать Vzjot.OPC.Server в СКАДУ систему Desigo Insight .
Проблема в том, что я не могу вбить адреса тэгов, потому что СКАДА понимает символы только на английском языке разделенные точкой, количество символов не больше 64.
Каким образом можно перебить адреса тэгов???

Отвечу за авторов:
В утилите выбора конфигурации в последней версии сервера есть опция "Применить транслит к именам объектов".


* Clipboard01.gif (6.54 Кб, 338x190 - просмотрено 914 раз.)
Записан
alsz
Гость
« Ответ #70 : 20.02.2009, 11:27:59 »

На английский язык сервер перешел, но как сделать чтобы имя тега было короче.
У меня ограничение на 64 символа.
Можно тэг переименовать?Huh?
Записан
XTech
Гость
« Ответ #71 : 20.02.2009, 11:39:57 »

В принципе, vtmpl файлы - это просто xml-ка. Имя переменной в OPC прописано в TCaption_ru. Можно попробовать подредактировать. Но гарантий никаких. Хотя по-идее должно сработать.
Записан
alsz
Гость
« Ответ #72 : 20.02.2009, 12:10:41 »

Как я понял если я в TCaption_ru=" " пропишу свое обозначение, то я могу и не ставить галочку на транслите?
Записан
XTech
Гость
« Ответ #73 : 20.02.2009, 12:30:11 »

По логике вещей - да.
Пока не проверишь - не узнаешь Smiley
У меня все отработало успешно. Главное - кроме TCaption_ru ничего не трогай Smiley
Записан
Денис Пономарев
Global Moderator
*****

Харизма: 6
Офлайн Офлайн

Сообщений: 74



« Ответ #74 : 20.02.2009, 13:59:04 »

Я чуть-чуть попридираюсь:

В виду этого тэги соответствующие полям архивных записей изменены с типа "массив" (array) на простые типы, и возвращают не набор значений с "датыОТ" до "датыДО", всегда одно значение, которое соответствует полю "датаОТ".
Тэг "архивная запись" по прежнему будет отдавать массив. Вдруг кому надо.

Я это прочитал и понял именно так, что сервер по-прежнему отдает массив значений от и до в тэге "архивная запись". Выходит, что это не так.

Более того, по запросу GetItemProperties для полей по прежнему возвращается тип 0x2004 или 0x2012, что есть совсем непонятно для вышеотквоченного описания.

Нет, не так.
Раньше отдельные тэги, соответствующие конкретным полям архива (например "Время_НС") отдавался как массив значений, соответствующих датам. А "архивная запись" отдавался только как вся текущая запись в массиве.
Теперь конкретные поля представлены одиночными значениями.
Записан
Страниц: 1 ... 3 4 [5] 6 7 ... 11 Печать 
« предыдущая тема следующая тема »
Перейти в:  


Войти

© 1990—2016, АО «Взлет».
Все права защищены.
Контактная информация
Powered by SMF 1.1.13 | SMF © 2006-2011, Simple Machines LLC
Материалы, размещенные на сайте, охраняются законодательством об авторском праве. Перепечатка материалов допускается только со ссылкой на сайт.