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

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

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

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


Сообщения - sir

Страницы: [1] 2
1
Благодарю за помощь!

2
Здравствуйте!
На форуме нашел сообщение от 2014 года, где Вы обещали создать "переключатель", но в Скаде он так и не появился.
Вопрос. Как создать переключатель по двум клавишам ПУСК и СТОП в шаблоне?
Нажимаешь на ПУСК - кнопка подсвечивается "зеленым" и деактивируется, Кнопка СТОП подсвечивается серым, значение по кнопке ПУСК, например 6 - фиксируется в переменной, привязанной к кнопке.
Нажимаешь на кнопку СТОП - кнопка подсвечивается "красным", кнопка ПУСК подсвечивается "серым" и деактивируется, значение по кнопке СТОП, например 5 - фиксируется в переменной, привязанной к кнопке.
В шаблоне мы можем работать только с тем объектом шаблона, который вызвал скрипт. Как обратиться к соседнему объекту в шаблоне (кнопке)?

3
Здравствуйте!
Одна SQL база для трендов установлена локально и прописана в настройках проекта, а SQL база для рецептов находится в локальной сети на другом сервере и работают с ней другие пользователи в другом программном обеспечении. Возможно ли работать с разными SQL базами данных на разных серверах, если в настройках задается доступ (логин-пароль) только к одному SQL серверу?

Как я понимаю, в скрипте Проекта на Delphi надо прописать авторизацию с логином и паролем для удаленного SQL сервера? Не подскажите как это сделать?
Вот пример:
Код: (delphi)
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, SqlExpr;

type
TForm1 = class(TForm)
SQLConnection1: TSQLConnection;
SQLQuery1: TSQLQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
SQLConnection1.DriverName := 'MySQL';
SQLConnection1.Params.Values['HostName'] := '10.0.0.10';
SQLConnection1.Params.Values['Database'] := 'mydatabase';
SQLConnection1.Params.Values['User_Name'] := 'myusername';
SQLConnection1.Params.Values['Password'] := 'mypassword';
SQLConnection1.Open;

SQLQuery1.SQL.Text := 'SELECT * FROM mytable';
SQLQuery1.Open;

DBGrid1.DataSource := DataSource1;
DataSource1.DataSet := SQLQuery1;
end;

end.

4
Уважаемые Разработчики, если все же у Вас будет возможность поработать в направлении кроссплатформенности Скады, то нас в первую очередь интересует Astra Linux. Можем провести онлайн-конференцию, обсудить все возможные перспективы, технические особенности, варианты кроссплатформенности.

5
Печально.
У нас проект системы управления с собственной Скадой конца 90-х, по управлению газоперекачивающими агрегатами, более 600 единиц серверов, плюс станции ГНС, станции заправки и т.д.
Сейчас разрабатываем и обкатываем новое российское "железо", и хочется сделать ребрендинг Скады на базе Вашего ПО.
На своей скаде это сделать невозможно, пока работает тоже через wine, писать заново нет времени.
Если у Вас такие планы все же появятся, прошу сообщить за полгода, по контактам в akciom.ru

6
Здравствуйте!
В Газпроме есть требования к программному обеспечению.
Выписка из требований:
"-  убедиться,  что  кроссплатформенность  программного  обеспечения обеспечивается  только  собственным  кроссплатформенным  кодом  без использования технологии Wine и виртуальных машин."
Планируется ли перенос кода Simple Scada в среду Linux с поддержкой кроссплатформенности?

7
Не во всех графиках шкала в нулевом диапазоне. Иногда это примерно от 0,2 до 1,2, или до 2.

8
Здравствуйте!
В версии программы 2.6.13 в отчете, некорректно отображаются данные на графике по оси Y. Ранее не было необходимости коррекции для значений типа float, на графике по оси Y все отображалось корректно, сейчас (см. скрин).
Невозможно корректно скорректировать количество значений после запятой.
Если корректировать значения по оси Y в "область"-"Ось Y", форматом типа "#.##", то получаются некорректные значения, где нет знака ноль до точки.

9
Спасибо! Очень ценная информация.

10
А если Таблица формируется не из SQL базы, а из многих параметров переменных, постоянно изменяя свои значения, и писать-читать всю таблицу в SQL базу - ненужная нагрузка на сервер, да и вряд ли он справится в десятками записи-чтения данных в секунду. Как в этом случае организовать сортировку данных в таблице?

11
Ваши вопросы / Re: Про глобальный модуль
« : 24 Сентября 2023, 22:07:41 »
Беру на вооружение. Спасибо!

12
Ваши вопросы / Re: Про глобальный модуль
« : 21 Сентября 2023, 17:26:23 »
Здравствуйте!
Вопрос по использованию переменных типа "Внетренний тег. Виртуальная переменная" в передаче в качестве ссылки в глобальный модуль.
Например, в проекте есть Переменная типа Byte, с именем Vdata1
Я хочу передать ссылку в глобальный модуль на эту переменную Byte:
Код: (delphi)
Vdata1.Value;
Глобальный модуль типа:
Код: (delphi)
GlobModul (var data1: Byte): Byte;
Но компилятор ругается, т.к. не может передать ссылку на эту переменную.
Выход из этой ситуации - использовать переменную, объявленную внутри функции:
Код: (delphi)
var
  Fdata: Byte;
begin
  Fdata := Vdata1.Value;
  GlobModul (Fdata);
  Vdata1.Value := Fdata;
end;
Возможно ли использовать ссылку на переменную типа "Внутренний тег" для передачи в глобальный модуль для сокращения кода?

13
Ваши вопросы / Re: Массивы переменных
« : 21 Сентября 2023, 12:57:33 »
Спасибо за рекомендацию.
Есть ли более удобные и функциональные решения по части хранения и восстановления данных с Вашей точки зрения, как разработчиков данного ПО?

14
Ваши вопросы / Re: Массивы переменных
« : 20 Сентября 2023, 12:52:22 »
Да, все верно. Но задача - хранить 200-300 байт таким образом, чтобы восстанавливать после загрузки, а также выборочно изменять эти значения во время работы.
Конкретно, задача следующая. Есть три графика (отрисованы с помощью линий, точек, шкал и т.д., т.к. реализован функционал маткад, данные не в реальном времени, а по таймеру, кнопке измерения и т.д.). У каждого из графиков имеется 6 параметров настройки масштабирования, итого 18 значений. Всего режимов масштабирования 10. Потребуется 180 одиночных виртуальных переменных с вкл. режимом восстановления после загрузки, что неприемлемо, и хотелось бы иметь на такой случай массив в виртуальной переменной.
Глобальный массив временный, и после перезагрузки системы данные настроек исчезнут.
Остается либо SQL, либо файлы.
Вопрос по файлам, как выбрать строку для записи в текстовый файл, не перезаписывая перед ней все предыдущие строки?
Проект предоставить не могу, это ноу-хау завода, разработанное в маткад и реализованное мной в скаде для автоматического применения на стенде. Сейчас идет модернизация функционала, поэтому подскажите наилучшее решение вопроса, с которым постоянно сталкиваюсь. Привычка работы в С++..

15
Ваши вопросы / Re: Массивы переменных
« : 19 Сентября 2023, 15:36:03 »
Объявлять и изменять массивы можно было всегда. Нельзя изменять только внешние переменные-массивы (которые считываются с OPC-сервера). Они доступны только для чтения.
Здравствуйте!
Можете в примерах показать, как изменять данные локальных массивов.
Например, SQL база данных у нас не установлена, а данные хранить необходимо.
Мы создаем локальный массив с типом данных Byte array.
Тип: Внутренний тег (виртуальная переменная).
Если есть возможность создания массива типа локальной переменной, и она не связана с OPC вервером - Как писать и читать данный массив на delphy?
Запись командой типа Massiv_KPD.Values[0] := 1; - невозможна.
Но запись возможна командой типа Massiv_KPD.Value := 1;
Таким образом, одну ячейку мы все же можем записывать, но смысл тогда в переменной типа Byte array как внутреннего тега?
Получается ситуация, когда у нас существует внутренняя локальная переменная типа array, в которую возможно записать лишь один байт, но у нас тип - массив.
Возможно в этой переменной кроется какой-то другой смысл?
Если его нет, то предлагаю все же открыть возможность записи для применения как массив внутренней локальной переменной.
Это будет удобно, когда не хочется устанавливать SQL базу, а хранение пары сотен переменных надо сохранить, данные которых необходимо восстановить после загрузки.
Не создавать же для каждого байта кучу внутренних переменных...
Возможно Вы предложите более рациональный способ хранения данных, без использования SQL и файлов?

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