Все значения в контроллере хранятся в двоичном коде - набор нулей и единиц. HEX, BCD, DEC??(видимо FLOAT - число с плавающей точкой) это только метод отображения данного значения. НО. Значение 20bcd - будет хранится в виде 10100 (соответствует 14hex) 20hex - 100000 (или 32bcd). 20float - 100000110100000 (соответствует 41A0hex или 16800bcd или 2,0e+1 float). То есть если вы ввели значение 256 - это ваше значение в bcd формате - он удобен для понимания. Для того что бы его преобразовать в число 2,56e+2 - то есть в 256 в формат float нужно использовать 2 инструкции: 1. Перевод 256 bcd в формат hex: BIN #256 d0 - в ячейке D0 получим число 100hex 2. Перевод 100hex в float FLT d0 d2 - в ячейках d2 и d3 будет лежать 2,56e+2 (числа в формате float занимают 2 слова) и с ним можно работать как с числом с плавающей точкой, используя инструкции для них (содержат букву F, например +F d2 d4 d6 - сложить d2 и d4 и сохранить в d6). Просто не нужно забывать в каком виде у вас хранится значение и использовать соответствующие инструкции для преобразования из одного формата в другой. Надеюсь ответил на ваш вопрос. Я его так понял:) Добавлено: Тип точки в контроллере для слов всегда оставляю CHANNEL - я так понимаю это отображать как есть без предварительного преобразования в нужный формат. Советую делать так же, а то запутаетесь, особенно при небольшом опыте написания программ.
|