диплом2015


ВВЕДЕНИЕ
С развитием информационной технологии всё острее встаёт вопрос быстрого и надёжного ввода информации о товаре в ЭВМ для последующего быстрого решения задач, связанных с фиксацией факта его поступления, получения, отгрузки, продажи, передачи на последующие этапы движения. Ручной ввод кода изделия, позиции или строки документа или предварительная подготовка данных на машинных носителях требуют больших затрат ручного труда, времени, часто приводит к ошибкам, и поэтому такая технология ввода информации в ЭВМ стала узким местом современных автоматизированных систем обработки данных
Внедрение информационных технологий означает не просто присутствие компьютерной системы управления, но и необходимость наличия цифровых устройств в точках первичного сбора информации, призванных облегчить ввод информации, уменьшить число ручных операций и минимизировать число ошибок при вводе данных.
В последние годы наиболее перспективным и быстро развивающимся направлением автоматизации процесса ввода, обработки информации становится штриховое кодирование. Штриховое кодирование – технология автоматической идентификации и сбора данных, основанная на представлении информации по определенным правилам в виде напечатанных формализованных комбинаций элементов установленной формы, размера, цвета, отражающей способности и ориентации для последующего оптического считывания и преобразования в форму, необходимую для ее автоматического ввода в вычислительную машину.
Сейчас штриховой код наноситься на большинство продукции. В целом это заметно сказалось на развитии производства. Резко повысился уровень информированности руководителей и специалистов, задействованных в цепочке производитель – потребитель, уменьшились товарные запасы сырья и полуфабрикатов (их наличие колеблется в зависимости от спроса), заметно снизилась трудоемкость учетных операций с одновременным уменьшением численности персонала.
Преимущества штрихового кодирования:
– точность в идентификации объектов;
– точный учёт складируемых или проданных товаров;
– более экономичное использование рабочего времени;
– увеличение скорости получения и обработки информации;
– сокращение ошибок при автоматической идентификации объектов по
сравнению с ручной.
Объектом дипломного проекта является закрытое акционерное общество «Атлант».
Целью дипломного проекта является создание автоматизированной системы идентификации готовой продукции.
Автоматизированная система идентификации готовой продукции разрабатывается в целях внедрения новых информационных технологий на предприятии и представляет собой комплекс программно-технических средств, реализующих метод автоматической идентификации готовой продукции на основе системы штрихового кодирования.
В первом разделе дипломного проекта описаны основные методы идентификации продукции, принципы построения и создания автоматизированных систем идентификации готовой продукции. Формулируется задача проектирования.
Во втором разделе разрабатывается структурная схема системы, общий алгоритм функционирования системы, описывается расположение учетных точек в цеху предприятия, формулируются ошибки, возникающие в системе.
В третьем разделе выбирается необходимое оборудование и программные средства для разработки программного обеспечения автоматизированной системы идентификации готовой продукции.
В четвертом разделе описывается алгоритм функционирования программного обеспечения, основные функции и классы, разрабатывается программное обеспечение, тестируется данный программный продукт, оценивается его надежность и разрабатывается руководство пользователя.
В пятом разделе описывается технико-экономическое обоснование, которое включает в себя разработку сметы затрат на программное обеспечение и расчет экономического эффекта.
Шестой раздел посвящен охране труда и экологии, содержит описание оптимизации зрительного взаимодействия оператора со средствами отображения информации.
ОБЗОР ОСНОВНЫХ МЕТОДОВ ИДЕНТИФИКАЦИИ ПРОДУКЦИИ. ПОСТАНОВКА ЗАДАЧИ
1.1 Обзор основных методов идентификации продукции
Основными методами идентификации продукции являются:
– рукописный;
– радио-идентификация;
– штриховое кодирование.
Рукописный метод основан на регистрации продукции оператором при помощи записи данных на бумаге. Этот метод является не эффективным, так как человек может ошибиться, что может привести к потере данных, а, следовательно, и к затратам.
Радиочастотная идентификация и штриховое кодирование относится к автоматической идентификации. Автоматическая идентификация позволяет исключить "человеческий фактор" при идентификации продукции, товаров или документов. Реализация этого решения предполагает выполнение следующих шагов:
– присвоение каждому предмету определенного идентификатора (номера или кода);
– нанесение на предмет специализированной метки, содержащей идентификатор;
– считывание данных с метки цифровым устройством;
– перевод данных метки в электронный вид.
Радиочастотная идентификация(RFID) основана на считывании информации с метки. Метка представляет собой миниатюрное запоминающее устройство. Она состоит из микрочипа, который хранит информацию, и антенны, с помощью которой метка передает и получает информацию[3].
В памяти метки хранится ее собственный уникальный номер и пользовательская информация. Когда радио-метка проходит через зону чтения опросчика, она определенным образом изменяет его сигнал и возвращает его устройству опроса. Опросчик определяет разницу между излученным и принятым сигналами и выясняет таким способом идентификатор радио-метки[3].
Энергия для питания радио-метки берется из батареи, являющейся частью оборудования радио-метки (активная метка), или черпается из энергии несущего сигнала, обычно заряжающего встроенный в радио-метку конденсатор (пассивная метка). Частоты электромагнитного излучения считывателя и обратного сигнала, передаваемого меткой значительно влияют на характеристики работы радиочастотной системы в целом. Как правило, чем выше диапазон рабочих частот системы RFID, тем больше дальности, на которых считывается информация с радиочастотных меток. Классификация RFID-меток приведена на рисунке 1.1[2].
Низкочастотные метки имеют встроенные антенны в виде многоконтурных (несколько сотен) обмоток. Высокочастотные метки имеют одноконтурные обмотки (диполь-антенна).
Наименьшими размерами и стоимостью обладают пассивные метки класса Read Only (только чтение) и малой дальности (расстояние до считывателя не более 2 метров).
Радио-идентификация
Низкие частоты
Средние частоты
Высокие частоты
Активные
Пассивные
Активные
Пассивные
Активные
Пассивные
Read
WORM
R/W
Read
WORM
R/W
Read
WORM
R/W
Read
WORM
R/W
Read
WORM
R/W
Read
WORM
R/W


Рисунок 1.1 – Классификация RFID-меток
Преимуществом активных меток по сравнению с пассивными является значительно большая (не менее, чем в 2-3 раза) дальность считывания информации и высокая допустимая скорость движения активной метки относительно считывателя.
Преимуществом пассивных меток является практически неограниченный срок их службы (не требуют замены батареек). Недостаток пассивных меток в необходимости использования более мощных устройств считывания информации, обладающих соответствующими источниками питания.
Информация в устройство памяти радиочастотной метки может быть занесена различными способами. Способ записи информации зависит от конструктивных особенностей метки. В зависимости от этого различают следующие типы меток[3]:
– Read Only – метки, которые работают только на считывание информации. Необходимые для хранения данные заносятся в память метки изготовителем и не могут быть изменены в процессе эксплуатации.
– WORM – метки ('Write Once Read Many") для однократной записи и многократного считывания информации. Они поступают от изготовителя без каких-либо данных пользователя в устройстве памяти. Необходимая информация записывается самим пользователем, но только один раз. При необходимости изменить данные потребуется новая метка.
– R/W – метки ('Read/Write") многократной записи и мнократного считывания информации.
К недостаткам RFID-систем относятся:
– относительно высокая стоимость меток;
– возможность экранирования некоторых радио-меток токопроводящими поверхностями, например листом фольги, что ограничивает возможность интеграции меток в металлическую упаковку, а также делает возможной ее намеренную деактивацию;
– возможность сбоя при одновременном попадании в зону действия радио-сканера нескольких однотипных меток;
– возможность сбоя в результате внешних помех, например воздействия электромагнитных полей компьютеров и мониторов.
Штриховое кодирование – технология автоматической идентификации и сбора данных, основанная на представлении информации по определенным правилам в виде напечатанных формализованных комбинаций элементов установленной формы, размера, цвета, отражающей способности и ориентации для последующего оптического считывания и преобразования в форму, необходимую для ее автоматического ввода в вычислительную машину[1].
Из доступных технологий автоматической идентификации технология штрихового кодирования и штрих-кодовая метка приобрели наибольшую популярность. Прежде всего, это связано с простотой данной технологии и низкой стоимостью расходных материалов: нанесение штрих-кода на ярлык или упаковку обходится значительно дешевле нанесения радиочастотных меток. Если штрих-код наносится типографским способом, то на стоимости упаковки это не отражается, если же штрих-код печатается на самоклеящейся этикетке, то стоимость упаковки возрастает незначительно. Следует учитывать, что с каждым годом все больше производителей сами заботятся о нанесении штрих-кода на упаковку, и количество товаров, маркированных
штрих-кодом также увеличивается, что, естественно, уменьшает затраты на
самостоятельную маркировку.
В технологии штрихового кодирования можно выделить следующие основные этапы:
– создание штрихового кода при помощи специального программного обеспечения.
– маркировка товара штриховым кодом (многие товары уже имеют на своей упаковке штрих-код, распечатанный типографским способом).
– чтение штрихового кода (получение данных, закодированных в штриховом коде).
Существует два способа нанесения штрих-кода на упаковку:
– изготовление плёночного оригинал-макета штрих-кода, который используется для подготовки матриц для последующего полиграфического процесса печати упаковки «мастер-фильм».
– нанесение штрих-кода на специальную этикетку, наклеивающуюся на товар или упаковку.
Принтеры этикеток классифицируются по способу печати на принтеры с прямой термопечатью и принтеры с термотрансферной печатью.
При прямой термопечати печатающая головка разогревается и воздействует на определенные участки термобумаги, образуя изображение. Материал, из которого изготавливаются этикетки, чувствителен к теплу, свету и механическим воздействиям. Поэтому срок службы таких этикеток обычно не превышает полугода, затем качество изображения ухудшается, возникают трудности при считывании штрих-кода. Обычно этикетки из термобумаги используют для товаров с небольшим сроком реализации[2].
При термотрансферной печати краситель со специальной ленты в принтере под воздействием тепла переносится на этикетки. Этикетка может иметь в качестве основы обычную бумагу, картон или синтетический материал. Этикетки, напечатанные на термотрансферном принтере более долговечны и устойчивы к внешним воздействиям, их можно использовать для маркировки товаров с длительным сроком реализации (до двух лет)[2].
Штриховой код – это код, представляющий знаки с помощью наборов параллельных штрихов различной толщины и шага, которые оптически считываются путем поперечного сканирования[1].
Следующий этап, после печати штрихового кода – это получение данных или чтение штрих-кода. Существует несколько классов устройств, предназначенных для чтения штрихового кода, это:
– сканеры штрих-кода;
– терминалы сбора данных;
– щелевые считыватели штрих-кода;
– сканеры световое перо.
Сканер штрих-кода предназначен для чтения штрих-кодов с различных поверхностей: если это стационарный сканер, то предмет со штрих-кодом просто подносится к окну сканера, чтение штрих-кода в этом случае происходит автоматически; если это ручной сканер, то его необходимо взять в руку, навести луч сканера на штрих-код и нажать кнопку для чтения штрих-кода.
Для чтения штрих-кода при помощи сканера не обязателен непосредственный контакт с самим штрих-кодом: максимальное расстояние считывания может меняться в зависимости от модели сканера от 20 до 300 мм (промышленные сканеры могут читать и с большего расстояния). Сканер распознает и считывает штрих-код, переводит данные штрих-кода в электронный вид и передает для дальнейшей обработки в ПК.
Терминал сбора данных – это своего рода многофункциональный сканер штрих-кода, снабженный внутренней памятью и процессором, способный накапливать и обрабатывать данные по считанным штрих-кодам[2].
Щелевой считыватель штрих-кода – сканер штрих-кода, предназначенный для чтения штрих-кодов с карточек. Чтобы прочитать штрих-код, нужно провести карточку вдоль щели устройства[2].
Сканер световое перо – это специализированный сканер штрих-кода, используемый в офисах для чтения штрих-кодов с ровных поверхностей. Чтобы прочитать штрих-код, нужно быстро провести головку сканера вдоль штрих-кода[2].
На сегодняшний день выделяют два типа штриховых кодов: одномерные и двухмерные[1].
Одномерный штрих-код можно встретить на большинстве товаров. Он представляет собой ряд прямоугольных полос, разделенных промежутками. Информация в нем содержится только в одном измерении и может быть считана обычным однолучевым сканером. Пример одномерных штрих-кодов приведён на рисунке 1.2.
Двухмерный штриховой код можно встретить на акцизных марках ликероводочной продукции. Такой штрих-код содержит информацию на всей плоскости штрих-кода сразу в двух измерениях (рисунок 1.3). Двухмерный штриховой код можно считать при помощи специализированных сканеров двухмерных штрих-кодов.
В двухмерных штрих-кодах можно закодировать существенно больший
объем информации, но из-за сложности работы с ними и значительной стоимости оборудования (сканеров двухмерного штрих-кода) он пока не получил широкого распространения.

Рисунок 1.2 – Одномерные штрих-коды

Рисунок 1.3 – Двухмерные штрих-коды
На данные момент существует более 300 стандартов штрих-кодирования. Различные стандарты используют различные алгоритмы кодирования. У каждого алгоритма существуют свои особенности такие как минимальная и максимальная длинна данных, ограничения на размер штрих-кода и т.д. различные стандарты имеют свои достоинства и недостатки и часто разрабатываются с учетом конкретной области применения. Наиболее популярные[1]:
– Code 128: штрих-код переменной длины. Обычно кодируются буквенно-цифровые данные. Данный стандарт подходит для общего применения, например, для маркировки DVD-дисков, удостоверений личности и многих других целей.
– EAN.UCC-128: штрих-код переменной длины. Обычно кодируются буквенно-цифровые данные. Этот международный стандарт разрабатывался для обмена данными между различными компаниями. Стандарт UCC.EAN-128 помимо данных, кодирует идентификатор (AIs), который позволяет определить тип закодированных данных и формат кодирования. UCC.EAN-128 кодирует данные, используя алгоритмы стандарта Code 128.
– Code 39: штрих-код переменной длины. Обычно кодируются буквенно-цифровые данные. Данный стандарт широко используется уже много лет и является самым популярным в мире для общих задач.
– UPC-A: 12-значный штрих-код фиксированной длины для кодирования числовых данных. Используется в американских розничных магазинах для идентификации товаров. Уникальные штриховые коды UPC-A разработаны UC-советом.
– UPC-E: 6-значный штрих-код фиксированной длины для кодирования числовых данных. UPC-E – сокращенный вариант штрих-кода UPC-A. Данный стандарт используется для идентификации мелких розничных товаров, размеры которых не позволяют разместить на них полный штрих-код UPC-A.
– EAN-13 (JAN-13): 13-значный штрих-код фиксированной длины для кодирования числовых данных. Уникальные штрих-коды EAN-13 разработаны EAN и являются расширенным вариантом UPC-A. Различие между ними заключается в том, что EAN-13 содержит также код страны.
– EAN-8 (JAN-8): 8-значный штрих-код фиксированной длины для кодирования числовых данных. EAN-8 - сокращенный вариант штрих-кода EAN-13. Используется для маркировки мелких товаров, размеры которых не позволяют разместить полный штрих-код EAN-13.
– Standart 2 of 5: штрих-код переменной длины для кодирования числовых данных. Данный стандарт используется с 60-х годов для маркировки авиабилетов и других целей. Также известен как Industrial 2 of 5.
– Interleaved 2 of 5: штрих-код переменной длины для кодирования числовых данных. Обновленная версия Standart 2 of 5 и во многих случаях, заменившая его. Широко распространен на складах и в сфере дистрибуции.
– Codabar: штрих-код переменной длины для кодирования числовых данных. В основном используется библиотеками, банками крови и плазмы.
– PostNet: штрих-код фиксированной длины для кодирования числовых данных. С помощью PostNet кодируются 5- или 9-значные почтовые индексы, а также 11-значные коды доставки.
– DataMatrix: двумерный штрих-код переменной длины для кодирования буквенно-числовых данных. При помощи данного стандарта можно закодировать намного больше данных, чем с помощью одномерных штрих-кодов на небольшой площади. Алгоритм DataMatrix также позволяет обнаруживать и исправлять ошибки. Широко используется для маркировки электронных компонентов и ярлыков багажа, в аптеках, маркировки удостоверений личности.
– PDF417: двумерный штрих-код переменной длины для кодирования буквенно-числовых данных. PDF417 очень похож на DataMatrix и предоставляет немного больше возможностей, требуя, соответственно, больше места. Используется для общего применения, включая ярлыки на багаже, маркировку различных частей и на удостоверениях личности.
Наличие штриховых кодов на товарах позволяет реализовать технологию управления товарными потоками на складе предприятия и оптовой базе, дающую возможность в любой момент времени знать, какой товар имеется в наличии и где он находится. Достигается это благодаря идентификации товаров, мест хранения, групповой тары, рабочих мест операторов. Любое перемещение предметов на складе сопровождается считыванием штриховых кодов и регистрацией происходящих изменений. Это позволяет автоматизировать различные функции управления и обеспечивать управление в реальном масштабе времени. Повышается эффективность всех операций, связанных с приемом, размещением, отбором и отгрузкой готовой продукции. В автоматическом режиме осуществляется подготовка комплектовочных и отгрузочных документов, форм материального учета и отчетности. Экономический эффект от внедрения технологий штрихового кодирования достигается благодаря ускорению оборачиваемости оборотных средств, обеспечению оперативного управления производственными запасами, снижению внутрискладских издержек, уменьшению потерь товаров и т.д.
В нашей системе выбираем штриховое кодирование, так как оно зарекомендовала себя с лучшей стороны, и имеет ряд преимуществ:
– точность в идентификации объектов;
– точный учёт складируемых или проданных товаров;
– более экономичное использование рабочего времени;
– увеличение скорости получения и обработки информации;
– сокращение ошибок при автоматической идентификации объектов по сравнению с ручной.
В автоматизированной системе идентификации готовой продукции будем использовать Code 39, т. к. он является распространенным и прост в использовании.
1.2 Постановка задачи
Целью дипломного проекта является создание автоматизированной системы идентификации готовой продукции на ЗАО МЗХ «Атлант». Данная система построена на основе штрихового кодирования.
В соответствии с поставленной целью в дипломном проекте решаются следующие задачи:
– проектирование автоматизированной системы идентификации готовой продукции;
– выбор оборудования системы и программных средств для реализации программного обеспечения;
– создание программного обеспечения системы.
Программное обеспечение автоматизированной системы идентификации готовой продукции должно обеспечить реализацию следующих функций:
– считывание данных;
– отображение считанной информации;
– поиск по таблице;
– добавление данных в таблицу;
Для реализации поставленных задач необходимо наличие следующих
компонентов:
– ПК, оснащённый сетевой картой Ethernet;
– ОС Windows XP;
– язык программирования C++ в среде visual studio;
– сканер POWERSCAN D8330;
– система штрихового кодирования на базе Code 39.
2 РАЗРАБОТКА СТРУКТУРЫ СИСТЕМЫ
2.1 Разработка структурной схемы системы
В данном дипломном проекте разрабатывается автоматизированная система идентификации готовой продукция. Эта система основана на штриховом кодировании.
Система штрихового кодирования на сборочном конвейере Минского завода холодильников предназначена для регистрации прохождения изделий по технологическим точкам. Каждая учетная точка оборудована сканером для считывания штрихового кода с изделия и экраном для отображения результата обработки. Считанная информация обрабатывается на ПК в режиме реального времени и результат обработки отображается на экране ПК в соответствующем окне и на удалённых экранах на учетных точках.
Для работы системы используется следующее оборудование:
– экран;
– сканер штрих-кода;
– персональный компьютер;
– преобразователь, который служит для подключения сканера и экрана к сети Ethernet через COM порты;
– коммутатор сети Ethernet.
Схема применяемого оборудования изображена на рисунке 2.1.
Сканер
Экран
Преобразователь
Сканер
Экран
Преобразователь
Сканер
Экран
Преобразователь
Коммутатор

Персональный компьютер



Рисунок 2.1 – Схема применяемого оборудования
В цехе расположены пять конвейеров, по которым продвигаются изделия. Точки контроля изделий располагаются в начале и конце конвейера. Данные точки оснащены сканерами штрих-кода и экранами. Рабочий при помощи ручного сканера считывает необходимую последовательность штрих-кодов (это может быть шкаф и несколько компрессоров). Информация через преобразователь по сети Ethernet поступает на сетевой шкаф и на ПК. На ПК штрих-кодовая последовательность проверяется по базам данных. Ответ передаётся обратно рабочему и отображается на экране. Выводимые сообщения на экран приведены в таблице 2.1.
Таблица 2.1 - Сообщения, выводимые на экран
Текст на экране Пояснение
"ок",* Шкаф, компрессора корректно обработаны
"стоп, нужен шкаф", Необходимо считать штрих-код с этикетки шкафа
"нужен к1",** Необходимо считать штрих-код с этикетки первого компрессора
"нужен к2", ** Необходимо считать штрих-код с этикетки второго компрессора
"к1,к2 одинаковы, нужен к2"** Дважды был считан штрих-код с этикетки одного и того же компрессора. Необходимо считать штрих-код с этикетки второго компрессора
"неверно считан штрих-код"** Неправильно считан штрих-код компрессора. Необходимо повторить попытку, при повторном сообщении заменить этикетку.
"принят неверный адрес", Произошла ошибка. Необходимо считать штрих-код с этикетки шкафа.
"не обработан", Шкаф, компрессора не обработаны. Необходимо повторить попытку.
"стоп! сетевая ошибка", Произошла ошибка. Необходимо считать штрих-код с этикетки шкафа. Если ошибка опять повторяется, нужно обратиться к оператору.
"нет в справочнике шкафа", Код шкафа отсутствует в справочнике. Необходимо обратиться к оператору.
"повторный номер шкафа", Данный шкаф уже был зарегистрирован
Продолжение таблицы 2.1
Текст на экране Пояснение
"нет в справочнике к1", Код первого компрессора отсутствует в справочнике. Необходимо обратиться к оператору.
"нет в справочнике к2", Код второго компрессора отсутствует в справочнике. Необходимо обратиться к оператору.
"повторный номер к1", Первый компрессор уже был зарегистрирован на другой шкаф
"повторный номер к2", Второй компрессор уже был зарегистрирован на другой шкаф
"не проходил сборку шкаф", Данный шкаф не проходил сборку, на пайке не будет зарегистрирован. Необходимо обратиться к оператору.
"проходил пайку шкаф", Данный шкаф уже был зарегистрирован на пайке.
"шкаф забракован, ок",* Шкаф корректно обработан
" считайте бракованный шкаф",** Необходимо считать штрих-код с этикетки бракуемого шкафа
"нельзя забраковать". Данный шкаф не может быть забракован. Необходимо обратиться к оператору.
Примечание – Сообщения, помеченные «*» - сообщения об удачной обработке. Сообщения, помеченные «**» - рекомендации к следующему действию. Остальные сообщения - это ошибки.
После рабочий, в зависимости от отображаемого сообщения, выполняет необходимое действие. Если пришло сообщение «ок», то изделие регистрируется в базе данных и проходит в другой цех для дальнейшей доработки. Если, например, было сообщение вида "нужен к1", то к данному шкафу добавляют первый компрессор. Ошибки, которые могут возникнуть в ходе работы автоматизированной системы идентификации готовой продукции, описаны в следующем пункте.
Структурная схема автоматизированной системы идентификации готовой продукции приведена на рисунке 2.2.
Преобразователь имеет виртуальные COM порты (например, COM110), через которые подключается оборудование системы. Каждому преобразователю присваивается IP адрес (например, 172.30.12.51) для того, чтобы передавать считанную сканером информацию по сети Ethernet. Это значительно проще и удобнее, чем передавать штрих-кодовую последовательность по кабелю COM порта. Значительно возрастает расстояние передачи (по кабелю последовательного порта до 10 метров, по сети Ethernet – до 100 метров) и возможность передавать считанную штрих-кодовую последовательность с нескольких учётных точек одновременно. Расположение учётных точек в цеху, нумерация COM портов и IP адреса, выдаваемые преобразователям, приведены на рисунке 2.3.

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

Рисунок 2.4 – Схема алгоритма работы системы
Начало работы системы сопровождается проверкой на работоспособность оборудования. При наличии каких-либо неисправностей необходимо приостановить работу и устранить все неполадки. Далее происходит проверка доступа к сетевым базам данных, при отсутствии доступа необходимо исправить возникшие ошибки.
При считывании штрих-кодовой последовательности рабочим ручным сканером, если считана верная последовательность, идёт проверка по сетевым базам данных шкафов и компрессоров. Если данный шкаф и компрессора найдены в базе данных, то на экран выводится сообщение «OK», данная последовательность регистрируется и рабочий переходит к следующей последовательности. Иначе происходит определение возникшей ошибки и вывод её на экран, расположенный на учётной точке. После обнаружения ошибки рабочий должен её исправить, чтобы не возник простой производства. Если данная ошибка исправлена и рабочий день не закончен, рабочий переходит к считыванию следующей штрих-кодовой последовательности. Иначе переходит к завершению работы.
Данная система позволяет обнаруживать следующие ошибки, которые могут возникнуть в результате работы:
– «устранимые повторным считыванием»: получили неправильную группу данных. Это может быть так, что первым по конвейеру пришёл не шкаф, пришло не то количество компрессоров, необходимое для сборки данной модели холодильников (пришло два компрессора, а необходим один; пришло один или два компрессора, а они для данной модели холодильников вообще не нужны; пришел один компрессор, а для холодильника данной модели необходимо два компрессора), брак штрих-кода;
– «устранимые на доводке»: получили правильную группу данных, но нет модели шкафа в базе данных или неизвестно количество компрессоров для данной модели холодильника; нет компрессора в справочнике; единичная ошибка при обработке по базам данных; данный компрессор уже был зарегистрирован на другой шкаф; данный шкаф был уже зарегистрирован ранее.
– «нельзя считывать»: нет доступа к сетевым базам данных; не работает оборудование; нет луча у сканера, что не позволит считать штрих-кодовую последовательность; моргает диод на сканере, это означает, что возникла какая-то неисправность в работе сканера. При обнаружении ошибок данной группы необходимо немедленно устранить неполадки, чтобы не возник простой производства, который повлечёт за собой материальные убытки.
Ошибки, возникающие при работе автоматизированной системы идентификации готовой продукции, приведены на рисунке 2.5.

Рисунок 2.5 – Классификация ошибок, возникающих в системе
Данная классификация позволяет в полной степени описать весь спектр ошибок возникающих в автоматизированной системе идентификации готовой продукции.
3 ВЫБОР ОБОРУДОВАНИЯ И ПРОГРАММНЫХ СРЕДСТВ
3.1 Выбор оборудования
Для работы системы необходимо следующее оборудование:
– экран;
– сканер штрих-кода;
– персональный компьютер;
– преобразователь, который служит для подключения сканера и экрана к сети Ethernet через COM порты;
– коммутатор сети Ethernet.
При выборе экрана для отображения информации на рабочем месте необходимо руководствоваться следующими требованиями: чёткоё изображение, хорошее качество и приемлемая цена. Экраны для системы штрихового кодирования, удовлетворяющие вышеперечисленным требованиям, в Республике Беларусь мало распространены. Учитывая данный аспект выбираем экран Century.
Для считывания штриховых кодов используется сканер. При выборе сканера штрих-кода необходимо учитывать его стоимость, качество и эффективность.
К категории недорогих относятся сканеры, использующие светодиод в качестве источника излучения, это CCD-сканеры. Светодиодные или CCD-сканеры излучают один сканирующий луч и могут читать штрих-код только в одном положении[2].
К категории дорогих, но более качественных и высокоскоростных сканеров относятся сканеры с маломощным лазером в качестве источника излучения – это лазерные сканеры. Лазерные сканеры по числу плоскостей сканирования делятся на одноплоскостные и многоплоскостные. Одноплоскостные излучают один сканирующий луч и могут читать штрих-код только в одном положении. Многоплоскостные излучают несколько сканирующих лучей в различных плоскостях и могут читать штрих-код в любом положении.
Самыми распространенными сканерами штрих-кодов, поставляемых в Республику Беларусь, являются сканеры компаний Metrologic, ZEBEX и Datalogic.
При выборе сканера следует обратить внимание на интерфейс, по которому будет подключаться сканер к кассовому аппарату или ПК. В Республике Беларусь наибольшее распространение получили сканеры, поддерживающие последовательный интерфейс RS-232C (сканер подключается в последовательный порт), интерфейс эмуляции клавиатуры (сканер подключается в клавиатурный порт) и интерфейс USB (сканер подключается в порт USB)[2].
Если сканер подключается в последовательный порт, то данные передаются от сканера в последовательный порт в виде последовательности ASCII символов.
Особенности RS-сканеров[2]:
– требуется внешний источник питания (можно переделать кабель передачи данных, для того чтобы ручной сканер получал питание от кассового аппарата, ПК);
– можно подключить к кассовому аппарату, ПК;
– нужно специальное ПО (драйвер сканера штрихкода) при подключении сканера к ПК;
– с точки зрения написания программного обеспечения для Windows использование сканера совместно с драйвером более предпочтительно, т.к. в этом случае данные, получаемые от сканера, не будут "смешаны" с данными от другого устройства.
Если сканер подключается в клавиатурный порт, то после считывания штрих-кода данные передаются, эмулируя нажатие клавиш на клавиатуре.
Особенности KB-сканеров[2]:
– для ручных сканеров не требуется внешний источник питания;
– можно подключить только к ПК;
– не нужно специальное ПО для подключения сканера к ПК;
– сканер сложнее использовать с точки зрения написания программ, т.к. необходимо различать получение данных от клавиатуры и от сканера.
Если сканер подключается в порт USB, то данные от сканера передаются в порт USB в виде последовательности ASCII символов.
Особенности USB-сканера:
– для ручных сканеров не требуется внешний источник питания;
– можно подключать только к ПК;
– не нужно специальное ПО для подключения сканера к ПК, т.к. поддержка USB присутствует во многих современных операционных системах семейства Windows (Microsoft Windows 95/98/Me/ 2000/XP);
– сканер сложнее использовать с точки зрения написания программ, т.к. данные передаются также как данные от клавиатурного сканера, т.е. необходимо различать получение данных от клавиатуры и от сканера;
– к порту USB можно подключить до 127 устройств;
– допустимо подключение сканера к ПК в процессе работы.
Для считывания штриховых кодов выбираем сканер фирмы DataLogic PSC PowerScan D8300. Лазерный сканер PSC PowerScan D8300 высокоскоростной и удовлетворяет качественным показателям разрабатываемой системы. Продукция фирмы DataLogic давно зарекомендовала себя в Республике Беларусь своей надёжностью, приемлемой ценой и высоким качеством выпускаемой продукции.
Преимущества PowerScan D8300:
– система подтверждения считывания штрих-кодов;
– работа в широком диапазоне температур;
– мультиинтерфейс;
– считывание штрих кода на расстоянии до 10м (только для модели AR).
Считываемые коды:
– 2/5 Family;
– Code 39 (plus Code 32, Cip 39);
– EAN/UPC;
– EAN 128;
– Code 128;
– Code 93;
– CODABAR;
– Code 49;
– Code MSI;
– Code 11;
– Code 16K;
– ISBN/ISSN;
– ISBT 128;
– GS1DataBarTM (formerly RSS).
Для работы системы необходим компьютер, оснащённый сетевой картой Ethernet.
Преобразователь для подключения сканера и экрана к сети Ethernet через COM порты был выбран ADAM 4570. Дальность передачи от одного COM порта до другого ограничена несколькими метрами. Однако в преобразователе ADAM используются виртуальные COM порты, что позволяет передавать информацию по сети Ethernet и увеличивает дальность расположения приёмника до 100 метров.
Характеристики преобразователя ADAM 4570:
– сетевой протокол TCP/IP;
– сетевой порт: 10/100Base-T, соединитель RJ-45;
– последовательный порт: интерфейс RS-232/422/485 - 2 порта;
– скорость передачи до 921,6 кбит/с;
– режимы работы: Виртуальный COM-порт и TCP/UDP;
– драйверы для Windows 2000/XP/Vista.
Сетевой коммутатор или switch – устройство, предназначенное для соединения нескольких узлов компьютерной сети. Для системы идентификации готовой продукции на ЗАО МЗХ «Атлант» подходит коммутатор любой фирмы, имеющий более 11 портов, так как имеется десять рабочих мест, подключённых к сети, и компьютер оператора.
В случае выхода из строя какого-либо оборудования основной системы учета, применяются автономные терминалы сбора данных Cipher-8001. Данные терминалы применяются для исключения простоев оборудования.
3.2 Выбор линии связи
В разрабатываемой автоматизированной системе идентификации готовой продукции для передачи информации с учётной точки на персональный компьютер используется сеть Ethernet.
В качестве линии связи выберем витую пару.
Витая пара (Twisted pair – ТР) в настоящее время является самой распространенной средой передачи и представляет собой пару свитых проводов. Кабель, составленный из нескольких витых пар, как правило, покрыт жесткой пластиковой оболочкой, предохраняющей его от воздействия внешней среды и механических повреждений[1].
В нормальных условиях витая пара поддерживает скорость передачи данных от 10 до 100 Мбит/с. Однако ряд факторов может существенно снизить скорость передачи данных, в частности, потеря данных, перекрестное соединение и влияние электромагнитного излучения.
Существует пять стандартных категорий кабеля из витых пар[1]:
– кабель первой категории используется для передачи голосовых данных. С начала 80-х годов кабель CAT 1 используется в основном в качестве проводки телефонных линий. Кабель первой категории не сертифицирован для передачи данных любого типа и в большинстве случаев не рассматривается как среда для передачи цифровых данных;
– кабель второй категории используется для передачи информации со скоростью не более 4 Мбит/с;
– кабель третьей категории в основном используется для передачи данных со скоростью до 16 Мбит/с;
– кабель четвертой категории. Кабель САТ4 сертифицирован для передачи данных со скоростью до 16 Мбит/с и состоит из четырех витых пар;
– кабель пятой категории является самой распространенной средой передачи сетей Ethernet. Кабель поддерживает скорость передачи данных до 100 Мбит/с.
Выберем витую пару категории САТ5 – 4-х парный кабель. Это и есть то, что обычно называют кабель «витая пара», благодаря высокой скорости передачи, до 100 Мбит/с при использовании 2-х пар и до 1000 Мбит/с, при использовании 4-х пар, является самым распространённым сетевым носителем, использующимся в компьютерных сетях до сих пор.
3.3 Обоснование выбора среды разработки и языка
программирования
Microsoft Visual C++ (MSVC) – интегрированная среда разработки приложений на языке C++, разработанная фирмой Microsoft и поставляемая либо как часть комплекта Microsoft Visual Studio, либо отдельно в виде функционально ограниченного комплекта Visual C++ Express Edition[6].
В студии разработчика можно строить обычные программы на C и С++, создавать статические и динамические библиотеки, создавать Windows-приложения с помощью инструмента MFC AppWizard (Application Wizard - мастер приложений) и библиотеки базовых классов MFC (Microsoft Foundation Class Library). Такие приложения называются MFC-приложениями.
В состав компилятора Microsoft Developer Studio встроены средства, позволяющие программисту облегчить разработку приложений. В первую очередь к ним относятся MFC AppWisard, ClassWizard и редактор ресурсов.
Благодаря MFC AppWizard среда разработчика позволяет быстро создавать шаблоны новых приложений. При этом программисту не приходится писать ни одной строчки кода. Достаточно ответить на ряд вопросов, касающихся того, какое приложение требуется создать, и исходные тексты шаблона приложения вместе с файлами ресурсов готовы. Эти тексты можно оттранслировать и получить готовый загрузочный модуль приложения.
Для создания ресурсов приложения предназначен редактор ресурсов. Он позволяет быстро создавать новые меню, диалоговые панели, добавлять
кнопки к панели управления toolbar и т.д.
Средство ClassWizard позволяет подключить к созданным и отредактированным ресурсам управляющий ими код. Большую часть работы по описанию и определению функций, обрабатывающих сообщения от меню, органов управления диалоговых панелей и т.д., также берет на себя средство ClassWizard.
MFC – это базовый набор (библиотека) классов, написанных на языке С++ и предназначенных для упрощения и ускорения процесса программирования для Windows. Библиотека содержит многоуровневую иерархию классов, насчитывающую около 200 членов. Они дают возможность создавать Windows-приложения на базе объектно-ориентированного подхода. С точки зрения программиста, MFC представляет собой каркас, на основе которого можно писать программы для Windows[6].
Библиотека MFC разрабатывалась для упрощения задач, стоящих перед программистом. Традиционный метод программирования под Windows требует написания достаточно длинных и сложных программ, имеющих ряд специфических особенностей. В частности, для создания только каркаса программы таким методом понадобится около 75 строк кода. По мере же увеличения сложности программы ее код может достигать больших размеров. Однако та же самая программа, написанная с использованием MFC, будет примерно в три раза меньше, поскольку большинство частных деталей скрыто от программиста.
Одним из основных преимуществ работы с MFC является возможность многократного использования одного и того же кода. Так как библиотека содержит много элементов, общих для всех Windows-приложений, нет необходимости каждый раз писать их заново. Вместо этого их можно просто наследовать. Кроме того, интерфейс, обеспечиваемый библиотекой, практически независим от конкретных деталей, его реализующих. Поэтому программы, написанные на основе MFC, могут быть легко адаптированы к новым версиям Windows (в отличие от большинства программ, написанных обычными методами)[6].
Еще одним существенным преимуществом MFC является упрощение взаимодействия с прикладным программным интерфейсом (API) Windows. Любое приложение взаимодействует с Windows через API, который содержит несколько сот функций. Внушительный размер API затрудняет попытки понять и изучить его целиком. Зачастую даже сложно проследить, как отдельные части API связанны друг с другом. Но поскольку библиотека MFC объединяет функции API в логически организованное множество классов, интерфейсом становится значительно легче управлять[6].
В настоящий момент существует множество языков программирования, как универсальных, так и созданных для выполнения специфических задач. В данном проекте использован язык C++, который позиционируется как главный язык среды Visual Studio. Он включает систему доступа к практически любым известным и распространенным базам данных.
3.4 Выбор метода доступа к данным
В данном дипломном проекте для хранения информации о штриховых кодах использовалась база данных.
База данных совместно используемый набор логически связанных данных (и описание этих данных), предназначенный для удовлетворения информационных потребностей организации. Базы данных, которые состоят из двумерных таблиц, называются реляционными.
Каждая таблица базы данных представляется как совокупность строк и столбцов, где строки соответствуют экземпляру объекта, конкретному событию или явлению, а столбцы – атрибутам (признакам, характеристикам, параметрам) объекта, события, явления.
Для доступа к данным, хранящимся в базе данных, есть несколько способов, отличающихся друг от друга.
Наиболее популярными среди универсальных механизмов доступа к данным можно назвать следующие:
– Open Database Connectivity (ODBC);
– OLE DB;
– ActiveX Data Objects (ADO);
– Borland Database Engine (BDE).
ODBC (Open Database Connectivity) – широко распространенный программный интерфейс фирмы Microsoft. Для доступа к данным конкретной СУБД с помощью ODBC, кроме собственно клиентской части этой СУБД, нужен ODBC Administrator (приложение, позволяющее определить, какие источники данных доступны для данного компьютера с помощью ODBC, и описать новые источники данных), и ODBC-драйвер для доступа к этой СУБД. ODBC-драйвер представляет собой динамически загружаемую библиотеку (DLL), которую клиентское приложение может загрузить в свое адресное пространство и использовать для доступа к источнику данных. Для каждой используемой СУБД нужен собственный ODBC-драйвер, так как ODBC-драйверы используют функции клиентских API, разные для различных СУБД[7].
OLE DB и ADO – часть универсального механизма доступа к данным Microsoft (Microsoft Universal Data Access), позволяющая осуществить доступ как к реляционным, так и к нереляционным источникам данных, таким как файловая система, данные электронной почты, многомерные хранилища данных и др[7].
Для доступа к источнику данных с помощью OLE DB требуется, чтобы на компьютере, где используется клиентское приложение, был установлен OLE DB-провайдер для данной СУБД. OLE DB-провайдер представляет собой DLL, загружаемую в адресное пространство клиентского приложения и используемую для доступа к источнику данных. Для каждого типа СУБД нужен собственный OLE DB-провайдер, так как эти провайдеры базируются на функциях клиентских API, разных для различных СУБД. Процесс работы с данными можно описать в терминах взаимодействия двух объектов – Поставщика данных (Provider) и Потребителя данных (Consumer). Потребителем является приложение, запрашивающее данные и непосредственно вызывающее функции, заданные интерфейсом. Поставщик данных или Провайдер – это тот посредник, стоящий между приложением, запрашивающим данные, и источником данных[7].
Microsoft ActiveX Data Objects (ADO) – это набор библиотек, содержащих COM-объекты, реализующие прикладной программный интерфейс для доступа к таким данным и используемые в клиентских приложениях. ADO использует библиотеки OLE DB, предоставляющие низкоуровневый интерфейс для доступа к данным. OLE DB предоставляет доступ к данным с помощью COM-интерфейсов. Можно также использовать OLE DB непосредственно, минуя ADO[7].
BDE (Borland Database Engine) – универсальный механизм доступа к данным, применяемый в средствах разработки фирмы Borland (а именно – Delphi и C++Builder), а также в некоторых других продуктах.
Для данного дипломного проекта выбираем метод доступа к базе данных – OLE DB. OLE DB предлагает единообразный высокопроизводительный метод доступа к данным, хранящимся в разных источниках информации, в том числе и в нереляционных БД (например, в папках систем электронной почты или простых файлах), обеспечивая при этом поддержку работы с наборами данных и иерархическими наборами записей, неподключенными постоянно к сети.
3.5 Обоснование выбора операционной системы
В дипломном проекте была выбрана операционная система Windows XP.
Данная операционная система является одной из самых распространенных на данный момент, она обладает так же рядом существенных преимуществ. Одним из критериев выбора Windows XP является то, что она установлена на всех персональных компьютерах ЗАО МЗХ «Атлант».
Это единый (для всех программ-приложений Windows), стандартизированный и интуитивно-понятный интерфейс взаимодействия с пользователем. Т.е., даже начинающему пользователю персонального компьютера, не требуется особых усилий для освоения навыков работы с данным программным средством.
Windows предлагает мощный программный интерфейс (Windows API) для разработчика программных средств – это огромный набор различных функций ядра операционной системы, предоставляемых программисту для использования в своих проектах и содержащих огромный объем кода, являющийся общим для всех программ-приложений Windows.
Данная операционная система поддерживает сетевое взаимодействие удалённых компьютеров, что позволяет создавать программные приложения, работающие через сеть посредством стандартных протоколов взаимодействия.
Таким образом, учитывая вышеперечисленные положительные свойства этой операционной системы, выбор данной платформы для создания программных средств, считается весьма обоснованным.
РЕАЛИЗАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СИСТЕМЫ
4.1 Разработка алгоритма функционирования программы
Алгоритм работы программы приведен на рисунке 4.1.
При запуске программы выполняется попытка открыть COM порт. Если COM порт уже занят другим приложением или возникла какая-либо ошибка, то выдаётся в отдельном окне сообщение «ошибка при открытии порта». Иначе «порт успешно открыт» и устанавливаются настройки для нормальной работы порта. Если все настройки установлены, запускаем функцию потока, в которой и будет происходить чтение данных с порта, при этом, не перегружая процессор из-за наличия бесконечного цикла. В противном случае закрываем COM порт и производим следующую попытку его открыть.
В потоке запускаем функцию, которая открывает таблицу. Если таблица не была открыта данной программой, то устанавливаем счётчик попыток открыть таблицу равным пяти. Будет произведено пять попыток открыть таблицу для дальнейшей работы с ней. Выполняем проверку счётчика попыток, если он равен нулю, то заканчиваем работу с таблицей и выдаётся сообщение в отдельном окне «ошибка при открытии таблицы». Иначе пытаемся открыть таблицу и уменьшаем счётчик попыток на единицу. Если таблица была открыта каким-либо другим приложением, то также выдается сообщение «ошибка при открытии таблицы».
После того, как была открыта таблица для проверки и записи данных, запускается бесконечный цикл для приёма данных в режиме реального времени. Это позволяет избежать перегрузки процессора и уменьшить ожидание ответа. Ожидаем поступление в порт данных. Если данные пришли, запускается функция чтения данных. Далее выполняется проверка записи данных в буфер. При отсутствии информации в буфере данных выполняется проверка занятости COM порта. Если проверка выполнялась успешно, ожидается считывание данных. После чего считанная информация записывается в буфер данных. Иначе ожидаем прихода новых данных.
Далее считанный штрих-код в буфере данных проверяем на длину. Длинна данного кода не должна превышать 12 символов. Это объясняется выбранной в автоматизированной системе идентификации готовой продукции стандарта штрих-кода Cod39 и установленной длинной нумерации изделий на МЗХ ЗАО «Атлант».

Рисунок 4.1 – Схема алгоритма работы программы

Рисунок 4.1, лист 2
Если длинна штрих-кода превышает 12 символов, то последние символы отбрасываются. Последние символы – это информация, поступающая от сканера штрих-кода. Также это может быть посторонняя информация, поступающая из сети Ethernet, или накладываемые данные с прошлого раза считывания.
После того, как была выполнена проверка на длину штрих-кода, выполняется запрос на совпадение данного штрих-кода со штрих-кодами, содержащимися в таблице и считанные на ранних этапах производства. Если было обнаружено совпадение, выдаётся сообщение в отдельном диалоговом окне «данный штрих код уже был считан», выполняется очистка буфера данных и рабочий переходит к считыванию следующего штрих-кода. Иначе происходит добавление данного штрих-кода из буфера данных в столбец «NAME» (этот столбец содержит штрих-коды) таблицы test.dbf. После чего добавляем текущую дату и время в буфер даты и записываем в столбец «DATE» соответствующему штрих-коду.
Далее происходит запись штрих-кода в главную форму программы.
По окончанию основных операций происходит очистка буфера данных, буфера COM порта и буфера даты. Это необходимо для того, чтобы данные не накладывались друг на друга, и не произошла ошибка неправильности данных на последующих считываниях штрих-кодов.
При завершении работы с COM портом закрывается таблица, для дальнейшей работы с ней с помощью других приложений, останавливается поток и закрывается COM порт.
4.2 Разработка программного обеспечения
Программное обеспечение разработано в среде MS Visual C++ 6.0. Для работы с базами данных использовано средство RDE Apollo OLE DB.
Данная программа предназначена для автоматизированного учета шкафов и компрессоров в цехе на постах сборки и пайки посредством считывания штриховых кодов с технологических этикеток.
Программа обрабатывает поступающую информацию с учетных точек, проверяет корректность принятых данных, регистрирует в базах данных, выводит результаты обработки в окно главной формы.
Поступление информации происходит через COM порт, поэтому для работы необходимо его открыть. При открытии последовательного порта необходимо установить настройки порта для корректной его работы. Для открытия порта используем функцию CSerial::Open(). В этой функции устанавливаем все настройки и собственно с помощью функции CreateFile открываем последовательный порт.
Для корректной работы порта используется структура DCB, которая содержит большинство настроек порта.
Основными параметрами DCB структуры, которые необходимо указать, являются[5]:
– DCBlength – размер самой структуры DCB. Задает длину, в байтах, структуры DCB. Используется для контроля корректности структуры при передаче ее адреса в функции настройки порта;
– BaudRate – скорость передачи данных. Возможно указание любого значения, однако установленная скорость будет кратна скорости 115200. Дело в том, что в самой микросхеме порта есть два регистра, являющиеся непосредственно предделителем и делителем. Соответственно, при записи в делитель "1" – скорость будет 115200, "2" – 57600, "3" – 38400, "4" – 28800 и т.д. Устанавливаем скорость работы равной 9600.
– Parity — определяет выбор схемы контроля четности. Данное поле должно содержать одно из следующих значений:
а) EVENPARITY (2) дополнение до четности;
б) MARKPARITY (3) бит четности всегда 1;
в) NOPARITY (0) бит четности отсутствует;
г) ODDPARITY (1) дополнение до нечетности;
д) SPACEPARITY (4) бит четности всегда 0;
В нашем случае выбираем вариант в) – бит чётности отсутствует.
– StopBits – определяет количество стоповых бит. Поле может принимать следующие значения:
а) ONESTOPBIT (0) один стоповый бит;
б) ONE5STOPBIT (1) полтора стоповых бита;
в) TWOSTOPBIT (2) два стоповых бита;
В нашем случае выбираем вариант а) – один стоповый бит.
– ByteSize – определяет число информационных бит в передаваемых и принимаемых байтах. Запрещенные значения:
а) 5 в комбинации с StopBits=TWOSTOPBITS;
б) 6,7,8 в комбинации с StopBits=ONE5STOPBITS.
В нашем случае выбираем 8 информационных бит.
DCB в качестве параметров имеют функции GetCommState и SetCommState. Функции необходимы для чтения/записи структуры DCB порта.
Для определения таймаутов выполнения функции чтения и записи COM порта используется структура COMMTIMEOUTS.
Поля структуры TCOMMTIMEOUTS имеют следующее назначение[5]:
– ReadIntervalTimeout – максимальный временной промежуток (в мсек.), допустимый между двумя принимаемыми байтами. Если интервал между двумя последовательными байтами превысит заданное значение, операция чтения ReadFile завершается с возвратом всех данных из приемного буфера. Нулевое значение данного поля означает, что данный тайм-аут не используется. Комбинация:
ReadIntervalTimeout := 0xFFFFFFFF;
ReadTotalTimeoutMultiplier := 0;
ReadTotalTimeoutConstant := 0;
приводит к тому, что функция ReadFile возвращает немедленно все имеющиеся байты в приемном буфере.
– ReadTotalTimeoutMultiplier – задает множитель (в мсек.), используемый для вычисления общего тайм-аута операции чтения. Для каждой операции чтения данное значение умножается на количество запрошенных для чтения байт;
– ReadTotalTimeoutConstant – задает константу (в мсек.), используемую для вычисления общего тайм-аута операции чтения. Для каждой операции чтения данное значение плюсуется к результату умножения ReadTotalTimeoutMultiplier на количество запрошенных для чтения байт. Нулевое значение полей ReadTotalTimeoutMultiplier и ReadTotalTimeoutConstant означает, что общий тайм-аут для операции чтения не используется;
– WriteTotalTimeoutMultiplier – задает множитель (в мсек.), используемый для вычисления общего тайм-аута операции записи. Для каждой операции записи данное значение умножается на количество записываемых байт;
– WriteTotalTimeoutConstant – задает константу (в мсек.), используемую для вычисления общего тайм-аута операции записи. Для каждой операции записи данное значение прибавляется к результату умножения WriteTotalTimeoutMultiplier на количество записываемых байт. Нулевое значение полей WriteTotalTimeoutMultiplier и WriteTotalTimeoutConstant означает, что общий тайм-аут для операции записи не используется.
Для чтения и записи таймаутов используются GetCommTimeouts и SetCommTimeouts соответственно.
Для закрытия порта используется функция CSerial::Close(). Где с помощью CloseHandle закрывается COM порт.
Для ожидания прихода байт в порт используется функция CSerial::ReadDataWaiting().
Функция CSerial::ReadData() используется для чтения данных с последовательного порта.
Важным моментом в работе данной программы является проверка и запись считанного штрих-кода в таблицу. Для открытия таблицы используется функция CApollo::Open(). Для закрытия – CApollo::CloseAll(). Для запроса и записи данных используется стандартные функции средства RDE Apollo OLE DB, соответственно sx_Query и для записи - sx_Append, sx_PutString, sx_Commit.
Класс Serial (Serial.h)
#define FC_DTRDSR0x01
#define FC_RTSCTS0x02
#define FC_XONXOFF0x04
#define ASCII_BEL0x07
#define ASCII_BS0x08
#define ASCII_LF0x0A
#define ASCII_CR0x0D
#define ASCII_XON0x11
#define ASCII_XOFF0x13
class CSerial
{
public:
CSerial();
~CSerial();
BOOL Close( void );
BOOL Open( int nPort = 1, int nBaud = 9600);
BOOL IsOpened( void ){ return( Opened ); }
int GetData( void *, int );
int ReadDataWaiting( void );
BOOL ClearBuffer( void );
int ReadData( void *, int );
OVERLAPPED OverlappedRead;
protected:
HANDLE Port;
BOOL Opened;
CRITICAL_SECTION CriticalSection;
};
Класс Serial (Serial.cpp)
#include "stdafx.h"
#include "com_port.h"
#include "Serial.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
CSerial::CSerial()
{
InitializeCriticalSection(&CriticalSection);
memset( &OverlappedRead, 0, sizeof( OVERLAPPED ) );
Port = NULL;
Opened = FALSE;
}
CSerial::~CSerial()
{
Close();
DeleteCriticalSection(&CriticalSection);
}
BOOL CSerial::Open(int nPort, int nBaud);функция, открывающая
COM порт
{
if( Opened ) return( TRUE );
char szPort[15];
DCB dcb;
wsprintf( szPort, "\\\\.\\COM%d", nPort );
Port = CreateFile( szPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL );
if(( Port == NULL ) || ( Port == INVALID_HANDLE_VALUE )) return( FALSE );
memset( &OverlappedRead, 0, sizeof( OVERLAPPED ) );
COMMTIMEOUTS CommTimeOuts;;определяем таймауты
выполнения функции чтения и записи
CommTimeOuts.ReadIntervalTimeout = 0xFFFFFFFF;
CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
CommTimeOuts.ReadTotalTimeoutConstant = 0;
CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
CommTimeOuts.WriteTotalTimeoutConstant = 5000;
SetCommTimeouts( Port, &CommTimeOuts );
OverlappedRead.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );

dcb.DCBlength = sizeof( DCB );;устанавливаем
настройки последовательного порта
GetCommState( Port, &dcb );
dcb.BaudRate = nBaud;
dcb.Parity = 0;
dcb.StopBits = 0;
dcb.ByteSize = 8;

if( !SetCommState( Port, &dcb ) ||
!SetupComm( Port, 10000, 10000 ) ||
OverlappedRead.hEvent == NULL )
{
DWORD dwError = GetLastError();
if( OverlappedRead.hEvent != NULL ) CloseHandle( OverlappedRead.hEvent );
CloseHandle( Port );
return( FALSE );
}
Opened = TRUE;
return( Opened );
}
BOOL CSerial::Close();функция, закрывающая
COM порт
{
if( !Opened || Port == NULL ) return( TRUE );
if( OverlappedRead.hEvent != NULL ) CloseHandle( OverlappedRead.hEvent );
CloseHandle( Port );
Opened = FALSE;
Port = NULL;
return( TRUE );
}
int CSerial::GetData(void *buffer, int limit)
{
EnterCriticalSection(&CriticalSection);
DWORD dwBytesNum;
dwBytesNum = ReadData(buffer, limit);
LeaveCriticalSection(&CriticalSection);
return dwBytesNum;
}
BOOL CSerial::ClearBuffer();функция очистки
буфера порта
{
if( !Opened || Port == NULL ) return( FALSE );
if(!PurgeComm(Port, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR)) return( FALSE );
return TRUE;
}
int CSerial::ReadDataWaiting();функция ожидания
данных
{
if( !Opened || Port == NULL ) return( 0 );
DWORD dwErrorFlags;
COMSTAT ComStat;
ClearCommError( Port, &dwErrorFlags, &ComStat );
return( (int) ComStat.cbInQue );
}
int CSerial::ReadData(void *buffer, int limit);функция чтения данных
с порта
{
if( !Opened || Port == NULL ) return( 0 );
BOOL bReadStatus;
DWORD dwBytesRead, dwErrorFlags;
COMSTAT ComStat;
ClearCommError( Port, &dwErrorFlags, &ComStat );
if( !ComStat.cbInQue ) return( 0 );
dwBytesRead = (DWORD) ComStat.cbInQue;
if( limit < (int) dwBytesRead ) dwBytesRead = (DWORD) limit;
bReadStatus = ReadFile( Port, buffer, dwBytesRead, &dwBytesRead, &OverlappedRead );
if( !bReadStatus ){
if( GetLastError() == ERROR_IO_PENDING ){
WaitForSingleObject( OverlappedRead.hEvent, 2000 );
return( (int) dwBytesRead );
}
return( 0 );
}
return( (int) dwBytesRead );
}
Класс Apollo (Apollo.h)
#include "sde61.h"
class CApollo
{
public:
BOOL Open(char* , char *, short);
void CloseAll();
CApollo();
virtual ~CApollo();
};
Класс Apollo (Apollo.cpp)
#include "stdafx.h"
#include "com_port.h"
#include "Apollo.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
CApollo DbApollo;
CApollo::CApollo()
{
sx_SetStringType(1);
sx_SetDeleted(TRUE);
sx_SetLockTimeout(5);
sx_SetSoftSeek(FALSE);
sx_ErrorLevel(ERRLEVEL_NONE);
CloseAll();
}
CApollo::~CApollo()
{
CloseAll();
}
BOOL CApollo::Open(char* name, char* alias, short mode)
{;функция, открывающая
таблицу
sx_ErrorLevel(ERRLEVEL_NONE);
BOOL result = TRUE;
int ret = 0;
int i = 0;;счетчик попыток
if (sx_WorkArea((PBYTE)alias) != 0)
return TRUE;
sx_SetLockTimeout(3);
if (ret == 0)
{
while ((ret==0)&&(i<5))
{
ret = sx_Use((PBYTE)name, (PBYTE)alias, mode, SDEFOX);
i++;
}
if (ret == 0)
result = FALSE;
}
return result;
}
void CApollo::CloseAll();функция, закрывающая
таблицу
{
sx_CloseAll();
}
Основная программа
#include "stdafx.h"
#include "com_port.h"
#include "com_portDlg.h"
#include "Serial.h"
#include <time.h>
#include <string.h>
#include<stdlib.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
HANDLE reader;
bool but=false;
char count;
char count1[255];;буфер данных
char dateStr[100];;буфер даты
char timeStr[100];
CSerial comport;
bool func(CListBox *List);функция потока
{
char a[255];
CApollo CAp;
if (CAp.Open("test.dbf","test",0)==0)
{
AfxMessageBox("ошибка при открытии таблицы");
return false;
}
while(1);запускаем бесконечный
цикл
{
if (comport.ReadDataWaiting())
{
comport.GetData(&count, 20);
fflush(stdin);
wsprintf(a, "NAME = '%s'", &count);
if (sx_Query((PBYTE)a)==0)
{
sx_Append();
sx_PutString((PBYTE)"NAME", (PBYTE)&count);
_strdate( dateStr );
_strtime( timeStr );
strcat(count1, dateStr);
strcat(count1, " ");
strcat(count1, timeStr);
sx_PutString((PBYTE)"DATE", (PBYTE)count1);
sx_Commit();
List->AddString(&count);
}
else
{
AfxMessageBox("данный штрих код был уже считан");
}
}
count=NULL;
count1[255]=NULL;;очистка буфера данных
dateStr[100]=NULL;;очистка буфера даты
timeStr[100]=NULL;
memset( &comport.OverlappedRead, 0, sizeof(OVERLAPPED) );
comport.ClearBuffer();
Sleep(500);
}
CAp.CloseAll();
comport.Close();
return 0;
}
void CCom_portDlg::OnButton1()
{
if (!but)
{
GetDlgItem(IDC_BUTTON1)->SetWindowText("STOP");
but=true;
}
else
{
GetDlgItem(IDC_BUTTON1)->SetWindowText("START");
but=false;
return;
}
if(comport.Open())
{
AfxMessageBox(" порт успешно открыт ");
reader = CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE)func,&m_list, 0, NULL);
}
else
{
AfxMessageBox(" ошибка при открытии порта ");
GetDlgItem(IDC_BUTTON1)->SetWindowText("START");
but=false;
}
return;
}
void CCom_portDlg::OnOK()
{
comport.Close();
CDialog::OnOK();
}
void CCom_portDlg::OnCancel()
{
comport.Close();
CDialog::OnCancel();
}
4.3 Тестирование программного обеспечения
По окончании разработки программное обеспечение подверглось тщательному тестированию. Тестирование выполнялось в локальной сети ЗАО МЗХ «Атлант». На сервере была размещена база данных штрих-кодов изделий предприятия, сформированная ранее.
Процедура тестирования заключалась в следующем:
а) Выполнение стандартных действий при считывании штрих-кодов.
С помощью программы выполнялись операции считывания штрих-кодов с этикеток, проверка по базе данных и добавление данных в таблицу. При этом не было замечено никаких отклонений от нормального хода выполнения программы, т.е. все ее действия были предсказуемы. Тестирование выполнялось на довольно значительном массиве данных. При этом каких-то значительных задержек при обработке и сохранению в базу данных не было.
При считывании информации и добавлении в окно главной формы программы происходили небольшие задержки времени. Это объясняется тем, что для избегания перегрузки процессора бесконечным циклом была специально установлена задержка в 50 миллисекунд и временной задержкой сканера между двумя считываниями.
б) Создание нестандартных ситуаций, требующих особой обработки.
При тестировании программного обеспечения создавались ситуации типа считывания штрих-кода длинной более двенадцати символов. Программа корректно обрабатывала данные, как, и было задумано.
Другой исключительной ситуацией было открытие последовательного порта, когда он был занят уже другим приложением. Это событие обрабатывалось программой аналогичным образом.
При попытке открытии таблицы, занятой другим приложением, было выдано сообщение о данной проблеме.
В ходе испытаний была доказана полная совместимость и правильность работы программного средства с OC Windows XP.
Произведём оценку надежности ПО. Все модели надежности ПО можно разделить на два класса: иерархические и математические.
Иерархические модели надежности ПО позволяют выполнить интегральную количественную оценку надежности ПС, учитывающую различные критерии надежности[13].
Математические модели надёжности ПО позволяют определить оценки показателей надёжности ПО: вероятность безотказной работы P(ti), интенсивность отказов λti, математическое ожидание времени наработки на отказ mti, число ошибок в ПО до начала тестирования E0[13].
Произведём оценку надежности данного программного обеспечения с помощью математической модели Джелинского-Моранды.
Допущения модели[13]:
а) время до очередного отказа распределено по экспоненциальному закону;
б) все ошибки равновероятны и их появление не зависит друг от руга;
в) частота появления ошибок (интенсивность отказов, в англоязычной литературе так же имеет название функция риска) пропорциональна числу не выявленных ошибок:
λti=Kjm∙E0-i-1, (4.1)
где:
E0 – число ошибок в ПО до начала тестирования и отладки;
Kjm – коэффициент Джелинского-Моранды;
ti – интервал времени между (i-1)-й и -й обнаруженными ошибками;
i – число ошибок, обнаруженных к моменту отладки ti.
г) λti=const на интервале между двумя смежными моментами появления ошибок;
д) каждая обнаруженная ошибка в ПО немедленно устраняется и число оставшихся ошибок уменьшается на 1;
е) ошибки корректируются без внесения новых ошибок.
Характеристиками модели (то, что нужно определить) являются:
– P(ti) – вероятность отсутствия следующего i -ого отказа;
– mti – среднее время до очередного i -ого отказа;
– Kjm – коэффициент Джелинского-Моранды;
– E0 – число ошибок в ПО до начала тестирования и отладки.
Характеристики модели определяются при помощи метода максимального правдоподобия.
При тестировании фиксировались интервалы времени между отказами вследствие ошибок в ПО { ti, i = 1,n} случайной величины Т – времени между отказами ПО. Интервалы времени между отказами ПО равны t1=10 часов, t2=15 часов, t3=20 часов, t4=25 часов. Всего обнаружено n = 4 ошибки.
Введём понятие о функции правдоподобия L как о совместной n-мерной плотности распределения вероятностей события, заключающегося в том, что в процессе тестирования ПО случайная величина T примет значение t1=10 часов, t2=15 часов, t3=20 часов, t4=25 часов.
Функция правдоподобия согласно допущению модели Джелинского – Моранди, что все ошибки равновероятны и их появления не зависят друг от друга, будет иметь вид (4.2):
Lt1,t2,t3,t4=i=1nfti, (4.2)или, подставив значения функции плотности,
Lt1,t2,t3,t4=i=1nKjm∙(E0-(i-1))∙e-Kjm∙(E0-(i-1))∙tiВ качестве оценок неизвестных параметров Kjm и E0 выбираются такие функции K0=U1t1,t2,…,tn и E0=U1t1,t2,…,tn, которые максимизируют функцию правдоподобия. Затем, на основании известных правил дифференциального исчисления для нахождения оценок максимального правдоподобия Kjm и E0 составляется система уравнений (4.4)
∂L∂Kjm=0∂L∂E0=0 (4.4)и выбирается то решение, которое обращает функцию правдоподобия в максимум. Так как экстремум функций L и lnL достигается при одних и тех же значениях Kjm и E0, то для упрощения вычислений пользуются логарифмической функцией правдоподобия.
Возьмём натуральный логарифм от функции правдоподобия, чтобы произведение функций заменить суммой:
lnLt1,t2,t3,t4=i=1n{lnKjm∙E0-i-1-Kjm∙(E0-(i-1))∙ti}Возьмём частные производные по E0 и Kjm и найдём условия экстремума:
∂lnL∂E0=i=1n1E0-i-1-Kjm∙ti=0,∂lnL∂Kjm=i=1n1Kjm-(E0-(i-1))∙ti=0. (4.5)Полагая Kjm=Kjm и E0=E0 и решая систему уравнений, получаем:
а) оценка коэффициента Джелинского – Моранды
Kjm=0,017б) оценка числа ошибок в ПО до начала тестирования
E0=5Интенсивность отказов до следующей пятой ошибки
λt5=Kjm∙E0-i-1=0,017∙5-4=0,017Средняя наработка до обнаружения следующей пятой ошибки
mt5=1λt5=10,017=58,82 часа.Вероятность безотказной работы, т.е. отсутствия следующего пятого
отказа
Pt5=e-0,017∙(5-(5-1))∙t5= e-0,017∙t5Оценка надежности программного обеспечения с помощью модели Джелинского-Моранды показала, что разработанное ПО автоматизированной системы идентификации готовой продукции соответствует предъявляемым требованиям надежности. Средняя наработка до обнаружения пятой ошибки составила 58,82 часа.
Разработка руководства пользователя
При нажатии на кнопку «START» происходит открытие COM порта. Если последовательный порт не занят другим приложением, то выдаётся сообщение об успешном открытии порта (рисунок 4.1). Иначе выдаётся сообщение об ошибке открытия порта (рисунок 4.2).

Рисунок 4.1 – Сообщение об успешном открытии порта

Рисунок 4.2 – Сообщение об ошибке открытия порта
Далее делается пять попыток открыть таблицу test.dbf. При положительном результате можно переходить к работе, при отрицательном результате – сообщение об ошибке (рисунок 4.3).

Рисунок 4.3 – Сообщение об ошибке открытия таблицы
Дальнейшая работа происходит считыванием штрих-кодов с этикеток и отображением их в окне главной формы, изображенной на рисунке 4.4.

Рисунок 4.4 – Главная форма программы
Перед тем как штрих-код записывается в окно главной формы, он проверяется по таблице на наличие такого. Если совпадений не обнаружено, штрих-код добавляется в таблицу test.dbf с датой и временем, когда его считали сканером с этикетки. Таблица штрих-кодов приведена на рисунке 4.5.

Рисунок 4.5 – Таблица штрих-кодов
РАСЧЁТ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ ИДЕНТИФИКАЦИИ ГОТОВОЙ ПРОДУКЦИИ
5.1 Введение
Целью данного дипломного проекта является разработка программного обеспечения для автоматизированной системы идентификации готовой продукции. В настоящем технико-экономическом обосновании рассчитывается сумма расходов, связанных с разработкой программного обеспечения и экономический эффект от применения разработанного программного обеспечения на предприятии.
5.2 Исходные данные для расчетов
Таблица 5.1 – Исходные данные
Наименование показателей Буквенные обозначения Единицы измерения Количество
1 2 3 4
Коэффициент новизны единиц 0,7
Группа сложности – единиц 3
Дополнительный коэффициент сложности единиц 0,15
Поправочный коэффициент, учитывающий использование типовых программ единиц 0,8
Установленная плановая
продолжительность разработки лет 0,5
Годовой эффективный фонд времени час. 1872
Тарифная ставка 1-го разряда тыс. бел. руб. 81
Коэффициент премирования единиц 1,3
Норматив дополнительной заработной платы % 10
Продолжение таблицы 5.1
1 2 3 4
Ставка отчислений в фонд социальной защиты % 34
Страхование % 1
Средний расход материалов бел. руб. / 100 строк кода 430
Норматив расхода машинного времени часов / 100 строк кода 13
Норматив прочих затрат % 20
Норматив на сопровождение и адаптацию ПО % 10
5.3 Расчет себестоимости программного обеспечения
Для того, чтобы рассчитать себестоимость разработанного программного обеспечения, необходимо составить смету затрат, которая включает следующие статьи:
– заработная плата исполнителей основная (ЗО) и дополнительная (ЗД);
– отчисления в фонд социальной защиты населения (ЗСЗ);
– отчисления на развитие здравоохранения и охрану здоровья (ЗОЗ);
– налоги, от фонда оплаты труда (Не);
– материалы и комплектующие (М);
– спецоборудование (РС);
– машинное время (РМ);
– расходы на научные командировки (РНК);
– прочие прямые затраты (Пз);
– накладные расходы (РН).
Объем программного обеспечения определяется на основе нормативных данных, приведенных в таблице 5.2.
Общий объем программного обеспечения рассчитывается по формуле (5.1):

V0=i=1nVi, (5.1)
где V0 – общий объем ПО;
Vi – объем функций ПО;
n – общее число функций.
V0=3200+2180+2670+5480+2780+290+720+480=17800
Таблица 5.2 – Характеристика функций и их объем
Номер функции Содержание функций Объем (условных машинных команд)
110 Организация ввода/вывода информации с сети терминалов 3200
203 Формирование баз данных 2180
204 Обработка наборов и записей базы данных 2670
208 Организация поиска и поиск в базе данных 5480
210 Загрузки базы данных 2780
301 Формирование последовательного файла 290
305 Обработка файлов 720
707 Графический вывод результатов 480
В итоге общий объем ПО составляет: V0=17800 условных машинных команд. Учитывая современные технологии программирования, технические и инструментальные средства, полученное значение используются с поправочным коэффициентом 0,3:
V0=17800 ∙ 0,3 = 5340 (условных машинных команд)
В соответствии с нормативами определятся, что разрабатываемое программное обеспечение относится к третьей группе сложности. По таблице укрупненных норм времени на разработку ПО находится, что программному обеспечению данной группы сложности объемом около 5500 условных машинных команд соответствует норма времени 127 человеко-дней. Таким образом, нормативная трудоемкость ТН оценивается в 127 человеко-дней.
С учетом дополнительного коэффициента сложности рассчитывается общая трудоемкость ПО:
TO= TH+ TH·Kсл (5.2)
где TO – общая трудоемкость ПО, TH – нормативная трудоемкость ПО;
Kсл – дополнительный коэффициент сложности ПО.
Исходя из того, что планируется функционирование разрабатываемого программного модуля в расширенной операционной среде (связь с другими программными модулями) и программное средство обеспечивает хранение и поиск данных в сложных структурах, принимается дополнительный коэффициент сложности равным 0,15.
Тогда общая трудоемкость составит:
ТО= 127 + 127 · 0,15 = 146 человеко-дней.
На основании значения общей трудоемкости определяется уточненная трудоемкость с учетом распределения по стадиям разработки по формуле (5.3):
Ту=i=1nТi, (5.3)где Ti - трудоемкость разработки ПО на i-ой стадии (человеко-дней);
m – количество стадий.
Трудоемкость разработки ПО ТСТi на каждой i-ой стадий (технического задания, эскизного проекта, технического проекта, рабочего проекта и внедрения) определяется по формуле (5.4):
TСТ=dСТ∙KH∙KT∙TO, (5.4)
где dСТ - удельный вес трудоемкости i-ой стадии разработки ПО в общей трудоемкости ПО (для ПО степени новизны В);
KH – поправочный коэффициент, учитывающий степень новизны ПО, принимаем равным 0,7;
KT – поправочный коэффициент, учитывающий степень использования в разработке типовых программ и ПО, принимаем равным 0,8.
Для каждой из стадий уточненная трудоемкость следующая:
TTЗ= 0,09·0,7·0,8·146 = 7,36 (человеко-дней) – уточненная трудоемкость на стадии технического задания;
TЭП= 0,07·0,7·0,8·146 = 5,72 (человеко-дней) – уточненная трудоемкость на стадии эскизного проекта;
TТП= 0,07·0,7·0,8·146 = 5,72 (человеко-дней) – уточненная трудоемкость на стадии технического проекта;
TРП= 0,61·0,7·0,8·146 = 49,87 (человеко-дней) – уточненная трудоемкость на стадии рабочего проекта;
TВ= 0,16·0,7·0,8·146 = 13,08 (человеко-дней) – уточненная трудоемкость на стадии внедрения.
Тогда уточненная трудоемкость ТУ разработки программного обеспечения по всем стадиям составляет:
Ty=TTЗ+TЭП+TТП+TРП+TВ=7,36 + 5,72 + 5,72 + 49,87 + 13,08 = 81,75 (человеко-дня).
На основании уточненной трудоемкости разработки ПО и установленного периода разработки рассчитываем общую плановую численность разработчиков:
ЧР=ТУТТРД∙ФЭФ,где ЧР – плановая численность разработчиков (чел.);
ФЭФ – годовой эффективный фонд времени работы одного работника в течение года (дней в год);
ТРД – плановая продолжительность разработки ПО (лет).
Эффективный фонд времени работы одного работника (ФЭФ) рассчитывается по формуле (5.5):
ФЭФ= ДГ – ДП – ДВ – ДО, (5.5)
где ДГ – количество дней в году;
ДП – количество праздничных дней в году;
ДВ – количество выходных дней в году;
ДО – количество дней отпуска.
ФЭФ составит:
ФЭФ=365 – 4 – 104 – 21 = 236 дней.
Тогда плановая численность разработчиков ЧР = 81,75 / (0,5 · 236) =0,7 = 1 человек.
Уточненная трудоемкость и общая плановая численность работников служит базой для расчета основной заработной платы.
Исполнитель-разработчик ПО:
– Инженер-программист без категории (тарифный разряд 12, тарифный коэффициент 2,84, продолжительность участия в разработке ПО 90 дней)
Месячная тарифная ставка исполнителя (ТМ) определяется путем умножения действующей месячной тарифной ставки 1-го разряда (ТМ1 = 200000) на тарифный коэффициент (ТК), соответствующий тарифному разряду:
ТМ = ТМ1 · ТК.
Тогда для каждого исполнителя ТМ = 200000 · 2,84 = 568000 бел. руб.
Часовая тарифная ставка рассчитывается путем деления месячной тарифной ставки на установленный при восьмичасовом рабочем дне фонд рабочего времени (ФР):
ТЧ=ТМФР,где ТЧ – часовая тарифная ставка (бел. руб.);
ТМ – месячная тарифная ставка (бел. руб.).
В результате расчета для исполнителя часовая тарифная ставка составляет:
ТЧ=568000171= 3322 бел. руб.
Основная заработная плата исполнителя рассчитывается по формуле (5.6):
З0=i=1nТЧi∙ТЧ∙ФЭi∙К, (5.6)
где n – количество исполнителей, занятых разработкой программного модуля;
TЧi – часовая тарифная ставка i-го исполнителя (бел. руб.);
ФЭi – эффективный фонд рабочего времени i-го исполнителя (дней);
ТЧ – количество часов работы в день (ч);
К – коэффициент премирования.
З0=3322 · 8 · 90 · 1,3= 3109392 бел. руб.
Определяем дополнительную заработную плату ЗД на разрабатываемый программный модуль по нормативу НД в процентах к основной заработной плате по формуле (5.7):
ЗД=З0∙НД100, (5.7)
ЗД=3109392·10 100= 310939 бел. руб.Отчисления в фонд социальной защиты населения ЗСЗ определяются по формуле (5.8):
ЗСЗ=(З0+ЗД)∙НСЗ100, (5.8)где НСЗ – норматив отчислений в фонды социальной защиты населения(%).
Сумма отчислений в фонд социальной защиты населения:
ЗСЗ=(3109392 + 310939)∙34100= 1162913 бел. руб.Налог, рассчитываемый по фонду оплаты труда (на страхование), определяется по формуле (5.9):
НСТ=(З0+ЗД)∙СТР100, (5.9)
НСТ=(5182320 + 518232) ∙1100=34203 бел. руб.Расходы по статье «Материалы» (М) определяются на основании сметы затрат, разрабатываемой на ПО с учетом действующих нормативов. Норма расхода материалов (носители, бумага, красящие ленты и т.п.) в суммарном выражении (НМ = 430 бел. руб.) определяется в расчете на 100 строк исходного кода программного модуля. Сумма затрат на материалы рассчитывается по следующей формуле с учетом коэффициента снижения расхода материалов на разработку и отладку (принимаем равным 0,5):
М=НМ∙V0100, (5.10)где НМ – норма расхода материалов в расчете на 100 строк исходного кода ПО (бел. руб.);
V0 – общий объем программного модуля (строк исходного кода).
М=430 · 0,5∙5340100=11481 бел. руб.Расходы по статье «Машинное время» (РМ) включают оплату машинного времени, необходимого для разработки и отладки программного обеспечения, которое определяется по нормативам (в машино-часах) на 100 строк исходного кода (НМВ) машинного времени в зависимости от характера решаемых задач и типа ПЭВМ. Так как разрабатываемый программный модуль предназначен для учета и контроля средств, в соответствии с нормативами значение НМВ принимаем равным 13ч/100 строк исходного кода. Сумма расходов по данной статье определяется по формуле (5.11):
РМ=ЦМ∙V0100∙НМВ, (5.11)где ЦМ – расходы на оплату 1 машино-часа, принимаем равным 100 бел. руб.;
V0 – общий объем ПО (строк исходного кода);
НМВ – норматив расхода машинного времени на отладку 100 строк исходного кода (машино-часов).
РМ=100∙5340100∙13= 69420 бел. руб.Расходы по статье «Прочие затраты» (ПЗ) включают затраты на приобретение и подготовку специальной научно-технической информации и литературы. Сумму этих расходов определяем следующим образом:
ПЗ=З0∙НПЗ100,где НПЗ – норматив прочих затрат в целом по организации (20 %).
ПЗ=3109392 · 20100= 621878 бел. руб. Общую сумму расходов по всем статьям сметы рассчитываем по формуле (5.12):
СР=З0+ЗД+ЗСЗ+НСТ+М+РМ+ПЗ, (5.12)

