Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 1tool чтение переменной значением больше 32767
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
aleksandr.chyzh@gmail.com
Здравствуйте!Прошу помощи у программистов контроллеров Carel. Мне нужно по протоколу modbus RTU прочитать значение со счетчика тепла, которое на данный момент равно 45 000. Но в 1tool диапазон типа int 0 ... 32767 все что выше он переводит в число со знаком -. Возможно ли прочитать число больше 32767 и как это правильно сделать? Заранее спасибо.
Михайло
Перейдите с типа данных INTEGER (-32768...+32767) на UNSIGNED INTEGER (0...65535). С карелами не работал.
manjey73
А что вы будете делать, когда число перевалит за 65535 ?
aleksandr.chyzh@gmail.com
В Carel нет такого типа там только два int (-32767...32767), (0 ... 32767).
младшой
Тип long есть?
Можно попробовать считать данные в int (который -32767...32767), разбить на биты и из них собрать в long.
Ну и да, проблема 65535 остается актуальной.

С 1tool не работал, его возможностей не знаю.
aleksandr.chyzh@gmail.com
Нет там Long. (
svintus
Но есть возможность вызова функций, написанных на ST, там поддерживается INT_to_UINT. Со скуки набросал монстра в FBD для наглядности, для сравнения в ST то же самое занимает три строки, не считая объявления переменных.

Нажмите для просмотра прикрепленного файла
svintus

А если нужно значение просто на дисплее посмотреть, достаточно через атом Move_IX передать его в другую переменную INT, только с форматом без знака, типа IIIII, а ее уже на дисплей вынести.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.