ARMLite. Инструкция для администратора

Содержание:

ARMLite - программа для автоматизации учета взвешивания транспорта на автомобильных весах. В данной инструкции содержится описание возможностей настройки программы под задачу пользователя. Инструкция предназначена для администратора системы взвешивания, а также может быть полезна IT-специалисту для решения задачи интеграции АРМ в информационную систему предприятия.

1. Установка

1.1. Системные и программные требования

Аппаратные требования к компьютеру для ARMLite:

1.2. Установка программы

Программа поставляется в виде архива без использования средств установки. Просто извлеките файлы из архива ARMLite.zip в любую папку на диске (например: C:\ARMLite\App). Рекомендуется организовать такую структуру папок:

Структура папки с программой (C:\ARMLite\App):

Далее, для работы программы необходимо создать базу данных. Программа поддерживает два типа базы данных:

1.3. Локальная база данных SQLite

Для простого варианта системы взвешивания, когда есть только одни весы и один ПК оператора, можно использовать базу данных SQLite. Этот вариант не требует дополнительных действий для создания базы данных и настройки подключения. База данных может быть создана автоматически при первом запуске АРМ от имени администратора Windows. Вариант с базой SQLite также удобно использовать, когда требуется только ознакомиться с функциями программы без подключения к весам. При первом запуске, когда еще не настроено подключение к базе данных, программа предлагает создать локальный файл для тестовой или для рабочей базы данных (см.рис.1). Для работы с реальными весами нажмите Создать рабочую базу. Для ознакомления с функциями программы без подключения к весам нажмите Создать тестовую базу. При работе в тестовой базе вывод показаний весов эмулируется программой. Также в тестовой базе есть возможность менять показания весов вручную.

Рис.1: Создание базы данных Рис.1: Создание базы данных

На базе SQLite АРМ может работать и с двумя весами. Но в таких случаях, когда возможно развитие системы взвешивания, рекомендуется использовать серверную базу данных MSSQL как универсальное решение.

1.4. Серверная база данных MSSQL

Для возможности расширения системы взвешивания, когда требуется работать с общей базой данных на нескольких ПК, необходимо использовать базу данных MSSQL.

Рис.2: Схема сети Рис.2: Схема сети

Для реализации этой схемы выполните действия:

  1. На серверный компьютер или на ПК оператора установите Microsoft SQL Server 2012 или более новую версию (2014, 2016). Можно использовать бесплатную редакцию EXPRESS. В пакет установки должен быть включен инструмент администрирования SQL Server Management Studio. Смотрите инструкцию по установке MSSQL сервера и настройке удаленного подключения.
  2. Откройте SQL Server Management Studio, подключитесь к SQL серверу.
  3. Создайте пустую базу данных с любым наименованием. Для этого в обозревателе объектов откройте контекстное меню для папки Databases, нажмите New Database.... В окне создания базы введите Database name: например, ARM. Нажмите OK.
  4. Запустите АРМ от имени администратора Windows. Если подключение к базе еще не было настроено, тогда появится окно как на рис.1. Нажмите изменить параметры подключения, затем Создание новой базы данных. Откроется окно подключения к базе как на рис.3.

    Рис.3: Параметры подключения к базе данных Рис.3: Параметры подключения к базе данных

    Если подключение к базе уже было настроено, и ожидается вход в АРМ, тогда выберите логин superuser, пароль по умолчанию не задан, нажмите Войти. В меню откройте Настройки >> Создание базы данных.

  5. Выберите тип сервера: MSSQL. Задайте параметры подключения к серверу.

  6. Выберите пустую базу данных, созданную по пункту 3.
  7. Выберите назначение базы: Рабочая. Если создать тестовую базу, АРМ будет работать в тестовом режиме с эмулятором весов.
  8. Нажмите Создать базу. Должно появиться окно с сообщением об успешном создании базы. В этом окне нажмите Подключиться. АРМ перезапустится и подключится к новой MSSQL базе.

1.5. Подключение весов

К АРМ можно подключить двое весов. Для каждого подключения к весам требуется активация. Подключение к весам не работает в тестовой базе данных.

  1. Запустите ARM.exe. Выберите логин superuser, пароль по умолчанию не задан, нажмите Войти.
  2. Откройте в меню Настройка >> Подключение весов / Активация. Выберите модель весового терминала, введите IP адрес терминала. Для проверки доступа по сети, можно нажать кнопку ping. Нажмите Применить. При успешном подключении к терминалу в этом же окне появится R-код.
  3. Скопируйте R-код и вставьте в заявку на получение ключа активации.
  4. На указанный в заявке адрес эл.почты будет отправлен Ключ активации. Скопируйте и вставьте ключ в окне активации. Нажмите Применить. В поле статуса активации должно появиться: Активация прошла успешно.
  5. После активации в правом верхнем углу основного окна будет выводиться текущее значение массы от весов с единицей измерения как на терминале.

Рис.4: Подключение весов / Активация Рис.4: Подключение весов / Активация

Список весовых терминалов, которые можно подключить к АРМ:

1.6. Обновление программы

Для обновления программы в большинстве случаев достаточно заменить два файла: ARM.exe и Shell.dll.

  1. Перед обновлением рекомендуется сделать резервную копию текущей версии программы и базы данных. Если база данных находится в локальном файле SQLite в папке по умолчанию db, тогда достаточно создать архив всей папки АРМ включая базу данных. Для серверной базы данных MSSQL резервную копию можно сделать через АРМ в меню Настройка >> Резервное копирование базы данных или с помощью SQL Server Management Studio.
  2. Загрузите архив с новой версией ARMLite.zip, извлеките файлы в любую папку на диске. Перенесите новые файлы ARM.exe и Shell.dll в папку с текущей рабочей программой.
  3. Запустите ARM.exe. Если для новой версии требуется внести изменения в структуру базы данных, программа делает это автоматически при первом запуске новой версии. В этом случае выводится сообщение об успешном обновлении базы данных.
  4. При запуске новой версии программа также может добавить в существующие конфигурационные файлы новые параметры со значениями по умолчанию.

1.7. Создание новой локальной базы данных SQLite

  1. Запустите АРМ от имени администратора Windows. Войдите под логином superuser.
  2. Откройте Меню >> Создание базы данных.
  3. Выберите тип сервера: SQLite.
  4. Задайте путь к базе с указанием имени нового файла (расширение файла можно указать *.sqlite или *.db). Можно указать относительный путь, например: db\mydb.sqlite.
  5. Задайте пароль, чтобы зашифровать базу данных, или оставьте это поле пустым. ВНИМАНИЕ! Если пароль будет забыт или утерян, АРМ не предоставляет средств для восстановления этого пароля. Незашифрованная база данных (без пароля) может быть открыта программой администрирования SQLite.
  6. По умолчанию создается Рабочая база данных для работы с весами. Выберите назначение базы: Тестовая, если хотите, чтобы АРМ работал в тестовом режиме (с эмулятором весов).
  7. Нажмите Создать базу. Должно появиться окно с сообщением об успешном создании базы. В этом окне нажмите Подключиться. АРМ перезапустится и подключится к новой базе SQLite.

2. Архитектура АРМ

Краткие обозначения:

По сути ARMLite - это программа для ведения электронного журнала погрузок или разгрузок транспортных средств. Два взвешивания ТС (груженое и порожнее), фото-снимки взвешиваний, сопроводительные данные объединяются в один документ, который называется в АРМе накладная. Интерфейс пользователя позволяет работать со списком накладных при разных алгоритмах взвешивания ТС с элементами автоматизации (получение номеров из системы распознавания, автоматическое заполнение полей из внешней ИС).

2.1. Схема пользовательского интерфейса

На рис.5 схематично показаны ключевые объекты пользовательского интерфейса АРМ.

Рис.5: Схема пользовательского интерфейса АРМ Рис.5: Схема пользовательского интерфейса АРМ

Некоторые элементы интерфейса могут быть скрыты в зависимости от настроек, подключенных опций и привилегий текущего пользователя. В конфигурации задается вид таблицы накладных (перечень, порядок и формат столбцов). Также отдельно задается какие поля использовать в форме накладной.

2.2. Особенности работы АРМ

  1. Порядковый номер накладной задается автоматически без возможности изменения.
  2. При запуске АРМ список накладных выводится за текущие сутки, но можно задать выборку за любое число или период.
  3. В накладной может быть одно или два взвешивания.
  4. Кнопка второго взвешивания становится доступна после первого взвешивания. Не имеет значения, в каком порядке выполнять взвешивания: груженая машина, затем порожняя; или порожняя, затем груженая.
  5. Взвешивание 1 и Взвешивание 2 можно удалить для случаев, когда взвешивание было выполнено неправильно (неправильное позиционирование машины, взвешивание добавили не в ту накладную, два раза взвесили груженую машину или два раза порожнюю…).
  6. Пользователь, у которого нет привилегии удаления взвешиваний, тем не менее, может отменить только последнее взвешивание до закрытия формы накладной.
  7. Накладную можно заблокировать после того, как будет определена масса нетто. Это происходит при наличии двух взвешиваний или одного взвешивания брутто с заданной справочной тарой. После блокировки накладной все поля становятся недоступны для изменений. Разблокировать накладную может пользователь со специальной привилегией.
  8. После появления второго взвешивания обновляется справочная тара, если разница масс груженой и порожней более минимального значения нетто (параметр в конфигурации: main.ini >> WEIGHING >> min_net).
  9. Накладную можно удалить, если в ней нет ни одного взвешивания.
  10. Для полей накладной можно задать значения по умолчанию. При создании накладной эти поля заполнятся автоматически. Чтобы использовать значения по умолчанию, в конфигурации должен быть задан параметр main.ini >> MISC >> use_defaults=true. Значения по умолчанию задаются в меню Настройка >> Значения по умолчанию для накладной.

2.3. Вид пользовательского интерфейса

Ниже на скриншотах показана реализация схемы пользовательского интерфейса (см. схему на рис.5). Раздел с таблицей накладных открывается в меню Разделы >> Накладные или нажатием клавиши F2.

Рис.6: Таблица накладных Рис.6: Таблица накладных

По умолчанию при запуске программы задано ограничение выборки накладных как Данные за сегодня. Есть и другие режимы ограничения выборки: Данные за вчера и сегодня, Данные за указанную даты, Расширенный поиск. В режиме расширенного поиска можно указать произвольный период и другие параметры фильтра.

Рис.7: Расширенный поиск накладных Рис.7: Расширенный поиск накладных

Обычно алгоритм действий оператора для взвешивания ТС начинается с нажатия кнопки Принять ТС. Для АРМ нет строго требования, где должна находиться машина в данный момент: на весах или до весов перед шлагбаумом (это решается по принятому на месте алгоритму взвешивания). Открывается окно, в котором основной задачей является ввод номера тягача и прицепа (если есть прицеп). Номера вводятся автоматически при наличии системы распознавания номеров. Без системы распознавания оператор вводит номера вручную по изображениям с камер. При появлении более 4х символов в поле Номер тягача выполняется поиск в базе последних накладных с этим номером тягача. Выводится до 3х незаблокированных накладных. Оператор может открыть существующую накладную (например, для добавления второго взвешивания) или создать новую накладную.

Рис.8: Принять ТС Рис.8: Принять ТС

По нажатию Открыть существующую или Создать новую накладную окно Принять ТС закрывается и открывается форма накладной.

Рис.9: Пример вида формы накладной Рис.9: Пример вида формы накладной

Набор полей формы настраивается под задачу (см. раздел 3.1). При вводе символов в поля справочников выпадающий список ограничивается записями, которые содержат введенный текст. Если введен текст, которого нет в списке, тогда это отмечается красным цветом. Пользователь может добавить эту запись в справочник или отредактировать существующую, если у него есть привилегия редактирования этого справочника.

Если включена опция подключения к видео-камерам, тогда показания весов не выводятся на форму. В этом случае по нажатию кнопки Взвесить откроется отдельное окно (рис.10) с выводом текущих кадров от камер. В момент фиксации веса текущие кадры сохраняются в файлы и привязываются ко взвешиванию.

Рис.10: Окно взвешивания с фото-фиксацией Рис.10: Окно взвешивания с фото-фиксацией

Если к АРМ подключено двое весов, тогда программа определяет на каких весах находится ТС, автоматически выбирает эти весы и выводит изображения с камер, которые подключены к этим весам.

3. Конфигурация

Все настройки программы задаются в конфигурационных файлах (INI, XML, TXT). Путь к папке с конфигурационными файлами задается в файле config_path. По умолчанию в нем задан относительный путь к локальной папке config. В АРМ есть встроенный текстовый редактор для внесения изменений в конфигурацию. Редактор конфигурации открывается в меню Настройка >> Конфигурация или Ctrl+K.

Рис.11: Текстовый редактор конфигурации Рис.11: Текстовый редактор конфигурации

Структура папки config:

3.1. Настройка формы накладной

Вид формы накладной настраивается в файле view\form.xml. Для настройки откройте форму накладной, нажмите Ctrl+K, откроется редактор конфигурации сразу с выбранным файлом view\form.xml. Внесите изменение в файл и сохраните Ctrl+S. Результат изменения сразу применится на форме. В файле можно задать параметры:

Также можно показать/скрыть поля и изменить наименования.

Рис.12: Файл конфигурации формы Рис.12: Файл конфигурации формы

Перечень всех допустимых полей в форме накладной:

Поле Наименование по умолчанию Функция
AxlesDistance Расстояние между осями Строка в таблице осей
AxlesMax Допустимая нагрузка Строка в таблице осей
AxlesNumber Номер оси Строка в таблице осей
AxlesOverLoad Превышение Строка в таблице осей
AxlesType Тип осей Строка в таблице осей
AxlesWeight Факт. нагрузка Строка в таблице осей
AxlesWheels Количество колес Строка в таблице осей
CarOwner Владелец ТС Выпадающий список
Consignee Грузополучатель Выпадающий список
ContainerGross Масса груженого контейнера Текстовое поле
ContainerInclude Учитывать контейнер Галочка
ContainerNumber Номер контейнера Текстовое поле
ContainerTare Масса порожнего контейнера Текстовое поле
Description Примечание Текстовое поле
DocNet Нетто по документу Текстовое поле
DocNetDeviation Отклон. от док. Текстовое поле для чтения
DocPermission Спец. разрешение Текстовое поле + поле даты с календарем
DocShipping Сопроводит. документ Текстовое поле + поле даты с календарем
DocWaybill Транспортная накладная Текстовое поле + поле даты с календарем
Driver Водитель Выпадающий список
Forwarder Экспедитор Выпадающий список
InputTare Тара справочная Текстовое поле
Net Нетто Текстовое поле для чтения
PathFrom Откуда Выпадающий список
PathTo Куда Выпадающий список
Product Груз Выпадающий список
ProductInfo Количество груза Текстовое поле
Shipper Грузоотправитель Выпадающий список
TrailerNumber Номер прицепа Текстовое поле
TripNumber Номер рейса Текстовое поле
UnderOverLoad Недогр./Перегр. Текстовое поле для чтения
VehicleBrand Марка ТС Выпадающий список
VehicleCapacity Грузоподъемность Текстовое поле
VehicleNumber Номер тягача Текстовое поле
W1 Взвешивание 1 Текстовое поле для чтения + кнопка Взвесить
W2 Взвешивание 2 Текстовое поле для чтения + кнопка Взвесить

На рис.13 показан пример, как может выглядеть форма накладной со всеми включенными полями.

Рис.13: Форма со всеми доступными полями АРМ Рис.13: Форма со всеми доступными полями АРМ

3.2. Структура данных АРМ

Для настройки таблицы накладных, экспорта накладных, создания шаблонов отчетов необходимо иметь представление о структуре данных АРМ. Структура данных АРМ не является описанием полей базы данных, но описывает свойства внутренних объектов АРМ. Структура данных АРМ используется в файлах конфигурации:

Основной объект выходных данных АРМ это Накладная.

Структура типа Накладная:

Свойство Тип Описание
AnyGross Масса Любая масса брутто. Если есть два взвешивания, тогда выводится фактическая масса наибольшего взвешивания. Если есть только одно взвешивание и тара введена вручную, тогда выводится масса этого взвешивания.
AnyTare Масса Любая масса тары. Если есть два взвешивания, тогда выводится фактическая масса наименьшего взвешивания. Если есть только одно взвешивание, тогда выводится тара ручного ввода (VehicleTare).
CarOwner Строка Владелец ТС
Consignee Организация Грузополучатель
ContainerGross Масса Масса груженого контейнера. Брутто минус Тара. Выводится, если задана Масса порожнего контейнера.
ContainerNumber Строка Номер контейнера
ContainerTare Масса Масса порожнего контейнера
DateModified Дата/время Дата изменений в форме накладной.
Description Строка Примечание
DocNet Масса Нетто по документу
DocNetDeviation Масса Отклонение от документа. Нетто минус Нетто по документу.
DocPermission Документ Специальное разрешение
DocShipping Документ Сопроводительный документ
DocWaybill Документ Транспортная накладная
Driver Представитель Водитель
Editor Пользователь Оператор. Пользователь, который внес последние изменения.
Forwarder Организация Экспедитор
ID Число Идентификатор накладной в базе
Net Масса Нетто. Брутто минус Тара, и минус Масса порожнего контейнера (если задана).
OrderNumber Число Порядковый номер записи в текущей выборке
PathFrom Строка Пункт отправки
PathTo Строка Пункт назначения
Product Строка Продукт
ProductInfo Строка Доп. информация о грузе
RefID Число NULL Идентификатор внешних привязанных данных
Shipper Организация Грузоотправитель
Status Строка Статус записи: нет взвешиваний; 1 взвешивание; 2 взвешивания; 1+тара справочная.
TrailerNumber Строка Номер прицепа
TripNumber Число NULL Номер рейса
UnderOverLoad Масса Недогруз / Перегруз. Нетто минус Грузоподъемность. Если задан контейнер: Нетто плюс Масса порожнего контейнера минус Грузоподъемность.
VehicleBrand Строка Марка ТС
VehicleCapacity Масса Грузоподъемность. Грузоподъемность вводится для расчета недогруза / перегруза относительно массы нетто.
VehicleNumber Строка Номер тягача
VehicleTare Масса Тара (ручной ввод). Вводится оператором, если не требуется взвешивание порожнего ТС на весах. Масса тары ТС может быть привязана к номеру ТС. Тогда при выборе номера тара вносится автоматически.
W Взвешивание Имеющееся взвешивание. Если есть оба взвешивания, тогда передает взвешивание брутто.
W1 Взвешивание Взвешивание 1. Первое по порядку взвешивание.
W2 Взвешивание Взвешивание 2. Второе по порядку взвешивание.
WaybillNumber Число Порядковый номер накладной (задается автоматически)
WGross Взвешивание Взвешивание брутто. Большее из взвешиваний.
WTare Взвешивание Взвешивание тары. Меньшее из взвешиваний.

Структура типа Масса:

Свойство Тип Описание
curr Строка Значение массы в единицах, заданных в конфигурации.
kg Строка Значение массы в килограммах
t Строка Значение массы в тоннах в формате 0.00
t3 Строка Значение массы в тоннах в формате 0.000

Структура типа Организация:

Свойство Тип Описание
Address Строка Адрес
Name Строка Наименование
OGRN Строка ОГРН

Структура типа Документ:

Свойство Тип Описание
Date Дата/время NULL Дата документа
Number Строка Номер документа

Структура типа Представитель:

Свойство Тип Описание
Company Строка Организация
Duty Строка Должность
Name Строка Ф.И.О.
Passport Строка Паспорт

Структура типа Пользователь:

Свойство Тип Описание
Login Строка Имя входа (логин)
Name Строка ФИО
Role Строка Наименование группы

Структура типа Взвешивание:

Свойство Тип Описание
All МассаОсей Строка весовых нагрузок
Axle1 Масса Нагрузка на ось 1
Axle2 Масса Нагрузка на ось 2
Axle3 Масса Нагрузка на ось 3
Axle4 Масса Нагрузка на ось 4
Axle5 Масса Нагрузка на ось 5
Axle6 Масса Нагрузка на ось 6
Axle7 Масса Нагрузка на ось 7
AxlesCount Число Количество осей
Date Дата/время NULL Дата взвешивания
Photo1 Строка Фото с камеры 1
Photo2 Строка Фото с камеры 2
Photo3 Строка Фото с камеры 3
Photo4 Строка Фото с камеры 4
Terminal Строка Весовой терминал
UserName Строка ФИО оператора
Weight Масса Вес

Структура типа МассаОсей:

Свойство Тип Описание
kg Строка Значение массы в килограммах
t Строка Значение массы в тоннах в формате 0.00
t3 Строка Значение массы в тоннах в формате 0.000

Структура типа Масса:

Свойство Тип Описание
curr Строка Значение массы в единицах, заданных в конфигурации.
kg Строка Значение массы в килограммах
t Строка Значение массы в тоннах в формате 0.00
t3 Строка Значение массы в тоннах в формате 0.000

3.3. Настройка таблицы накладных

Вид таблицы накладных настраивается в файле view\table.xml. Для настройки откройте основной раздел Накладные, нажмите Ctrl+K, откроется редактор конфигурации сразу с выбранным файлом view\table.xml. Внесите изменение в файл и сохраните Ctrl+S. Результат изменений сразу отразится в таблице.

Рис.14: Файл конфигурации таблицы Рис.14: Файл конфигурации таблицы

Таким образом в таблицу можно вывести любой перечень полей, которые есть в структуре данных АРМ, включая вложенные свойства. Вложенные свойства задаются через точку. Все вложенные типы и их свойства перечислены в разделе 3.2.

Чтобы изменить порядок полей, в редакторе файла нажмите Alt+Вниз, Alt+Вверх. Чтобы скрыть поле, можно просто удалить строку или закомментировать её нажатием Ctrl+/. Закомментированные строки (отмечены зеленым) остаются в файле, но не используются.

3.4. Настройка экспорта выборки накладных

Выборку накладных можно экспортировать в файл в формате CSV, который можно обработать программно или открыть в Excel. Параметры CSV задаются в файле export\export.ini. Описание всех параметров указано в самом файле. Перечень и формат полей задается в файле export\fields.xml так же, как при настройке таблицы накладных (см. п.3.3). Если экспорт полей нужен в том же виде, как настроена таблица АРМ, тогда просто скопируйте содержание файла view\table.xml в export\fields.xml.

3.5. Настройка отчетов

В АРМ есть два типа отчетов:

Рис.15: Доступ к отчетам Рис.15: Доступ к отчетам

В конфигурации можно настроить вывод в меню до 3х отчетов по накладной и до 3х отчетов по выборке накладных.

Рис.16: Настройка списка отчетов Рис.16: Настройка списка отчетов

Выбор отчета по накладной также доступен в окне накладной в закладке просмотра отчета.

Рис.17: Просмотр отчета Рис.17: Просмотр отчета

Вы можете создать свой шаблон отчета по примеру стандартных шаблонов. Откройте просмотр отчета (как на рис.17), нажмите Ctrl+K, откроется редактор конфигурации сразу с выбранным файлом шаблона этого отчета. Внесите изменение в файл и сохраните Ctrl+S. Результат изменений сразу отразится в просмотре отчета.

Рекомендуется экспериментировать с копиями стандартных шаблонов. Чтобы сделать дубликат файла, выберите стандартный шаблон и нажмите Ctrl+Shift+D. Редактор запросит ввести имя нового файла. Учитывайте, что АРМ использует те файлы шаблонов, которые заданы в файле reports.ini.

Чтобы показать список возможных атрибутов или значений, установите курсор в нужном контексте и нажмите Ctrl+Пробел.

Рис.18: Редактор шаблона отчета Рис.18: Редактор шаблона отчета

4. Администрирование

4.1. Привилегии пользователей

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

В роль system включены все привилегии. Эта роль принадлежит единственному пользователю superuser, у которого, соответственно, есть доступ ко всем функциям. По умолчанию пароль для superuser не задан. Рекомендуется задать надежный пароль для superuser и не использовать эту учетную запись в работе. Заданный пароль для пользователя не может быть восстановлен - используется необратимое шифрование пароля при записи в базу данных.

Для добавления/изменения пользователей и ролей откройте в меню Настройка >> Пользователи и роли. Этот раздел доступен пользователю с привилегией администрирования учетных записей.

Рис.19: Привилегии пользователей Рис.19: Привилегии пользователей

4.2. Журнал действий пользователей

Значимые действия пользователя отмечаются в журнале, который хранится в базе данных. Для просмотра журнала откройте в меню Настройка >> Журнал действий пользователей. Для доступа к журналу у пользователя должна быть привилегия Просмотр журнала действий пользователей.

Рис.20: Журнал действий пользователей Рис.20: Журнал действий пользователей

Список действий, которые отмечаются в журнале:

4.3. Справочники

Справочник - это список наименований с возможными дополнительными атрибутами. В АРМ предусмотрены справочники:

Список справочников находится в меню Разделы.

Рис.21: Просмотр и редактирование справочника Рис.21: Просмотр и редактирование справочника

Списки наименований из этих справочников выводятся в соответствующие поля на форме накладной. Если у оператора есть привилегия редактирования справочника, тогда справочник может пополняться новыми записями по мере ввода новых данных через форму накладной. Но можно и заранее заполнить справочники нужными данными. Это делается вручную или через импорт из файла.

Импорт / Экспорт записей

Простой список наименований (без доп. атрибутов) можно легко импортировать из текстового файла, когда наименования заданы построчно. Кодировка файла: UTF8. Для импорта/экспорта данных с атрибутами текстовый файл должен быть сформатирован как CSV.

Удаление записей

Ненужные записи можно скрыть нажатием в меню записи Удалить. Скрытую запись можно восстановить. Если повторно нажать Удалить для скрытой записи, тогда запись будет удалена из базы данных. Невозможно удалить запись из базы данных, если эта запись связана с накладной, то есть если запись была выбрана в соответствующем поле на форме накладной.

5. Опции

Некоторые элементы пользовательского интерфейса могут быть скрыты в зависимости от подключенных опций. Статус активации и список доступных опций можно увидеть в меню Справка >> О программе

Рис.22: О программе Рис.22: О программе

5.1. Опция 1. Проверка осевых нагрузок

Системные и программные требования:

Программу терминала можно загрузить/обновить из АРМ, для этого в меню АРМ нажмите Сервис >> Загрузить программу взвешивания осей на терминал >> Terminal 1 (или Terminal 2).

Принцип работы программы терминала:

Программа работает отдельно от АРМ и без участия оператора. При въезде ТС на весы начинается процесс определения нагрузок на оси. После остановки ТС на весах программа определяет статический общий вес. Если задан параметр ожидания выхода водителя, тогда статический вес будет зафиксирован только после заданного таймаута. Результаты распределения общей массы по осям определяются после съезда ТС с весов и записываются в общедоступные переменные весового терминала. Эти данные могут быть считаны из внешних программ через порт TCP терминала. При въезде следующего ТС, в начале процесса взвешивания старые результаты удаляются из переменных терминала.

При взаимодействии с АРМ логика работы программы терминала немного меняется. При остановке ТС на весах оператор сам принимает решение в какой момент взвешивать (до или после выхода водителя). По нажатию кнопки Взвесить фиксируется статический вес (в течение 3х секунд ожидается значение веса с признаком стабильности). Это значение статического веса передается программе взвешивания осей на терминале и будет использоваться при распределении по осям после съезда ТС с весов.

Настройка опции проверки осевых нагрузок в АРМ:

Откройте в меню Настройка >> Конфигурация >> файл main.ini >> секция [AXLES]. Обратите внимание на следующие параметры:

use_axles Использовать опцию: “Проверка осевых нагрузок”.

leave_scale_timeout Время ожидания съезда машины с весов (в минутах).

wait_driver_out Время ожидания выхода водителя после остановки на весах (в секундах).

Этот параметр задается для автоматического взвешивания без взаимодействия через АРМ. После остановки ТС на весах программа терминала автоматически фиксирует общую массу ТС. В параметре wait_driver_out задается задержка перед фиксацией общей массы. Если требуется не учитывать массу водителя, установите временную задержку достаточную для выхода водителя из машины. По умолчанию это отключено (задано 0 секунд).

axles_limits_mode Какие правила ограничений осевых нагрузок использовать по умолчанию.

Если будет использоваться только простой режим определения допустимых нагрузок Custom, тогда можно убрать лишние поля из таблицы осей. Откройте форму накладной и нажмите Ctrl+K.

Рис.23: Настройка таблицы осей на форме Рис.23: Настройка таблицы осей на форме

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

Рис.24: Интерактивная схема конфигурации осей и нагрузок Рис.24: Интерактивная схема конфигурации осей и нагрузок

Рис.25: Простой режим определения допустимых осевых нагрузок Рис.25: Простой режим определения допустимых осевых нагрузок

5.2. Опция 2. Подключение к системе распознавания номеров

Взаимодействие с системой распознавания номеров сделано следующим образом. При нажатии Принять ТС, сразу после открытия окна (см.рис.8) выполняется запрос в базу распознанных номеров на поиск последних распознаваний за указанный период. Номера попадают в поля Номер тягача или Номер прицепа в зависимости от идентификаторов распознавателей.

Вызов запроса номеров также доступен из формы накладной, по нажатию кнопки Получить номер.

Поддерживается подключение к системам распознавания:

Для настройки подключения откройте в меню Настройка >> Конфигурация >> файл recogn.ini. Задайте параметр recogn_system=Securos (или AutoTrassir, OrionPro). В этом же файле найдите соответствующий раздел [SECUROS] (или [AUTO_TRASSIR], [ORION_PRO]), в котором задается строка подключения к базе данных и идентификаторы распознавателей.

5.3. Опция 3. Подключение к видео-камерам

Список видео-камер задается в меню Настройка >> Видео-камеры.

Рис.26: Список видео-камер Рис.26: Список видео-камер

Для подключения видео-камеры:

  1. Добавьте запись в таблицу камер. Введите IP, логин, пароль. Для камер фирмы AXIS может потребоваться создание специального ONVIF-пользователя через веб-интерфейс камеры. Введите логин пароль этого пользователя.
  2. Введите номер ячейки от 1 до 6. В зависимости от количества камер сетка изображений может быть 2х1, 2х2, 3х2. Привязка камеры к весам задается в поле ID весов, введите код весов 1 или 2.
  3. В контекстном меню записи нажмите Проверить камеру. Если появилось изображение, текущий URI и разрешение автоматически сохранятся в свойствах записи этой камеры и будут использоваться при работе в АРМ.
  4. Для проверки, как выглядит сетка изображений со всех камер, нажмите в меню Разделы >> Принять ТС или клавишу F9.

Рис.27: Проверка камеры Рис.27: Проверка камеры

5.4. Опция 4. Управление светофорами

Системные и программные требования:

Для активации логики работы дискретных выходов нажмите в меню АРМ Сервис >> Управление светофорами >> Настроить терминал 1. При этом в региональных настройках терминала должен быть задан английский язык. В конфигурации АРМ в файле main.ini задайте параметр use_lights=true.

Принцип работы светофоров

Рис.28: Схема расположения светофоров Рис.28: Схема расположения светофоров

6. Разное

6.1. Список горячих клавиш

В главном окне программы:

В разделе “Накладные”

В разделе справочника

В форме накладной:

В окне просмотра отчета по накладной:

6.2. Примеры алгоритмов обработки ТС

Алгоритм 1: (тара взвешивается в начале смены)

  1. Въезд порожнего ТС на весы в начале смены.
  2. Нажать Принять ТС, ввести номер, нажать Создать новую накладную, нажать Взвесить.
  3. Въезд груженого ТС на весы.
  4. Нажать Принять ТС, ввести номер, нажать Открыть недавно созданную накладную с этим ТС для второго взвешивания.
  5. Нажать Взвесить (вторая кнопка). При появлении второго взвешивания будет рассчитана масса груза. Наименьшая масса из двух взвешиваний будет записана в поле Справочная тара.
  6. Ввести дополнительные данные в поля накладной.
  7. Нажать Заблокировать, распечатать акт.
  8. Далее при следующих рейсах, эта машина взвешивается только груженая. Нажать Принять ТС, ввести номер, нажать Создать новую накладную, нажать Взвесить. Масса груза определиться с учетом справочной тары.
  9. Ввести дополнительные данные в поля накладной.
  10. Нажать Заблокировать, распечатать акт.

Алгоритм 2: (всегда два взвешивания)

  1. Въезд груженого или порожнего ТС на весы.
  2. Нажать Принять ТС, ввести номер. Если найдена накладная, в которой ожидается второе взвешивание, нажать Открыть. Если накладная для данного ТС не найдена или все предыдущие накладные с этим ТС заблокированы, тогда нажать Создать новую накладную.
  3. В форме накладной нажать Взвесить.
  4. Ввести дополнительные данные в поля накладной, если они известны на данный момент.
  5. Если есть два взвешивания и все доп. данные введены, тогда нажать Заблокировать, распечатать акт.

7. Интеграция с внешней системой

7.1. Веб-сервис АРМ

Интерфейс реализуется посредством HTTP RESTful.
Формат передаваемых данных: JSON.
Кодировка UTF-8.
Авторизация: Basic.
Веб-сервис встроен в АРМ. URL веб-сервиса: http:/IP_ПК_оператора:8080/ARM

Ниже приводится описание методов для взаимодействия внешних клиентов с веб-сервисом АРМ. В заголовках URL веб-сервиса сокращается как ...

7.1.1. Описание общих форматов

Формат даты/времени согласно ISO 8601: yyyyMMddThh:mm:ss.fffZ, где T - разделитель даты и времени; Z - разделитель временной зоны (значение временной зоны не передается); fff - миллисекунды (всегда 000).

Формат веса: в килограммах, целочисленный (int)

7.1.2. URL: …/waybill

Метод: POST. Создание новой накладной. В базе данных АРМ создается накладная с заданными значениями из соответствующих атрибутов запроса. Новая запись добавляется в список в разделе Накладные. После успешного создания накладной можно автоматически открыть форму новой накладной с помощью атрибута show_form.

Запрос:

Поле Тип Описание
request_id int Идентификатор внешней системы
trip_id int Идентификатор рейса (внешней системы)
trip_number int Номер рейса
truck_plate string Гос. рег. номер ТС
trailer_plate string Гос. рег. номер прицепа
truck_model string Наименование марки ТС
truck_owner string Наименование владельца ТС
driver_name string ФИО водителя
driver_org string Наименование организации водителя
driver_duty string Должность водителя
shipper_name string Наименование грузоотправителя
shipper_ogrn string ОГРН грузоотправителя
shipper_addr string Адрес грузоотправителя
product_name string Наименование груза
product_info string Количество груза
ship_doc string Список сопроводительных документов
doc_net_kg int Нетто груза по документу в килограммах
consignee_name string Наименование грузополучателя
consignee_ogrn string ОГРН грузополучателя
consignee_addr string Адрес грузополучателя
forwarder_name string Наименование экспедитора, перевозчика
forwarder_ogrn string ОГРН экспедитора, перевозчика
forwarder_addr string Адрес экспедитора, перевозчика
path_from string Наименование пункта отправления
path_to string Наименование пункта назначения
show_form int Не является атрибутом накладной. 0 - не открывать форму новой накладной; 1 - автоматически открыть форму новой накладной для оператора

Ответ:

Поле Тип Описание
request_id int Идентификатор внешней системы
status string При успешном выполнении статус обработки запроса имеет значение OK. Может принимать другие значения, если запрос не выполнен. Перечень статусов указан ниже.
waybill_id int Внутренний идентификатор накладной базы данных АРМ
waybill_num int Порядковый номер накладной
waybill_date string Дата/время создания/изменения накладной

Статусы:

7.1.3. URL: …/waybill/{request_id}

Метод: PUT. Изменение данных в накладной. Можно использовать данный метод для автоматического открытия формы накладной для оператора при втором взвешивании. Для этого требуется задать атрибут show_form=1. Атрибуты запроса и ответа соответствуют описанию как в пункте 7.1.1. Имеются отличия только в перечне статусов:

7.1.4. URL: …/weighing/{request_id}

Метод: GET. Получение данных о взвешивании.

Ответ:

Поле Вложенное поле Тип Описание
request_id int Идентификатор внешней системы
status string Перечень статусов указан ниже
weighing1 Первое взвешивание
weighing_num int Номер взвешивания (1,2)
weight int Вес в килограммах в статике
weighing_dt string Дата/время взвешивания. Передается пустое значение, если первое взвешивание отсутствует.
axles int[] Массив типа int данные веса по осям
scale_id int Идентификатор весов, на которых было зафиксировано взвешивание. Идентификатор задается в конфигурации АРМ.
weighing2 Втрое взвешивание
weighing_num int Номер взвешивания (1,2)
weight int Вес в килограммах взвешивания в статике
weighing_dt string Дата/время взвешивания. Передается пустое значение, если второе взвешивание отсутствует.
axles int[] Массив типа int данные веса по осям
scale_id int Идентификатор весов, на которых было зафиксировано взвешивание. Идентификатор задается в конфигурации АРМ.

Статусы:

7.1.5. URL: …/lockwaybill/{request_id}

Метод: PUT. Блокировка накладной. После блокировки пользователь не может внести изменения в накладную, отменить или добавить взвешивание.

Ответ:

Поле Тип Описание
request_id int Идентификатор внешней системы
status string Перечень статусов указан ниже

7.1.6. URL: …/capture

Метод: POST. Фиксация текущих весовых данных аналогично нажатию кнопки Взвесить. Накладная и взвешивание сохраняется в базе данных, затем отправляется ответ на запрос.

Запрос:

Поле Тип Описание
request_id int Идентификатор внешней системы
scale_id int Идентификатор весов, на которых требуется зафиксировать взвешивание. Идентификатор задается в конфигурации АРМ.

Ответ:

Поле Тип Описание
request_id int Идентификатор внешней системы
status string Перечень статусов указан ниже
weight int Вес в килограммах в статике

7.1.7. URL: …/status

Метод: GET. Проверка текущего состояния АРМ.

Ответ:

Поле Тип Описание
status string Перечень статусов указан ниже

Статусы:

7.1.8. URL: …/printform/{request_id}

Метод: GET. Экспорт ответа по накладной в файл PDF. Каталог выгрузки сформированных печатных форм задается в Конфигурации >> файл main\main.ini >> INTERACTION >> printform_dir. При формировании отчета используется шаблон, который задан в Конфигурации >> файл reports\reports.ini >> printform_template_path. Имя файла задается как “{request_id}.pdf”. При наличии одноименного файла в каталоге файл перезаписывается.

Ответ:

Поле Тип Описание
request_id int Идентификатор внешней системы
status string Перечень статусов указан ниже
href string Путь к сформированному файлу PDF

Статусы:

7.2. Внешний веб-сервис

На внешний веб-сервис передаются накладные по событиям:

Рекомендуется включить в АРМ передачу накладных только по событию блокировки накладной. Это гарантирует, что данные в локальной базе АРМ будут совпадать с переданными данными на сервер.

Адрес внешнего веб-сервиса задается в конфигурации АРМ, в файле main.ini >> INTERACTION. Для каждого метода адрес задается отдельно:

1. Метод (target_service_status_url)

Назначение метода:

Проверка связи с сервером.

Входные атрибуты (запрос):

без атрибутов

Выходные атрибуты (ответ):

2. Метод (target_service_url)

Назначение метода:

Передача данных из накладных.

Входные атрибуты (запрос):

Выходные атрибуты (ответ):

3. Метод (target_service_process_url)

Назначение метода:

Передача текущих показаний весов для автоматического режима взвешиваний (фиксация показаний программой сервера).

Входные атрибуты (запрос):

Выходные атрибуты (ответ):

7.2. Описание полей базы данных

Дата/время хранится как целое число (int) секунд, прошедших с 01.01.2000 00:00:00.

Таблица Waybills - Накладные:

Поле Тип MSSQL Описание
ID int Идентификатор (автоинкремент)
WaybillNumber int Порядковый номер накладной
VehicleNumber nvarchar(10) NULL Номер тягача
TrailerNumber nvarchar(10) NULL Номер прицепа
Capacity int NULL Грузоподъемность (кг)
InputTare int NULL Справочная тара или ручной ввод тары (кг)
Description nvarchar(200) NULL Примечание
DocNet int NULL Нетто по документу (кг)
W1ID int NULL Идентификатор первого взвешивания (из таблицы Weighings)
W2ID int NULL Идентификатор второго взвешивания (из таблицы Weighings)
DateModified int Дата/время последних изменений в полях накладной
EditorID int NULL Идентификатор пользователя, который внес изменения (из таблицы UserAccounts)
IsLocked bit NULL Статус блокировки накладной
ProductID int NULL Идентификатор материала (из таблицы Products)
FractionID int NULL Идентификатор фракции материала (из таблицы Fractions)
AxlesConfigID int NULL Не используется
ForwarderID int NULL Идентификатор экспедитора (из таблицы Forwarders)
ConsigneeID int NULL Идентификатор грузополучателя (из таблицы Consignees)
ShipperID int NULL Идентификатор грузоотправителя (из таблицы Shippers)
RoadID int NULL Не используется
DriverID int NULL Идентификатор водителя (из таблицы Drivers)
DocNumTrans nvarchar(50) NULL Номер транспортной накладной
DocDateTrans int NULL Дата транспортной накладной
DocNumShip nvarchar(50) NULL Номер спроводительного документа
DocDateShip int NULL Дата спроводительного документа
DocNumPerm nvarchar(50) NULL Номер специального разрешения
DocDatePerm int NULL Дата специального разрешения
DocProductInfo nvarchar(50) NULL Доп. информация о грузе
VehicleID int NULL Идентификатор марки ТС (из таблицы Vehicles)
ContainerNumber nvarchar(15) NULL Номер контейнера
ContainerWeight int NULL Масса пустого контейнера (кг)
ContainerInclude bit NULL Учитывать массу пустого контейнера при рассчете нетто
CarOwnerID int NULL Идентификатор владельца ТС (из таблицы CarOwners)
PathFromID int NULL Идентификатор направления (из таблицы Paths)
PathToID int NULL Идентификатор направления (из таблицы Paths)
TripN int NULL Номер рейса
RefID int NULL Идентификатор посылки данных из внешней системы при создания новой накладной
SyncDate int NULL Дата/время успешной отправки данных накладной во внешнюю систему
TripID int NULL Идентификатор рейса
RoadCategory int NULL Список выбранных категорий дорог для определения осевых нагрузок. Список закодирован в int. Пример: 100 - выбрана первая категория из трех, 101 - первая и третья, 111 - все категории.
VehicleConfig nvarchar(60) NULL Конфигурация осей тягача
TrailerConfig nvarchar(60) NULL Конфигурация осей прицепа

Таблица Weighings - Взвешивания:

Поле Тип MSSQL Описание
ID int Идентификатор (автоинкремент)
W_Total int Масса (кг). Масса с нескольких платформ суммируется.
DateWeighed int Дата/время взвешивания
TerminalID int Идентификатор весового терминала. Соответствует параметру в конфигурации: main.ini >> TERMINAL1(2) >> id
UserID int NULL Идентификатор оператора, который выполнил взвешивание
WaybillID int Идентификатор накладной (из таблицы Waybills)
PhotoID int NULL Код фото-снимка, соответствует имени файла. Это число секунд, прошедших с 01.01.2016 00:00:00.
Axles nvarchar(200) Строка весовых нагрузок по осям (в килограммах через запятую)

Таблица UserAccounts - Пользователи:

Поле Тип MSSQL Описание
ID int Идентификатор (автоинкремент)
Login nvarchar(50) Логин проверяется при входе в программу
FullName nvarchar(150) Ф.И.О. обычно используется в отчетах
Password nvarchar(20) NULL Хэш пароля
RoleID int Идентификатор группы
CanChangePassword bit Пользователь может сменить пароль
IsDisabled bit Пользователь заблокирован

Таблица Drivers - Водители:

Поле Тип MSSQL Описание
ID int Идентификатор (автоинкремент)
Name nvarchar(50) Ф.И.О. водителя
Passport nvarchar(50) NULL Номер/серия документа (паспорта)
Hidden bit Флаг удаления (скрытия) записи
Duty nvarchar(50) NULL Должность
Company nvarchar(50) NULL Организация

Таблица Products - Грузы:

Поле Тип MSSQL Описание
ID int Идентификатор (автоинкремент)
Name nvarchar(50) Наименование
Hidden bit Флаг удаления (скрытия) записи
CategoryID int NULL Идентификатор категории (из таблицы ProductCat)

Таблица Vehicles, Fractions, CarOwners, Paths - Марки ТС, Фракции материала, Владельцы ТС, Направления:

Поле Тип MSSQL Описание
ID int Идентификатор (автоинкремент)
Name nvarchar(50) Наименование
Hidden bit Флаг удаления (скрытия) записи

Таблица NumDefs - Номера ТС:

Поле Тип MSSQL Описание
ID int Идентификатор (автоинкремент)
Number nvarchar(10) Номер ТС или прицепа
Capacity int NULL Грузоподъемность (кг)
Tare int NULL Справочная тара (кг)
GroupID int 0 - ТС; 1 - Прицеп
AxlesConfigID int NULL Не используется
VehicleID int NULL Идентификатор марки ТС (из таблицы Vehicles)
CarOwnerID int NULL Идентификатор владельца ТС (из таблицы CarOwners)
TareDate int NULL Дата/время обновления справочной тары
AxlesConfig nvarchar(60) NULL Конфигурация осей

Таблицы Shippers, Consignees, Forwarders - Грузоотправители, Грузополучатели, Экспедиторы:

Поле Тип MSSQL Описание
ID int Идентификатор (автоинкремент)
Name nvarchar(50) Наименование
OGRN nvarchar(15) NULL ОГРН
Hidden bit Флаг удаления (скрытия) записи
Address nvarchar(100) NULL Адрес