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

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

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

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


Темы - Серега

Страницы: 1 2 3 [4] 5 6 ... 10
46
Добрый день!
Значит ситуация следующая.
Открыли текстовый файл.
Код
TextFileOpen(nameFileTxt, namePath, fomReset, fcpUTF8);
Есть набор простых действий:
Код
txtLineFile := TextFileReadLn;
setting := Copy(txtLineFile, 1, 8);
setting := Trim(setting);

byteSetting_1.Value := StrToInt(setting); 

txtLineFile := TextFileReadLn;
position := Copy(txtLineFile, 9, 8);
position := Trim(position);

rPosition_1.Value := StrToFloat(position);
Далее повтор для необходимого количества byteSetting_... и rPosition_... . Получаем небольшую (или большую) "простыню" кода.
Понимаем что в принципе код повторяется и можно использовать глобальный модуль.
Вот вопрос и возникает можно ли вообще использовать операции с файлом в глобальном модуле?
Можете пояснить.

47
Добрый день!
Столкнулся со следующей ситуацией.
И сервер и клиент на одной физической машине. Проект для проработки решения. Ни каких наворотов.  База данных не подключена. Версия демо лимит по времени.
Есть внешняя переменная. ОРС + modbus устройство.
Берем просто скрипт "Проект запущен" и переменной присваиваем 0 (или 1). Допустим нужно для инициализации.
Берем просто скрипт "Проект запущен полностью" и переменной присваиваем 0 (или 2). Допустим нужно для отслеживания готовности операторов.
Берем просто скрипт "Проект остановлен" и переменной присваиваем 0 (или 3). Допустим нужно для безопасной остановки оборудования.
И вот если в клиенте присвоить значение переменной, то обнуления не происходит при остановке/запуске проекта.
Не совсем понятно как это все работает.
Подозреваю, что связано с ОРС. Но хотелось бы получить от Вас комментарий, а то опять окажется, что это только для внутренних переменных.
Если только для внутренних, тогда подскажите как при остановке проекта, но работающем оборудовании и ОРС сервере обнулить переменные в оборудовании?


48
Добрый день!
В одном из проектов словил следующую ситуацию.
При переходе с 1ой подстраницы на 2ую подстраницу значок "Тренды" как бы становиться не активным (см.рисунки).
Добавляю 3 подстраницу, перегружаю проект, на ней таже ситуация инструмент "тренды" не доступны.
При этом клиент запущен под юзером, которому в настройках разрешен просмотр трендов.
2ая подстраница в скриптах ни как не задействована.
Что это может быть?
Жду вопросов и предложений.

49
Ваши вопросы / Шаблоны и все такое 3
« : 07 Июня 2024, 14:18:08 »
Добрый день!
Возникла проблемка.
Суть задачи такова. Надо сделать много однотипных текстовых элементов на подобии Свойство=Значение. Пример "Двери : открыты". Если переменная булевская изменила значение с False на True то тогда получаем "Двери : закрыты" и наоборот.
Много однотипных подразумеваем шаблон.
Но тут небольшая закавыка. Как в шаблоне прописать 2 значения текста?
При этом еще хотелось бы менять цвет фона, а возможно и цвет шрифта в зависимости от цвета фона.
Заготовка есть, но как то не запускается.
Жду вопросов и предложений!




50
Добрый день!
В чем вопрос. На ПНР напарник скидывает ряд слов (тип word).
Можно ли в скаде "забить" заранее нужное количество сообщений, привязать к соответствующим словам и их настроить, но не расписывать в сообщениях состояния. То есть даже удалить те пустые, которые появляются при создании. Их настройка и проверка как бы следующий этап.
Как система будет их воспринимать? Будет ли дополнительная нагрузка на железо, если например так сделать 100 слов? Или 1000.
Тестовый проект показал что как бы можно. Но может есть нюансы.
Просто для понимания.

