Тема: MyPIDv7
Показать сообщение отдельно
Старый 08.12.2021, 13:58   #9
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 131
Благодарил(а): 15 раз(а)
Поблагодарили: 662 раз(а) в 606 сообщениях
По умолчанию Ответ: MyPIDv7

Цитата:
Сообщение от ufo-root Посмотреть сообщение
Воздействие на оборудование (выход PID) от 0 до 1000, так и надо.

отрицательная уставка, в данном случае

На входе "Сброс" = 1
на входе "Data" = 0
на выходе "U" не равно Data
Макрос MyPID_v7 не является нашим библиотечным макросом и не распространяется нами как самостоятельный программный компонент. Поэтому ваши вопросы нужно направить тому человеку, который вам дал этот макрос. Если вы лично вытаскиваете компонент из окружающей его функции, то будьте добры изучить эту функцию и особенности применения компонента в её составе.

Что касается вашей картинки, число на выходе отличается от нуля шестым знаком после запятой. Это укладывается в точность вычислений по формату 32-разрядного float. Другими словами, число на выходе находится в поле допуска нуля. Всё это рассказывается на первом курсе института, где объясняют, что числа с плавающей точкой обладают конечной точностью и прямое сравнение их с константами недопустимо. Ноль - это константа. Сравнение должно выполняться по формуле "U - 0 <= поле допуска". Если неравенство выполняется, то U равно нулю.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием