Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - Серега

Страницы: 1 ... 3 4 [5] 6 7 ... 10
61
Добрый день!
В ходе эксплуатации связки ПЛК - OPC UA сервер - сервер SS натыкались на разные грабли и Вы довольно оперативно решали наши проблемы и выпускали обновления. Думаем заменить OPC UA сервер. И при выборе есть вопросы.
Вопросы такие.
Есть ли у Вас какой-нибудь список какие OPC UA сервера используют Ваши клиенты?
Какие OPC UA сервера используете Вы при тестировании или анализе проблем пользователей?
Может у Вас есть какой-то список рекомендуемых OPC UA серверов, которые вызывают меньше всего проблем?
Жду вопросов и предложений.

62
Ваши вопросы / Про глобальный модуль
« : 23 Ноября 2021, 14:54:21 »
Добрый день!
Вопрос на уточнение.
Сколько в проекте может быть глобальных модулей?
По сути он глобальный и должен быть как бы один.
Жду вопросов и предложений.

63
Ваши вопросы / Опять массивы
« : 18 Ноября 2021, 17:21:41 »
Добрый день!
Задача. Есть набор статических данных(меток). Фиксированное положение и не меняется. Объект выдает свое положение. Если находиться рядом с одной из меток зафиксировать сей факт(например увеличить значение переменной на 1).
Идея. Привязать координаты примитива (квадрат) на мнемосхеме к положению объекта (в масштабе) и возле каждой метки отображать сколько раз объект проехал через нее.
Теперь решение. Согласно этой теме https://simple-scada.com/forum/index.php?topic=818.0 можно сделать массив с положением меток.
Так же есть глобальный модуль и в принципе объектов не много, метки одни и те же и можно написать одну глобальную процедуру и использовать ее для всех объектов и будущих.
Проблемы. Создаем массив в глобальном модуле:
Код
interface
var
  array_test: Array[1..3] of Single = (0, 6.8, 10.3)
Пишем процедуру в implementation. Добавляем ее в interface.
Тут вопрос. В interface блок var как то надо заканчивать? Или после переменных можно сразу добавлять определения процедур и функций?
Итак:
Код
procedure proverka(f_array:Array of Single; f_positionTC:TM_Variable; f_dlina_XXX:Single; f_speedTCms:TM_Variable);
Отличие: определяем массив как Array[1..3] of Single, а в процедуре Array of Single. Компиляция проходит.
Вызываем скрипт и ... получаем ошибку о не совпадении типов
'Incompatible types DYNARRAY_Single and ArrayType_1000179'. Понимаю что есть динамический в процедуре и статический в определении массива.
Эксперименты описывать не буду. В глобальном модуле не получилось.
Второй вариант определить локально в скрипте массив.
Определяем массив:
Код
var
  array_test_v1: Array of Single;
Инициализируем:
Код
  array_test_v1[1] := 0.0;
  array_test_v1[2] := 6.8;
  array_test_v1[3] := 10.3;
Вызываем глобальную процедуру:
Код
  proverka(array_test_v1,
            positionTC,
            dlina_430,
            speedTCms);
Компиляция проходит. Но в журнале сервера видим ошибку:
Ошибка в скрипте ... Access violation at address ... Write of address ...
Результат. Пока нету.
Можете проверить у себя. Возможно более подробно осветить тему использования массивов в процедурах и функциях глобального модуля  (но вроде в руководстве не нашел)?
Возможно у Вас есть более простой вариант решения.
Жду вопросов и предложений


64
Добрый день!
Был создан отчет. Основная его функция сбор данных, обработка и отображение результата.
Так как некоторые объекты могут изыматься из системы было принято решение сделать типа динамического отчета.
Кодом ниже мы из источника типа MySQL выбираем нужные данные, фильтруем и получаем определенный результат:
Код
SELECT ID, MIN(Value) AS min_v, MAX(Value) AS max_v FROM database.trends_data
WHERE ID IN (3621, 3622)
AND (timestamp >= @PeriodStart)
AND (timestamp <= @PeriodFinish)
AND Value <> 0
        AND Quality = 1
