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

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

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

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


Сообщения - Simple-Scada

Страницы: [1] 2 3 ... 214
1
Ваши вопросы / Re: Integer overflow
« : 11 Марта 2026, 19:10:28 »
Здравствуйте.

Какая версия скады используется? Начиная с версии 2.7.4.0 в SecondsToStr можно использовать как минимум весь диапазон Integer.

2
Здравствуйте.

В старых версиях объект не обрабатывал клики когда свойство "Доступен" выключено. Т.е. можно было кликнуть сквозь объект. Это ошибка. В новых версиях она исправлена, кликать сквозь видимые объекты нельзя, как и должно быть. Если Вы поместили поверх объекта другой объект, то обрабатывайте клик у него, а не у объекта под ним.

3
Здравствуйте.

Вопрос №1. Если галочка не стоит в настройках, то эта информация не пишется в БД?
Настройки колонок влияют только на отображение. Вся информация всегда пишется в БД.

Предложение №1. Может быть разделить настройки для глобальной системы отображения сообщений и элемента "Список сообщений".
Возможно добавим отдельные настройки в будущем.

предложение/пожелание к функционалу: при выделении нескольких объектов в контекстном меню добавить Кнопку формирования перечня всех тегов в выделенных объектах и возможностью замены тега
Планируем добавить подобное в будущих обновлениях.

4
Новости / Обновление до версии 2.7.5.0
« : 02 Марта 2026, 09:45:34 »
Добавлена возможность отправки сообщений, вложений и отчетов в мессенджер MAX. Для обеспечения бесперебойной отправки в Telegram по-прежнему доступна настройка прокси-сервера. Добавлена автоматическая выдача сообщений о выходе за пределы шкалы, улучшено взаимодействие сервера с десктоп-клиентами, в списках сообщений можно отобразить только активные сообщения и др.

Изменения:
  • в настройки переменных добавлена опция "Сообщения о выходе за пределы";
  • в настройки сообщений добавлены опции "Сообщения о выходе за пределы по-умолчанию", "Текст для значения выше максимума шкалы", "Текст для значения ниже минимума шкалы";
  • новое свойство "Только активные" у списков сообщений. Позволяет отобразить только активные сообщения из указанной группы;
  • добавлена поддержка мессенджера MAX. Можно отправлять сообщения, вложения и отчеты;
  • сервер быстрее отвечает десктоп клиентам и расходует меньше оперативной памяти при формировании ответов;
  • для клиентов теперь можно задать сетевой таймаут от 5 до 20 секунд. Если в течение заданного периода от клиента нет отклика, сервер инициирует принудительное отключение;
  • новая функция Emoji для удобного добавления смайлов в сообщения Telegram / MAX;
  • добавлены системные события: secDBСonnected, secDBDisconnected, secDBConnectionLost, secTelegramSendError, secMaxSendError;
  • добавлены системные переменные уровня потребления оперативной памяти "SysRamCurrentUsage" и "SysRamMaxUsage";
  • в скрипты добавлена процедура SendMax для отправки сообщения в мессенджер MAX;
  • добавлена возможность отправки сообщений в мессенджер MAX группам пользователей и отдельным пользователям;
  • классу TM_User добавлен метод MemberOf. Позволяет проверить, состоит ли пользователь в указанной группе;
  • добавлен настраиваемый комментарий для экрана блокировки при исчерпании лимита попыток входа;
  • при управлении пользователями через клиент поля Telegram и MAX скрыты, если данные мессенджеры отключены в настройках;
  • минимально допустимый размер окон/шаблонов (при растягивании указателем мыши) теперь 42 на 42 пикселя. Исправлено отображение тени у окон/шаблонов малого размера;
  • инспектор объектов: если переменная не назначена, то клик ПКМ вызывает переход в меню редактирования переменных;
  • инспектор объектов: если кликнуть ПКМ по свойству с переменной удерживая CTRL, то будет выполнен переход в меню редактирования переменной и открыто окно редактирования переменной;
  • оптимизирован сброс значения переменной при подтверждении всех сообщений;
  • кнопка перехода в тренды не отображается когда от пользователя скрыты все тренды;
  • если в проекте нет пользователей, то переход в меню авторизации не выполняется при нажатии на кнопку авторизации;
  • обновлены библиотеки системы отчетов для взаимодействия с MySQL и PostgreSQL;
  • по-умолчанию теперь выбрана опция автоматического масштаба интерфейса для клиентов и редактора;
  • web клиенты: улучшено обнаружение разрывов связи с сервером;
  • редактор и десктоп клиенты теперь записывают в лог изменения связанные с DirectX рендером;
  • некоторые ошибки при отправке Telegram/MAX теперь лучше описаны в журнале и логах;
  • в вызовах TM_Report.Save в пути не обязательно добавлять закрывающий слэш, он теперь добавляется автоматически;
  • функции GetUserName, GetUserID заменены на GetCurrentUser;
  • исправлена работа методов ToDate, ToTime, ToCurrency, ToExtended, ToDouble, ToSingle у StringHelper компилятора;
  • исправлен сброс значений при подтверждении всех сообщений, если сообщения работают с битами;
  • исправление: координаты объектов на основе шаблона могли смещаться на величину меньше 1px и искажать отображение;
