您好,欢迎访问一九零五行业门户网

VB环境下PMAC卡的初始化

设计开发上位机软件的目的是方便用户管理、操作和观察界面,实现对数控加工中心 机床的管理与安全操作[3()]。上位机系统软件基于windows操作系统平台,采用microsoft visual basic 6.0开发15。机床动作命令必须通过调用动态链接库中的库函数来实现对pmac 卡的控制,此功能主要由pcomm32.dll完成,它是标准的windows动态链接库[29]。 pcomm32pro在vb6.0中的加载步骤如下:
1.创建一个通用模块。
2.声明导入函数:
declare function openpmacdevice lib “pcomm32.dll”(byval pmac as long) as long。
函数原型:
bool openpmacdevice(dword dwdevice) 〇
调用方式:
dim tmp_val as long
tmp_val=openpmacdevice (0)
通过如下代码可以实现运动链接库的定义:
type pmacmsg
newline as boolean msg as string end type
’pmac.dll functions
declare function pmacselect lib npcomm32.dlln (byval hwnd as long) as long
declare function openpmacdevice lib npcomm32.dir (byval pmac as long) as long
declare function pmacconfisure lib npcomm32.dlln (bvval hwnd as lons. bvval pmac as long) as long
declare function pmacgetresponsea lib npcomm32.dlln (byval pmac as long, byval responses, byval dummy as integer, byval com_string$) as long
declare function pmacflush lib pcomm32.dhn (byval pmac as long) as integer
declare function pmacgetpmactype lib npcomm32.dlln (byval pmac as long) as integer
declare function closepmacdevice lib npcomm32.dir (byval pmac as long) as long
declare function pmacdownloada lib npcomm32.dlln (byval pmac as long, byval dummy as long, byval dummy as long, byval dummy as long, byval fname$, byval macro%, byval map%, byval log%, byval do_pmacdownloada%) as integer
devicenumber = pmac select (hwnd)
openpmacdevice (devicenumber) closepmacdevice (devicenumber)
pmacgetresponsea (devicenumber, response, 255, n%100n)
为了使pmac卡可以响应上位机软件的命令,还需要对pmac卡进行初始化,以确 定硬件地址、线程的开启和将站号、通讯方式等信息在通讯测试成功后写入window的注 册表,完成pmac在上位机上注册的功能,以便我们换了通讯方式类型的话,下次开启 pewin32pro时自动的与卡进行通讯[29]。初始化通常有以下两种类型:
1.通过pewin32pro软件来注册。
2•使用pcomm32pro中的函数。
函数原型:long pmac select (hwnd hwnd)
在调用完成时会弹出一个初始化对话框如图3-2所示。
初始化函数调用过程代码如下:
openruntimelink() ;// 调用 openpmacdevice〇
dwdevice = pmacselect(null);// 调用 pmacselect〇
if (dwdevice >= 0 && dwdevice <= 7)
{if (openpmacdevice(dwdevice))
{ m_bdriveropen = 1;
return true; // return true unless you set the focus to a control
} }
close〇; //关闭
pmacgetresponse(dwdevice,buf,255,n#lpn);
afxmessagebox(buf);
由于pcomm32pro的设计理念是基于线程安全的,所以对数控加工中心机床的命令 在与pmac卡通讯时要求进行线程保护操作,例如一个应用程序读取i变量的操作进行时, 就不可以同时允许另外一个应用程序也读取相同的变量。pcomm32pro是通过lockpmac ()和releasepmac()两个函数来实现线程的保护工作的。当进行某一操作时开启lockpmac ()以保护线程不被其它程序打扰,当操作结束时调用rdeasepmac ()关闭保护。
本文采摘自“基于pmac的加工中心开放式数控系统研究”,因为编辑困难导致有些函数、表格、图片、内容无法显示,有需要者可以在网络中查找相关文章!
本文由伯特利数控整理发表文章均来自网络仅供学习参考,转载请注明!
其它类似信息

推荐信息