manager:dcom [Документация на программное обеспечение для весовых систем]

Инструменты пользователя

Инструменты сайта


manager:dcom

Возможности подключения к серверу (интерфейс DCOM объекта)

1. Описание интерфейсов COM объекта "Сервер Весы АВТО"

Наименование объекта

«ServerAuto.DCOMAuto» – имя объекта сервера весов
«ServerAuto.DCOMAuto1» – имя объекта сервера весов 2

ID объекта

LIBID_ServerAuto: TGUID = '{A6238C04-5CF6-4E18-AD86-FB088F8BF048}';
IID_IDCOMAuto: TGUID = '{67595465-7EFB-4ED7-9C06-32E5155F384E}';
DIID_IDCOMAutoEvents: TGUID = '{3B540925-B1CE-4EF1-BE8B-CF8412AD3713}';
CLASS_DCOMAuto: TGUID = '{60ACB611-29C9-495A-9392-F01E438030C1}';
CLASS_DCOMAuto1: TGUID = '{9316A3FD-5170-4089-A2C6-E9E93BB6EE67}';

Основные свойства

Имя Возвращаемое значение Описание
MASSA WideString Показания массы
fSTABIL Integer Флаг стабильности веса
FREQ Integer Частота приема данных с блока, раз/сек
NAMEVESY WideString Имя весов
FCompleteVSV Integer read Флаг для сигнализации всем клиентам о взвешивании
fEmulation Integer Флаг включен эмулятор
MASSARESULT WideString Результат последнего взвешивания
STARTNULL WideString Значение массы перед заездом на пустые весы
PortEnable Integer Флаг СОМ порт открыт
StateProtokol Integer Возвращает код состояния обмена с весовым индикатором:
0 - 'Отключено.'
1 - 'Прием данных..Ok.'
2 - 'Нет данных с весов! Проверьте подключение к весам и настройки порта.'
3 - 'Ошибка открытия порта! Проверьте правильно ли выбран порт. Возможно порт занят другой программой.'
4 - 'Ошибка в принимаемых данных! Проверьте правильно ли выбран протокол обмена. Возможно неверны настройки порта.'
5 - 'Ошибка в определении значения МАССА! Проверьте правильно ли выбран протокол обмена. Возможно настройки протокола необходимо откорректировать.'
6 - 'ЭМУЛЯЦИЯ показаний веса! Прием данных отключен.'
StateProtokolMess WideString Возвращает строку расшифровку состояния обмена с весовым индикатором
StateVesyName WideString Возвращает строку расшифровку состояния весов

Получить фото с камер

Имя Возвращаемое значение Описание
Cam1Bitmap OleVariant Получить BMP фото скриншот с камеры 1
Cam1BitmapScale(WidthScale: Integer; HeightScale: Integer) OleVariant Получить BMP фото по размеру
Cam1Jpeg OleVariant JPEG фото скриншот с камеры 1
Cam1JpegScale(WidthScale: Integer; HeightScale: Integer) OleVariant Получить JPEG фото по размеру
Cam2Bitmap OleVariant BMP фото скриншот с камеры 2
Cam1BitmapScale(WidthScale: Integer; HeightScale: Integer) OleVariant Получить BMP фото по размеру
Cam2Jpeg OleVariant JPEG фото скриншот с камеры 2
Cam2JpegScale(WidthScale: Integer; HeightScale: Integer) OleVariant Получить JPEG фото по размеру
Cam3Bitmap OleVariant BMP фото скриншот с камеры 3
Cam3BitmapScale(WidthScale: Integer; HeightScale: Integer) OleVariant Получить BMP фото по размеру
Cam3Jpeg OleVariant JPEG фото скриншот с камеры 3
Cam3JpegScale(WidthScale: Integer; HeightScale: Integer) OleVariant Получить JPEG фото по размеру
Cam4Bitmap OleVariant BMP фото скриншот с камеры 4
Cam4BitmapScale(WidthScale: Integer; HeightScale: Integer) OleVariant Получить BMP фото по размеру
Cam4Jpeg OleVariant JPEG фото скриншот с камеры 4
Cam4JpegScale(WidthScale: Integer; HeightScale: Integer) OleVariant Получить JPEG фото по размеру

Система распознавания номеров

