PDA

Просмотр полной версии : Деление в codesys V3



Пьер
28.07.2017, 14:06
Делю K(REAL):=24/10;
Результат получается 2, остатка после запятой нет. Почему????

Евгений Кислов
28.07.2017, 14:09
Делю K(REAL):=24/10;
Результат получается 2, остатка после запятой нет. Почему????

Потому что результат деления целых чисел является целым числом.

Делайте так:



K:=24.0/10;

Пьер
28.07.2017, 14:12
а если вот так
K:=%IW121(word)/10;

Пьер
28.07.2017, 14:15
WORD_TO_REAL ?

Евгений Кислов
28.07.2017, 14:16
а если вот так
K:=%IW121(word)/10;

Так делать не стоит в принципе. Привяжите в конфигурации Modbus переменную и работайте с ней, а не с ее адресом.



K:=WORD_TO_REAL(MyModbusVar)/10;

uni
01.08.2017, 10:00
Или так: K := real#24 / real#10;

Пьер
01.08.2017, 13:12
Или так: K := real#24 / real#10;

Это как так? Прям так и писать? Это новый синтаксис?

uni
01.08.2017, 14:11
Да, это новый синтаксис. Тип числа можно указывать до знака #. Не помню с какой версии появился.

capzap
01.08.2017, 15:42
Это как так? Прям так и писать? Это новый синтаксис?

ну как новый :), например я начал пользоваться этим после изучения документа http://www.kipshop.ru/CoDeSys/steps/codesys_v23_ru.pdf

Пьер
01.08.2017, 16:07
ну как новый :), например я начал пользоваться этим после изучения документа http://www.kipshop.ru/CoDeSys/steps/codesys_v23_ru.pdf

не доглядел! Теперь буду знать!
Спасибо вам!