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

📄 mbdlltool.h

📁 《WinCE.NET嵌入式工业用控制器及自动控制系统设计》的源代码
💻 H
字号:
// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the WINCONSDK_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// WINCONSDK_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifdef MBTOOL_API_EXPORTS
#define MBTOOL_API extern "C" __declspec(dllexport)
#else
#define MBTOOL_API extern "C" __declspec(dllimport)
#endif

//#define EXPORTED_DLL_FUNCTION \
// __declspec(dllexport) __stdcall

//Modbus Master RTU functions
MBTOOL_API int MBRTUInit(int iPortNumber, int iBaudrate,int iParity, int iDataBit, int iStopBit, int iTimeOut); 
MBTOOL_API int MBRTU_R_Coils(int iPortNumber, int iSlaveNumber, int iStartAddress, int iCount, unsigned char *iRecv, int iFuncNumber /*1/2 up to the modbus device*/);
MBTOOL_API int MBRTU_W_Coil(int iPortNumber, int iSlaveNumber, int iCoilAddress, int iCoilStatus); // Fun 5
MBTOOL_API int MBRTU_R_Registers(int iPortNumber, int iSlaveNumber, int iStartAddress, int iCount, short *iRecv, int iFuncNumber /*3/4 up to the modbus device*/);	
MBTOOL_API int MBRTU_W_Register(int iPortNumber, int iSlaveNumber, int iRegAddress, short iRegStatus); // Fun 6
MBTOOL_API void MBRTUClose(int iPortNumber);
MBTOOL_API int MBRTU_W_Multi_Coils(int iPortNumber, int iSlaveNumber, int iCoilAddress, int iCount, unsigned char *iCoilStatus); // Fun 15
MBTOOL_API int MBRTU_W_Multi_Registers(int iPortNumber, int iSlaveNumber, int iRegAddress, int iCount, short *iRegStatus); // Fun 16
//Modbus Master ASCII functions
MBTOOL_API int MBASCInit(int iPortNumber, int iBaudrate,int iParity, int iDataBit, int iStopBit, int iTimeOut); 
MBTOOL_API int MBASC_R_Coils(int iPortNumber, int iSlaveNumber, int iStartAddress, int iCount, unsigned char *iRecv, int iFuncNumber /*1/2 up to the modbus device*/);
MBTOOL_API int MBASC_W_Coil(int iPortNumber, int iSlaveNumber, int iCoilAddress, int iCoilStatus); // Fun 5
MBTOOL_API int MBASC_R_Registers(int iPortNumber, int iSlaveNumber, int iStartAddress, int iCount, short *iRecv, int iFuncNumber /*3/4 up to the modbus device*/);	
MBTOOL_API int MBASC_W_Register(int iPortNumber, int iSlaveNumber, int iRegAddress, short iRegStatus); // Fun 6
MBTOOL_API void MBASCClose(int iPortNumber);
MBTOOL_API int MBASC_W_Multi_Coils(int iPortNumber, int iSlaveNumber, int iCoilAddress, int iCount, unsigned char *iCoilStatus); // Fun 15
MBTOOL_API int MBASC_W_Multi_Registers(int iPortNumber, int iSlaveNumber, int iRegAddress, int iCount, short *iRegStatus); // Fun 16
//Modbus Master TCP functions
MBTOOL_API int MBTCPInit(int iSocketNumber, char *tcpipaddr, int tcpipport, int iTimeOut); // Return 1==>True 0==>False
MBTOOL_API int MBTCP_R_Coils(int iSocketNumber,int iSlaveNumber, int iStartAddress, int iCount, unsigned char *iRecv, int iFuncNumber /*1/2 up to the modbus device*/);	//Function 1/2 Return 1==>True 0==>False
MBTOOL_API int MBTCP_W_Coil(int iSocketNumber, int iSlaveNumber, int iCoilAddress, int iCoilStatus);	//Function 15 Return 1==>True 0==>False
MBTOOL_API int MBTCP_R_Registers(int iSocketNumber, int iSlaveNumber, int iStartAddress, int iCount, short *iRecv, int iFuncNumber /*3/4 up to the modbus device*/);	//Function 3/4 Return 1==>True 0==>False
MBTOOL_API int MBTCP_W_Register(int iSocketNumber, int iSlaveNumber, int iRegAddress, short iRegStatus);	//Function 16 iRegStatus==>-32768~32767 Return 1==>True 0==>False 
MBTOOL_API void MBTCPClose(int iSocketNumber);	//Return 1==>True 0==>False
MBTOOL_API int MBTCP_W_Multi_Coils(int iPortNumber, int iSlaveNumber, int iCoilAddress, int iCount, unsigned char *iCoilStatus); // Fun 15
MBTOOL_API int MBTCP_W_Multi_Registers(int iPortNumber, int iSlaveNumber, int iRegAddress, int iCount, short *iRegStatus); // Fun 16
//Modbus SLave RTU functions
MBTOOL_API int SLRTUInit(int iPortNumber, int iBaudrate,int iParity, int iDataBit, int iStopBit, int iTimeOut); 
MBTOOL_API int SLRTU_Wait_Query(int iPortNumber, int *iSlaveNumber, int *iStartAddress, int *iCount, int *iFuncNumber);
MBTOOL_API int SLRTU_Set_Coils(int iPortNumber, unsigned char *coil); 
MBTOOL_API int SLRTU_Set_Registers(int iPortNumber, unsigned short *reg); 
MBTOOL_API int SLRTU_Get_Coils(int iPortNumber, unsigned char *coil);
MBTOOL_API int SLRTU_Get_Registers(int iPortNumber, unsigned short *reg); 
MBTOOL_API int SLRTU_Send_Exception(int iPortNumber, unsigned char code);
MBTOOL_API void SLRTUClose(int iPortNumber);
//Modbus SLave ASCII functions
MBTOOL_API int SLASCInit(int iPortNumber, int iBaudrate,int iParity, int iDataBit, int iStopBit, int iTimeOut); 
MBTOOL_API int SLASC_Wait_Query(int iPortNumber, int *iSlaveNumber, int *iStartAddress, int *iCount, int *iFuncNumber);
MBTOOL_API int SLASC_Set_Coils(int iPortNumber, unsigned char *coil); 
MBTOOL_API int SLASC_Set_Registers(int iPortNumber, unsigned short *reg); 
MBTOOL_API int SLASC_Get_Coils(int iPortNumber, unsigned char *coil);
MBTOOL_API int SLASC_Get_Registers(int iPortNumber, unsigned short *reg); 
MBTOOL_API int SLASC_Send_Exception(int iPortNumber, unsigned char code);
MBTOOL_API void SLASCClose(int iPortNumber);
//Modbus SLave TCP functions
MBTOOL_API int SLTCPInit(int tcpipport); 
MBTOOL_API int SLTCP_Wait_Query(int *iSlaveNumber, int *iStartAddress, int *iCount, int *iFuncNumber);
MBTOOL_API int SLTCP_Has_Query(int *iSlaveNumber, int *iStartAddress, int *iCount, int *iFuncNumber);
MBTOOL_API int SLTCP_Set_Coils(unsigned char *coil); 
MBTOOL_API int SLTCP_Set_Registers(unsigned short *reg); 
MBTOOL_API int SLTCP_Get_Coils(unsigned char *coil);
MBTOOL_API int SLTCP_Get_Registers(unsigned short *reg); 
MBTOOL_API int SLTCP_Send_Exception(unsigned char code);
MBTOOL_API void SLTCPClose(void);
//Bit Pattern sub.
MBTOOL_API int Coil_Bit_Read(unsigned char *coil, int bitno); 
MBTOOL_API int Coil_Bit_Write(unsigned char *coil, int bitno, int onoff); 

#define    iPARITY_NONE   0
#define    iPARITY_ODD    1
#define    iPARITY_EVEN   2

// Modbus exception code 
#define    MB_RTC_OK                      0
#define    MB_ILLEGAL_FUNCTION            1
#define    MB_ILLEGAL_DATA_ADDRESS        2
#define    MB_ILLEGAL_DATA_VALUE          3
#define    MB_SLAVE_DEVICE_FAILURE        4
#define    MB_ACKNOWLEDGE                 5
#define    MB_SLAVE_DEVICE_BUSY           6
#define    MB_NEGATIVE_ACKNOWLEDGE        7
#define    MB_MEMORY_PARITY_ERROR         8
//#define    MB_ILLEGAL_FUNCTION          9    // undefine code
#define    MB_GATEWAY_PATH_UNAVAILABLE    10
#define    MB_GATEWAY_FAILED_TO_RESPOND   11
// DLL sub. parameter error
#define    MB_OPEN_PORT_ERROR   101  // Open COM/TCP Port error
#define    MB_PORTNO_OVER       102  // COM Port is 1 - 8
#define    MB_PORT_NOT_OPEN     103  // COM/TCP Port does not open yet
#define    MB_FUN_ERROR         104  // Modbus Fun. No. error
#define    MB_READ_COUNT_OVER   105  // reading Count of Register or Bits is over range
                                     // RTU: 120 register, 1920 coils
                                     // ASCII: 60 register, 960 coils
                                     // TCP: 120 register, 1920 coils
#define    MB_SLAVENO_OVER      106  // Modbus Slave No. must be 1 - 247
#define    MB_ADDRESS_OVER      107  // Register or Coil Address must count from 1
#define    MB_COMM_TIMEOUT      108  // Comm. timeout
#define    MB_CRC_ERROR         109  // RTU CRC Check error
#define    MB_LRC_ERROR         110  // ASCII LRC Check error
#define    MB_INVALID_SOCKET    111  // Initial Socket error
#define    MB_TCP_CONNECT_ERROR 112  // Connect Remote Modbus Server error
#define    MB_TCP_SEND_ERROR    113  // Send TCP Data error
#define    MB_TCP_TIMEOUT       114  // Waiting Modbus Response Timeout
#define    MB_WSA_INIT_ERROR    115  // WSA Startup error
#define    MB_TCP_SOCKET_ERROR  116  // Create Socket error
#define    MB_TCP_BIND_ERROR    117  // TCP Server Bind error
#define    MB_TCP_LISTEN_ERROR  118  // TCP Server Listen error
#define    MB_TCP_HAS_DATA      119  // it has data from remote Modbus Master
#define    MB_WRITE_COUNT_OVER  120  // reading Count of Register or Bits is over range
                                     // RTU: 120 register, 1920 coils
                                     // ASCII: 60 register, 960 coils
                                     // TCP: 120 register, 1920 coils

⌨️ 快捷键说明

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