[?]: Порядок байт в слове управления/состояния (Эндианизм)

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
Post Reply
dyakov72
Posts: 49
Joined: Tue Feb 28, 2006 3:02 pm
Location: Russia

[?]: Порядок байт в слове управления/состояния (Эндианизм)

Post by dyakov72 » Tue Jan 16, 2018 5:57 am

Добрый день...хотелось бы прояснить следующую ситуацию
Имеется допустим ЧП, который принимает и отсылает информацию в виде 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?

CoMod
Site Admin
Posts: 3969
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia
Contact:

Порядок байт в слове управления/состояния

Post by CoMod » Tue Jan 16, 2018 6:22 am

Слово управления Микромастер
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
Set frequensy converter ready for running

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 момент

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

dyakov72
Posts: 49
Joined: Tue Feb 28, 2006 3:02 pm
Location: Russia

Re: Эндианизм

Post by dyakov72 » Tue Jan 16, 2018 6:36 am

Мне интересно расположение байт в контроллере siemens, если чп работает или с большим или с малым эндианизмом.

CoMod
Site Admin
Posts: 3969
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia
Contact:

порядок байт

Post by CoMod » Tue Jan 16, 2018 8:01 am

Можешь посмотреть порядок байт в контроллере в симуляторе
Image

А вот при общении с Профибус устройством надо смотреть доку на устройство
Image

dyakov72
Posts: 49
Joined: Tue Feb 28, 2006 3:02 pm
Location: Russia

Re: Эндианизм

Post by dyakov72 » Tue Jan 16, 2018 9:01 am

Да..именно SM Profibus и S7-300...я и имел ввиду

dyakov72
Posts: 49
Joined: Tue Feb 28, 2006 3:02 pm
Location: Russia

Re: Эндианизм

Post by dyakov72 » Tue Jan 16, 2018 9:06 am

То есть если мы имеем в контроллере MD0 куда ЧП присылает свой статус в виде двойного слова, тогда при настройке эндианизма в ЧП будем иметь
при большом...статусное слово будет в MB2 и MB3
при малом.....статусное слово в MB0 и MB1

CoMod
Site Admin
Posts: 3969
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia
Contact:

Порядок байт в слове управления/состояния

Post by CoMod » Tue Jan 16, 2018 9:21 am

dyakov72 wrote:тогда при настройке эндианизма в ...
ваш консенсус режет глаз
Порядок байт в слове управления/состояния - для сименовского Микромастера и Синамикса привёл выше.
Давай конкретную модель частотника
можешь посмотреть viewtopic.php?f=9&t=16059 (если там ссылки живы)
То есть если мы имеем в контроллере MD0 куда ЧП присылает свой статус в виде двойного слова
Можно напрямую читать просто слова PIW Состояние, PIW Ток, PIW скорость... смысл читать двойное слово и заниматься эндианизмом в нём ?

dyakov72
Posts: 49
Joined: Tue Feb 28, 2006 3:02 pm
Location: Russia

Re: Эндианизм

Post by dyakov72 » Tue Jan 16, 2018 9:33 am

Разбираю чужой проект..вот и возник вопрос..расположения 16 битного слова в 32 битном.

dyakov72
Posts: 49
Joined: Tue Feb 28, 2006 3:02 pm
Location: Russia

Re: [?]: Порядок байт в слове управления/состояния (Эндианиз

Post by dyakov72 » Wed Jan 17, 2018 4:04 am

разобрался

Post Reply