Просмотр полной версии : ПЛК100 как получить по 485 число типа INT
Владимир1967
14.12.2019, 22:50
Надо получить по 485 число типа INT. Из доступных элементов использую модуль входного регистра но данные типа word. А как получить Int?
если очень сильно хочется можно поробовать WORD_TO_INT, но это не точно
Владимир1967
14.12.2019, 23:14
что то я не нашел такого преобразования. Мне кажется что надо просто вычесть 32768
Владимир1967
15.12.2019, 08:05
Что чему присвоить? Word 16 битовый и Int 16 битовый. Присвоить одно другому просто нельзя. Вы бы объяснили для чайника что нужно сделать.
Что чему присвоить? Word 16 битовый и Int 16 битовый. Присвоить одно другому просто нельзя. Вы бы объяснили для чайника что нужно сделать.
Это почему нельзя?
Я всегда так делаю
46185
Отрицательные числа в Int 16 представлены в дополнительном коде, в WORD это будет, например, 65300, а в Int как -236
46186
А представление положительных совпадают
46184
Владимир1967
15.12.2019, 11:20
устройство передает данные в формате INT одним 16 битным регистром. Я могу считать только в формате Word. А как сделать обратное преобразование? Попробовал так как указано на скрине. По идее 0 в принимаемых данных (Word) должен преобразоваться в -32768 в формате INT. У меня так не получилось. Ноль получился нулем. Наверное надо как то опять разложить все по битам и собрать в формате INT ?
По идее ... Наверное надо как то опять разложить все по битам и собрать в формате INT ?
по подробнее как это из 16битного числа при условии что все разряды равно нулю, получить любое число отличное от нуля?
устройство передает данные в формате INT одним 16 битным регистром. Я могу считать только в формате Word. А как сделать обратное преобразование?
Да ни как. Codesys прекрасно справляется с преобразованием сам. Считали переменую в формате WORD. Присвоили её значение в программе новой переменой INT. 46207
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot