This is topic Программа ST in forum TRACE MODE 7 бесплатная базовая версия / TRACE MODE 7 free basic version at Форум TRACE MODE: техническая поддержка.
Писал программу на языке ST для алгоритма включения индикаторов разных состояний процесса. Всего 3 состояния (н-р, пуск, протяжка, финиш), создал для них 3 параметра типа out, тип данных bool. Также создал внутренние переменные (также 3 и типа bool). Алгоритм перехода включения и выключения индикаторов данных состояний зависит от 2-х параметров скоростей (скорость_текущая и скорость_заданная). Скорость_зад задается оператором через ГЭ, а скорость_текущая изменяется с получения сигнала от ПЛК.
Хотел написать сюда код программы, но нет разрешения.
Алгоритм для включения состояния ПУСК: если не был вкл pusk, и скорость_тек не равна скорости_зад, и скорость_тек > 4 (условие чисто для примера) у нас принимает значение 1 пуск_1 и пуск, данное значение должно запомниться.
Алгоритм для вкл состояния ПРОТЯЖКИ: если pusk = 1, и не vibeg = 1, и скорость_тек = скорости_зад, тогда vibeg, vibeg_1 = 1.
Алгоритм для вкл состояния ФИНИШ: если vibeg = 1, и не finish = 1, и скорость_тек < скорости_зад, вкл finish_1, finish = 1.
Если скорость_зад != 0 и скорость_тек 0 тогда все индикаторы выкл => все аргументы состояний и внутр переменные принимают значение 0.
При проверке программы и написания значения скорости_зад у меня моментально включается индикатор ВЫБЕГ. Если в начале программы я задаю не скорость_зад, а скорость_тек у меня вкл индикатор ПУСК, далее запишу в скорости_зад значение, у меня вкл инд ВЫБЕГ. Индикатор ФИНИШ вообще не работает при тех условиях, которые написаны в программе.
Вопрос: может быть я не правильно поставил типы параметром и типы данных для них, либо в самом коде что-то неверное, либо сам алгоритм ужасен?
Posted by Nico (Участник № / Member № 5342) on :
-внутренние переменные откуда берут свое значение ? -сделайте их аргументами тогда их значение между вызовами будет сохраняться