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

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,11 Мб
  • Опубликовано:
    2013-09-02
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Список использованных сокращений

ЦТО - Центр технического обслуживания.

СМО - Система массового обслуживания.- Point of sale (рабочее место кассира).

ИНН - Идентификационный номер налогоплательщика.

ККМ - Контрольно-кассовая машина.

КПК - Криптографический проверочный код.

ЛУ - Логическое устройство.

ОС - Операционная система.

ПЭВМ - Персональная электронная вычислительная машина.

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

ПП - Программный продукт.

ПО - Программное обеспечение.

ФП - Фискальная память.

ФР - Фискальный регистратор.

ЭКЛЗ - Электронная контрольная лента защищённая.

Введение

В настоящее время в связи с расширением торговой сети, является актуальным вопрос автоматизации процесса выявления и устранения неисправностей торгового оборудования. Четкой структуры разделения оборудования на категории пока не существует, но общепринято разделять его на две группы: выставочное оборудование и оборудование для автоматизации торговли. Оборудование для автоматизации торговли включает в себя кассовые аппараты, весовое оборудование, оборудование для штрихкодирования и т. п.

Для ремонта и контроля работы специализированного торгового оборудования существуют сервисные центры называемые ЦТО.

Основная задача, которая возлагается на ЦТО:

выполнять технический контроль над работающими кассовыми аппаратами;

нести ответственность за правильное функционирование кассовой техники.

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

подавать заявку на неисправность

получать оперативную поддержку со стороны сервисных центров

Специалисты, в свою очередь, получат возможность:

получать оповещения о неисправности оборудования с подробной информацией о коде ошибки и общем программном состоянии оборудования

проводить удаленную диагностику оборудования

проводить удаленную настройку оборудования

Разрабатываемое программное обеспечение предназначено для повышения эффективности процесса выявления и устранения неисправностей торгового оборудования.

В исследовательском разделе приводятся материалы по исследованию предметной области и самого предмета проектирования, анализ вариантов решения поставленной задачи и выбор конкретного варианта по итогам технико-экономического обоснования.

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

В технологическом разделе приведена реализация метода решения задачи.

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

В организационно-экономическом разделе спланирована разработка программного продукта с построением графика. Рассчитана смета затрат на разработку программного продукта. Проведен расчет технико-экономических показателей и эффективности проекта.

1. Исследовательский раздел

.1 Характеристика предметной области дипломного проекта

Оборудование для автоматизации торговли включает в себя:

контрольно-кассовые машины

весовое оборудование

оборудование для штрих-кодирования и т.д.

Контрольно-кассовая машина (ККМ) - предназначена для регистрации приобретения товара и печати кассового чека[1].

ККМ в России это инструмент контроля со стороны государства за налично-денежным оборотом, полнотой и своевременностью оприходования предприятиями наличной выручки. В остальном мире используется владельцами для упрощения учёта товаров и контроля продавцов. Современный кассовый аппарат имеет в своем составе дисплей, клавиатуру и печатающее устройство, которое печатает на специальной бумажной ленте.

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

Эра автоматизации и учета розничных операций берет свое начало с 19 века, когда 13 июля 1875 года Дэвид Браун получил патент на «аппарат для транспортировки товаров, наличных денег и прочих мелких грузов». Эта простая система надолго прижилась в магазинах Старого и Нового света, превратившись в такой же ностальгический символ эпохи, каким для советских людей стал, например, автомат с газировкой.

Развитие мегаполисов существенно изменило модель и стиль розничной торговли. В небольших лавочках европейских и американских городов хозяин магазина, как правило, являвшийся и продавцом, знал всех своих клиентов по имени, отпускал товары в кредит, который гасился в конце месяца, и вообще был приятелем и хорошим собеседником, а его предприятие являлось основным источником местных сплетен и новостей. В большом универмаге большого города такая идиллическая картина не могла существовать: клиенты требовали повышенного внимания, деньги - учёта, а продавцы - контроля. Аппарат Дэвида Брауна как раз и был создан для осуществления контроля над всеми расчетами в магазине.

Система представляла собой корзинки, подвешенные к веревочной карусели. Продавец-консультант, как его назвали бы теперь, приняв от клиента деньги за товар, отправлял их в корзинке кассиру, который возвращал назад сдачу и товарный чек. В крупном универмаге кассир сидел в центре «паутины», по нитям которой к нему стекалась наличность из разных отделов. Первый опыт внедрения системы, осуществленный в крупнейшем мебельном магазине в Массачусетсе в 1879 году, привел к существенному увеличению объемов продаж, сокращению времени на проведение торговой операции и улучшению контроля за движением средств и остатка товара на складе. Лучшей рекламы и не требовалось - система Брауна стала востребованной всеми крупными магазинами, и заказы посыпались со всех концов США, а позже и Европы.

Вильям Лэмсон, владелец того самого мебельного магазина, купил права на изобретение Дэвида Брауна и в 1882 году создал компанию Lamson Cash Railway Company. Система была столь надежна и неприхотлива, что исправно работала долгие годы: в универмаге Лоунса в Нью-Йорке она верой и правдой прослужила целых сто лет без единого дня простоя до самого закрытия магазина в октябре 1995 года. Ее техническое обслуживание и устранение поломок занимало считаные минуты и выполнялось любым сотрудником магазина с помощью отвертки и пассатижей. Разработки новых версий системы шли постоянно: в начале XX века компания представила скоростные варианты на основе пневматической трубы либо, в версии попроще, на основе катапульты из эластичного материала. Однако самый первый вариант все равно оставался наиболее востребованным.

Изобретенный в 1884 году братьями Ритти кассовый аппарат занял свое законное место в центре инфраструктуры магазина с системой Лэмсона. Он позволял кассиру не только быстрее и правильнее произвести расчет, но и обладал функцией, из-за которой налоговые органы впоследствии сделали его обязательным во всех розничных точках: он сохранял в памяти информацию обо всех платежах. Однако именно кассовый аппарат и стал причиной гибели простого и надежного изобретения Брауна - его возможностей оказалось достаточно, чтобы заменить собой громоздкую систему. В 1950 году компания Лэмсона прекратила производство, однако еще несколько десятилетий многие магазины продолжали пользоваться этим устройством, которое долгие годы было основной частью торговых предприятий по обе стороны Атлантики.

В настоящее время ККМ классифицируются только по конструкции[1]:

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

Пассивная системная ККМ - это кассовая машина, имеющая возможность работать в компьютерно-кассовой системе, но не имеющая возможности управлять работой этой системы. Пассивная системная ККМ может использоваться как автономная ККМ.

Активная системная ККМ - это кассовая машина, имеющая возможность работать в компьютерно-кассовой системе, управляя при этом работой системы. К активной системной ККМ относится также POS-терминал - ККМ с фискальной памятью, обладающая возможностями персонального компьютера по вводу-выводу, хранению, обработке и отображению информации. Активная системная ККМ может использоваться как пассивная системная или автономная ККМ.

Фискальный регистратор - это ККМ, способная работать только в составе компьютерно-кассовой системы, получая данные через канал связи.

В качестве диагностируемого оборудования выбран фискальный регистратор, так как способности выдачи информации о состоянии и наличии ошибок у данного типа ККМ ограничены.

Вернемся к 1993 году, когда в соответствии с Законом Российской Федерации "О применении контрольно-кассовых машин при осуществлении денежных расчетов с населением" от 18 июня 1993 года N 5215-1[2] были официально, в обязательном порядке, введены кассовые аппараты при расчетах с населением. При этом не был прописан порядок обслуживания и ремонта этих кассовых аппаратов. В связи с этим, ремонт кассовой техники мог производить любой желающий. Естественно, ни о какой сохранности информации о выручке речь не шла, т.к. скручивание счетчиков в кассовом аппарате производилась «не установленными личностями» и никто ничего не мог доказать.

Естественно, Государство не могло не обратить внимания на эту проблему. В 1995 году этот процесс решили упорядочить, и вышло «Положение о порядке продажи, технического обслуживания и ремонта контрольно-кассовых машин в Российской Федерации». Именно тогда и прозвучало словосочетание «Центр технического обслуживания контрольно-кассовых машин», сокращенно ЦТО ККМ.

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

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

Таким образом, ЦТО заинтересован, в первую очередь, в том, чтобы обслуживаемые им кассовые аппараты были полностью исправны и полностью соответствовали требованиям законодательства. Отсюда и необходимость периодического осмотра кассовой техники, проверки пломб и правильности работы ККМ, ведь если окажется, что с кассовым аппаратом «что-то не так», то ЦТО может подвергнуться серьезной проверке со стороны государственных органов. Следует отметить, что пользователи ККМ становятся на обслуживание к определенному ЦТО, заключая с ними договор и, впоследствии, регистрируя ККМ в налоговой службе. Весь этот процесс долгий и трудоемкий, поэтому пользователи меняют ЦТО очень редко, в случае крайней необходимости.

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

Рисунок 1.1 - Диаграмма вариантов использования системы

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

Операции, проходящие в рассматриваемой системе, являются случайными процессами, ход и исход которых зависят от ряда случайных факторов, сопровождающих эти операции.

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

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

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

Случайный процесс, протекающий в системе S, называется марковским процессом (или «процессом без последействия»), если он обладает следующим свойством:

Для каждого момента времени t0 вероятность любого состояния системы в будущем (при t>t0) зависит только от ее состояния в настоящем (при t=t0) и не зависит от того, когда и каким образом система пришла в это состояние (т. е. как развивался процесс в прошлом).

Другими словами, в марковском случайном процессе будущее развитие его зависит только от настоящего состояния и не зависит от «предыстории» процесса.

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

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

1.2 Обзор и анализ программных решений в предметной области

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

Рассмотрим некоторые из программ:

Тест драйвера ФР от НТЦ «Штрих-М» - представляет собой комплекс программных средств для диагностики, обслуживания и ремонта фискальных регистраторов производства Штрих-М (Рисунок 1.2).

Рисунок 1.2 - Тест драйвера ФР

Драйвер ККМ от ООО «УК»АТОЛ» - представляет собой комплекс программных средств для диагностики, обслуживания и ремонта фискальных регистраторов. Поддерживает оборудование, как собственного производства, так и сторонних поставщиков (Рисунок 1.3).

Рисунок 1.3 - Драйвер ККМ

от ЗАО «Инкотекс» - представляет собой программу для связи с фискальными регистраторами на уровне консольных команд. Поддерживает оборудование собственного производства.

У всех выше перечисленных программ отсутствует возможность удаленной связи с ККМ. Разработка такого программного обеспечения могла бы способствовать повышению эффективности работы ЦТО.

.3 Постановка задачи

Результаты анализа предметной области показали, что рассматриваемая система является системой массового обслуживания. Задачами дипломного проекта будут являться:

Разработка математической модели системы массового обслуживания

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

Модель СМО поможет спрогнозировать эффективность работы сервисного центра:

Спрогнозировать характеристики работы связанные с эффективностью обслуживания

Вырабатывать рекомендации

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

Связь с фискальным регистратором для сбора информации о состоянии аппарата.

Связь с серверной частью по локальной сети или сети интернет.

Серверная часть представляет собой программу, находящуюся на компьютере специалиста ЦТО и выполняющую следующие функции:

Связь с клиентской частью по локальной сети или сети интернет.

Возможность отображения информации по состоянию ФР, собранной клиентской частью.

Выводы

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

Анализ программных решений показал необходимость разработки программного обеспечения.

Обоснована целесообразность разработки математической модели на основе систем массового обслуживания.

2. Специальный раздел

.1 Формализованное описание предметной области

Теория массового обслуживания разрабатывает методы исследования и получает количественные характеристики систем, на вход которых в случайные моменты времени поступают требования (заявки)[3].

Каждая СМО состоит из какого-то числа обслуживающих единиц (или «приборов»), которые называются каналами обслуживания. СМО могут быть одноканальными и многоканальными. В нашем случае каналами будут специалисты ЦТО, соответственно СМО будет многоканальной.

Всякая СМО предназначена для обслуживания какого-то потока заявок, поступающих в какие-то случайные моменты времени. Обслуживание заявки продолжается какое-то, вообще говоря, случайное время Tоб, после чего канал освобождается и готов к приему следующей заявки. Случайный характер потока заявок и времен обслуживания приводит к тому, что в какие-то периоды времени на входе СМО скапливается излишне большое число заявок (они либо становятся в очередь, либо покидают СМО необслуженными); в другие же периоды СМО будет работать с недогрузкой или вообще простаивать.

Предмет теории массового обслуживания - построение математических моделей, связывающих заданные условия работы СМО (число каналов, их производительность, правила работы, характер потока заявок) с интересующими нас характеристиками - показателями эффективности СМО, описывающими, с той или другой точки зрения, ее способность справляться с потоком заявок. В качестве таких показателей могут применяться разные величины, например:

среднее число заявок, обслуживаемых СМО в единицу времени,

среднее число занятых каналов,

среднее число заявок в очереди,

среднее время ожидания обслуживания,

вероятность того, что число заявок в очереди превысит какое-то значение, и т.д.

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

Системы массового обслуживания делятся на типы и классы по ряду признаков. Первое деление: СМО с отказами и СМО с очередью. В СМО с отказами, заявка, поступившая в момент, когда все каналы заняты, получает отказ, покидает СМО и в дальнейшем процессе обслуживания не участвует. Для сервисного центра, в котором клиенты ставятся на учет через налоговые органы, отказов не существует, поэтому целесообразно рассматривать её как СМО без отказов.

СМО с очередью подразделяются на разные виды, в зависимости от того, как организована очередь - ограничена она или не ограничена. Ограничения могут касаться как длины очереди, так и времени ожидания (так называемые «СМО с нетерпеливыми заявками»). При анализе СМО должна учитываться также и «дисциплина обслуживания» - заявки могут обслуживаться либо в порядке поступления (раньше пришла, раньше обслуживается), либо в случайном порядке. Нередко встречается так называемое обслуживание с приоритетом - некоторые заявки обслуживаются вне очереди. Приоритет может быть как абсолютным - когда заявка с более высоким приоритетом «вытесняет» из-под обслуживания заявку с низшим, так и относительным - когда начатое обслуживание доводится до конца, а заявка с более высоким приоритетом имеет лишь право на лучшее место в очереди.

Кроме этих признаков, СМО делятся на два класса: «открытые» и «замкнутые». В открытой СМО характеристики потока заявок не зависят от того, в каком состоянии сама СМО (сколько каналов занято). В замкнутой СМО - зависят. Например, если один рабочий обслуживает группу станков, время от времени требующих наладки, то интенсивность потока «требований» со стороны станков зависит от того, сколько их уже неисправно и ждет наладки. Это - пример замкнутой СМО. В исследуемой системе присутствуют элементы замкнутой системы, но с учетом масштабов и возможной расширяемости системы, мы будем рассматривать данную СМО как открытую.

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

В последние годы большое внимание уделяется исследованию систем массового обслуживания со многими входящими потоками требований.

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

Программные ошибки или ошибки настроек ФР.

Неисправности блоков ФР, требующие замены.

Неисправности, требующие обращения в налоговые органы.

Не диагностируемые неисправности ФР.

К первому виду относятся ошибки, для исправления которых не требуется замена каких либо блоков ФР. Это ошибки в настройках ФР, а также разногласия ПО и ФР. Ко второму виду относятся поломки блоков ФР, требующие замены на новые. К третьему виду относятся неисправности в блоках ФП и ЭКЛЗ, требующие обращение в налоговую службу для получения разрешения на проведение ремонта. К четвертому виду относятся ошибки связи между ПК и ФР, что в свою очередь усложняет диагностику. Четвертый вид может быть вызван неисправным кабелем, что связывает ФР и ПК, или полной неисправностью всего ФР.

2.2 Математический метод решения задачи

Исходя из результатов исследования, можно сделать вывод о том, что мы имеем систему, обслуживающую заявки.

В очередь на обслуживание поступают 4 потока заявок, каждая со своей интенсивностью λ.

Система, состоящая из 4 каналов, обслуживает заявки в порядке поступления из очереди. Схематически рассматриваемая система представлена на (Рисунок 2.1).

Рисунок 2.1 - Схема работы системы

Для получения основных характеристик рассматриваемой системы сделаем следующие замечания[4]: так как поступающие потоки требований являются пуассоновскими, то и суммарный поток будет пуассоновским с параметром


если Bi(t) - функция распределения времени обслуживания требований из потока i, то функция распределения времени обслуживания из суммарного потока имеет вид


Так как для нашей системы , то


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


где . Это выражение в литературе известно как формула Полачека - Хинчина. Вычислим интегралы и преобразуем формулу (4):


Обозначим , тогда


Необходимо заметить, что формула (4) имеет место лишь тогда, когда выполняется условие стационарности, которое в данном случае может быть записано так:


Обозначим


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


В заключение, не останавливаясь на доказательстве, приведем зависимость,котораяпозволяет,знаявыражение(9),вычислитьсреднеечислотребованийкаждоготипа,ожидающихвочереди:

Тогда суммарное число требований всех типов, ожидающих в очереди, будет равно


Процесс работы СМО представляет собой случайный процесс с дискретными состояниями и непрерывным временем. Процесс называется процессом с дискретными состояниями, если его возможные состояния S1, S2, S3,... можно заранее перечислить (перенумеровать), и переход системы из состояния в состояние происходит «скачком», практически мгновенно. Процесс называется процессом с непрерывным временем, если моменты возможных переходов из состояния в состояние не фиксированы заранее, а неопределенны, случайны, если переход может осуществиться, в принципе, в любой момент.При анализе таких процессов удобно пользоваться геометрической схемой - так называемым графом состояний. Состояния системы изображаются прямоугольниками (или кругами, или даже точками), а возможные переходы из состояния в состояние - стрелками, соединяющими состояния. Мы будем изображать состояния прямоугольниками, в которых записаны обозначения состояний: S1, S2,......, Sn. Имея в распоряжении размеченный граф состояний, можно легко написать уравнения Колмогорова для вероятностей состояний, а также написать и решить алгебраические уравнения для финальных вероятностей. Для некоторых случаев удается последние уравнениярешить заранее, в буквенном виде. В частности, это удается сделать, если граф состояний системы представляет собой так называемую «схему гибели и размножения». Особенность этого графа в том, что все состояния системы можно вытянуть в одну цепочку, в которой каждое из средних состояний (S1, S2,..., Sn-1) связано прямой и обратной стрелкой с каждым из соседних состояний - правым и левым, а крайние состояния (S0, Sn) - только с одним соседним состоянием[3].

