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

📄 adamtcp.h

📁 关于台湾研华远程以太网模块上位机控制源代码
💻 H
字号:
#ifdef __cplusplus
     #define EXPORTS extern "C" __declspec (dllexport)
#else
     #define EXPORTS
#endif

/*============================================================================*/
/* This block is data structure                                               */
/*============================================================================*/
struct _StreamData
{
    WORD DIO[8];     // DI/DO data for Slot0, Slot1,...., Slot7
    WORD Slot0[8];   // AI/AO data for slot0
    WORD Slot1[8];   // AI/AO data for slot1
    WORD Slot2[8];   // AI/AO data for slot2
    WORD Slot3[8];   // AI/AO data for slot3
    WORD Slot4[8];   // AI/AO data for slot4
    WORD Slot5[8];   // AI/AO data for slot5
    WORD Slot6[8];   // AI/AO data for slot6
    WORD Slot7[8];   // AI/AO data for slot6
};   //StreamData,*pStreamData;

struct _AlarmInfo
{
	BYTE   bySlot;		   // the Slot of 5000/TCP which cause the alarm change	
	BYTE   byChannel;      // the Channel of 5000/TCP which cause the alarm change	
	BYTE   byAlarmType;    // 0: Low Alarm, 1: High Alarm
	BYTE   byAlarmStatus;  // 0: Alarm Off, 1: Alarm On
	BYTE   byIndexOf5KTCP; // indicate the index 5000/TCP which cause the alarm change, zero-based
	char   szIP[20];       // the IP address which cause the alarm change
	char   szDateTime[48]; // e.x 2001/09/23 10:12:34:567 (Year/Month/Day Hour:Minute:Second:mSecond)
};

/*============================================================================*/
/* This block is for ADAM 5000 TCP only                                       */
/*============================================================================*/
// return code
#define    ADAM5KTCP_NoError                      0
#define    ADAM5KTCP_StartupFailure               (-1)
#define    ADAM5KTCP_SocketFailure                (-2)
#define    ADAM5KTCP_UdpSocketFailure             (-3)
#define    ADAM5KTCP_SetTimeoutFailure            (-4)
#define    ADAM5KTCP_SendFailure                  (-5)
#define    ADAM5KTCP_ReceiveFailure               (-6)
#define    ADAM5KTCP_ExceedMaxFailure             (-7)
#define    ADAM5KTCP_CreateWsaEventFailure        (-8)
#define    ADAM5KTCP_ReadStreamDataFailure        (-9)
#define    ADAM5KTCP_InvalidIP                    (-10)
#define    ADAM5KTCP_ThisIPNotConnected           (-11)
#define    ADAM5KTCP_AlarmInfoEmpty               (-12)

// always receiving sream data in despite of if alarm change
#define    ADAM5KTCP_ReceiveStreamIngoreAlarm     0  
// only receiving sream data when any alarm status change
// for example:    Hi-Alarm On -> Off , Hi-Alarm Off ->On, 
//                 Lo-Alarm On -> Off , Lo-Alarm Off ->On
#define    ADAM5KTCP_ReceiveStreamWhenAlarm       1

// the functions for ADAM-5000/TCP only
EXPORTS int  CALLBACK ADAM5KTCP_Open(void);
EXPORTS void CALLBACK ADAM5KTCP_Close(void);
EXPORTS int  CALLBACK ADAM5KTCP_Connect(char szIP[], unsigned short port,
							                     int iConnectionTimeout, int iSendTimeout, 
							                     int iReceiveTimeout);
EXPORTS void CALLBACK ADAM5KTCP_Disconnect(void);
EXPORTS int  CALLBACK ADAM5KTCP_ModuleDisconnect(char szIP[]);
EXPORTS int  CALLBACK ADAM5KTCP_GetDLLVersion(void);
EXPORTS int  CALLBACK ADAM5KTCP_ReadReg(char szIP[], WORD wIDAddr,  WORD wStartAddress, WORD wCount, WORD wData[]); 
EXPORTS int  CALLBACK ADAM5KTCP_WriteReg(char szIP[], WORD wIDAddr, WORD wStartAddress, WORD wCount, WORD wData[]);
EXPORTS int  CALLBACK ADAM5KTCP_ReadCoil(char szIP[], WORD wIDAddr, WORD wStartAddress, WORD wCount, BYTE byData[]); 
EXPORTS int  CALLBACK ADAM5KTCP_WriteCoil(char szIP[], WORD wIDAddr,WORD wStartAddress, WORD wCount, BYTE byData[]);
EXPORTS int  CALLBACK ADAM5KTCP_SendReceive5KTCPCmd(char szIP[], char szSendToTCP[],  char szReceiveFromTCP[], 
							                        char szModbusSend[], char szModbusReceive[]);