Имя Возвращаемое значение Описание
fCamRecognTS Integer Флаг номер найден
CamNumbTS WideString Строка с номером ТС (без региона)
CamRegTS WideString Строка с регионом ТС
CamNumbPricep WideString Строка с номером прицепа (без региона)
CamRegPricep WideString Строка с регионом прицепа

Управление устройством дискретного ввода/вывода УДВВ

Имя Возвращаемое значение Описание
UDVV_FREQ Integer Частота передачи пакетов с УДВВ
UDVV_PortEnable Integer Свойство флаг COM порт с УДВВ открыт
UDVV_GetOut(Nbit: Integer) Integer Получить значение выхода по номеру бита
UDVV_GetIn(Nbit: Integer) Integer Получить значение входа по номеру бита
UDVV_SetOut(NBit: Integer; Value: Integer) - Установить значение выхода по номеру бита

Общие команды

Имя Возвращаемое значение Описание
SetNULL - Установить ноль (на весовой индикатор посылается команда зануления, согласно протоколу, если такая существует )
SetLogin(USER_BASA: WideString) Integer Команда регистрирует в журнал событий приход пользователя
SetLogout(USER_BASA: WideString) Integer Команда регистрирует в журнал событий уход пользователя
SetVsv(var GuidCode: WideString; const Massa: WideString; const USER_BASA: WideString) - Устанавливает флаг контроля, о том что взвешивание произведено. Необходима для правильного контроля за весами и управлением оборудованием (так, например, если эту функцию не использовать, то в журнале событий будет создаваться событие «незафиксированный проезд транспорта»)
Следующая за ней команда SetDocuments
GUIDCode – уникальный идентификатор документа взвешивания, в котором производиться взвешивание. Если указывается пустое значение, сервер генерирует его сам.
тип строка GUID. пример '{91F5A392-51AA-4D99-9530-1BB785F166B1}'
Massa – масса взвешенного груза
USER_BASA – пользователь

Команды для работы с журналом событий

Имя Возвращаемое значение Описание
SaveEvents(Source: Integer; Desription: WideString; USER_BASA: WideString) Integer Создает в фискальном журнале событий запись о дополнительном событии. Регистрация с текущим временем.
Source - источник события
2 - Оператор
3 - Взвешивание
4 - Программа
5 - Администрирование
Desription - описание
USER_BASA - имя пользователя

Команды для работы с журналом регистрации взвешиваний

