Просмотр полной версии : Преобразование кода Грея в Двоичный код или в десятичный код
HerrOberst
29.01.2015, 16:28
Добрый день господа, столкнулся с такой проблемой: был старый контроллер Simatic S5 и стоял там энкодер абсолютный на выходе которого использовалось 12 входов дискретных они же 12 байт по коду Грея. помогите ребята программу всю написали осталось только код Грея в двоичный перевести для измерения высоты. заранее благодарен.
Добрый день господа, столкнулся с такой проблемой: был старый контроллер Simatic S5 и стоял там энкодер абсолютный на выходе которого использовалось 12 входов дискретных они же 12 байт по коду Грея. помогите ребята программу всю написали осталось только код Грея в двоичный перевести для измерения высоты. заранее благодарен.
Как-то так
FUNCTION GRAY_TO_WORD : WORD
VAR_INPUT
IN:WORD;
END_VAR
GRAY_TO_WORD:=0;
WHILE IN >0 DO
GRAY_TO_WORD:=GRAY_TO_WORD XOR IN;
IN:=SHR(IN,1);
END_WHILE
Kod_BIN:=GRAY_TO_WORD(Kod_GRAY);
ЗЫ.
В OSCAT есть такая функция, но только для восьми разрядного кода
FUNCTION GRAY_TO_BYTE : BYTE
VAR_INPUT
IN : BYTE;
END_VAR
GRAY_TO_BYTE := SHR(IN,4) XOR IN;
GRAY_TO_BYTE := SHR(GRAY_TO_BYTE,2) XOR GRAY_TO_BYTE;
GRAY_TO_BYTE := SHR(GRAY_TO_BYTE,1) XOR GRAY_TO_BYTE;
Василий Кашуба
29.01.2015, 21:32
Добрый день господа, столкнулся с такой проблемой: был старый контроллер Simatic S5 и стоял там энкодер абсолютный на выходе которого использовалось 12 входов дискретных они же 12 байт по коду Грея. помогите ребята программу всю написали осталось только код Грея в двоичный перевести для измерения высоты. заранее благодарен.
Синим выделено преобразование Двоичного кода в код Грея, а зелёным наоборот Код Грея в Двоичный код.16458
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot