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

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

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

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


Сообщения - Дмитрий_021

Страницы: [1]
1
Здравствуйте, как реализовать следующий момент - у нас 1 сервер и 2 АРМ с клиентами. 1 АРМ на заводе и должен иметь доступ ко всему проекту, а 2 АРМ на котельной и должен иметь доступ только к 1 экрану (доступ к архиву сообщений разделять не нужно).   

2
Здраствуйте.
Как реализовать следующий функционал - имеется расходомер, где нарастающим итогом идет отсчет сырья, прошедшего через него. Есть кнопка - Закрыть смену, которая будет закрывать текущую смену и открывать следующую смену.  Нужно фиксировать в таблицу расход за каждую смену, а так же показания расходомера на момент открытия и закрытия смены.

3
Добрый день.
На данный момент с массивами не стал заморачиваться. Использую строку для булевских значений.
Не могу вызвать функцию, объявленную в одном юните в другом.

Код
unit uIsCorrectLevel;

interface
  function isCorrctLevel(sensorArray: String): Boolean;
implementation
  function isCorrctLevel(sensorArray: String): Boolean;
  ...
  end.         

Данную функцию нужно использовать в глобальной процедуре
Код
unit mLevel;
interface
  uses
    uIsCorrectLevel;
  procedure mLevel(Lvl: TM_Level; sensor: TM_Variable);
implementation
  procedure mLevel(Lvl: TM_Level; sensor: TM_Variable);
  var
    str: String;
  begin
    if isCorrctLevel(TM_Variable.AsStr ) then Lvl.FlashColor := clNone else Lvl.FlashColor := clRed;
  end;
end.                               
Компилятор выдает ошибку Property  "AsStr" inaccessible.
ПС У нас лицензия с расширенной тех поддержкой, но не нашел куда ее к аккаунту привязать.

4
Добрый день.
Не могу понять, как здесь реализована работа с массивами. Например, функция Length() должна работать как со строками, так и с массивами согласно спецификации языка.
https://delphisources.ru/pages/faq/faq_delphi_basics/Length.php.html
Но компилятор пишет несовместимые типы, а в справке скада-системы "Возвращает количество символов строки" и не слова о длине массива. Или тут в комиляторе вообще обрезана работа с массивами или как это делается? 

5
Использую в проекте следующие конструкции из универсальных скриптов и процедур, размещенных в  глобальных модулях. Нужно ли в этом случаи что-то использовать, чтобы не допустить утечки памяти?
Код: (delphi)
//Универсальное событие 
var
  aObject: TM_Object;
begin
  if Sender is TM_Object then
  begin
    aObject := Sender as TM_Object;
    if aObject.variable.AsBool then
       begin
         alarmMode(aObject);
       end
    else
      begin
        sleepMode(aObject);
      end;
  end;
end.                   

Код: (delphi)
//Глобальный модуль
interface
  procedure sleepMode(out AResult: TM_Object);
implementation
  procedure sleepMode(out AResult: TM_Object);
  begin
    if AResult is TM_Text then
      with AResult as TM_Text do
        AResult.FontColor := RGB(146,146,146);
   if AResult is TM_Image then
   .....
  end;
end.       

6
Спасибо, помогло. а есть ли функция, позволяющая получить текущую страницу? ( Условно аналог GetPageByName, но возвращающая страницу с которой был вызван скрипт )

7
Добрый день, только разбираюсь с вашим продуктом. Как написать простой скрипт, к кнопке привязана Переменная (Внутренний тэг - str - содержащей имя страницы). При нажатии на кнопку нужно переходить на эту страницу.

8
Спасибо, увидел. А можно ли предупредительные границы задавать не константой, а переменной?

9
Здраствуйте. Не могу найти как в демо-проекте задается изменения цвета элемента Level при выходе переменной за аварийно-предупредительные границы. 

10
Здраствуйте, вопрос по форматированию текста - можно ли тест элемента Текст сделать полужирным? На шрифт 24пт вижу только тонкий.

11
Добрый день, можно ли к скрипту приявязать более 2 переменных (основной и дополнительной), скрипт используется для объекта - Поле.

12
Спасибо за столь полный ответ.
Еще один вопрос - клиент скада-системы закрывается по нажатию клавиши "Esc", можно ли сделать как  - то чтобы он требовал кое-нибудь подтверждение при закрытии клиента?

13
Состояние клапанов выводится битовой маской  - т.е. каждому клапану соответствует 1 бит, выводятся только режим вкл/выкл. Различные аварии не интересуют. Как перейти от битовой маски к задвижкам? Понятно, что использовать функцию ГетБит, но хотелось бы более подробно.

14
Добрый день. OPC считывает слово  (Word) - оно используется как битовая маска состояния насосов. Как можно вытащить отдельный бит во внутренний тэг формата  BOOL или побитно обратиться к переменной?

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