GROUP BY ID;
Далее для отображения полученного результата (в ячейке источника данных) вставляем такой код:
Код
{Switch(database_trends_data.ID == 3621,"210_001.Пробег(км)",
database_trends_data.ID == 3622,"210_001.Время движения(ч)")}
Добавляем туда все, что хотим, помня о том, что команда switch может принять 21 параметр(могу ошибаться). При этом мы можем вставить несколько таких команд, соблюдая синтаксис.
В свойствах ячейки выставляем выравнивания по центру, формат стандарт - текст.
И на выходе получаем изображение из рисунка №1.
Видно, что все что входит во второй switch в колонке 'ID' смещено вниз на одну строку как бы.
Вопрос №1. Почему?
Допускаю, что использовать двух switch  не правильно.
Вопрос №2. Можете указать как правильно?
Потребовалось изменить отчет добавлением по каждому объекту третьего параметра.
Находим в редакторе ID новых переменных. Проверяем в БД, что есть архивные значения.
Вставляем соответствующие ID в запрос к бд из репорта. Вставляем и группируем в оформлении, типа так:
Код
{Switch(database_trends_data.ID == 3621,"210_001.Пробег(км)",
database_trends_data.ID == 3622,"210_001.Время движения(ч)",
        database_trends_data.ID == 6991,"210_001.Время работы(ч)")}
И ожидаем увидеть по порядку 3 параметра к каждому объекту, но все в разнобой. Новые переменные вообще в самом конце.
Вопрос №3. Как можно навести порядок?
Возможно есть более простой и адекватный способ получения отчета. Тогда отсылка к вопросу 2.
Жду вопросов и предложений!






65
Добрый день!
После последнего обновления 2.5.10.0 и пилотного запуска решили перейти на службу.
Переустановили. Работает ОРС_UA от Инсат.
Вот arOPC не совсем. На отдельной вместе с Инсат ОРС виртуалке сам arOPC работает.
В редакторе через DA виден и могу делать импорт переменных.
Но сам сервер-служба SimpleScada пишет:
… пытаемся запустить OPC-сервер;
переподключение через: 8 сек.; …
и опять по циклу.
Так при стандартной установке все работало. Вчера правда обновление Windows установили.
OPC компоненты установлены х86, От имени администратора arOPC был один раз запущен.
Можете подсказать куда копать?
Жду вопросов и предложений.

66
Ваши вопросы / Обновление ПО scada
« : 09 Сентября 2021, 13:18:23 »
Добрый день!
Столкнулись со следующей ситуацией.
У нас на отдельных виртуальных машинах стоят:
1. Инсат  ОРС Modbus сервер (v5.0.3) (UA) + демо arOPC (для тестирования фишек)(v1.84.182.1835)
2. Сервер Simple-scada (v2.5.8.1)
И клиенты.
На версии SS (v2.5.8.1) в связке с ОРС Инсат все работает.
Ставим версию v2.5.9.0 или v2.5.10.0 правильность  работы вызывает сомнения. В чем заключается:
1. В ОРС UA качество переменных good. На клиенте !. При этом в ходе тестирования знаки появляются рандомно. И не на всех переменных
2. При нажатии на кнопку и видя, что команда отправлена через ОРС большая часть ! знаков уходит. Но часть остаётся.
3. При нажатии на кнопку с командой довольно часто кнопка зависает. Через какое то время при повторном нажатии может отвиснуть и принять первоначальное положение.
4. Есть два хардбита. Один ПЛК->СКАДА второй СКАДА -> ПЛК. До и включая v2.5.8.1 графики ровные без рывков. После "корявые", как бы с задержкой что-ли.
Что делали:
1. Отключали полностью брандмаузер на обоих и по отдельности.
2. Запускали и то и то под админом
3. Меняли настройки шифрования в редакторе
4. Меняли доступ и на ОРС и на скаде по паролю
Допускаю, что после телефонных консультаций с техподдержкой версия ОРС компонентов для OPC UA не влияет и не нужна.
Допускаю, что согласно руководству на появление ! влияет качество переменных и брандмаузер. Но качество хорошее, брандмаузер отключили.
Допускаю, что возможно у меня не последняя версия update. Но пришло письмо со ссылкой и телефонный разговор с суппортом потвердил, что по ссылке последняя версия ПО СКАДЫ (На всякий случай если есть возможность письмом перешлите ссылку)
В общем пока мне не понятно в чем проблема. Возможно Вы прольете свет на тьму не понимания!
Жду вопросов и ответов!


67
Добрый день!
Ситуация следующая.
По приблизительным расчетам раз в месяц происходит внезапная потеря связи с орс сервером.
На экране оператора возникают восклицательные знаки. При этом на сервере в журнале никаких сообщений.
В логах ни каких сообщений.
Простая перегрузка сервера скады избавляет от данной проблемы.
У меня есть вопросы и возможные ответы на них. Хотелось бы получить подтверждение правильности своих ответов.
Вопрос. Если орс выдал плохое качество сигналам, через какое время это отобразиться на клиенте? Зависит только от настроек скады?
Вопрос. Если качество восстановилось в хорошее, то автоматом восстанавливается все в скаде через дельту времени, указанную в настройках?
Вопрос. Если орс не выдавал плохое качество, то согласно руководству в цепочке между компом с орс и компом с сервером скады надо искать блокировку "... фаерволом или антивирусным ПО ...". Для этого надо прописать правила? и внести в белый список сервер скады? А если сеть домен, то "пытать" админов домена?

