丹凤千字科普:缺少mfc42d.dll(详细资料介绍)

一、硬件介绍
ZMC408CE是正运动推出的一款高性能EtherCAT总线运动控制器,具备EtherCAT、EtherNET、RS232、CAN和U盘等多种通讯接口。ZMC系列运动控制器适用于各种需要脱机或联机运行的场合。ZMC408CE支持8轴运动控制,可扩展至32轴,并提供了直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随等功能。
二、PSO技术介绍
PSO(位置同步输出)是一种通过采集实时的编码器反馈位置(或无编码器时使用输出的脉冲位置)与比较模式设定的位置进行比较的技术。PSO的主要目的是控制OP高速同步输出信号,在实现运动轨迹的所有阶段以恒定的空间(或恒定时间)间隔触发输出开关。PSO功能的特点是高速度、稳定的信号输出,能够在整个运动轨迹中以固定的距离触发输出信号,而不必考虑总体速度。
三、C++语言MFC进行运动控制项目的开发
1.新建MFC项目并添加函数库:
在VS2010编译环境下,基于.NET Framework 4.0框架创建一个MFC窗体应用程序。具体步骤包括:选择开发语言为“Visual C++”和.NET Framework 4以及MFC应用程序,填写程序名和选择程序存放路径,然后点击确定。接下来,找到正运动提供的C++函数库文件,将其复制到新建的项目中。
2.查看PC函数手册:
用户需要从PC函数手册中获取运动控制开发使用的函数接口,对照手册说明使用。具体路径在正运动提供的资料中查看。
3.控制器网口连接函数接口:
PC编程一般使用网口对控制器和工控机进行链接。如果链接成功,相关接口会返回一个链接句柄。通过这个链接句柄可以实现对控制器的控制。具体到ZAux_FastOpen()接口的使用,它如果链接成功会返回一个链接句柄。
4.硬件比较输出函数接口:
使用对下位机寄存器操作的指令操作链接句柄“g_handle”,对控制器进行寄存器内容取值,实时控制下位机相关的指令如下。实时全局变量指令:ZAux_Direct_HwPswitch2硬件比较输出指令到位置后硬件自动触发op输出信号。
5.MFC程序的运行和读写控制开发:
通过Demo交互界面,可以实现二维比较模式和三维比较模式的切换。二维比较模式(模式25、模式26)和三维比较模式(模式35、模式36)的主要功能为,当轴运动到设定的比较点后,输出口电平会发生变化或者输出一定规律的脉冲。在设定比较点时,需要指定高速输出口,设置首个比较点的输出状态、比较轴,再通过设置table寄存器来设定比较点的坐标,最后设置比较点脉冲最大误差等参数后,即可启动比较,驱动轴运动。
核心程序详解:
该程序的目的是通过控制运动控制器的特定参数,实现二维/三维/多轴PSO输出功能。以下是一些主要参数及其功能:
参数详解:
模式参数(Mode):指定使用的比较模式,例如模式25、26、35或36等。这些模式可能涉及到不同的功能和操作方式。
轴数组(Axisnum):表示涉及的轴数组信息,例如多个轴的组合或特定轴的选择。
输出口(Opnum):与轴数组相关联的输出端口号。
输出状态(Opstate):第一个比较点的输出状态,用于控制输出行为。
最大误差(maxerr):比较位置时每个轴左右的脉冲偏差,超出该范围时会触发特定的操作或比较动作。
比较点个数(num):存储在表格中的比较点个数。
第一个比较点坐标所在表格编号(tablepos):用于确定表格中第一个比较点的位置。
模式参数(ModePara1,ModePara2,ModePara3):特定的脉冲时间、脉冲个数和脉冲周期参数,与特定模式一起使用。
函数详解:
`ZAux_Direct_HwPswitch2_2D` 函数是该程序的核心函数,它接受上述参数作为输入并执行相应的操作。函数的流程如下:
1. 首先检查轴数组中的值是否有效(在指定范围内)。如果无效,则返回错误代码 ERR_AUX_PARAERR。
2. 创建一个命令缓冲区(cmdbuff)用于存储生成的命令字符串。同时创建临时缓冲区(tempbuff)和响应缓冲区(cmdbuffAck)。
3. 根据传入的模式参数(Mode),生成相应的命令字符串并追加到命令缓冲区中。命令字符串的格式根据模式的不同而有所变化,可能包含不同的参数和字段。
4. 调用 `ZAux_Execute` 函数执行生成的命令。该函数通过运动控制器处理命令并执行相应的操作。执行结果会返回给调用函数。
5. 检查响应缓冲区中是否有非空内容。如果有,则返回错误代码 ERR_ACKERROR。否则,返回执行结果。
