Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.09.2020, 01:24   #1
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Косяки, непонятки и хотелки по историческим данным

Вот и у меня дошел ход до исторических данных, сразу возникли вопросы.
Лоджик 3.32.0114, SMH4 - форматнутый.


1. Косяк с отчетами

Исходное положение:
Блок History пишет 5 параметров по триггеру.
Загружаем программу в контроллер, делаем триггером 1 запись.
Формируем отчет - все хорошо, видим одну запись.
Делаем триггером вторую запись.
Формируем отчет - все хорошо, видим две записи.



Позишн намбер ту:
Та же программа, тот же блок, те же параметры по тому же триггеру.
В свойствах блока ставим использование фильтра "==" на один из параметров (с другими фильтрами не пробовал).

Загружаем программу в контроллер, делаем триггером 1 запись.
Формируем отчет(да, конечно, на входе для фильтра задаем правильное значение, чтобы нашлась именно нужная запись) - все НЕ хорошо. В начале таблицы видим четыре пустых строки, только поле дата/время заполнено, остальные поля пустые. И только пятой строкой идет наша единственная запись, которую мы сделали. Число на выходе Count соответствует числу строк - 5.

Делаем триггером вторую запись. Значения записываемых параметров другие.
Формируем отчет(да, конечно, на входе для фильтра задаем правильное значение, чтобы нашлась именно нужная запись) - все также НЕ хорошо, иногда еще хуже.

Далее имеем два варианта, закономерности проявления варианта 2 за пару-тройку десятков проб не уловил.
Вариант 1 - те же пустые 4 строки и под ними наша искомая.
Вариант 2 - те же пустые 4 строки, но под ними у нас теперь 2-3 строки, содержащих нужную нам запись(которая у нас всего одна такая вообще-то), все поля идентичны, кроме поля "дата/время" - в нем отличаются миллисекунды).
Отчеты смотрел в SMArt-овском диспетчере отчетов.



2. Вход row number.
Не уверен, что правильно понял из справки - это номер строки из сделанной для отчета выборки, значения из которой будут на выходах? Со смещением 2, то есть при значении на этом входе "0" выводятся значения из первой строки данных, которая в самом отчете числится под номером 2?
А как быть, если в выборке будет большое число строк и нужна будет строка с номером, который не влазит в int?


3. Другие косяки

- При открытии окна свойств блока History всегда включается английский язык для клавы. Работаешь себе в лоджике, подписываешь всякое на русском, заходишь туда, начинаешь там прописывать какое-нибудь поле, не глядя на экран, и только потом, уже заполнив поле, замечаешь, что там абракадабра английскими буквами. Бесит неимоверно.

- В SMArt-овском "Диспетчере отчетов" при просмотре отчета нажатие на Esc приводит не к закрытию отчета и возврату к списку отчетов, что было бы логично, а отрабатывает сразу настроенный на Esc выход из экрана диспетчера. Дико неудобно.


4. Хотелки
Раздельные функции создания выборки блоком History и записи файла отчета на носитель. Сделали выборку, нашли нужные данные, забрали их дальше в FBD для обработки - всё, сохраненный на носителе отчет не нужен. Если нужен, то по сигналу на отдельном входе записали.
Выходы со значением констант в блоке History.

Фильтры, как в History, для SMArt-овского исторического графика.


Это пока только то, что сразу бросилось в глаза с самого начала.
ViS вне форума   Ответить с цитированием
Старый 24.09.2020, 10:32   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
- В SMArt-овском "Диспетчере отчетов" при просмотре отчета нажатие на Esc приводит не к закрытию отчета и возврату к списку отчетов, что было бы логично, а отрабатывает сразу настроенный на Esc выход из экрана диспетчера. Дико неудобно.
Эскейп в этом окне есть по умолчанию, ручное задание выхода должно было быть заблокировано. Поэтому у вас дабл эскейп получается. Запретим)


Добавлено через 29 минут


Цитата
Сообщение от ViS Посмотреть сообщение
4. Хотелки
Раздельные функции создания выборки блоком History и записи файла отчета на носитель. Сделали выборку, нашли нужные данные, забрали их дальше в FBD для обработки - всё, сохраненный на носителе отчет не нужен. Если нужен, то по сигналу на отдельном входе записали.
Выходы со значением констант в блоке History.

Фильтры, как в History, для SMArt-овского исторического графика.
У исторического блока есть режим который в справке называется "Функция по умолчанию". В этом режиме исторические данные из базы данных (не обработанные, как есть) поступают на выход блока
и могут быть использованы в FBD.

