Ваша функция реализует ряд Тейлора для синуса, но содержит критические недостатки для промышленного применения:
🔴 Проблемы:
Неэффективное вычисление степени и факториала
На каждой итерации заново вычисляются x^(2n+1) и (2n+1)! через вложенные циклы — это катастрофически медленно на ПЛК (каждая итерация требует ~2n операций умножения).
Переполнение факториала
Для 32-битного REAL (IEEE 754) факториал переполняется уже при (2n+1)! > 3.4×10³⁸ → n ≥ 11. При этом для точности 1E-6 достаточно 4–5 итераций.
Неточная нормализация угла
Цикл WHILE ABS(x) > 2π работает медленно для больших углов (например, при x = 1000 радиан потребуется ~160 итераций). Константа π задана с недостаточной точностью (9 знаков вместо 7–8 значащих для REAL).
Избыточная нормализация до [-2π, 2π]
Для синуса достаточно приведения к [-π, π] — это ускоряет сходимость ряда в 2 раза.