| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
kempo Эксперт


Зарегистрирован: Jul 10, 2006 Сообщения: 150 Рейтинг: +6/-0 Откуда: Украина, Алчевск
|
Добавлено: Пн 09 Июл, 2007 10:11:22 Заголовок сообщения: Запись данных в контроллер |
|
|
| Есть параметры, которые обновляются несколько раз в сутки (плотность природного газа, барометрическое давление). Эти данные оператором заносятся в базу данных MSSQL. Необходимо эти данные записывать из базы в контроллер. Вроде как такое умеет делать RSSQL. Но вот каким образом это настроить - непонятно. Может быть есть еще какие-нибудь способы? Заранее спасибо. |
|
| Вернуться к началу |
|
 |
oldDad Site Admin


Зарегистрирован: May 05, 2005 Сообщения: 2773 Рейтинг: +89/-5
|
Добавлено: Пн 09 Июл, 2007 10:55:12 Заголовок сообщения: |
|
|
Можно и без RSSQL, почему нельзя.
Я бы мог себе представить аппликацию, которая, например, несколько раз в сутки читает данные с сервера MSSQL и через OPC пишет в тэги контроллера или контроллеров. |
|
| Вернуться к началу |
|
 |
kempo Эксперт


Зарегистрирован: Jul 10, 2006 Сообщения: 150 Рейтинг: +6/-0 Откуда: Украина, Алчевск
|
Добавлено: Вт 10 Июл, 2007 5:16:48 Заголовок сообщения: |
|
|
Как я понимаю эта аппликация должна записывать данные в контроллер с помощью VBA скрипта? У нас система на RSView SE, и хотелось бы не использовать VBA.
Если есть возможность делать такую запись с помощью RSSQL - то не могли бы Вы поподробнее написать как это делается? |
|
| Вернуться к началу |
|
 |
Kondratiev Постоянный участник


Зарегистрирован: Dec 04, 2005 Сообщения: 79 Рейтинг: +1/-0 Откуда: Мариуполь, Киев
|
Добавлено: Вт 10 Июл, 2007 6:39:46 Заголовок сообщения: |
|
|
а почему не хотелось бы использовать VBA???
у нас подобная ситуация. нужно брать данные по плотности природного газа из файрбёрдовской базы. это делает скрипт на VBA в RSViewшном проекте и пишет в контроллер есссно через тег.
правда RSView-32.
а что не так с SE?? |
|
| Вернуться к началу |
|
 |
dv_ Эксперт


Зарегистрирован: Sep 14, 2006 Сообщения: 776 Рейтинг: +41/-1 Откуда: Донецк
|
Добавлено: Вт 10 Июл, 2007 7:46:48 Заголовок сообщения: |
|
|
| Kondratiev писал(а): |
.... это делает скрипт на VBA в RSViewшном проекте и пишет в контроллер есссно через тег.
правда RSView-32.
а что не так с SE?? |
В SE объектная модель другая, VBA привязывается к экрану (объектам экрана), нет команды VBAExec. В принципе сделать можно, но заморочнее, чем в 32-ом. |
|
| Вернуться к началу |
|
 |
oldDad Site Admin


Зарегистрирован: May 05, 2005 Сообщения: 2773 Рейтинг: +89/-5
|
Добавлено: Вт 10 Июл, 2007 8:03:20 Заголовок сообщения: |
|
|
Если у Вас есть RSSQL, то никакая дополнительная аппликация не нужна.
А если его нет - можно написать на чём угодно, хоть на Дельфи или С++, подключить библиотеки OPC, читать данные из базы и через ОРС писать в контроллер или куда хотите.
По поводу конфигурирования RSSQL смотрите мануал: создаёте конфигурацию, описываете Control connector к RSLinx для контроллеров, описываете Database connectors к базе, создаёте транзакцию с событием, всё. |
|
| Вернуться к началу |
|
 |
kempo Эксперт


Зарегистрирован: Jul 10, 2006 Сообщения: 150 Рейтинг: +6/-0 Откуда: Украина, Алчевск
|
Добавлено: Вт 10 Июл, 2007 8:25:20 Заголовок сообщения: |
|
|
| Проблема вот в чем. Как писать из контроллера в MSSQL - это понятно. А вот как писать в обратную сторону - непонятно. |
|
| Вернуться к началу |
|
 |
Krotyuk Постоянный участник


Зарегистрирован: Feb 20, 2006 Сообщения: 59 Рейтинг: +0/-0 Откуда: г. Мариуполь
|
Добавлено: Ср 11 Июл, 2007 18:03:01 Заголовок сообщения: |
|
|
Ключевым моментом записи информации из базы данных в контроллер является правильное создание вызываемой хранимой процедуры.
Для того, чтобы хранимая процедура могла возвращать данные в контроллер, обязательно нужно указать эти параметры при создании самой процедуры.
Сразу же после этого при выборе переменных в окне "Data Object Definition" в графе "Direction" соответствующие переменные хранимой процедуры обозначаются "In/Out".
Конечно же, для того, чтобы данные попали в контроллер в теле процедуры нужно написать код, который в эти переменные какую-то информацию положит.
В простейшем случае это может выглядеть так:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[qwerty]( @Out_tag1 real OUT,
@Out_tag2 real OUT,
@Out_result real OUT)
AS
SELECT @Out_tag1 = Table_1.tag1,
@Out_tag2 = Table_1.tag2,
@Out_result = Table_1.result
FROM dbo.Table_1
P.S. А еще на экране "Data Object Definition" есть кнопочка "Wizard", которая позволяет организовать эту функцию и еще многие другие автоматически  |
|
| Вернуться к началу |
|
 |
|