Simple-Scada forum
Simple-Scada 2 => Ошибки => Тема начата: deldemo от 29 Октября 2019, 08:05:18
-
Здравствуйте. Не могу разобраться в чем причина.
У меня не отображается часть сообщений. Хотя сами переменные к которым привязаны сообщения работают нормально, это хорошо видно, так как они еще привязаны к другим объектам в проекте. Сообщения были созданы по аналогии с другими, но какие-то работают, а какие-то нет.
Переменные привязанные к сообщениям имеют тип word, хотя есть не отображаемые сообщения и с другим типом данных.
Еще меня настораживает привязка ID в БД сообщений(Скриншот ниже).
-
Здравствуйте.
Пришлите проект для проверки на support@simple-scada.com с указанием сообщений которые не выдаются.
Еще меня настораживает привязка ID в БД сообщений(Скриншот ниже).
Такие ID получают сообщения добавленные через скрипты через AddMessage / AddMessageToGroup (https://simple-scada.com/help/script/addmessage.html).
-
Сейчас проверяем проект. В первых тестах всё работает, сообщения выводятся в свои группы. Обратите внимание, у сообщений отключены опции отображения в списках "Активные" и "Неподтверждённые" (см. вложение), поэтому данные сообщение не будут выводиться в эти списки, а также на панель сообщений и увидеть их можно будет только в списке "Все сообщения" или в их группах (см. вложение). Вы уверены, что в списке "Все сообщения" и в их группах эти сообщения отсутствуют?
-
Да, я уверен что они отсутствуют, также они отсутствуют в БД. Это может быть связано с MSSQL? Версия MSSQL 2005
Я планировал сделать некий исторический сервер с помощью сообщений. И по этой причине отключил показ этих сообщений в группах "Активные" и "Непдтвержденные".
-
Это может быть связано с MSSQL? Версия MSSQL 2005
Маловероятно, тогда и другие сообщения не попадали бы в БД.
Просьба проделать следующие тесты:
1. Вывести переменную, например "OP01_asperation_on" на мнемосхему в Поле и менять её вручную, то сообщения также не выдаются?
2. Если первый вариант не работает, или нет возможности его проверить, то попробуйте создать отдельную внутреннюю переменную типа Boolean, вывести её в Поле и привязать проблемные сообщения к ней. Выдаются ли сообщения при смене значений внутренней переменной?
-
Я пробовал привязывать к внутренней переменной, с ней все работало. К сожалению у меня сейчас нет доступа к ПК. Я завтра утром все сделаю.
-
Я пробовал привязывать к внутренней переменной, с ней все работало.
Очень странно, Вы абсолютно уверены, что внешняя переменная успешно считывается с OPC-сервера и принимает именно значения равные 0 или 1? Если вывести такую переменную в Поле, то в Поле отображается значение 0 / 1 или какое-то другое? Если у Вас в утилите Настроек на сервере выключена опция "Показывать сообщения по первому изменению" (https://simple-scada.com/help/manual/index.html?settings-simple-scada-server.html#other), то первое изменение переменной (обычно 0) проигнорируется для сообщений. И нужно обязательно попробовать после запуска изменить переменную на 1, и убедиться что изменение произошло успешно, но сообщение не выдалось.
-
"Вы абсолютно уверены, что внешняя переменная успешно считывается с OPC-сервера" - Да, я уверен, так как к этой переменной привязан скрипт на изменение цвета изображения и он работает.
-
Если речь идёт о скрипте "OP01_run", то он не подходит для чистого теста по переменной OP01_asperation_on, т.к. берёт её значение как ".Value" (тип Variant). Правильный тест был бы, если бы значение бралось как ".AsInt = 1". Но лучше всего вывести отдельно переменную в отдельное поле и убедиться что значение меняется в поле на 0 / 1.
-
Я попробовал на EL02(Нория не очень громко шумит, думаю охрана не испугается ;D), переменная приходит корректно.
https://fomin.space/d/f/517969473139904607 (https://fomin.space/d/f/517969473139904607)
-
Если есть возможность, то просьба проделать ещё один тест: включить у сообщения вывод в неподтверждённые и проверить выводится ли сообщение в список неподтверждённых. Неподтверждённые сообщения никак не связаны с БД и это позволит понять есть проблема с записью в БД или нет.
-
Возможно это важно. Cам сервер S-S работает через DCOM, OPC сервера находятся на другой машине. Все машины виртуальные, крутятся на VMware 6.7.
"Если есть возможность, то просьба"- Сейчас попробую.
-
Если есть возможность, то просьба проделать ещё один тест: включить у сообщения вывод в неподтверждённые и проверить выводится ли сообщение в список неподтверждённых. Неподтверждённые сообщения никак не связаны с БД и это позволит понять есть проблема с записью в БД или нет.
Да сообщения выводятся в список неподтвержденных.
https://fomin.space/d/f/517973856193876065 (https://fomin.space/d/f/517973856193876065)
-
Доброе утро. Сегодня проделал несколько тестов и выделил некую закономерность.
При групповом запросе к БД типа:
INSERT INTO
[dbo].[messages_data] ([Timestamp], [GroupID], [MessageID], [Kind], [Text])
VALUES
('2019-10-30T08:11:56.501', 20, 21, 2, N'LN01 | Маршрут остановлен.'),
('2019-10-30T08:11:56.501', 15, 146, 2, N'SC11 | Двигатель остановлен'),
('2019-10-30T08:11:56.501', 16, 148, 2, N'EL02 | Двигатель остановлен'),
('2019-10-30T08:11:56.501', 17, 150, 2, N'EL03 | Двигатель остановлен'),
('2019-10-30T08:11:56.501', 18, 152, 2, N'VS02 | Двигатель остановлен');
Данные в БД не записываются
Попытался сделать запрос самостоятельно, через HeidiSQL, выдает ошибку - SQL (102): Incorrect syntax near ','
А при одиночном запросе - все норм:
INSERT INTO
[dbo].[messages_data] ([Timestamp], [GroupID], [MessageID], [Kind], [Text])
VALUES
('2019-10-30T08:12:00.548', 13, 142, 2, N'SC10 | Двигатель остановлен');
Как оказалось у меня и с записью трендов в БД тоже проблемы, они тоже группой записываются.
Как говорят на ниже приведенном ресурсе, в MSSQL 2005 нельзя вставлять несколько строк одним запросом(
https://stackoverflow.com/questions/2462517/insert-multiple-values-using-insert-into-sql-server-2005
-
Здравствуйте.
Да, всё верно. Полноценно конструкция "INSERT INTO VALUES" стала поддерживаться начиная с версии SQL Server 2008 и выше. Соответственно версии ниже 2008 не подойдут для архивации через Simple-Scada.
-
Жизнь - боль :(
-
Обновил MSSQL до 2008R2, все заработало.
Спасибо!