//---- functions for Stream Data ---
EXPORTS int  CALLBACK ADAM5KTCP_Add5KTCPForStream(char szIP[]);
EXPORTS int  CALLBACK ADAM5KTCP_ReadStreamData(char szIP[], struct _StreamData  *pStreamData);
EXPORTS int  CALLBACK ADAM5KTCP_ReadAlarmInfo(struct _AlarmInfo  *pAlarmInfo);
EXPORTS int  CALLBACK ADAM5KTCP_StartStream(HANDLE *EventFromApp );
EXPORTS int  CALLBACK ADAM5KTCP_StopStream( );
EXPORTS int  CALLBACK ADAM5KTCP_SetStreamAlarmState(WORD wStreamAlarmState);
EXPORTS int  CALLBACK ADAM5KTCP_Debug(int *iMatchIndex, int *iReceiveCount, int *iThreadRun, 
										int *iTotalStream, char szFromIP[]);
										
//---- functions for UDP command ---										
EXPORTS int  CALLBACK ADAM5KTCP_UDPOpen(int iSendTimeout, int iReceiveTimeout);
EXPORTS int  CALLBACK ADAM5KTCP_UDPClose();
EXPORTS int  CALLBACK ADAM5KTCP_SendReceiveUDPCmd(char szIP[], char szSend[], char szReceive[]);


/*============================================================================*/
/*============================================================================*/
/* This bloack is for both ADAM 5000/6000 TCP                                 */
/*============================================================================*/
/*============================================================================*/
//--- define Gain -----
#define ADAMTCP_BI_10V			0    // -10V ~ 10V
#define ADAMTCP_BI_5V			1    // -5V ~ 5V 
#define ADAMTCP_BI_2Point5V		2    // -2.5V ~ 2.5V 
#define ADAMTCP_BI_1V			3    // -1V ~ 1V
#define ADAMTCP_BI_500mV		4    // -500mV ~ 500mV
#define ADAMTCP_BI_150mV		5    // -150mV ~ 150mV
#define ADAMTCP_BI_100mV		6    // -100mV ~ 100mV
#define ADAMTCP_BI_50mV			7    // -50mV ~ 50mV
#define ADAMTCP_BI_15mV			8    // -15mV ~ 15mV
#define ADAMTCP_UNI_4TO20mA		9    // 4 ~ 20mA
#define ADAMTCP_UNI_0TO20mA		10   // 0 ~ 20mA
#define ADAMTCP_BI_20mA			11   // -20 ~ 20mA

#define ADAMTCP_UNI_0TO100C		12	// 0~+100 C
#define ADAMTCP_UNI_0TO200C		13	// 0~+200 C
#define ADAMTCP_UNI_0TO400C		14	// 0~+400 C
#define ADAMTCP_BI_30TO120C		15	// -30~+120 C
#define ADAMTCP_BI_40TO160C		16	// -40~+160 C
#define ADAMTCP_BI_50TO150C		17	// -50~+150 C
#define ADAMTCP_BI_80TO120C		18	// -80~+100 C
#define ADAMTCP_BI_200C			19	// -200~+200 C

#define ADAMTCP_TypeB			20   // TypeB 500-1800'C
#define ADAMTCP_TypeE			21   // TypeE 0-1000'C
#define ADAMTCP_TypeJ			22   // TypeJ 0-760'C
#define ADAMTCP_TypeK			23   // TypeK 0-1370'C
#define ADAMTCP_TypeR			24   // TypeR 500-1750'C
#define ADAMTCP_TypeS			25   // TypeS 500-1750'C
#define ADAMTCP_TypeT			26   // TypeT -100 to 400'C

// return code
#define    ADAMTCP_NoError                      0
#define    ADAMTCP_StartupFailure               (-1)
#define    ADAMTCP_SocketFailure                (-2)
#define    ADAMTCP_UdpSocketFailure             (-3)
#define    ADAMTCP_SetTimeoutFailure            (-4)
#define    ADAMTCP_SendFailure                  (-5)
#define    ADAMTCP_ReceiveFailure               (-6)
#define    ADAMTCP_ExceedMaxFailure             (-7)
#define    ADAMTCP_CreateWsaEventFailure        (-8)
#define    ADAMTCP_ReadStreamDataFailure        (-9)
#define    ADAMTCP_InvalidIP                    (-10)
#define    ADAMTCP_ThisIPNotConnected           (-11)
#define    ADAMTCP_AlarmInfoEmpty               (-12)
#define    ADAMTCP_NotSupportModule             (-13)
#define    ADAMTCP_ExceedDONo                   (-14)
#define    ADAMTCP_InvalidRange                 (-15)
#define    ADAMTCP_EventError                   (-100)