Резервная копия:
Мы всегда тестируем новые версии ПО на совместимость, но, несмотря на это, рекомендуем сделать резервную копию проекта перед обновлением.

Процесс обновления:
Для обновления достаточно установить новую версию поверх старой, оставив те же пути установки. Установщик заменит только системные файлы скады, не затронув папку с пользовательскими данными. После обновления откройте свой проект в редакторе и пересохраните его.

5
Здравствуйте.

Скада выполняет первую попытку создать новый раздел в 2 часа ночи. Если она будет неудачной (например, СУБД занята созданием резервной копии и т.п.), то новые попытки будут в 3, 4 и 5 часов.

6
для получения сатисфакции после окунания меня вами в это самое говно
Непонятно, что в нашем ответе Вас оскорбило? Вы задали вопрос: "почему проект сохраняется 5-7 минут". Мы ответили "время уходит на компиляцию жутких скриптов проекта и огромного количество бесполезного дублирующегося кода". Это главная причина долгого сохранения проекта и просто легко доказуемый факт. Как ещё объяснить причину, не называя её? Нет необходимости писать идеальный код, достаточно просто не дублировать один и тот же код более 60 раз. Это не только ускорит компиляцию и производительность, но и упростит добавление нового однотипного кода.

Цитировать
3. Выполнение расчётов в ПЛК, безусловно, правильное решение. Когда у вас есть исходный код для ПЛК, а сами проекты не запаролены
Если Вы планируете переносить функции ПЛК на скаду, то нужно ещё внимательнее отнестись к написанию скриптов и заранее попытаться максимально их оптимизировать, т.к. скада не предназначена для решения задач ПЛК. Иначе в какой-то момент проект перестанет не только компилироваться, но и запускаться.

Цитировать
1. При компиляции ошибок не было, скрипты выполняются так, как задумано.
Об ошибках не было и речи. Мы говорим только о дублирующемся коде.

Цитировать
2. Присвоение значений переменным в цикле - дельный совет, а как насчёт реализации массивов?
Можете объявить массивы, если нужно. Только непонятно зачем? Лучше сразу использовать наиболее простой и производительнный вариант: пройти в цикле напрямую и выполнить нужные действия с элементом.

7
Включили исправление в обновление 2.7.4.0. Скачать можно по прежним ссылкам.

Цитировать
Надо решить как проект делать.
Рекомендуем работать с битами внешних переменных (получаемых с OPC-сервера) только на чтение (если ваш OPC-сервер и ПЛК не поддерживает прямую адресацию на уровне битов).

Для записи значений в биты переменной лучше всегда использовать отдельные Boolean переменные, вместо работы с битами. Это касается не только скады, но и любого другого ПО, которое может менять биты во внешней (опрашиваемой) переменной. Причина в следующем:
  • Скада и ПЛК всегда работают с разной частотой и не синхронизированы;
  • При изменении любого бита, скада передаст в ПЛК не сам бит, а целиком число, которому принадлежит этот бит (затирая остальные биты). То же самое с чтением;
В результате всегда возможны конфликты:
  • Скада читает значение 0001 и пытается сбросить бит, т.е. записать 0000;
  • В этот момент на ПЛК значение меняется на 1111;
  • Скада отправляет свою версию 0000;
  • В результате на ПЛК затираются четыре бита, а планировалось сбросить только один.
Поэтому, менять биты должен только источник данных, все остальные должны только читать биты.

8
Здравствуйте.

Спасибо за информацию, причину выявили, добавим исправление в ближайшее обновление.