В соответствии с описанной характеристикой состояния рассматриваемой системы пронумеруем следующим образом:- все каналы свободны,- занят один канал, остальные свободны,- заняты k каналов, остальные свободны,- заняты все n каналов,+1 - заняты все n каналов, одна заявка стоит в очереди,+r - заняты все n каналов, r заявок стоят в очереди

Пусть рассматриваемая система массового обслуживания состоит из nканалов и на неё поступает пуассоновский поток заявок с интенсивностью λ, зависящей, в общем случае, от времени t.Обслуживание заявки продолжается в течение случайного времени Tоб, распределенного по показательному закону с параметром μ

Граф состояний приведен ниже. У каждой стрелки проставлены соответствующие интенсивности потоков событий. По стрелкам слева направо систему переводит всегда один и тот же поток заявок с интенсивностью λ; по стрелкам справа налево систему переводит поток обслуживаний, интенсивность которого равна μ, умноженному на число занятых каналов (Рисунок 2.2).

Рисунок 2.2 - Граф состояний

Обозначим отношение  и будем называть величину ρ «приведенной интенсивностью» потока заявок. Физический смысл её таков: величина ρ представляет собой среднее число заявок, приходящих в СМО за среднее время обслуживания одной заявки.

Получим вероятность состояний предельным переходом. Заметим, что сумма соответствующей геометрической прогрессии сходится при  и расходится при ; соответственно, установившийся режим будет существовать при , а при  очередь будет бесконечно возрастать. Получим выражения для предельных вероятностных состояний:


Так как длина очереди в рассматриваемой СМО не ограничена каким то числом m и каждая заявка рано или поздно будет обслужена, то вероятность отказа будет равна нулю:


Следовательно, относительная пропускная способность будет равна единице:


Абсолютная пропускная способность будет равна общей интенсивности потока заявок:


Среднее число заявок в очереди получим при :


А среднее время ожидания:


Среднее число занятых каналов  находится через абсолютную пропускную способность:


А среднее число заявок, связанных с СМО - как среднее число заявок в очереди плюс среднее число заявок, находящихся под обслуживанием (среднее число занятых каналов):


В большинстве случаев процесс поступления требований в систему массового обслуживания является вероятностным. Это значит, что промежутки времени, через которые поступают требования - случайные величины, подчиняющиеся некоторому закону распределения. Однако подавляющее число исследований по теории массового обслуживания выполнено для случая, когда входящий поток требований является пуассоновским, или, другими словами, простейшим.

Предпочтение пуассоновского потока другим обусловлено следующими обстоятельствами:

простейшие потоки и близкие к ним часто встречаются на практике;

для простейшего потока получены наиболее простые и удобные для практического использования формульные зависимости, описывающие поведение различных СМО;

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

Не останавливаясь на доказательстве, заметим, что пуассоновский поток обладает следующими тремя свойствами: стационарностью, ординарностью, отсутствием последействия.

Стационарным называется такой поток требований, для которого вероятность появления k требований (k = 0, 1,2,...) на участке времени длиной τ зависит не от места расположения этого участка на оси времени, а лишь от его длины. Таким образом, если на оси времени отложить равные участки длиной τ, то вероятности появления определенного числа требований на каждом из них будут совпадать (Рисунок 2.3). Другими словами, вероятностные характеристики стационарного потока требований не изменяются во времени.

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


Свойство ординарности практически означает невозможность поступления одновременно двух или больше требований.

Рисунок 2.3 - Свойство стационарности

Отсутствие последействия означает тот факт, что вероятность поступления k требований в течение заданного промежутка времени не зависит от числа и моментов поступлений до этого промежутка. Отсутствие последействия означает взаимную независимость процесса поступления требований в непересекающиеся промежутки времени.

Учитывая три названных свойства пуассоновского потока, можно получить следующую функцию распределения числа поступающих требований в течение заданного промежутка времени:


где λ>0 - параметр потока. Таким образом, формула (2), называемая формулой Пуассона, определяет вероятность поступления k требований в течение промежутка времени t.

Информационные структуры для реализации предложенного решения

Разрабатываемое программное обеспечение состоит из клиентской и серверной частей. Для связи будет использоваться стек протоколов TCP/IP. Данный выбор обоснован следующими преимуществами[5]:

Основное достоинство стека протоколов TCP/IP в том, что он обеспечивает надежную связь между сетевым оборудованием от различных производителей.

Независимость от сетевой технологии - стек только определяет элемент передачи, дейтаграмму, и описывает способ ее движения по сети.

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

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

Стандартные прикладные протоколы. Протоколы стека TCP/IP включают в свой состав средства поддержки основных приложений, таких как электронная почта, передача файлов, удаленный доступ и т.д.

Сегодня стек TCP/IP широко используется как в глобальных, так и в локальных сетях. Этот стек имеет иерархическую структуру, в которой определено 4 уровня (Таблица 2.1).

Таблица 2.1 - Иерархическая структура стека TCP/IP

Прикладной уровень

FTP, Telnet, HTTP, SMTP, SNMP, TFTP

Транспортный уровень

TCP, UDP

Сетевой уровень

IP, ICMP, RIP, OSPF

Уровень сетевых интерфейсов

He регламентируется


Прикладной уровень стека TCP/IP соответствует трем верхним уровням модели OSI: прикладному, представления и сеансовому. Он объединяет сервисы, предоставляемые системой пользовательским приложениям. За долгие годы применения в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и служб прикладного уровня. К ним относятся такие распространенные протоколы, как протокол передачи файлов (File Transfer Protocol, FTP), протокол эмуляции терминала telnet, простой протокол передачи почты (Simple Mail Transfer Protocol, SMTP), протокол передачи гипертекста (Hypertext Transfer Protocol, HTTP) и многие другие. Протоколы прикладного уровня развертываются на хостах. Транспортный уровень стека TCP/IP может предоставлять вышележащему уровню два типа сервиса:

гарантированную доставку обеспечивает протокол управления передачей (Transmission Control Protocol, TCP);

доставку по возможности, или с максимальными усилиями, обеспечивает протокол пользовательских дейтаграмм (User Datagram Protocol, UDP).

Для того чтобы обеспечить надежную доставку данных, протокол TCP предусматривает установление логического соединения, что позволяет ему нумеровать пакеты, подтверждать их прием квитанциями, в случае потери организовывать повторные передачи, распознавать и уничтожать дубликаты, доставлять прикладному уровню пакеты в том порядке, в котором они были отправлены. Благодаря этому протоколу объекты на хосте-отправителе и хосте-получателе могут поддерживать обмен данными в дуплексном режиме. TCP дает возможность без ошибок доставить сформированный на одном из компьютеров поток байтов на любой другой компьютер, входящий в составную сеть.

Второй протокол этого уровня, UDP, является простейшим дейтаграммным протоколом, который используется тогда, когда задача надежного обмена данными либо вообще не ставится, либо решается средствами более высокого уровня - прикладным уровнем или пользовательскими приложениями.

В функции протоколов TCP и UDP входит также исполнение роли связующего звена между прилегающими к транспортному уровню прикладным и сетевым уровнями. От прикладного протокола транспортный уровень принимает задание на передачу данных с тем или иным качеством прикладному уровню-получателю. Нижележащий сетевой уровень протоколы TCP и UDP рассматривают как своего рода инструмент, не очень надежный, но способный перемещать пакет в свободном и рискованном путешествии по составной сети.

Программные модули, реализующие протоколы TCP и UDP, подобно модулям протоколов прикладного уровня, устанавливаются на хостах.

Сетевой уровень, называемый также уровнем Интернета, является стержнем всей архитектуры TCP/IP. Именно этот уровень, функции которого соответствуют сетевому уровню модели OSI, обеспечивает перемещение пакетов в пределах составной сети, образованной объединением нескольких подсетей. Протоколы сетевого уровня поддерживают интерфейс с вышележащим транспортным уровнем, получая от него запросы на передачу данных по составной сети, а также с нижележащим уровнем сетевых интерфейсов.

Основным протоколом сетевого уровня является межсетевой протокол (Internet Protocol, IP). В его задачу входит продвижение пакета между сетями - от одного маршрутизатора к другому до тех пор, пока пакет не попадет в сеть назначения. В отличие от протоколов прикладного и транспортного уровней, протокол IP развертывается не только на хостах, но и на всех маршрутизаторах (шлюзах). Протокол IP - это дейтаграммный протокол, работающий без установления соединений по принципу доставки с максимальными усилиями. Такой тип сетевого сервиса называют также «ненадежным».

К сетевому уровню TCP/IP часто относят протоколы, выполняющие вспомогательные функции по отношению к IP. Это, прежде всего, протоколы маршрутизации RIP и OSPF, предназначенные для изучения топологии сети, определения маршрутов и составления таблиц маршрутизации, на основании которых протокол IP перемещает пакеты в нужном направлении. По этой же причине к сетевому уровню могут быть отнесены протокол межсетевых управляющих сообщений (Internet Control Message Protocol, ICMP), предназначенный для передачи маршрутизатором источнику сведений об ошибках, возникших при передаче пакета, и некоторые другие протоколы.

Идеологическим отличием архитектуры стека TCP/IP от многоуровневой архитектуры других стеков является интерпретация функций самого нижнего уровня - уровня сетевых интерфейсов.

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

У нижнего уровня стека TCP/IP задача существенно проще - он отвечает только за организацию взаимодействия с подсетями разных технологий, входящими в составную сеть. TCP/IP рассматривает любую подсеть, входящую в составную сеть, как средство транспортировки пакетов между двумя соседними маршрутизаторами.

Связь с ФР устанавливается через COM- порт. Для каждого ФР существует свой протокол обмена данными. У ФР производства ШТРИХ-М он един для всего модельного ряда, лишь с небольшими исключениями[6].

В информационном обмене «Хост - ФР» хост является главным устройством, а ФР - подчиненным. Поэтому направление передачи данных определяется хостом. Физический интерфейс «Хост - ФР» - последовательный интерфейс RS-232С, без линий аппаратного квитирования. Скорость обмена по интерфейсу RS-232С - 2400, 4800, 9600, 19200, 38400, 57600, 115200. При обмене хост и ФР оперируют сообщениями. Сообщение может содержать команду (от хоста) или ответ на команду (от ФР) (Рисунок 2.4).

Формат сообщения:

Байт 0: признак начала сообщения STX;

Байт 1: длина сообщения (N) - ДВОИЧНОЕ число. В длину сообщения не включаются байты 0, LRC и этот байт;

Байт 2: код команды или ответа - ДВОИЧНОЕ число;

Байты 3 - (N + 1): параметры, зависящие от команды (могут отсутствовать);

Байт N + 2 - контрольная сумма сообщения - байт LRC - вычисляется поразрядным сложением (XOR) всех байтов сообщения (кроме байта 0).

Сообщение считается принятым, если приняты байт STX и байт длины. Сообщение считается принятым корректно, если приняты байты сообщения, определенные его байтом длины, и байт LRC. Каждое принятое сообщение подтверждается передачей одного байта (ACK - положительное подтверждение, NAK - отрицательное подтверждение). Ответ NAK свидетельствует об ошибке интерфейса (данные приняты с ошибкой или не распознан STX), но не о неверной команде. Отсутствие подтверждения в течение тайм-аута означает, что сообщение не принято. Если в ответ на сообщение ФР получен NAK, сообщение не повторяется, ФР ждет уведомления ENQ для повторения ответа. После включения питания ФР ожидает байт запроса - ENQ. Ответ от ФР в виде байта NAK означает, что ФР находится в состоянии ожидания очередной команды; ответ ACK означает, что ФР подготавливает ответное сообщение, отсутствии ответа означает отсутствие связи между хостом и ФР.

Рисунок 2.4 - Схема основных процессов ХОСТ - ФР

По умолчанию устанавливаются следующие параметры порта: 8 бит данных, 1 стоп-бит, отсутствует проверка на четность, скорость обмена 4800 бод и тайм-аут ожидания каждого байта, равный 50 мс. Две последние характеристики обмена могут быть изменены командой от хоста. Тайм-аут ожидания реакции ФР на запрос ENQ не должен быть меньше 10 с. Минимальное время между приемом последнего байта сообщения и передачей подтверждения, и между приемом ENQ и реакцией на него равно тайм-ауту приема байта. Количество повторов при неудачных сеансах связи (нет подтверждения после передачи команды, отрицательное подтверждение после передачи команды, данные ответа приняты с ошибкой или не распознан STX ответа) настраивается при реализации программного обеспечения хоста (Рисунок 2.5).

Для упрощения обмена ПК с ФР существует драйвер от поставщика оборудования. Драйвер представляет собой библиотеку свойств и методов, которую можно загрузить как внешнюю компоненту во многих языках и средах, таких какBuilder C++, Borland Delphi, 1С:ПРЕДПРИЯТИЕ и т.д. Список свойств и методов представлен в приложении Б[7].

Рисунок 2.5 - Диаграмма состояний обмена нижнего уровня со стороны ФР

Сложность реализации предложенного решения и её качественная оценка

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

Для начала, необходимо найти суммарную интенсивность, сложив интенсивности всех потоков заявок

Где  - количество потоков заявок

 - интенсивность i-го потока заявок

Далее необходимо найти приведенную интенсивность каждого отдельного и суммарного потока


Где  - интенсивность обслуживания

 - количество каналов обслуживания

Суммарная приведенная интенсивность должна быть меньше единицы, иначе работа системы будет не стабильной, а очередь заявок будет бесконечно возрастать.

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


Среднее число заявок каждого типа ожидающих в очереди найдем по формуле


Среднее время пребывания заявки в системе найдем сложив время ожидания заявки в очереди и фактическое время обслуживания заявки


Таким образом, мы имеем характеристики системы, по которым можно спрогнозировать работу системы. Для демонстрации сложности управления подобной системой, проведем 10 последовательных экспериментов. Проставим случайным образом интенсивности потока заявок и интенсивности обслуживания, так, чтобы очередь заявок не возрастала бесконечно. Интенсивность одного из потоков будем менять в течение экспериментов от 1 до 10. После каждого эксперимента, запишем значения интенсивности и среднее число заявок каждого потока в виде точек графика (Рисунок 2.6).

Рисунок 2.6 - Результаты эксперимента

После расставления всех точек мы получаем график, отображающий отношение интенсивности одного из потоков заявок к среднему числу всех заявок в очереди. Проведем повторный эксперимент (Рисунок 2.7).

Рисунок 2.7 - Результаты эксперимента

Из результатов экспериментов мы видим, как изменение интенсивности одного потока влияет на количество заявок в очереди не только этого потока, но и всех остальных. Причем, небольшое изменение интенсивности одного потока может сильно увеличить количество заявок в очереди другого.

Рассмотрим, как влияет интенсивность одного из потоков заявок на среднее время ожидания заявки в очереди (Рисунок 2.8).

Рисунок 2.8 - Результаты эксперимента

Таким образом, можно сделать вывод, что управление характеристиками системы несет за собой серьёзные изменения в работе системы. Во избежание негативных результатов, необходимо обдуманное и аккуратное управление системой.

Предметная область описана формализованно.

Разработана математическая модель многоканальной системы массового обслуживания с ожиданием.

Разработанны информационные структуры для реализации предложенного программного решения, основанные на стеке протоколов TCP/IP и библиотек методов и свойств от поставщика оборудования.

3. Технологический раздел

.1 Структура программного комплекса и UML-представление ПО

Программный комплекс состоит из клиентской и серверной частей, соединенных по протоколу TCP/IP (Рисунок 3.1).

Рисунок 3.1 - Общая структура программного комплекса

Клиент представляет собой набор компонентов и драйверов, необходимых для установки связи с оборудованием и серверной частью (Рисунок 3.2).

Рисунок 3.2 - Диаграмма классов клиентской части

Сервер представляет собой набор компонентов для связи с клиентской частью, а также команды для вызова определенный методов на клиентской части (Рисунок 3.3).

Рисунок 3.3 - Диаграмма классов серверной части

3.2 Обоснование выбора инструментальных средств реализации программного решения

Для разработки данного программного обеспечения была выбрана среда разработки Delphi версии 7.- это продукт Borland International для быстрого создания приложений. Процесс создания интерфейса будущей программы напоминает забаву с игровым компьютерным конструктором. Поэтому RAD-среды еще называют визуальными средами разработки: какими мы видим рабочие и диалоговые окна программы при проектировании, такими они и будут, когда программа заработает.

Высокопроизводительный инструмент визуального построения приложений включает в себя настоящий компилятор кода и предоставляет средства визуального программирования, несколько похожие на те, что можно обнаружить в Microsoft Visual Basic (она не является RAD-системой) или в других инструментах визуального проектирования. В основе Delphi лежит язык Object Pascal, который является расширением объектно-ориентированного языка Pascal. В Delphi также входят локальный SQL-сервер, генераторы отчетов, библиотеки визуальных компонентов, и прочее, необходимое для того, чтобы чувствовать себя совершенно уверенным при профессиональной разработке информационных систем или просто программ для Windows-среды.

Прежде всего Delphi предназначен для профессиональных разработчиков, желающих очень быстро разрабатывать приложения в архитектуре клиент-сервер. Delphi производит небольшие по размерам высокоэффективные исполняемые модули (.exe и.dll), поэтому в Delphi должны быть, прежде всего, заинтересованы те, кто разрабатывает продукты на продажу. С другой стороны небольшие по размерам и быстро исполняемые модули означают, что требования к клиентским рабочим местам существенно снижаются - это имеет немаловажное значение и для конечных пользователей.

Преимущества Delphi по сравнению с аналогичными программными продуктами.

быстрота разработки приложения (RAD);

