Выгрузка в локальную базу данных, весогабаритных параметров каждого ТС, проехавшего через весы.
Параметры каждого транспортного средства, проехавшего по весам (неважно в динамике или с остановкой), выгружаются в стандартную (ODBC совместимую) базу данных формата Firebird, где она становится доступной для внешних автоматизированных систем по сети или через интернет.
Выгрузка происходит в автоматическом режиме без участия оператора.
Передаются все известные на момент проезда данные, конкретно см. файл "Поля БД"
/******************************************************************************/
/*** Generated by IBExpert 04.02.2015 20:15:51 ***/
/******************************************************************************//******************************************************************************/
/*** Following SET SQL DIALECT is just for the Database Comparer ***/
/******************************************************************************/SET SQL DIALECT 3;
/******************************************************************************/
/*** Tables  ***/
/******************************************************************************/CREATE GENERATOR GEN_TB_EXP_ID;
CREATE TABLE TB_EXP (
ID_TB_EXP BIGINT NOT NULL,
ID_TB_CAR_NEOF BIGINT,
DATE_TIME TIMESTAMP,
KOL_OSEY INTEGER,
NZ INTEGER,
P_CAR DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P_CAR_PG DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
SPEED_CAR DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PIC1 BLOB SUB_TYPE 0 SEGMENT SIZE 5000,
NPLATF INTEGER,
GOSNOMER_A VARCHAR(12),
P1 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P2 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P3 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P4 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P5 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P6 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P7 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P8 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P9 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
L1 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L2 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L3 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L4 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L5 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L6 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L7 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L8 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG1 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG2 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG3 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG4 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG5 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG6 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG7 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG8 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG9 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG10 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG11 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG12 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG13 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG14 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG15 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
PG16 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
P10 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P11 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P12 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P13 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P14 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P15 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
P16 DMN_DEC15_3 /* DMN_DEC15_3 = DECIMAL(15,3) */,
L9 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L10 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L11 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L12 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L13 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L14 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */,
L15 DMN_DEC15_2 /* DMN_DEC15_2 = DECIMAL(15,2) */ );
/******************************************************************************/
/*** Primary Keys ***/
/******************************************************************************/ALTER TABLE TB_EXP ADD CONSTRAINT PK_TB_EXP PRIMARY KEY (ID_TB_EXP);
/******************************************************************************/
/*** Indices ***/
/******************************************************************************/CREATE INDEX TB_EXP_IDX1 ON TB_EXP (DATE_TIME);
CREATE DESCENDING INDEX TB_EXP_IDX2 ON TB_EXP (DATE_TIME);
/******************************************************************************/
/*** Triggers ***/
/******************************************************************************/SET TERM ^ ;
/******************************************************************************/
/*** Triggers for tables ***/
/******************************************************************************//* Trigger: TB_EXP_AIU0 */
CREATE OR ALTER TRIGGER TB_EXP_AIU0 FOR TB_EXP
ACTIVE AFTER INSERT OR UPDATE POSITION 0
AS
begin
--if (new.p_car>3.5) then
post_event 'NEW_EXP';
end
^
/* Trigger: TB_EXP_BI */
CREATE OR ALTER TRIGGER TB_EXP_BI FOR TB_EXP
ACTIVE BEFORE INSERT POSITION 0
as
declare variable LOCAL_ID integer;
declare variable K integer;
begin
if (new.id_tb_exp is null) then --если не назначили сами из программы (а такое частенько бывает)
begin --111
LOCAL_ID = gen_id(gen_tb_exp_id, 1);
select TB_NOM_KEY.NOM_KEY from TB_NOM_KEY into K;--получили тек множитель из ключа, а он уже сидит в спец таблице TB_NOM_KEY
--if (LOCAL_ID < 0 or LOCAL_ID > 4294967295) then
--exception E_GENERATOR_RANGE_ERROR; --есть предел 2 в 32 степени
new.id_tb_exp = K * 4294967296 + LOCAL_ID;/*4 старших байта - пор ном ключа*диапазон, 4 младших - локальный ID записи*/
end --111
end
^
SET TERM ; ^
/******************************************************************************/
/*** Fields descriptions ***/
/******************************************************************************/COMMENT ON COLUMN TB_EXP.ID_TB_CAR_NEOF IS 'ID в основной БД (не пока не используется)';
/******************************************************************************/
/*** Privileges ***/
/******************************************************************************//* Privileges of users*/
GRANT SELECT ON TB_EXP TO OPERATOR;
/* Privileges of triggers */
GRANT UPDATE, REFERENCES ON TB_EXP TO TRIGGER TB_EXP_AIU0;
GRANT UPDATE, REFERENCES ON TB_EXP TO TRIGGER TB_EXP_BI;
GRANT SELECT ON TB_NOM_KEY TO TRIGGER TB_EXP_BI;
Порядок передачи информации во внешнюю автоматизированную систему о проехавшем ТС следующий:
- проезд автомобиля по весам
- определение его госномера и весогабаритных параметров
- запись всех доступных на данный момент фотографий и параметров в базу данных Весовой программы
- апись всех доступных на данный момент фотографий и параметров в экспортную базу данных "EXP.FDB"
- из этой базы данные забираются внешней автоматизированной системой (по сигналу или по таймеру)
Состав полей базы данных, и другие параметры передачи могут быть изменены в соответствии с требованиями заказчика.