SetDocuments (…. 39 параметров типа WideString;

Данная команда необходима для сброса на «Сервер весов» копии данных о взвешивании в журнал взвешиваний. Создает или обновляет в журнале взвешиваний запись о взвешивании с заполненными полями. Если GUID (уникальный идентификатор взвешивания) не найден создает новую запись, иначе обновляет существующую
GUIDДокумента – уникальный идентификатор взвешивания, тип строка GUID. Параметр переменная.

Формат данных всех параметров строковый.
Пример GUID: '{91F5A392-51AA-4D99-9530-1BB785F166B1}'. Нужны фигурные скобки.
Пример Даты: '20.08.2016'
Пример Времени: '10:20:55'

Если <GUIDДокумента> пустой, создается при первой записи сервером Firebird, а затем возвращается как результат функции. Возвращает пустую строку если операция не удалась, иначе GUID - уникальный идентификатор взвешивания.

SetDocuments(
0 - GUIDДокументаПараметр переменная. Уникальный идентификатор взвешивания GUID.
1 - НомерДокумента – Номер документа.
2 - ТипВзвешивания – Строки - наименование типа взвешивания.
3 - ДатаДокумента – дата документа.
4 - ВремяДокумента – время документа.
5 - КодОтправителя - код элемента справочника.
6 - Отправитель – Наименование Отправителя.
7 - КодПолучатель - код элемента справочника.
8 - Получатель – Наименование Получателя.
9 - КодПунктОтправления - код элемента справочника.
10 - ПунктОтправления – наименование Пункта отправления.
11 - Код ПунктНазначения - код элемента справочника.
12 - ПунктНазначения – наименование Пункта назначения.
13 - Код Груз - код элемента справочника.
14 - Груз – Наименование Номенклатура.
15 - КодВодитель - код элемента справочника.
16 - Водитель – ФИО водителя.
17 - НомерНакладной – строка НомерНакладной.
18 - ДатаНакладной – Дата накладной.
19 - ТараПоДокументу – тара по документу.
20 - БруттоПоДокументу – брутто по документу.
21 - НеттоПоДокументу – нетто по документу.
22 - Код МаркаТС – код элемента справочника Марки ТС.
23 - МаркаТС – наименование Марки ТС.
24 - НомерТС – номер транспорта.
25 - РегионТС – Гос.номер и регион ТС.
26 - НомерПрицепа – Гос. Номер прицепа.
27 - РегионПрицепа – регион прицепа.
28 - ИмяПользователя – Строка. Имя пользователя.
29 - ТипТары – Строка. Характер значения тары – “взвешивание”или “вручную”.
30 - ТАРА– Строка. Целое число в килограммах.
31 - ДатаТарирования.
32 - ВремяТарирования – Строка масса тары, дата и время тарирования.
33 - ТипБрутто – Строка. Характер значения брутто – “взвешивание”или “вручную”.
34 - БРУТТО– Строка. Целое число в килограммах..
35 - ДатаБрутирования.
36 - ВремяБрутирования – Строка масса брутто, дата и время брутирования.
37 - НЕТТО – Строка. Целое число НЕТТО в килограммах.
38 - флагУдален – признак флага удален (‘1’ – удален, ‘0’ – не удален).
)

Имя Возвращаемое значение Описание
SetDocumentsParam(var GuidCode: WideString; const NameValue: WideString; const Value: WideString) Integer Действие команды аналогично SetDocuments, отличие в том, что данной команде можно установить только один параметр документа взвешивания.
Необходима для сброса на «Сервер весов» копии данных о взвешивании в журнал взвешиваний.
Создает или обновляет в журнале взвешиваний одно поле записи о взвешивании. Если GUID (уникальный идентификатор взвешивания) не найден, создает новую запись, иначе обновляет существующую
GUID - уникальный идентификатор взвешивания;
NameValue – имя устанавливаемого поля в таблице взвешиваний;
Value – строка, значение устанавливаемого параметра.

2. Способы подключения объекта "Сервер весов АВТО" в программы

Visual Basic

Создание объекта с помощью функции CreateObject(class,[servername])

Пример подключения Сервер Весы 1:

Set objDCOMAuto = CreateObject("ServerAuto.DCOMAuto")
Label1.Caption = objDCOMAuto.MASSA

Пример подключения Сервер Весы 2:

Set objDCOMAuto = CreateObject("ServerAuto.DCOMAuto1);
Label1.Caption = objDCOMAuto.MASSA

1C Предприятие 7.7

Подключение к весам в 1С рекомендуем делать не напрямую как в примере с Visual Basic, а через внешнюю компоненту AddInVesyServer.dll, Описание в папке “Examples\_DLL (for 1C 77)”

1C Предприятие 8.2

Подключение к весам в 1С рекомендуем делать не напрямую как в примере с Visual Basic, а через внешнюю компоненту Add1CServerVesy.dll, которая позволяет производить обновление информации через внешнее событие ОбработкаВнешнегоСобытие (Источник = «Add1CServerVesy») Примеры подключения выложены в дистрибутиве в папке. ..\ Examples

3. Алгоритм и рекомендации по внедрению “Сервер Весы АВТО”

Основные параметры весов и фото камер необходимо считывать и обновлять в непрерывно в цикле Используйте стандартные свойства:

MASSA , fSTABIL, fBRUTTO, fNETTO, FREQ, Cam1Bitmap, Cam1Jpeg, FCompleteVSV

После подключения и перед отключением применяйте команды:
Авторизацию и выход клиента отмечать SetLogin и SetLogOut

Каждое взвешивание отмечать вызовом SetVsv
если эту функцию не использовать в момент взвешивания ТС, то в журнале событий будет создаваться событие «незафиксированный проезд транспорта»

Если необходимо передавать взвешивание в дублирующий журнал то используем SetDocuments.
Каждое обновление документа взвешивания обновлять на сервере через SetDocuments.
GUID в документе взвешивания должен сохраняться неизменным с момента создания.

manager/dcom.txt · Последние изменения: 2017/12/18 11:40 (внешнее изменение)