высокая производительность разработанного приложения;

низкие требования разработанного приложения к ресурсам компьютера;

наращиваемость за счет встраивания новых компонент и инструментов в среду Delphi;

возможность разработки новых компонентов и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходных кодах);

удачная проработка иерархии объектов.

Система программирования Delphi рассчитана на программирование различных приложений и предоставляет большое количество компонентов для этого. К тому же работодателей интересует, прежде всего, скорость и качество создания программ, а эти характеристики может обеспечить только среда визуального проектирования, способная взять на себя значительные объемы рутинной работы по подготовке приложений, а также согласовать деятельность группы постановщиков, кодировщиков, тестеров и технических писателей. Возможности Delphi полностью отвечают подобным требованиям и подходят для создания систем любой сложности.

Основным конкурентом Borland Delphi 7 является её родной брат - RAD-среда Borland C++ Builder, технология работы с которой полностью совпадает с технологией, принятой в Delphi 7. Только в Delphi программный код пишется на языке программирования Паскаль, точнее на его объектно-ориентированной версии ObjectPascal, а не на языке C++.

Для того чтобы обосновать, почему наш выбор остановился на Borland Delphi 7, достаточно просто перечислить некоторые недостатки языка С++ по сравнению с ObjectPascal:

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

Значительно большая, по сравнению с Object Pascal, сложность языка, даже, несмотря на компактность кода, возникают сложности в его восприятии.

Одна особенность, на мой взгляд, языка С++ очень портит этот язык - он чувствителен к регистру символов, т.е. переменная A и переменная a - это разные переменные.

В Delphi классы (объекты) могут располагаться только в динамической памяти, а в C++ в любой памяти (статическая, стек, динамическая). Это добавляет безопасности программирования в Delphi.

3.3 Алгоритмическая реализация решения задачи

Разрабатываемое программное обеспечение состоит из клиентской и серверной частей, связанных по протоколу TCP/IP. Связь устанавливается после отправки клиентом заявки на сервер. Сервер устанавливает соединение, после чего возможно проведение диагностики.

Для работы выбранного метода связи используются компоненты TServerSocket (для серверной части) и TClientSocket (для клиентской части) (Рисунок 3.4).

Рисунок 3.4 - Алгоритм отправки клиентом запроса на подключение

Для соединения с сервером указываются IP-адрес сервера и номера порта, далее производится попытка подключения. Если подключение успешно установлено, то, используя драйвер, на сервер отправляется информация о модели ФР. Если соединение не удается установить, пользователю выдается сообщение об ошибке (Рисунок 3.5).

Рисунок 3.5 - Алгоритм подключения клиента к серверу

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

Для поведения диагностики специалист может выбрать команду из выпадающего списка и отправить её на клиентскую часть. После отправки, сервер будет ожидать ответ (Рисунок 3.6).

Рисунок 3.6 - Алгоритм отправки команд для ФР

При отправке команды, сервер проверяет, выбран ли клиент из списка подключенных. Если выбран, то сообщение отправляется ему, если не выбран, выдается сообщение об ошибке (Рисунок 3.7).

Рисунок 3.7 - Алгоритм принятия клиентом команды

После получения клиентом команды, он её обрабатывает. Если команда является запросом какой либо информации от ФР, то вызывается процедура обработки запроса. Если команда является запросом дампа памяти, то вызывается процедура формирования дампа. Если команда является операцией с таблицами, то проверяется тип операции. Если это операция чтения данных из таблиц, то формируется и отправляется ответ. Если это операция записи данных в таблицы, то данные обрабатываются и записываются.

3.4 Методика тестирования разрабатываемого программного обеспечения

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

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

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

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

Тестирование совместимости - вид нефункционального тестирования, основной целью которого является проверка корректной работы продукта в определенном окружении. Окружение может включать в себя следующие элементы:

Аппаратная платформа;

Сетевые устройства;

Периферия (принтеры, CD/DVD-приводы, веб-камеры и пр.);

Операционная система (Unix, Windows, MacOS)

Базы данных (Oracle, MS SQL, MySQL)

Системное программное обеспечение (веб-сервер, файрвол, антивирус)

Браузеры (Internet Explorer, Firefox, Opera, Chrome, Safari)

Модульное тестирование, или юнит-тестирование - процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы.

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

Анализ результатов работы программного обеспечения

В процессе функционального тестирования было проверено соответствие требованиям к возможностям и функциям ПО. Клиентская часть успешно связывается с серверной по протоколу TCP. При отправке запросов с сервера, клиент успешно опрашивает оборудование, формирует ответ от него и отправляет этот ответ на сервер (Рисунок 3.8).

Рисунок 3.8 - Успешный прием сервером блока данных

В рамках тестирования совместимости работа программного обеспечения была проверена в разных окружениях. Тест показал, что приложение успешно работает на разных архитектурах компьютеров, как на «десктопах», так и на ноутбуках. Была проверена работоспособность на различных версиях Windows. Гарантирована работа на версиях XP, Vista, 7. Теоретически, наличие стороннего ПО никак не сказывается на работе разрабатываемого ПО. Для возможности связи клиента с сервером, необходимо открыть используемый TCP порт в «фаерволе», либо отключить\удалить все «фаерволы». TCP порт не должен быть занят другой программой. Приложение успешно функционирует в различных топологиях сети, при любом методе подключения к интернету.

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

Разработана структура программного комплекса и UML представление ПО.

Обоснован выбор инструментальных средств реализации реализации предложенного решения.

Разработана алгоритмическая реализация решения задачи.

Проведена методика тестирования и анализ результатов работы ПО.

4. Раздел по безопасности жизнедеятельности

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

В настоящее время компьютерная техника широко применяется во всех областях деятельности человека. При работе с компьютером человек подвергается воздействию ряда опасных и вредных производственных факторов: электромагнитных полей (диапазон радиочастот: ВЧ, УВЧ и СВЧ), инфракрасного и ионизирующего излучений, шума и вибрации, статического электричества и др.

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

4.1 Анализ длительных статических нагрузок на пользователя при работе на ПЭВМ

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

Набор болезней, связанных с длительным пребыванием в статической позе и с использованием клавиатуры, часто называют синдромом длительных статических нагрузок (СДСН). Интересно, что темпы роста числа заболеваний этого вида соответствуют темпам роста компьютеризации учреждений.[8]

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

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

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

Считается, что некоторые заболевания, связанные со статическими нагрузками, являются следствием неудачной конструкции клавиатуры. Усилия, необходимые для того, чтобы руки при печати располагались параллельно клавиатуре, вызывают постоянные перегрузки мышц и сухожилий. Исходя из этого, многие виды СДСН можно предотвратить, изменив конструкцию клавиатуры.

В настоящее время существуют нормы организации рабочего места для работы на компьютере. В соответствии с СанПиН 2.2.2/2.4.1340-03 [9] рабочее место должно быть организовано следующим образом:

При размещении рабочих мест с ПЭВМ расстояние между рабочими столами с видеомониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора) должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов - не менее 1,2 м.

Рабочие места с ПЭВМ в помещениях с источниками вредных производственных факторов должны размещаться в изолированных кабинах с организованным воздухообменом.

Рабочие места с ПЭВМ при выполнении творческой работы, требующей значительного умственного напряжения или высокой концентрации внимания, рекомендуется изолировать друг от друга перегородками высотой 1,5 - 2,0 м.

Экран видеомонитора должен находиться от глаз пользователя на расстоянии 600 - 700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов.

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

Конструкция рабочего стула (кресла) должна обеспечивать поддержание рациональной рабочей позы при работе на ПЭВМ, позволять изменять позу с целью снижения статического напряжения мышц шейно-плечевой области и спины для предупреждения развития утомления. Тип рабочего стула (кресла) следует выбирать с учетом роста пользователя, характера и продолжительности работы с ПЭВМ.

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

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

Требования к организации и оборудованию рабочих мест с ПЭВМ для взрослых пользователей:

Высота рабочей поверхности стола для взрослых пользователей должна регулироваться в пределах 680 - 800 мм; при отсутствии такой возможности высота рабочей поверхности стола должна составлять 725 мм.

Модульными размерами рабочей поверхности стола для ПЭВМ, на основании которых должны рассчитываться конструктивные размеры, следует считать: ширину 800, 1000, 1200 и 1400 мм, глубину 800 и 1000 мм при нерегулируемой его высоте, равной 725 мм.

Рабочий стол должен иметь пространство для ног высотой не менее 600 мм, шириной - не менее 500 мм, глубиной на уровне колен - не менее 450 мм и на уровне вытянутых ног - не менее 650 мм.

Конструкция рабочего стула должна обеспечивать:

ширину и глубину поверхности сиденья не менее 400 мм;

поверхность сиденья с закругленным передним краем;

регулировку высоты поверхности сиденья в пределах 400 - 550 мм и углам наклона вперед до 15 град. и назад до 5 град.;

высоту опорной поверхности спинки 300 +/- 20 мм, ширину - не менее 380 мм и радиус кривизны горизонтальной плоскости - 400 мм;

угол наклона спинки в вертикальной плоскости в пределах +/- 30 градусов;

регулировку расстояния спинки от переднего края сиденья в пределах 260 - 400 мм;

стационарные или съемные подлокотники длиной не менее 250 мм и шириной - 50 - 70 мм;

регулировку подлокотников по высоте над сиденьем в пределах 230 +/- 30 мм и внутреннего расстояния между подлокотниками в пределах 350 - 500 мм.

Рабочее место пользователя ПЭВМ следует оборудовать подставкой для ног, имеющей ширину не менее 300 мм, глубину не менее 400 мм, регулировку по высоте в пределах до 150 мм и по углу наклона опорной поверхности подставки до 20 град. Поверхность подставки должна быть рифленой и иметь по переднему краю бортик высотой 10 мм.

Клавиатуру следует располагать на поверхности стола на расстоянии 100 - 300 мм от края, обращенного к пользователю, или на специальной, регулируемой по высоте рабочей поверхности, отделенной от основной столешницы.

4.2 Организация рабочего места при работе на ПЭВМ

Обеспечение безопасной жизнедеятельности человека в значительной степени зависит от правильной оценки опасных, вредных производственных факторов. Одинаковые по тяжести изменения в организме человека могут быть вызваны различными причинами. Это могут быть какие-либо факторы производственной среды, чрезмерная физическая и умственная нагрузка, нервно-эмоциональное напряжение, а также разное сочетание этих причин.

В помещении офиса на работающего могут негативно действовать следующие физические факторы [10]:

повышенная и пониженная температура воздуха;

чрезмерная запыленность и загазованность воздуха;

повышенная и пониженная влажность воздуха;

недостаточная освещенность рабочего места;

превышающий допустимые нормы шум;

повышенный уровень ионизирующего излучения;

повышенный уровень электромагнитных полей;

повышенный уровень статического электричества;

опасность поражения электрическим током;

блеклость экрана дисплея.

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

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

Микроклимат производственных помещений - это климат внутренней среды этих помещений, который определяется действующими на организм человека сочетаниями температуры, влажности и скорости движения воздуха.

Офис является помещением І категории (выполняются легкие физические работы), поэтому должны соблюдаться следующие требования:

оптимальная температура воздуха - 22° С (допустимая - 20-24° С)

оптимальная влажность - 40-60% (допустимая - не более 75%)

скорость движения воздуха не более 0.1 м/с.

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

В связи с тем, что естественное освещение слабое, на рабочем месте должно применяться также искусственное освещение. Светильники с люминесцентными лампами в помещениях для работы рекомендуют устанавливать рядами. Можно установить два светильника в ряд. Светильники вмещаются в ряд, так как длина ряда около 4 м. Применяются светильники с лампами 2х40 Вт с общим потоком 5700 лм.

В помещениях с низким уровнем общего шума, каким является офис, источниками шумовых помех могут стать вентиляционные установки, кондиционеры или периферийное оборудование для ПЭВМ (плоттеры, принтеры и др.). Длительное воздействие этих шумов отрицательно сказывается на эмоциональном состоянии персонала.

Согласно ГОСТ 12.1.003-90 ССБТ эквивалентный уровень звука не должен превышать 50 дБ.[11]

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

Ультрафиолетовое излучение полезно в небольших количествах, но в больших дозах приводит к дерматиту кожи, головной боли, рези в глазах. Инфракрасное излучение приводит к перегреву тканей человека (особенно хрусталика глаза), повышению температуры тела. Уровни напряженности электростатических полей должны составлять не более 20 кВ/м. Поверхностный электростатический потенциал не должен превышать 500В. Может возникнуть опасность по уровням напряженности электромагнитного поля. На расстоянии 5-10 см от экрана и корпуса монитора уровни напряженности могут достигать 140 В/м по электрической составляющей, что значительно превышает допустимые значения СанПиН 2.2.2/2.4.1340-03.[9]

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

Электробезопасность в помещении офиса обеспечивается техническими способами и средствами защиты, а также организационными и техническими мероприятиями.

Во время работы на корпусе компьютера накапливается статическое электричество. На расстоянии 5-10 см от экрана напряженность электростатического поля составляет 60-280 кВ/м, то есть в 10 раз превышает норму 20 кВ/м. Для уменьшения напряжённости применяются увлажнители и нейтрализаторы, антистатическое покрытия пола.

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

Так как все токоведущие части ЭВМ изолированы, то случайное прикосновение к токоведущим частям исключено.

Для обеспечения защиты от поражения электрическим током при прикосновении к металлическим нетоковедущим частям, которые могут оказаться под напряжением в результате повреждения изоляции, рекомендуется применять защитное заземление.

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

При проведении незапланированного и планового ремонта вычислительной техники выполняются следующие действия:

Отключение компьютера от сети.

Проверка отсутствия напряжения.

После выполнения этих действий проводится ремонт неисправного оборудования.

Гигиенические критерии оценки и классификаций условий труда основаны на принципе дифференциации условий труда по степени отклонения параметров производственной среды и трудового процесса от действующих гигиенических нормативов в соответствии с выявленным влиянием этих отклонений на функциональное состояние и здоровье работающих.

Таким образом, можно сказать, что общая оценка условий труда равна 3.2 - т.е. вредные условия труда второй степени. Это вредные условия труда, характеризующиеся наличием вредных производственных факторов, приводящих в большинстве случаев к росту заболеваемости с временной утратой трудоспособности, повышением частоты заболеваемости, проявлением начальных признаков профессиональной патологии.

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

Чтобы исключить возникновение заболеваний, необходимо иметь возможность свободной перемены поз. Необходимо соблюдать режим труда и отдыха с перерывами, заполняемыми “отвлекающими” мышечными нагрузками на те звенья опорно-двигательного аппарата, которые не включены в поддержание основной рабочей позы.

Антропологические характеристики человека определяют габаритные и компоновочные параметры его рабочего места, а также свободные параметры отдельных его элементов.

Рабочее место работника офиса должно занимать площадь не менее 6 м², высота помещения должна быть не менее 4 м, а объем - не менее 20 м3 на одного человека.

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

4.3 Экологическая оценка исходных материалов для изготовления компьютерной техники

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

Конструкция любого вычислительного комплекса имеет в своем составе черные, цветные, драгоценные и редкие металлы, из которых изготавливаются: корпус, рамы, стойки, блоки и другие вспомогательные устройства (черные металлы): провода для соединений, печатные платы, рисунок печатных плат (цветные и драгоценные металлы); на печатных платах установлены электроэлементы, содержащие драгоценные металлы, такие как золото, серебро и платина.[12]

Систематизация и ранжировка химических элементов, которые используются при производстве ПЭВМ, ЭВМ и приборов приведена в Таблица 4.1.

Печатные платы - узлы, подверженные различным повреждениям, ведущим к их отказу, не исключен и производственный брак.

Когда выбрасываются печатные платы, в отходы попадает некоторое количество драгоценного металла, которым запаяны контакты.

Вычислительная техника после окончания срока эксплуатации является источником загрязнения почвы в результате постепенного накопления отходов.

Таблица 4.1 - Распространенность в природе элементов, используемых в ПЭВМ, ЭВМ и радиоэлектронной аппаратуре


Химический элемент

Пор №табл. Менд.

Содержание в земной коре, вес в %

Наименование полезного ископаемого, содержащее элемент

Применение хим.элемента в ЭВМ, ПЭВМ и приборах

1

Кремний (Si)

14

26

Двуокись кремния (SiO2), алюмосиликаты

Элементы из стекла (экраны мониторов, осветительные приборы и др.)

2

Алюминий (AI)

13

7.45

Глины, шпаты, бокситы

Элементы блоков, корпуса, проволока

3

Железо (Fe)

26

4.2

Железныеруды (Fe3O4, Fe2O3, 2Fe3CO3, 2Fe2O3·3H20)

Детали из стали (сплав Fe-C) стойки, каркасы и др.

4

Углерод (С)

6

0.35

Уголь, графит, алмаз, соединения углерода


5

Медь (Сu)

29

0.01

Самородки, медные руды

Провода, кабель

6

Олово (Sn)

50

0.008

Самородки, оловянный камень (SnO2)

Припой ПОС, покрытия

7

Свинец (Рb)

82

0.0016

Свинцовый блеск (PbS)

Припой ПОС

8

Германий (Ge)

32

0.0004

Рассеянный-ископаемое, германит, аргиродит (4Ag2S·GeS2)(6CuS·GeS2)

Электрорадиоэлементы (кристаллы)

9

Галий (Ga)

31

0.001

В свободном состоянии не встречается, источник - отходы цветной металлургии

Запоминающие устройства

10

Серебро (Ag)

47

0.00001

Самородки, серебряная руда (аргенит)

Электрорадиоэлементы, припой

11

Ртуть (Hg)

80

0.000005

В самородном состоянии (редко), киноварь

Осветительные приборы

12

Золото (Au)

79

0.0000005

Самородки, теллуристое золото (АuТе2)

Электрорадиоэлементы

13

Платина (Pt)

78

Встр-ся с др. металлами платиновой группы

Россыпи с содержанием других элементов платиновой группы

Электрорадиоэлементы проволока

14

Палладий (Pd)

