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

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

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

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


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

Страницы: [1] 2 3 ... 7
1
Здравствуйте.
Как написать простой скрипт, к кнопке привязана Переменная (Внутренний тэг - str - содержащей имя страницы). При нажатии на кнопку нужно переходить на эту страницу.
Если у кнопки в свойстве "Переменная" указана переменная, то при нажатии на кнопку будет изменяться значение этой переменной в соответствии с установленными значениями в свойстве "Состояния". Поэтому описанную Вами задачу таким способом решить не получится, так как при клике на кнопку переменная с именем страницы, перед выполнением скрипта, будет перезаписана.

В данном случае переменную с именем страницы можно указать в свойство "Доп.переменная" и на событие "OnClick" кнопки написать скрипт:
Код: (delphi)
var
  aPage: TM_Page;
  aButton: TM_Button;
begin
  if Sender is TM_Button then   // проверяем, что Sender это кнопка
  begin
    aButton := Sender as TM_Button;
    // ищем страницу с именем из доп.переменной
    aPage := GetPageByName(aButton.VariableEx.AsStr);
    if aPage <> nil then                      // если страница существует,
      aPage.GoToPageClient(GetClientName);    // то перейти на нее
  end;
end
Также в руководстве по ссылке можно найти пример создания "Кнопок вместо панели страниц".

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

В скрипте используется функция "GetClientName" см. описание данной функции  - она не будет работать в скрипте с типом события "Прошел час", т.к. данное событие вызывается сервером, а не клиентом. Вместо GetClientName можно указать имя клиента, на котором требуется сохранить отчёт (имя клиента задаётся через настройки - "Имя этого клиента") или константу SS_SERVER_NAME для сохранения отчёта на серверном ПК. См. примеры 5 и 6 по ссылке

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

Права доступа на клиент и WEB Нажимаю на кнопку в клиенте все хорошо картинка меняет цвет. Нажимаю на эту же кнопку в WEB пишет нет прав.
См. описание настройки web-доступа в руководстве по этой ссылке. По умолчанию, при подключении через web проект доступен только для просмотра (при этом кнопки не будут работать). Если требуется управление через web, то необходимо открыть проект в редакторе, перейти в настройки и на вкладке "Общие" в параметре "Web-доступ" выбрать "с управлением", сохранить проект и перезапустить его на сервере.

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

