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

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

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

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


Сообщения - Серега

Страницы: 1 ... 9 10 [11] 12 13 ... 20
151
Ваши вопросы / Ключи лицензии и сервер
« : 18 Января 2021, 09:22:17 »
Добрый день!
На данный момент ключи лицензий подключены к серверу SCADA через USB Anywhere.
При кратковременной потере связи по сети – сервер скада сообщает что ключ не обнаружен и виснет.
Теперь вопросы:
1.   С какой периодичностью SimpleScada проверяет ключ лицензирования.
2.   Можно ли увеличить этот интервал проверки.
И предложения:
1. Сервер потерял ключ – останавливает операции и продолжает проверять наличие ключа.
2. Когда ключ обнаруживается – возобновляет выполнение операций.
Жду вопросов и предложений.

152
Добрый день!
В проекте все таки нужно нам отслеживать состояние клиента. Данная функция обеспечивает функциональную безопасность комплекса (как материальную так и людскую).
В ходе поиска решений наткнулся на недокументированную команду GetClientData:TM_ClientData.
1. Где почитать о ней?
2. С помощью GetClientName (или GetClientData.Name думаю то же) можно узнать имя клиента. Но там где его на мое личное мнение можно использовать в справке написано:
Цитировать
Важно! Данная функция не работает при вызове из события "OnDataChange", а также при вызове из системных типов событий "Запуск проекта", "Остановка проекта", "Выполнен SQL-запрос", "Прошла секунда", "Прошел час", "Отчет построен".
Только через универсальный, можете объяснить с чем это связано?
Как бы возникла мысль, что зная, например, количество подключенных клиентов и периодически проверяя их количество, зная их имена (в настройках можно задать различные) можно понять какой клиент отвалился.
3. Да понимаем, что запрос индивидуальный. Может подскажите какое-то решение? Или может быть расширите параметры класса GetClientData и добавите GetClientData.Status:Integer (например 0 - не подключен, 1 - работает/подключен, 2 - в ошибке и т.д.).
Жду вопросов и предложений!

153
Ваши вопросы / 2 версии Simple Scada
« : 27 Ноября 2020, 12:13:31 »
Добрый день!
Вопрос простой. Можно ли установить 2 версии (например 2.4.0.6 и 2.4.0.11) на одной физической машине.
Для чего это надо. Есть рабочая версия (2.4.0.6). Ее надо поддерживать. Но в новой произошли улучшения и надо в них разобраться и попробовать. Обновить рабочую версию до новой не всегда удается сделать быстро. Поэтому получается что надо чтобы была и версия 2.4.0.6 для поддержки до момента обновления и версия 2.4.0.11 для изучения и тестирования.
Надеюсь понятно объяснил.
Жду ответа.

154
Добрый день!
Есть инструмент в виде "Цветовая схема" и пункт "Пользовательская".
Есть свойства страницы "Цвет" и свойство "Цвет подстраницы".
Можете сделать отдельно свойство для фона подстраницы, не там где надпись, а где идет основная часть мнемосхемы.
А так получается выбираем цветовую гамму, тем самым обеспечивая нужный фон. А потом с помощью свойств меняем цвет фона надписей страниц и подстраниц. А если их этих страниц много.
Можете пояснить?

155
Добрый день!
Начнем с уровня. Заметил если изменить ширину или высоту поля при включеной опции отображения поля, то в самом примитиве на мнемосхеме меняется размер шрифта, но в свойствах нет. Лечиться повторным выбором размера шрифта.
Далее по шаблонам. В прикрепленных картинках видно что текст выходит за границы окна. Окно простое, не шаблон.
Надеюсь так же видно, что идет смещение шаблонов по вертикале от верха окна. При увеличении границ окна проблема решается.
Проверьте у себя.

156
Ваши вопросы / Таблицы и TM_DataSet ч.2
« : 20 Октября 2020, 13:48:53 »
Добрый день!
В ходе экспериментов наткнулся на ситуацию.
1. Формируем запрос в БД и вешаем на кнопку универсальный скрипт.
2. Таблица заполняется данными.
3. Создан скрипт по изменению значения переменных (2 генератора, один на ОРС сервере, второй секундный скрипт), где повторяется шаг 21 для разных таблиц:
Код
case TU4430M01_001_State_v.Value of
0 :
  begin
    if TU4430M01_001_StartLoad_v.Value = 1 then
    begin
      TU4430M01_001_State_v.Value := 1;
      TU4430M01_001_StartLoad_v.Value := 0;
      TU4430M01_0011RCS000_wProfileCmd_Set.Value := $0FFF;
    end;
  end;

 //*************************************  ЗАГРУЗКА ГЕОМЕТРИИ  **********************************************
1 :
  begin
    if (TU4430M01_0011RCS000_wProfileCmd_Set.Value = $0FFF) AND (TU4430M01_0011RCS000_wProfileCmd_Get.Value = $0FFF) then
    begin
      TU4430M01_001_State_v.Value := 21;
      TU4430M01_0011RCS000_wProfileCmd_Set.Value := 0;
    end;
  end;

