4 считывание состояния контроллера двигателя, Пример – Инструкция по эксплуатации Festo Контроллеры двигателя CMMS-ST
Страница 108
5. Управление устройствами (Device Control)
108
Festo P.BE-CMMS-CO-SW-RU 1012a
5.1.4
Считывание состояния контроллера двигателя
Аналогично тому, как посредством комбинации нескольких битов
controlword могут быть
запущены различные переходы между состояниями, с помощью комбинации разных битов
statusword можно считывать, в каком состоянии находится контроллер двигателя.
В следующей таблице перечислены возможные состояния диаграммы состояний, а также
соответствующие комбинации битов, с помощью которых они отображаются в
statusword.
Бит 6
Бит 5
Бит 3
Бит 2
Бит 1
Бит 0
Состояние
0040
h
0020
h
0008
h
0004
h
0002
h
0001
h
Маска
Значение
Not_Ready_To_Switch_On 0
×
0 0 0 0 004F
h
0000
h
Switch_On_Disabled 1
×
0 0 0 0 004F
h
0040
h
Ready_to_Switch_On 0
1
0 0 0 1 006F
h
0021
h
Switched_On 0
1
0 0 1 1 006F
h
0023
h
Operation_Enable 0
1
0 1 1 1 006F
h
0027
h
Fault 0
×
1 0 0 0 004F
h
0008
h
Fault_Reaction_Active 0
×
1 1 1 1 004F
h
000F
h
Quick_Stop_Active 0
0
0 1 1 1 006F
h
0007
h
Табл. 5.4: Состояние устройства (x = не имеет значения)
ПРИМЕР
В примере выше показано, какие биты должны быть заданы в
controlword, чтобы разблокировать контроллер
двигателя. Теперь должно быть считано новое записанное состояние из
statusword:
Переход от
SWITCH_ON_DISABLED
к
OPERATION_ENABLE
:
1.)
Записать переход состояния 2 в
controlword.
2.)
Дождаться, когда отобразится состояние
READY_TO_SWITCH_ON в statusword.
Переход 2:
controlword = 0006
h
Ждать до (
statusword
и
006Fh) = 0021
h
*
1)
3.)
Переход состояния 3 и 4 можно совместно записать
в
controlword.
4.)
Дождаться, когда отобразится состояние
OPERATION_ENABLE в statusword.
Переход 3+4
:
controlword = 000F
h
Ждать до (
statusword
и
006Fh) = 0027
h
*
1)
Примечание:
Пример приведен, исходя из того, что в
controlword нет дополнительно заданных битов (для переходов важны
только биты 0 ... 3).
*
1)
Для идентификации состояний должны быть также проанализированы биты, которые не заданы (см. таблицу).
Поэтому
statusword должно маскироваться соответственно.