// always receiving sream data in despite of if alarm change
#define    ADAMTCP_ReceiveStreamIngoreAlarm     0 

// only receiving sream data when any alarm status change
// for example:    Hi-Alarm On -> Off , Hi-Alarm Off ->On, 
//                 Lo-Alarm On -> Off , Lo-Alarm Off ->On
#define    ADAMTCP_ReceiveStreamWhenAlarm       1

// the functions for ADAM-5000/TCP and ADAM-6000/TCP
EXPORTS int  CALLBACK ADAMTCP_Open(void);
EXPORTS void CALLBACK ADAMTCP_Close(void);
EXPORTS int  CALLBACK ADAMTCP_Connect(char szIP[], unsigned short port,
							                 int iConnectionTimeout, int iSendTimeout, 
							                 int iReceiveTimeout);
EXPORTS void CALLBACK ADAMTCP_Disconnect(void);
EXPORTS int  CALLBACK ADAMTCP_ModuleDisconnect(char szIP[]);
EXPORTS int  CALLBACK ADAMTCP_GetDLLVersion(void);
EXPORTS int  CALLBACK ADAMTCP_ReadReg(char szIP[], WORD wIDAddr,  WORD wStartAddress, WORD wCount, WORD wData[]); 
EXPORTS int  CALLBACK ADAMTCP_WriteReg(char szIP[], WORD wIDAddr, WORD wStartAddress, WORD wCount, WORD wData[]);
EXPORTS int  CALLBACK ADAMTCP_ReadCoil(char szIP[], WORD wIDAddr, WORD wStartAddress, WORD wCount, BYTE byData[]); 
EXPORTS int  CALLBACK ADAMTCP_WriteCoil(char szIP[], WORD wIDAddr,WORD wStartAddress, WORD wCount, BYTE byData[]);
EXPORTS int  CALLBACK ADAMTCP_SendReceive5KTCPCmd(char szIP[],  
							                             char szSendToTCP[],  char szReceiveFromTCP[], 
							                             char szModbusSend[], char szModbusReceive[]);
EXPORTS int  CALLBACK ADAMTCP_SendReceive6KTCPCmd(char szIP[],  
							                             char szSendToTCP[],  char szReceiveFromTCP[], 
							                             char szModbusSend[], char szModbusReceive[]);
EXPORTS int  CALLBACK ADAMTCP_AddTCPForStream(char szIP[]);
EXPORTS int  CALLBACK ADAMTCP_ReadStreamData(char szIP[], struct _StreamData  *pStreamData);
EXPORTS int  CALLBACK ADAMTCP_ReadAlarmInfo(struct _AlarmInfo  *pAlarmInfo);
EXPORTS int  CALLBACK ADAMTCP_StartStream(HANDLE *EventFromApp );
EXPORTS int  CALLBACK ADAMTCP_StopStream( );
EXPORTS int  CALLBACK ADAMTCP_SetStreamAlarmState(WORD wStreamAlarmState);
EXPORTS int  CALLBACK ADAMTCP_Debug(int *iMatchIndex, int *iReceiveCount, int *iThreadRun, 
											   int *iTotalStream, char szFromIP[]);
EXPORTS int  CALLBACK ADAMTCP_UDPOpen(int iSendTimeout, int iReceiveTimeout);
EXPORTS int  CALLBACK ADAMTCP_UDPClose();
EXPORTS int  CALLBACK ADAMTCP_SendReceiveUDPCmd(char szIP[], char szSend[], char szReceive[]);
EXPORTS int  CALLBACK ADAMTCP_SendReceive6KUDPCmd(char szIP[], char szSend[], char szReceive[]);
EXPORTS int  CALLBACK ADAMTCP_Read6KDIO(char szIP[],  WORD wModule,  WORD wIDAddr,
										          BYTE byDI[], BYTE byDO[]);
EXPORTS int  CALLBACK ADAMTCP_Write6KDO(char szIP[], WORD wModule, WORD wIDAddr, 
									             WORD wStartDO, WORD wCount, BYTE byDO[]);
EXPORTS int  CALLBACK ADAMTCP_Read6KAI(char szIP[],  WORD wModule,  WORD wIDAddr, WORD wGain[],
									            WORD wHex[],  double dlValue[]);
EXPORTS int  CALLBACK ADAMTCP_Read6KDIOMode(char szIP[], WORD wModule, WORD wIDAddr, 
                                            BYTE byDIStatus[], BYTE byDOStatus[]);
EXPORTS int  CALLBACK ADAMTCP_Write6KDIOMode(char szIP[], WORD wModule, WORD wIDAddr, 
                                           BYTE byDIStatus[], BYTE byDOStatus[]);