Нужно несколько функций: объединяйте несколько блоков в единую базу - в справке написано, как это сделать.




Цитата
Сообщение от ViS Посмотреть сообщение
2. Вход row number.
Не уверен, что правильно понял из справки - это номер строки из сделанной для отчета выборки, значения из которой будут на выходах? Со смещением 2, то есть при значении на этом входе "0" выводятся значения из первой строки данных, которая в самом отчете числится под номером 2?
А как быть, если в выборке будет большое число строк и нужна будет строка с номером, который не влазит в int?
В силу того, что в результате выборки значений по переменной может быть несколько (массив значений, таблица значений), а выход для переменной у блока в этом режиме только один. Требуется как то получить доступ к остальным значениям. Для этого используется вход row number, число на этом выходе задает какой элемент из массива полученных данных будет выводиться на выходы значений и таймштампов блока.

Оперативная память в контроллере не бесконечна и драматически далека от памяти доступной для архива. Все данные выборки в принципе не могут быть загружен за раз. Поэтому функция работает с ограничениями, за раз она может загрузить максимум 1000 исторических значений, реальное же количество отобранных исторических значений выводиться на выход "count". Поэтому гипотетический максимум для row number будет 1000 (row = 0..999), а реальный максимум определяется значением на выходе "count".

1000 всегда влезет в int.

Тем не менее, ограничение в 1000 не должно смущать. Если в результате выборки получено настолько большое количество данных и нет уверенности, что в выборка пуста. Нужно взять таймштамп 1000-ой записи (row = 999), подать его на вход begin у блока и повторить выборку еще раз, получив доступ к следующей тысяче.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 24.09.2020 в 11:08
Arsie сейчас на форуме   Ответить с цитированием
Старый 24.09.2020, 11:10   #3
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
4. Хотелки
Раздельные функции создания выборки блоком History и записи файла отчета на носитель. Сделали выборку, нашли нужные данные, забрали их дальше в FBD для обработки - всё, сохраненный на носителе отчет не нужен. Если нужен, то по сигналу на отдельном входе записали.
Всё так и работает. Хотеть уже сделанное - это как минимум странно Возможно вы путаете отчет и хранилище.


Добавлено через 55 секунд


Цитата
Сообщение от ViS Посмотреть сообщение
Загружаем программу в контроллер, делаем триггером 1 запись.
Формируем отчет(да, конечно, на входе для фильтра задаем правильное значение, чтобы нашлась именно нужная запись) - все НЕ хорошо. В начале таблицы видим четыре пустых строки, только поле дата/время заполнено, остальные поля пустые. И только пятой строкой идет наша единственная запись, которую мы сделали. Число на выходе Count соответствует числу строк - 5.
Похоже какой-то косяк, будем исправлять.


Добавлено через 8 минут


Цитата
Сообщение от ViS Посмотреть сообщение
4. Хотелки
Выходы со значением констант в блоке History.

Константы в историю не пишутся а записываются в отчет на момент его формирования, если нужно сохранять константы возможно задача поставлена некорректно и это не константы.


Добавлено через 9 минут


Цитата
Сообщение от ViS Посмотреть сообщение
Фильтры, как в History, для SMArt-овского исторического графика.
Смарт - это просто виджет. К историческим данным он имеет только косвенное отношение - использует их.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 24.09.2020, 11:31   #4
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 302
Благодарил(а): 0 раз(а)
Поблагодарили: 254 раз(а) в 250 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Приложите ваш проект?


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. сейчас на форуме   Ответить с цитированием
Старый 24.09.2020, 15:25   #5
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата:
Сообщение от Arsie Посмотреть сообщение
У исторического блока есть режим который в справке называется "Функция по умолчанию". В этом режиме исторические данные из базы данных (не обработанные, как есть) поступают на выход блока и могут быть использованы в FBD.
Нужно несколько функций: объединяйте несколько блоков в единую базу - в справке написано, как это сделать.

Арсений, вы неверно поняли слово "функция"в данном контексте.
Речь не идет о математических функциях обработки данных.
Речь о входе Select, который выполняет 3 действия(у которого три функции) - выборка, математика, создание отчета.

Цитата:
Сообщение от Arsie
Всё так и работает. Хотеть уже сделанное - это как минимум странно
Это не так, и по справке и по факту. Или есть способ получить выборку в блоке без сохранения отчета? В справке такого не описано.

Цитата:
Сообщение от Arsie
Возможно вы путаете отчет и хранилище
Не путаю.
По select-у создается отчет и сохраняется на носителе, неважно на каком - внутренняя память, USB или флешка. Внутренняя память контроллера это тоже носитель, просто внутренний, а не внешний. Вот управление этим сохранением файла с отчетом хотелось бы иметь отдельно от формирования выборки.


