saint_ivan
Junior Member / Новичок
Участник № / Member № 6563
отправлено / posted
PROGRAM VAR_INPUT управление : BOOL; END_VAR VAR_OUTPUT скорость_упр : REAL; END_VAR VAR_OUTPUT припуск_упр : REAL; END_VAR VAR_INOUT скорость : REAL; END_VAR VAR_INOUT припуск : REAL; END_VAR VAR_INPUT n : REAL := 0; END_VAR VAR_INPUT m : REAL := 0; END_VAR
if {управление=true} then { for{n:=0} to {n=скорость} do {скорость_упр=скорость_упр+1;}end_for; for{m:=0} to {m=припуск} do {припуск_упр=припуск_упр+1;}end_for; скорость=скорость-скорость_упр; припуск=припуск-припуск_упр;} else {скорость_упр=0; припуск_упр=0;}end_if;
отправлено / posted
Все операторы сравнения должны быть с двойным знаком "=". Например, if {управление==true}
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
saint_ivan
Junior Member / Новичок
Участник № / Member № 6563
отправлено / posted
PROGRAM VAR_INPUT управление : BOOL; END_VAR VAR_OUTPUT скорость_упр : REAL; END_VAR VAR_OUTPUT припуск_упр : REAL; END_VAR VAR_INOUT скорость : REAL; END_VAR VAR_INOUT припуск : REAL; END_VAR VAR_INPUT n : REAL := 0; END_VAR VAR_INPUT m : REAL := 0; END_VAR
if {управление==true} then { for{n:=0} to {n==скорость} do {скорость_упр=скорость_упр+1;}end_for; for{m:=0} to {m==припуск} do {припуск_упр=припуск_упр+1;}end_for; скорость=скорость-скорость_упр; припуск=припуск-припуск_упр;} else {скорость_упр==0; припуск_упр=0;}end_if;
отправлено / posted
Использовать в качестве переменной цикла аргумент не вполне корректно. Лучше использовать локальную переменную (в прилагаемом примере - "i")/
PROGRAM VAR_INPUT управление : BOOL; END_VAR VAR_OUTPUT скорость_упр : REAL; END_VAR VAR_OUTPUT припуск_упр : REAL; END_VAR VAR_INOUT скорость : REAL; END_VAR VAR_INOUT припуск : REAL; END_VAR VAR i : REAL; END_VAR
if управление then
for i=0 to скорость do скорость_упр=скорость_упр+1; end_for; for i=0 to припуск do припуск_упр=припуск_упр+1; end_for; скорость=скорость-скорость_упр; припуск=припуск-припуск_упр; else скорость_упр=0; припуск_упр=0; end_if;