51
Ваши вопросы / Проекты и клиенты
« : 28 Декабря 2023, 11:18:45 »
Добрый день!
Может кто подскажет.
Есть сервер. Есть 2 арма.
1ый этап проекта подразумевал один проект,  работу обоих клиентов на линии 1. Функция GetClientsCount легко решает вопрос о количестве клиентов.
2 - отлично работаем.
1 - работаем, но с ограничениями.
0 - полный останов.
2ой этап подразумевает появление отдельного проекта на линию 2. При этом под него выделяется конкретный арм. Запускаться будет периодически. Так решено не мной, изменить нельзя.
Сервер по функции GetClientsCount видит те же клиенты. Но не видит какие проекты где запущены.
И вот основной вопрос можно ли как то узнать что конкретный проект запущен и какие клиенты отображают данный проект.
Возникла идея воспользоваться командой GetProjectPath, которая работает отлично.
Далее получаем как бы 2 результата, которые будут отличаться окончаниями типа "D:\Simple-Scada 2\Projects\Line1\" и "D:\Simple-Scada 2\Projects\Line2\". Но это просто где лежат проекты.
Но тут возникла проблема с функцией Pos. Скопировал из руководства пример в скрипт универсальный, OnClick и выдает ошибку "Class "TM_Variable" does not have a default property, в строке ...". Можете у себя проверить. Не могу понять что ему не нравиться.
В принципе как бы можно собрать косвенно разные статы:
1. пинг = физическая связь
2. имя клиента сделать уникальным
3. знать какие проекты на сервере
В общем эта тема как бы продолжение этой https://simple-scada.com/forum/index.php?topic=976.msg9143#msg9143.
Если у кого есть идеи, как можно получить инфу о том какие клиенты отображают конкретный проект... жду предложений.
Ну и совсем из ряда фантастики. На клиенте из запущенного проекта можно перейти в другой проект, не выходя из него и не заходя повторно в меню?
Жду вопросов и предложений!


52
Ваши вопросы / Переменные и типы данных
« : 10 Декабря 2023, 09:41:57 »
Добрый день!
В описании на скаду написано:
"...Особенно важно указывать правильные типы данных в очень больших проектах, так как это существенно скажется на быстродействии...".
В конфигурации ОРС Инсат есть настройка "Тип данных в сервере" и там можно выбрать только uint32 (в скаде = long word).
Вопрос. Если переменным в скаде присвоить тип word, при типе данных в ОРС uint32, что-нибудь может произойти нежелательное? Или просто будет обрезаться значение переменной до типа word.
Жду ответа и предложений!

53
Добрый день!
При импорте переменных из OPC UA создаются новые переменные в скаде.
Рассматривается ли функция обновления существующих переменных в скаде при импорте из OPC UA, например в части адреса и\или описания, если имя переменной не менялось и полностью совпадает с именем в ОРС?
Например, как с Alt или Shift, но через Ctrl или их любое сочетание.
Жду вопрос и предложений.

54
Добрый день!
Есть кнопка с 2 положениями и привязана к соответствующей переменной.
В свойстве "доп. переменная" прописана переменная, которая отвечает за обратную связь, типа команда прошла.
В настройках кнопки мы можем настроить цвета для фона, границы и текста, которые будут меняться в зависимости от значения основной переменной.
Скриптом через Button1.States[0].Color можно организовать нужные цвета в соответствующих состояниях.
И данный скрипт повесить на OnDataChangeEx ...
В общем у меня не получается добиться нужного мне результата.
Можете сказать как правильно это сделать?
И можно ли так делать?


55
Добрый день!
Вопрос касается нагрузки на сервер скады.
То есть у нас например есть 100 word-ов.
Что будет менее затратным:
1. Сделать много внутренних булевских переменных в одном скрипте "изменились переменные"
Например:
Код: (delphi)
xSystemOff_iGet.Value := GetBit(wWordState_Get.AsInt64 ,0);
и т.д.
и в дальнейшем использовать эти переменные.
Конечно надо понимать, что возможно потребуется дополнительно использовать еще какие то скрипты, что так же вызовет рост нагрузки на сервер.
2. Или привязать в геометрическом примитиве (кроме кнопок и флажков, которые напрямую могут работать с битами) к переменной wWordState_Get.
Далее указать в свойстве Tag нужный бит (например 0) и на событие OnDataChange повесить например такой скрипт:
Код: (delphi)
var
  xState:boolean;
begin
if Sender is TM_Shape then
  with Sender as TM_Shape do
    begin
    xState := GetBit(AsInt64 , Tag);
    if xState then
      Color := $074611
    else
      Color := $242424;
    end