68
Ваши вопросы / Отчеты. Создание
« : 27 Мая 2021, 15:02:18 »
Добрый день!
Так. Ситуация следующая.
Есть проект, на сервере (виртуалка) крутиться и сервер скады и бд.
Так как лазить на виртуалку не желательно от слова совсем сделали следующее.
Создали у себя виртуалку и скопировали проект. Настроили репликацию бд сюда же.
Проект настроили на репликацию бд. все работает.
Отключили ОРС сервера, дабы не нарушить работу боевых серверов.
Но...
В руководстве по отчетам написано, что надо работать только с архивными данными.
Возникает вопрос. Что будет писаться в репликацию? И данные с боевого сервера скады (через механизм репликации) и постоянное значение с локальной копии?
Просто при подключении в параллель с боевым сервером второго сервера-теста происходит определенная задержка как в передаче, так и в обработке, отображении данных. Что в свою очередь пугает операторов и вносит некоторую сумятицу при анализе возникающих ситуаций.
Возможно можете предложить еще какой нибудь вариант?
Жду ответов и вопросов!

69
Добрый день!
При решении определенной задачи возникли вопросы.
Например у нас есть 3 насоса как в Вашем примере. Все одинаково.
Кроме того, что например у 3 насоса нет переменной отвечающей за частоту.
Создав шаблон и шаблонное окно мы можем наблюдать, что если в проекте нет нужной переменной, то она не отображается в окне по правой кнопке. Внешний вид шаблонного окна и шаблона ни чем не отличаются.
Вопрос №1. Как предупредить оператора об отсутствии данной переменной (то есть оператор должен понимать что у 3 насоса в привычном месте данных о частоте не будет)?
Вопрос №2. Следствие наверное первого вопроса. Можно ли как то скрыть элементы у которых нет переменных?
Жду вопросов и ответов!

70
Добрый день!
Ситуация следующая.
При установке программного обеспечения Simple-Scada выбираем язык установки английский.
Далее согласно указаниям установщика просто и легко все устанавливаем.
Затем в настройках выбираем язык интерфейса - английский. Сохраняем. Вроде все поменялось. Но...
1. Если интерфейс сервера на английском, то при вызове сервера из трея русский (на рис. eng1.png)
2. Редактор отчетов на русском и вроде есть кнопка "Настройки", но она не "enable".
3. При открытии отчета из клиента, интерфейс оболочки ПО отчета то же все на русском, хотя указан английский.
Теперь вопросы.
1. Может ли это быть связанно с тем, что с начала поставили русскую версию, а потом переустановили английскую?
1.1 После деинсталляции в ручную дополнительно нужно еще что-то удалять(например в AppData или например в реестре)?
2. Можно ли где-то оперативно изменить язык для системы отчетов (например какой-нибудь cfg или xml файл) до момента выяснения?
3. Если это подтвердите своими тестами это будет в следующем релизе исправлено?
Жду вопросов и предложений.

71
Добрый день!
Столкнулись с непонятой ситуацией.
В руководстве написано и наше понимание процесса для автозапуска клиента надо сделать следующее:
1. На сервере автозапуск проекта (работает)
2. На клиенте галочка на запуск вместе со стартом винды (стоит)
3. Галочка на бесконечное подключение (стоит)
4. Автоматический запуск проекта ...
Согласно руководству тут несколько вариантов либо запуск проекта если он один или выбрать проект.
Вопрос. Формирование списка проектов как происходит?
На локальной демо-версии в списке видны все проекты.
Если клиент удаленный как происходит формирование?
И еще один вопрос. При указании IP адреса сервера играет роль как указывается (или 10.10.10.10 или server.my-net.com)?
Жду вопросов и предложений.

72
Добрый день!
При создании отчета в версии скады 5.3.1.0 выскочило окно (во вложении)
Можете объяснить куда "копать".
Жду ответов и вопросов

73
Добрый день!
Делаем экспорт переменных в файл csv.
Меняем названия переменных, не трогая остальные параметры, включая ID.
Сохраняем...

