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

📄 fms_user.h

📁 PROFIBUS-dp PROGRAMS 主从站源程序
💻 H
📖 第 1 页 / 共 4 页
字号:
/*****************************************************************************************************

  FMS_USER.H

 =====================================================================================================

  Type definitions and constants for PROFIBUS-FMS interface

 =====================================================================================================

  Vers.  Date      Na  T  Remark
 -----------------------------------------------------------------------------------------------------

  3.101  07.07.99  MY     - Missing 'typedef char  boolean' inserted

  3.100  14.05.98  Hi     Created

 *****************************************************************************************************/

#if defined( _MSC_VER)      /* Microsoft C */
  #pragma pack(1)             /* Byte Alignment   */
#endif

/* ------------------------------------------------------------------------------------------------- */
/* PROFIBUS data types ----------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------------------------------- */

typedef char            myboolean;
typedef char            int8;
typedef int             int16;
typedef long            int32;
typedef unsigned char   uint8;
typedef unsigned int    uint16;
typedef unsigned long   uint32;
typedef unsigned char   octet;      /* Octet string */
typedef unsigned char   visible;    /* Visible string */
typedef unsigned char   bits;       /* Bit string */


#define NAME_LENGTH         32

/* ------------------------------------------------------------------------------------------------- */
/* FMS-ErrorType ----------------------------------------------------------------------------------- */
/* Negative response at Read / Write / Status / Identify / GetOD ----------------------------------- */
/* ------------------------------------------------------------------------------------------------- */

typedef struct tagERROR_TYPE
{
  unsigned char  bCommunicationRef;
  unsigned char  bAccess;
  unsigned short usObjectIdx;
  unsigned char  bSubObjectIdx;
  unsigned char  bDataCnt;
  unsigned char  bDataType;
  unsigned char  bService;
  int8           chErrorClass;
  int8           chErrorCode;
  int16          sAddCode;
  visible        abAddDescription[243];
} ERROR_TYPE;


/* ------------------------------------------------------------------------------------------------- */
/* FMS-service: Status ----------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------------------------------- */


typedef struct tagSTATUS_REQ
{
  unsigned char  bCommunicationRef;
  unsigned char  bReserved1;
  unsigned short bReserved2;
  unsigned char  bReserved3;
  unsigned char  bReserved4;
  unsigned char  bReserved5;
  unsigned char  bService;
} STATUS_REQ;


typedef struct tagSTATUS_CON
{
  unsigned char  bCommunicationRef;
  unsigned char  bReserved1;
  unsigned short bReserved2;
  unsigned char  bReserved3;
  unsigned char  bReserved4;
  unsigned char  bReserved5;
  unsigned char  bService;
  uint8          bLogicalStatus;
  uint8          bPhysicalStatus;
  uint8          bLocalDetailLen;
  bits           abLocalDetail[3];
} STATUS_CON;


typedef  struct tagMSG_STATUS
{
  unsigned char rx;
  unsigned char tx;
  unsigned char ln;
  unsigned char nr;
  unsigned char a;
  unsigned char f;
  unsigned char b;
  unsigned char e;
  union {
    STATUS_REQ                Req;
    STATUS_CON                Con;
    ERROR_TYPE                Err;
    RCS_TELEGRAMHEADERDATA_10 User;
  } Msg;
} MSG_STATUS;


typedef  struct tagMSG_SET_STATUS
{
  unsigned char rx;
  unsigned char tx;
  unsigned char ln;
  unsigned char nr;
  unsigned char a;
  unsigned char f;
  unsigned char b;
  unsigned char e;
  uint8         bLogicalStatus;
  uint8         bPhysicalStatus;
  uint8         bLocalDetailLen;
  bits          abLocalDetail[3];
} MSG_SET_STATUS;


/* ------------------------------------------------------------------------------------------------- */
/* FMS-service: Identify --------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------------------------------- */

