3

我们正在使用一些新的切割工具,它们可以通过串行端口而不只是控制面板来更改其硬件参数。

当硬件参数发生改变时,硬件将需要几秒钟来重新配置自身,然后发出信号表明它已准备好使用。

我们在此之前的设置涉及操作员单击切割板或零件命令。该软件将显示一个对话框,允许操作员更改与运动相关的任何内容(速度、延迟等),并显示硬件应采用的配置。操作员验证所有内容后,单击“确定”,机器开始切割。

对于新硬件,如果我们传输有更改,我们会提取当前配置,并弹出一个对话框,显示新配置是什么以及显示硬件是否准备就绪的指示器。并非所有事情都是通过串行端口自动完成的,因此有时对话框必须停留在那里,直到操作员单击“确定”。其他时候,当硬件发出正确信号时,它可以自行卸载。

我的问题(和疑问)是通过串行端口执行此操作非常缓慢。这也是我们第一次做这种类型的工作。我担心我错过了一些解决方案来使整个事情更具响应性。由于我们从第三方购买切割硬件,因此不能选择使用串行的替代品。

我想做的另一件事是可以选择显示状态对话框并让它继续运行,而不会让串行通信陷入系统的其余部分。

我正在寻找有关 Win32 API 或 .NET 的提示。

4

2 回答 2

2

一种选择是在单独的线程中运行串行端口通信,并让该线程将其状态报告回 gui 线程。(调用)

这就是我最近编写 HID 卡刷卡系统的方式。一个线程将卡片刷卡记录到列表中。另一个线程将这些写入数据库系统。每个都向 GUI 线程报告。

于 2008-12-19T17:07:30.480 回答
2

这取决于机器控制的交互性 - 您可以只发送 moveto xy、cutto xy 还是需要持续监控机器并启动和停止电机?

如果机器相对智能,那么我会将其视为绘图仪。在你的 gui 中建立一个命令列表,然后提交它们。这样就很容易测试机器的 gui 独立性。

您还可以有一个测试应用程序,它获取命令列表并将其绘制在屏幕上作为检查,然后再切割昂贵的材料。甚至可以将命令转换为 HPGL 或 SVG 之类的东西并直接显示它们。

于 2008-12-29T21:46:34.420 回答