Зачем это надо. Создали группу переменных. И в ходе работ решили для унификации добавить индекс например zoneN1.
На сколько я понимаю ID переменной задействован в архивации переменной. Так же на ID опираются, наверное, при визуализации.
И логично предположить, что все основано на ID. Даже имя переменной.

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

Вопрос. В механизме экспорта/импорта все основывается на имени переменной?
И как бы менять название 10 переменных это легко и быстро. Но например 300..400 уже не так быстро и не так легко.
Можете подробнее осветить данный вопрос.
Или предложить какой-то вариант. А то мои коллеги волнуются.
Жду ответов и вопросов.

74
Добрый день!
Попросили сохранять текущее состояние процесса. Процессов может быть много. Изменение состояния процесса фиксируется флагами (через биты переменной).
Решил сделать это все через файл.
Запись при остановке проекта:
Код
if FileOpen('FileValue.dsl', '' ) then
  begin
    FileWriteInteger(sp.AsInt);
    FileWriteInteger(state1.AsInt);
    FileWriteInteger(state2.AsInt);
    FileWriteInteger(state3.AsInt);
    FileWriteInteger(stateX.AsInt);
    FileClose;
  end;
Чтение при полном запуске:
Код
var
  skip:boolean;
begin
if skip then
begin
  if FileOpen('FileValue.dsl', '') then
  begin
    sp.Value  := FileReadInteger;
    state1.Value := FileReadInteger;
    state2.Value := FileReadInteger;
    state3.Value := FileReadInteger;
    stateX.Value := FileReadInteger;
    FileClose;
  end;
end
else
  skip := True;
end.
Выбор конкретного процесса сделан через ComboBox (изменением значения привязанной переменной stateX, тип скрипта DataChange):
Код
begin
case sp.value of
  1 : stateX.Value := state1.Value;
  2 : stateX.Value := state2.Value;
  3 : stateX.Value := state3.Value;
end;
end.
Изменение конкретного флага сделано через  CheckBox`ы (тип скрипта DataChange, привязка к битам переменной stateX) + запись в соответствующую переменную соответствующего процесса
Код
begin
  case sp.value of
    1 : state1.Value := stateX.Value;
    2 : state2.Value := stateX.Value;
    3 : state3.Value := stateX.Value;
  end;
Это сделан скрипт (тип изменились переменные) для записи в файл введенных изменений в течении работы проекта (текстовый файл создан что бы видеть изменения)
Код
var
skip:Boolean;
begin
if skip then
begin
  TextFileOpen('FileValue.txt', '', fomRewrite, fcpUTF8);
  TextFileWriteLn(IntToStr(sp.OriginalAsInt));
  TextFileWriteLn(IntToStr(state1.OriginalAsInt));
  TextFileWriteLn(IntToStr(state2.OriginalAsInt));
  TextFileWriteLn(IntToStr(state3.OriginalAsInt));
  TextFileWriteLn(IntToStr(stateX.OriginalAsInt));
  TextFileClose;
  if FileOpen('FileValue.dsl', '' ) then
  begin
    FileWriteInteger(sp.AsInt);
    FileWriteInteger(state1.AsInt);
    FileWriteInteger(state2.AsInt);
    FileWriteInteger(state3.AsInt);
    FileWriteInteger(stateX.AsInt);
    FileClose;
  end;
end
else
  skip := True;
end.
На форуме есть темы в которых указано как не учитывать первый скан и инициализацию переменных в ноль.
Так же есть свойство переменной "Автоматическое восстановление".
В зависимости от включена этот флаг или нет  значения либо восстанавливаются как надо, либо нет.
При тестировании видно что в текстовый файл просто при включении\выключении проекта (сервер - служба Windows, версия 2.5.0.0) пишутся нули. Но если стоит авто восстановление то работает все как надо.
Можете объяснить что делаю не так или опять есть нюансы работы со скриптами?
Жду вопросов и предложений.

75
Ваши вопросы / Ключи лицензии и сервер
« : 18 Января 2021, 09:22:17 »
Добрый день!
На данный момент ключи лицензий подключены к серверу SCADA через USB Anywhere.
При кратковременной потере связи по сети – сервер скада сообщает что ключ не обнаружен и виснет.
Теперь вопросы:
1.   С какой периодичностью SimpleScada проверяет ключ лицензирования.
2.   Можно ли увеличить этот интервал проверки.
И предложения:
1. Сервер потерял ключ – останавливает операции и продолжает проверять наличие ключа.
2. Когда ключ обнаруживается – возобновляет выполнение операций.
Жду вопросов и предложений.

Страницы: 1 ... 3 4 [5] 6 7 ... 10