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

📄 pbprocomm.h

📁 profibus dp主站于从站通信
💻 H
字号:
// PbproComm.h: interface for the PbproComm class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(_PBPROCOMM_H)
#define _PBPROCOMM

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//#include "StdAfx.h" // 2008-5-9

//#include "ScanSlavesDlg.h"      //2008-4-19

//#include <afxcmn.h> 

#define SWAP16(x)               ( (x >> 8) | (x << 8) )
#define   pub_iBufferLen 255 

#define BOARD_NUMBER            0

#define DP_MAX_SERVICE_RETRY    10
#define getrandom(min, max) \
    ((rand()%(int)(((max) + 1)-(min)))+ (min))
#define PROFI_RCV_CON_IND()       \
                                  con_ind_buffer_len = 255;                                                        \
                                  result = profi_rcv_con_ind (&con_ind_sdb, con_ind_buffer, &con_ind_buffer_len); \
								  Sleep(10);\
                                 // if (result != 0x01)AfxMessageBox(s, MB_ICONERROR);    \
                                //if (result == E_IF_FATAL_ERROR) handle_fatal_error ((T_EXCEPTION*) con_ind_buffer)

typedef struct _T_DP_ACTIVE_SLAVES
{
  T_DP_SLAVE_PARA_SET *SlavePrmSet;
  USIGN8 SlaveAdd;
  int ind;
}T_DP_ACTIVE_SLAVES;

class CPbproComm  
{
public:
	       
	PbproComm();
	virtual ~CPbproComm();
public:
	 T_DP_ACTIVE_SLAVES                            Activeslaves[DP_MAX_SLAVE_ADDRESS];             //2008-5-9
	 //int                                           AtciveslavesGetSize;          //2008-5-9
      int                                           ActiveslavesSize;          //2008-5-9
	                                                
     int                                           ActiveslavesAdd;              //2008-5-9

	 //CString                                        m_richEditStr;
	 unsigned char                                  pub_tBuffer[250];      
     int                                            pub_bSlaveAddress ;
     int                                            pub_bMasterAddress;
     //CArray<T_DP_ACTIVE_SLAVES,T_DP_ACTIVE_SLAVES>  Activeslaves;
     T_PROFI_SERVICE_DESCR                          pub_tSdb;
     //int                                            HowManySlaves;  //2008-5-11
	 T_PROFI_SERVICE_DESCR                          sdb;
	 T_DP_INIT_MASTER_REQ                           init_master_req;
	 
			
	 //USIGN8                                        howmanyslaves;	//slave 数量   初始为0 2008-5-11
	 USIGN8                                       download_buffer [255];
	 USIGN8                                       Input_data[DP_MAX_SLAVE_ADDRESS] [DP_MAX_OUTPUT_DATA_LEN];
	 USIGN8                                       Output_data[DP_MAX_SLAVE_ADDRESS] [DP_MAX_INPUT_DATA_LEN];
	 USIGN8 FAR*                                  DPV1_ReaddataPtr;
	 
	 
				
     T_DP_DOWNLOAD_REQ*                           download_req_ptr;
     T_DP_BUS_PARA_SET*                           bus_para_set_ptr;
	 T_DP_SLAVE_PARA_SET*                         slave_para_set_ptr;
	 


public:
     void   RemoveSlaves();                                     //2008-5-9
            update_input_data();
	        write_data();

    PB_BOOL initialize_application();
		   // OutPutString( char *message );
			

	 PB_BOOL dp_data_exchange( void );	 //2008-5-20
/////////////////////////////////////////////////////
//PB_BOOL dp_data_exchange( UINT slavenumber);   //2008-5-21



/////////////////////////////////////////////////////
     void    check_options (char options [] );
     INT16   init_profi(void); 
	 void    print_usage();
	 void    print_papi_firmware_version();
	 void    print_version(void);
	 PB_BOOL exit_communication(void);
	 PB_BOOL dp_io_offsets(void);

  void    dp_get_slave_diag_con (T_DP_GET_SLAVE_DIAG_CON* get_slave_diag_con_ptr);
  PB_BOOL dp_get_slave_diag_req(void);

  PB_BOOL dp_act_param_loc_req(   USIGN8    identifier);

  PB_BOOL dp_download_slave_req( T_DP_ACTIVE_SLAVES ActiveSlave);
  PB_BOOL dp_upload_slave_req( USIGN8 slave_offset);

  PB_BOOL dp_upload_bus_req(void);
  PB_BOOL dp_download_bus_req(void);
  PB_BOOL dp_init_master_req(void);
  PB_BOOL fmb_set_configuration_req(void);
  void    handle_fatal_error(T_EXCEPTION * exception);
  void    read_dp_master_default (  void );
  void    read_dp_bus_default( void );
  PB_BOOL dp_slave_scan (void );
  PB_BOOL read_dp_slave_default (USIGN8  slave_offset );
  PB_BOOL fmb_exit ( void );
  PB_BOOL dp_set_prm_slave_req ( T_DP_ACTIVE_SLAVES ActiveSlave ); 

  //////////////////////////////////DPV1 FUNCTION///////////////////////////
   USIGN16                 max_length;
   USIGN16                 comm_ref;
	   
    INT16                  dp_initiate_req ( IN USIGN16 send_timeout,USIGN8 bShowSlave );
	INT16                  dp_abort_req(   VOID  );  
	INT16                  dp_write_req(IN USIGN8 slot_number,IN USIGN8 index);
	INT16                  dp_read_req (IN USIGN8 slot_number,  IN USIGN8 index);
	PB_BOOL                dp_get_slave_prm_data ( void  ) ; 
		
};

#endif // !defined(AFX_PBPROCOMM_H__B0DFDAB6_EBA4_4D4A_A4F6_C7ED83B162F4__INCLUDED_)






















⌨️ 快捷键说明

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