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

📄 module1.bas

📁 iCAN主站库[windows平台DLL],用于开发iCAN系统windows平台程序[上位机程序]
💻 BAS
字号:
Attribute VB_Name = "Module1"

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

Public Const ICANOK As Integer = 0
Public Const ICANERR_FUNCNOTEXIST As Integer = &H1
Public Const ICANERR_SRCNOTEXIST As Integer = &H2
Public Const ICANERR_CMDNOTSUPPORT As Integer = &H3
Public Const ICANERR_CMDILLEGAL As Integer = &H4
Public Const ICANERR_CONNECTNOTEXIST As Integer = &H5

Public Const ICANERR As Integer = &HF1
Public Const ICANERR_USING As Integer = &HF3
Public Const ICANERR_SETCAN As Integer = &HF4
Public Const ICANERR_SRVSTARTED As Integer = &HF5
Public Const ICANERR_TIMEOUT As Integer = &HF6
Public Const ICANERR_ITEMEXIST As Integer = &HF7

Public Const MASTER_CYCLEUNIT As Integer = 10

Type ROUTECFG
    iCardType As Long    '//CAN接口卡类型
    iCardInd As Long   '//CAN接口卡序号
    iCANInd As Long '//CAN路数
    wCANBaud As Integer  '//0x311c - 10K,0x041c - 100K,0x001c - 500K
    wMasterID As Integer  '//PCAN网络主站ID
    iMasterCycle As Long '//PCAN网络主站定时循环参数
End Type



Declare Function VCI_OpenDevice Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal Reserved As Long) As Long

'添加一个PCAN网络,并设定PCAN网络参数
Declare Function Mgr_AddRoute Lib "icandll.dll" (ByRef cfg As ROUTECFG, ByRef phRoute As Long) As Long

'删除一个PCAN网络
Declare Function Mgr_DelRoute Lib "icandll.dll" (ByVal hRoute As Long) As Long

'删除所有PCAN网络
Declare Function Mgr_DelAllRoute Lib "icandll.dll" () As Long

'启动系统
Declare Function Mgr_StartSys Lib "icandll.dll" () As Long

'停止系统
Declare Function Mgr_StopSys Lib "icandll.dll" () As Long

'系统是否已启动
Declare Function Mgr_IsStarted Lib "icandll.dll" () As Long

'往指定PCAN网络中添加从站
Declare Function Route_AddSlave Lib "icandll.dll" (ByVal hRoute As Long, ByVal slaveid As Long, ByRef phSlave As Long) As Long

'删除指定PCAN网络中的从站
Declare Function Route_DelSlave Lib "icandll.dll" (ByVal hRoute As Long, ByVal hslave As Long) As Long

'删除指定PCAN网络中所有从站
Declare Function Route_DelAllSlave Lib "icandll.dll" (ByVal hRoute As Long) As Long

'设置指定PCAN网络配置参数
Declare Function Route_SetConfig Lib "icandll.dll" (ByVal hRoute As Long, ByRef cfg As ROUTECFG) As Long

'获取指定PCAN网络配置参数
Declare Function Route_GetConfig Lib "icandll.dll" (ByVal hRoute As Long, ByRef cfg As ROUTECFG) As Long

'通过从站ID在指定PCAN网络中获取该从站句柄
Declare Function Route_GetSlavebyID Lib "icandll.dll" (ByVal hRoute As Long, ByVal slaveid As Long, ByRef phSlave As Long) As Long

'异步连接所有从站
Declare Function Route_ConnectAllSlaveAsync Lib "icandll.dll" (ByVal hRoute As Long) As Long

'发送控制命令
Declare Function Route_IOCtl Lib "icandll.dll" (ByVal hRoute As Long, ByVal code As Long, ByRef pinbuf As Byte, ByVal inlen As Long, ByRef poutbuf As Byte, ByVal outlen As Long) As Long


'连接指定从站
Declare Function Slave_Connect Lib "icandll.dll" (ByVal hslave As Long) As Long

'断开指定从站
Declare Function Slave_Disconnect Lib "icandll.dll" (ByVal hslave As Long) As Long

'从站是否已连接
Declare Function Slave_IsConnected Lib "icandll.dll" (ByVal hslave As Long) As Long

'获取指定从站ID
Declare Function Slave_GetID Lib "icandll.dll" (ByVal hslave As Long) As Long

'获取指定从站IO数据长度
Declare Function Slave_GetIODataLen Lib "icandll.dll" (ByVal hslave As Long, ByRef pDI As Long, ByRef pDO As Long, ByRef pAI As Long, ByRef pAO As Long) As Long

'获取指定从站AI数据
Declare Function Slave_GetAIData Lib "icandll.dll" (ByVal hslave As Long, ByRef pRecbuf As Byte, ByRef pReclen As Long) As Long

'获取指定从站DI数据
Declare Function Slave_GetDIData Lib "icandll.dll" (ByVal hslave As Long, ByRef pRecbuf As Byte, ByRef pReclen As Long) As Long

'从指定从站接收AI/DI数据
Declare Function Slave_GetData Lib "icandll.dll" (ByVal hslave As Long, ByVal SourceID As Long, ByRef pRecbuf As Byte, ByRef pReclen As Long) As Long

'往指定从站发送AO/DO数据
Declare Function Slave_SendData Lib "icandll.dll" (ByVal hslave As Long, ByVal SourceID As Long, ByRef pSendbuf As Byte, ByVal Sendlen As Long) As Long

'设置指定从站配置参数
'如果没有子资源ID,则把pSubsourceID设为&HFFFFFFFF
Declare Function Slave_SetConfig Lib "icandll.dll" (ByVal hslave As Long, ByVal SourceID As Long, ByRef pSubsourceID As Long, _
                                                    ByRef pSendbuf As Byte, ByVal Sendlen As Long) As Long
                                
'获取指定从站配置参数
'如果没有子资源ID,则把pSubsourceID设为&HFFFFFFFF
Declare Function Slave_GetConfig Lib "icandll.dll" (ByVal hslave As Long, ByVal SourceID As Long, ByRef pSubsourceID As Long, _
                                                    ByRef pRecbuf As Byte, ByVal Reclen As Long) As Long

'设置从站的数据刷新周期,默认为ROUTECFG.iMasterCycle,单位10ms
Declare Function Slave_SetCycle Lib "icandll.dll" (ByVal hslave As Long, ByVal dwCycle As Long) As Long

Declare Function Slave_GetCycle Lib "icandll.dll" (ByVal hslave As Long) As Long

⌨️ 快捷键说明

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