Система газификации

Для центра детейлинга автомобилей требовалось разработать программу, которая бы эмулировала режущий плоттер Graphtec FC8600 и сохраняла чертежи в формате DXF. На плоттере вырезались лекала. Существует два режима работы плоттеров: HP-GL и GP-GL. Первый – универсальный, второй используется только для плоттеров Graphtec

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

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

Изначальным заданием заказчика была разработка usb-эмулятора, который бы принимал команды от оригинальной программы плоттера и составлял чертёж. Однако, такие работы были очень объёмными и не соответствовали бюджету заказчика. Поэтому я предложил использовать для коммуникации COM-порт. В отличие от USB его реализация гораздо проще. Это просто последовательный интерфейс передачи информации. К тому же работа с COM-портом не обязательно требует написания драйверов.

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

Дальше оставалось только написать программу, которая «слушает» COM-порт и интерпретирует полученные команды сначала в графические примитивы, а потом – в DXF.