Надо получить по 485 число типа INT. Из доступных элементов использую модуль входного регистра но данные типа word. А как получить Int?
Надо получить по 485 число типа INT. Из доступных элементов использую модуль входного регистра но данные типа word. А как получить Int?
если очень сильно хочется можно поробовать WORD_TO_INT, но это не точно
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
что то я не нашел такого преобразования. Мне кажется что надо просто вычесть 32768
Что чему присвоить? Word 16 битовый и Int 16 битовый. Присвоить одно другому просто нельзя. Вы бы объяснили для чайника что нужно сделать.
Это почему нельзя?
Я всегда так делаю
Захват-4.png
Отрицательные числа в Int 16 представлены в дополнительном коде, в WORD это будет, например, 65300, а в Int как -236
Захват-2.png
А представление положительных совпадают
Захват-3.png
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
устройство передает данные в формате INT одним 16 битным регистром. Я могу считать только в формате Word. А как сделать обратное преобразование? Попробовал так как указано на скрине. По идее 0 в принимаемых данных (Word) должен преобразоваться в -32768 в формате INT. У меня так не получилось. Ноль получился нулем. Наверное надо как то опять разложить все по битам и собрать в формате INT ?
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Да ни как. Codesys прекрасно справляется с преобразованием сам. Считали переменую в формате WORD. Присвоили её значение в программе новой переменой INT. 1.jpg
Теория и практика иногда сталкиваются. Когда это случается, теория проигрывает. Всегда. (Закон Линуса)