1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

s7 417-4 H , плавает точность

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)

Модератор: Глоб.модераторы

Ответить
Аватара пользователя

Автор темы
sanches
здесь недавно
здесь недавно
Сообщения: 11
Зарегистрирован: 18 янв 2023, 07:29
Имя: вова
Страна: россия
город/регион: березники

s7 417-4 H , плавает точность

Сообщение sanches »

ВЗдравствуйте, многоуважажемые специалисты АСУТП. Помогите своими соображениями относительно следующего,

Есть CFC (работы двигателя), используется блок (FB) счетчик наработки.

Описание алгоритма: Счетчик1 (Float*) накидывает по инкременту* (шаг, для разных OB32..38). Когда > 60, то добавить к счетчику2 0,01666667 (это 1/60) и счетчик1 сбросить в 0.
почему то часть чартов накидывает в счетчик2 0,0166667, а часть 0,017578125. Пробовал в последовательности выполнения (run sequence) поставить пораньше, нет изменений. Онлайн инкремент для счетчика 1 верный.

Везде по логике, одна и та же FB. Константой происано увеличение счетчика2.

Сспасибо за внимание и помощь !
01110011011010010110010101101101011001010110111001110011 :ext_book:

makesstr
освоился
освоился
Сообщения: 221
Зарегистрирован: 19 сен 2019, 10:09
Имя: Макс
Страна: Россия
город/регион: Славянск-на-Кубани
Благодарил (а): 5 раз
Поблагодарили: 38 раз

s7 417-4 H , плавает точность

Сообщение makesstr »

Float (IEE 754) это формат данных с ограниченной точностью, чем больше число - тем больше погрешность.
[+] Можете попробовать перейти на Float 64 bit, будет точнее
https://support.industry.siemens.com/cs ... 0&lc=en-BH
Или считайте всю математику в INT/DINT, а результат/сколько знаков после запятой и конвертируйте во Float.
WinCC 7.4 SP1 Upd15, Step5.6
Ответить

Вернуться в «Simatic Step7»