пока на скрине всё логично, сперва считается разность, далее идет селектор который присваивает переменной Уменьшаемое значение из переменной СумматорРасходомерСмолы Screenshot 2025-02-06 150121.png
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Прикладываю проект
Всё как и сказал, работа не синхронизирована, выходы уже получили число 25, а входы (где число 24) получат в следующем цикле.
Но 1 шаг сделать нельзя, потому что счётчик насчитает ещё 25, до 50.
Вот смотрите, период BLINK увеличил с 2 мс до 200, сразу стало видно, 1 Вычитание.jpg
что у вас периодически уменьшаемое, становится меньше вычитаемого
А если поставить 20 мс, то через раз переменные становятся равны, то есть на вход успевает записаться число. 1 Равенство переменных.jpg
А через раз также разница в 1.
Последний раз редактировалось kondor3000; 06.02.2025 в 15:44.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Но дело не в этом, при 2 мс всё работает, а разные числа из за отсутствия синхронизации. 1 Синхронизация.jpg
Вот скрин, перенёс Разность -1 и Разность в одно место и всё чётко считает
Последний раз редактировалось kondor3000; 06.02.2025 в 16:16.
Ошибка вычитание1.jpg
Есть счет еще в одном месте, выделил зеленым.
Так же считает правильно.
Красным выделил, где считает неправильно.
Думаю вопрос не в шагах симулятора, т.к. в режиме реального времени на ПР103 эта ошибка так же проявляется.
На одном проходе программы эти строки должны были посчитаться одинаково. Если они не считаются одинаково, то как можно сказать, что в ходе работы оно будет считаться правильно.
Где здесь ошибка.