СР=3109392 + 310939 + 1162913 + 34203 + 11481 + 69420 + 621878= 5320226 бел. руб.
Общую сумму расходов на разработку программного модуля (с затратами на сопровождение и адаптацию) как его полную себестоимость (СП) определяем по следующей формуле (5.13):
СП=СР∙НРСА100+СР, (5.13)где НРСА - норматив расходов на сопровождение и адаптацию программного средства (10 %).
СП=5320226 · 10 100+5320226= 5852249 бел. руб. Общая сумма расходов на разработку программного модуля (с затратами на сопровождение и адаптацию) составила 5852249 бел. руб.5.4 Расчет экономического эффекта от применения программного обеспечения у пользователя
Для определения экономического эффекта от применения нового ПО необходимо сравнить расходы по всем статьям сметы затрат на эксплуатацию нового ПО (расходы на заработную плату с начислениями, материалы, машинное время и т.д.) с расходами по соответствующим статьям базового варианта. При сравнении базового и нового вариантов ПО в качестве экономического эффекта будет выступать общая экономия всех видов ресурсов относительно базового варианта.
Таблица 5.3 Исходные данные для расчета экономического эффекта
Наименование показателей
Обозначения Единицы
измерения Значение показателя Наименование источника информации
базовый вариант
новый вариант
1
2 3 4 5 6
Капитальные вложения, включая стоимость услуг по сопровождению и адаптации ПО КПР бел.
руб. 5852249 Договор заказчика с разработчиком
Затраты на доукомплектова-ние ВТ техническими средствами в связи с внедрением нового ПО КТС бел.
руб. 0 Смета затрат
на внедрение
Продолжение таблицы 5.3
1
2 3 4 5 6
Затраты на пополнение оборотных фондов, связанных с эксплуатацией нового ПО КОБ бел. руб. 0 Смета затрат на внедрение
Продолжитель-ность освоения ТОС месяцев 1 0,5 Паспорт ПО
Численность программистов, занятых освоением ПО ЧПО чел. 1 1 Паспорт ПО
Численность пользователей, занятых эксплуатацией ПО ЧПЭ чел. 10 10 Проект плана работ
Расход машинного времени на освоение ПО ТМОС машино-часов 60 50 Паспорт ПО
Коэффициент начислений на зарплату КНЗ 1,1 1,1 Среднемесячное количество рабочих дней ДР дней 21 21 Количество типовых задач, решаемых за год ЗТ2 задач 100 План пользователя
Объем работ, выполняемый при решении одной задачи А0 100
команд 2670 План пользователя
Продолжение таблицы 5.3
1
2 3 4 5 6
Цена одного машино-часа работы ЭВМ ЦМ бел. руб. 500 Смета затрат ЭВМ пользователя
Средняя трудоемкость работ в расчете на 100 команд ТС1
ТС2 человек-час.
на 100 команд 20 12,25 Рассчитывается
по данным
пользователя
Средний расход машинного времени в расчете на 100 команд МВ1
МВ2 машино-час.
на 100 команд 15 13 Паспорт ПО
Средний расход материалов в расчете на 100 команд МТ1
МТ2 бел. руб. на 100 команд 500 430 Паспорт ПО
Количество часов работы в день
ТЧ часов 8 8 Ставка налога на прибыль НП % 24 Нормативный коэффициент
ЕН % 15 Объем работ в зависимости от функциональной группы и назначения ПО определяется по формуле (5.14):
А0=VПО∙КПО, (5.14)
где VПО – объем ПО в натуральных единицах измерения;
КПО – коэффициент применения ПО, принимаю равным 0,5.
А0=5340 · 0,5 = 2670 команд
Среднемесячную зарплату программиста определяем по формуле (5.15):
ЗСМ=ДР∙ТЧ∙ТМ, (5.15)
где ДР – количество рабочих дней в месяц;
ТЧ – количество часов работы в день;
ТМ – часовая тарифная ставка программиста, бел. руб.
ЗСМ=21 · 8 · 3322= 558096 бел. руб.
Находим среднюю трудоемкость работ в расчете на 100 строк кода:
ТС2=ТУ∙ТЧVПО∙100,где VПО – объем ПО, строк исходного кода;
ТЧ – количество часов работы в день;
ТУ – уточненная трудоемкость разработки, человеко-дней.
ТС2=81,75 · 8 5340∙100= 12,25 час.Выполняем расчет капитальных затрат заказчика (потребителя), связанных с приобретением, внедрением и использованием ПО (таблица 5.4).
Затраты на освоение ПО рассчитываются по следующей формуле (5.17):
КОС = ЧПО ∙ (ЗСМ+ЗСМ ∙ КНЗ) ∙ ТОС + ЧПЭ ∙ ТМОС ∙ ЦМ (5.17)
КОС=1∙558096+558096∙1,1∙0,5+10∙50∙100=636001 бел. руб.
Рассчитываем экономию основных видов ресурсов в связи с использованием нового ПО. Полученные результаты приведены в таблице 6.5.
Экономия затрат на заработную плату при использовании нового ПО в расчете на объем выполненных работ определяется по формуле (5.18):
Таблица 5.4 Расчет общих капитальных вложений
Наименование Методика расчета Значение,
бел. руб.
Затраты пользователя на приобретение ПО по отпускной цене разработчика КПР = СП 5852249
Затраты на освоение ПО Формула (5.17) 636001
Затраты на доукомплектацию ВТ техническими средствами в связи с внедрением нового ПО КТС 0
Затраты на пополнение оборотных средств в связи с использованием нового ПО КОБ 0
Общие капитальные вложения КО = КПР + КОС + КТС + КОБ 6488250
СЗ=СЗЕ∙A2,
(5.18)
СЗЕ=ЗСМ∙(ТС1-ТС2)ТЧ∙ДР.где ЗСМ – среднемесячная заработная плата одного программиста;
ТС1, ТС2 – снижение трудоемкости работ в расчете на 100 строк кода (человеко-часов);
ТЧ – количество часов работы в день (ч);
ДР – среднемесячное количество рабочих дней.
СЗЕ=558096∙(20 - 12,25)8∙2125746 руб.=257 бел. руб./100 командОбъем выполненных работ с использованием нового ПС (100 команд)
А2=А0∙ЗТ2; 2670
где А0 – объем работ необходимый для решения одной задачи;
ЗТ2 – количество типовых задач, решаемых за год (задач).
Экономия затрат на заработную плату (Сз)
СЗ=257∙2670= 686190 бел. руб.
Экономия затрат за счет сокращения начислений на заработную плату, при коэффициенте начислений равном 1,1.
686190 ∙ 1,1= 754809 бел. руб.
Экономия затрат на оплату машинного времени.

где СМЕ – экономия затрат на оплату машинного времени при решении задач с использованием нового ПО в расчете на 100 команд.
Экономия затрат на оплату машинного времени в расчете на 100 команд:

где ЦМ – цена одного машино-часа работы ЭВМ;
МВ1, МВ2 – средний расход машинного времени в расчете на 100 команд при применений соответственно базового и нового ПО.
500 ∙ (15 - 13) = 1000 бел. руб.
1000 ∙ 2670 = 2670000 бел. руб.
Общая годовая экономия текущих затрат, связанных с использованием нового ПО.
СО = СЗ+СОЗ+СМ +СМТ = 686190 + 754809 + 2670000 + 186900 =
= 4297900 бел. руб.
Для пользователя в качестве экономического эффекта выступает лишь чистая прибыль дополнительная прибыль, остающаяся в его распоряжении (ПЧ), которую определяю по формуле (5.19):
ПЧ=С0-С0∙ННП100, (5.19)где ННП ставка налога на прибыль, равная 24%.
Тогда чистая прибыль для пользователя составит:
ПЧ=4297900-4297900 ∙ 24100=3266404 бел. руб.Таблица 5.5 Расчет экономии основных видов ресурсов
Наименование Методика расчета Значение
бел. руб.
Экономия затрат на заработную плату в расчете на 100 команд СЗЕ= ЗСМ ∙ (ТС1 ТС2)/(ТЧ ∙ ДР) 257
Объем выполненных работ с использованием нового ПО, сотен команд А2 = А0 ∙ ЗТ2 2670
Экономия затрат на заработную плату при использовании нового ПО в расчете на объем выполненных работ СЗ = СЗЕ ∙ А2 686190
Экономия затрат за счет сокращения начислений на заработную плату СОЗ = СЗ ∙ КНЗ 754809
Экономия затрат на оплату машинного времени при решении задач с использованием нового ПО СМЕ = ЦМ ∙ (МВ1 МВ2) 1000
Экономия затрат на оплату машинного времени в расчете на выполненный объем работ СМ = СМЕ ∙ А2 2670000
Экономия затрат на материалы при решении задач с использованием нового ПО СМТЕ = СМ1 СМ2 70
Экономия затрат на материалы при использовании нового ПО в расчете на объем выполненных работ СМТ = СМТЕ ∙ А2 186900
Общая годовая экономия текущих затрат, связанных с использованием нового ПО СО = СЗ+СОЗ+СМ +СМТ 4297900
В процессе использования нового ПО чистая прибыль в конечном итоге возмещает капитальные затраты пользователя. Полученные при этом суммы результатов (прибыли) и затрат (капитальных вложений) по годам приводим к единому времени расчетному году (за расчетный год принят 2010 год) путем умножения результатов и затрат за каждый год на коэффициент приведения (t), который рассчитываю по формуле (5.20):
αt=(1+EH)tP-t, (5.20)
где ЕН норматив дисконтирования разновременных затрат и результатов;
tP расчетный 2010 год, tP = 1;
t номер года, результаты и затраты которого приводятся к расчетному (2010 – 1; 2011 – 2; 2012 – 3; 2013 – 4).
Коэффициентам приведения (t) по годам будут соответствовать следующие значения:
1 = (1 + 0,15)1 - 1 = 1,000– расчетный год;
2 = (1 + 0,15)1 - 2 = 0,869– 2011 год;
3 = (1 + 0,15)1 - 3 = 0,756– 2012 год;
4 = (1 + 0,15)1 - 4 = 0,657– 2013 год.
Данные расчета экономического эффекта сведены в таблицу 5.6.
Таблица 5.6 Расчет экономического эффекта от использования нового ПО
Показатели Единицы измерения 2010 2011 2012 2013
1 2 3 4 5 6
Результаты:
Прирост прибыли за счет экономии затрат (ПЧ) тыс. бел.
руб. – 3266404 3266404 3266404
То же, с учетом фактора времени тыс. бел.
руб. – 2838505
2469401 2146027

