⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icandll.~pas

📁 iCAN主站库[windows平台DLL],用于开发iCAN系统windows平台程序[上位机程序]
💻 ~PAS
字号:
unit icandll;

interface

uses
  WinTypes;

const
  DLL_NAME  = 'icandll.dll';//动态库名称

//接口卡类型定义
 	VCI_PCI5121=1;
	VCI_PCI9810=2;
	VCI_USBCAN1=3;
	VCI_USBCAN2=4;
	VCI_PCI9820=5;
	VCI_CAN232=6;
	VCI_PCI5110=7;
	VCI_CANLITE=8;
	VCI_ISA9620=9;
	VCI_ISA5420=10;
	VCI_PC104CAN=11;
	VCI_CANETE=12;
	VCI_DNP9810=13;
	VCI_PCI9840=14;
	VCI_PC104CAN2=15;

	ICANOK=0;
	ICANERR_FUNCNOTEXIST=$01;
	ICANERR_SRCNOTEXIST=$02;//资源不存在
	ICANERR_CMDNOTSUPPORT=$03;
	ICANERR_CMDILLEGAL=$04;
	ICANERR_CONNECTNOTEXIST=$05;

	ICANERR=$f1;
	ICANERR_USING=$f3;//资源被占用
	ICANERR_SETCAN=$f4;//打开设备失败或初始化CAN失败
	ICANERR_SRVSTARTED=$f5;//服务已启动,无法进行此项操作
	ICANERR_TIMEOUT=$f6;
	ICANERR_ITEMEXIST=$f7;//目标已经存在

	MASTER_CYCLEUNIT=10;

type

//声明数据结构
ROUTECFG = Record
	iCardType: Integer;//CAN接口卡类型
	iCardInd: Integer;//CAN接口卡序号
  iCANInd: Integer;//CAN路数
	wCANBaud: WORD;//0x311c - 10K,0x041c - 100K,0x001c - 500K
	wMasterID: WORD;//PCAN网络主站ID
	iMasterCycle: Integer;//PCAN网络主站定时循环参数
END;

PROUTECFG=^ROUTECFG;
PDWORD=^DWORD;
PBYTE=^BYTE;
PInteger=^Integer;


//添加一个PCAN网络,并设定PCAN网络参数
function Mgr_AddRoute ( pcfg : PROUTECFG;
                          phRoute : PDWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//删除一个PCAN网络
function Mgr_DelRoute (phRoute : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//删除所有PCAN网络
function Mgr_DelAllRoute () : DWORD;
  stdcall;
  external DLL_NAME;

//启动系统
function Mgr_StartSys () : DWORD;
  stdcall;
  external DLL_NAME;

//停止系统
function Mgr_StopSys () : DWORD;
  stdcall;
  external DLL_NAME;

//系统是否已启动
function Mgr_IsStarted () : DWORD;
  stdcall;
  external DLL_NAME;


//往指定PCAN网络中添加从站
function Route_AddSlave ( hRoute : DWORD;
                          SlaveID : DWORD;
                          phSlave : PDWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//删除指定PCAN网络中的从站
function Route_DelSlave ( hRoute : DWORD;
                          hSlave : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//删除指定PCAN网络中所有从站
function Route_DelAllSlave ( hRoute : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//设置指定PCAN网络配置参数
function Route_SetConfig ( hRoute : DWORD;
                          pcfg : PROUTECFG) : DWORD;
  stdcall;
  external DLL_NAME;

//获取指定PCAN网络配置参数
function Route_GetConfig ( hRoute : DWORD;
                          pcfg : PROUTECFG) : DWORD;
  stdcall;
  external DLL_NAME;

//通过从站ID在指定PCAN网络中获取该从站句柄
function Route_GetSlavebyID ( hRoute : DWORD;
                              SlaveID : DWORD;
                              phSlave : PDWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//异步连接所有从站
function Route_ConnectAllSlaveAsync ( hRoute : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//发送控制命令
function Route_IOCtl ( hRoute : DWORD;
                              code : DWORD;
                              pinbuf : PBYTE;
			      inlen : DWORD;
			      poutbuf : PBYTE;
			      outlen : DWORD) : DWORD;

//连接指定从站
function Slave_Connect ( hSlave : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//断开指定从站
function Slave_Disconnect ( hSlave : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//从站是否已连接
function Slave_IsConnected ( hSlave : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//获取指定从站ID
function Slave_GetID ( hSlave : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//获取指定从站IO数据长度
function Slave_GetIODataLen ( hSlave : DWORD;
                              pDI : PDWORD;
                              pDO : PDWORD;
                              pAI : PDWORD;
                              pAO : PDWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//获取指定从站AI数据
function Slave_GetAIData ( hSlave : DWORD;
                           pRecbuf : PBYTE;
                           pReclen : PDWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//获取指定从站DI数据
function Slave_GetDIData ( hSlave : DWORD;
                           pRecbuf : PBYTE;
                           pReclen : PDWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//从指定从站接收AI/DI数据
function Slave_GetData ( hSlave : DWORD;
                          SourceID : DWORD;
                          pRecbuf : PBYTE;
                          PReclen : PDWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//往指定从站发送AO/DO数据
function Slave_SendData ( hSlave : DWORD;
                          SourceID : DWORD;
                          pSendbuf : PBYTE;
                          Sendlen : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//设置指定从站配置参数
function Slave_SetConfig ( hSlave : DWORD;
                          SourceID : DWORD;
                          pSubsourceID : PDWORD;
                          pSendbuf : PBYTE;
                          Sendlen : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//获取指定从站配置参数
function Slave_GetConfig ( hSlave : DWORD;
                          SourceID : DWORD;
                          pSubsourceID : PDWORD;
                          pRecbuf : PBYTE;
                          Reclen : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;

//设置从站的数据刷新周期,默认为ROUTECFG.iMasterCycle,单位10ms
function Slave_SetCycle ( hSlave : DWORD;
                          dwCycle : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;


function Slave_GetCycle ( hSlave : DWORD) : DWORD;
  stdcall;
  external DLL_NAME;
  
implementation

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -