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

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

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

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


Сообщения - gaargot1

Страницы: [1] 2
1
Здравствуйте.
Подскажите пожалуйста, можно ли в отчёте получить следующее:
На пример есть периодический источник данных.
В этот источник добавлена переменная с типом обработки "максимум", получить "время".

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

2
В общем разобрался. Получается, что функция GetVariableByName не возвращает nil в случае неудачи.
Потому, что если добавить aVar:=nil; то всё работает корректно:
Код: (delphi)
procedure allfeeders(aPrefix:string; StartStop:byte; aK:integer);
var
  i: integer;
  aVar: TM_Variable;
begin
  for i := 1 to aK do
  begin
    aVar:=nil;
    aVar := GetVariableByName(aPrefix+intToStr(i));
    if aVar <> nil then aVar.value:=StartStop;
  end;
end;

3
Добрый день,

Как при наступлении определенных условий проиграть несколько звуковых файлов подряд?
Код: (delphi)
if temp100.value = 10 then
  begin
    PlayUserSound("brew",'1.ogg',false);
    PlayUserSound("brew",'2.ogg',false);
    PlayUserSound("brew",'3.ogg',false);
  end;
 
при таком написании воспроизводится только файл 3.ogg
Тоже ломал голову, как не используя таймеры озвучивать динамические сообщения.
Решил не проигрывать аудиофайлики средствами скады, а генерировать строку в зависимости от событий и проигрывать этот текст через внешнее консольное приложение

4
Какая из переменных изменилась в 8:15:22 ?

5
Я специально приложил скриншот. Не было изменений ни в одной переменной, а строк на страницу.

6
Здравствуйте. Может кто знает, как победить такой эффект.
Есть задача включать и отключать кнопки по времени.
По нескольку десятков кнопок в проекте скады и соответственно переменных в каждой кнопки в ПЛК100.
При достижении времени при помощи перебора отправляю в переменные 1 либо 0.

В результате произвольно несколько штук либо не включаются либо не отключаются.

Вызов процедуры перебора из посекундного скрипта:
Код
if TimeToStr(now)='17:00:00' then
  begin
   AllFeeders('PLC8_plc_prg_stp',1,32);
   AllFeeders('PLC9_plc_prg_stp',1,32); 

Перебор происходит в глобальном модуле:
Код
procedure allfeeders(aPrefix:string;StartStop:byte;aK:integer);
var
i   :integer;
aVar:TM_Variable;
begin
for i:=1 to aK do
  begin
  aVar := GetVariableByName(aPrefix+intToStr(i));
  if aVar <> nil then aVar.value:=StartStop;
  end;
end;
     

7
Здравствуйте. Что-то не могу разобраться, почему так много строк выводится в отчете.
Есть переменные, архивируются по изменению.
Зона нечуствительности 1%
В отчёте выводятся строки вообще без изменений.

8
Цитировать
В ближайшем обновлении все звуки будут воспроизводиться независимо от того находится окно в фокусе или нет
ок спасибо!

Для тех кому надо срочно, скрипт на PowerShell

Код
$sig = '[DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);'
Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32
$hwnd = @(Get-Process Client)[0].MainWindowHandle
[Win32.NativeMethods]::ShowWindowAsync($hwnd, 4)
(New-Object -ComObject WScript.Shell).AppActivate((get-process Client).MainWindowTitle)

9
Вопрос актуален. Не появилось ли способов звукового оповещения когда клиент не в фокусе или программного "всплывания" клиента?

10
Спасибо большое

11
Подскажите кто в курсе. Куда тут нажать, что бы появилась внизу вкладка "словарь" как в инструкции.
Про инструкцию я знаю, нет у меня таких вкладок и пунктов, как в инструкции

12
Ваши вопросы / Re: Работа функции startPing
« : 02 Апреля 2020, 13:13:21 »
Вот я прошляпил свойство failcounter. Спасибо, это решает.

13
Ваши вопросы / Работа функции startPing
« : 02 Апреля 2020, 10:52:53 »
Здравствуйте. Можете посоветовать, чё с этим делать?
При старте проекта начинаю пинговать ПЛК.
Код: (delphi)
...
  StartPing('хххххххххх',5000,Subpage1);
  StartPing('хххххххххх',10000,Subpage2);
  StartPing('хххххххххх',5000,Subpage3);
...
Процедура обрабатывающая результат выглядит так:
Код: (delphi)
begin
if PingData.Sender = nil then Exit;

    if PingData.Sender is TM_SubPage then
      with PingData.Sender as TM_SubPage do
        begin
          if PingData.Result then
            Color:=clNone                 //есть пинг
              else
                 begin
                  Color:=clRed;           //нет пинга
                  crash_(GetSubpageByName(Name));
                 end;
        end
end.
Одна из 15 опрашиваемых плк вызывает пару раз в минуту срабатывание "отсутствия пинга". Увеличивал таймаут, результат тотже. Во вложении пинг этой плк. Самые долгие ответы - 10Мс.


15
Сейчас использовал глобальный модуль для объявления этой переменной. И в других процедурах теперь всё работает в виде
Код
pathtosound[0]:='Цех3.ogg';

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

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