EXPORTS int  CALLBACK ADAMTCP_Read6KSignalWidth(char szIP[], WORD wModule, WORD wIDAddr, 
                                                unsigned long ulLoWidth[], 
                                                unsigned long ulHiWidth[]);
EXPORTS int  CALLBACK ADAMTCP_Write6KSignalWidth(char szIP[], WORD wModule, WORD wIDAddr, 
                                               unsigned long ulLoWidth[], 
                                               unsigned long ulHiWidth[]);
EXPORTS int  CALLBACK ADAMTCP_Read6KCounter(char szIP[], WORD wModule, WORD wIDAddr,  
                                          unsigned long  ulCounterValue[]);
EXPORTS int  CALLBACK ADAMTCP_Clear6KCounter(char szIP[], WORD wIDAddr,  
					                           WORD wChIndex, WORD wData);
EXPORTS int  CALLBACK ADAMTCP_Start6KCounter(char szIP[], WORD wIDAddr,  
					                         WORD wChIndex);
EXPORTS int  CALLBACK ADAMTCP_Stop6KCounter(char szIP[], WORD wIDAddr,  
					                         WORD wChIndex);
EXPORTS int  CALLBACK ADAMTCP_Clear6KDILatch(char szIP[], WORD wIDAddr,  
					                              WORD wChIndex);
EXPORTS int  CALLBACK ADAMTCP_Read6KPulseDelayWidth(char szIP[], 
													WORD wModule, WORD wIDAddr, 
													unsigned long ulLoPulseWidth[],
													unsigned long ulHiPulseWidth[],
													unsigned long ulLoDelayWidth[],
													unsigned long ulHiDelayWidth[]);
EXPORTS int  CALLBACK ADAMTCP_Read6KSinglePulseDelayWidth(char szIP[], 
													WORD wModule, WORD wIDAddr, WORD wChIndex,
													unsigned long *ulLoPulseWidth,
													unsigned long *ulHiPulseWidth,
													unsigned long *ulLoDelayWidth,
													unsigned long *ulHiDelayWidth);
EXPORTS int  CALLBACK ADAMTCP_Write6KPulseDelayWidth(char szIP[],
													WORD wModule, WORD wIDAddr, 
													unsigned long ulLoPulseWidth[], // Pulse Min output signal width at low level
													unsigned long ulHiPulseWidth[], // Pulse Min output signal width at high level
													unsigned long ulLoDelayWidth[], // Delay Min output signal width at low level
													unsigned long ulHiDelayWidth[]); // Delay Min output signal width at high level
EXPORTS int  CALLBACK ADAMTCP_Write6KPulseDelayWidthRuntime(char szIP[],
													WORD wModule, WORD wIDAddr, 
													unsigned long ulLoWidth[],
													unsigned long ulHiWidth[]);
EXPORTS int  CALLBACK ADAMTCP_PulseOutputCount(char szIP[], 
											   WORD wModule, WORD wIDAddr,
											   WORD wChannelIndex, 
											   unsigned long ulPulseCount);
			                                           
///////////////////////////////////////////////////////////////////////
// Function : Event Trigger
// Author   : Tony Liu
// Date     : Aug. 27, 2002
///////////////////////////////////////////////////////////////////////

#define ADAMTCP_TYPE_DIO		 0x1000
#define ADAMTCP_TYPE_AIO		 0x2000
#define ADAMTCP_TYPE_HIALARM	 0x3000
#define ADAMTCP_TYPE_LOALARM	 0x4000
#define ADAMTCP_TYPE_CONNECT	 0xF000
// status
#define ADAMTCP_STATUS_NO_CHANGE 0x000
#define ADAMTCP_STATUS_ON_TO_OFF 0x100
#define ADAMTCP_STATUS_OFF_TO_ON 0x200
#define ADAMTCP_STATUS_LOST		 0xFFF

EXPORTS void  CALLBACK ADAMTCP_InitializeEventTrigger();
EXPORTS void  CALLBACK ADAMTCP_TerminateEventTrigger();

EXPORTS int  CALLBACK ADAMTCP_AddModuleIP(char szIP[], int iAliveInterval);
EXPORTS int  CALLBACK ADAMTCP_StartEventTrigger(HANDLE EventFromApp);
EXPORTS int  CALLBACK ADAMTCP_StopEventTrigger();
EXPORTS int  CALLBACK ADAMTCP_ReadEventInfo(long *lIP, long *lSlot, long *lChannel, 
											long *lType, long *lStatus, long *lValue, long *lDateTime);
EXPORTS int  CALLBACK ADAMTCP_ReadEventPattern(long *lIP, unsigned char szPattern[], int *len);

⌨️ 快捷键说明

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