21 :
  begin
    // --- проверка на совпадение количества строк в выбранной таблице, если выбрана другая таблица обнуление счетчика ---
    if tblGeometryWays.RowCount <> RowCountGeoOld then
    begin
      TU4430M01_001_State_v.Value := 0;
      TU4430M01_0011RCS000_wProfileCmd_Set.Value := $FFFF;
      Exit;
    end;
    //  ---
    if TU4430M01_0011RCS000_wProfileCmd_Get.Value = (tblGeometryWays.RowCount - 1) then
    begin
      TU4430M01_0011RCS000_wProfileCmd_Set.Value := $1FFF;
      TU4430M01_001_State_v.Value := 22;
    end
    else
    begin
      // присвоение значений из таблицы переменным Set
      if TU4430M01_0011RCS000_wProfileCmd_Get.Value = TU4430M01_0011RCS000_wProfileCmd_Set.Value then
      begin
1строка ->  TU4430M01_0011RCS001_iProfile_Set.Value := 10*StrToFloat(UTF8ToString(tblGeometryWays.Columns(1).Cells(TU4430M01_0011RCS000_wProfileCmd_Set.Value+1).Text));  // скорость
        TU4430M01_0011RCS002_iProfile_Set.Value := 10*StrToFloat(UTF8ToString(tblGeometryWays.Columns(2).Cells(TU4430M01_0011RCS000_wProfileCmd_Set.Value+1).Text));  // ускорение
        TU4430M01_0011RCS003_iProfile_Set.Value := 10*StrToFloat(UTF8ToString(tblGeometryWays.Columns(4).Cells(TU4430M01_0011RCS000_wProfileCmd_Set.Value+1).Text));  //замедление
        TU4430M01_0011RCS004_iProfile_Set.Value := 10*StrToFloat(UTF8ToString(tblGeometryWays.Columns(5).Cells(TU4430M01_0011RCS000_wProfileCmd_Set.Value+1).Text));  //рывок
        if (TU4430M01_0011RCS001_iProfile_Get.Value = TU4430M01_0011RCS001_iProfile_Set.Value)
        and (TU4430M01_0011RCS002_iProfile_Get.Value = TU4430M01_0011RCS002_iProfile_Set.Value)
        and (TU4430M01_0011RCS003_iProfile_Get.Value = TU4430M01_0011RCS003_iProfile_Set.Value)
        and (TU4430M01_0011RCS004_iProfile_Get.Value = TU4430M01_0011RCS004_iProfile_Set.Value) then
        begin
          TU4430M01_0011RCS000_wProfileCmd_Set.Value:= TU4430M01_0011RCS000_wProfileCmd_Set.Value + 1;
        end;
      end;
    end;
  end;
...
Первая строка вызывает достаточно часто на сервере ошибку следующего содержания:
Код
"Ошибка в скрипте "LoadData" в строке 101. Access violation at address 0113A04A in module 'Server.exe'. Read of address 00000034"
.
Если перед ней и после нее поставить
Код
AddMessage(Now, mkMessage, 'до' + TU4430M01_0011RCS001_iProfile_Set.Value, True, False);
и
Код
AddMessage(Now, mkMessage, 'после' + TU4430M01_0011RCS001_iProfile_Set.Value, True, False);
то если на сервере подряд мы наблюдаем выше описанную ошибку 3 раза, то на клиенте мы видим сообщения
до 200
до 200
до 200
до 200
после 300
...
Создается такое впечатление, что мы не можем какое то время получить данные, что и вызывает эту ошибку.
Возможно то, что у нас 2 генератора меняются. Но скрипт по  изменению для этого и предназначен.
В общем может дадите направление?
       

157
Ваши вопросы / Re: Пользователи и тренды
« : 20 Октября 2020, 11:43:23 »
Добрый день!
Заметили одну особенность. У нас четыре монитора. 1 и 2 для скады, 3 и4 для видео.
Так вот если на одном экране тренды нельзя выбрать, то на втором можно. После чего и на первом то же можно выбирать.
Во вложении принт как вы просили. Видны отключенные тренды и те которые пытаемся открыть. Это происходит во всех группах скриптов.
При смене пользователя в клиенте то же не получается выбрать тренд даже с максимальным доступом для разработчика.
Запустили клиент под расширенными правами администратора клиент почему то запустился не в многомониторном режиме, но тренды начали выбираться. После запуска клиента в обычном режиме тренды начали запускаться.
Будем следить дальше.


158
Ваши вопросы / Re: Ввод переменных типа single
« : 20 Октября 2020, 10:53:19 »
Перегрузили полностью сервер и сам физически и сервер скады. Ошибка ушла.

159
Ваши вопросы / Re: Ввод переменных типа single
« : 20 Октября 2020, 10:20:59 »
Добрый день!
По поводу вопросов:
Цитировать
У переменной включена визуальная шкала или смещение запятой?
Нет
Цитировать
Какая именно версия скады используется?
2.4.0.6
Цитировать
Вводите через обычный клиент, или web?
Через обычный
Цитировать
Поле работает со значением переменной или с аварийными/предупредительными границами?
со значением

