ZWolol

Ответы в темах

Просмотр 10 сообщений - с 1 по 10 (из 10 всего)
  • Автор
    Записи
  • в ответ на: Работа с MS SQL для чайника #37481
    ZWolol
    Участник

    Создал процедуру:

    create procedure sp_tables_info_rowset_64
    @table_name sysname,
    @table_schema sysname = null,
    @table_type nvarchar(255) = null
    as
    declare @Result int
    set @Result = 0
    exec @Result = sp_tables_info_rowset @table_name, @table_schema, @table_type
    go

    Все заработало, только я не понял из-за этой процедуры или из-за того, что отключил в настройках линковки все лишнее… ну главное — результат. 🙂

    в ответ на: Работа с MS SQL для чайника #37476
    ZWolol
    Участник

    Я нашел на форуме сообщение 2012 года об исправлении ошибки линковки старых баз.
    Достаточно в старой системной базе создать процедуру sp_tables_rowset_64,
    чтоб она брала значения из аналогичной существующей (завтра проверю).

    P.S.
    На 3D я работал с ICP DAS i-7188xa по 512 kb RAM и ROM.
    А для 4D используется ПЛК210 256 mb RAM и 512 mb ROM.
    Размер памяти в 1000 раз, хотя цена только в 2 раза.

    в ответ на: Работа с MS SQL для чайника #37442
    ZWolol
    Участник

    Спасибо вам за драйвера.
    С их помощью я хотя бы разобрался с причинами проблем.

    Два SQL 2005 Profisional не поддерживают шифрования.
    К SQL 2008 Enterprise заблокировали доступ.
    С SQL 2012 не совместима линковка с 2008.
    В общем целый букет…

    Так что я подожду пока начальство решит эти проблемы.
    Иначе я же и окажусь крайним.

    P.S.
    Мне нравилась Master SCADA 3D.
    Я даже сделал для Master PLC универсальный драйвер COM-порта
    для опроса приборов:
    ВКТ-7.x (01,02,03,04,04P)
    СПТ-942.x (01,02,03,04,05,06)
    СПТ-943.x (01,02)
    СПТ-961.x (1,2)
    Меркурий 230 (ART,ART2P)
    Их можно было все подключить к одному COM порту и опросить.
    Но сейчас разработка 3D прекращена, а 4D это монстр какой-то.

    P.S.S.
    Коды качества взяты:
    0 — GOOD, иначе BAD.
    1 — канал еще не опрашивался (ноль)
    2 — канал отсутствует в конфигурации (ноль)

    64 — нет архивных данных (ноль)
    101 — данные устарели (остается старое значение)

    в ответ на: Работа с MS SQL для чайника #37405
    ZWolol
    Участник

    Я всегда работал с Master SCADA через сервер OPC DA.
    А у любого OPC есть качество.
    И этот параметр у нас задается в свойствах штриховки элементов.

    Например: будет уровень 2.6 м, но заштрихован.
    И не будет вопроса типа: почему он не меняется когда сливают или наливают.
    Я к этому привык, но возможно сейчас это и не нужно.

    Просто сервер OPC для Telemera написан 15 лет назад и на десятке не работает.
    Он читает таблицу Currents за раз и выдает значения с качеством.

    Я посмотрел настройки универсального OPC.
    Там для каждого параметра задается свой запрос:
    SELECT Value FROM Currents WHERE ID_Channel = 1,2,3…

    Я полагаю, что он по сети так и будет делать эти 100 селектов.
    Ну разве что только MS SQL прокэширует эту таблицу у себя в памяти.

    P.S.
    Плохое качество у нас норма. Станции в лесу на пересеченной местности.
    Опрос ведется по радиомодему и связь в грозу не очень.

    в ответ на: Работа с MS SQL для чайника #37398
    ZWolol
    Участник

    Для OPC переменных есть параметр QUALITY.
    Если уровень бака 0 с качеством BAD, то это не значит что бак пустой.
    А в таблице SQL нет понятия качества, потому оно заносится в поле Status.

    Когда в базу пишется значение параметра, то в MeasureDate заносится текущая дата.
    Это дата последней записи значения.
    Если по каким-то причинам данные не обновляются (потеря связи с прибором или отказ оборудования), то SQL агент через заданный интервал времени устарения данных проставляет параметрам Status = BAD.

    Если параметрам проставлять NULL, но тогда плохо читаемые параметры будут на графике периодически падать в ноль, а не чертить прямую линию.

    в ответ на: Работа с MS SQL для чайника #37365
    ZWolol
    Участник

    Работает. Я всегда поражался конструкциям с объединениями.
    Получается, что для получения 100 параметров с одного участка нужно 20 запросов для Value и еще 20 для их State (качества) вместо одного на симпле.
    А потом еще для двух участков…

    А просто получить указатель на полученный Dataset со своей обработкой ни как?

    в ответ на: Работа с MS SQL для чайника #37361
    ZWolol
    Участник

    В таблице Currents текущие (мгновенные) параметры.
    Параметров около 800, но нужны только 100.
    Названия переменных должны быть буквенно-смысловыми, а не tg003.
    У таблиц SQL нет тегов. Там все связки по ID.

    На трех службах есть SQL базы Telemera [192.168.0.4],[192.168.0.27],[192.168.5.40]

    SELECT [ID_Channel],[MeasureDate],[Value],[State]
    FROM [192.168.5.40].[Telemera].[dbo].[Currents]

    3; 2025-03-20 10:57:25.547; 3.0498; 0 \
    4; 2025-03-20 10:57:25.547; 3.2483; 0 — это уровни воды в баках
    5; 2025-03-20 10:57:25.547; 3.6876; 0 /

    На Simple SCADA я делаю селект этой таблицы.
    А полученные данные я присваиваю соответствующим переменным в зависимости от ID.
    vrSQL2Gdp1h, vrSQL2Gdp1h_Q — это уровень и качество бака 1
    vrSQL2Gdp2h, vrSQL2Gdp2h_Q — это уровень и качество бака 2
    (пример скриптов на паскале в первом сообщении)

    в ответ на: Работа с MS SQL для чайника #37358
    ZWolol
    Участник

    Спасибо, Доп. параметры помогли. Не обратил на них сразу внимание.
    А теперь чтение таблицы…

    ID_Channel Value State
    678 20.1 0
    783 1207.0 0
    801 123.4 101

    По описанию DB Import — это второй тип.
    Первый тег будет для значений ID_Channel, а второй для Value.
    Идешки числовые, значит в запросе нужно ставить преобразование их в стринг и добавлять в начале префикс типа ‘tg’?
    А статус нужно считывать другим запросом и с префиксом ‘st’?

    Для DB Import Plus — запрос будет из сотни CASE?
    Хотя там в запросе можно сразу заменить числовые ID на текстовые теги.

    что-то опять грустно стало…

    в ответ на: Работа с MS SQL для чайника #37337
    ZWolol
    Участник

    Спасибо за помощь, но не помогло…

    Сначала я делал по описанию DB Import.
    Все заносится, но в конце:
    >> Если настройка выполнена корректно,
    >> то на странице данных устройства можно будет увидеть полученные значения.
    Я вижу:
    [1] Simulator
    Драйвер :DrvSimulator 6.0.0.0

    Потому и попросил пример.

    Попробовал DB ImportPlus, результат тот же.
    Но у него есть Проверка соединения, которая пишет следующее:

    Ошибка при соединении с БД; Подключение к серверу успешно установлено, но затем произошла ошибка при входе. (provider: Поставщик SSL, error: 0 — Цепочка сертификатов выпущена центром сертификации, не имеющим доверия.)

    SQL 2008 Enterprise R2 (10.50.1600) может в этом проблема?

    в ответ на: Работа с MS SQL для чайника #37313
    ZWolol
    Участник

    Спасибо, посмотрю…

    С SQL у меня похоже проблема с нашими безопасниками.
    Сейчас идет разделение сетей, и перенос системы в отдельный изолированный домен.
    И черт их разберет с их тунелями доступа и переадресацией.
    Уже год как переносят и когда закончат неизвестно.

    Я менеджером подключаюсь к базам по имени или IP и нет проблем.
    Но когда я подключаюсь к локальной базе у которой указан Linked Servers,
    то менеджер видит базу и таблицы в ней, но запрос:
    SELECT [ID_Channel]
    ,[MeasureDate]
    ,[Value]
    ,[State]
    FROM [192.168.5.40].[Telemera].[dbo].[Currents]
    GO
    Выдает ошибку:
    Msg 7399, Level 16, State 1, Line 1
    The OLE DB provider «SQLNCLI10» for linked server «192.168.5.40» reported an error. The provider did not give any information about the error.
    Msg 7312, Level 16, State 1, Line 1
    Invalid use of schema or catalog for OLE DB provider «SQLNCLI10» for linked server «192.168.5.40». A four-part name was supplied, but the provider does not expose the necessary interfaces to use a catalog or schema.

    Решил попробовать сделать на рапиде.
    Ей не нужна линковка баз.

Просмотр 10 сообщений - с 1 по 10 (из 10 всего)