end.
И естественно таких примитивов будет 100 word * 16 bit = 1600 вызовов одного и того же скрипта.
Как бы и то и то работает. Но вообще хотелось бы понимать как это работает.
Может быть в руководстве создать какую то таблицу весов "тяжести" скриптов или что то на подобии.
Жду ответов и вопросов.

56
Добрый день!
Процесс формирования отчета не менялся.
1. Формируем отчет:
Код
aReport := ReportBuild('MotoRunHour');
2. Формируем имя отчета:
Код
NameFileForSend := 'MotoRunHour_'+ DateTimeToFileName(Now, '');
3. На всякий случай сохраняем его на сервере:
Код
aReport.Save(SS_SERVER_NAME, NameFileForSend, 'C:\GeneratedReports\', rfPDF);
4. Отправляем по почте:
Код
aMail := SendMail('Simple-Scada', 'Mail с отчетом', 'Отчет во вложении', 'user1@mail.com, user2@mail.com'); 
aMail.AttachReport(aReport, NameFileForSend);
И вот после обновления по почте присылается файл, но без расширения pdf.
Раньше:
MotoRunHour_01.10.2023 00.00.00 (542).pdf
Теперь:
MotoRunHour_01.10.2023 00.00.00 (542).00 (542.00 (542
Можете проверить у себя?

Дополнительно хотел бы уточнить следующее:
1. В скобках указываются миллисекунды?
2. Для удаления их из названия нужно перед началом изменить формат времени (SetTimeFormat('hh:nn:ss'); ), а в конце при необходимости вернуть обратно той же командой (SetTimeFormat('hh:nn:ss:zzz'); )?

Жду вопросов и ответов!

57
Ваши вопросы / Изображения и клиенты
« : 31 Августа 2023, 17:27:53 »
Добрый день!
Не могу разобраться в ситуации, что ни так.
Есть сервер. Проект. Папка Pictures и в ней картинки для проекта. Не анимация.
В редакторе картинки видны. В клиенте запущенном на сервере картинки видны. Сервер установлен как служба.
Заходим на другом клиенте (физически другой арм, по сети подключенный, установлен только клиент) и картинок нет.
И тут пару вопросов.
1. По идее картинки надо скопировать на клиента. Правильно? Или они по сети при подключении скачиваются? (Вроде где-то это уже обсуждалось, но не уверен и не смог найти тему на форуме, или это в руководстве было, хз)
2. Если да, то куда?
3. Если в папке Pictures было изменено имя файла, в редакторе в старом объекте "Изображение" привязана новая картинка. Сохранение в редакторе  и перезапуск проекта достаточно что бы изменения вступили в силу? Или нужно перезапускать саму службу сервера?
Жду вопросов и предложений.

58
Ошибки / Фича или глюк...
« : 23 Июня 2023, 13:01:58 »
Добрый день!
Обратил внимание на 2 вещи.
1. При выделении объектов в редакторе иногда проскакивает подъем или сужение по высоте строк меню свойства. Проверьте у себя.
2. На рисунке (вложение) видно, что видимая часть линии по координатам не совпадает с координатами прямоугольника. Но как бы невидимая рамка объекта совпадает. Можете дать свои пояснения это фича или глюк?

59
Добрый день!
Архивация v2 имеет ряд преимуществ.
В проекте переход на данную версию запланирован. Но...
У нас с "боевой" базы делается репликация для инструмента Grafana.
В связи с отличиями в структуре таблиц возможно придеться переделать все запросы в Grafana.
Можете посоветовать какой то менее болезненный алгоритм перехода. Например может создать новую базу в проекте и т.д.
В общем любые мысли...
Жду вопросов и предложений.

60
Ваши вопросы / Текст и его свойства
« : 14 Апреля 2023, 14:09:23 »
Добрый день!
Заметил одну вещь.
Текст в кнопке как бы смещен вниз (на рисунке 1ый элемент текст, остальное кнопки).
Вопрос №1. Это фича или глюк?
Вопрос №2. В элементе текст сам текст можно выравнивать. В будущем рассматриваете такую возможность для кнопок?
Вопрос №3. Для элемента кнопка ширина границы не изменяемая? В будущем будет возможность ее менять?
Жду вопросов и предложений!

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