9
Проверили. Этот проект долго сохраняется в любых версиях скады. Например, в версии 2.7.2.0 от 05 Августа 2025 он сохраняется в точности за то же время, что и в версии 2.7.4.0. Видимо после обновления Вы добавили в проект новые скрипты.

Сам проект сохраняется за ~0.05 секунды, остальное время уходит на компиляцию жутких скриптов проекта и огромного количество бесполезного дублирующегося кода. Неудивительно, что добавление новых скриптов к уже имеющимся будет геометрически увеличивать время компиляции. Пример: скрипты в группе "Ошибки 10-45" с именами "Block_X_X" в сумме на 18270 строк кода, можно заменить одним скриптом не более чем на 500 строк и сократить время компиляции более чем в 20 раз. Это касается и другого кода который делает одно и то же для разных данных, в группам "LG", "PMM", "PT" и т.п. Вместо копирования кода напишите одну процедуру/функцию с нужными параметрами и вызывайте её одной строчкой кода с разными параметрами. Используйте циклы там, где нужно выполнить действия с итерацией, например, вместо 64 строк извлечения бита напишите 2 строки с циклом от 0 до 63 и т.д. Вместо переноса задач ПЛК на скаду, обработайте множество данных в ПЛК и передавайте в скаду только результат обработки (готовое значение, аварию, сообщение).


10
Ваши вопросы / Re: Проблема с данными.
« : 27 Января 2026, 09:28:03 »
Здравствуйте.

По описанию похоже на неправильную адресацию/типы данных. Убедитесь, что в конфигурации OPC-сервера и ПЛК заданы корректные адреса и типы данных. Какое значение у переменной отображает сам OPC-сервер?

Цитировать
через орс ua, статусы int целочисленные, в скаде определяется smallint
Скада получает значение / тип данных от OPC-сервера и никак не влияет на значение, если не включено преобразование значения.

Цитировать
Из вариантов пока кривая ОС.
ОС не влияет на формат передачи данных.

11
Здравствуйте.

Долго сохраняется какой-то конкретный проект, или все проекты? Если это касается только одного проекта, то вышлите проект на для проверки на support@simple-scada.com.

12
Здравствуйте.

Можно сделать так:
1. Для каждой камеры создать отдельную внутреннюю переменную типа Boolean, например: vrRoom1, vrRoom2, vrRoom3 и т.д.. Включить у них архивацию по изменению;
2. Когда партия находится в камере 1, в переменную vrRoom1 записывать 1, в остальные 0. Когда партия в камере 2, в переменную vrRoom2 записывать 1, в остальные 0 и т.п.;
В отчете создать источник типа "Периодический", добавить в него переменные vrRoomXX с типом обработки "время вкл." и в источнике автоматически отобразится время в течение которого партия находилась в каждой отдельной комнате.

Можно отобразить и на мнемосхеме. Чтобы вычислить время, нужно использовать процедуру ArchiveTimeOn.
Например:
Код: (delphi)
var
  DateStart, DateEnd: TDateTime;
begin
  DateEnd:= Now;                     // текущие дата и время
  DateStart:= IncDay(DateEnd, -1);   // уменьшить дату на 1 день
 
  // вычислить время включенного состояния переменной "vrRoom1" за период
  // от "DateStart" до "DateEnd" и записать результат в переменную "MyVariableRes"
  ArchiveTimeOn(vrRoom1, MyVariableRes, DateStart, DateEnd);
end.
Этот код вычислит в переменную MyVariableRes время в течение которого партия находилась в камере 1 за последние 24 часа.

13
Новости / Обновление до версии 2.7.4.0
« : 19 Января 2026, 10:01:45 »
Обновление по большей части содержит оптимизации производительности и исправления. Полный список изменений ниже.