Цитата:
Сообщение от Arsie
... функция работает с ограничениями, за раз она может загрузить максимум 1000 исторических значений ... Нужно взять таймштамп 1000-ой записи (row = 999), подать его на вход begin у блока и повторить выборку еще раз, получив доступ к следующей тысяче.
Вот это должно быть описано в справке, я такого там не видел. Может плохо смотрел. Кстати, эта 1000 не зависит от количества параметров? Это тысяча строк по 2-3-10-300 параметров в каждой или всего 1000 значений параметров(если в одной записи 100 параметров, то ограничимся 10 записями)?


Цитата Смарт - это просто виджет. К историческим данным он имеет только косвенное отношение - использует их.
Но ведь в историческом графике внутри работает все тот же History, верно? Почему бы не вывести этот функционал History в смарт?


Цитата:
Сообщение от Ilya J. Посмотреть сообщение
Приложите ваш проект?
Да там кроме History и диспетчера отчетов в смарте больше ничего и нет, прикладываю.

Чудеса на виражах - сегодня в отчете не 4, а только 2 лишние пустые строки образуются.
ViS вне форума   Ответить с цитированием
Старый 24.09.2020, 15:42   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Это не так, и по справке и по факту. Или есть способ получить выборку в блоке без сохранения отчета? В справке такого не описано.
Два блока. Один создаёт отчёт (в нём это указано - стоит галочка), другой нет (в нём это не указано - галочка не стоит). Блоки запараллелены - входы данных и строба имеют один источник (в справке есть об этом).

Можно три блока, 4, 10, 20. Они будут работать с одной и той же БД. Реализовывать разные фукнции и можно даже отчёты разных видов. Один во внутреннюю память, два других на флешку.

Похоже у вас не уложилось, что блоки умеют работать расшаривать архив, т.е. БД с данными.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 24.09.2020, 15:58   #7
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата:
Сообщение от Arsie Посмотреть сообщение
Два блока. Один создаёт отчёт (в нём это указано - стоит галочка), другой нет (в нём это не указано - галочка не стоит). Блоки запараллелены - входы данных и строба имеют один источник (в справке есть об этом).
Можно и так, а можно эту галочку и вытянуть как отдельный вход блока. Было бы удобно, и не надо было бы плодить лишние сущности на поляне.


И еще пара хотелок к этому блоку образовалась:
- объединение фильтров не только по "И" но и по "ИЛИ", на выбор
- отдельный вход для выбора этого типа объединения
- дополнить фильтры входом enable для каждого фильтра. В свойствах блока указываем все нужные фильтры, а применением каждого рулим оперативно из FBD. Опять же уберет сущности с поляны.



Цитата:
Сообщение от Arsie Посмотреть сообщение
Похоже у вас не уложилось, что блоки умеют работать расшаривать архив, т.е. БД с данными.
Уложилось, уложилось. В приложенной выше программе это используется.

UPD.
Упс, только сейчас заметил, что файл не приложился к предыдущему сообщению, хотя в предварительном просмотре был.
Вложения
Тип файла: psl ee.psl (524.1 Кбайт, 40 просмотров)
ViS вне форума   Ответить с цитированием
Старый 24.09.2020, 16:30   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Можно и так, а можно эту галочку и вытянуть как отдельный вход блока. Было бы удобно, и не надо было бы плодить лишние сущности на поляне.
FBD - визуальный язык. Сущности не плодятся, это графические отображения разных функций одной и той же сущности.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 24.09.2020, 16:34   #9
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Добавочка по глюкам. Закономерность проявления не уловил.



Конфигуратор архива периодически открывается пустой, хотя в проекте есть блоки работы с историческими данными.


Расчет занимаемого архивом места в конфигураторе. Странная логика расчета при выборе записи по триггеру.
Почему считается, что будет обязательно 25 сэмплов в секунду? При установленном по умолчанию тике в 100мс контроллер даже не успеет их сделать.

Может тот триггер будет делать 1-2 записи в день всего.
Да, можно, исходя из задачи программы, предположить примерное количество записей в день/час/минуту и рассчитать число на нужный период. Но это очередной костыль ведь.



Окно свойств блока History периодически открывается пустым - как будто у блока не назначено ни одного входа, хотя входы назначены, на поляне у блока все отображается и он работает.


Добавлено через 5 минут


Цитата:
Сообщение от Arsie Посмотреть сообщение
FBD - визуальный язык. Сущности не плодятся, это графические отображения разных функций одной и той же сущности.
Именно потому, что визуальный - любой элемент на поляне является сущностью в контексте поляны и контексте программирования(а не компиляции). И эта сущность занимает на поляне место, а главное - требует сил и времени на работу с ней.
Например, что проще - выставить 1 или 0 на входах enable для, скажем, 5 фильтров в одном блоке History, настроенном 1 раз, или выставить на поляну и настроить 5 блоков? Как в плане временных затрат, так и в вероятности ошибки где-то. Ответ очевиден.

Последний раз редактировалось ViS, 24.09.2020 в 16:45
ViS вне форума   Ответить с цитированием
Старый 24.09.2020, 16:41   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Вот это должно быть описано в справке, я такого там не видел. Может плохо смотрел. Кстати, эта 1000 не зависит от количества параметров? Это тысяча строк по 2-3-10-300 параметров в каждой или всего 1000 значений параметров(если в одной записи 100 параметров, то ограничимся 10 записями)?
Не зависит, но если создать блок со слишком большим количеством параметров это поставит раком систему. Как в плане поставки данных так и в плане выборки.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 24.09.2020, 17:30   #11
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Расчет занимаемого архивом места в конфигураторе. Странная логика расчета при выборе записи по триггеру.
Почему считается, что будет обязательно 25 сэмплов в секунду? При установленном по умолчанию тике в 100мс контроллер даже не успеет их сделать.

Может тот триггер будет делать 1-2 записи в день всего.
Да, можно, исходя из задачи программы, предположить примерное количество записей в день/час/минуту и рассчитать число на нужный период. Но это очередной костыль ведь.
В общем случае тик проекта может динамически меняться, поэтому стоит максимально возможная скорость сэмплирования. Т.е. архив точно будет не жирнее рассчитанного.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 24.09.2020, 18:00   #12
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата:
Сообщение от Arsie Посмотреть сообщение
В общем случае тик проекта может динамически меняться, поэтому стоит максимально возможная скорость сэмплирования. Т.е. архив точно будет не жирнее рассчитанного.
В общем случае в подавляющем большинстве программ используется заданный для проекта тик, а не меняется динамически. Можно хотя бы отталкиваться от него при расчете, а не от теоретически максимальной скорости сэмплирования.
Дело не в том, что не будет "жирнее", а в том, что нет возможности нормально задать период хранения архива.

Вот мне надо архив со сроком жизни в год. Считать сэмплы на год? Их может быть ни одного за день, а может быть десятки.
ViS вне форума   Ответить с цитированием
Старый 24.09.2020, 19:03   #13
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Вот мне надо архив со сроком жизни в год. Считать сэмплы на год? Их может быть ни одного за день, а может быть десятки.
Поставить жирную флешку из расчёта максимальной скорости сэмплирования и ограничить время жизни данных годом. В скада-системах так и делают. Это гарантия 100% успеха.

Остальное - вероятностные процессы.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 24.09.2020, 19:26   #14
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата:
Сообщение от Arsie Посмотреть сообщение
Поставить жирную флешку из расчёта максимальной скорости сэмплирования и ограничить время жизни данных годом. В скада-системах так и делают. Это гарантия 100% успеха.

Остальное - вероятностные процессы.
Речь шла не о том, как реализовать хранение с очередным костылем.
Она о том, что можно сделать ваш продукт лучше и удобнее.
Зачем мне втыкать жирную флэшку и тратиться на нее, если мне и внутренней памяти более, чем достаточно?


В тот же расчет при выборе триггера можно было добавить поле "Максимальная частота сэмплирования", значение которой будет задаваться пользователем, и считать те дни/года исходя из этого значения, а не теоретически возможного. Элементарнейшая же вещь, несколько строк кода, не требующая "глобальной переделки системного подхода в лоджике".
Вот скажите честно, Арсений - в вашей лично практике было много программ, которые что-то читали/записывали с частотой 25 раз в секунду, да хотя бы 10 раз/сек? Хоть 1% от общего числа наберется?

Ну вот, честно, порой трудно понять логику, по которой вы принимаете те или иные решения при реализации каких-то функций.

Последний раз редактировалось ViS, 24.09.2020 в 19:36
ViS вне форума   Ответить с цитированием
Старый 24.09.2020, 23:53   #15
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Исторический график смарта...

До фига непонятного сходу, а ссылка в справке "см. Руководство пользователя" - не работает.

В историческом графике в смарте нельзя вывести только значения заданного диапазона по времени, а не весь архив?


Едем дальше с косяками.

