《ACR控制器上位机程序开发(MFC)》.doc
文本预览下载声明
ACR控制器上位机程序开发(MFC)
Parker为ACR系列控制器提供了ComACRSrvr.dll动态链接库供我们开发其上位机程序。下面对使用MFC开发上位机程序做一个简要说明。
首先,将ACR-View软件安装到PC机上。这里我们使用的ACR-View软件版本号为5.5.5。MFC开发工具为VC++6.0英文版。
新建工程
下面我们新建一个MFC工程,我们为工程起名为“ACR9000”。如图1-1所示:
图1-1
单击“OK”按钮,我们这里建立一个基于对话框的工程。根据向导完成工程创建。
添加动态链接库
我们先要找到ComACRSrvr动态链接库文件。
我们在安装ACR-View时,软件会自动在 “C:\WINDOWS\system32”文件夹下安装“ComACRsrvr.dll”及“ComACRsrvr.tlb”文件,我们将这两个文件复制到
刚才新建的MFC工程所在的文件夹中。这里我们将这两个文件复制到“E:\VC\ECET”(工程所在路径见图1-1)文件夹中。如图2-1示:
图2-1
下面添加动态链接库:
在MFC开发环境中,选择“View”菜单下的“ClassWizard”,弹出“MFC ClassWizard”对话框,单击该对话框右上角的“Add Class”按钮,从中选择“From a type library”。如图2-2所示:
图2-2
在弹出的“Import from Type Library”对话框中,选择刚才添加的“ComACRSrvr.dll”或“ComACRSrvr.tlb”文件,单击“打开”按钮,如图2-3示:
图2-3
弹出“Confirm Classes”对话框。如图2-4示:
图2-4
该对话框列出了ComACRSrvr动态链接库为我们开放的接口,我们从中选择需要用到的接口。
注:ComACRSrvr为我们开放了四个接口
IStatus:用于控制器中数据的读取
IUtility:用于程序的上传、下载
ITerminal:用于发送、接收字符串数据
IControl:用于对控制器中的数据赋值,发送控制指令
详细的接口说明请参考ComACRSrvr.pdf手册
这里我们添加IStatus及IControl接口,这两个接口也是最常用的。MFC会自动生成“ComACRsrvr.h”及“ComACRsrvr.cpp”文件。单击“OK”按钮,完成动态链接库的添加。
方法2:采用Import加载类库文件。
在StdAfx.h加入下面这条语句:
#import ..\ComACRsrvr.tlb no_namespace named_guids
注:要将ComACRsrvr.tlb文件放到工程文件的外面。如下图示:
初始化工作
我们可以参考Parker为我们提供的demo程序,比如MFCJOG,打开“Find In Files”对话框,在“Find what”中输入“**ADDAD**”,来查看编程人员自己添加的内容。
下面我们开始编写自己的MFC程序
在CACR9000App类的InitInstance()成员函数中添加下段代码:
AfxOleInit();
如图3-1所示:这一步是COM组件初始化所必须的。
图3-1
2.添加ReadStatus类
为了方便我们读取控制器中的数据,Parker为我们提供了ReadStauts类。ReadStatus.cpp及ReadStatus.h文件可以在Parker提供的demo程序中找到,并将其拷贝到工程所在文件夹(ACR9000)下。下面我们把这两个文件加入到自己的工程中。
依次选择菜单项“Project”-“Add To Project”-“Files”,如图3-2示:
图3-2
从弹出的对话框中选则ReadStatus.cpp及ReadStatus.h文件并选中,单击“OK”按钮,如图3-3示:
这样ReadStatus类就加入到我们的工程中。
图3-3
3.添加头文件
在ACR9000Dlg.cpp文件中包含“ReadStatus.h”文件。如图3-4示:
#include ReadStatus.h
图3-4
在ACR9000Dlg.h文件中包含“ComACRsrvr.h”文件及ReadStatus类的声明。如图3-5示:
#include ComACRsrvr.h
class ReadStatus;
图3-5
4.创建对象
首先,在CACR9000Dlg类中添加三个指针型成员变量,分别指向IControl、IStatus接口及ReadStatus对象:如图3-6所示:
IControl* m_Cntl;
IStatus* m_Stat;
ReadStatus * m_workerEvent;
图3-6
方法2:创建智能指针对象:
在CACR9
显示全部