Shiryaevo
09.04.2023, 00:24
Здравствуйте.
Прошу проверить макрос (выполнить Code Review).
Я тестирование провел, в том числе на ПР200, прошу опытных (Middle/Senor) разработчиков указать на возможные ошибки (недочеты).
МАКРОС: счетчик импульсов с ПАМЯТЬЮ (от дискретного входа) .
Целевое использование макроса:
информационно-аналитическая информация для отображения в OwenCloud .
визуализация (в графике и на плашке) информации на основание подсчета импульсов, интенсивность расхода из скважины, мониторинг и сопоставление с (остальными) показаниями комплекса оборудования (счетчик герконом щелкает каждый полный оборот, каждые 10 литров)
команд управления (на основании получившихся подсчетов) не выполняется
формальная производственная отчетность (на основании получившихся подсчетов) не составляется
МАКРОС на вход получает:
импульс (1/0)
коэффициент масштабирования (произведение числа импульса на коэфициент, 1 импульс = 10 литров)
МАКРОС на выходе предоставляет данные:
количество импульсов (перемноженных на коэффициент) за предыдущую минуту
количество импульсов (перемноженных на коэффициент) за предыдущий час
количество импульсов (перемноженных на коэффициент) за предыдущий день
количество импульсов (перемноженных на коэффициент) за текущий день
Все подсчеты синхронизированы по внутренним часам реального времени (по локадьному часовому поясу)
Пограничные условия (известные мне):
может использоваться только с приборами у которых есть внутренние часы реального времени
при поступление импульса в интервале с 0мс до 0.9мс в начале каждой минуты (часа, суток) "теряет" импульсы (то есть "слепнет" на 9 циклов выполнения программы, допустимое ограничение для целевого использования)
Прошу при review дать обратную связь по следующим вопросам:
- в МАКРОСЕ используется несколько линий задержки. какие последствия могут быть при практическом применении этого макроса?
- в МАКРОСЕ не выполняется учет реальной продолжительности цикла выполнения программы (про доступность макроса для вычисления продолжительности знаю). Сейчас установлен hardcode в 0,1мс (для эмуляции задержки/паузы). Какие могут быть последствия в реальной работе?
Файл с кодом макроса прикладываю.
Файл с кодом проекта для отладки прикладываю.
Прошу проверить макрос (выполнить Code Review).
Я тестирование провел, в том числе на ПР200, прошу опытных (Middle/Senor) разработчиков указать на возможные ошибки (недочеты).
МАКРОС: счетчик импульсов с ПАМЯТЬЮ (от дискретного входа) .
Целевое использование макроса:
информационно-аналитическая информация для отображения в OwenCloud .
визуализация (в графике и на плашке) информации на основание подсчета импульсов, интенсивность расхода из скважины, мониторинг и сопоставление с (остальными) показаниями комплекса оборудования (счетчик герконом щелкает каждый полный оборот, каждые 10 литров)
команд управления (на основании получившихся подсчетов) не выполняется
формальная производственная отчетность (на основании получившихся подсчетов) не составляется
МАКРОС на вход получает:
импульс (1/0)
коэффициент масштабирования (произведение числа импульса на коэфициент, 1 импульс = 10 литров)
МАКРОС на выходе предоставляет данные:
количество импульсов (перемноженных на коэффициент) за предыдущую минуту
количество импульсов (перемноженных на коэффициент) за предыдущий час
количество импульсов (перемноженных на коэффициент) за предыдущий день
количество импульсов (перемноженных на коэффициент) за текущий день
Все подсчеты синхронизированы по внутренним часам реального времени (по локадьному часовому поясу)
Пограничные условия (известные мне):
может использоваться только с приборами у которых есть внутренние часы реального времени
при поступление импульса в интервале с 0мс до 0.9мс в начале каждой минуты (часа, суток) "теряет" импульсы (то есть "слепнет" на 9 циклов выполнения программы, допустимое ограничение для целевого использования)
Прошу при review дать обратную связь по следующим вопросам:
- в МАКРОСЕ используется несколько линий задержки. какие последствия могут быть при практическом применении этого макроса?
- в МАКРОСЕ не выполняется учет реальной продолжительности цикла выполнения программы (про доступность макроса для вычисления продолжительности знаю). Сейчас установлен hardcode в 0,1мс (для эмуляции задержки/паузы). Какие могут быть последствия в реальной работе?
Файл с кодом макроса прикладываю.
Файл с кодом проекта для отладки прикладываю.