PDA

Просмотр полной версии : ST.



_Александр_
19.08.2011, 19:45
Подскажите, как в ST прописать (real_to_int),(int_to_real)?

Николаев Андрей
19.08.2011, 20:00
В общем то ровно так, как Вы и написали...
А еще есть ассистент ввода - F2.
И хелп.

_Александр_
19.08.2011, 20:26
В общем то ровно так, как Вы и написали...
А еще есть ассистент ввода - F2.
И хелп.

Все так и делаю. Но нехватает знаний. Сейчас не могу показать проект. Примерно так: - выход OUT(REAL) подается на вход IN(INT).
OUT=>:REAL_TO_INT(IN);... ?

_Александр_
19.08.2011, 20:50
Да, так
....
Так и делаю. Но мне при кампиляции выдает:- "Задайте значимый операнд."

Terrano1992
19.08.2011, 21:29
выход OUT(REAL) подается на вход IN(INT).
OUT=>:REAL_TO_INT(IN);... ?
А почему бы не так все это записать?
IN := REAL_TO_INT(OUT);

lara197a
19.08.2011, 21:49
вычисления лучше выносить за функцию(рекомендуется). но должно и так работать(но не рекомендуется).
обычно когда спешишь, и вносишь изменения. то допускаешь первый способ, работает, проверено.

Николаев Андрей
19.08.2011, 22:52
Все так и делаю. Но нехватает знаний. Сейчас не могу показать проект. Примерно так: - выход OUT(REAL) подается на вход IN(INT).
OUT=>:REAL_TO_INT(IN);... ?

Может я что то путаю, но такую запись CoDeSys и не должен принимать.
Нет у него такого оператора =>:
Рекомендую, тем более в начале пути, работать по хелпу:
perem_int := real_to_int (perem_real);

_Александр_
20.08.2011, 04:14
Спасибо всем за советы. Пробовать буду уже в понедельник на работе. Ещё раз спасибо. Проект составлен в FBD. Отлично работает. Прежний мой вопрос (А>B ...) является дополнением. В FBD преобразования (..._то_...) работают. В ST тот-же проект тормозит. Кампилируется всё, кроме преобразований. Ещё раз спасибо.

lara197a
20.08.2011, 07:37
Извините, не совсем понял ситуацию.
В Вашем случае ОUT=> -это выход функции или функционального блока.
Переменная, которая подставляется с права, должна строго соответствовать типу переменной OUT.
Потом, Вы можете преобразовать её в нужный тип.
например:
WAR
OUT:WORD;
IN_1:WORD;
IN:BOOL;
END_WAR
......
(...
OUT=>IN1);
IN:=WORD_TO_BOOL(IN_1);

Если это не функция или ФБ, то как писал Андрей Н.

Николаев Андрей
20.08.2011, 08:47
Спасибо всем за советы. Пробовать буду уже в понедельник на работе. Ещё раз спасибо. Проект составлен в FBD. Отлично работает. Прежний мой вопрос (А>B ...) является дополнением. В FBD преобразования (..._то_...) работают. В ST тот-же проект тормозит. Кампилируется всё, кроме преобразований. Ещё раз спасибо.

Тот же код в st не будет выполнятся:
В FBD присвоение идет с лева на право, а в ST с права на лево.

capzap
20.08.2011, 08:59
Все так и делаю. Но нехватает знаний. Сейчас не могу показать проект. Примерно так: - выход OUT(REAL) подается на вход IN(INT).
OUT=>:REAL_TO_INT(IN);... ?

куда_то_там(IN:=REAL_TO_INT(чего_то_там.OUT));
В приведенном Вами примере, написан полный бред который работать не будет, в место Вашего IN должно стоять что будет преобразовываться, а не во что