Изменения:
  • интерфейс сервера: добавлен переключатель на табличный вид в меню "Проекты", "Клиенты", "OPC-серверы";
  • интерфейс сервера: добавлен фильтр по тексту в меню "Клиенты";
  • новая опция "игнорировать свойства" для импорта переменных с UA-серверов;
  • улучшена скорость построения отчетов. При многократном построении отчёта расходуется значительно меньше оперативной памяти;
  • утилита настроек: добавлена опция "Оптимизировать компиляцию отчетов" (включена по умолчанию). Опция ускоряет многократное построение одного и того же отчета;
  • утилита настроек: добавлена опция "Папка для скомпилированных отчетов". Позволяет задать путь в который будут сохраняться скомпилированные версии отчетов;
  • если у кнопки недостаточно прав, то окно подтверждения не выдаётся, сразу отображается окно "недостаточно прав";
  • классу TM_ClientData добавлен метод MemberOf. Возвращает True, если пользователь состоит в указанной группе;
  • редактор: при работе с файлами проекта предпринимается несколько попыток чтения, если файлы заняты другим процессом;
  • редактор: чтобы быстро открыть скрипт, привязанный к объекту, можно кликнуть по нему ПКМ вместо использования кнопки "...";
  • редактор: при импорте с OPC-UA серверов, свойства теперь отмечены другой иконкой;
  • web: у компонента "Список сообщений" исправлено отображение изменённых через скрипты свойств;
  • web: улучшена обработка кликов у фигур. Клики в пределах компонента (но вне самой фигуры!) теперь не учитываются;
  • на сервере в списке подписок отображается имя страницы, если подстраница скрыта;
  • сервер: улучшена производительно множества математических операций и расчетов;
  • сервер: улучшена производительность архивации. Для архивации требуется меньше оперативной памяти;
  • сервер: путь к системной папке скады выводится в лог;
  • добавлены дополнительные проверки на недопустимые имена БД в настройках проекта;
  • десктоп клиенты: исправлена утечка памяти при постоянных вызовах SetTrendClient / SetTrendAll, когда пользователь находится вне меню трендов;
  • десктоп клиенты: исправлено выделение в списке интервалов, после смены интервала скриптами, либо колёсиком мыши;
  • исправление: если границы переменной связаны с другими переменными, то теперь правильно берётся начальное (либо восстановленное) значение этих переменных при запуске проекта;
  • исправление: для PostgreSQL могла неправильно задаваться версия системы архивации;
  • исправлена проверка символов "-" и "+" в e-mail адресах при создании пользователей через веб/десктоп клиент;
  • исправлено отображение значений у опций "Масштаб и перемещение шкалы" и "Группировка шкал" в настройках проекта;
  • исправлена ошибка, из-за которой значения измененных границ (через поля ввода) не сразу отображались у клиентов;
  • исправлен вылет редактора в редакторе скриптов: ошибка возникала при попытке перехода к следующему найденному после удаления/редактирования кода;
  • исправлен запуск проекта в режиме отладки, когда этот проект добавлен в автозапуск и сервер выключен;
Резервная копия:
Мы всегда тестируем новые версии ПО на совместимость, но, несмотря на это, рекомендуем сделать резервную копию проекта перед обновлением.

Процесс обновления:
Для обновления достаточно установить новую версию поверх старой, оставив те же пути установки. Установщик заменит только системные файлы скады, не затронув папку с пользовательскими данными. После обновления откройте свой проект в редакторе и пересохраните его.

14
Ваши вопросы / Re: Работа процедуры Dial
« : 15 Января 2026, 10:17:56 »
Здравствуйте.

Все примеры описанные в руководстве не раз протестированы. Повторно проверили работу Dial c 7 и с 8, оба варианта работают (GSM модем Телеофис, оператор МТС, Краснодарский край).
Скада не устанавливает никаких собственных требований к номеру, или к AT-командам. Все команды без преобразований отправляются модему. Команда ATD допускает номера с символами: 0-9, *,#,”A”, ”B”, ”C”, ”D”, ”+”. Чаще всего при вызове команды ATD используется международный формат номера ( 7 ), а не внутренний ( 8 ), поэтому в руководстве оставили 7.

Цитировать
либо поправьте скаду, чтобы она понимала и 7 в начале номера и 8 в начале номера...
Скада не предъявляет никаких требований к номерам и никак их не корректирует. С номером работает модем и оператор связи. Указывайте номер в том формате, который подходит Вам.

15
Ошибки / Re: Толщина границы
« : 12 Декабря 2025, 10:19:43 »
Здравствуйте.

Изменения применяются к объектам, только когда значение в инспекторе объектов было изменено. Например, Вы выделяете несколько объектов и в инспекторе объектов "Толщина границы" равна 0. Если Вы измените 0 на 0 - ничего не произойдёт, т.к. значение не изменилось. Введите, например 1, а затем 0. То же касается всех остальных свойств.
В будущем (при выделении множества объектов) добавим неопределённое состояние, чтобы любое изменение применялось.

Страницы: [1] 2 3 ... 214