Показать сообщение отдельно
Старый 07.09.2018, 12:37   #1
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 102
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Задание скорости вентилятора в расписании SMH4

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

> Возникла необходимость немного изменить
> конструкторскую программу для SMH4. Хотим в
> расписании задавать производительность вентилятора
> (например вместо уставки влажности). Но у макроса
> закрыт доступ внутрь (чтобы изменить текст на экране).
> Возможно получить не закрытую версию макроса?



Как же правильно задать скорость вентилятора в расписании?

Дело в том, что данный макрос уже умеет задавать скорость вентилятора, для этого есть соответствующее поле:



Кстати, если на этом поле задержать палец, то скорость можно задать процентами

Посмотрим на фотографию макроса:



Несмотря на то, что на него нет прямого описания, мы видим, что данный макрос построен на принципах, принятых в стандартной библиотеке меню.

Также мы видим входы с самоочевидными названиями: уставки влажности, температуры и ограничения минимума и максимума этих уставок.

Теперь смотрим на выходы макроса. Что же мы видим там? А мы видим там некую "Уставку Vent", никуда не подключенную. Если запустить проект в отладку, то можно проследить, что при остановленной установке "Уставка Vent" принимает значение 0, а при запущенной становится равна 100. Т.к. описания нет, то и непонятно, что же это за уставка. Однако к чему можно применить сокращение "Vent"? "Вентиляция", "Вентилятор"? Вроде ничего больше на ум не приходит.

Т.к. полностью название звучит как "Уставка Vent", то принципиально понятно, что это какая-то уставка какого-то непонятного "Vent". Т.к. уставки температуры и влажности уже существуют, то выбор из небольшого оставшегося числа уставок, поддерживаемых Конструктором: СО2, Расхода, Давления, Скорости ступенчатого вентилятора. На название какой из этих уставок больше всего похожа "Уставка Vent"?

Правильно. "Уставка Vent" похожа на "Уставка Вентилятора".

Итак, к этому моменту у нас имеются следующие данные: мы имеем выход уставки вентилятора, имеющий два состояния, 0 и 100.

Заходим внутрь макроса и внимательно его рассматриваем:



Мы видим там выходы уставок: t, Rh и sp. Причём очевидно, что sp как-то связана с "Уставкой Vent". Следовательно, "sp" имеет прямое отношение к вентилятору.

Смотрим дальше и видим следующие сочетания слов, привязанных к "sp":
  • St max
  • St mid
  • St min
  • Sp max
  • Sp min
  • sp1
  • sp2
  • sp3
  • Ступеней SP

Логично предположить, что исходя из слов "Ступеней SP" - всё связанное со словом "SP" - это ступени. Например: sp1, sp2, sp3 - логично предполагаются, что это ступень 1, ступень 2, ступень 3.

Но не будем гадать, выставим на входе "Ступеней SP" какое-то число и посмотрим, что же изменилось в интерфейсе меню. Например, выставим "2":




Что же мы видим? ОГО! Не нужно редактировать надписей внутри макроса. Кстати, а какие именно надписи хочет отредактировать человек, просящий об этом? Влажность-то ничем не подписана - знай себе пользуй для своих дел...

Видим мы, что теперь можно задать не одну, максимальную, а целых три скорости.

Если задержать палец, то можно задать число от 50 до 100.

Опять смотрим на макрос и видим: "SP max" = 100, "SP min" = 50. Ага. Значит это минимум и максимум плавного задания.

Методом исключения понимаем, что три скорости на экране (полосочка напротив значка вентилятора имеет три деления, задать сейчас можно три скорости) соответствуют входам "St max", "St mid", "St min" (maximum, middle, minimum). Но пока непонятно, что означают числа на этих входах.




От этого момента я предлагаю вам самостоятельно закончить расследование. Тому, как его проводить, посвящена вся предыдущая часть текста. Подобным образом можно исследовать работу абсолютно любого компонента любого контроллера любого производителя, не влезая в его внутренности и не пытаясь взорвать себе мозг тем, что внутри компонента наворотил его проектировщик.

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


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

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

Последний раз редактировалось Arsie, 07.09.2018 в 12:48
Arsie вне форума   Ответить с цитированием