Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: ПР200. Проверить МАКРОС.

  1. #1

    По умолчанию ПР200. Проверить МАКРОС (с памятью).

    Здравствуйте.
    Прошу проверить макрос (выполнить Code Review).
    Я тестирование провел, в том числе на ПР200, прошу опытных (Middle/Senor) разработчиков указать на возможные ошибки (недочеты).

    МАКРОС: счетчик импульсов с ПАМЯТЬЮ (от дискретного входа) .

    Целевое использование макроса:
    • информационно-аналитическая информация для отображения в OwenCloud .
    • визуализация (в графике и на плашке) информации на основание подсчета импульсов, интенсивность расхода из скважины, мониторинг и сопоставление с (остальными) показаниями комплекса оборудования (счетчик герконом щелкает каждый полный оборот, каждые 10 литров)
    • команд управления (на основании получившихся подсчетов) не выполняется
    • формальная производственная отчетность (на основании получившихся подсчетов) не составляется


    МАКРОС на вход получает:
    • импульс (1/0)
    • коэффициент масштабирования (произведение числа импульса на коэфициент, 1 импульс = 10 литров)


    МАКРОС на выходе предоставляет данные:
    • количество импульсов (перемноженных на коэффициент) за предыдущую минуту
    • количество импульсов (перемноженных на коэффициент) за предыдущий час
    • количество импульсов (перемноженных на коэффициент) за предыдущий день
    • количество импульсов (перемноженных на коэффициент) за текущий день

    Все подсчеты синхронизированы по внутренним часам реального времени (по локадьному часовому поясу)


    Пограничные условия (известные мне):
    • может использоваться только с приборами у которых есть внутренние часы реального времени
    • при поступление импульса в интервале с 0мс до 0.9мс в начале каждой минуты (часа, суток) "теряет" импульсы (то есть "слепнет" на 9 циклов выполнения программы, допустимое ограничение для целевого использования)



    Прошу при review дать обратную связь по следующим вопросам:
    • - в МАКРОСЕ используется несколько линий задержки. какие последствия могут быть при практическом применении этого макроса?
    • - в МАКРОСЕ не выполняется учет реальной продолжительности цикла выполнения программы (про доступность макроса для вычисления продолжительности знаю). Сейчас установлен hardcode в 0,1мс (для эмуляции задержки/паузы). Какие могут быть последствия в реальной работе?



    Файл с кодом макроса прикладываю.
    Файл с кодом проекта для отладки прикладываю.
    Вложения Вложения
    Последний раз редактировалось Shiryaevo; 09.04.2023 в 00:51.

  2. #2
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,138

    По умолчанию

    "Слепнет" он у вас не на 9 циклов программы, а на 900 мс именно из-за задержки TON.
    Вот так будет правильнее

    1.png

  3. #3
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,138

    По умолчанию

    А еще можно так сделать
    Вложения Вложения

  4. #4
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,242

    По умолчанию

    Странно это, расход собираетесь контролировать, а расход не рассчитывается, в смысле, может лучше рассчитать(вычислить) то, что хотите контролировать?
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  5. #5

    По умолчанию

    вы правы!
    опечатка с моей стороны.

  6. #6

    По умолчанию

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

    Данные МАКРОСА используются для ВИЗУАЛИЗАЦИИ.
    Другими словами - это мониторинг: "Вчера было так, месяц назад было так, а тут вроде что-то не так"

  7. #7

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    А еще можно так сделать
    Да,
    элегантный прием для "искусственной" задержки, понравился

    Для "триггера" события (перехода через 0) в одном из первых подходов к задаче я использовал "NOT(Sec) / NOT(Min)".
    Для триггера по часам ваш вариант элегантнее

    Буду использовать, часы оставлю "внутри", по канонам полиморфизма от пользователя (API) скрываем внутреннюю кухню.
    Спасибо!

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

    IDE - это Интегрированная среда разработки

  8. #8
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,138

    По умолчанию

    Цитата Сообщение от Shiryaevo Посмотреть сообщение
    Да,
    PS
    Когда я открыл ваш код в IDE, то у меня (ваши) "линии задержки" (графически) отрисовываются сплошной линией, с символом "стрелочка" в конце.
    Когда я через IDE добавляю на холст новую "линию задержки", то она отрисовывается пунктирной линией, с символом "стрелочка" в конце.
    Это не ожидаемое поведение или вы используете специальную кнопку IDE, так как существует другой тип "линии задержки"?

    IDE - это Интегрированная среда разработки
    Это у Лоджика небольшие глюки с отрисовкой.

    Ну и, так к сведению, макрос save из менеджера морально устарел, сейчас тоже самое можно сделать намного проще

    Безымянный.png
    Последний раз редактировалось Dimensy; 09.04.2023 в 19:10.

  9. #9

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    "Слепнет" он у вас не на 9 циклов программы, а на 900 мс именно из-за задержки TON.
    Вот так будет правильнее
    1.png

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Ну и, так к сведению, макрос save из менеджера морально устарел, сейчас тоже самое можно сделать намного проще
    Безымянный.png
    Вот такая Красота получилась.
    И "слепнуть" перестал.
    2023-04-09 в 20.47.22.jpg

    Спасибо за Опыт, Ценно!
    Последний раз редактировалось Shiryaevo; 09.04.2023 в 21:08.

  10. #10
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,242

    По умолчанию

    А Вам хватит диапазона счётчика(0-65535) на сутки, может лучше применить нормальный, в смысле, 32-разрядный?
    Последний раз редактировалось Сергей0308; 09.04.2023 в 21:49.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. макрос энкодера для ПР200
    от lamburov в разделе Программируемые реле
    Ответов: 37
    Последнее сообщение: 04.07.2022, 23:22
  2. Ответов: 9
    Последнее сообщение: 05.07.2017, 20:48
  3. ПР 114 проверить работу в ОНЛАЙНЕ как?
    от дрю в разделе Программируемые реле
    Ответов: 10
    Последнее сообщение: 08.04.2015, 20:29
  4. Проверить АС-2
    от XopHeT в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 20.02.2011, 11:48
  5. как проверить наличие файла
    от nnesterov в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 12.12.2009, 12:05

Метки этой темы

Ваши права

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