46

Встр-ся с др. металлами платиновой группы

Россыпи с содержанием других элементов платиновой группы

Электрорадиоэлементы

15

Гадолиний (Gd)

64

Рассеянный (семействалантаноидов)

Рассеянный (в свободном состоянии в природе не встречается)

Запоминающие устройства


В основу учебного компьютера положен блочно-модульный принцип и его можно представить в виде следующих конструктивных элементов: стойка, блок, модуль, микросхема

Стойка представляет собой металлический шкаф прямоугольной формы, материалом для изготовления которой служит углеродистая сталь.

Блок представляет собой съемную конструкцию, на которой монтируются модули. Блок помешается в металлический каркас, изготавливаемый из алюминиевого сплава.

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

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

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

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

Близкий состав применяемых материалов к указанному выше содержат радио-электронная аппаратура.

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

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

В процессе переработки печатных плат и электроэлементов получают гранулы.

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

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

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

Эффективность использования лома и отходов металла зависит от их качества. Загрязнение и засорение металлоотходов приводят к большим потерям при переработке, поэтому сбор, хранение и сдача их регламентируется специальными стандартами.

Основные операции первичной обработки металлоотходов - сортировка, разделка, механическая обработка. Сортировка заключается в разделении лома и отходов по видам металлов. Разделка лома состоит в разделении металлических и неметаллических включений. Механическая обработка включает рубку, резку, пакетирование и брикетирование на прессах.

На предприятиях, где образуется большое количество металлоотходов, организуются специальные цехи для утилизации вторичных металлов. Чистые однородные отходы с паспортом, удостоверяющим их химический состав, используют без предварительного металлургического передела.

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

В соответствии с требованиями СНиП 2.01.28-85 переработку промышленных отходов производят на специальных полигонах, предназначенных для централизованного сбора, обезвреживания и захоронения токсичных отходов промышленных предприятий, которые образуются как при изготовлении новых приборов (в том числе и печатных плат), так и при утилизации вышедших из строя[13].

В разделе «Безопасность жизнедеятельности» проанализированы длительные статические нагрузки на пользователя при работе на ПЭВМ, расписаны требования, необходимые для снижения риска возникновения симптомов синдрома длительных статических нагрузок. Рассмотрены основные требования по организации рабочего места, а также, соблюдены все нормы по работе с ПЭВМ. Описана организация безопасных условий в помещениях с компьютерной техникой. Проведена экологическая оценка исходных материалов для изготовления компьютерной техники.

5. Организационно-экономический раздел

.1 Планирование разработки программного продукта (ПП) с построением графика

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

Определение трудоемкости и продолжительности работ по созданию ПП.

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

Согласно ГОСТ 23501.1-79 регламентируются следующие стадии проведения исследования:

техническое задание - ТЗ (ГОСТ 23501.2-79);

эскизный проект - ЭП (ГОСТ 23501.5-80);

технический проект - ТП (ГОСТ 23501.6-80);

рабочий проект - РП (ГОСТ 23501.11-81);

внедрение - ВП (ГОСТ 23501.15-81).

Планирование стадий и содержания работ осуществляется в соответствии с методическими рекомендациями [14]. Ниже приведён перечень работ, выполняемых на всех стадиях разработки ПП (Таблица 5.1).

Таблица 5.1 - Состав работ и стадии разработки ПП

Стадии разработки

Перечень работ

1

2

Техническое задание

постановка задачи; подбор литературы; сбор исходных данных; определение требований к системе; определение стадий, этапов и сроков разработки ПП;

Эскизный проект

анализ программных средств схожей тематики; разработка общей структуры ПП; разработка структуры программы по подсистемам; документирование;

Технический проект

определение требований к ПП; выбор инструментальных средств. определение свойств и требований к аппаратному обеспечению;

Рабочий проект

программирование; тестирование и отладка ПП; разработка программной документации; согласование и утверждение программы и методики испытаний;

Внедрение

опытная эксплуатация; анализ данных полученных в результате эксплуатации; корректировка технической документации по результатам испытаний;


Трудоемкость разработки ПП на каждой из стадий определяется как сумма трудоемкостей входящих в них работ, оцениваемых экспертным путем в человеко-днях, и носит вероятностный характер, так как зависит от множества трудно учитываемых факторов.

При этом трудоемкость каждой отдельной работы определяется в соответствии с Методическими указаниями [16] по формуле:

(34)

Где tmin - минимально возможная трудоемкость выполнения данной работы в человеко-днях;- максимально возможная трудоемкость выполнения этой работы в человеко-днях.

Продолжительность каждой работы в календарных днях (Ti) определяется по формуле [16]:

(35)

где- трудоемкость работы, человек-дней;

Чi - численность исполнителей, человек;вых - коэффициент, учитывающий выходные и праздничные дни:

, (36)

гдекал - число календарных дней;раб - рабочие дни;

Для расчёта принимается среднее значение Kвых = 1,45.

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

Таблица 5.2 - Расчёт трудоёмкости и продолжительности работ по созданию программного продукта

№ работы

Наименование стадий и работ

Трудоемкость, человеко-дни

Количество исполнителей, чел.

Продолжительность, календарные дни



tmin

tmax

ti

Чi

Тi

1

2

3

4

5

6

7

Техническое задание

1.

Постановка задачи;

1

2

1,4

2

1,015

2.

Подбор литературы;

3

5

3,8

1

5,51

3.

Сбор исходных данных;

3

5

3,8

1

5,51

4.

Определение требований к системе;

1

2

1,4

2

1,015

5.

Определение стадий, этапов и сроков разработки ПП;

2

3

2,4

2

1,74

Эскизный проект

6.

Анализ программных средств схожей тематики;

3

4

3,4

1

4,93

7.

Разработка общей структуры ПП

3

4

3,4

1

4,93

8.

Разработка структуры программы по подсистемам;

4

6

4,8

2

3,48

9.

Документирование;

4

6

4,8

1

6,96

Технический проект

10.

Определение требований к ПП;

2

3

2,4

2

1,74

11.

Выбор языка программирования;

1

2

1,4

1

2,03

12.

Определение свойств и требований к аппаратному обеспечению;

1

2

1,4

1

2,03

Рабочий проект

13.

Дизайн проекта;

2

4

2,8

2

2,03

14.

Программирование;

27

24,6

1

35,67

15.

Тестирование и отладка ПП;

11

14

12,2

1

17,69

16.

Разработка программной документации;

5

7

5,8

1

8,41

17.

Согласование и утверждение программы и методики испытаний;

2

3

2,4

2

1,74

Внедрение

18.

Опытная эксплуатация;

5

7

5,8

1

8,41

19.

Анализ данных полученных в результате эксплуатации;

4

7

5,2

1

7,54

20

Корректировка технической документации по результатам испытаний;

2

4

2,8

1

4,06

Итого:



96


126,44


Таким образом, общая трудоёмкость разработки ПП составляет 96 человеко-дней, а их продолжительность - 126,44 календарных дней.

Построение ленточного графика разработки ПП

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

Ленточный график разработки ПП, построенный на основе данных таблицы 5.2 приведён на рисунке 5.1.

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

Рисунок 5.1 - Ленточный график разработки ПП

Расчет сметы затрат на разработку ПП

Сметная стоимость проектирования и внедрения программы включает в себя затраты, определяемые по формуле (37):

Спр=Сосн+Сдоп+Ссоц+См+Смаш.вр+Сн, (37)

где

Спр- стоимость разработки ПП;

См - затраты на используемые материалы;

Сосн - основная заработная плата исполнителей;

Сдоп - дополнительная заработная плата исполнителей, учитывающая потери времени на отпуска и болезни (принимается в среднем 10% от основной заработной платы);

Ссоц - единый социальный налог (ЕСН), представляющий собой отчисления во внебюджетные фонды государственного социального страхования (пенсионный фонд, фонд обязательного медицинского страхования, фонд социального страхования). Рассчитывается в соответствии с установленной ставкой ЕСН как 30,2% от основной и дополнительной заработной платы;

Сн - накладные расходы включают затраты на управление, уборку, ремонт, электроэнергию, отопление и другие хозяйственные расходы (принимаются в размере 60% от основной и дополнительной заработной платы);

Смаш.вр - стоимость машинного времени.

Основная заработная плата исполнителей

На статью «Заработная плата» относят заработную плату научных, инженерно-технических и других работников, непосредственно участвующих в разработке ПП. Расчёт ведётся по формуле (38):

Зисп=Зср*Т, (38)

где

Зисп - заработная плата исполнителей (руб.);

Зср - средняя дневная тарифная ставка работника организации разработчика ПП (руб./чел.дни);

Т - трудоёмкость разработки ПП (чел.дни).

Зср определяется по формуле (39):

Зср=С/Фмес, (39)

где: С - месячная зарплата работника (руб./мес.);

Фмес - среднее количество рабочих дней в месяце (21 дн.).

Расчёт затрат на основную заработную плату разработчиков ПП приведен в Таблица 5.3.

Таблица 5.3 - Затраты на заработную плату

Исполнитель

Оклад, руб./мес.

Оклад, руб./день

Трудоемкость, чел. дней

Сумма, руб.

1

2

3

4

5

6

2

Руководитель

30000

1428,57

8,8

12571,42

3

Инженер-программист

20000

952,38

87,2

83047,54


Итого Сосн

-

-

96

95618,96


Дополнительная заработная плата

Дополнительная заработная плата на период разработки ПП рассчитывается относительно основной и составляет 10% от её величины:

Сдоп=Сосн*0.1= 95618,96*0,1= 9561,9 руб.

Расчёт отчислений на социальное страхование

Отчисления на социальное страхование рассчитываются относительно выплаченной заработной платы (суммы основной и дополнительной заработной платы). Составляют 30,2% :

Ссоц=(Сдоп+Сосн)*0.302 (40)

Ссоц= (9561,9+95618,96)*0.302 = 105180,86*0,302= 31764,62 (руб.)

Расчёт расходов на материалы

На эту статью относят все затраты на магнитные носители данных, бумагу, для печатных устройств, канцтовары и др. Затраты по ним определяются по экспертным оценкам. Расчёт расходов на материалы приведён в Таблица 5.4.

Таблица 5.4 - Расчёт затрат на материалы

Материалы

Количество, штуки

Стоимость, рубли

1

2

3

4

2

Бумага писчая, листов

1000

550

3

Диски,шт

10

100

4

Другие канцтовары

-

2550


Итого См


3200


Накладные расходы

На статью «Накладные расходы» относят расходы, связанные с управлением и организацией работ. Накладные расходы рассчитываются относительно основной заработной платы. Величина накладных расходов принимается равной 60% от основной зарплаты исполнителей. Формула расчёта (41):

Сн=Сосн*К, (41)

где Сн - накладные расходы (руб.);

Сосн - основная заработная плата исполнителей (руб.);

К - коэффициент учёта накладных расходов (К=0,6).

Сн= 95618,96* 0.6 = 57371,38 (руб.)

Расчёт стоимости машинного времени

Включает затраты на машинное время, необходимое для разработки ПП, расходы на подготовку и приобретение материалов научно-технической информации, расходы на использование средств связи. Расчет затрат на машинное время осуществляется по формуле (42):

Смаш.вр=Кмаш.вр·Змаш.вр, (42)

где

Кмаш.вр - средняя стоимость одного часа машинного времени (Кмаш.вр=50 руб./час);

Змаш.вр - машинное время, используемое на проведение исследования.

Необходимое количество машинного времени для реализации проекта по разработке программы рассчитывается по формуле (43):

Змаш.вр=ti·Тсм·Тср.маш,, (43)

где- трудоёмкость работ, человек-дней;

Тсм - продолжительность рабочей смены (при пятидневной рабочей неделе Тсм=8 часов);

Тср.маш - средний коэффициент использования машинного времени (Тср.маш=0,7).

Тогда:

Змаш.вр=87,2·8·0,7= 488,32 (маш.час)

Стоимость машинного времени составит:

Смаш.вр=50·488,32= 24416 (руб.)

Результаты расчета затрат на проектирование программных средств представлены в Таблица 5.5.

Таблица 5.5 - Смета затрат на разработку и внедрение ПП

Наименование статей

Обозначение

Сумма, руб.

В % к итогу

1

2

3

4

5

1

Основная заработная плата

Сосн

95618,96

43

2

Дополнительная заработная плата

Сдоп

9561,9

4,3

3

Отчисления на социальные нужды

Ссоц

31764,62

14,31

4

Материалы

Смат

3200

1,44

5

Стоимость машинного времени

Смаш.вр

24416

11

6

Накладные расходы

Сн

57371,38

25,85


Итого:

Спр

221932,86

100


Таким образом, себестоимость разработки ПП составляет 221932,86 руб. Программа может быть реализована на рынке. При расчётном количестве реализованных программ - n, оптовая цена программы (Цопт) может быть рассчитана по формуле:

Цопт= Спр / n + Пi,

где:

Спр - себестоимость разработки программы; П - прибыль, определяется по формуле:

Пi=Yр * Спрi / n * 100,

где: Yр - средний уровень рентабельности, принимается Yр= 20%;

Таким образом, при среднем расчётном количестве реализованных программ n = 5 оптовая цена ПП составит:

Цопт =221932,86/5 + 0,2*(221932,86/5)= 44386,572+8877,3144=53263,89 (руб.)

Отпускная оптовая цена реализации программы потребителям должна включать налог на добавленную стоимость (НДС) и рассчитывается по формуле:

Цотп = Цопт + НДС,

где НДС - налог на добавленную стоимость, рассчитывается в соответствии с действующей ставкой этого налога - 18% от оптовой цены программы:

НДС= 53263,89 * 0,18= 9587,5 (руб.)

Цотп = 53263,89 + 9587,5 = 62851,39 (руб.)

Таким образом, отпускная цена программы составит 62851,39 руб., в том числе НДС - 9587,5 (руб.).

Расчет основных технико-экономических показателей и эффективности использования программного продукта

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

Основные технико-экономические показатели проведения исследования приведены в таблица 5.6.

Таблица 5.6 - Основные технико-экономические показатели проведения исследования

Наименование показателя

Единица измерения

Проектный вариант

1

2

3

Способ обработки информации

---

С применением ЭВМ и программных средств

Характеристики исследования:



Язык программирования

---

Borland Delphi 7.0

Использованные технические средства:



ПК

---

Intel Pentium IV - 1600

принтер

---

HP LaserJet 4050n

Количество исследователей

чел

1

Продолжительность проведения исследования

календар-ных дней

126,44

Трудоемкость проведения исследования

чел-дней

96

Затраты на проведение исследования

руб

221932,86

в том числе:



стоимость расходных материалов

руб

3200

основная заработная плата

руб

95618,96

дополнительная заработная плата

руб

9561,9

отчисления на социальные нужды

руб

31764,62

накладные расходы

руб

57371,38

стоимость машинного времени

руб

24416


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

Трудоемкость разработки, согласно расчетам, составит 96 человеко-дней, продлится 126,44 календарных дня, а затраты на нее составят 221932,86 рублей.

6. Другие разделы проекта

.1 Руководство пользователя

Разработанное программное обеспечение отлажено и протестировано. При запуске серверной части, открывается основное окно программы (Рисунок 6.1).

Рисунок 6.1 - Главное окно серверной части программы

Для работы сервера, необходимо запустить его, нажав кнопку «Старт». После нажатия кнопки в правом окне появится сообщение об успешном старте сервера (Рисунок 6.2).

Рисунок 6.2 - Результат нажатия кнопки старт

Само по себе нажатие кнопки старт не даёт гарантии, что сервер работает, поэтому необходимо проверить связь, подключившись к серверу с клиента. Для проверки достаточно запустить клиент на том же компьютере что и сервер и использовать в качестве адреса для подключения локальный адрес 127.0.0.1 или «localhost». После запуска клиентской части, открывается основное окно программы (Рисунок 6.3).

Рисунок 6.3 - Главное окно клиентской части программы

Для связи с сервером нужно указать IP адрес и порт сервера и нажать кнопку «Заявка», после чего, в случае успешной установки связи, программа выдаст соответствующее короткое сообщение (Рисунок 6.4).

Рисунок 6.4 - Результат нажатия кнопки «Заявка»

На серверной части, в свою очередь, подключенный клиент добавится в список клиентов в левой верхней части программы и добавится соответствующее сообщение в правом окне лога (Рисунок 6.5).

Рисунок 6.5 - Результат успешного подключения клиента

Таким образом, связь между клиентом и сервером исправно работает. Теперь необходимо проверить связь с оборудованием. Для проверки связи можно отправить аппарату запрос кода ошибки, на который аппарат должен ответить кодом ошибки и его расшифровкой. Для этого достаточно выбрать клиента, отправить ему «запрос ошибки» с сервера и, при успешном выполнении команды, получить ответ (Рисунок 6.6).

Рисунок 6.6 - Результат запроса кода ошибки

По результатам проделанного анализа можно сделать вывод, что основные функции программного обеспечения работают исправно. Проведем анализ дополнительных функций. Для проверки возможности снятия дампа памяти, нужно открыть соответствующее окно серверной части программы, выбрав клиента и нажав на кнопку «Данные ККМ» (Рисунок 6.7).

Рисунок 6.7 - Окно «Данные ККМ»

В открывшемся окне для запроса блоков дампа нужно выбрать устройство считывания информации и нажать «Запрос дампа», ФР на клиенте вернет количество блоков данных выбранного устройства. Затем нужно нажимать кнопку «Получить данные», чтобы последовательно, блок за блоком, ФР возвращал данные на сервер (Рисунок 6.8).

Рисунок 6.8 - Результат запроса данных от ФР

Для отмены последовательной выдачи данных, необходимо нажать кнопку «Прервать выдачу данных». Далее, проверим возможность считывания и редактирования таблиц ФР, для этого вернемся к основному окну программы, выберем клиента и нажмем соответствующую кнопку «Таблицы» (Рисунок 6.9).

Рисунок 6.9 - Окно таблиц ФР

