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

📄 ppi.h

📁 C51实现西门子PPI协议
💻 H
字号:
 #include"stdlib.h"
	
#define   SD1     0x10
#define    SD2    0x68
#define    SD4    0xdc
#define    SC      0xe5
#define    ED      0x16
#define    ADDRESS    0x03
typedef struct 
{
 unsigned char next_stationaddress;
   unsigned char previous_stationaddress;
  unsigned char FDL_status_response;
}list_of_active_station;


typedef struct 
{
   unsigned char   Start_Detimiter1;
   unsigned char   Destination_Adderss ;
   unsigned char   Source_Address;
    unsigned char   Frame_Contorl;
   unsigned char   Frame_check_squence;
   unsigned char   End_Delimiter;
  
} SD1_Message_Formate;

typedef struct 
{
   unsigned char   Start_Detimiter4;
   unsigned char   Destination_Adderss ;
   unsigned char   Source_Address;
  
} SD4_Message_Formate;

typedef struct 
{
   unsigned char   Start_Detimiter2;
   unsigned char   Length_Byte;
   unsigned char   Length_Byte_repeated;
   unsigned char   Start_Detimiter2_repeated;
   unsigned char   Destination_Adderss ;
   unsigned char   Source_Address;
   unsigned char   Frame_Contorl;
  
} SD2_Message_HEADER;

typedef struct 
{
   unsigned char   PROTE_ID;
   unsigned char   ROSCTR;
   unsigned int      RED_ID;
   unsigned int     PDU_REF ;
    unsigned int     PAR_LG ;
   unsigned int  DAT_LG;
  
} SD2_PDU_REQUEST_HEADER;
typedef struct 
{
   unsigned char   PROTE_ID;
   unsigned char   ROSCTR;
   unsigned int      RED_ID;
   unsigned int     PDU_REF ;
    unsigned int     PAR_LG ;
   unsigned int  DAT_LG;
   unsigned char ERR_CLS;
   unsigned char ERR_COD;
  
} SD2_PDU_ACKNOWLEDGE_HEADER;


typedef struct
{
  unsigned char SERVICE_ID;
  unsigned char NUMBER_OF_VARIABLE;
  unsigned  char VARIABLE_SPEC;
  unsigned char  V_ADDR_LG;
}SD2_PARAMETER_REQUEST_BLOCK;

typedef struct
{
  unsigned char SERVICE_ID;
  unsigned char NUMBER_OF_VARIABLE;
 
}SD2_PARAMETER_REPONSE_BLOCK;

typedef struct
{
  unsigned char SYNTAX_ID;
  unsigned char TYPE;
  unsigned int  NUMBER_OF_ELEMENT;
  unsigned int    SUBAREA;
  unsigned char AREA;
  unsigned char OFFSET[3];
 
}SD2_VARIABLE_AREA_BLOCK;

typedef struct
{
  unsigned char RESERVED;
  unsigned char D_TYPE;
  unsigned int    VAR_LG;
  unsigned char VARIABLE_VALUE;//实际要写的数据,位数不定
  unsigned char FILL_BIT;
 
}SD2_WRITEDATA_REQUEST_BLOCK;
/*typedef struct
{
  unsigned char ACC_RSLT;
  unsigned char D_TYPE;
  unsigned int    VAR_LG;
  unsigned char VARIABLE_VALUE;//实际读回的数据,位数不定
  unsigned char FILL_BIT;
 
}SD2_RADEDATA_REPONSE_BLOCK;*/

typedef struct
{
 unsigned char  ACC_RSLT;
}SD2_WRITEDATA_REPONSE_BLOCK;

typedef struct
{
  unsigned char  FCS;
  unsigned char  END;
}SD2_END;

 
 //sd2data_write_formate()
// {
// }
 	//SD2 写数据格式:
//SD2_Message_HEADER+SD2_PDU_REQUEST_HEADER+SD2_PARAMETER_REQUEST_BLOCK
//+SD2_VARIABLE_AREA_BLOCK+SD2_WRITEDATA_REQUEST_BLOCK+SD2_END
//SD2写数据响应:
//SD2_Message_HEADER+SD2_PDU_ACKNOWLEDGE_HEADER+SD2_PARAMETER_REPONSE_BLOCK
//+SD2_WRITEDATA_REPONSE_BLOCK+SD2_END
//SD2读数据格式:
//SD2_Message_HEADER+SD2_PDU_REQUEST_HEADER+SD2_PARAMETER_REQUEST_BLOCK
//+SD2_VARIABLE_AREA_BLOCK+SD2_END
//SD2读数据响应:
//SD2_Message_HEADER+SD2_PDU_ACKNOWLEDGE_HEADER+SD2_PARAMETER_REPONSE_BLOCK
//+SD2_RADEDATA_REPONSE_BLOCK+SD2_END

⌨️ 快捷键说明

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