Продолжение таблицы 5.6
1 2 3 4 5 6
Затраты:
Приобретение, адаптация и освоение ПО (КПР) тыс. бел.
руб. 5852249 – – –
Освоение ПО (КОС) тыс. бел.
руб. 636001 – – –
Доукомплектование ВТ техническими средствами (КТС) тыс. бел.
руб. 0 – – –
Пополнение оборотных средств (КОБ) тыс. бел.
руб. 0 – – –
Всего затрат тыс. бел.
руб. 6488250
– – –
То же, с учетом фактора времени тыс. бел.
руб. 6488250
– – –
Экономический эффект:
Превышение результата над затратами с нарастающим итогом без учёта фактора времени(ЧД) тыс. бел.
руб. –6488250 –3221846
44558 3310962
То же, с нарастающим итогом с учётом фактора времени(ЧДД) тыс. бел.
руб. –6488250 –3649745 –1180344 965683
Коэффициент приведения единиц 1,0 0,869 0,756 0,657
Индекс рентабельности определим по следующей формуле (5.21):
Р=∆ПЧСП∙100%=32664045852249∙100%=56% (5.21)Определим срок окупаемости программного обеспечения:
Тд=СОСП+СО=55225675522567+2086060=0,73То=Тд+Тц=3,73 летКоэффициент экономической эффективности определим как:
КЭ=∆Пч0,5∙СП=32664040,5∙5852249=1,12Вывод
Приведенный выше расчет прогнозируемого экономического эффекта показал, что все затраты на новое программное обеспечение составят – 6488250 руб., полностью окупятся через 3,73 года. Коэффициент экономической эффективности равен 1,12. Индекс рентабельности равен 56%. В соответствии с критериями оценки эффективности применения нового ПО, разработанное ПО можно признать эффективным.
ОПТИМИЗАЦИЯ ЗРИТЕЛЬНОГО ВЗАИМОДЕЙСТВИЯ ОПЕРАТОРА СО СРЕДСТВАМИ ОТОБРАЖЕНИЯ ИНФОРМАЦИИ
Особенности зрительного восприятия информации и формирование утомления зрительного анализатора оператора
Целью дипломного проекта является разработка автоматизированной системы идентификации готовой продукции на ЗАО МЗХ «Атлант». При разработке данной системы большое внимание уделяется созданию программного обеспечения системы. Использование персонального компьютера – необходимое условие достижения поставленной цели. Однако не стоит забывать о вредном влиянии ПЭВМ на состояние здоровья пользователей. Недооценка особенностей работы с дисплеями приводит к существенным проблемам со здоровьем.
На ЗАО МЗХ «Атлант» используются ЖК-мониторы Integral.
Основными параметрами изображения на экране монитора являются яркость, контраст, размеры и форма знаков, отражательная способность экрана, наличие или отсутствие мерцаний. Для уменьшения влияния вредного воздействия монитора на организм человека необходимо, чтобы все эти параметры были в пределах нормы.
Мерцания монитора объясняется тем, что частота горизонтальной развертки обычно не превышает 50-60 Гц. Для уменьшения нагрузки на органы зрения необходимо применять дисплеи с достаточно большим размером экрана и частотой горизонтальной развертки свыше 70 Гц.
Весьма часто фактором, способствующим быстрому утомлению глаз, становится и контраст между фоном и символами на экране. Малая контрастность затрудняет различение символов, однако и слишком большая тоже вредит. Поэтому контраст должен находиться в пределах от 3:1 до 1,5:1. При более низких уровнях контрастности у пользователей быстрее наступает неблагоприятные изменения способности фокусировать изображение и критической частоты слияния световых мельканий.
Человеческий глаз не может долго работать с мелкими объектами. Угловой размер знака должен быть в пределах от 16 до 60 угловых минут, что составляет от 0,46 до 1,75 см, при расстоянии до экрана монитора 50 сантиметров.
Отражательная способность экрана не должна превышать 1%. Для снижения количества бликов и облегчения концентрации внимания корпус монитора должен иметь матовую одноцветную поверхность (светло-серый, светло-бежевый тона) с коэффициентом отражения 0,4-0,6, без блестящих деталей и с минимальным числом органов управления и надписей на лицевой стороне.
К числу вредных факторов, с которыми сталкивается пользователь, работающий за монитором, относятся рентгеновское и электромагнитное излучения, а также электростатическое поле. На расстоянии 50 см влияние электростатического поля уменьшается до безопасного для человека уровня. Применение специальных защитных фильтров позволяет свести его к нулю. Но при работе монитора электризуется не только его экран, но и воздух в помещении. Для уменьшения влияния используется частое проветривание помещения и/или использование кондиционеров.
Труд специалистов и операторов, работающих с вычислительной техникой, характеризуется повышенными уровнями психического напряжения. Высокие уровни психического напряжения возникают в условиях опасности. Реакция психического напряжения, связана со сложностью трудовой деятельности, необходимостью постоянно поддерживать активное внимание, высокой ответственностью за свою деятельность и высокой ценой ошибки.
Особое внимание было уделено характеру сдвигов в деятельности – её улучшению или ухудшению. Так появилось основание для выделения двух видов состояний: напряжения, оказывающего положительный, мобилизующий эффект на деятельность, и напряжённости, которая характеризуется понижением устойчивости психических и двигательных функций вплоть до дезинтеграции деятельности.
Не последнее влияние оказывает микроклимат помещения. Средняя температура воздуха в помещении должна составлять +22°С, относительная влажность – 46%, атмосферное давление – 750 мм.рт.ст., содержание пыли – не более 10 мг/м воздуха рабочего места, максимальные размеры частиц – 2 мкм. Для поддержания микроклимата в помещении должны быть предусмотрены вентиляция и отопление в теплое и холодное время года. В теплое время года вентиляция в помещении осуществляется бытовыми кондиционерами. При полной загруженности оборудования температура воздуха не должна превышать +25°С. В холодный период помещение отапливается батареями радиаторов. Зимой температура воздуха в помещении офиса не должна опускаться ниже +19 °С[10].
Инженерно-психологические требования к средствам отображения информации (СОИ) и их расположению в рабочем пространстве
Проектирование рабочих мест относится к числу важных проблем эргономического проектирования в области вычислительной техники.
Рабочее место и взаимное расположение всех его элементов должно соответствовать антропометрическим, физическим и психологическим требованиям. Большое значение имеет также характер работы. В частности, при организации рабочего места программиста должны быть соблюдены следующие основные условия: оптимальное размещение оборудования, входящего в состав рабочего места и достаточное рабочее пространство, позволяющее осуществлять все необходимые движения и перемещения.
Эргономическими аспектами проектирования рабочих мест, в частности, являются: высота рабочей поверхности, размеры пространства для ног, требования к расположению документов на рабочем месте (наличие и размеры подставки для документов, возможность различного размещения документов, расстояние от глаз пользователя до экрана, документа, клавиатуры и т.д.), характеристики рабочего кресла, требования к поверхности рабочего стола, регулируемость элементов рабочего места[11].
Рабочий стол, с учётом характера выполняемой работы, должен иметь достаточный размер для рационального размещения монитора (дисплея), клавиатуры, другого используемого оборудования и документов, поверхность, обладающую низкой отражающей способностью.
Для комфортной работы стол должен удовлетворять следующим условиям[11]:
– высота стола должна быть выбрана с учетом возможности сидеть свободно, в удобной позе, при необходимости опираясь на подлокотники;
– нижняя часть стола должна быть сконструирована так, чтобы программист мог удобно сидеть, не был вынужден поджимать ноги;
– поверхность стола должна обладать свойствами, исключающими появление бликов в поле зрения программиста;
– конструкция стола должна предусматривать наличие выдвижных ящиков (не менее 3 для хранения документации, листингов, канцелярских принадлежностей).
– высота рабочей поверхности рекомендуется в пределах 680-760мм. Высота поверхности, на которую устанавливается клавиатура, должна быть около 650мм.
Клавиатура располагается на поверхности стола таким образом, чтобы пространство перед клавиатурой было достаточным для опоры рук работника (на расстоянии не менее чем 300 мм от края, обращенного к работнику) или на специальной регулируемой по высоте рабочей поверхности, отделённой от основной столешницы. Пальцы должны находиться на уровне запястий или чуть ниже. Запястья также следует держать или на уровне локтей, или чуть ниже, а сами руки – достаточно низко, чтобы плечи были опущены и расслаблены.
Чтобы обеспечивалось удобство зрительного наблюдения, быстрое и точное считывание информации, плоскость экрана монитора располагается ниже уровня глаз работника предпочтительно перпендикулярно к нормальной линии взгляда работника (нормальная линия взгляда - 15 см вниз от горизонтали).
Для исключения воздействия повышенных уровней электромагнитных излучений расстояние между экраном монитора и работником должно составлять не менее 500 мм (оптимальное 600-700 мм).
Моторное поле – пространство рабочего места, в котором могут осуществляться двигательные действия человека.
Максимальная зона досягаемости рук – это часть моторного поля рабочего места, ограниченного дугами, описываемыми максимально вытянутыми руками при движении их в плечевом суставе.
Оптимальная зона – часть моторного поля рабочего места, ограниченного дугами, описываемыми предплечьями при движении в локтевых суставах с опорой в точке локтя и с относительно неподвижным плечом.
Дисплей должен располагаться в центре.
Положение экрана определяется:
– расстоянием считывания (0,6…0,7м);
– углом считывания, направлением взгляда на 20 градусов ниже горизонтали к центру экрана, причем экран перпендикулярен этому направлению.
Должна также предусматриваться возможность регулирования экрана:
– по высоте +3 см;
– по наклону от -10 градусов до +20 градусов относительно вертикали;
– в левом и правом направлениях.
Для обеспечения безопасности работников на соседних рабочих местах расстояние между рабочими столами с мониторами (в направлении тыла поверхности одного монитора и экрана другого монитора) должно быть не менее 2,0 м, а расстояние между боковыми поверхностями мониторов не менее 1,2 м. Площадь на 1 рабочее место с персональным компьютером должна быть не менее 6 м2, а объём не менее 20 м3 [12].
Требование к организации, качественным и количественным характеристикам освещения рабочего места оператора и их реализация. Оптимизация режима труда и отдыха оператора
При работе с дисплеем используется визуальный канал ввода информации в мозг человека. Работа с дисплеем зачастую происходит в помещениях с искусственным освещением. В этом случае такое освещение должно обеспечивать правильную работу глаз и приближаться к оптимальным условиям зрительного солнечного освещения. По «Санитарным правилам и нормам» помещение с ПЭВМ должны иметь естественное и искусственное освещение. Естественное освещение должно осуществляться через светопроемы, ориентированные преимущественно на север и северо-восток и обеспечивать коэффициенты естественной освещенности (КЕО) не ниже 1,2% в зонах с устойчивым снежным покровом и 1.5% на остальной территории[9].
Искусственное освещение в помещениях эксплуатации ПЭВМ должно осуществляться системой общего равномерного освещения. Освещенность на поверхности стола в зоне размещения рабочего документа должна быть 300 - 500 лк. Допускается установка светильников местного освещения для подсветки документов. Местное освещение не должно создавать бликов на поверхности экрана и увеличивать освещенность экрана более 300 лк. Коэффициент запаса для осветительных установок общего освещения должен приниматься равным 1.4. Следует ограничивать прямую блесткость от источников освещения, при этом яркость светящихся поверхностей, находящихся в поле зрения, должна быть не более 200 кд/кв.м.. Следует ограничивать отраженную блескость на рабочих поверхностях за счет правильного выбора типов светильников и расположения рабочих мест по отношению к источникам естественного и искусственного освещения, при этом яркость бликов на экране монитора не должна превышать 40 кд/кв.м и яркость потока, при изменении системы отраженного освещения, не должна превышать 200 кд/кв.м[9].
В качестве источников света при искусственном освещении должны применяться преимущественно люминесцентные лампы типа ЛБ. При устройстве отраженного освещения в производственных и административно-общественных помещениях допускается применение металлогалогенных ламп мощностью до 250 Вт. Допускается применение ламп накаливания в светильниках местного освещения.
Для снижения яркости в поле зрения при естественном освещении применяются регулируемые жалюзи, плотные шторы.
Глаза человека меньше утомляются, если рабочее место освещено равномерно – т.е. когда возможно избежать возникновения в поле зрения человека слишком сильного контраста между яркими и недостаточно освещенными поверхностями (тенеобразование) и слепящего действия, вызванного световыми отражениями (бликами) от осветительных приборов на поверхности стекла шкафов, полированных поверхностей, мониторов компьютеров и других блестящих деталей интерьера. Все это ведет к ухудшению зрительной способности, снижению работоспособности и ухудшению самочувствия. Зрительный комфорт на компьютерном рабочем месте можно обеспечить с помощью отраженного света, который отражается от матовой белой поверхности потолка или при падении прямого света, который должен падать наклонно сбоку или отвесно сзади. Причем очень важным является равномерное распределение света на потолке при применении отраженного освещения. Оно обеспечивается только светильниками с широким светораспределением отраженного света. Преимуществом отраженного освещения также является то, что: можно спланировать меблировку независимо от освещения, светильники отраженного света и прямого/отраженного света обеспечивают высокую равномерность освещения при КПД светильника 80-90%, светильники отраженного света характеризуются низким тенеобразованием и, наконец, светильники отраженного света экономичны. Мерцание распространенных ныне люминесцентных ламп, питающихся от дросселей, оказывает раздражающее действие на нервные клетки головного мозга, и, кроме того это мерцание складывается с мерцанием монитора на частоте обновления изображения, что приводит к сильной утомляемости глаз.
Для обеспечения нормируемых значений освещенности в помещениях использования ПЭВМ следует проводить чистку стекол оконных рам и светильников по необходимости, но не реже двух раз в год и проводить своевременную замену перегоревших ламп.
При работе с персональным компьютером очень важную роль играет соблюдение правильного режима труда и отдыха. В противном случае у персонала отмечаются значительное напряжение зрительного аппарата с появлением жалоб на неудовлетворенность работой, головные боли, раздражительность, нарушение сна, усталость и болезненные ощущения в глазах, в пояснице, в области шеи и руках[10].
В таблице 6.1 представлены сведения о регламентированных перерывах, которые необходимо делать при работе на компьютере, в зависимости от продолжительности рабочей смены, видов и категорий трудовой деятельности с ВДТ (видеодисплейными терминалами) и ПЭВМ[8].
Все виды трудовой деятельности, связанные с использованием компьютера, разделяются на три группы[8]:
– группа А: работа по считыванию информации с экрана ВДТ или ПЭВМ с предварительным запросом;
– группа Б: работа по вводу информации;
– группа В: творческая работа в режиме диалога с ЭВМ.
Таблица 6.1 - Время регламентированных перерывов при работе на ПК
Категория работы с ВДТ или ПЭВМ Уровень нагрузки за рабочую смену при видах работы с ВДТ Суммарное время регламентированных перерывов, мин.
Группа А, количество знаков Группа Б, количество знаков Группа В, часов При 8-часовой смене При 12-часовой смене
I до 20000 до 15000 до 2,0 30 70
II до 40000 до 30000 до 4,0 50 90
III до 60000 до 40000 до 6,0 70 120

Продолжительность непрерывной работы с монитором не должна превышать 2 часов[8].
Для программиста II категории следует соблюдать следующий режим труда и отдыха:
– при 8-часовой рабочей смене и работе с видеотерминалом регламентированные перерывы должны быть предусмотрены через 2 часа от начала работы и через 2 часа после обеденного перерыва продолжительностью 15 минут каждый или продолжительностью 10 минут через каждый час работы[8];
– при 12-часовой рабочей смене регламентированные перерывы должны устанавливаться в первые 8 часов работы аналогично перерывам при 8-часовой рабочей смене, а в течение последних 4 часов работы каждый час продолжительностью 15 минут[8];
– при работе с ПК в ночную смену (с 22 до 6 часов) продолжительность регламентированных перерывов должна увеличиваться на 60 минут.
С целью уменьшения отрицательного влияния монотонности необходимо применять чередование операций.
Во время регламентированных перерывов для снижения нервно-эмоционального напряжения, утомления зрительного анализатора, улучшения функционального состояния нервной, сердечно-сосудистой, дыхательной систем, а также мышц плечевого пояса, рук, спины, шеи и ног целесообразно выполнять комплексы упражнений.
Оздоровительные упражнения для профилактики зрительного утомления:
– перемещение взгляда при закрытых глазах;
– перемещение взгляда из одного угла дисплея в другой;
– зажмуривание глаз;
– напряжение глазных мышц;
– перемещение взгляда с близкой точки на отдалённую;
– массаж височного и окологлазного пространства;
– пальминг;
– упражнение для век.
В заключении необходимо отметить, что использование на ЗАО МЗХ «Атлант» ЖК-мониторов фирмы Integral с размером экрана 19" и выше дюймов и частотой горизонтальной развёртки свыше 70 Гц, соблюдение эргономических аспектов при проектировании рабочих мест, достаточное освещение в помещениях эксплуатации ПЭВМ, соблюдение оптимального режима труда и отдыха позволяет сохранить хорошую работоспособность в течение всего рабочего дня, повышает как в количественном, так и в качественном отношениях производительность труда программиста, что в свою очередь будет способствовать быстрейшей разработке и отладке программного продукта.
ЗАКЛЮЧЕНИЕ
В процессе выполнения дипломного проектирования были решены следующие задачи:
– спроектирована автоматизированная система идентификации готовой продукции;
– выбрано оборудование и программные средства для разработки программного обеспечения;
– разработано программное обеспечение считывания и проверки данных;
– проведено детальное тестирование и оценка надежности программы.
Основной целью дипломного проектирования была разработка автоматизированной системы идентификации готовой продукции и программного обеспечения данной системы, предназначенного для регистрации прохождения изделий по технологическим точкам. Для решения этой задачи вначале был произведен обзор существующих методов автоматической идентификации продукции и выбран метод, основанный на штриховом кодировании. Затем разработана структура системы и алгоритм её работы. В ходе разработки алгоритма работы были выявлены ошибки, возникающие в системе.
Произведен выбор оборудования системы. В качестве необходимых элементов было выбрано экран Century, сканер фирмы DataLogic PSC PowerScan D8300, преобразователь ADAM 4570.
Разработан алгоритм работы программы, выполнена программная реализация системы. Программное обеспечение разработано в среде MS Visual C++ 6.0. Для работы с базами данных использовано средство RDE Apollo OLE DB. В ходе реализации были учтены все требования к системе.
Произведено детальное тестирование программного обеспечения, которое показало корректную работу программы. Произведена оценка надежности программного обеспечения.
Проведено технико-экономическое обоснование работы. В нем составлена смета затрат и выполнен расчет суммы расходов, связанных с разработкой данного программного обеспечения. Расчет прогнозируемого экономического эффекта показал, что все затраты на новое программное обеспечение составят – 6488250 руб., полностью окупятся через 3,73 года, что показало эффективность его использования.
В ходе выполнения дипломного проекта рассмотрены вопросы оптимизации зрительного взаимодействия оператора со средствами отображения информации. Сформулированы основные требования к средствам отображения информации и их расположению в рабочем пространстве, требование к организации, качественным и количественным характеристикам освещения рабочего места оператора. Сформулирован режим труда и отдыха оператора для достижения высокой производительности его работы.
СПИСОК ЛИТЕРАТУРЫ
[1] Википедия. – Свободная энциклопедия. – Режим доступа : http://ru.wikipedia.org/.
[2] ГК «АТОЛ». – Электронные данные. – Режим доступа : http://www.atol.ru/[3] Indel. – Электронные данные. – Режим доступа : http://www.indel.by[4] Академика. – Свободная энциклопедия. – Режим доступа : http://dic.academic.ru/[5] Круглински, Д. Д. Программирование на Microsoft Visual C++ 6.0. Для профессионалов / Д. Д. Круглински, С. Уингоу, Д. Шеферд. – М. : Русская Редакция, 2001. – 864с.
[6] Секунов, Н. Самоучитель Visual C++ 6 / Н. Секунов. – СПб. : БХВ - Санкт-Петербург, 1999. – 960с.
[7] Факультет Математики и Информатики Гродненского государственного университета им. Янки Купалы. – Электронные данные. – Режим доступа : http://mf.grsu.by/.
[8] СанПиН 2.2.2.542РБ96. Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы.
[9] СНБ 2.04-05-98. Естественное и искусственное освещение. Строительные нормы Республики Беларусь.
[10] Белов, Н. А. Безопасность жизнедеятельности / Н. А. Белов. – М. : Знание, 2000. – 364с.
[11] Зинченко, В. П. Основы эргономики / В. П. Зинченко. – М. : МГУ, 1979. – 179с.
[12] Семич, В. П. Охрана труда при работе на персональных электронно-вычислительных машинах и другой офисной технике : практическое пособие / В. П. Семич. – Мн. : Высш. Шк., 2001. – 56с.
[13] Надежность программного обеспечения : учебное пособие. Ч 1. / В. В. Бахтизин. – Минск : БГУИР, 2007.

Приложенные файлы

  • docx 473267
    Размер файла: 706 kB Загрузок: 0

Добавить комментарий