Ошибка "Failed to create subfolders in the project folder" говорит о том, что у редактора нет прав на создание вложенной папки в папке пользовательских данных. Во время установки Simple-Scada пользователь задаёт два пути: для системных файлов (по-умолчанию "C:\Program Files\") и для пользовательских (по-умолчанию папка "Мои документы"). Скорее всего, во время установки Вы изменили путь к папке с пользовательскими данными и сейчас из-за проблем с доступом к этой папке у скады нет прав на чтение/запись файлов, либо вообще полностью заблокирован доступ к папке.

Чтобы не было никаких проблем с правами, папку пользовательских данных не следует размещать, например в "C:\Program Files". Выполните повторную установку Simple-Scada и оставьте путь директории для пользовательских файлов по-умолчанию (C:\Users\Имя_пользователя\Documents\Simple-Scada 2) или задайте другой путь, в котором точно не запрещен доступ к файлам, например "D:\Simple-Scada 2".

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

Возможно, после внесения изменений в проект (настройки БД) Вы не сохранили его или не перезапустили проект на сервере, тогда причина в этом. После внесения изменений в проект его необходимо сохранить и перезапустить на сервере скады. Если дело не в этом, то пришлите нам на support@simple-scada.com текущую версию Вашего проекта из директории "...\Simple-Scada 2\Projects\Имя_проекта".

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

Можно ли как-то в скриптах получить наличие/количество  аварийных/предупредительных  сообщений?
Для получения количества активных сообщений проекта можно использовать функцию SysGet с константой SYS_ACTIVE_COUNT. Но следует учитывать, что данная функция возвращает количество всех активных сообщений проекта любого типа: Сообщение, Предупреждение, Авария.

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

Использую Demo версию программы для разработки проектов. Недавно редактор отчётов начал ругаться, что "Срок Вашей пробной версии истек". Переустановка не помогла. Что делать?
Скачайте с сайта текущую демо-версию и установите ее. После обновления окно "Срок вашей пробной версии истек" не должно выдаваться.

8
Ваши вопросы / Re: Скорость анимации
« : 27 Июня 2022, 11:46:48 »
Здравствуйте.

Вторую переменную можно указать в качестве доп.переменной и на событие OnDataChangeEx написать скрипт:
Код: (delphi)
begin
  if Sender is TM_Image then   // проверяем, что Sender это изображение
    with Sender as TM_Image do // приводим Sender к типу "TM_Image"
      if VariableEx.AsInt > 0 then
        AnimSpeed := VariableEx.AsInt / 10   // запустить анимацию
      else                                   // иначе
        AnimSpeed := 0;                      // остановить анимацию
end.

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

Цитировать
В проекте можно скрыть нижнюю панель сообщения, но при этом так же скрываются и часы. Вот панель не нужна и занимает место, а часы нужны. Их нельзя разделить?
Такой возможности нет.

Цитировать
Предполагаю, что часы можно отдельной переменной вывести...
Пример как вывести время в компонент "Календарь" можно посмотреть в этой теме. Календарь можно настроить так, чтобы отображалось только время, для этого выберите у свойства "Дата" -> "Скрыть", а у свойства "Стиль" –> "Только поле".

10
Цитировать
Сделал второй скрипт и доп переменную, работает. Переменная основная и доп ведь одна и та же.
Не нужно указывать одну и туже переменную в качестве основной и дополнительной и писать два разных скрипта. В этом нет никакого смысла. Все необходимые условия можно описать в одном скрипте - см. пример ниже.

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

Пример скрипта:
Код: (delphi)
begin
  if Sender is TM_Text then   // проверяем, что Sender это текст
    with Sender as TM_Text do // приводим Sender к типу "TM_Text"
      case AsInt of
        0:
          begin
            Text := 'Местн.Пуск';
            FontColor := clYellow;  // изменить цвет шрифта
            Color := clRed;         // изменить цвет фона
            Alpha := 255;           // изменить прозрачность
          end;
        1:
          begin
            Text := 'Вынос.Пульт';
            FontColor := clBlack;   // изменить цвет шрифта
            Color := clNone;        // изменить цвет фона
            Alpha := 0;             // изменить прозрачность
          end;
        2:
          begin
            Text := 'Автозапуск';
            FontColor := clBlack;  // изменить цвет шрифта
            Color := clNone;       // изменить цвет фона
            Alpha := 0;            // изменить прозрачность
          end;
        3:
          begin
            Text := 'Диспетчер';
            FontColor := clBlack;  // изменить цвет шрифта
            Color := clNone;       // изменить цвет фона
            Alpha := 0;            // изменить прозрачность
          end;
        4:
          begin
            Text := 'Работает';
            FontColor := clBlack;  // изменить цвет шрифта
            Color := clNone;       // изменить цвет фона
            Alpha := 0;            // изменить прозрачность
          end;
      end;
end.

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

хотелось бы, что при определённом значении, к примеру 0, менялся цвет фона текста. Это возможно?
Чтобы изменить цвет фона у компонента "Текст" нужно использовать свойство "Color". Но у компонента "Текст" свойство "Прозрачность фона" по умолчанию установлено в 0 (полностью прозрачный), измените данное свойство, например на 255, тогда смена цвета будет видна. Также прозрачность можно менять в скрипте, для этого нужно использовать свойство "Alpha". Если нужно менять цвет текста, то используйте свойство "FontColor". Например:
Код: (delphi)
begin
  if Sender is TM_Object then     // проверяем, что Sender это объект
    with Sender as TM_Object do   // приводим Sender к типу "TM_Object"
      if AsInt = 1 then           // если значение переменной объекта равно 1, то
      begin
        Color := clRed;           // изменить цвет объекта на красный
        FontColor := clGreen;     // изменить цвет шрифта
        Alpha := 255;             // изменить прозрачность
      end
      else // иначе
      begin
        Color := clGray;         // изменить цвет объекта на серый
        FontColor := clBlack;    // изменить цвет шрифта
        Alpha := 0;              // изменить прозрачность
      end;
end.

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

После создания отчета на клиенте или сервере окно просмотра отчета открывается одновременно и на клиенте и на сервере. Версия 2.5.15.0
Это говорит о том, что клиент на сервере и клиент на удалённом ПК имеют одинаковое имя, или имя клиентов не задано (равно пустоте ""), т.е. получается также одинаковое имя. Задайте клиентам разные имена(см. опцию "Имя этого клиента"), сохраните настройки, перезапустите клиент и все будет работать правильно. Также возможно, что в качестве имени клиента в скрипте указана константа SS_ALL_CLIENTS, тогда отчет будет открываться для просмотра на всех клиентах (см. пример скрипта №4 по ссылке). Если в скрипте задано конкретное имя клиента, например "my_client", на котором должен открываться отчёт, то лучше использовать функцию GetClientName, тогда отчет будет открываться с любого клиента, который кликнет на кнопку "Построить отчёт":

Код: (delphi)
var
  aReport: TM_Report;
begin
  aReport := ReportBuild('Отчет');
  aReport.View(GetClientName);
end.

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

Ответ на данный вопрос можно найти в часто задаваемых вопросах по ссылке. Также, пояснения почему так происходит можно прочесть на вкладке свойств переменной "Дополнительные" если кликнуть по мигающему желтому треугольнику рядом с границами переменной.

14
Ваши вопросы / Re: Преобразование
« : 25 Мая 2022, 10:19:56 »
Здравствуйте.

Вам требуется работать с битами переменной? Компоненты "Кнопка" и "Флажок" могут работать с битом переменной напрямую -  см. свойство "Бит". Поэтому, если требуется работа с битами в данных компонентах, то в этом случае можно обойтись без скриптов. Для других компонентов можно работать с битами через скрипты. См. пример изменение цвета по биту переменной по ссылке(пример №2).

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

Скачали и протестировали "OPC Server TENSO-M" на разных ПК с разными конфигурациями и операционными системами. Проблем с подключением к данному OPC-серверу не обнаружили. Как добавить OPC DA-сервер см. в руководстве по ссылке. Как импортировать переменных с OPC DA-сервера см. по ссылке.

Рекомендации:
1. Установите компоненты OPC-Core Components. Вам нужно использовать компоненты x86, т.к. "OPC Server  TENSO-M" это 32 битный OPC-сервер. Скачать можно с этой страницы. После установки перезагрузите ПК и протестируйте повторно.
2. В руководстве к "OPC Server TENSO-M" сказано, что ему требуется регистрация в системе. Для регистрации OPC-сервера необходимо нажать на кнопку "Зарегистрировать (реестр)", либо запустить ПО из командной строки с параметром /regserver. Более подробно см. в руководстве к OPC-серверу по ссылке.

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

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