typedef struct tagIDENTIFY_REQ
{
  unsigned char  bCommunicationRef;
  unsigned char  bReserved1;
  unsigned short bReserved2;
  unsigned char  bReserved3;
  unsigned char  bReserved4;
  unsigned char  bReserved5;
  unsigned char  bService;
} IDENTIFY_REQ;


typedef struct tagIDENTIFY_CON
{
  unsigned char  bCommunicationRef;
  unsigned char  bReserved1;
  unsigned short bReserved2;
  unsigned char  bReserved3;
  unsigned char  bReserved4;
  unsigned char  bReserved5;
  unsigned char  bService;
  visible        abVendorName[NAME_LENGTH+1];
  visible        abModelName[NAME_LENGTH+1];
  visible        abRevision[NAME_LENGTH+1];
} IDENTIFY_CON;

        
typedef  struct tagMSG_IDENTIFY
{
  unsigned char rx;
  unsigned char tx;
  unsigned char ln;
  unsigned char nr;
  unsigned char a;
  unsigned char f;
  unsigned char b;
  unsigned char e;
  union {
    IDENTIFY_REQ              Req;
    IDENTIFY_CON              Con;
    ERROR_TYPE                Err;
    RCS_TELEGRAMHEADERDATA_10 User;
  } Msg;
} MSG_IDENTIFY;


/* ------------------------------------------------------------------------------------------------- */
/* FMS-service: Read ------------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------------------------------- */

typedef struct tagREAD_REQ
{
  unsigned char  bCommunicationRef;
  unsigned char  bAccess;
  unsigned short usObjectIdx;
  unsigned char  bSubObjectIdx;
  unsigned char  bDataCnt;
  unsigned char  bDataType;
  unsigned char  bService;
} READ_REQ;

typedef READ_REQ READ_IND;


typedef struct tagREAD_RES
{
  unsigned char  bCommunicationRef;
  unsigned char  bAccess;
  unsigned short usObjectIdx;
  unsigned char  bSubObjectIdx;
  unsigned char  bDataCnt;
  unsigned char  bDataType;
  unsigned char  bService;
  octet          abData[247];
} READ_RES;

typedef READ_RES READ_CON;


typedef  struct tagMSG_READ
{
  unsigned char rx;
  unsigned char tx;
  unsigned char ln;
  unsigned char nr;
  unsigned char a;
  unsigned char f;
  unsigned char b;
  unsigned char e;
  union {
    READ_REQ                  Req;
    READ_IND                  Ind;
    READ_RES                  Res;
    READ_CON                  Con;
    ERROR_TYPE                Err;
    RCS_TELEGRAMHEADERDATA_10 user;
  } Msg;
} MSG_READ;


/* ------------------------------------------------------------------------------------------------- */
/* FMS-service: Write ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------------------- */

typedef struct tagWRITE_REQ
{
  unsigned char  bCommunicationRef;
  unsigned char  bAccess;
  unsigned short usObjectIdx;
  unsigned char  bSubObjectIdx;
  unsigned char  bDataCnt;
  unsigned char  bDataType;
  unsigned char  bService;
  octet          abData[247];
} WRITE_REQ;

typedef WRITE_REQ WRITE_IND;


typedef struct tagWRITE_RES
{
  unsigned char  bCommunicationRef;
  unsigned char  bAccess;
  unsigned short usObjectIdx;
  unsigned char  bSubObjectIdx;
  unsigned char  bDataCnt;
  unsigned char  bDataType;
  unsigned char  bService;
} WRITE_RES;

typedef WRITE_RES WRITE_CON;


typedef struct tagMSG_WRITE
{
  unsigned char rx;
  unsigned char tx;
  unsigned char ln;
  unsigned char nr;
  unsigned char a;
  unsigned char f;
  unsigned char b;
  unsigned char e;
  union {
    WRITE_REQ                 Req;
    WRITE_IND                 Ind;
    WRITE_RES                 Res;
    WRITE_CON                 Con;
    ERROR_TYPE                Err;
    RCS_TELEGRAMHEADERDATA_10 user;

⌨️ 快捷键说明

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