Для просмотра данных таблиц ФР нужно выбрать номер таблицы и нажать кнопку «Получить структуру таблицы». Для просмотра структуры полей нужно выбрать номер поля и нажать кнопку «Получить структуру поля». Для чтения конкретного значения таблицы нужно выбрать номер ряда и нажать кнопку «Прочитать таблицу» (Рисунок 6.10).

Рисунок 6.10 - Результат чтения данных таблиц

Для изменения данных и записи значений в таблицу нужно написать необходимое значение в соответствующей строке и нажать кнопку «Записать таблицу». Для проверки записи данных можно снова нажать кнопку «Прочитать таблицу» (Рисунок 6.11).

Рисунок 6.11 - Результат записи данных в таблицу

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

.2 Руководство программиста

Для дальнейшего развития программного обеспечения, возможно добавление дополнительных функций в виде набора команд и запросов с ФР. Весь список команд нижнего уровня доступен в спецификации на оборудование [6], а список методов и их свойств в руководстве программиста [5].

Для связи с оборудованием использовался драйвер предоставляемый поставщиком оборудования. Драйвер подключен в программе в виде OLE-объекта. Метод связи описан в блоке untDriver. Функция поключения к устройству через драйвер описана глобально и доступна из любой части проекта. Таким образом, возможно добавление методов в любой части программы.

Для удаленной связи сервера с клиентом используются «сокеты»(socket). Для упрошения работы с «сокетами» используются компоненты среды TClientSocket для клиентской части приложения и TServerSocket для серверной части. Принцип функционирования данных компонент простой. Серверу достаточно указать рабочий порт в свойстве port и запустить его, присвоив свойству active значение true. Аналогичным образом работает клиентская часть. В ней нужно указать IP адрес сервера свойством address, и порт свойством port. Для связи с сервером необходимо вызвать процедуру open, либо процедуру connect.

Команды для ФР передаются с сервера клиенту в виде символов. На сервере специалист выбирает необходимую ему команду и нажимает кнопку «отправить», на клиенте принимается сообщение от сервера и обрабатывается первый символ сообщения, после чего обрезается от сообщения. Этот символ проходит ряд проверок, и, при успешной проверке, выполняется блок команд под соответствующим оператором условия.

6.3 Руководство системного администратора

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

Основные системные требования:

процессор - Intel Pentium 4 2,8 ГГц;

объем оперативной памяти - 512 Мбайт;

Мб свободного места на жестком диске

сетевой контроллер или модем;

подключение к сети Internet

скорость подключения к Internet не менее 64Кбит/сек

разрешение экрана 1024х768;

операционная система - Microsoft Windows XP или выше;

драйвер ККМ (drvfr.dll)

Установка и запуск программного обеспечения:

Перед началом установки необходимо зарегистрировать библиотеку в реестре windows. Для этого необходимо скопировать файл «drvfr.dll» в папку «windows/system32», запустить командную строку и выполнить команду «regsvr32 drvfr.dll».

Для установки программы необходимо скопировать с компакт диска файл «ClientCTO.exe» на компьютер клиента, а файл «ServerCTO.exe» на компьютер сервисного центра. Для запуска программы необходимо дважды кликнуть на соответствующий значок программы.

7. Научная новизна и практическая значимость проекта

программный обеспечение руководство регистратор

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

Заключение

В рамках данного дипломного проекта были решены поставленные задачи:

Исследована предметная область.

Собраны и структурированы основные характеристики и особенности предметной области.

Рассмотрены существующие методы решения поставленной задачи.

Выработан наиболее эффективный метод решения задачи.

Разработана математическая модель рассматриваемой системы.

Разработано и отлажено программное обеспечение.

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

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


Список использованных источников

1.     Закон РФ от 18.06.1993 № 5215-1 "О применении контрольно-кассовых машин при осуществлении денежных расчетов с населением".

2.      Вентцель Е. С. - Исследование операций. - М., «Советское радио», 1972, 552 с.

.        Костевич Л.С., Лапко А.А. - Исследование операций. Теория игр. - Минск., «Вышэйшая школа», 2009, 232 с.

.        Олифер В.Г, Олифер Н.А. - Компьютерные сети издание 4., Санкт Петербург, 2010, 943 с.

.        «Штрих-М: Драйвер ФР» Руководство программиста - НТЦ «Штрих-М», 2005, 269 с.

.        Протокол работы ФР. Спецификация - НТЦ «Штрих-М», 2005, 74 с.

.        Гун Г.Е. Компьютер: как сохранить здоровье. Рекомендации для детей и взрослых - М.О.: Olma Media Group, 2003. - 127с.

.        СанПиН 2.2.2./2.4.1340-03. Гигиенические требования к персональным электронно-вычислительным машинам и организации работы.

.        Гетия С.И. Основы безопасности труда: учебное пособие. - М.: МГУПИ, 2008. 110 с.

.        ГОСТ 12.1.003-90 «ССБТ. Шум. Общие требования безопасности».

.        Гетия И.Г., Шумилин В.К., Леонтьева И.Н. и др. Экология компьютерной техники: - Москва: МГАПИ, 1996г.

.        СНиП 2.01.28-85 Полигоны по обезвреживанию и захоронению токсичных промышленных отходов.

.        «Методические указания по выполнению курсовой работы для студентов специальности 22.01.05 на тему «Организация, планирование и управление предприятием машиностроительной промышленности», М., МГАПИ, 2003.

.        Чаплыгин В.А. Организационно-экономический раздел дипломных работ научно-исследовательского характера. М., МГАПИ. 2010.

.        Методические указания по сбору материалов на преддипломной практике и выполнению организационно-экономического раздела дипломных проектов. М., МГАПИ, 2009.

.        Капелюш Г.С., Шестоперов С.Б. Технико-экономическое обоснование дипломных проектов по созданию программных средств вычислительной техники и информатики. Учебное пособие для студентов специальности 22.01. - М., МГАПИ, 2001.

.        «Сетевые графики и планирование», учебное пособие, Н.И. Новицкий, М., Высшая школа, 2004.

.        Прайс-лист Интернет-магазин «НОМУС», 04.12.2012.

.        Прайс-лист Интернет-магазин «Deloks», 04.12.2012.

Приложение А

Листинг программы

СерверStrToHex(const S: string): string;: Integer;:= '';i := 1 to Length(S) do:= Result + IntToHex(Ord(S[i]), 2) + ' ';;TServerForm.buttons(Value: Boolean);Value then.Enabled := True;.Enabled := True;.Enabled := True;.btnGetTableStruct.Enabled := True;.btnGetFieldStruct.Enabled := True;.btnReadTable.Enabled := True;.btnWriteTable.Enabled := True;.btnDampRequest.Enabled := True;.btnGetData.Enabled := True;.btnInterruptDataStream.Enabled := True;.btnGetOperationReg.Enabled := True;.btnGetCashReg.Enabled := True;.Enabled := False;.Enabled := False;.Enabled := False;.btnGetTableStruct.Enabled := False;.btnGetFieldStruct.Enabled := False;.btnReadTable.Enabled := False;.btnWriteTable.Enabled := False;.btnDampRequest.Enabled := False;.btnGetData.Enabled := False;.btnInterruptDataStream.Enabled := False;.btnGetOperationReg.Enabled := False;.btnGetCashReg.Enabled := False;;;TServerForm.FormCreate(Sender: TObject);:= 0;.Enabled := False;.Lines.Add('[' + TimeToStr(Now) + ']: Программа запущена');;TServerForm.BtnSendClick(Sender: TObject);ListBox1.ItemIndex >= 0 thenComboBox2.ItemIndex = 8 then.Socket.Connections[ListBox1.ItemIndex].SendText(IntToStr(ComboBox2.ItemIndex) + edit1.Text);(False);;;ComboBox2.ItemIndex = 9 then.Socket.Connections[ListBox1.ItemIndex].SendText(IntToStr(ComboBox2.ItemIndex) + edit1.Text);;;.Socket.Connections[ListBox1.ItemIndex].SendText(IntToStr(ComboBox2.ItemIndex));(False);('Не выбран клиент');;TServerForm.BtnStartClick(Sender: TObject);ServerSocket1.Active = False then.Port := StrToInt(SettingsForm.edit3.Text);.Active := True;.Caption := 'Стоп';.Enabled := True;.Lines.Add('[' + TimeToStr(Now) + ']: Сервер запущен.');.Active := False;.Caption := 'Старт';.Clear;.Enabled := False;.Lines.Add('[' + TimeToStr(Now) + ']: Сервер остановлен.');;;TServerForm.ServerSocket1ClientRead(Sender: TObject;: TCustomWinSocket);: string;:= Socket.ReceiveText;:= StrToInt(smessage[1]);(sMessage, 1, 1);.Open;f = 1 thennot VarIsNull(DataSource1.DataSet.Lookup('ip',.Socket.Connections[ListBox1.ItemIndex].RemoteAddress, 'nam')).Lines.Add('[' + TimeToStr(Now) + ']:[' +.DataSet.Lookup('ip',.Socket.Connections[ListBox1.ItemIndex].RemoteAddress, 'nam')

+ '] - ' + sMessage).Lines.Add('[' + TimeToStr(Now) + ']:[' +.Socket.Connections[ListBox1.ItemIndex].RemoteAddress + '] - '

+ sMessage);;f = 2 then.Lines.Add(sMessage);;f = 3 then.edtBlockCount.Text := sMessage;;f = 4 then.Memo.Clear;.edtBlockNumber.Text := sMessage[1] + sMessage[2] + sMessage[3] +[4];(sMessage, 1, 4);.Memo.Text := sMessage;;f = 5 then.edtRegContent.Text := sMessage[Length(sMessage)];(sMessage, Length(sMessage), 1);.edtRegName.Text := sMessage;;f = 6 then.Memo.Lines.Add(sMessage);;f = 7 then.Memo.Lines.Add(sMessage);;f = 8 then.Memo.Lines.Add(sMessage);.edtValue.Text :=.Memo.Lines.Strings[TablesForm.Memo.Lines.count - 1];.Memo.Lines.Delete(TablesForm.Memo.Lines.Count - 1);;f = 9 then.Memo.Lines.Add(sMessage);.edtValue.Text :=.Memo.Lines.Strings[TablesForm.Memo.Lines.count - 1];.Memo.Lines.Delete(TablesForm.Memo.Lines.Count - 1);;(True);;TServerForm.ServerSocket1ClientError(Sender: TObject;: TCustomWinSocket; ErrorEvent: TErrorEvent;ErrorCode: Integer);('Ошибка #' + IntToStr(ErrorCode));:= 0;;TServerForm.listboxupdate;: Integer;.Clear;.Open;i := 0 to ServerSocket1.Socket.ActiveConnections - 1 donot VarIsNull(DataSource1.DataSet.Lookup('ip',.Socket.Connections[i].RemoteAddress, 'nam')) then.Items.Add(IntToStr(i + 1) + ': ' +.DataSet.Lookup('ip',.Socket.Connections[i].RemoteAddress, 'nam')).Items.Add(IntToStr(i + 1) + ': ' +.Socket.Connections[i].RemoteAddress);;.Close;;TServerForm.ServerSocket1ClientConnect(Sender: TObject;: TCustomWinSocket);.Open;not VarIsNull(DataSource1.DataSet.Lookup('ip', Socket.RemoteHost, 'nam')).Lines.Add('[' + TimeToStr(Now) + ']: Клиент "' +.DataSet.Lookup('ip', Socket.RemoteHost, 'nam') +

'" присоединился').Lines.Add('[' + TimeToStr(Now) + ']: Клиент "' + Socket.RemoteHost +

'" присоединился');.Close;;;TServerForm.ServerSocket1ClientDisconnect(Sender: TObject;: TCustomWinSocket);.Open;not VarIsNull(DataSource1.DataSet.Lookup('ip', Socket.RemoteHost, 'nam')).Lines.Add('[' + TimeToStr(Now) + ']: Клиент "' +.DataSet.Lookup('ip', Socket.RemoteHost, 'nam') + '" отключился').Lines.Add('[' + TimeToStr(Now) + ']: Клиент "' + Socket.RemoteHost +

'" отключился');.Close;.Enabled := True;(True);;TServerForm.BtnDisconClick(Sender: TObject);ListBox1.ItemIndex > -1 then.Socket.Connections[ListBox1.ItemIndex].Close;;;TServerForm.ServerSocket1GetSocket(Sender: TObject; Socket: Integer;ClientSocket: TServerClientWinSocket);: integer;.Clear;;TServerForm.FormClose(Sender: TObject; var Action: TCloseAction);.Close;.ADODataSet1.Close;;TServerForm.N6Click(Sender: TObject);.Terminate;;TServerForm.N2Click(Sender: TObject);.Show;;TServerForm.BtnClearLogClick(Sender: TObject);MessageDlg('Очистить лог?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then.Clear;;SaveToFile(str: string; loc: string);: TextFile;: string;:= loc;(f, FileDir);not FileExists(FileDir) then(f);(f);;(f);(f, str);(f);(f);;TServerForm.BtnSaveLogClick(Sender: TObject);: TSaveDialog;:= TSaveDialog.Create(self);.Title := 'Сохранение логов';.InitialDir := GetCurrentDir;.Filter := 'Text file|*.txt|Word file|*.doc';.DefaultExt := 'txt';.FilterIndex := 1;saveDialog.Execute then(memo1.lines.Text, saveDialog.FileName)('Сохранение отменено');.Free;;TServerForm.N3Click(Sender: TObject);.Close;.Show;;TServerForm.FormHide(Sender: TObject);.Close;;TServerForm.BtnDumpClick(Sender: TObject);ListBox1.ItemIndex >= 0 then.Show;:= ListBox1.ItemIndex;('Не выбран клиент');;TServerForm.Timer1Timer(Sender: TObject);;.Enabled := false;;TServerForm.BtnTablesClick(Sender: TObject);ListBox1.ItemIndex >= 0 then.Show;:= ListBox1.ItemIndex;('Не выбран клиент');;TServerForm.N4Click(Sender: TObject);.ShowModal;;TServerForm.FormShow(Sender: TObject);.ItemIndex := 0;;TServerForm.ComboBox2Change(Sender: TObject);(ComboBox2.ItemIndex = 8) or (ComboBox2.ItemIndex = 9) then.Enabled := True.Enabled := False;;.TDumpForm.btnDampRequestClick(Sender: TObject);.ServerSocket1.Socket.Connections[n].SendText('a' +(cbDeviceCode.ItemIndex + 1));.buttons(False);;TDumpForm.btnInterruptDataStreamClick(Sender: TObject);.ServerSocket1.Socket.Connections[n].SendText('b');;TDumpForm.btnGetDataClick(Sender: TObject);.ServerSocket1.Socket.Connections[n].SendText('c');.buttons(False);;TDumpForm.btnGetOperationRegClick(Sender: TObject);.ServerSocket1.Socket.Connections[n].SendText('d' +.Text);.buttons(False);;TDumpForm.btnGetCashRegClick(Sender: TObject);.ServerSocket1.Socket.Connections[n].SendText('e' +.Text);.buttons(False);;TDumpForm.FormShow(Sender: TObject);.ItemIndex := 0;;.TTablesForm.btnGetTableStructClick(Sender: TObject);Length(SpinEdit1.Text) = 1 then:= '0' + SpinEdit1.Text;Length(SpinEdit1.Text) = 2 then:= SpinEdit1.Text;.Clear;.ServerSocket1.Socket.Connections[m].SendText('f' + a);.buttons(False);;TTablesForm.btnGetFieldStructClick(Sender: TObject);Length(SpinEdit1.Text) = 1 then:= '0' + SpinEdit1.Text:= SpinEdit1.Text;Length(SpinEdit3.Text) = 1 then:= '0' + spinedit3.text:= SpinEdit3.Text;.Clear;.ServerSocket1.Socket.Connections[m].SendText('g' + a + b);.buttons(False);;TTablesForm.btnReadTableClick(Sender: TObject);Length(SpinEdit1.Text) = 1 then:= '0' + SpinEdit1.Text:= SpinEdit1.Text;Length(SpinEdit2.Text) = 1 then:= '0' + SpinEdit2.Text:= SpinEdit2.Text;Length(SpinEdit3.Text) = 1 then:= '0' + spinedit3.text:= SpinEdit3.Text;.Clear;.ServerSocket1.Socket.Connections[m].SendText('h' + a + b + c);.buttons(False);;TTablesForm.btnWriteTableClick(Sender: TObject);Length(SpinEdit1.Text) = 1 then:= '0' + SpinEdit1.Text:= SpinEdit1.Text;Length(SpinEdit2.Text) = 1 then:= '0' + SpinEdit2.Text:= SpinEdit2.Text;Length(SpinEdit3.Text) = 1 then:= '0' + spinedit3.text:= SpinEdit3.Text;.Clear;.ServerSocket1.Socket.Connections[m].SendText('i' + a + b + c +.Text);;.

Клиент:TClientForm.FormCreate(Sender: TObject);.Password := StrToInt(Edit1.Text);.ItemIndex := Driver.ComNumber - 1;.ItemIndex := Driver.BaudRate;.Text := IntToStr(Driver.Timeout);.onMinimize := OnMinimizeProc;;TClientForm.FormClose(Sender: TObject; var Action: TCloseAction);.Disconnect;;reccom(a: byte): string;.Password := DriverManager.Password;.ComNumber := 4;.BaudRate := 3;.Timeout := 100;.Connect;a = 1 then.PrintBarCode;:= IntToStr(Driver.Resultcode) + ' : ' + driver.ResultCodeDescription:= 'none';;TClientForm.BtnClaimClick(Sender: TObject);, Port: Integer;.ComNumber := ComboBox1.ItemIndex + 1;.BaudRate := ComboBox2.ItemIndex;Driver.connect <> 0 then('Нет связи с ФР');.Panels[0].Text := 'Состояние: Нет связи с ФР';TryStrToInt(Edit5.Text, port) then.Port := StrToInt(edit5.text)

else('Номер порта должен быть числом');

Exit;;.Address := edit4.text;.Open;.Enabled := True;

except('Сервер не доступен, попробуйте позже');

end;;TClientForm.ClientSocket1Connect(Sender: TObject;: TCustomWinSocket);('Заявка отправлена, ожидайте результатов диагностики');.Enabled := False;.Panels[1].Text := 'Связь установлена';;TClientForm.ClientSocket1Disconnect(Sender: TObject;: TCustomWinSocket);('Связь разорвана');.Enabled := True;.Panels[1].Text := 'Связь разорвана';;TClientForm.StartRead;.Password := DriverManager.Password;.DeviceCode := StrToInt(t[2]);Driver.DampRequest = 0 then:= Driver.DataBlockNumber;:= False;;;.Socket.SendText('2' + FDump);;;TClientForm.ClientSocket1Read(Sender: TObject;: TCustomWinSocket);: Integer;: string;:= Socket.ReceiveText;t[1] = 'a' then.Password := DriverManager.Password;.DeviceCode := StrToInt(t[2]);Driver.DampRequest = 0 then.Socket.SendText('3' + IntToStr(Driver.DataBlockNumber)).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t = '0' then.beep;.Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t = '1' then.Password := DriverManager.Password;Driver.GetECRStatus = 0 then.Socket.SendText('1' + #13#10 + 'Дата ФР: ' +(Driver.Date) + ' Время ФР: ' + TimeToStr(Driver.Time) + #13#10 +

'Дата ПК: ' + dateToStr(Now) + ' Время ПК: ' + TimeToStr(Now)).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t = '2' then.Password := DriverManager.Password;Driver.GetECRStatus = 0 then.Socket.SendText('1' + 'Рулон чековой ленты ' +(1, Driver)).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t = '3' then.Password := DriverManager.Password;Driver.GetECRStatus = 0 then.Socket.SendText('1' + 'Режим ФР: ' + IntToStr(Driver.ECRMode)

+ ' ' + Driver.ECRModeDescription).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t = '4' then.Password := DriverManager.Password;Driver.GetShortECRStatus = 0 then.Socket.SendText('1' + 'Напряжение батареи: ' +(Driver.BatteryVoltage)).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t = '5' then.Password := DriverManager.Password;Driver.GetShortECRStatus = 0 then.Socket.SendText('1' + 'Напряжение ист. питания: ' +(Driver.PowerSourceVoltage)).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t = '6' then.Password := DriverManager.Password;Driver.GetECRStatus = 0 then.Socket.SendText('1' + 'ЭКЛЗ почти заполнена ' +(14, Driver)).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t = '7' then.Password := DriverManager.Password;Driver.GetECRStatus = 0 then.Socket.SendText('1' + 'Переполнение ФП ' + FMFlagsToStr(3,)).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t[1] = '8' then(t, 1, 1);TryStrToInt(t, pas) then.Password := StrToInt(t);.Password := DriverManager.Password;Driver.GetECRStatus = 0 then.Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : '

+ driver.ResultCodeDescription).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : '

+ driver.ResultCodeDescription);;;t[1] = '9' then(t, 1, 1);(t);;t = 'b' then.Password := DriverManager.Password;.InterruptDataStream;;t = 'c' then.Password := DriverManager.Password;Driver.GetData = 0 then:= IntToStr(Driver.DataBlockNumber);Length(b) = 1 then.Socket.SendText('4000' + IntToStr(Driver.DataBlockNumber)

+ StrToHex(Driver.DataBlock));Length(b) = 2 then.Socket.SendText('400' + IntToStr(Driver.DataBlockNumber) +(Driver.DataBlock));Length(b) = 3 then.Socket.SendText('40' + IntToStr(Driver.DataBlockNumber) +(Driver.DataBlock));Length(b) = 4 then.Socket.SendText('4' + IntToStr(Driver.DataBlockNumber) +(Driver.DataBlock)).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t[1] = 'd' then.Password := DriverManager.Password;.RegisterNumber := t[2];Driver.GetOperationReg = 0 then.Socket.SendText('5' + Driver.NameOperationReg +(Driver.ContentsOfOperationRegister)).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t[1] = 'e' then.Password := DriverManager.Password;.RegisterNumber := t[2];Driver.GetOperationReg = 0 then.Socket.SendText('5' + Driver.NameCashReg +(Driver.ContentsOfCashRegister)).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t[1] = 'f' then.Password := DriverManager.Password;.TableNumber := StrToInt(t[2] + t[3]);Driver.GetTableStruct = 0 then.Socket.SendText('6' + 'Название таблицы: ' + Driver.TableName

+ #13#10 + 'Кол-во рядов: ' + IntToStr(Driver.RowNumber) + #13#10 +

'Кол-во полей: ' + IntToStr(Driver.FieldNumber)).Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t[1] = 'g' then.Password := DriverManager.Password;.TableNumber := StrToInt(t[2] + t[3]);.FieldNumber := StrToInt(t[4] + t[5]);Driver.GetFieldStruct = 0 thenDriver.FieldType then.Socket.SendText('7' + 'Название поля: ' + Driver.FieldName

+ #13#10 + 'Тип поля: строка' + #13#10 + 'Размер поля: ' +

IntToStr(Driver.FieldSize));;not Driver.FieldType then.Socket.SendText('7' + 'Название поля: ' + Driver.FieldName

+ #13#10 + 'Тип поля: число' + #13#10 + 'Размер поля: ' +

IntToStr(Driver.FieldSize) + #13#10 + 'Мин. значение: ' +(Driver.MINValueOfField) + #13#10 + 'Макс. значение: ' +(Driver.MaxValueOfField));;.Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t[1] = 'h' then.Password := DriverManager.Password;.TableNumber := StrToInt(t[2] + t[3]);.FieldNumber := StrToInt(t[6] + t[7]);.RowNumber := StrToInt(t[4] + t[5]);Driver.ReadTable = 0 thenDriver.FieldType then.Socket.SendText('8' + 'Название поля: ' + Driver.FieldName

+ #13#10 + 'Тип поля: строка' + #13#10 + 'Размер поля: ' +

IntToStr(Driver.FieldSize) + #13#10 + Driver.ValueOfFieldString);;not Driver.FieldType then.Socket.SendText('8' + 'Название поля: ' + Driver.FieldName

+ #13#10 + 'Тип поля: число' + #13#10 + 'Размер поля: ' +

IntToStr(Driver.FieldSize) + #13#10 + 'Мин. значение: ' +(Driver.MINValueOfField) + #13#10 + 'Макс. значение: ' +(Driver.MaxValueOfField) + #13#10 +(Driver.ValueOfFieldInteger));;.Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;t[1] = 'i' then.Password := DriverManager.Password;.TableNumber := StrToInt(t[2] + t[3]);.FieldNumber := StrToInt(t[6] + t[7]);.RowNumber := StrToInt(t[4] + t[5]);(t, 1, 7);.ValueOfFieldString := t;Driver.WriteTable = 0 thenDriver.FieldType then.Socket.SendText('9' + 'Название поля: ' + Driver.FieldName

+ #13#10 + 'Тип поля: строка' + #13#10 + 'Размер поля: ' +

IntToStr(Driver.FieldSize) + #13#10 + Driver.ValueOfFieldString);;not Driver.FieldType then.Socket.SendText('9' + 'Название поля: ' + Driver.FieldName

+ #13#10 + 'Тип поля: число' + #13#10 + 'Размер поля: ' +

IntToStr(Driver.FieldSize) + #13#10 + 'Мин. значение: ' +(Driver.MINValueOfField) + #13#10 + 'Макс. значение: ' +(Driver.MaxValueOfField) + #13#10 +(Driver.ValueOfFieldInteger));;.Socket.SendText('1' + IntToStr(Driver.Resultcode) + ' : ' +.ResultCodeDescription);;;TClientForm.ReadData;: string;: Integer;: Integer;: string;:= '';:= 0;:= False;i := 1 to FCount doFStopFlag then;:= Driver.GetData;ResultCode = 0 then:= FDump + Driver.DataBlock;:= Driver.ResultCode;:= Driver.ResultCodeDescription;:= Format('Ошибка ККМ %d: %s'#13#10'Продолжить?',

[ResultCode, ResultCodeDescription]);MessageBox(Handle, PChar(S), PChar(Application.Title),_ICONEXCLAMATION or MB_OKCANCEL) = ID_CANCEL then;;.ProcessMessages;;ResultCode = 0 then.InterruptDataStream;E: Exception do.ShowException(E);;;TClientForm.ClientSocket1Error(Sender: TObject;: TCustomWinSocket; ErrorEvent: TErrorEvent;ErrorCode: Integer);ErrorCode = 10061 then('Сервер не доступен, попробуйте позже');:= 0;

StatusBar1.Panels[1].Text := 'Связь с сервером отсутствует';

end;TClientForm.BtnConClick(Sender: TObject);, pas, tim: Integer;.Panels[0].Text := '';TryStrToInt(Edit1.Text, pas) then.Password := pas('Пароль должен быть числом');;;.ComNumber := ComboBox1.ItemIndex + 1;.BaudRate := ComboBox2.ItemIndex;TryStrToInt(Edit2.Text, tim) then.Timeout := tim('Таймаут должен быть числом');;;Driver.Connect <> 0 then

StatusBar1.Panels[0].Text := 'Состояние: Нет связи с ФР'

else.GetDeviceMetrics;.Panels[0].Text := 'Состояние: ' + Driver.UDescription;;.Panels[0].Text := 'Состояние: Нет связи с ФР';;;TClientForm.Ic(n: Integer; Icon: TIcon);: TNotifyIconData;Nim do:= SizeOf(Nim);:= ClientForm.Handle;:= 1;:= NIF_ICON or NIF_MESSAGE or NIF_TIP;:= Icon.Handle;:= wm_user + 1;

szTip := 'Подать заявку на неисправность';

end;n of

: Shell_NotifyIcon(Nim_Add, @Nim);

: Shell_NotifyIcon(Nim_Delete, @Nim);

: Shell_NotifyIcon(Nim_Modify, @Nim);;;TClientForm.ControlWindow(var Msg: TMessage);Msg.WParam = SC_MINIMIZE then(1, Application.Icon);(Handle, SW_HIDE);(Application.Handle, SW_HIDE);;;TClientForm.OnMinimizeProc(Sender: TObject);(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);;TClientForm.IconMouse(var Msg: TMessage);: tpoint;(p);Msg.LParam of_LBUTTONUP, WM_LBUTTONDBLCLK:(2, Application.Icon);(Application.Handle, SW_SHOW);(Handle, SW_SHOW);;_RBUTTONUP:(Handle);.Popup(p.X, p.Y);(Handle, WM_NULL, 0, 0);;;;TClientForm.N3Click(Sender: TObject);(2, Application.Icon);(Application.Handle, SW_SHOW);(Handle, SW_SHOW);.Terminate;;TClientForm.N1Click(Sender: TObject);(2, Application.Icon);(Application.Handle, SW_SHOW);(Handle, SW_SHOW);;TClientForm.BtnExitClick(Sender: TObject);.Terminate;;TClientForm.Timer1Timer(Sender: TObject);.Password := DriverManager.Password;.GetDeviceMetrics;.Socket.SendText('2' + 'Модель ФР: ' + Driver.UDescription +

#13#10 + edit3.Text);.Enabled := False;;TClientForm.CheckBox1Click(Sender: TObject);CheckBox1.Checked then.Enabled := True;.Enabled := True;.Enabled := True;.Enabled := True;.Enabled := True;.Enabled := True;.Enabled := false;.Enabled := false;.Enabled := false;.Enabled := false;.Enabled := false;.Enabled := false;;;.StrToHex(const S: string): string;: Integer;:= '';i := 1 to Length(S) do:= Result + IntToHex(Ord(S[i]), 2) + ' ';;HexToStr(const S: string): string;HexStrToChar(const Value: string): Char;Length(Value) in [1..2] then:= Chr(StrToInt('$' + Value))Exception.Create('Недопустимый символ в строке');;: string;: string;: Integer;:= Trim(S) + ' ';:= '';:= Pos(' ', Data);Index > 0 do:= Copy(Data, 1, Index - 1);:= Copy(Data, Index + 1, Length(Data));:= Result + HexStrToChar(Digit);:= Pos(' ', Data);;;GetINN(const S: string): string;:= S;Result = '' then:= 'не задан';GetRNM(const S: string): string;:= S;Result = '' then:= 'не задан';GetLicense(const S: string): string;:= S;Result = '' then:= 'не введена';GetSerialNumber(const S: string): string;:= S;Result = '' then:= 'не введен';ECRFlagsToStr(NBits: Integer; Driver: OleVariant): string;: array[0..15, False..True] of string = (

('<нет>', '<есть>'),

('<нет>', '<есть>'),

('<нет>', '<есть>'),

('<нет>', '<есть>'),

('<0 знаков>', '<2 знака>'),

('<нет>', '<есть>'),

('<нет>', '<есть>'),

('<нет>', '<есть>'),

('<поднят>', '<опущен>'),

('<поднят>', '<опущен>'),

('<опущена>', '<поднята>'),

('<закрыт>', '<открыт>'),

('<нет>', '<есть>'),

('<нет>', '<есть>'),

('<нет>', '<да>'),

('<6 знаков>', '<3 знака>'));

beginNBits of

: Result := BitStr[0, Boolean(Driver.JournalRibbonIsPresent)];

: Result := BitStr[1, Boolean(Driver.ReceiptRibbonIsPresent)];

: Result := BitStr[3, Boolean(Driver.SlipDocumentIsMoving)];

: Result := BitStr[2, Boolean(Driver.SlipDocumentIsPresent)];

: Result := BitStr[4, Boolean(Driver.PointPosition)];

: Result := BitStr[5, Boolean(Driver.EKLZIsPresent)];

: Result := BitStr[6, Boolean(Driver.JournalRibbonOpticalSensor)];

: Result := BitStr[7, Boolean(Driver.ReceiptRibbonOpticalSensor)];

: Result := BitStr[8, Boolean(Driver.JournalRibbonLever)];

: Result := BitStr[9, Boolean(Driver.ReceiptRibbonLever)];

: Result := BitStr[10, Boolean(Driver.LidPositionSensor)];

: Result := BitStr[11, Boolean(Driver.isDrawerOpen)];

: Result := BitStr[12, Boolean(Driver.isPrinterRightSensorFailure)];

: Result := BitStr[13, Boolean(Driver.isPrinterLeftSensorFailure)];

: Result := BitStr[14, Boolean(Driver.IsEKLZOverflow)];

: Result := BitStr[15, Boolean(Driver.QuantityPointPosition)];

else:= 'Неправильный номер бита';

end;;FMFlagsToStr(NBits: Integer; Driver: OleVariant): string;: array[0..7, False..True] of string = (

('<нет>', '<есть>'),

('<нет>', '<есть>'),

('<не введена>', '<введена>'),

('<нет>', '<есть>'),

('< <80% >', '< >80% >'),

('<корректна>', '<повреждена>'),

('<закрыта>', '<открыта>'),

('<не кончились>', '<кончились>')

);NBits of

: Result := BitStr[0, Boolean(Driver.FM1IsPresent)];

: Result := BitStr[1, Boolean(Driver.FM2IsPresent)];

: Result := BitStr[2, Boolean(Driver.LicenseIsPresent)];

: Result := BitStr[3, Boolean(Driver.FMOverflow)];

: Result := BitStr[4, Boolean(Driver.IsBatteryLow)];

: Result := BitStr[5, Boolean(Driver.IsLastFMRecordCorrupted)];

: Result := BitStr[6, Boolean(Driver.IsFMSessionOpen)];

: Result := BitStr[7, Boolean(Driver.IsFM24HoursOver)];

else:= 'Неправильный номер бита';

end;;ConfirmFiscalization(Wnd: THandle): Boolean;

var: string;:= 'Фискализацию аппарата нельзя отменить.'#13#10 +

'Вы хотите продолжить?';:= MessageBox(Wnd, PChar(S), 'Внимание!',

MB_ICONEXCLAMATION or MB_YESNO or MB_DEFBUTTON2) = ID_YES;;LoadControlParams(const Path: string; Control: TWinControl; Reg:);: Integer;: TControl;: string;i := 0 to Control.ControlCount - 1 do:= Control.Controls[i];Item is TWinControl then:= Path + '.' + Item.Name;(ValueName, Item as TWinControl, Reg);Reg.ValueExists(ValueName) thenItem is TEdit and (not TEdit(Item).ReadOnly) then(Item).Text := Reg.ReadString(ValueName);Item is TComboBox then(Item).ItemIndex := Reg.ReadInteger(ValueName);Item is TCheckBox then(Item).Checked := Reg.ReadBool(ValueName);Item is TRadioGroup then(Item).ItemIndex := Reg.ReadInteger(ValueName);Item is TDateTimePicker then(Item).DateTime := Reg.ReadDateTime(ValueName);;;;;SaveControlParams(const Path: string; Control: TWinControl; Reg:);: Integer;: TEdit;: TComponent;: string;i := 0 to Control.ControlCount - 1 do:= Control.Controls[i];Item is TWinControl then:= Path + '.' + Item.Name;(ValueName, Item as TWinControl, Reg);Item is TEdit then:= Item as TEdit;not EditItem.ReadOnly then.WriteString(ValueName, EditItem.Text);;Item is TComboBox then.WriteInteger(ValueName, TComboBox(Item).ItemIndex);Item is TCheckBox then.WriteBool(ValueName, TCheckBox(Item).Checked);Item is TRadioGroup then.WriteInteger(ValueName, TRadioGroup(Item).ItemIndex);Item is TDateTimePicker then.WriteDateTime(ValueName, TDateTimePicker(Item).DateTime);;;;.TTestManager.DoChange(AChangeType: TChangeType);Assigned(FOnChange) then FOnChange(Self, AChangeType);;TTestManager.GetPassword: Integer;(ctGetPassword);:= FPassword;;TTestManager.StartTest;:= GetTickCount;;TTestManager.StopTest;(ctUpdate);;:= TTestManager.Create;.Free;.

Приложение Б

Список ошибок фискальных регистраторов

Неисправность

Неисправен накопитель ФП 1, ФП 2 или часы

Отсутствует ФП 1

Отсутствует ФП 2

Некорректные параметры в команде обращения к ФП