Еще один глюк с Esc в смарте.
Есть экран, на котором живет исторический график(не во весь экран) и рядом с ним другие элементы - кнопки, текст, вывод числа. Если в переходах таки назначим Esc для выхода из экрана, то нажатие на него приводит только пропаданию всего изображения на полсекунды и остаемся на этом же экране. Выйти можно только быстрым троекратным нажатием на Esc.


Косяк со слайдером задания диапазона.
1. Размер исторического графика не на весь экран.Сверху и снизу есть другие элементы.
2. Открываем панель управления, тыкаем в задание начала диапазона.
3. Приехали. Нижняя часть окна со слайдером не отображается. Закрыть мы его не можем - на Enter не реагирует, по Esс получаем выход из экрана.
4. Вылетев по Esc, возвращаемся на экран с графиком - а там так и висит этот слайдер, с которым мы ничего не можем сделать.
Логичной была бы, как минимум, отработка Enter и Esc для этого окна.Как максимум, либо масштабирование слайдера соответственно размеру графика, либо отрисовка его поверх всех элементов экрана с привязкой его координат к экрану, а не к координатам графика. Растянуть окно графика до низа экрана тоже не поможет - так как оно сдвинуто вниз от верха, слайдер тоже оказывается сдвинутым вниз. Соответственно, его кнопки "Отмена" и "Перейти" находятся за пределами экрана.

Расположение элементов по уровню нам не поможет разместить свои элементы поверх графика, так он всегда сверху.

Далее. Мелочь в общем-то, но осадочек остается.
Если у нас пустой архив - нет ни одной записи - нам все равно предлагается сохранить отчет. После нажатия на кнопу "Сохранить" никакого отчета не сохраняется.
Правильным было бы при нажатии на дискету в панели управления вместо окна "Создание отчета" сразу выдавать сообщение о пустом архиве. Ну или все же создавать отчет, пусть он и будет пустой. А еще можно сделать проверку на пустоту архива и делать дискетку неактивной, как это сделано с кнопкой для слайдера. (Что касается этих слайдеров вообще, мое сугубо субъективное мнение - дико неудобная штука . Пока введешь одно значение в попытках его поймать с этими инерционными прокрутками, с обычной клавы с цифирями уже бы штук 5 ввел, минимум.)



Лирическое отступление.
Блин, весь день в лоджике, из них от силы полтора часа потрачено на саму программу, а все остальное время на борьбу с косяками и непонятками с этими историческими делами...
Теперь вот придется менять структуру экранов в смарте и частично концепцию интерфейса в целом.
Эх... если б заказчику не приспичило с этими архивами, сидел бы себе без новых глюков и проблем на 3.28 и горя б не знал.

Последний раз редактировалось ViS, 25.09.2020 в 00:07
ViS вне форума   Ответить с цитированием
Старый 25.09.2020, 10:34   #16
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Вот скажите честно, Арсений - в вашей лично практике было много программ, которые что-то читали/записывали с частотой 25 раз в секунду, да хотя бы 10 раз/сек? Хоть 1% от общего числа наберется?
В моей практике не раз было, когда разглагольствования о скорости накопления данных выливались в программную ошибку и скорость сильно отличалась от декларируемой как в меньшую, так и в большую сторону.

Мы уже думаем над "калькулятором", т.е. будет отражено две величины: пиковая (как сейчас) и "хотелочная".


Добавлено через 1 минуту


Цитата
Сообщение от ViS Посмотреть сообщение
В историческом графике в смарте нельзя вывести только значения заданного диапазона по времени, а не весь архив?
Попробуйте жесты. Свести пальцы, развести их. Подвигать влево/вправо.


Добавлено через 3 минуты


Цитата
Сообщение от ViS Посмотреть сообщение
Еще один глюк с Esc в смарте.
Проект?


Добавлено через 14 минут


Цитата
Сообщение от ViS Посмотреть сообщение
Еще один глюк
Некоторые косячки увидел, создал задачи на исправление.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 25.09.2020, 16:15   #17
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата:
Сообщение от Arsie Посмотреть сообщение
Попробуйте жесты. Свести пальцы, развести их. Подвигать влево/вправо.
Да уже понял, что нельзя, к сожалению.
Имелось ввиду не масштабирование, а вывод в график данных только в пределах заданного диапазона, при любом масштабировании и сдвигах вправо/влево. Поначалу ошибочно подумал, что входы begin и end так и работают, как в History. К огромному сожалению они оказались только масштабом отображения по временной шкале, а не выборкой.
В целом получается пока, что смартовский исторический график - всего лишь красивая, но малофункциональная картинка, увы. Ему бы функции блока History - цены б не было.
__


