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

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

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

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


Темы - Кирилл_ШКЫ

Страницы: [1]
1
Добрый день!

Задача: отображать значение переменной Х типа single в форматах:
1)"0" если Х > 1, т.е. отображать "53", например, когда переменная равно 53.282
2) "0.00E+00" если Х < 1, т.е. отображать "2.82E-2" когда переменная равно 0.0282

Моё решение (Работает):
1) Исходной переменной Х при объявлении задать формат "0". Создать внутреннюю переменную Х_2  задать ей формат "0.00E+00"
2) Создать 2 поля TM_Field, одному присвоить Х, другому Х_2 (и Х в качестве доп.переменной). Наложить одно поле на другое.
3) Создать скрипты(приведены ниже):
    а) Скрывать объект, если переменная ушла из своего диапазона, иначе отображать (OnDataChange)
    б) Сопоставлять значение Х и Х_2 при изменении Х (OnDataChangeEx)

Вопросы:
1) Правильно ли я понимаю, что такой подход сейчас единственно возможный? Свойство Format ведь доступно только для чтения? (См скрин 1)
2) Не планируется ли открыть данное свойство на запись?

Дополнительно:
3) Не планируется ли сделать для пользователей возможность конструировать свои объекты типа фигура, т.к. эллипса и прямоугольника не хватает? Ну или дать возможность из набора эллипсов и прямоугольников собирать один объект с едиными свойствами.
4) Можно ли указать в руководстве какие свойства доступны на запись, а какие только на чтение? Было бы полезно. Или укажите если я не заметил это.

Заранее благодарен.

Приложение (листинг скриптов)
1) Сокрытие
Код: (delphi)
begin
            if Sender is TM_Field then   // проверяем, что Sender это поле
              with Sender as TM_Field do // приводим Sender к типу "TM_Field"
                begin
                  if Value  < 5 THEN
                    Visible  := FALSE // скрываем поле
                  ELSE
                    Visible  := TRUE;
                end;
end.
2) сопоставление внешней и внутренней переменной
Код: (delphi)
begin
          if Sender is TM_Field then   // проверяем, что Sender это поле
            with Sender as TM_Field do // приводим Sender к типу "TM_Field"
               TM_Field(Sender).Variable.Value := TM_Field(Sender).VariableEx.Value; // передача значения из внешнего тега во внутренний
end.

2
Добрый день!

Дано: контроллер xinje xs-3, на нём программа сделанная в среде Codesys 3.5, используется OPC UA сервер кодесиса.

Проблема: при попытке подключиться к серверу из редактора Simple Scada 2 (как из окна импортировать переменные, так и из окна OPC-серверы) отображается ошибка "simple scada UA activate exception. User Policy: Anonymous not supported by the OPC Server" (на скриншоте)

Что может быть не так на стороне скады?

Страницы: [1]