Нет запрошенных данных

ФП в режиме вывода данных

Некорректные параметры в команде для данной реализации ФП

Команда не поддерживается в данной реализации ФП

Некорректная длина команды

Формат данных не BCD

Неисправна ячейка памяти ФП при записи итога

Не введена лицензия

Заводской номер уже введен

Текущая дата меньше даты последней записи в ФП

Область сменных итогов ФП переполнена

Смена уже открыта

Смена не открыта

Номер первой смены больше номера последней смены

Дата первой смены больше даты последней смены

Нет данных в ФП

Область перерегистраций в ФП переполнена

Заводской номер не введен

В заданном диапазоне есть поврежденная запись

Повреждена последняя запись сменных итогов

Область перерегистраций ФП переполнена

Отсутствует память регистров

Переполнение денежного регистра при добавлении

Вычитаемая сумма больше содержимого денежного регистра

Неверная дата

Нет записи активизации

Область активизаций переполнена

Нет активизации с запрашиваемым номером

Вносимая клиентом сумма меньше суммы чека

Невозможно отменить предыдущую команду

Обнулённая касса (повторное гашение невозможно)

Сумма чека по секции меньше суммы сторно

В ФР нет денег для выплаты

ФР заблокирован, ждет ввода пароля налогового инспектора

Требуется выполнение общего гашения

Некорректные параметры в команде

Нет данных

Некорректный параметр при данных настройках

Некорректные параметры в команде для данной реализации ФР

Команда не поддерживается в данной реализации ФР

Ошибка в ПЗУ

Внутренняя ошибка ПО ФР

Переполнение накопления по надбавкам в смене

Переполнение накопления в смене

Смена открыта - операция невозможна

ЭКЛЗ: неверный регистрационный номер

Смена не открыта - операция невозможна

Переполнение накопления по секциям в смене

Переполнение накопления по скидкам в смене

Переполнение диапазона скидок

Переполнение диапазона оплаты наличными

Переполнение диапазона оплаты типом 2

Переполнение диапазона оплаты типом 3

Переполнение диапазона оплаты типом 4

Cумма всех типов оплаты меньше итога чека

Не хватает наличности в кассе

Переполнение накопления по налогам в смене

Переполнение итога чека

Операция невозможна в открытом чеке данного типа

Открыт чек - операция невозможна

Буфер чека переполнен

Переполнение накопления по обороту налогов в смене

Вносимая безналичной оплатой сумма больше суммы чека

Смена превысила 24 часа

Неверный пароль

Идет печать предыдущей команды

Переполнение накоплений наличными в смене

Переполнение накоплений по типу оплаты 2 в смене

Переполнение накоплений по типу оплаты 3 в смене

Переполнение накоплений по типу оплаты 4 в смене

Чек закрыт - операция невозможна

Нет документа для повтора

ЭКЛЗ: количество закрытых смен не совпадает с ФП

Ожидание команды продолжения печати

Документ открыт другим оператором

Скидка превышает накопления в чеке

Переполнение диапазона надбавок

Понижено напряжение 24В

Таблица не определена

Некорректная операция

Отрицательный итог чека

Переполнение при умножении

Переполнение диапазона цены

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

Переполнение диапазона отдела

ФП отсутствует

Не хватает денег в секции

Переполнение денег в секции

Ошибка связи с ФП

Не хватает денег по обороту налогов

Переполнение денег по обороту налогов

Ошибка питания в момент ответа по I2C

Нет чековой ленты

Нет контрольной ленты

Не хватает денег по налогу

Переполнение денег по налогу

Переполнение по выплате в смене

Переполнение ФП

Ошибка отрезчика

Команда не поддерживается в данном подрежиме

Команда не поддерживается в данном режиме

Ошибка ОЗУ

Ошибка питания

Ошибка принтера: нет импульсов с тахогенератора

Ошибка принтера: нет сигнала с датчиков

Замена ПО

Замена ФП

Поле не редактируется

Ошибка оборудования

Не совпадает дата

Неверный формат даты

Неверное значение в поле длины

Переполнение диапазона итога чека

Ошибка связи с ФП

Ошибка связи с ФП

Ошибка связи с ФП

Ошибка связи с ФП

Переполнение наличности

Переполнение по продажам в смене

Переполнение по покупкам в смене

Переполнение по возвратам продаж в смене

Переполнение по возвратам покупок в смене

Переполнение по внесению в смене

Переполнение по надбавкам в чеке

Переполнение по скидкам в чеке

Отрицательный итог надбавки в чеке

Отрицательный итог скидки в чеке

Нулевой итог чека

Касса не фискализирована

Поле превышает размер, установленный в настройках

Выход за границу поля печати при данных настройках шрифта

Наложение полей

Восстановление ОЗУ прошло успешно

Исчерпан лимит операций в чеке

Ошибка связи с ЭКЛЗ

ЭКЛЗ отсутствует

ЭКЛЗ: Некорректный формат или параметр команды

Некорректное состояние ЭКЛЗ

Авария ЭКЛЗ

Авария КС в составе ЭКЛЗ

Исчерпан временной ресурс ЭКЛЗ

ЭКЛЗ переполнена

ЭКЛЗ: Неверные дата и время

ЭКЛЗ: Нет запрошенных данных

Переполнение ЭКЛЗ (отрицательный итог документа)

ЭКЛЗ: Переполнение в параметре количество

ЭКЛЗ: Переполнение в параметре сумма

ЭКЛЗ: Уже активизирована

Контроль даты и времени (подтвердите дату и время)

ЭКЛЗ: суточный отчёт с гашением прервать нельзя

Превышение напряжения в блоке питания

Несовпадение итогов чека и ЭКЛЗ

Несовпадение номеров смен

Буфер подкладного документа пуст

Подкладной документ отсутствует

Поле не редактируется в данном режиме

Приложение В

Таблица методов и свойств драйвера ФР


Название

Использует

Модифицирует

Англ. Рус.

AddLD ДобавитьЛУ

LDName; LDComNumber; LDBaudrate; LDComputerName; LDTimeout

LDNumber; LDIndex

Англ. Рус.

AdminUnlockPort

ComNumber

PortLocked

Англ. Рус.

AdminUnlockPorts

-

PortLocked

Англ. Рус.

Beep Гудок

Password

OperatorNumber

Англ. Рус.

Buy Покупка

Password; Ouantity; Price; Department; Taxi; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

BuyEx ПокупкаТочно

Password; Ouantity; Price; Department; Taxi; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

CancelCheck АннулироватьЧек

Password

OperatorNumber

Англ. Рус.

Cashlncome Внесение

Password; Summi

OperatorNumber; OpenDocumentNumber

Англ. Рус.

CashOutcome Выплата

Password; Summi

OperatorNumber; OpenDocumentNumber

Англ. Рус.

Charge Надбавка

Password; Summi; Taxi; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

ChargeOnSlipDocument ФормированиеНадбавкиНаПД

Password; StringOuantitylnOperation; TextStringNumber; OperationNameStringNumber; SummStringNumber; TextFont; OperationNameFont; SummFont; TextSymbolNumber; SummSymbolNumber; TextOffSet; OperationNameOffSet; SummOffSet; OperationBlockFirstString; Summi; Taxi; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

CheckSubTotal ПодытогЧека

Password

OperatorNumber; Summi

Англ. Рус.

ClearSlipDocumentBuffer ОчиститьБу ферПД

Password

OperatorNumber

Англ. Рус.

ClearSlipDocumentBufferString ОчиститьСтрокуБуфераПД

Password; StringNumber

OperatorNumber

Англ. Рус.

CloseCheck ЗакрытьЧек

Password; Summi; Summ2; Summ3; Summ4; DiscountOnCheck; Taxi; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber; Change

Англ. Рус.

CloseCheckOnSlipDocument ФормированиеЗакрытияЧекаНаПД

OperatorNumber; Change

Название

Использует

Модифицирует



Summ4StringNumbeп ChangeStringNumbeп Tax1TurnoverStringNumber; Tax2TurnoverStringNumber; Tax3TurnoverStringNumber; Tax4TurnoverStringNumber; Tax1SumStringNumber; Tax2SumStringNumber; Tax3SumStringNumber; Tax4SumStringNumber; SubTotalStringNumber; DiscountOnCheckStringNumber; TextFont; TotalFont; TotalSumFont; Summ1NameFont; Summ1Font; Summ2NameFont; Summ2Font; Summ3NameFont; Summ3Font; Summ4NameFont; Summ4Font; ChangeFont; ChangeSumFont; Tax1NameFont; Tax1TurnoverFont; Tax1RateFont; Tax1SumFont; Tax2NameFont; Tax2TurnoverFont; Tax2RateFont; Tax2SumFont; Tax3NameFont; Tax3TurnoverFont; Tax3RateFont; Tax3SumFont; Tax4NameFont; Tax4TurnoverFont; Tax4RateFont; Tax4SumFont; SubTotalFont; SubTotalSumFont; DiscountOnCheckFont; DiscountOnCheckSumFont; TextSymbolNumber; TotalSymbolNumber; Summ1SymbolNumber; Summ2SymbolNumber; Summ3SymbolNumber; Summ4SymbolNumber; ChangeSymbolNumber; Tax1NameSymbolNumber; Tax1TurnoverSymbolNumber; Tax1RateSymbolNumber; Tax1SumSymbolNumber; Tax2NameSymbolNumber; Tax2TurnoverSymbolNumber; Tax2RateSymbolNumber; Tax2SumSymbolNumber; Tax3NameSymbolNumber; Tax3TurnoverSymbolNumber; Tax3RateSymbolNumber; Tax3SumSymbolNumber; Tax4NameSymbolNumber; Tax4TurnoverSymbolNumber; Tax4RateSymbolNumber; Tax4SumSymbolNumber; SubTotalSymbolNumber; DiscountOnCheckSymbolNumber; DiscountOnCheckSumSymbolNum ber; TextOffSet; TotalOffSet;




TotalSumOffSet; Summ1OffSet; Summ1NameOffSet; Summ2NameOffSet; Summ2OffSet; Summ3NameOffSet; Summ3OffSet; Summ4NameOffSet; Summ4OffSet; ChangeOffSet; ChangeSumOffSet; Tax1NameOffSet; Tax1TurnoverOffSet; Tax1RateOffSet; Tax1SumOffSet; Tax2NameOffSet; Tax2TurnoverOffSet; Tax2RateOffSetTax2SumOffSet; Tax3NameOffSet; Tax3TurnoverOffSet; Tax3RateOffSet; Tax3SumOffSet; Tax4NameOffSet; Tax4TurnoverOffSet; Tax4RateOffSet; Tax4SumOffSet; SubTotalOffSet; SubTotalSumOffSet; DiscountOnCheckOffSet; DiscountOnCheckSumOffSet; OperationBlockFirstString; Summ1; Summ2; Summ3; Summ4; DiscountOnCheck; Tax1; Tax2;Tax3;Tax4; StringForPrinting


Англ. Рус.

CloseEKLZArchive ЗакрытьАрхивЭКЛЗ

Password

-

Англ. Рус.

ConfigureGeneralSlipDocument ОбщаяКонфигурацияПД

Password; SlipDocumentLength; SlipDocumentWidth; PrintingAlignment; SlipEqualStringIntervals

OperatorNumber

Англ. Рус.

ConfigureSlipDocument КонфигурироватьПД

Password; SlipDocumentLength; SlipDocumentWidth; PrintingAlignment; SlipStringIntervals

OperatorNumber

Англ. Рус.

ConfigureStandardSlipDocument СтандартнаяКонфигурацияПД

Password

OperatorNumber

Англ. Рус.

ConfirmDate ПодтвердитьДату

Password; Date

-

Англ. Рус.

Connect УстановитьСвязь

ComNumber; BaudRate; Timeout

-

Англ. Рус.

ContinuePrint ПродолжитьПечать

Password

OperatorNumber

Англ. Рус.

Correction НефтянойЧекКоррекции

Password; TRKNumber; RKNumber; Department; Tax1; Tax2;Tax3;Tax4; StringForPrinting

OperatorNumber; DozeInMilliliters; Change

Англ. Рус.

CutCheck ОтрезатьЧек

Password; CutType

OperatorNumber

Англ. Рус.

DampRequest ЗапросДампа

Password; DeviceCode

DataBlockNumber

Англ. Рус.

DeleteLD УдалитьЛУ

LDNumber

LDNumber

Англ.

Disconnect

-

-

Рус.

РазорватьСвязь



Англ. Рус.

Discount Скидка

Password; Summ1; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

DiscountOnSlipDocument ФормированиеСкидкиНаПД

Password; StringOuantityInOperation; TextStringNumber; OperationNameStringNumber; SummStringNumber; TextFont; OperationNameFont; SummFont; TextSymbolNumber; SummSymbolNumber; TextOffSet; OperationNameOffSet; SummOffSet; OperationBlockFirstString; Summ1; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

DozeOilCheck НефтянойЧекНаДозу

Password; TRKNumber; RKNumber; DozeInMilliliters; Department; Summ1; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber; DozeInMilliliters; DozeInMoney

Англ. Рус.

Draw ПечатьКартинки

Password; FirstLineNumber; LastLineNumber

OperatorNumber

Англ. Рус.

DrawEx РасширеннаяПечатьКартинки

Password; FirstLineNumber; LastLineNumber

OperatorNumber

Англ. Рус.

EiectSlipDocument ВыброситьПД

Password; EiectDirection

OperatorNumber

Англ. Рус.

EKLZActivization АктивизацияЭКЛЗ

Password

-

Англ. Рус.

EKLZActivizationResult ИтогАктивизацииЭКЛЗ

Password

-

Англ. Рус.

EKLZDepartmentReportInDates Range ОтчетЭКЛЗПоОтделамВДиапазоне- Дат

Password; ReportType; Department; FirstSessionDate; LastSessionDate


Англ. Рус.

EKLZDepartmentReportInSessio nsRange ОтчетЭКЛЗПоОтделамВДиапазоне- Смен

Password; ReportType; Department; FirstSessionNumber; LastSessionNumber


Англ. Рус.

EKLZInterrupt ПрекращениеЭКЛЗ

Password

-

Англ. Рус.

EKLZJournalOnSessionNumber КонтрольнаяЛентаЭКЛЗПо- Смене

Password; SessionNumber


Англ. Рус.

EKLZSessionReportInDatesRan ge ОтчетЭКЛЗПоСменамВДиапазоне-Дат

Password; ReportType; FirstSessionDate; LastSessionDate


Англ. Рус.

EKLZSessionReportInSessionsR ange ОтчетЭКЛЗПоСменамВДиапазоне- Смен

Password; ReportType; FirstSessionNumber; LastSessionNumber


Англ. Рус.

EnumLD ПеречислитьЛУ

LDIndex

LDNumber; LDName; LDComNumber; LDBaudrate; LDComputerName; LDTimeout

Англ. Рус.

ExchangeBytes ПослатьБайты

TransferBytes

TransferBytes; ResultCode; ResultCodeDescription

Англ. Рус.

FeedDocument ПродвинутьДокумент

Password; StringOuantity; UseSlipDocument;

OperatorNumber

Название

Использует

Модифицирует



UseReceiptRibbon; UseJournalRibbon


Англ. Рус.

FillSlipDocumentWithUnfiscalInf o ЗаполнитьБуферПДНефиск- Информацией

Password; StringNumber; StringForPrinting

OperatorNumber

Англ. Рус.

Fiscalization Фискализация

Password; NewPasswordTI; RNM; INN

RegistrationNumber; FreeRegistration; SessionNumber; Date

Англ. Рус.

FiscalizationWithLongRNM ФискализацияСДлиннымРНМ

Password; NewPasswordTI; RNM; INN

RegistrationNumber; FreeRegistration; SessionNumber; Date

Англ. Рус.

FiscalReportForDatesRange ФискальныйОтчётПоДиапазонуДат

Password; ReportType; FirstSessionDate; LastSessionDate

FirstSessionDate; LastSessionDate; FirstSessionNumber; LastSessionNumber

Англ. Рус.

FiscalReportForSessionRange ФискальныйОтчётПоДиапазонуСмен

Password; ReportType; FirstSessionNumber; LastSessionNumber

FirstSessionDate; LastSessionDate; FirstSessionNumber; LastSessionNumber

Англ. Рус.

GetActiveLD ПолучитьАктивноеЛУ

-

LDNumber; LDIndex

Англ. Рус.

GetCashReg ПолучитьДенежныйРегистр

Password; RegisterNumber

OperatorNumber; ContentsOfCashRegister; NameCashReg

Англ. Рус.

GetCommandParams ПолучитьПараметрыКоманды

CommandIndex

CommandCode;CommandName; CommandDefTimeout; CommandTimeout

Англ. Рус.

GetCountLD ПолучитьКоличествоЛУ

-

LDCount

Англ. Рус.

GetData ПолучитьДанные

Password

DeviceCode; DeviceCodeDescription; DataBlockNumber; DataBlock

Англ. Рус.

GetDeviceMetrics ПолучитьПараметрыУстройства


UMaiorProtocolVersion; UMinorProtocolVersion; UMaiorType; UMinorType; UModel; UCodePage; UDescription

Англ. Рус.

GetECRStatus ПолучитьСостояниеККМ

Password

OperatorNumber; ECRSoftVersion; ECRFlags; ECRSoftDate; LogicalNumber; OpenDocumentNumber; RKFlags; ReceiptRibbonIsPresent ; JournalRibbonIsPresent; SlipDocumentIsPresent; SlipDocumentIsMoving; PointPosition; EKLZIsPresent; JournalRibbonOpticalSensor; ReceiptRibbonOpticalSensor; JournalRibbonLever; ReceiptRibbonLever; LidPositionSensor; IsPrinterLeftSensorFailure; IsPrinterRightSensorFailure; IsDrawerOpen; OuantityPointPosition; ECRMode; ECRModeDescription; ECRMode8Status; ECRModeStatus; ECRAdvancedMode; ECRAdvancedModeDescription;




