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

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

Автор Тема: Вопросы и предложения по Simple-Scada 2  (Прочитано 353387 раз)

strs

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1200 : 13 Февраля 2020, 09:16:49 »
Здравствуйте!

Подскажите пожалуйста, если из OPC-сервера получена шестнадцатибитная переменная, можно ли без скриптов разобрать ее на 16 булевых?

maks48

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1201 : 13 Февраля 2020, 21:56:39 »
Есть 2 переменные - одна для чтения, другая для записи. А1_r, A1_w. Нужно, чтобы пользователь кликал в "поле", вводил уставку в переменную A1_w и видел бы значение из переменной A1_r. А1_r и A1_w могут не совпадать, т.к. при перезагрузке железки A1_w = 0. В идеале элемент "поле" должен являться элементом "таблицы"
Как это грамотнее реализовать? Переменных довольно много.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1165
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1202 : 13 Февраля 2020, 22:53:01 »
Здравствуйте.

Цитировать
Подскажите пожалуйста, если из OPC-сервера получена шестнадцатибитная переменная, можно ли без скриптов разобрать ее на 16 булевых?
Компоненты "Кнопка" и "Флажок" могут работать с битами напрямую - см. свойство "Бит". Также, можно работать с битами из скриптов.

Цитировать
Нужно, чтобы пользователь кликал в "поле", вводил уставку в переменную A1_w и видел бы значение из переменной A1_r.
Поле не может работать одновременно с двумя переменными, но это можно реализовать при помощи функционала некоторых OPC-серверов, подробнее обсуждалось здесь.
« Изменён: 13 Февраля 2020, 23:01:51 от Simple_Scada »

pan2000

  • Постоялец
  • ***
  • Сообщений: 170
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1203 : 14 Февраля 2020, 12:57:34 »
Нужно, чтобы пользователь кликал в "поле", вводил уставку в переменную A1_w и видел бы значение из переменной A1_r. А1_r и A1_w могут не совпадать, т.к. при перезагрузке железки A1_w = 0. В идеале элемент "поле" должен являться элементом "таблицы"
Поскольку требуется работа только с одной переменной, то вторую можно индицировать периодической перезаписью свойства "Text" (В версии 2.3.6.7 Simple-Scada запись в свойство "Text" приводит к отображению этого свойства на объекте).
Пример скрипта (проект во вложении) "Прошла секунда" для поля Field1 и таблицы Table1:
Код: (delphi)
begin
  Field1.Text := A0_r.AsStr;                  // Поле Field1 связано с переменной A0_w
  Table1.GetCell(1,1).Text := A1_r.AsStr;     // Ячейки таблицы связаны с переменными Ai_w (i = 1..3)
  Table1.GetCell(1,2).Text := A2_r.AsStr;
  Table1.GetCell(1,3).Text := A3_r.AsStr;
end.

strs

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1204 : 14 Февраля 2020, 13:17:14 »
Компоненты "Кнопка" и "Флажок" могут работать с битами напрямую - см. свойство "Бит".

Нет ли в планах ввести элемент "Индикатор", который бы отображал значение бита из слова или значение булевой переменной? После других скад очень уж очень муторно для каждой лампочки писать скрипт.

Еще, вопрос 2: а с чем связано решение всегда открывать окно редактора на весь экран, скрывая панель задач? Жутко неудобно. Можно ли ее отобразить?

maks48

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1205 : 14 Февраля 2020, 19:59:17 »
Поскольку требуется работа только с одной переменной, то вторую можно индицировать периодической перезаписью свойства "Text" (В версии 2.3.6.7 Simple-Scada запись в свойство "Text" приводит к отображению этого свойства на объекте).
Пример скрипта (проект во вложении) "Прошла секунда" для поля Field1 и таблицы Table1:
Большое спасибо за подсказку!!!
« Изменён: 14 Февраля 2020, 21:42:39 от Simple-Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1165
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1206 : 15 Февраля 2020, 16:25:28 »
Здравствуйте.

Цитировать
Нет ли в планах ввести элемент "Индикатор". уж очень муторно для каждой лампочки писать скрипт
Добавление отдельного компонента не планируется. Для такой задачи можно использовать один универсальный скрипт для всех лампочек. Например, имеется три лампочки которые должны менять цвет по битам переменной MyVar. Все лампочки нужно связать с переменной MyVar и у каждой лампочки в свойстве "Тэг" указать номер бита, по которому должен меняться цвет. Например, у первой установить 0, у второй 1, у третьей 2. Далее, нужно написать такой универсальный скрипт:
Код: (delphi)
begin
  if Sender is TM_Object then   // проверяем, что Sender это объект
    with Sender as TM_Object do // приводим Sender к типу "TM_Object"
      if GetBit(AsInt, Tag) = TRUE then
        Color := clGreen
      else
        Color := clRed;
end.
, и назначить этот скрипт на событие OnDataChange всех лампочек. Теперь, первая лампочка будет менять цвет по нулевому биту, вторая по первому биту, третья по второму биту.

