Надо получить по 485 число типа INT. Из доступных элементов использую модуль входного регистра но данные типа word. А как получить Int?
Вид для печати
Надо получить по 485 число типа INT. Из доступных элементов использую модуль входного регистра но данные типа word. А как получить Int?
если очень сильно хочется можно поробовать WORD_TO_INT, но это не точно
что то я не нашел такого преобразования. Мне кажется что надо просто вычесть 32768
Что чему присвоить? Word 16 битовый и Int 16 битовый. Присвоить одно другому просто нельзя. Вы бы объяснили для чайника что нужно сделать.
Это почему нельзя?
Я всегда так делаю
Вложение 46185
Отрицательные числа в Int 16 представлены в дополнительном коде, в WORD это будет, например, 65300, а в Int как -236
Вложение 46186
А представление положительных совпадают
Вложение 46184
устройство передает данные в формате INT одним 16 битным регистром. Я могу считать только в формате Word. А как сделать обратное преобразование? Попробовал так как указано на скрине. По идее 0 в принимаемых данных (Word) должен преобразоваться в -32768 в формате INT. У меня так не получилось. Ноль получился нулем. Наверное надо как то опять разложить все по битам и собрать в формате INT ?
Да ни как. Codesys прекрасно справляется с преобразованием сам. Считали переменую в формате WORD. Присвоили её значение в программе новой переменой INT. Вложение 46207