Правила написания скриптов в драйвере Securix Northern Driver
Скрипт для драйвера Northern представляет собой набор команд на
языке самой панели. Если команд несколько, т.е. больше одной,
они должны разделяться точкой с запятой. Запись команд допустима
как в одну строку, так и в несколько. Пробелы
перед началом каждой команды ставить необязательно. Например, допустимы обе
записи:
V=1 I 1 0 0 S;O=1 O 1 E;P=1 I 1 O 1 N N
или
V=1 I 1 0 0 S;
O=1 O 1 E;
P=1 I 1 O 1 N N
Драйвер Northern реализует скрипты для следующих сущностей:
- Для петли панелей
- Для каждой панели
- Для каждого считывателя в панели.
Скрипты поддерживают следующие макрокоманды:
- HOLIDAY ON - включение праздника для панели. Поддерживается для
петли панелей, для каждой панели и для считывателя.
- HOLIDAY OFF - выключение праздника для панели. Поддерживается для
петли панелей, для каждой панели и для считывателя.
- RESTART - полная перезагрузка панели. Поддерживается только для каждой
панели.
Скрипты для петли панелей
Скрипт для петли панелей предствляет собой набор команд на
языке самой панели, разделенных точкой с запятой. Исключение составляют
макросы HOLIDAY ON и HOLIDAY OFF. Поддерживаются широковещательные команды
с адресом 0. Можно установить/отключить праздник для конкретной панели
или для всей петли.
Например, включение праздника для 3-й панели в петле будет
выглядеть следующим образом:
HOLIDAY=3 ON
Соответственно, выключение праздника для этой же панели будет выглядеть
как:
HOLIDAY=3 OFF
Для того, чтобы установить/отключить праздник для всей петли панелей
после знака ровно нужно поставить ноль.
HOLIDAY=0 ON
Данная строка устанавливает праздник для всей петли панелей. Максимальное
количество скриптов для петли панелей - 255.
Скрипты для панели
Скрипт для панели аналогичен скрипту для петли панелей. Однако
стоит выделить некоторые дополнительные возможности, присущие скрипту панели.
Скрипт поддерживает параметр %p. Вместо него подставляется адрес данной
панели. Например, запись
O=%p O 1 E
для панели с адресом 5 будет переведена драйвером как
O=5 O 1 E
Также поддерживаются простейшие арифметические операции (сложение и вычитание). Например,
запись
O=%(p+1) O 1 E
для панели с адресом 5 будет переведена драйвером как
O=6 O 1 E
или
O=%(p-3) O 1 E
будет интерпретировано как
O=2 O 1 E
Панелью также поддерживаются макросы HOLYDAY ON, HOLYDAY OFF и
RESTART. Синтаксис по включению/отключению праздников для панели такой же,
как и в скрипте для петли панелей (см. скрипты
для петли панелей). При применении макроса RESTART происходит переинициализация
панели с последующей перегрузкой в панель временных зон и
карт доступа. Эта операция может занять достаточно много времени
и повысить информационную загрузку петли. Поэтому перед применением данной
команды следует подумать о необходимости ее исполнения. Макрос RESTART
может исполнятся как отдельная команда или как одна из
команд в скрипте. Например:
RESTART;
HOLYDAY=%p ON;
V=%p I 1 0 0 S
Максимальное количество скриптов для панели - 255.
Следует отметить, что скрипты также могут применяться для установки
дополнительных настроек панели в атрибуте Initialization. Если в поле
инициализации будет присутствовать команда I, все предыдущие настройки для
панели будут игнорированы и будут использованы только настройки, указанные
в команде I. Если используется команда I, то в
ней обязательно должны присутствовать настройки B и Z0. Это
необходимо для корректной работы драйвера с картами доступа. Например:
I=%p B N G Z0
Макрос RESTART не будет работать в атрибуте Initialization, т.к.
в данном случае он не имеет смысла.
Скрипты для считывателя.
Скрипт для считывателя включает в себя правила скрипта для
панели. Исключение составляет макрос RESTART, который для считывателя не
применим. Скрипт поддерживает параметр %r. Вместо него подставляется адрес
данного считывателя. Например, запись
V=%p I %r 0 0 S;
для панели с адресом 5 и 3-м считывателем будет
переведена драйвером как
V=5 I 3 0 0 S;
Также поддерживаются простейшие арифметические операции (сложение и вычитание). Например,
подобная запись
P=%p I %(r+4) O %r P N
для панели с адресом 5 и 3-м считывателем будет
переведена драйвером как
P=5 I 7 O 3 P N
Скрипты считывателя используются для исполнения следующих команд:
- Приведение считывателя в нормальное состояние. Атрибут NormalState.
- Блокировка считывателя. Атрибут LockState.
- Разблокировка считывателя. Атрибут UnLockState.
- Открыть считыватель на время. Атрибут OpenState.
По умолчанию предполагается, что на каждую дверь приходится по
одному считывателю и номер входа совпадает с номером считывателя.
На основании этого вводится еще один параметр - %st.
Данный параметр обозначает время шунтирования входа панели, которое задается
в конфигурации входа. Поэтому если в скрипте для считывателя
встречается параметр %st, подставляется значение времени шунтирования входа, номер
которого равен номеру считывателя. Например для пятой панели и
второго считывателя данная запись
V=%p I %r %st 0 C K O %r
Будет интерпретирована как
V=5 I 2 15 0 C K O 2
В данном случае %st - время шунтирования второго входа.
По умолчанию время шунтирования для каждого входа равно 15
с. Время шунтирования изменяется в конфигурации входа от 0-63
с (параметр ShuntTime).
Так как предполагается, что на каждую дверь приходится по
одному считывателю в командах для считывателей приведены скрипты по
умолчанию. Данные скрипты универсальные и применимы для каждого из
2-х (Northern 1000-II/N-800) или 4-x (Northern 1000-III/IV) считывателей панели.
Для приведения считывателя в нормальное состояние используется следующий скрипт:
A=%p %r O %r;
O=%p O %r D;
V=%p I %r %st 0 C K O %r;
P=%p I %(r+4) O %r P N
Для блокировки считывателя используется следующий скрипт:
A=%p %r O 5;
V=%p I %r 0 0 S;
P=%p I %(r+4) O %r N N;
V=%p I %(r+4) 0 0 S;
O=%p O %r D
В данном случае используется “жесткая” блокировка двери – ни
одна карта доступа не пройдет. Для реализации более “мягкой”
блокировки, можно воспользоваться макросом включения праздника для панели –
HOLIDAY ON. В данном случае доступ будет предоставлен только
картам доступа с уровнем “все можно”. Всем остальным картам
доступа будет отказано в доступе. Однако, в данном случае
будут заблокированы все считыватели, принадлежащие данной панели, а не
конкретный считыватель.
Для разблокировки считывателя используется следующий скрипт:
O=%p O %r E
Если была реализована “мягкая” блокировка, следует воспользоваться макросом –
HOLIDAY OFF.
Для приведения считывателя в открытое состояние используется следующий скрипт:
O=%p O %r P
В данном случае считыватель будет открыт на время импульса
выхода, на который запрограммирован данный считыватель. Время импульса выставляется
в настройках выхода в поле PulseTime от 0-63 с.
В случае, если панель имеет в своей конфигурации дверь
с двумя считывателями, команды для блокировки и восстановления считывателя
будут иметь другой вид. Например, имеется дверь с двумя
считывателями с адресами 1 и 2. Тогда блокировка двери
будет выглядеть следующим образом:
A=1 1 O 5;
A=1 2 O 5;
V=1 I 1 0 0 S;
O=1 O 1 D
Восстановление двери с двумя считывателями:
A=1 1 O 1;
A=1 2 O 1;
V=1 I 1 8 0 C K O 1
Общие рекомендации для применения команд панели в скриптах:
- Не рекомендуется использовать команды опроса состояния панели, входов, выходов,
карт доступа и временных зон (КОМАНДА R). Выполнение данных
команд повышает информационную загрузку петли, вследствие чего замедляет работу
драйвера. Опрос состояний производится драйвером на этапе загрузки и
после восстановления связи с панелью.
- Не рекомендуется использовать в скриптах команду I, так как
это приведет к переконфигурации панели и потере данных. Если
необходимо загрузить нестандартную конфигурацию в панель, следует использовать скрипт
в атрибуте панели Initialization.
- Рекомендуется использовать в скриптах команды, на которые приходит однозначный
ответ - “OK”.
|