Вложений: 2
ПЛК160 + ПЧ Eaton DC1 по modbus
Столкнулся с необходимостью управлять преобразователем частоты Eaton DC1. Застрял на прочтении слова состояния и неисправности (они объединены в одно слово).
Вложение 20576
То есть неисправность шифруется шестнадцатеричным кодом во втором байте слова состояния и неисправности.
Вложение 20577
Соответственно, как я понимаю мне нужно вырезать нужный кусок информации из WORDа и его анализировать. Но с операторами сдвига у меня мягко говоря пока туго (то есть вообще ещё не сталкивался).
Если я правильно понял, то последовательность действий примерно такая:
Код:
VAR
pt :POINTER TO WORD;
avar_pch :BYTE;
stat_pch :WORD;
code_err :WORD;
END_VAR
pt:=ADR(stat_pch);
avar_pch:=WORD_TO_BYTE(SHR(pt^,??)); (*Смещаемся на 8 бит (или не 8??) вправо и остальное заполняем нулями*)
(*Анализируем коды ошибок*)
CASE avar_pch OF
16#00: code_err:=1;
16#01: code_err:=2;
...
...
END_CASE
Но почти уверен, что код не совсем верен. Так как на руках преобразователя ещё нет, хотел бы проконсультироваться по коду у профессионалов :rolleyes: