Диплом: Автоматизация рабочего времени сотрудников компании ООО "ТД АТЛАНТ"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
57
Каждая функция приложения имеет свою экранную форму. При запуске
программы, а также по истечении заданного времени, в случае отсутствия
активности пользователя, открывается форма «Заставка», с полем для ввода
пароля. Если введен верный пароль, открывается главное меню, которое
представляет собой набор инструментов для операций с файлами, а также
выбора экранной формы. В нем доступны следующие уровни: Файл,
Документы, Настройка, и Помощь. На уровне «Файл» доступны импорт,
экспорт и средства печати текущего документа. Уровень «Документы»
представляет собой средство выбора следующих экранных форм: редактора
событий, штатного расписания, графика отпусков, графика
нетрудоспособности и табеля учета рабочего времени. Выбранная форма
возникает в основном поле главного меню. Экранная форма «Настройки»
содержит набор редактируемых параметров приложения. Служебная функция
помощи представляет собой отдельно открывающееся окно help-файла в
формате .chm.
На рисунке 10 представлен сценарий диалога, разработанный на
основании дерева функций проектируемого модуля.
Рис. 10. Сценарий диалога приложения «Her.watchman-04»
58
Встроенное программное обеспечение терминала ATL-31 Watchman
представляет собой процедурный алгоритм в виде последовательного описания
инструкций для процессора ATmega, без использования каких-либо
операционных систем. Разработка данного программного обеспечения
выполняется на языке Си (компилятор GCC) с ассемблерными вставками.
Носителем данного ПО является flash-память микроконтроллера. Для хранения
некоторых переменных и констант, представляющих собой параметры
настройки терминала, используется внешняя энергонезависимая память
EEPROM. Данное ПО имеет две служебные и две основные функции (рисунок
11):
Рис. 11. Дерево функций терминала ATL-31 Watchman
Экранные формы терминала представляют собой диалоговые сообщения,
отображаемые на LCD-дисплее устройства, для индикации состояния
устройства, отображения параметров его настройки, или текущего
регистрируемого события. При запуске устройства на дисплее появляется
заставка в виде сообщения о происходящей инициализации устройства. Если
данная процедура проведена успешно, открывается главное меню, в котором
отображена строка состояния устройства и строка с кодом события (по
умолчанию код: 0 «нет событий»). Переход в меню «Настройки» выполняется
посредством введения пароля администратора в виде четырех цифр, либо
посредством ID-карты администратора. В данном меню представлена
возможность редактирования базы ID-карт, настройки яркости и контрастности
дисплея, а также просмотра журнала ошибок в энергонезависимой памяти
59
устройства. Сценарий диалога терминала ATL-31 Watchman представлен на
рисунке 12:
Рис. 12. Сценарий диалога терминала ATL-31 Watchman
2.3.2. Характеристика базы данных
База данных разрабатываемого модуля Her.watchman-04, под
управлением СУБД Microsoft SQL Server 2017, включает в себя таблицы,
подробное описание которых находится в пунктах 2.2.1. – 2.2.3 данной ВКР:
Staff_listтаблица сотрудников;
Eventsтаблица событий;
Vacations таблица графика отпусков;
Sick_leaveтаблица графика нетрудоспособности;
Описание характеристик вышеуказанных справочников представлено в
таблицах 16-19:
Таблица 16.
Характеристика таблицы «Staff_list»
Наименование
поля
Идентификатор
поля
Тип
данных
Длина
поля
Описание поля
ID сотрудника
per_number
int
4
Табельный номер
Фамилия, И.О.
Name
varchar
30
Фамилия и инициалы
Должность
Position
varchar
30
Наименование должности
60
Таблица 17.
Характеристика таблицы «Events»
Наименование
поля
Идентификатор
поля
Тип
данных
Длина
поля
Описание поля
ID сотрудника
per_number
int
4
Табельный номер
Время 1 «I»
time1_i
time
8
Время выхода на смену
Время 1 «O»
time1_o
time
8
Время ухода на перерыв 1
Время 2 «I»
time2_i
time
8
Время возвращения
Время 2 «O»
time2_o
time
8
Время ухода на перерыв 2
Время 3 «I»
time3_i
time
8
Время возвращения
Время 3 «O»
time3_o
time
8
Время завершения смены
Общее время
total_time
int
4
Общее отработанное время
Таблица 18.
Характеристика таблицы «Vacations»
Наименование
поля
Идентификатор
поля
Тип
данных
Длина
поля
Описание поля
ID сотрудника
per_number
int
4
Табельный номер
Дата (1-31)
date_x* (1-31)
bit
1
Число месяца от 1 до 31
Таблица 19.
Характеристика таблицы «Sick_leave»
Наименование
поля
Идентификатор
поля
Тип
данных
Длина
поля
Описание поля
ID сотрудника
per_number
int
4
Табельный номер
Дата (1-31)
date_x* (1-31)
bit
1
Число месяца от 1 до 31
Большая часть полей вышеперечисленных таблиц носят
самостоятельный характер, за исключением полей «per_number»,
предназначенных для хранения табельных номеров сотрудников предприятия с
целью дальнейшей их идентификации в выходном документе. ER-модель
взаимосвязи данных таблиц изображена на рисунке 13:
61
Рис. 13. ER-модель взаимосвязи таблиц БД
Терминал ATL-31 Watchman не имеет базы данных как таковой. Для
хранения номеров ID-карт работников в микроконтроллере ATTiny13A,
дешифрующего данные от RFID RC522, используется внешняя
энергонезависимая память EEPROM, в которую они последовательно вносятся,
согласно адресам ячеек (рисунок 14).
Рис. 14. Энергонезависимая память терминала ATL-31 Watchman
62
2.3.3. Структурная схема пакета (дерево вызова программных модулей)
Модули приложения Her.watchman-04 представляют собой классы,
описанные на языке C#, скомпилированные в стековый байт-код, для его
последующего исполнения средой Common Language Runtime платформы .NET
Framework 4.7.2. Работа с БД выполняется посредством SQL-запросов. Данное
приложение состоит из одного управляющего, двух служебных и пяти
операционных (связанных с обработкой и вводом-выводом данных) модулей,
подробное описание которых представлено в таблице 20:
Таблица 20.
Описание функций модулей приложения Her.watchman-04
п/п
Наименование
модуля
Класс модуля
Функция модуля
1.
Main module
Управляющий
Главный модуль. Содержит основные
классы программы, реализующие
запуск приложения, его графический
интерфейс и вызов остальных
модулей, функции импорта/экспорта
документов, а также вывод
содержимого экрана в печать
2.
Security module
Служебный
Модуль безопасности. Производит
проверку пароля при входе в
приложение или при временном
отсутствии активности ос стороны
пользователя
3.
Settings module
Служебный
Модуль, инициализирующий
настройки приложения, а также
хранящий все его переменные и
константы, относящиеся к настройкам
4.
Events module
Операционный
Модуль, осуществляющий перенос
данных из буфера утилиты
HyperTerminal в SQL таблицу Events
5.
Vacations module
Операционный
Модуль ввода данных в таблицу
Vacations для редактирования графика
отпусков
6.
Staff-list module
Операционный
Модуль ввода данных в таблицу
Staff_list для редактирования списка
сотрудников
7.
Sick-leave module
Операционный
Модуль ввода данных в таблицу
Sick_leave для редактирования
графика нетрудоспособности
8.
Output module
Операционный
Производит заполнение выходного
документа посредством SQL запросов
к БД на основе всех входных таблиц
63
Ключевым модулем является Main module. При запуске программы, в
первую очередь, вызывается Security module с целью блокировки дальнейшего
доступа к приложению до введения пароля администратора. После начала
работы с приложением, система использует настраиваемый таймер-счетчик для
повторной блокировки приложения в случае отсутствия активности
пользователя (счетчик сбрасывается в случае срабатывания прерываний от
мыши, тачпада или клавиатуры рабочей станции). Данный пароль
впоследствии может быть изменен при помощи модуля Settings module. В Main
module также описывается графический интерфейс пользователя приложения
посредством использования классов Windows Forms, а также вызов методов
классов операционных модулей. Дерево вызова программных модулей
представлено на рисунке 15:
Рис. 15. Дерево вызова программных модулей приложения
Her.watchman-04
Встроенное программное обеспечения терминала ATL-31 Watchman –
отдельный модуль, представляющий собой алгоритмы, описанные на языке Си.
Данные, передаваемые терминалом в буфер HyperTerminal, являются
источником для таблицы «Events», которая также может быть заполнена
вручную через экранную форму «События».
64
2.3.4. Описание программных модулей
Разработка автоматизированной системы учета рабочего времени
Her.watchman-04 производится группой разработчиков. В связи с этим, далее
представлено описание программного модуля, разработанного
непосредственно автором данной ВКР, а именно, встроенное программное
обеспечение терминала ATL-31 Watchman. Назначение выводов
микроконтроллера ATMega16 представлено в приложении 8.
Программное обеспечение терминала состоит из нескольких модулей,
описание логики которых представлено в виде следующих блок-схем:
1. Основной цикл Main (рисунок 1).
2. Обработка прерывания от SPI (рисунок 16б).
3. Обработка клавиатуры (рисунок 17).
Листинг программного кода встроенного программного обеспечения
терминала ATL-31 Watchman представлен на языке Си в приложении 9.
После включения питания терминала, выполняется подключение
сторонних библиотек на периферийные устройства, такие как LCD-дисплей,
радиочастотный идентификатор (считыватель карт), преобразователь
интерфейсов (UART to USB), настройка портов ввода-вывода, инициализация
прерываний, переменных и констант, настройка частоты кварцевого резонатора
и таймеров-счетчиков.
Программа переходит в основной цикл «Main», в котором производится
опрос кнопок клавиатуры и ожидание приема данных по протоколу SPI от
контроллера ATTiny13A, дешифрующего данные от RFID RC522 (встроенное
ПО для данного микроконтроллера написано на языке ассемблер).
В момент передачи данных от устройства ATTiny13А, срабатывает
прерывание SPI, в теле которого осуществляется прием бита, содержащего
номер сотрудника, приложившего ID-карту к считывателю. Далее, эта
информация передается на рабочую станцию.
Если в момент опроса, какая-либо кнопка клавиатуры терминала нажата,
программа переходит к процедуре ввода. В обратном случае, если никаких
сигналов от клавиатуры не поступало, а флаг прерывания от UART находится в
значении «ноль», тогда рабочая станция получает сообщение, состоящее из
65
пустого байта (нет события). Основной цикл замыкается. Сообщение на LCD-
дисплее обновляется каждый раз в начале цикла main, которое состоит из
строки состояния и строки кода события (четырехразрядное число,
соответствующее табельному номеру сотрудника). В момент передачи данных,
на LCD-дисплее отображается сообщение «Передача данных» и табельный
номер владельца ID-карты.
Рисунок 16. Инициализация и основной цикл Main
66
Клавиатура терминала состоит из клавиш: «0», «1», «2», «3», «4», «5»,
«6», «7», «8», «9», «Esc», и «Enter». Каждая кнопка терминала (кроме «Enter»)
привязана через диоды к отдельному выводу микроконтроллера «PD6» для
общей проверки активности клавиатуры. Таким образом, условием для начала
обработки данных, вводимых при помощи терминала, является нажатие какой-
либо из кнопок.
После перехода к процедуре ввода (рисунок 17.а), производится
проверка, какая именно из кнопок была нажата (рисунок 17.б). Для этого,
поочередно проверяется каждый вывод микроконтроллера,
сконфигурированного как вход кнопки клавиатуры, на наличие логического
нуля, который образуется в момент нажатия кнопки. Переменная «kb_buffer»
принимает значение, соответствующее номеру нажатой кнопки, а значение
переменной key_count, отвечающей за разрядность вводимого числа,
инкрементируется. В случае нажатия кнопки «Esc», все параметры клавиатуры,
а именно: переменные «kb_buffer», «kb_total», и «key_count», принимают
нулевое значение, а программа завершает процедуру ввода.
Если регистрация нажатой кнопки выполнена успешно, происходит
возврат из процедуры чтения кнопок клавиатуры в процедуру ввода. Далее,
проверяется разряд вводимого числа, посредством проверки переменной
«key_count». В соответствии с разрядом, данное число умножается на
множитель и присваивается переменной «kb_total», путем составной операции
присвоения и сложения. Таким образом, каждое последующее вводимое число
соответствует своему разряду. Вводимое число, которое хранится в переменной
«kb_total», отображается на экране LCD-дисплея во второй строке.
Отправка введенных при помощи клавиатуры данных на рабочую
станцию, выполняется посредством процедуры обработки кнопки «Enter».
Опрос данной кнопки осуществляется отдельно от остальных ключей в главном
цикле программы. При появлении логического уровня «0» на входе «PD4»,
происходит копирование значения переменной «kb_total» в «Event», с
последующим обнулением первой и копирования значения второй в регистр
UDR для отправки данных на рабочую станцию (рисунок 17.в).

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)