Существуют ли шаблоны проектирования для обработки последовательных портов? - PullRequest
3 голосов
/ 19 декабря 2008

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

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

Наша настройка перед этим заключалась в том, чтобы оператор щелкнул по команде Cut Plate или Part. Программное обеспечение отобразит диалоговое окно, позволяющее оператору изменить все, что связано с движением (скорость, задержки и т. Д.), А также отобразит, в какой конфигурации должно быть аппаратное обеспечение. После того, как оператор проверит все, он нажмет OK и машина начнет резку. *

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 30 декабря 2008

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

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

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

2 голосов
/ 19 декабря 2008

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

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

...