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

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

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

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


Сообщения - TeNQ

Страницы: [1] 2 3 ... 14
1
Создаете кнопку. В ее свойствах выбираете тип - Без фиксации. Далее переходите на события. Выбираете событие OnClick (оно вызывается всякий раз, когда вы нажимаете на данную кнопку). И там прописываете сброс переменной vrCount
Код
begin
  vrCount.Value := 0;
end.
Для красоты можете зайти в свойствах кнопки в ее состояния и изменить в поле Текст надпись на кнопке Включить/Выключить на Сброс.

2
Ваши вопросы / Re: OPC-UA server от Insat
« : 07 Августа 2018, 14:03:07 »
Все, разобрался, подключился.
Меня немного сбило столку localhost. У меня OPС сервер стоит не на локальной машине, поэтому  это естественно не сработало. Ввел IP адрес удаленной машины, все работает. Единственное что неудобно. В редакторе переменных можно добавить сервер, а удалить или отредактировать настройки после добавления нельзя. Надо выходить в меню OPC-серверы и только там. Это не очень удобно.
Еще один момент возник. Я настроил доступ без пароля для упрощения. Потом включил пароль на OPC-сервере и ничего не меняя на стороне скады, получил теги из OPC-сервера, хотя по идее не должен был. Но с нюансами буду потихоньку разбираться.
Спасибо вам за помощь.

3
Ваши вопросы / OPC-UA server от Insat
« : 07 Августа 2018, 13:23:05 »
Я обновил MasterOPC Universal Modbus server с версии 3 до 4, потому что там заявляется поддержка OPC-UA. Я попробовал связать его с SimpleScada, но столкнулся с тем, что мне не хватает данных. MasterOPC не предоставляет EndPoint Url. Так же не позволяет выбрать вид шифрования, а какой стоит и стоит ли неизвестно. Я понимаю, что все эти вопросы скорее стоит задавать разработчику OPC-server`а и я это сделаю, но может есть какие то универсальные способы.

4
Сделал все как в примере. при изменении переменной ничего не происходит. но если переменную добавить в свойства поля то он начинает считать и при этом я ничего не изменяю в переменной.

begin
 Field1.Value := Var1.Value +  100
end.

Вы создали замкнутый на себя бесконечный цикл. Первоначальный запуск происходит по изменению переменной Var1. Далее меняется значение Var1 на + 100, так как вы ее привязали к полю Field1. Поскольку значение Var1 изменилось, срабатывает скрипт по изменению Var1 и так до бесконечности.

Вам нужно создать в редакторе переменных три переменные.
Var1 - ваша переменная привязанная ко входу контроллера. Тип Boolean
vrCount - виртуальная переменная, которая будет содержать кол-во подсчитанных импульсов со счетчика
vrLiters - виртуальная переменная, которая будет преобразовывать кол-во подсчитанных импульсов в литры для отображения в поле.

Создаете поле и присваиваете ему переменную vrLiters.

И создаете 1 скрипт по изменению переменной для переменной Var1
Код
begin
  if var1.AsBool = true then
    vrCount.Value := vrCount.AsInt + 1;
  vrLiters. Value := vrCount.AsInt * 100;
end.
В тесте роль входа контроллера играла кнопка.


5
Ваши вопросы / Re: Перенос отчета
« : 01 Августа 2018, 16:43:59 »
Цитировать
Как мы поняли ошибка возникает независимо от отчета. Т.е. если на рабочем ноутбуке создать новый отчет и пытаться строить его, то ошибка тоже выдаётся?
Создал на рабочем ноутбуке новый периодический отчет с одной переменной. Он также не создался и ошибки в логе те же.
Проверить с еще одним ПК можно, но там придется все устанавливать с нуля: скаду, OPC, MySQL и тд. Т.е. это не быстро. И там другая ОС- WinXP.
Проект вышлю.

Попробовал скомпилировать новый периодический отчет на рабочем ноутбуке и получил ошибку. При попытке получить данные в отчет - также ошибка. С рабочим отчетом все то же самое.

Все, проблема решилась благодаря тех. поддержке SimpleScada. Все оказалось просто. Стоял запрет на доступ к папке C:\Windows\Temp. Спасибо вам!
С другой стороны предложение. А зачем использовать для работы скады системные папки, когда для промежуточной компиляции отчета вполне достаточно внутренней папки в проекте?

6
Ваши вопросы / Перенос отчета
« : 01 Августа 2018, 15:05:50 »
У меня есть личный ноут, на котором я создавал и проверял работу проекта, включая работу с отчетом. Перенес на рабочий ноут проект, пересохранил в редакторе и запустил. И отчет не формируется. В логе сервера формируется ошибка, касающаяся пути. Проекты установлены на ноутах в разных папках. Но отчет ведь создается без относительно пути командой.
Код
ReportExportAll('Отчет по КПДС', AFileName, rfPDF);
Все остальное работает нормально: архивные тренды, сообщения все пишется и работает. Только с созданием отчета возникла проблема.

7
Здравствуйте.
Можно ли переделать процесс копирования переменной в редакторе переменных? Каждый раз, если  долго не пользуюсь редактором скады, я ищу иконку скопировать или пробую нажать Ctrl + c и только потом вспоминаю, что нужно зайти в Изменить переменную и только там есть кнопка Дублирование. К этому можно привыкнуть и при длительном использовании не замечать, но все равно это нестандартная процедура.

Поиск по скрипту. Можно ли сделать так, чтобы нажатие на стрелку вниз/вверх автоматически подтверждало уже введенное ключевое слово, без необходимости выделять каждый раз поле ввода при смене скрипта и начинало поиск?

Вопрос. Мелочь, но все же. В русской раскладке нажимая Shift + "3", должен выйти символ №. В редакторе же почему-то выводится пробел.

8
А что если сделать проще? Добавить процедуру выдающую ID группы по номеру ее позиции.
Почему я думаю, что это будет востребовано. Допустим у вас есть 1000 групп сообщений и задача добавить во все группы сообщение формирующееся по факту. Создавать отдельный список внутренних переменных в кол-ве 1000 шт? А имея возможность получить ID по номеру позиции - один цикл и готово.

9
Цитировать
Добавить можно, но будет ли пользоваться этой функцией кто-то ещё.
Я не знаю, за других гадать не буду.
Просто любая попытка автоматизировать обращение к группам приведет к необходимости создавать ту самую таблицу соответствия из-за самого принципа раздачи ID. Тогда как она уже существует в виде Позиции группы. Она всегда идет от 1 до N, группы всегда можно расположить в нужной последовательности. Нужно лишь иметь инструмент для обращения к ней. Впрочем, я не настаиваю. Это было предложение.

10
Здравствуйте.
Есть такая procedure AddMessageToGroup(ATime: TDateTime; AKind: TM_MessageKind; AGroupID: Integer; const AText: string; AUnconfirmed, ASound: Boolean); И у меня возникла с ней проблема.

Дело в том что она обращается к группе сообщений по ID. А я, например, создал группу Прибор 1. У нее будет ID=1, Прибор 2 - ID = 2, соответственно. Все прекрасно. А потом я создал группу Прибор 3. И удалил. Случайно, не случайно неважно. А потом понадобилось добавить еще группы. И теперь создать группу для Прибора 3 я могу только с ID = 4. Потому что ID=3 когда то был использован. Править ID я не могу.  Обращаться в цикле создавая сообщения в группах теперь проблема. Записывать сообщения в группу, считая что ID = номер прибора, также теперь не могу.

Можно ли добавить такую же процедуру, но с возможностью записи в группу по Позиции?  Тут придется смещать номер позиции на 1, потому что первая группа начинается со 2 позиции,  но в остальном все предсказуемо.

11
Ваши вопросы / Re: Отчеты
« : 18 Июня 2018, 13:42:21 »
Цитировать
В Вашем случае тренды ступенчатые и правильнее использовать тип "Точное"
Попробовал, получилось то что надо. Я значит не разобрался в описании, прощу прощения.

12
Ошибки / Re: "Мелкие" ошибки
« : 18 Июня 2018, 12:57:03 »
Руководство по отчетам. https://simple-scada.com/help/report/index.html
Ошибка в описании.
•последнее значение - возвращает последнее значение входящее в интервал;
•первое значение - возвращает последнее значение входящее в интервал;

13
Ваши вопросы / Re: Отчеты
« : 18 Июня 2018, 12:52:07 »
Цитировать
Источник данных с типом "Периодический" работает на самом деле очень просто.
Я читал ваше руководство и более или менее понимаю как все это устроено. И я привел пример с построением тренда из полученных данных в отчете, с целью выявить проблему. Как мне кажется, вы должны создавать из данных в БД промежуточную таблицу с учетом ваших алгоритмов записи в БД, восстанавливая данные до исходных. Брать готовый встроенный способ восстановления который есть в системе отчетов я не смогу. Если я использую интерполяцию, то у меня получится такая же ерунда.
Вот есть у меня источник данных по-изменению. В отчет попадает три точки. Интервалов же в отчете намного больше чем три. И в большую часть интервалов точки вообще не попадают. Восстановите эти три точки до прямых и уже тогда берите данных для интервалов в построении отчета с учетом этого. И тогда там будут не нули, а реальное значение которое вы просто выбросили, потому что зачем писать в БД одно и то же значение. 
И да, я могу отказаться от режима архивации по-изменению и писать в БД все по времени. Но тогда зачем нужны эти алгоритмы сжатия и высвобождения полезных ресурсов если для создания конечного продукта - отчета, от них нет никакого толку, а только вред.
Про 100 и 99.29. Не знаю, надо разбираться. Я вам выслал, то что у меня реально получилось, у меня глаз зацепился за это несоответствие, а как оно создалось понятия не имею.

14
Ваши вопросы / Re: Отчеты
« : 18 Июня 2018, 11:26:27 »
Да, вышлю. Но у меня возникли другие вопросы. Во-первых, я запустил тот же самый проект, с тем же самым отчетом, который не создавался из проекта. И он создался. А ведь ничего не изменилось, кроме того что я выкл./вкл. компьютер.
По отчету. Источник данных периодический некорректно отображает данные. Точнее абсолютно корректно читает их из БД. Я помню и раньше так было, но я не согласен что это правильная работа системы отчетов. Вы то пишите в БД используя алгоритмы сжатия. Мне как пользователю видится эта система как черный ящик, мне все равно что там происходит. На выходе должны быть восстановленные данные соответствующие оригиналу. Почему для визуального отображения тренда вы восстанавливаете данные. Я специально снял ролик с визиром. А для отчета пишите как "есть". Постройте по вашим данным из отчета тренд и вы поймете какая ерунда получилась.
И еще один вопрос. По визиру в момент времени 10.41.07 значение выхода 99.29. В отчете же последнее значение за этот период 100. Как ни округляй из 99.29 ста не получишь.

15
Ваши вопросы / Re: Отчеты
« : 14 Июня 2018, 15:42:55 »
Здравствуйте.
Пытаюсь создать динамический отчет и пока не получается. При работе в проекте он не создается. И у меня возникла пара вопросов. При запущенном проекте, я нажимаю "Получить данные" в Редакторе отчетов и получаю ошибку - "Файл не найден ...". Что это? При этом, нажимаю "предварительный просмотр" и отчет строится с данными.
P.S. С этим вопросом разобрался. У переменной, которую я создал для получения ID в третьей колонке было включено масштабирование от 0 до 100 - создавал ее дублированием и не заметил. Поэтому третья колонка была пустой, т.к. ID очевидно не находился. Убрал масштабирование, ошибка пропала, все три колонки заполнились данными. Но отчет так и не появляется при создании в проекте - буду дальше разбираться.
Второй вопрос. Я удаляю динамическую колонку vrTRM_Input1 из источника данных в словаре. Но захожу в Действия-Редактор ссылок и там привязка остается. Удаляю и здесь. Пытаюсь добавить снова переменную vrTRM_Input1 как динамическую колонку в тот же источник и получаю ошибку - "Необрабатываемое исключение.." А это что?

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