Добрый день...хотелось бы прояснить следующую ситуацию
Имеется допустим ЧП, который принимает и отсылает информацию в виде 32 битных слов. Предположим слово статуса, которое занимает биты с 0 по 15. На ЧП выставлен большой эндианизм, следовательно
31бит............................ 0бит
byte 0 | byte 1 | byte 2 | byte 3 - структура в ЧП....слово статуса в байте 2 и 3
PLC Siemens работает с большим эндианизмом, следовательно при чтении из ЧП в PLC в MD0
MB0 | MB1 | MB2 | MB3 - структура в PLC...слово состояния в MB2 и MB3
Если на ЧП выставлен малый эндианизм, то
31бит............................ 0бит
byte 3 | byte 2 | byte 1 | byte 0 - структура в ЧП....слово статуса в байте 1 и 0
Тогда при чтении в PLC будет ли верно
MB0=byte0 | MB1=byte1 | MB2=byte2 | MB3=byte3...структура в PLC.....слово статуса в MB0 и MB1?
[?]: Порядок байт в слове управления/состояния (Эндианизм)
-
- Posts: 56
- Joined: Tue Feb 28, 2006 3:02 pm
- Location: Russia
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
Порядок байт в слове управления/состояния
Слово управления Микромастер
Show
Set frequensy converter ready for running.
14.0 Бит 08 JOG вправо 0 НЕТ 1 ДА CW_ClockW_inching
14.1 09 JOG влево 0 НЕТ 1 ДА CW_CClockW_inching
14.2 10 Управление от контроллера (AG) 0 НЕТ 1 ДА CW_Setpoint_valid
14.3 11 Реверсирование 0 НЕТ 1 ДА CW_Setpoint_inverted
14.4 13 Потенциометр двигателя вверх 0 НЕТ 1 ДА CW_Not_used1
14.5 14 Потенциометр двигателя вниз 0 НЕТ 1 ДА CW_Pot_UP
14.6 15 CDS Бит (Local/Remote) 0 НЕТ 1 ДА CW_Pot_DOWN
14.7 CW_Not_used2
15.0 Бит 00 ВКЛ / ОТКЛ 0 НЕТ 1 ДА CW_Pusk Команда пуска двигателя
15.1 01 ОТКЛ2 : Электр. останов. 0 ДА 1 НЕТ СW_OFF2
15.2 02 ОТКЛ3 : Быстрая остановка 0 ДА 1 НЕТ CW_OFF3
15.3 03 Деблокировка импульсов 0 НЕТ 1 ДА CW_enable
15.4 04 Деблокировка датчика разгона (HLG) 0 НЕТ 1 ДА CW_Op_condition
15.5 05 Запуск HLG 0 НЕТ 1 ДА CW_enable_RFG
15.6 06 Деблокировка заданной величины 0 НЕТ 1 ДА CW_enable_setpoint
15.7 07 Квитирование сбоя 0 НЕТ 1 ДА CW_Ack_fault
16 CW_freq_setpoint Задание частоты 4000 hex = 50Hz
18 CW_Word_3
20 CW_Word_4
14.0 Бит 08 JOG вправо 0 НЕТ 1 ДА CW_ClockW_inching
14.1 09 JOG влево 0 НЕТ 1 ДА CW_CClockW_inching
14.2 10 Управление от контроллера (AG) 0 НЕТ 1 ДА CW_Setpoint_valid
14.3 11 Реверсирование 0 НЕТ 1 ДА CW_Setpoint_inverted
14.4 13 Потенциометр двигателя вверх 0 НЕТ 1 ДА CW_Not_used1
14.5 14 Потенциометр двигателя вниз 0 НЕТ 1 ДА CW_Pot_UP
14.6 15 CDS Бит (Local/Remote) 0 НЕТ 1 ДА CW_Pot_DOWN
14.7 CW_Not_used2
15.0 Бит 00 ВКЛ / ОТКЛ 0 НЕТ 1 ДА CW_Pusk Команда пуска двигателя
15.1 01 ОТКЛ2 : Электр. останов. 0 ДА 1 НЕТ СW_OFF2
15.2 02 ОТКЛ3 : Быстрая остановка 0 ДА 1 НЕТ CW_OFF3
15.3 03 Деблокировка импульсов 0 НЕТ 1 ДА CW_enable
15.4 04 Деблокировка датчика разгона (HLG) 0 НЕТ 1 ДА CW_Op_condition
15.5 05 Запуск HLG 0 НЕТ 1 ДА CW_enable_RFG
15.6 06 Деблокировка заданной величины 0 НЕТ 1 ДА CW_enable_setpoint
15.7 07 Квитирование сбоя 0 НЕТ 1 ДА CW_Ack_fault
16 CW_freq_setpoint Задание частоты 4000 hex = 50Hz
18 CW_Word_3
20 CW_Word_4
Code: Select all
L W#16#47E //000.0100.0111.1111
T DB34.DBW 14
.....
//Установка битов управления
.....
CALL "DPWR_DAT"
LADDR :=W#16#1D8 //272 in HEX 0110
RECORD :=P#DB34.DBX14.0 BYTE 12 //db34
RET_VAL:="MH1".ErrorSFC15
Слово состояния Микромастер
Show
Читать состояние частотника 8 байт
r2051[0]=52 = r0052 слово состояние, см. ниже биты
Бит 00 Готов к включению 1 ДА Drive ready 0 NO 1 YES
Бит 01 Готов к работе 1 ДА Drive ready to run 0 NO 1 YES
Бит 02 Работа/деблокирование импульсов 1 ДА Drive running 0 NO 1 YES
Бит 03 Неисправность активна 1 ДА Drive fault active 0 NO 1 YES
Бит 04 ВЫКЛ2 активно 0 ДА OFF2 active 0 YES 1 NO
Бит 05 ВЫКЛ3 активно 0 ДА OFF3 active 0 YES 1 NO
Бит 06 Блокировка включения активна 1 ДА ON inhibit active 0 NO 1 YES
Бит 07 Предупреждение активно 1 ДА Drive warning active 0 NO 1 YES
Бит 08 Рассогласование уставки и фактического значения 0 ДА Deviation setpoint
/ act. value 0 YES 1 NO
Бит 09 Управление AG (PZD-управление) 1 ДА PZD control 0 NO 1 YES
Бит 10 Достигнута максимальная частота 1 ДА Maximum frequency reached 0 NO 1 YES
Бит 11 Предупреждение: граничное значение тока двигателя 0 ДА Warning: Motor
current limit 0 YES 1 NO
Бит 12 Тормоз двигателя активен 1 ДА Motor holding brake active 0 NO 1 YES
r2051[1]=21 = r0021 текущая частота
r2051[2]=27 = r0027 текущий ток
r2051[3]=31 = r0031 момент
r2051[0]=52 = r0052 слово состояние, см. ниже биты
Бит 00 Готов к включению 1 ДА Drive ready 0 NO 1 YES
Бит 01 Готов к работе 1 ДА Drive ready to run 0 NO 1 YES
Бит 02 Работа/деблокирование импульсов 1 ДА Drive running 0 NO 1 YES
Бит 03 Неисправность активна 1 ДА Drive fault active 0 NO 1 YES
Бит 04 ВЫКЛ2 активно 0 ДА OFF2 active 0 YES 1 NO
Бит 05 ВЫКЛ3 активно 0 ДА OFF3 active 0 YES 1 NO
Бит 06 Блокировка включения активна 1 ДА ON inhibit active 0 NO 1 YES
Бит 07 Предупреждение активно 1 ДА Drive warning active 0 NO 1 YES
Бит 08 Рассогласование уставки и фактического значения 0 ДА Deviation setpoint
/ act. value 0 YES 1 NO
Бит 09 Управление AG (PZD-управление) 1 ДА PZD control 0 NO 1 YES
Бит 10 Достигнута максимальная частота 1 ДА Maximum frequency reached 0 NO 1 YES
Бит 11 Предупреждение: граничное значение тока двигателя 0 ДА Warning: Motor
current limit 0 YES 1 NO
Бит 12 Тормоз двигателя активен 1 ДА Motor holding brake active 0 NO 1 YES
r2051[1]=21 = r0021 текущая частота
r2051[2]=27 = r0027 текущий ток
r2051[3]=31 = r0031 момент
Code: Select all
//частотник 5
CALL "DPRD_DAT"
LADDR :=W#16#1D8 //adress 304 in HEX 0130
RET_VAL:="MH1".ErrorSFC14
RECORD :=P#DB34.DBX0.0 BYTE 12 //db34
-
- Posts: 56
- Joined: Tue Feb 28, 2006 3:02 pm
- Location: Russia
Re: Эндианизм
Мне интересно расположение байт в контроллере siemens, если чп работает или с большим или с малым эндианизмом.
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
-
- Posts: 56
- Joined: Tue Feb 28, 2006 3:02 pm
- Location: Russia
Re: Эндианизм
Да..именно SM Profibus и S7-300...я и имел ввиду
-
- Posts: 56
- Joined: Tue Feb 28, 2006 3:02 pm
- Location: Russia
Re: Эндианизм
То есть если мы имеем в контроллере MD0 куда ЧП присылает свой статус в виде двойного слова, тогда при настройке эндианизма в ЧП будем иметь
при большом...статусное слово будет в MB2 и MB3
при малом.....статусное слово в MB0 и MB1
при большом...статусное слово будет в MB2 и MB3
при малом.....статусное слово в MB0 и MB1
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
Порядок байт в слове управления/состояния
ваш консенсус режет глазdyakov72 wrote:тогда при настройке эндианизма в ...
Порядок байт в слове управления/состояния - для сименовского Микромастера и Синамикса привёл выше.
Давай конкретную модель частотника
можешь посмотреть viewtopic.php?f=9&t=16059 (если там ссылки живы)
Можно напрямую читать просто слова PIW Состояние, PIW Ток, PIW скорость... смысл читать двойное слово и заниматься эндианизмом в нём ?То есть если мы имеем в контроллере MD0 куда ЧП присылает свой статус в виде двойного слова
-
- Posts: 56
- Joined: Tue Feb 28, 2006 3:02 pm
- Location: Russia
Re: Эндианизм
Разбираю чужой проект..вот и возник вопрос..расположения 16 битного слова в 32 битном.
-
- Posts: 56
- Joined: Tue Feb 28, 2006 3:02 pm
- Location: Russia