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

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

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

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


Сообщения - tgeka86

Страницы: [1]
1
Здравствуйте! Обнаружился неприятный баг в версии 2.2.7.1:
Необходим универсальный скрипт, который обрабатывал бы два DI сигнала и менял цветовую индикацию разгных объектов. Пусть будут два сигнала DI_1 и DI_2. На основную переменную - DI_1, на дополнительную - DI_2. Объекты Клапан и Изображение.
Цветовая схема:
Код
Если DI_1 = 1 DI_2 = 0 - зелёный цвет;
Если DI_0 = 1 DI_2 = 1 - серый цвет;
Если DI_1 = 1 DI_2 = 1 - красный цвет;
Если DI_1 = 0 DI_2 = 0 - серый цвет, жёлтое моргание;
Пишем скрипт (листинг ниже) и подвязываем его на оба события по основному и дополнительному тэгу. С приведённым листингом - объект изображение отрабатывает правильно по цветовой схеме, а вот клапан - нет.
Клапан работает двояко: если был сигнал DI_1 = 0, DI_2 = 1, пришло событие DI_1 = 1 - клапан становится зелёным (так не должно быть), а изображение - красным (как и положено).
Если был сигнал DI_1 = 1, DI_2 = 0, пришло событие DI_2 = 1 - клапан становится карсным как и положено.
Другие переменные на клапан не подвязывались.

Листинг:
Код: (delphi)
var
Color1_0, Font1_0, Color0_1, Font0_1, Color1_1, Font1_1, Color0_0, Font0_0, Flash1_1, Flash0_0:  Cardinal;
begin
Color1_0 := $00CE00;    //Green
Font1_0  := clBlack;
Color0_1 := clLightGray;
Font0_1  := ClBlack;
Color1_1 := ClRed;    //Green
Font1_1  := clBlack;
Color0_0 := clLightGray;
Font0_0  := clBlack;
Flash1_1 := ClNone;
Flash0_0 := clYellow;
//Если вызвавший объект - изображение
if Sender is TM_Image then
  with Sender as TM_Image do
    begin
      if  ((Variable.AsBool = true) AND (VariableEX.AsBool = false)) then
        begin
        Alpha := 255; Color := Color1_0;
        FlashColor := clNone;
        end;
      if  ((Variable.AsBool = false) AND (VariableEX.AsBool = true)) then
        begin
        Alpha := 255; Color := Color0_1;
        FlashColor := clNone;
        end;
      if  ((Variable.AsBool = true) AND (VariableEX.AsBool = true)) then
        begin
        Alpha := 255; Color := Color1_1;
        FlashColor := Flash1_1;
        end;
      if  ((Variable.AsBool = false) AND (VariableEX.AsBool = false)) then
        begin
        Alpha := 255; Color := Color0_0;
        FlashColor := Flash0_0;
        end;
    end;
//Если вызвавший объект - клапан
if Sender is TM_Valve then
  with Sender as TM_Valve do
    begin
      if  ((Variable.AsBool = true) AND (VariableEX.AsBool = false)) then
        begin
        Alpha := 255; Color := Color1_0;
        FlashColor := clNone;
        end;
      if  ((Variable.AsBool = false) AND (VariableEX.AsBool = true)) then
        begin
        Alpha := 255; Color := Color0_1;
        FlashColor := clNone;
        end;
      if  ((Variable.AsBool = true) AND (VariableEX.AsBool = true)) then
        begin
        Alpha := 255; Color := Color1_1;
        FlashColor := Flash1_1;
        end;
      if  ((Variable.AsBool = false) AND (VariableEX.AsBool = false)) then
        begin
        Alpha := 255; Color := Color0_0;
        FlashColor := Flash0_0;
        end;
    end;
end.
P.S.: у нас приобретены лицензии Simple Scada 2.2.7.1. версии Professional (с расиренной техподдержкой, ФКП "Комбинат "Каменский").
Просим также прислать последниие версии скады (ссылки наскачивание) на наш email.

2
Цитировать
Уточните, в какое расположение установлена скада?
Исходя из руководства, скада установки не требует. Папка со скадой находится на рабочем столе (так же пробовал C:\Simple-Scada\). Запускать просто или от имени администратора разницы нет (по крайней мере не было замечено). Имя проекта не содержит кириллицу.
Параллельно общаюсь с разработчиками OPC-сервера, выслал им логи работы сервера. Чтоб им дополнить картину, можно где-то взять логи OPC-клиента? Чтоб подробнее понять в какой момент происходит сбой.

3
Цитировать
Как Вы производите запись из скады? Вводите значение через поле, или нажимаете какую-то кнопку?
Ввожу значение в поле, пробовал тип BOOL и REAL, при этом тонкая рамка вокруг поля мерцает, а запись не происходит. Данные из контроллера продолжают отображаться.

Цитировать
Вы уверены, что у скады достаточно прав на взаимодействие с OPC-сервером и что она не блокируется файрволлом/антивирусом или другим ПО?
Да, так как при запуске в последовательности: ручной запуск OPC-сервера  ->  Сервер СКАДЫ от админа  ->  Клиент от админа   - все работает нормально.
Если запустить Клиент от админа  -> он запускает сервер СКАДЫ  -> он запускает OPC-сервер, то запись не происходит (рамка вокруг поля мерцает).

Цитировать
Если запускать сервер скады от имени администратора, то ничего не меняется?
Изменений замечено не было.

4
Доброго времени суток. Столкнулся с такой ситуацией: руками запускаю OPC-сервер, затем СКАДУ, значения принимаются скадой и передаются через OPC  в контроллер.
Если сразу запустить СКАДУ (Клиент), она сама запускает OPC-сервер, чтение данных из него происходит, а вот записать из СКАДЫ в контроллер и OPC не получается.
СКАДА v2.2.2.0. OPC-сервер от производителя контроллера (Regul OPC DA Server v1.0.0.22). В их техподдержке сказали что от клиента нет запроса на запись переменной, при запуске сервера клиентом. Соединение между контроллером и OPC-сервером осуществлено по Ethernet.
С помощью arOPC возможно подключение только по modbus? Какое устройство необходимо выбрать при добавлении?

5
- [ ] Возможность рисовать линии по диагонали.
+1

6
Очень актуальный вопрос о многомониторных системах. На довольно крупных предприятиях (с большими или распределенными технологическими процессами) часто стоит задача одновременного отображения к примеру техпроцесса и трендов с важными/критическими параметрами. В таком случае спасают 2х, а то и 3х мониторные системы. Считаю это необходимость для современной SCADA, а так же возможность конвертации предыдущих версий проектов в последующие.
P.S. Simple SCADA еще не используем, но внимательно рассматриваем.

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