PortNumber; FMSoftVersion; FMBuild; FMSoftDate; Date; Time; TimeStr; FMFlags; FM1IsPresent; FM2IsPresent; LicenseIsPresent; FMOverflow; IsBatteryLow; IsLastFMRecordCorrupted; IsFMSessionOpen; IsFM24HoursOver; SerialNumber; SessionNumber; FreeRecordInFM; RegistrationNumber; FreeRegistration; INN

Англ. Рус.

GetEKLZActivizationResult ПолучитьИтогАктивизацииЭКЛЗ

Password

UDescription

Англ. Рус.

GetEKLZCode1Report ПолучитьСостояниеЭКЛЗКод 1

Password

LastKPKDocumentResult; LastKPKDate; LastKPKTime; LastKPKNumber; EKLZNumber; EKLZFlags

Англ. Рус.

GetEKLZCode2Report ПолучитьСостояниеЭКЛЗКод2

Password

Summ1; Summ2; Summ3; Summ4

Англ. Рус.

GetEKLZData ПолучитьДанныеОтчётаЭКЛЗ

Password

EKLZData

Англ. Рус.

GetEKLZD ep artmentReportInD atesRange ПолучитьОтчетЭКЛЗПоОтделамВДи апазонеДат

Password; ReportType; Department; FirstSessionDate; LastSessionDate

UDescription

Англ. Рус.

GetEKLZDepartmentReportInSe ssionsRange ПолучитьОтчетЭКЛЗПоОтделамВДи апазонеСмен

Password; ReportType; Department; FirstSessionNumber; LastSessionNumber

UDescription

Англ. Рус.

GetEKLZDocument ПолучитьДокументЭКЛЗ

Password; KPKNumber

UDescription

Англ. Рус.

GetEKLZJournal ПолучитьКонтрольнуюЛентуЭКЛЗ

Password; SessionNumber

UDescription

Англ. Рус.

GetEKLZSerialNumber ПолучитьРегНомерЭКЛЗ

Password

EKLZNumber

Англ. Рус.

GetEKLZSessionReportInDates Range ПолучитьОтчетЭКЛЗПоСменамВДи апазонеДат

Password; ReportType; FirstSessionDate; LastSessionDate

UDescription

Англ. Рус.

GetEKLZSessionReportInSessio nsRange ПолучитьОтчетЭКЛЗПоСменамВДи апазонеСмен

Password; ReportType; FirstSessionNumber; LastSessionNumber

UDescription

Англ. Рус.

GetEKLZSessionTotal ПолучитьИтогиСменыПоНомеру

Password; SessionNumber

UDescription

Англ. Рус.

GetEKLZV ersion ПолучитьВерсиюЭКЛЗ

Password

EKLZVersion

Англ. Рус.

GetExchangeParam ПолучитьПараметрыОбмена

Password; PortNumber

OperatorNumber; BaudRate; Timeout

Англ. Рус.

GetFieldStruct ПолучитьСтруктуруПоля

Password; TableNumber; FieldNumber, RowNumber

FieldName; FieldType; FieldSize; MINValueOfField; MAXValueOfField

Англ. Рус.

GetFiscalizationParameters ПолучитьПараметрыФискализации

Password; RegistrationNumber

NewPasswordTI; RNM; INN; SessionNumber; Date

Англ. Рус.

GetFMRecordsSum ПолучитьСуммуЗаписейФП

Password; TypeOfSumOfEntriesFM

OperatorNumber; Summ1; Summ2; Summ3; Summ4

Англ. Рус.

GetFontMetrics ПолучитьПараметрыШрифта

Password; FontType

PrintWidth; CharWidth; CharHeight; FontCount

Название

Использует

Модифицирует

Англ. Рус.

GetIBMStatus 1ВМПолучитьСостояние

Password

Date; IBMDocumentNumber; IBMFlags; IBMLastBuyReceiptNumber; IBMLastReturnBuyReceiptNumbe Ei IBMLastReturnSaleReceiptNumbe r; IBMLastSaleReceiptNumber; IBMSessionDateTime; IBMSessionDay; IBMSessionHour; IBMSessionMin; IBMSessionMonth; IBMSessionSec; IBMSessionYear; IBMStatusByte1; IBMStatusByte2; IBMStatusByte3; IBMStatusByte4; IBMStatusByte5; IBMStatusByte6; IBMStatusByte7; IBMStatusByte8; OperatorNumber; SessionNumber; Summ1; Time; TimeStr

Англ. Рус.

GetLastFMRecordDate ПолучитьДатуПоследнейЗаписиВФП

Password

OperatorNumber; TypeOfLastEntryFM; Date

Англ. Рус.

GetLiterSumCounter ПолучитьЛитровыйСуммарныйСчёт чик

Password; TRKNumber; RKNumber

OperatorNumber; DozeInMilliliters

Англ. Рус.

GetLongSerialNumberAndLong RNM ПолучитьДлинныеЗаводскойНомерИ РНМ

Password

SerialNumber; RNM

Англ. Рус.

GetOperationReg ПолучитьОперационныйРегистр

Password; RegisterNumber

OperatorNumber; ContentsOfOperationRegister; NameOperationReg

Англ. Рус.

GetParamLD ПолучитьПараметрыЛУ

LDNumber

LDName; LDComNumber; LDBaudrate; LDComputerName; LDTimeout ; LDEscapeIP ; LDEscapePort ; LDEscapeTimeout

Англ. Рус.

GetRangeDatesAndSessions ПолучитьДиапазонДатИСмен

Password

FirstSessionDate; LastSessionDate; FirstSessionNumber; LastSessionNumber

Англ. Рус.

GetRKStatus ПолучитьСотояниеРК

Password; TRKNumber; RKNumber

OperatorNumber; CurrentDozeInMilliliters; DozeInMilliliters; CurrentDozeInMoney; DozeInMoney; SlowingInMillilitersPrice; StatusRK; StatusRKDescription; RKFlags; IsMotorOn; IsPistolOn; IsRoughValveOn; IsSlowingValveOn; IsCheckMadeOut; IsCheckClosed; EmergencyStopCode; EmergencyStopCodeDescription

Англ. Рус.

GetShortECRStatus ПолучитьКороткийЗапросСостояния ККМ

Password

OperatorNumber; ECRFlags; FMFlags; ReceiptRibbonIsPresent ; JournalRibbonIsPresent; SlipDocumentIsPresent; SlipDocumentIsMoving; PointPosition; EKLZIsPresent; JournalRibbonOpticalSensor; ReceiptRibbonOpticalSensor; JournalRibbonLever;

Название

Использует

Модифицирует




ReceiptRibbonLever; LidPositionSensor; IsPrinterLeftSensorFailure; IsPrinterRightSensorFailure; IsDrawerOpen; OuantityPointPosition; ECRMode; ECRModeDescription; ECRMode8Status; ECRModeStatus; ECRAdvancedMode; ECRAdvancedModeDescription; OuantityOfOperations; BatteryVoltage; PowerSourceVoltage; FMResultCode; EKLZResultCode

Англ. Рус.

GetShortIBMStatus IBMПолучитьКоpоткийЗaпpоcСоcто яния

Password

IBMFlags; IBMStatusByte1; IBMStatusByte2; IBMStatusByte3; IBMStatusByte4; IBMStatusByte5; IBMStatusByte6; IBMStatusByte7; IBMStatusByte8; OperatorNumber

Англ. Рус.

GetTableStruct ПолучитьСтруктуруТ аблицы

Password; TableNumber

TableName; RowNumber; FieldNumber

Англ. Рус.

InitEKLZArchive ИнициализироватьАрхивЭКЛЗ

Password

-

Англ. Рус.

InitFM ИнициализироватьФП

-

-

Англ. Рус.

InitTable ИнициализироватьТаблицы

Password

-

Англ. Рус.

InterruptDataStream ПрерватьВыдачуДанных

Password

-

Англ. Рус.

InterruptFullReport ПрерватьПолныйОтчёт

Password

-

Англ. Рус.

InterruptTest ПрерватьТ естовыйПрогон

Password

OperatorNumber

Англ. Рус.

LaunchRK ЗапуститьРК

Password; TRKNumber; RKNumber

OperatorNumber

Англ. Рус.

LoadLineData ЗагрузкаГрафики

Password; LineNumber; LineData

OperatorNumber

Англ. Рус.

LoadLineDataEx РасширеннаяЗагрузкаГрафики

Password; LineNumber; LineData

OperatorNumber

Англ. Рус.

LockPort БлокироватьПорт

ComNumber

PortLocked

Англ. Рус.

MethodSupported МетодПоддерживается

MethodName

-

Англ. Рус.

OilSale ПродажаНефтепродуктов

Password; TRKNumber; RKNumber; DozeInMoney; Department; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

OpenCheck ОткрытьЧек

Password; CheckType

OperatorNumber

Англ. Рус.

OpenDrawer ОткрытьДенежныйЯщик

Password; DrawerNumber

OperatorNumber

OpenStandardFiscalSlipDocume nt ОткрытьСтандартныйФискПД

Password; CheckType; CopyType; NumberOfCopies; CopyOffSet1; CopyOffSet2; CopyOffSet3; CopyOffSet4; CopyOffSet5

OperatorNumber; OpenDocumentNumber

Англ. Рус

OutputReceipt Выдать чек

ReceiptOutputType


Название

Использует

Модифицирует

Англ. Рус.

PrintBarCode ПечатьШтрихКода

Password; BarCode

OperatorNumber

Англ. Рус.

PrintDepartmentReport СнятьОтчётПоОтделам

Password

OperatorNumber

Англ. Рус.

PrintDocumentTitle ПечатьЗаголовкаДокумента

Password; DocumentName; DocumentNumber

OperatorNumber; OpenDocumentNumber

Англ. Рус.

PrintOperationReg ПечатьОперационныхРегистров

Password

OperatorNumber

Англ. Рус.

PrintReportWithCleaning СнятьОтчётСГашением

Password

OperatorNumber

Англ. Рус.

PrintReportWithoutCleaning СнятьОтчётБезГашения

Password

OperatorNumber

Англ. Рус.

PrintSlipDocument ПечатьПД

Password; IsClearUnfiscalInfo; InfoTypе

OperatorNumber

Англ. Рус.

PrintString ПечатьСтроки

Password; UseReceiptRibbon; UseJournalRibbon; StringForPrinting

OperatorNumber

Англ. Рус.

PrintStringWithFont ПечатьСтрокиДаннымШрифтом

Password; UseReceiptRibbon; UseJournalRibbon; StringForPrinting; FontType

OperatorNumber

Англ. Рус.

PrintTaxReport СнятьОтчётПоНалогам

Password

OperatorNumber

Англ. Рус.

PrintWideString ПечатьЖирнойСтроки

Password; UseReceiptRibbon; UseJournalRibbon; StringForPrinting

OperatorNumber

Англ. Рус

PropertySupported СвойствоПоддерживается

PropertyName

-

Англ. Рус.

ReadEKLZDocumentOnKPK ПрочитатьДокументЭКЛЗПоКПК

Password; KPKNumber

-

Англ. Рус.

ReadEKLZSessionTotal ПрочитатьИтогСменыЭКЛЗПоСмене

Password; SessionNumber

-

Англ. Рус.

ReadLicense ПрочитатьЛицензию

Password

License

Англ. Рус.

ReadTable ПрочитатьТаблицу

Password; TableNumber; RowNumber; FieldNumber

ValueOfFieldString; ValueOfFieldInteger1

Англ. Рус.

RegistrationOnSlipDocument ФормированиеОперацииНаПД

Password; OuantityFormat; StringOuantityInOperation; TextStringNumber; OuantityStringNumber; SummStringNumber; DepartmentStringNumber; TextFont; OuantityFont; MultiplicationFont; PriceFont; SummFont; DepartmentFont; TextSymbolNumber; OuantitySymbolNumber; PriceSymbolNumber; SummSymbolNumber; DepartmentSymbolNumber; TextOffSet; OuantityOffSet; SummOffSet; DepartmentOffSet; OperationBlockFirstString; Ouantity; Price; Department; Tax1; Tax2;Tax3; Tax4; StringForPrinting

OperatorNumber

Название

Использует

Модифицирует

Англ. Рус.

RepeatDocument ПовторДоку мента

Password

OperatorNumber

Англ. Рус.

ResetAllTRK СброситьВсеТРК

Password

OperatorNumber

Англ. Рус.

ResetRK СброситьРК

Password; TRKNumber; RKNumber

OperatorNumber

Англ. Рус.

ResetSettings ТехнологическоеОбнуление

-

-

Англ. Рус.

ResetSummary ОбщееГашение

Password

-

Англ. Рус.

ReturnBuy ВозвратПокупки

Password; Ouantity; Price; Department; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

ReturnBuyEx ВозвратПокупкиТочно

Password; Ouantity; Price; Department; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

ReturnSale ВозвратПродажи

Password; Ouantity; Price; Department; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

ReturnSaleEx ВозвратПродажиТочно

Password; Ouantity; Price; Department; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

Sale Продажа

Password; Ouantity; Price; Department; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

SaleEx ПродажаТочно

Password; Ouantity; Price; Department; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

SaveCommandParams СохранитьПараметрыКоманд

-

-

Англ. Рус.

ServerConnect СерверПодключиться

ComputerName

ServerConnected

Англ. Рус.

ServerDisconnect СерверОтключиться

-

ServerConnected

Англ. Рус.

SetActiveLD УстановитьАктивноеЛУ

LDNumber

EscapeIP; EscapePort; EscapeTimeOut

Англ. Рус.

SetAllCommandsParams ЗаписатьПараметрыВсехКоманд

CommandTimeout

-

Англ. Рус.

SetCommandParams ЗаписатьПараметрыКоманды

CommandIndex; CommandTimeout

-

Англ. Рус.

SetDate УстановитьДату

Password; Date

-

Англ. Рус.

SetDefCommandsParams ЗаписатьПараметрыПоУмолчанию

-

-

Англ. Рус.

SetDozeInMilliliters УстановитьДозуВМиллилитрах

Password; TRKNumber; RKNumber; DozeInMilliliters

OperatorNumber; DozeInMilliliters; DozeInMoney

Англ. Рус.

SetDozeInMoney УстановитьДозуВДенежныхЕдиница х

Password; TRKNumber; RKNumber; Price

OperatorNumber; DozeInMilliliters; DozeInMoney

Англ. Рус.

SetEKLZResultCode УстановитьОшибкуЭКЛЗ

Password; EKLZResultCode

EKLZResultCode

Англ. Рус.

SetExchangeParam УстановитьПараметрыОбмена

Password; PortNumber; BaudRate; Timeout

OperatorNumber

Англ. Рус.

SetParamLD УстановитьПараметрыЛУ

LDNumber; LDName; LDComNumber; LDBaudrate; LDComputerName; LDTimeout


Англ. Рус.

SetPointPosition УстановитьПоложениеТочки

Password; PointPosition

-

Англ. Рус.

SetRKParameters УстановитьПараметрыРК

Password; TRKNumber; RKNumber; SlowingInMilliliters; Price

OperatorNumber

Англ. Рус.

SetSCPassword УстановитьПарольЦТ О

SCPassword, NewSCPassword

SCPassword

Англ. Рус.

SetLongSerialNumber УстановитьДлинныйЗаводскойНоме р

Password; SerialNumber


Англ. Рус.

SetSerialNumber УстановитьЗаводскойНомер

Password; SerialNumber

-

Англ. Рус.

SetTime УстановитьВремя

Password; Time; TimeStr

-

Англ. Рус.

ShowProperties НастройкаСвойств

-

-

Англ. Рус.

StandardChargeOnSlipDocumen t ФормированиеСтандартнойНадбавки НаПД

Password; OperationBlockFirstString; Summ1; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

StandardCloseCheckOnSlipDocu ment ФормированиеСтандартногоЗакрыти яЧекаНаПД

Password; OperationBlockFirstString; Summ1; Summ2; Summ3; Summ4; DiscountOnCheck; Tax1; Tax2;Tax3;Tax4; StringForPrinting

OperatorNumber; Change

Англ. Рус.

StandardDiscountOnSlipDocume nt ФормированиеСтандартнойСкидкиН аПД

Password; OperationBlockFirstString; Summ1; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

StandardRegistrationOnSlipDoc ument ФормированиеСтандартнойОпераци иНаПД

Password; OperationBlockFirstString; Ouantity; Price; Department; Tax1; Tax2;Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

StopEKLZDocumentPrinting ПрерватьПечатьДоку ментаЭКЛЗ

Password

-

Англ. Рус.

StopRK ОстановитьРК

Password; TRKNumber; RKNumber

OperatorNumber

Англ. Рус.

Storno Сторно

Password; Ouantity; Price; Department; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

StornoCharge СторноНадбавки

Password; Summ1; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

StornoDiscount СторноСкидки

Password; Summ1; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

StornoEx СторноТочно

Password; Ouantity; Price; Department; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber

Англ. Рус.

SummOilCheck НефтянойЧекНаСумму

Password; TRKNumber; RKNumber; DozeInMoney; Department; Summ1; Tax1; Tax2; Tax3; Tax4; StringForPrinting

OperatorNumber; DozeInMilliliters; DozeInMoney

Англ. Рус.

SysAdminCancelCheck ОтменаЧекаСистАдминистратором

Password

-

Англ. Рус.

Test ТестовыйПрогон

Password; RunningPeriod

OperatorNumber

Англ. Рус.

TestEKLZArchiveIntegrity Т естЦелостностиАрхиваЭКЛЗ

Password

-

Англ. Рус.

UnlockPort

-

PortLocked

Название

Использует

Модифицирует


РазблокироватьПорт



Англ. Рус.

WideLoadLineData ЗагрузкаГрафикиОднойКомандой

Password; LineNumber; LineData

OperatorNumber

Англ. Рус.

WriteLicense ЗаписатьЛицензию

Password; License

-

Англ. Рус.

WriteTable ЗаписатьТаблицу

Password; TableNumber; RowNumber; FieldNumber; ValueOfFieldString; (ValueOfFieldInteger)



Похожие работы на - Автоматизация процесса выявления и устранения неисправностей торгового оборудования

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!