Это старая версия документа.
Содержание
msc (сервисное обслуживание со считывателями)
Модуль msc (Machinery Service Control) предназначен для работы со считывателями rfid-карт, установленными на технологическом оборудовании, которое требует периодического тех.обслуживания. Поднесение карты к считывателю фиксирует факт выполнения поставленное мастером задачи по обслуживанию конкретного оборудования.
Модуль msc осуществляет подключение к серверу данных по протоколу rpsvr, опрашивающему считыватели, и подключение к базе данных firebird.
Если база данных не существует, то создается автоматически. Для существующей базы данных проводится проверка на наличие определенных метаданных, и если не найдено, то создается необходимая структура. Все объекты метаданных имеют в имени определенный префикс, называемый схемой. Таким образом модуль msc может соседствовать в базе с другими данными, например, с весовым учетом.
Конфигурация
Пример конфигурационного файла:
<?xml version="1.0" encoding="UTF-8" ?> <configuration password="admin" > <dbscr> <include file="inc/dbscr.utils.xml"/> <include file="inc/dbscr.msc.xml"/> </dbscr> <works> <work id="work_msc" period="1000" enabled="true"> <module id="db"/> <module id="rpcl"/> <module id="msc"/> </work> </works> <modules> <module id="db" class="database" enabled="true" driver="FIREBIRD" host="localhost" dbname="/home/denis/asutp/promauto/db/fb25/msctest1.fdb" username="SYSDBA" password="masterkey" reconnect_time_sec="5" /> <module id="rpcl" class="rpclient" enabled="true" host="localhost" port="3040" tagfilter="*" reconnect_time_sec="5" /> <module id="msc" class="msc" enabled="true" db="db" refmod="rpcl" scheme="msc" script="msc" /> </modules> </configuration>
Параметр | По умолчанию | Описание |
---|---|---|
db | db | Модуль базы данных |
refmod | - | Модуль, содержащий теги от считывателей |
script | msc | Имя dbscr-скрипта |
schema | msc | Название схемы (префикс для имен метаобъектов в базе данных) |
Основные таблицы
Во многих таблицах встречается поле deleted. Если значение в нем не равно 0, то запись считается удаленной и не будет участвовать при создании новых задач.
reader
CREATE TABLE {schema}_READER ( ID INTEGER NOT NULL PRIMARY KEY, ISGROUP SMALLINT DEFAULT 0, NAME VARCHAR(128), IDNAME VARCHAR(64), READERTYPE VARCHAR(64), DELETED SMALLINT DEFAULT 0 )
ISGROUP – 0 - обычная запись, 1 - группа
NAME - текстовое название считывателя
IDNAME - имя модуля считывателя, по которому будут созданы теги
READERTYPE - пока только promauto
person
CREATE TABLE {schema}_PERSON ( ID INTEGER NOT NULL PRIMARY KEY, ISGROUP SMALLINT DEFAULT 0, NAME VARCHAR(128), DELETED SMALLINT DEFAULT 0 )
schedule
CREATE TABLE {schema}_SCHEDULE ( ID INTEGER NOT NULL PRIMARY KEY, READER_ID INTEGER REFERENCES {schema}_READER ON DELETE cascade ON UPDATE cascade, TIMETBL VARCHAR(1024), DURATION INTEGER, DESCR VARCHAR(256), AUTOTASK SMALLINT DEFAULT 1, DELETED SMALLINT DEFAULT 0 )
task
CREATE TABLE {schema}_TASK ( ID INTEGER NOT NULL PRIMARY KEY, SCHEDULE_ID INTEGER REFERENCES {schema}_SCHEDULE ON DELETE cascade ON UPDATE cascade, READER_ID INTEGER REFERENCES {schema}_READER ON DELETE cascade ON UPDATE cascade, PERSON_ID INTEGER REFERENCES {schema}_PERSON ON DELETE SET NULL ON UPDATE cascade, DT_CREATE TIMESTAMP, DT_BEGIN TIMESTAMP, DT_END TIMESTAMP, DT_REG TIMESTAMP, STATUS SMALLINT, DELETED SMALLINT DEFAULT 0 )
Задача - это предписание на обслуживание определенного оборудование в установленное время.
input
CREATE TABLE {schema}_INPUT ( ID INTEGER NOT NULL PRIMARY KEY, CARD_ID INTEGER REFERENCES {schema}_CARD ON DELETE cascade ON UPDATE cascade, READER_ID INTEGER REFERENCES {schema}_READER ON DELETE cascade ON UPDATE cascade, PERSON_ID INTEGER REFERENCES {schema}_PERSON ON DELETE SET NULL ON UPDATE cascade, DT TIMESTAMP )
Работа модуля
При запуске модуль ожидает подключений к базе данных и к серверу данных, после чего циклически выполняет действия:
- проверка поступления нового кода от считывателей, и если есть, фиксирование его в базе данных.
- генерирование новых задач
- закрытие просроченных задач