Существуют ли какие-либо шаблоны проектирования для обработки связи через последовательный порт?

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

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

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

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

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

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

Советы по Win32 API или .NET - это то, что я ищу.


person RS Conley    schedule 19.12.2008    source источник


Ответы (2)


Это зависит от того, насколько интерактивным является управление машиной - можете ли вы просто послать moveto xy, cutto xy или вам нужно постоянно контролировать машину и запускать и останавливать двигатели?

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

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

person Martin Beckett    schedule 29.12.2008

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

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

person user21826    schedule 19.12.2008