我在实习中,公司要我勇Delphi完成对PCI7501进行控制。
一: PCI7501特点:独立64路开关量TTL电平数字输入、64路TTL电平开关量数字输出板,3路定时计数。PC-7501是128路通用数字TTL电平输入/输出板,具有8个8位数字输入口及8个8位数字输出锁存口,共有64路输入及64路输出,输出口具有上电清零的功能,特别适合控制继电器板等需要上电初始化状态为0的应用场合。
二:动态连接库函数如下:
1.Declare Function pci7501check Lib "pci7501.dll" (ByVal dwVendorID%, ByVal dwDeviceID%, ByVal fUseInt As Boolean,Byval Cardno%) As Long
此函数用于查找板卡,返回值为板卡句柄,对板卡调用开入开出函数前必须先调用此函数。单块板卡当不使用中断功能时,应用程序默认调用hplx=PCI7501check(0,0,false,1)即可,否则调用hplx=pci7501check(0,0,true,1)。最后一个参数为板卡标识号。如只有一块则该参数为1;如使用多块板卡,其值为小于或等于板卡个数的整数。例如一台机器上插了三块宏拓PCI系列的板卡,则参数分别为1,2,3中的任意一个数。 2.Declare Function pci7501di Lib "pci7501.dll" (ByVal hplx As Long, ByVal addr As Boolean, ByVal ch%) As Integer
此函数返回值为板卡某组8通道此时输入的开关量(00-FF),hplx为 句柄,addr默认为false, ch为组号(0-7)对应板上8组(每组八路)共64路通道。
应用程序调用DATA=pci7501di(hplx,false,ch)。 3.Declare Sub pci7501do Lib "pci7501.dll" (ByVal hplx As Long, ByVal addr As Boolean, ByVal ch%, ByVal data%)hplx为 句柄,addr默认为false, ch为组号(0-7)对应板上8组(每组八路)共64路通道,data为某组将要输出的开关量值(00-FF)。例如想让第一组0-3路为低电平,4-7路为高电平则调用pci7501do(hplx,false,0,f0)。 4.Declare Sub pci7501jsset Lib "pci7501.dll" (ByVal hplx As Long, ByVal addr As Boolean, ByRef sd As Byte)
本函数用于对板上的计数器的所有通道进行控制模式设置。 hplx为 句柄,addr默认为false, sd为存放控制字的三维数组。如想将计数器三个通道都设置为计数模式,先将0x34,0x74,0xb4分别赋与sd(0),sd(1),sd(2),然后调用pci7501jsset(hplx,false ,sd(0))。 三:要求
可以自己输入可开的板卡和对应板卡的哪一位,也可进行多卡和多路的控制设置。请给个思路!!谢谢!!!!
一: PCI7501特点:独立64路开关量TTL电平数字输入、64路TTL电平开关量数字输出板,3路定时计数。PC-7501是128路通用数字TTL电平输入/输出板,具有8个8位数字输入口及8个8位数字输出锁存口,共有64路输入及64路输出,输出口具有上电清零的功能,特别适合控制继电器板等需要上电初始化状态为0的应用场合。
二:动态连接库函数如下:
1.Declare Function pci7501check Lib "pci7501.dll" (ByVal dwVendorID%, ByVal dwDeviceID%, ByVal fUseInt As Boolean,Byval Cardno%) As Long
此函数用于查找板卡,返回值为板卡句柄,对板卡调用开入开出函数前必须先调用此函数。单块板卡当不使用中断功能时,应用程序默认调用hplx=PCI7501check(0,0,false,1)即可,否则调用hplx=pci7501check(0,0,true,1)。最后一个参数为板卡标识号。如只有一块则该参数为1;如使用多块板卡,其值为小于或等于板卡个数的整数。例如一台机器上插了三块宏拓PCI系列的板卡,则参数分别为1,2,3中的任意一个数。 2.Declare Function pci7501di Lib "pci7501.dll" (ByVal hplx As Long, ByVal addr As Boolean, ByVal ch%) As Integer
此函数返回值为板卡某组8通道此时输入的开关量(00-FF),hplx为 句柄,addr默认为false, ch为组号(0-7)对应板上8组(每组八路)共64路通道。
应用程序调用DATA=pci7501di(hplx,false,ch)。 3.Declare Sub pci7501do Lib "pci7501.dll" (ByVal hplx As Long, ByVal addr As Boolean, ByVal ch%, ByVal data%)hplx为 句柄,addr默认为false, ch为组号(0-7)对应板上8组(每组八路)共64路通道,data为某组将要输出的开关量值(00-FF)。例如想让第一组0-3路为低电平,4-7路为高电平则调用pci7501do(hplx,false,0,f0)。 4.Declare Sub pci7501jsset Lib "pci7501.dll" (ByVal hplx As Long, ByVal addr As Boolean, ByRef sd As Byte)
本函数用于对板上的计数器的所有通道进行控制模式设置。 hplx为 句柄,addr默认为false, sd为存放控制字的三维数组。如想将计数器三个通道都设置为计数模式,先将0x34,0x74,0xb4分别赋与sd(0),sd(1),sd(2),然后调用pci7501jsset(hplx,false ,sd(0))。 三:要求
可以自己输入可开的板卡和对应板卡的哪一位,也可进行多卡和多路的控制设置。请给个思路!!谢谢!!!!
哪里有啊?推荐一下啊!!!!!!!!!!!!!!
implementation
{implementation}end.