Блок HistoryStorage.
clear - Очистка исторических данных накопленных в архиве.

А если несколько блоков History пишут несколько архивов - будут удалены ВСЕ архивы? Как очистить только один архив?


Цитата Проект?
Приложил.
Вложения
Тип файла: psl ee1.psl (611.6 Кбайт, 33 просмотров)
ViS вне форума   Ответить с цитированием
Старый 25.09.2020, 16:40   #18
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Блок HistoryStorage.
clear - Очистка исторических данных накопленных в архиве.

А если несколько блоков History пишут несколько архивов - будут удалены ВСЕ архивы? Как очистить только один архив?

Никак. А зачем?

Это типа для целей очистки после ПНР.


Добавлено через 10 минут


Цитата
Сообщение от ViS Посмотреть сообщение
Да уже понял, что нельзя, к сожалению.
Имелось ввиду не масштабирование, а вывод в график данных только в пределах заданного диапазона, при любом масштабировании и сдвигах вправо/влево. Поначалу ошибочно подумал, что входы begin и end так и работают, как в History. К огромному сожалению они оказались только масштабом отображения по временной шкале, а не выборкой.
В целом получается пока, что смартовский исторический график - всего лишь красивая, но малофункциональная картинка, увы. Ему бы функции блока History - цены б не было.
Не понимаю, что вы хотите. Как можно на графике зависимости значения от времени сделать отфильтрованное что то?

Перемещение по тренду есть и так, я же не зря про пальцы говорил. Выводите любой интервал в любом масштабе.

В тренде также можно установить масштаб по шкале времени и шкале значений из FBD.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 25.09.2020 в 16:53
Arsie сейчас на форуме   Ответить с цитированием
Старый 25.09.2020, 17:24   #19
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата:
Сообщение от Arsie Посмотреть сообщение
Никак. А зачем?
Это типа для целей очистки после ПНР.

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


Цитата:
Сообщение от Arsie Посмотреть сообщение
Не понимаю, что вы хотите. Как можно на графике зависимости значения от времени сделать отфильтрованное что то?
Есть цикл обработки изделия.
При запуске цикла данные по изменению нескольких параметров записываются в архив.
Эти данные потом надо просматривать и формировать отчет по циклу.
С отчетом все просто: History - выборка - отчет.

Задача: вывести на экран контроллера в виде графика архивные значения параметров за заданный период времени - один цикл обработки.
Никаких других значений вне этого диапазона не должно выводиться на экран графика ни при каких условиях - ни при масштабировании, ни при сдвиге вправо-влево.

Масштабирование и сдвиг, в идеале, хотелось бы оставить, чтобы график, с соблюдением указанного выше условия, можно было "рассмотреть поближе".

Помогла бы в историческом графике выборка, которая есть в History, но ее нет.
Помогло бы ограничение вывода значений в график по диапазону времени (по сути, конечно, тоже выборка, только сильно упрощенная), но этого нет.
Как костыль, помогло бы отключение масштабирования и сдвига тапом по экрану, пусть все остальные данные остаются "за экраном". Этого тоже нет.
Как другой костыль, помогло бы создание отдельного архива, в который загонять значения выборки из History, из которого уже вывод в исторический график, с очисткой этого временного архива перед новым выводом графика. Но нет очистки одного архива, а не всех сразу.
Помогла бы функция чтения данных историческим графиком не из архива, а из указанного отчета. Такого тоже нет.


Пока что получается, что у меня только один вариант остается - рожать полностью свой график?

P.S. Не необычная, а совершенно стандартная ведь задача для работ с архивами.

Последний раз редактировалось ViS, 25.09.2020 в 17:39
ViS вне форума   Ответить с цитированием
Старый 25.09.2020, 17:36   #20
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Есть цикл обработки изделия.
При запуске цикла данные по изменению нескольких параметров записываются в архив.
Эти данные потом надо просматривать и формировать отчет по циклу.
С отчетом все просто: History - выборка - отчет.

Задача: вывести на экран контроллера в виде графика архивные значения параметров за заданный период времени - один цикл обработки.
Никаких других значений вне этого диапазона не должно выводиться на экран графика ни при каких условиях - ни при масштабировании, ни при сдвиге вправо-влево.

Масштабирование и сдвиг, в идеале, хотелось бы оставить, чтобы график, с соблюдением указанного выше условия, можно было "рассмотреть поближе".
Никакие мне известные скады так не умеют. Значит в вашем случае это набор графиков по количеству циклов.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 25.09.2020, 17:49   #21
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата:
Сообщение от Arsie Посмотреть сообщение
Никакие мне известные скады так не умеют.

