C# Mach3轧机换向

C# Mach3轧机换向,c#,multithreading,lpt,C#,Multithreading,Lpt,我想写一个像Mach3Mill这样的程序来控制LPT伺服系统。现在我使用C#和库向LPT发送数据。主要问题是使移动像原始程序一样平滑 现在我在循环中发送数据,使用Thread.SpinWait将数据位从1更改为0,因为Thread.Sleep会产生更大的间隔 有没有办法以选定的频率发送数据?简短回答:没有。长篇回答:Windows不是实时操作系统,但您可以接近您想要的。你可以使用定时器,搜索“实时定时器”。你想要什么样的精确度?Windows不是实时操作系统,所以CNCs的典型解决方案是将其委托

我想写一个像Mach3Mill这样的程序来控制LPT伺服系统。现在我使用C#和库向LPT发送数据。主要问题是使移动像原始程序一样平滑

现在我在循环中发送数据,使用Thread.SpinWait将数据位从1更改为0,因为Thread.Sleep会产生更大的间隔


有没有办法以选定的频率发送数据?

简短回答:没有。长篇回答:Windows不是实时操作系统,但您可以接近您想要的。你可以使用定时器,搜索“实时定时器”。你想要什么样的精确度?Windows不是实时操作系统,所以CNCs的典型解决方案是将其委托给硬件运动控制器。有关详细说明,请参见和。将线程设置为可能的最高优先级可能会有所帮助,但是
SpinWait
应该是一个紧密的循环,因此您可能不会做得更好。如果你能告诉我们你做了什么,你的目标是什么,也许有人能帮上忙。你需要什么样的时间粒度?50ms,250ms?感谢大家,是的,windows不是RTOS,我很气馁,因为这个设备(默认使用cutter)只依赖Mach3Mill性能。下周一我将录制一段简短的视频,它是如何工作的,现在我开始考虑更换原来的控制器,它的动作像PC和伺服之间无用的传输(实际上不能使用G代码)…如果发现有“忙标志”,我也会检查它。