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

📄 abplc5.h

📁 在LINUX环境下
💻 H
字号:

#ifndef __ABPLC5_H__
#define __ABPLC5_H__


#include "libabplc5.h"

#include "dbTypes.H"
#include "sesDbg.H"
#include "sesLogErr.H"



#define		CIP_ERROR	(-4)

#undef __EXPORT 
/*#ifdef WIN32
#ifdef LIB_DLL
#define __EXPORT __declspec(dllexport)
#else
#define __EXPORT __declspec(dllimport)
#endif
#endif*/
#define __EXPORT

/*---------------------------------------------------------------------------
** 变量名的别名,便于代码与操作系统分离
**---------------------------------------------------------------------------
*/

#ifdef WIN32
	typedef int				BOOL;
	typedef int				INT32;
	typedef unsigned int	UINT32;
#else
	typedef unsigned char	BOOL;
	typedef signed long		INT32;
	typedef unsigned long	UINT32;
#endif

//typedef int			CIP_INT;
//typedef void			CIP_VOID;


typedef signed char		INT8;
typedef unsigned char	UINT8;
typedef char			CIP_CHAR;
typedef signed short	INT16;
typedef unsigned short	UINT16;
typedef float			CIP_FLOAT;
typedef double			CIP_DOUBLE;

typedef INT16           LeINT16;
typedef INT32           LeINT32;
typedef UINT16          LeUINT16;
typedef UINT32          LeUINT32;

#ifdef WIN32
	#define EXTFUNC extern "C"
#else
	#define EXTFUNC extern
#endif

#if 0
/*---------------------------------------------------------------------------
** TAG DATA TYPE
**---------------------------------------------------------------------------
*/
typedef enum TagDataTypeID
{
	cipUNKNOWN = 0,
	cipLOGICAL,
	cipUINT8,
	cipINT8,
	cipUINT16,
	cipINT16,
	cipUINT32,
	cipINT32,
	cipFLOAT,
	cipDOUBLE,
	cipTIME,			/*PLC系统时钟*/
	cipBYTES4,
	cipBYTES8,
	cipBYTES16,
	cipBYTES20,
	cipBYTES32,
	cipBYTES48,
	cipBYTES64,
	cipBYTES128,
	cipBYTES200,
	cipBYTES256,
	cipREF,
	cipDWORD
}TagDataTypeID;
#endif

/*TAG 长度*/
#define TAG_MAX_LENGTH	64

//typedef unsigned char			CIP_CHAR;

typedef dtTypeEnum TagDataTypeID;

//typedef  void (*CIPPublishData)(void *,char *,int,void *);


typedef struct TagData
{
	CIP_CHAR		TagName[TAG_MAX_LENGTH];	/*标签名称*/
	TagDataTypeID	type;						/*数据类型*/
	dtUInt16			rowStart;						//数组第一维起始位置
	dtUInt16			colStart;						//数组第二维起始位置	//
	dtUInt16			row;						/*数组的第一维*/
	dtUInt16			col;						/*数组的第二维*/
	CIP_CHAR*		tagData;					/*存放返回的数据*/
}TagData;


/* __EXPORT class CIP
{
	private:
		int debug;
		_comm_header *comm;
		_tag_detail *tag;
		_path *path;
		_rack *rack;
		_services *services;
		_backplane_data *backplane;
	public:
		CIP();
		~CIP();


		int ToConnection(char *HostName);
		//result 0:成功  其他:失败
		int ToReadAtomicByTag(char *program,char *tagname, _tag_detail *tag);
		int ToWriteAtomicByTag(char *program,char *tagname, _tag_detail *tag);
};*/

//////////////////////////////////////////////////////////////////////


class  ABPLC5
{
	private:
		int debug;

		struct _comm comm;

		bool m_bConnected;

		int m_iPLCType;

		
		sesDbg	  *m_pDbg;   // ptr to the debug object
		sesLogErr  *m_eLog;  // ptr to the Log Error object
		
	public:
		ABPLC5(int iPLCType,sesDbg *dbg,sesLogErr *eLog);
		~ABPLC5();
	public:
			
		INT32	ToConnection( CIP_CHAR* _HostName, INT32 _debug);
		INT32	ToClose( INT32 debug );

		bool get_Connnected(void){return m_bConnected;}
		void set_Connnected(bool _val){m_bConnected=_val;}

		INT32 ToReadTagValue( TagData* pTagData, INT32 _debug );
		INT32 ToWriteTagValue( TagData* pTagData, INT32 _debug );
		
		
			
};
	
	
#endif

⌨️ 快捷键说明

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