This is topic Программа ST in forum TRACE MODE 7 бесплатная базовая версия / TRACE MODE 7 free basic version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/60/t/000132.html

Posted by remotebob (Участник № / Member № 9315) on :
 
Писал программу на языке 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 :
 
-внутренние переменные откуда берут свое значение ?
-сделайте их аргументами тогда их значение
между вызовами будет сохраняться
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2