运动控制器全解析:品牌、原理与编程
来源:
|
作者:jiepus
|
发布时间: 2024-12-08
|
94 次浏览
|
分享到:
运动控制器是一种基于PC机及工业PC机、用于各种运动控制场合(包括位移、速度、加速度等)的上位控制单元。采用专业运动控制芯片或高速DSP作为运动控制核心,大多用于控制步进电机或伺服电机。一般地,运动控制器与PC机构成主从式控制结构:PC机负责人机交互界面的管理和控制系统的实时监控等方面的工作(例如键盘和鼠标的管理、系统状态的显示、运动轨迹规划、控制指令的发送、外部信号的监控等等);控制器完成运动控制的所有细节(包括脉冲和方向信号的输出、自动升降速的处理、原点和限位等信号的检测等等)。
一、运动控制器
运动控制器是一种硬件设备,主要用于运动控制和运动控制系统。它可以接收来自计算机或其他控制设备的指令,控制电机、伺服电机、气缸、阀门、编码器等执行器,控制它们按照特定的速度和轨迹进行运动。
运动控制器通常具有高速计数器、PWM输出、数字输入输出、模拟输入输出等功能,以及各种通信接口,如PCI、PCIe、USB、以太网等。运动控制器的种类很多,主要包括通用运动控制器、伺服电机控制器、步进电机控制器等。不同种类的运动控制器适用于不同类型的运动控制应用,如机床、机器人、自动化设备、医疗设备等。
二、运动控制器品牌及选型
常见的运动控制器品牌有美国的National Instruments(NI)、德国的Beckhoff、日本的三菱、富士、松下等。使用运动控制器进行运动控制时,通常需要编写相应的控制程序,根据不同的控制器和控制器的类型,编程语言也可能不同,如C、C++、VB、LabVIEW等。
要使用C#操作运动控制,通常需要使用相应的控制器的API或SDK。不同品牌的运动控制器API或SDK具有不同的调用方式和接口。例如,以美国National Instruments(NI)的运动控制器为例,可以使用NI Motion控制器API进行编程,其包含了一系列的函数库和控制指令,可以实现运动控制的各种功能,如运动控制、编码器读取、IO控制等。
三、运动控制器编程技巧
在VS2010中创建程序 启动Visual Studio 2010选择“文件”→“新建” →“项目”,选择Windows窗体应用程序。名称可自主选择如“Motion”;点击方案资源管理器,点击引用,鼠标右键点击选择添加引用,加入需要添加的引用,如研华1245AE加入的引用为“AdvMotAPI.dll”;至此程序已创建完成可以开始后续的编程工作。
程序接口规划 界面规划如下图所示。
程序编写框架 系统初始化;轴参数设置;IO状态获取;参数保存;多线程实现实时监控;错误处理机制。
四、高级编程技巧
运动顺序执行是最常见的编程问题之一,关系到设备后续控制动作能否正常运行。如果编程时只是单独使用While循环,执行后会发现上位机界面被卡死,按键不能响应。上述程序,在启动运动位置到dist_0过程中需不断循环判断运动是否停止,在条件不满足即运动没有停止时程序一直处于循环中,程序将会占用整个软件的进程时间资源,即进入了死循环,其它进程消息不能及时响应,导致上位机界面卡死。因此我们需要软件在循环判断运动状态的同时还需响应其它进程消息。
软件多线程可解决上述问题,但多线程较麻烦。可以使用软件自动函数实现。VB编程中有系统自动线程函数“DoEvents”。VC编程中有类似线程查询函数“PeekMessage”。C#编程中有系统自动线程函数“DoEvents”。Labview编程中有在循环框中添加延时时间。
五、总结