Цитировать
а с чем связано решение всегда открывать окно редактора на весь экран, скрывая панель задач? Жутко неудобно. Можно ли ее отобразить?
В Simple-Scada для отрисовки используется OpenGL/DirectX рендер, поэтому в полноэкранном режиме отображать панель задач невозможно. Чтобы перейти к панели задач нажмите клавишу Win на клавиатуре. Если это Вам подойдет, можно работать в оконном режиме, установив необходимый размер окна редактора - см. свойство "Размер окна".
« Изменён: 15 Февраля 2020, 17:25:46 от Simple-Scada »

deldemo

  • Старожил
  • ****
  • Сообщений: 308
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1207 : 24 Февраля 2020, 20:54:53 »
Здравствуйте. Подскажите, планируется в будущем добавление возможности присвоения своих иконок кнопкам?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 2996
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1208 : 25 Февраля 2020, 20:40:46 »
Здравствуйте. Нет, в самое ближайшее время эта возможность не будет добавлена. Мы уже долгое время готовим крупное обновление клиента скады с внедрением системы шаблонов. Только после этого мы вернёмся к второстепенным задачам.

dsai

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1209 : 01 Марта 2020, 17:13:54 »
Добрый день!

Интересует вопрос (ну и пожелание, чтобы добавили одну кнопку). Как я понял архивируемые данные хранятся в базе SQL (MSSQL или MySQL), а где хранятся данные для восстановления значений переменных при рестарте и возможно ли эти данные очистить? Если нет, то хотелось бы видеть кнопку для очистки этих данных.

Суть в том, что при разработке проекта возможно сохранение весьма нелепых или нереальных данных. Проект на рабочую станцию переносится методом копирования и соответственно уже на рабочей станции появляются эти самые некорректные данные. Хотелось бы избавлять от этих данных перед переносом на рабочую станцию.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 2996
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1210 : 02 Марта 2020, 10:19:25 »
Здравствуйте.

Начиная с версии 2.3.6.2 сохранённые граничные значения и автоматически восстанавливаемые значения хранятся не в папке с проектом, а в папке "%AppData%\Simple-Scada 2\Имя проекта\", поэтому копирование проекта с одного компьютера на другой никак не может повлиять на эти данные.

Цитировать
Хотелось бы избавлять от этих данных перед переносом на рабочую станцию.
Исходя из вышеописанного, если Вы используете версию 2.3.6.2 (или выше), то можно просто копировать проект на любой другой ПК, файлы с сохранёнными значениями не будут скопированы.

Если на рабочей станции проводились какие-то тесты и т.п. и сохранённые данные тоже некорректны, то можно их удалить. Для этого откройте папку "%AppData%\Simple-Scada 2\Имя проекта\" и удалите файлы "Limits.slm", "LimitsV2.slm", "Retentive.srf" и "RetentiveStr.srf" (если они присутствуют в папке).

strs

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1211 : 04 Марта 2020, 16:40:53 »
Скажите пожалуйста, можно ли привязывать одну переменную к другой без скриптов?

Поясняю: в той же Мастерскаде применяется т.н. принцип клеммника, когда есть внутренние переменные скады и есть внешние, например из ОРС-сервера. Мы настраиваем скрипты, взаимодействия, архивацию для внутренних переменных, а потом просто привязываем к ним внешние. Потом можно поменять хоть контроллер, хоть OPС-сервер, а скаду и скрипты это не затронет.

maks48

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1212 : 04 Марта 2020, 18:46:05 »
Здравствуйте! Функция CopyFile сможет скопировать текстовый файл с железки под управлением Linux по сети? Ну или как-то из скады запустить bat, который выполнит копирование. Можно что-то придумать?

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1165
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1213 : 05 Марта 2020, 11:06:45 »
Здравствуйте.

Цитировать
Скажите пожалуйста, можно ли привязывать одну переменную к другой без скриптов?
Нет.

Цитировать
Мы настраиваем скрипты, взаимодействия, архивацию для внутренних переменных, а потом просто привязываем к ним внешние. Потом можно поменять хоть контроллер, хоть OPС-сервер, а скаду и скрипты это не затронет.
Имеется возможность импорта и экспорта переменных в файл/из файла. При смене контроллера, OPC-сервера и других подобных изменениях можно экспортировать переменные в файл, выполнить в нем необходимые изменения, например сменить OPC-сервер, изменить адреса переменных и т.д. После внесения необходимых изменений можно импортировать переменные обратно в проект. Чтобы переменные обновили свои свойства при импорте, нужно нажать кнопку "Импортировать" удерживая клавишу "Shift" на клавиатуре.

Цитировать
Функция CopyFile сможет скопировать текстовый файл с железки под управлением Linux по сети? Ну или как-то из скады запустить bat, который выполнит копирование. Можно что-то придумать?
Между ПК с Windows, если ничего не будет блокировать доступ к удаленному файлу он скопируется по сети. С Linux не тестировали, Вы можете проверить это самостоятельно. Запустить bat-файл можно при помощи процедуры RunApplication.

deldemo

  • Старожил
  • ****
  • Сообщений: 308
    • Просмотр профиля
Re: Вопросы и предложения по Simple-Scada 2
« Ответ #1214 : 27 Марта 2020, 07:22:59 »
Здравствуйте. Добавьте, пожалуйста, возможность блокировки перемещения окон. Отключая шапку, окна все равно можно перемещать цепляясь за пустые места.
Иногда в проектах нужно статическое окно(типа меню пуск).