#138
Сообщение
ecoins » 29.11.2017{, 16:29}
Сделал простой тест передачи из KaScada передачи двух задатчиков:
дробное число (системные регистры 10, 11)
и целое число (системный регистр 12).
Шлюз 1 настроен "системный регистр 10 в регистр ModBus FLProg 10, передача 1 регистра.
Шлюз 2 настроен "системный регистр 12 в регистр ModBus FLProg 12, передача 1 регистра.
12 регистр (целое число) принимается правильно.
10-11 регистр передается:
Задатчик KaScada = 0.0 --> FLProg(10,11 регистры) 15 0
1.0 --> FLProg(10,11 регистры) 15 16256
2.0 --> FLProg(10,11 регистры) 15 16384
-1.0 --> FLProg(10,11 регистры) 15 -16512 -2.0 --> FLProg(10,11 регистры) 15 -16384
10000.0 --> FLProg(10,11 регистры) 15 17948
-10000.0 --> FLProg(10,11 регистры) 15 -14820
//--------------
Что с этим делать в FLProg не соображаю, наверное можно конвентировать по определенным правилам.
Предположу, что порядок байт дробного числа в KaScada (который заточен под OWEN) и в FLProg не совпадает. На форуме была такая тема, и вроде даже разработчик планирует предусмотреть конфигурацию под любой порядок байт.
Было бы неплохо иметь возможность конвентировать дробные значения непосредственно в KaScaда, это бы сохранило универсальность разрабатываемых контроллеров под разные Mastera.
----------
А пока буду осуществлять обмен в формате integer - один регистр/одна переменная.
---------
В связи с изложенным повторю вопрос: как в KaScada целое число (например 2632) поделить на 100 и отобразить его на индикаторе в формате Float - должно отобразиться 26.32.
-
Вложения
-
- test_float_kasc.flp
- (108.89 КБ) 46 скачиваний