基于IPC+PMAC的活塞车床开放式数控系统 |
Open Pmac Device()//为应用程序使用PMAC打开一个通道; Close Pmac Device()//当程序运行完毕后关闭所打开的通道; Pmac Get PesponseA()//发送一个命令字符串给PMAC,并从缓冲区得到PMAC的反馈; Pmac Configure()//调出配置对话框并修改PMAC的参数; Pmac Down LoadA()//将程序从Pc下载到PMAC; Pmac Send CommandA()//发送一个命令字符串给PMAC。
掌握了这几个函数的使用方法,就可在VC++6.0环境下凋用PComm32动念链接库,还需要用到Windows的几个API函数:
LoadLibrary//加载动态库; GetProcAddress//取得相应函数地址、FreeLibrary//卸载动态库。
要调用动态库函数,首先要在头文件巾为所需的函数定义函数指针类型,其参数要和动态库的函数原型相同。接下来要在该文件中定义3个函数指针:
Open Pmac open、Close Pmac close、Pmac Get pmaeget,然后在执行文件中加载动态库,获得相应的函数地址并赋值给所定义的函数指针,程序段如下:
hMyD1 1=LoadLibrary(“pmac”)//加载动态库; open=(OpenPmac)GetProcAddress(hMy D1 1),“Open Piilac Device”//得到函数地址并赋给函数指针; close = (ClosePmac)GetProcAddress(hMyD1 1,“ClosePmac Device”) pmacget= (PmacGet)GetProcAddress(hMyD 1 1,“Pmac Get ResponseA”)//通过指向函数的指针调用该函数;
if(open!=NULL) { ( opeil)(0)//初始化函数; SetTimer(1,lo,NULL)//设定定时器采集时间为lOOms: ︳ void CP comm Dig::On Timer(UINT nlDEvent)//定时器响应函数; ︳ ( pmacget)(0,buf,255,“rx0”)//读取PMAC寄存器xO的值并存放在buf中; Update(FALSE) CDialog::On Timer(nIDEvent) ︳ //在退出程序的时候要卸载动态库; BOOL CPcommDlg::Destroy Window() { ( close)(0)//关断与PMAC的通信; Free Library(hMy DLL)//卸载动态库; |
|
|
|
|
|
| |
|
|
|
|