Страница 1 из 1

Запись значений тегов из InTouch в MS SQL

СообщениеДобавлено: Пн янв 23, 2012 3:14 am
alekssh218
Всем доброго времени суток!
Подскажите пожалуйста есть ли какой нибудь работающий пример выполняющий запись значений тегов из InTouch в MS SQL Server. Если есть скиньте пожалуйста.
Пытаюсь обкатать следующий способ.Есть устройства от фирмы Шнайдер РМ 710 с них читаются показания качества эл. сети. Необходимо записывать эти данные в базу, а далее соединяясь через клиента производить анализ полученных данных.
На данный момент запустил демку входящую в состав ПО InTouch и сделал следующее:
Сконфигурировал BindList и TampleteTable;
Создал кнопку при нажатии которой выполняется( ResultCode=SQLConnect( ConnectionId, "provider=sqloledb; DSN=ARM-2; UID=sa; PWD=kuba; Database=master1"); ) соединение с базой происходит так как ResultCode после нажатия равен 0;
Создал вторую кнопку при нажатии которой должно происходить
SQLTransact( ConnectionId );
ResultCode1=SQLCreateTable( ConnectionId, "Proba", "Proba" );
ResultCode=SQLInsert( ConnectionId, "Proba", "Proba" );
SQLCommit( ConnectionId );
SQLDisconnect( ConnectionId );
формирование таблицы на основе шаблона TampleteTable и вставка значений тегов чего на сервере MS SQL Server не происходит

Re: Запись значений тегов из InTouch в MS SQL

СообщениеДобавлено: Пн янв 23, 2012 12:07 pm
Генератор зла
1. Инструкция по работе с SQL Access
http://files.mail.ru/ZHN4TS
2. Проще создать таблицу внутри БД с помощью мастера БД, а в InTouch воспользоваться SQLSelect
3. Можно и вовсе записывать теги в БД через систему алармов InTouch + Alarm DBLogger

Re: Запись значений тегов из InTouch в MS SQL

СообщениеДобавлено: Вт янв 24, 2012 1:15 am
alekssh218
Спасибо за ответ Генератор зла. Попробую вторым способом "создать таблицу внутри БД с помощью мастера БД, а в InTouch воспользоваться SQLSelect"
Третий способ "записывать теги в БД через систему алармов InTouch + Alarm DBLogger" не совсем корректен так как необходимо чтобы запись в MS SQL Server происходила по задаваемому интервалу времени и этот интервал можно было бы устанавливать и изменять по необходимости оператором.
И всё таки почему не работает функция SQLCreatTable ведь в том же приложении пробовал создать базу алармов БД на MS SQL Server сформировалась без проблем.

Re: Запись значений тегов из InTouch в MS SQL

СообщениеДобавлено: Вт янв 24, 2012 11:46 am
Генератор зла
alekssh218 писал(а):И всё таки почему не работает функция SQLCreatTable ведь в том же приложении пробовал создать базу алармов БД на MS SQL Server сформировалась без проблем.

Посмотрите логи SMC-консоли. Если они чистые, то копайте логи системных журналов ОС и отладчик MSSQL.

Re: Запись значений тегов из InTouch в MS SQL

СообщениеДобавлено: Чт дек 04, 2014 6:21 pm
any
нашел по 10 версии, проверял в 9,5
"Далее приведены некоторые опытные наблюдения, которые были замечены в процессе настройки SQL-сервера и попыток подключения к нему из Wonderware InTouch:
1. Wonderware InTouch может подключаться к SQL-серверу только через удаленное соединение и не может через локальное. Плохо здесь то, что мы можем потерять в быстродействии, а хорошо, что сервер может быть расположен (установлен) на другом компьютере, что дает некоторую гибкость и удобство;
2. Подключиться к SQL-серверу из Wonderware InTouch можно, только если будет включен режим смешанной проверки подлинности пользователей, подключиться от имени текущего пользователя не удалось. "

Проверял через Alarm DB Logger Manager - при указании в User Info текущего доменного пользователя у которого есть доступ к BD и таблице - ошибка, а при указании проверки пользователя с SQL - есть connect.
Важно не забыть в MS SQL - прописать права доступа к таблицам, view.

Можно использовать для подключения к базе
ResultCode = SQLConnect( ConnectionID, "DSN=myDSN; UID=user; PWD=password" );
Только плохо что "UID=user; PWD=password" - хранится в файле проекта (вер InTouch 9.5) в открытом виде :( . Поэтому при создании в источнике данных ODBC системный DSN - "Проверка учетной записи Windows NT", и соответственно использую для подключения к MS SQL
ResultCode = SQLConnect( ConnectionID, "DSN=myDSN; Trusted_Connection = Yes");
строчки можно посмотреть тут http://www.connectionstrings.com/

Создать в SQL Access Manager BindList, где указать связи полей вашей таблицы с тегами. Создать внутренний тег, в котором будет храниться идентификатор коннекта с БД SQL (например, ConnectID). Создать внутренние теги, куда у нас будут записываться значения из таблицы.
Для того что бы создавать таблицы в InTouch динамически необходимо в SQL Access Manager Table Template сделать описание их структуры.