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

StackOverflow https://stackoverflow.com/questions/381548

Вопрос

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

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

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

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

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top