Это старая версия документа.


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 Название схемы (префикс для имен метаобъектов в базе данных)

Основные таблицы

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
              )

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
              )

Работа модуля

При запуске модуль ожидает подключений к базе данных и к серверу данных, после чего циклически выполняет действия:

  1. проверка поступления нового кода от считывателей, и если есть, фиксирование его в базе данных.
  2. генерирование новых задач
  3. закрытие просроченных задач
doc/arccnt/mod/msc.1466478217.txt.gz · Последние изменения: 2016/06/21 06:03 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0