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


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

Posted by Vjam (Участник № / Member № 2261) on :
 
Работоспособна ли такая конструкция, или нет. Компилятор говорит что все нормально.
Сделано как пример
PROGRAM
VAR_INPUT Объем_заказа : REAL := 10; END_VAR
VAR_OUTPUT Коэф : REAL; END_VAR

while Объем_заказа > 0
do if Объем_заказа > 1
then Коэф = 1;
else Коэф = Объем_заказа;
end_if;
end_while;

END_PROGRAM
Спасибо. У меня данная программа не работает, т.е. аргумент -Коэф- не меняет значение
 
Posted by Гусев Александр Петрович (Участник № / Member № 2148) on :
 
эта конструкция неработоспособна. у вас здесь бесконечный цикл. переменная Объем_заказа не будет обновлять свое значение во время выполнения программы и выхода из цикла и самой программы никогда не произойдет. рассматривайте программу как функцию которая вызывается каждый раз при пересчете каналов. т. е. вам нужно просто написать:
if Объем_заказа > 1 then
Коэф := 1;
else
Коэф := Объем_заказа;
end_if;
 
Posted by Vjam (Участник № / Member № 2261) on :
 
предполагается что Объем_заказа будет уменьшаться до 0 с каждым циклом Объем_заказа = Объем_заказа-1. просто не доконца передана программа. Сейчас переделаю. Вопрос в том , что впринципе работоспособна ли конструкция, (как в Си)
 
Posted by Vjam (Участник № / Member № 2261) on :
 
Нашел ошибку. дальше по программе. спасибо за помощь
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2