This is topic Синтаксическая ошибка 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/001021.html

Posted by Илья В. (Участник № / Member № 5441) on :
 
Здравствуйте!подскажите где ошибка/и

PROGRAM
VAR_INPUT proc1 : REAL; END_VAR
VAR_INPUT proc2 : REAL; END_VAR
VAR_OUTPUT proc3 : REAL; END_VAR
VAR_OUTPUT y1 : REAL; END_VAR
VAR_OUTPUT y2 : REAL; END_VAR
VAR_OUTPUT y3 : REAL; END_VAR
VAR_INOUT dx : REAL; END_VAR
VAR i1 : INT; END_VAR
VAR i2 : INT; END_VAR
VAR i3 : INT; END_VAR
VAR i : INT; END_VAR

proc1=input['vvod proc1'];
proc2=input['vvod proc2'];
proc3=100-[proc1+proc2];
while [dx<400]
if [[dx>=0 and dx<<100] or [dx>>100 and dx<<200] or [dx>>200 and dx<<300] or [dx>>300 and dx<<400]]
then
dx=dx+1;
i=i+1;
else
if dx==100
then
i1=0;y1=0;
while y1>>[100-proc1]
y1=y1-1;
i1=i1+1;
end_while;
end_if;
if dx==200
then
i2=0;y2=100;
while y2>>[100-proc2]
y2=y2-1;
i2=i2+1;
end_while;
end_if;
if dx==300
then
i3=0;y3=100;
while y3>>[100-proc3]
y3=y3-1;
i3=i3+1;
end_while;
end_if;
end_if;
end_while;

END_PROGRAM

ругается на первый[самый глобальный if]
кстати круглые скобки везда заменены квадратными т.к иначе сообщение не отправлялось
 
Posted by KVV (Участник № / Member № 5308) on :
 
Цитирую справку:

" _>>_ или shr – сдвиг вправо на указанное число разрядов (без сохранения знака) (только для целочисленных значений); "

Аналогично и с "двойным меньше".

Вы пытаетесь сдвинуть REAL [Усмешка / Big Grin]
 
Posted by Илья В. (Участник № / Member № 5441) on :
 
эммм..))у меня до этого стояли просто знаки >,< и =

преподаватель в универе сказал,что нужно так,как я выложил,cпасибо ему [prey / молящийся]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Внимательно посмотрите разделы "Символьные операторы" и "Операторы Техно ST".
Оператор цикла выглядит следующим образом
while {выражение} do {последовательность предложений} end_while.
У Вас отсутствует do.

Однако, есть опасение, что Ваша программа не будет правильно работать по двум причинам:
- возможны беконечные циклы,
- нет четкого функционального представления о различиях между аргументами программы и внутренними переменными.

В функции технической поддержки не входят разбор и исправление кодов программ пользователей.
 
Posted by Илья В. (Участник № / Member № 5441) on :
 
Да,да,извините я уже и сам пришёл ко всему вышесказанному
 
Posted by Илья В. (Участник № / Member № 5441) on :
 
Я дико извиняюсь,но не мог ли бы мне кто нибудь обьяснить как в данной программе связать какраз внутренние переменные и аргументы программы?

Задача в том,чтобы привязать движение обьекта к циклически изменяющейся величине (чтобы он плавно перемещался исходя из зацикленной координаты dx=dx+1);
Но проблема в том, что к внутренней переменной движение я привязать естественно не могу,а аргумент плавно изменять не получается-он принимает значения или 0 или конечное.

Главная проблема конечно в том,что я не совсем разобрался в сути как уже написали выше,но если вам не трудно - поправте меня..

PROGRAM
VAR_INPUT proc1 : REAL; END_VAR
VAR_INPUT proc2 : REAL; END_VAR
VAR i1 : INT; END_VAR
VAR i2 : INT; END_VAR
VAR i3 : INT; END_VAR
VAR i : INT; END_VAR
VAR dx : INT; END_VAR
VAR y1 : INT; END_VAR
VAR y2 : INT; END_VAR
VAR y3 : INT; END_VAR
VAR proc3 : REAL; END_VAR


proc3=100-(proc1+proc2);
while (dx<400) do
if [[dx>=0 and dx<100] or [dx>100 and dx<200] or [dx>200 and dx<300] or [dx>300 and dx<400]]
then
dx=dx+1;
i=i+1;
else
if dx==100
then
i1=i;y1=100;
while y1>[100-proc1] do
y1=y1-1;
i1=i1+1;
end_while;
dx=dx+1;
end_if;
if dx==200
then
i2=i1;y2=100;
while y2>[100-proc2] do
y2=y2-1;
i2=i2+1;
end_while;
dx=dx+1;
end_if;
if dx==300
then
i3=i2;y3=100;
while y3>[100-proc3] do
y3=y3-1;
i3=i3+1;
end_while;
dx=dx+1;
end_if;
end_if;
end_while;

END_PROGRAM
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
По тексту программы нет возможности понять, какую задачу она решает.
Пришлите, пожалуйста, на адрес техподдержки (hotline@adastra.ru) описание задачи, хотя бы на уровне алгоритма (с указанием входных и выходных аргументов).
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2