160
Ваши вопросы / Ввод переменных типа single
« : 19 Октября 2020, 16:00:03 »
Добрый день!
После последних обновлений до 2.4. ...
В поле с переменой типа Single не могу ввести дробную часть числа.
Выскакивает сообщение "Нужно ввести число. Вы ввели 45.8!"
Но я хочу ввести 45.8.
Я вводил на русском на английском и точку и запятую
Ни в какую. Просто 45 вводиться.
Убрал шкалу то же самое.
Натолкните на мысль.

161
Ваши вопросы / Скрипт по изменению
« : 19 Октября 2020, 11:46:51 »
Добрый день!
Столкнулись с проблемой при передаче данных в ПЛК.
Что заметили.
Есть таблица, заполненная значениями через Table.RunSQL().
Берем строку, парсим и соответствующим переменным присваиваем значение. Отсылаем в ПЛК.
Ждем ответа от ПЛК. Пришел правильный ответ передает следующую строку.
И вот при анализе ответа возникает не понятная ситуация.
Возьмем для примера переменные SET и GET.
В ОРС  SET и GET с одинаковым значением, но в поле вывода на клиенте имеют разные значения.
Далее мы так думаем срипт видит что значения разные, хотя в орс одинаковые, и далее по алгоритму происходит ошибка.
Можете дать пояснения?

162
Ваши вопросы / Делаем пилу часть2
« : 19 Октября 2020, 11:34:22 »
Добрый день!
Как Вы советовали сделали 1 секундный скрипт по изменению переменной:
Код
begin
 if iTestCommunication.Value < 100 then
    iTestCommunication.Value := iTestCommunication.Value + 1
 else
    iTestCommunication.Value := 0;
end.
Далее по переменной iTestCommunication в скрипте по изменению переменной делаем:
Код
010CMS000_iSCADAdisHeartbeat_Set.Value := iTestCommunication.Value; 
020CMS000_iSCADAdisHeartbeat_Set.Value := iTestCommunication.Value;
Почему так не знаю. так сделано. Значения оправляются в разные ПЛК.
И на картинке мы видим какой-то провал. И такие провалы периодически повторяются постоянно в любое время. При этом на ОРС сервере (на отдельной машине) в момент провала качество сигнала переходит в BAD. Да и как то вид не очень прямолинейный. На картинке элемент временного тренда.
Можете пояснить.

163
Ваши вопросы / Пользователи и тренды
« : 15 Октября 2020, 11:40:32 »
Добрый день!
Столкнулись с проблемой.
Под любым пользователем (оператор, разработчик, испытатель) на АРМах нельзя просмотреть тренды.
Поясню. Создана в проекте группа трендов, изменяемая, и одна группа не изменяемая.
Заходим в инструмент тренды. В открывающемся списке по идее выбираем нужный тренд и ... не можем его выбрать для отображения. В то же самое время на другой физической машине можно выбрать.
Если на первом АРМе выбрать неизменяемую группу трендов то они отображаются.
Перезагрузка сервера иногда помогает, иногда нет.
СКАДА версия 2.4.0.6. Доступ у всех пользователей ко всем трендам есть. Связь с базой из редактора устанавливается.
На сервере видно база подключена. Доменная сеть со всеми правами и прокинутыми портами.
Жду вопросов и пояснений

164
Ваши вопросы / Re: Таблицы и TM_DataSet
« : 07 Октября 2020, 11:05:26 »
Добрый день!
Не много пошел другим путем, но тоже через кнопку.
При переходе на экран загрузки блокировать или нет кнопку со скриптом по нажатию зависит от имени клиента.
Это позволяет ограничить запуск процедуры загрузки одним клиентом.
Дальше пока эксперименты.
Ну и ждем ответа от разработчиков.

165
Ваши вопросы / Таблицы и TM_DataSet
« : 06 Октября 2020, 11:57:26 »
Добрый день!
Ситуация.
На клиенте №1 с 2 мониторами, на мнемосхеме отображенной на первом мониторе в таблице с помощью метода таблица.RunSQL (...) получаем нужный DataSet для объекта №1 в состоянии №1 и отображаем его в таблице.
Далее с помощью свойств и методов таблицы через внешние переменные построчно грузим данные в ПЛК.
Все работает грузиться замечательно.
Если в процессе загрузки открыть мнемосхему с данной таблицей для объекта №1 в состоянии №2 на мониторе №2, то загрузка продолжиться уже с данными из вновь сформированного DataSet для состояния №2.
Заметили протестировали. Тоже самое происходит если это сделать на разных клиентах.
Есть процедуры работы с DataSet и отдельно процедура RunSQL с идентификатором. Есть разные пользователи, но тут нюанс что при одном пользователе это происходит тоже.
Пытаемся придумать способ контроля что сейчас грузиться с помощью внутренних переменных типа массив, так как в ряде тем сказано, что внешние переменные типа массив предназначены только для чтения.
Но вот как то процесс буксует. Можете сказать как правильно контролировать или реализовать механизм.
Если что-то вызывает вопросы задавайте.

Страницы: 1 ... 9 10 [11] 12 13 ... 20