Ни одна известная вам скада не может нарисовать график, в котором будут присутствовать значения из выборки, а не из всего архива???
Все известные вам скады не умеют делать выборку?
Не умеют записать выборку во временный массив?
Не могут сформировать график из данных этого массива?
НЕ ВЕРЮ! (С)


Цитата:
Сообщение от Arsie Посмотреть сообщение
Значит в вашем случае это набор графиков по количеству циклов.

Какой набор по какому количеству?
Отдельный график на каждый цикл?

Сегодня обработано 50 изделий (50 циклов), завтра 5, послезавтра 10. Все должно храниться в архиве. В любой момент времени надо посмотреть график любого цикла из архива. Условие описано в предыдущем сообщении красным.

Мне надо забить в проект количество экранов с графиком, которое будет соответствовать максимально возможному количеству обработанных за год изделий??


Какой-то разговор глухонемого со слепым получается...
ViS вне форума   Ответить с цитированием
Старый 25.09.2020, 17:54   #22
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Ни одна известная вам скада не может нарисовать график, в котором будут присутствовать значения из выборки, а не из всего архива???
С ограничением на вылет из диапазона? Нет.

Но СМАрт это умеет. Управление шкалой времени из FBD: включаете галку в смарте, задаете начало и конец диапазона. И все загруженные точки отображаются на графике. Рукой за пределы будет не выйти. Там есть контроль. Изменения масштаба оператором можно задетектить и установить на те, что хочет программер.

Фраза из справки: "Управление масштабами из FBD и из UI работают параллельно, применяется последний измененный масштаб", последний изменённый всегда будет на экране.



Цитата
Сообщение от ViS Посмотреть сообщение
Какой-то разговор глухонемого со слепым получается...
Вы справку вообще читаете? Ещё немного, и я начну троллить. Окей, можете не читать. Но хотя бы проверяйте на живую то, что пишете.

Я чувствую, скоро выяснится, что у вас не зависимость от времени, а зависимость двух параметров между собой. И вам не хистори нужен, а xplot.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 25.09.2020 в 18:18
Arsie сейчас на форуме   Ответить с цитированием
Старый 25.09.2020, 18:41   #23
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата:
Сообщение от Arsie Посмотреть сообщение
Но СМАрт это умеет. Управление шкалой времени из FBD: включаете галку в смарте, задаете начало и конец диапазона. И все загруженные точки отображаются на графике. Рукой за пределы будет не выйти. Там есть контроль.
...
..хотя бы проверяйте на живую то, что пишете.
Потому и пишу, что проверено вживую.

Цитата:
Сообщение от Arsie Посмотреть сообщение
Вы справку вообще читаете?
Цитата из справки:
6.1 Управление масштабом по шкале времени
Что-бы управлять этим параметром из FBD, включите флажок "Время" в секции (4). На UI блоке появляются входы “begin, sec”, ” end, sec” и “begin, ms”, “end, ms”. На входы “begin, sec”, ” end, sec” задается требуемый период времени в формате unix-time (в секундах с начала эпохи).

Именно так и работает - просто масштаб отображения по шкале времени, не более того.

Включаю галку.
Архив содержит записи нескольких циклов.
Задаю начало и конец.
Вывожу график. (Тут тоже есть косяк, опишу ниже)
Вижу на экране нужный мне диапазон. ОК.
Цитата:
Сообщение от Arsie
Рукой за пределы будет не выйти.
Касаюсь пальцем экрана. Не отрывая пальца веду им по экрану вправо или влево.
График смещается и вижу данные, не входящие в заданный диапазон.
Или: тапаю в экран, кнопкой "-" уменьшаю масштаб - вижу данные, не входящие в заданный диапазон.

Цитата из справки:
Управление масштабами из FBD и из UI работают параллельно, применяется последний измененный масштаб.

То есть все работает именно так как описано в справке, и именно то и не позволяет обеспечить решение моей задачи.

Как сделать чтобы выделенного не происходило? Как писал выше, такой костыль, с натяжкой, прокатит.


Про косяк.
Заливаем программу.
Архив пустой.
Пишем архив.
На входы begin и end исторического графика подаем диапазон только что записанного.
Открываем исторический график - график пуст.
Для отображения графика надо либо поелозить пальцем по экрану, либо дернуть из ФБД вход visible секции control - только тогда график отобразится.
Выходим из экрана с графиком.
Снова пишем архив.
На входы begin и end подаем диапазон только что записанного, нового, цикла.
Открываем исторический график.
Видим ту же картинку, которая была перед выходом из экрана с ним.
Для актуализации отображения графика надо либо поелозить пальцем по экрану, либо дернуть из ФБД вход visible секции control - только тогда график актуализируется.

И да, отобразится та его часть, которая задана на входах begin и end. НО! - см. выделенное выше цветом.


Добавлено через 17 минут


Цитата:
Сообщение от Arsie
Я чувствую, скоро выяснится, что у вас не зависимость от времени, а зависимость двух параметров между собой. И вам не хистори нужен, а xplot.
Не выяснится. Текущую задачу я четко описал - вывод в исторический график только значений из заданного временного диапазона.

Последний раз редактировалось ViS, 25.09.2020 в 19:05
ViS вне форума   Ответить с цитированием
Старый 25.09.2020, 19:12   #24
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата:
Сообщение от Arsie
Ещё немного, и я начну троллить.
Я уже однажды, когда-то давным-давно, писал на форуме, повторюсь.


Такое впечатление, что под ником Arsie на форуме бывают два разных человека.
Первый - абсолютно адекватный, дающий четкие конкретные ответы на поставленные вопросы.
Второй бывает намного реже, его задача - любыми правдами и неправдами уйти от таких ответов, делая вид, что не понимает о чем речь, переводя стрелки на другие темы, не касающиеся обсуждаемой, и т.п.
Сейчас второго наблюдаем... ПЕРВЫЙ ,ВЕРНИСЬ!


Добавлено через 4 минуты


Цитата:
Сообщение от Arsie Посмотреть сообщение
С ограничением на вылет из диапазона? Нет.
Есть выборка значений из архива.
Есть график, сформированный из значений этой выборки.
ВСЁ!

Какой "вылет из диапазона"? Какого диапазона? Вы о чем вообще?
ViS вне форума   Ответить с цитированием
Старый 25.09.2020, 20:03   #25
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Касаюсь пальцем экрана. Не отрывая пальца веду им по экрану вправо или влево.
График смещается и вижу данные, не входящие в заданный диапазон.
Или: тапаю в экран, кнопкой "-" уменьшаю масштаб - вижу данные, не входящие в заданный диапазон.
Изменения масштаба оператором можно задетектить и установить на те, что хочет программер.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 26.09.2020, 03:05   #26
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата:
Сообщение от Arsie Посмотреть сообщение
Изменения масштаба оператором можно задетектить и установить на те, что хочет программер.
В принципе можно.
Тоже тот еще костыль. С кучей дополнительных костылей вокруг для обеспечения обязательного изменения значения на входах масштаба или дерганья видимостью.

Вот только те же кнопки масштаба по тапу все равно будут появляться, и если попадется тупой эксплуататор, а таких у нас - через одного да каждый, то ведь будет до посинения и по ним тыкать, и пытаться подвинуть график, а когда посинеет - начнет звонить и вопить до красноты, что у него там что-то глючит и не работает...

Кстати, обычная фигня с терминологией... При сдвиге графика масштаб - не меняется, меняется временной диапазон выводимых значений - сдвигается тоже.

Последний раз редактировалось ViS, 26.09.2020 в 03:17
ViS вне форума   Ответить с цитированием
Старый 28.09.2020, 10:34   #27
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Кстати, обычная фигня с терминологией... При сдвиге графика масштаб - не меняется, меняется временной диапазон выводимых значений - сдвигается тоже.
Вам принципиально важно изменение маркеров начала и конца диапазона называть двумя разными словами?


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 28.09.2020, 11:45   #28
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Арсений, порадуйте лучше исправлениям косяков и добавлением хотелок, вы же умеете, а не риторическими вопросами.
ViS вне форума   Ответить с цитированием
Старый 28.09.2020, 11:47   #29
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Цитата
Сообщение от ViS Посмотреть сообщение
Вот только те же кнопки масштаба по тапу все равно будут появляться, и если попадется тупой эксплуататор, а таких у нас - через одного да каждый, то ведь будет до посинения и по ним тыкать, и пытаться подвинуть график, а когда посинеет - начнет звонить и вопить до красноты, что у него там что-то глючит и не работает...
Отдетектили его действие, вывели окошко "НИЗЯ!" поверх и сдвинули обратно.

А эксплуататоры всё равно синячить будут, этого нам с вами не изменить.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 28.09.2020, 11:58   #30
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Косяки, непонятки и хотелки по историческим данным

Да это все понято, как костылей-то наставить....
Лучше бы сказали, что таки сделаете, чтобы не надо было их лепить.
ViS вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 17:51.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023