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

📄 datatype.h.bak

📁 单片机和DSP之间的hpi模块程序,实现单片机和dsp的数据传输,单片机是华邦单片机
💻 BAK
📖 第 1 页 / 共 2 页
字号:
   void   xdata *pParameterAdr;    //参数的地址 
};


/*-----------------程序编译数据结构------------------*/

union  UINTandPointer                                      //无符号整数与其指针共用体
{
   uint              unData;
   uint  xdata * punData;
};

union  LONGandPointer                                      //长整数与其指针共用体
{
   long              lData;
   long  xdata * plData;
};

union  UCHARandPointer                                      //无符号字符与其指针共用体
{
   uchar              ucData;
   uint  xdata * punData;
};

union  LONGandVoidPointer                                      //长整数与空指针共用体
{
   long              lData;
   void  xdata * pData;
};


//代码缓冲区数据结构
struct CODECOMPILEBUFFER
{
   //G代码
   uchar   ucGCodeGroup1;                   //第1组G代码:G00,G01,G02,G03,G31,G28,G29
   uchar   ucGCodeGroup2;                   //第2组G代码:G04
   uchar   ucGCodeGroup3;                   //第3组G代码:G90,G91
   
   //运动参数
   union LONGandPointer   lProgramY;                           //Y轴编程坐标
   union LONGandPointer   lProgramZ;                           //Z轴编程坐标
   union LONGandPointer   lFeedRate;                         //进给速率
   union LONGandPointer   lI;                                       //圆弧插补I值
   union LONGandPointer   lK;                                      //圆弧插补K值
   union LONGandPointer   lR;                                       //圆弧半径
   
   //M代码
   uchar   ucMCodeGroup1;                 //M代码
   
//   uchar   ucMCodeGroup1;                   //第1组M代码:M00,M02,M30,M97,M98,M99
//   uchar   ucMCodeGroup2;                   //第2组M代码:M03,M04,M05,
//  uchar   ucMCodeGroup3;                    //第3组M代码:M08,M09
//   uchar   ucMCodeGroup4;                   //第4组M代码:M21,M22,M23,M24,M81,M82,M83,M84
//   uchar   ucMCodeGroup5;                   //第5组M代码:M14,M15
//  uchar   ucMCodeGroup6;                    //第6组M代码:M16,M17,M18,M19,M20

   uint      unJumpRowNo;                    //跳转或子程序行号
   union   UCHARandPointer  ucCallTimes;                        //子程序调用次数

   union LONGandPointer  lDelayTime;                         //延时时间

   uchar  ucDataType;                        //数据类型标志位(bit=0:常数;bit=1:指针)
                                                         //  |bit7|bit6|bit5|bit4|bit3|bit2|bit1|bit0|=
                                                         //  |  Y  | Z  | F   |  L  | D | I   |  K  | R  |														 
};

//输出命令结构
struct OUTPUTCOMMAND                   
{
   uchar  ucOutputByteNo;                //输出字节编号
   uchar  ucOutputByte;                    //输出字节
   uchar  ucBitValue;                         //输出位值
   uchar  ucLightDeal;                       // 指示灯处理代号
   union  LONGandPointer    lDelayTime;                       //延时时间
};

 //输入命令结构
struct INPUTCOMMAND                  
{
   uchar ucInputByteNo;               //输入字节编号
   uchar ucInputByte;                   //输入字节
   uchar ucBitValue;                      //输入位值
   uint    unJumpRowNo;                //跳转行号
};

 //运动命令结构
struct MOTIONCOMMAND                 
{
   union  LONGandPointer   lY;                                  //Y轴增量
   union  LONGandPointer   lZ;                                  //Z轴增量
   union  LONGandPointer   lFeedrate;                  //进给速率
};

//子程序调用命令
struct CALLCOMMAND                    
{
   uint                                unJumpRowNo;             //子程序的开始行号
   union  UCHARandPointer     ucCallTimes;                 //调用次数
   uint    ucRemainTimes;           //剩余调用次数
};

 //宏指令结构
struct MACROCOMMAND                 
{
   union  LONGandVoidPointer   lResult;                           //运算结果
   union  LONGandVoidPointer   lData1;                                //操作数1
   union  LONGandVoidPointer   lData2;                                //操作数2
};

//命令内容共用体
union COMMANDDATA                              
{
   struct MOTIONCOMMAND   MotionCommand;
   struct OUTPUTCOMMAND   OutputCommand;
   struct INPUTCOMMAND      InputCommand;
   struct CALLCOMMAND       CallCommand;
   struct MACROCOMMAND    MacroCommand;             
   union  LONGandPointer      lDelayTime;
   uint                                   unJumpRowNo;
};

//命令存储结构
struct COMMAND                                 
{
   uint      unRowNo;                                             //行号
   uchar   ucCommandType;                                //命令类型
   uchar   ucDataFlag;                                         //数据类型标志  |bit7|bit6|bit5|bit4|bit3|bit2|bit1|bit0|=|Y|Z|F|L|D|I|K|R|=|Data1Pointer|Data2Pointer|Data1Type|Data2Type|ResultType|Operator2~0|
   union  COMMANDDATA CommandData;            //命令数据
   
};

/*----------------程序存储数据结构--------------------------*/

 //文件管理表数据结构
struct FATNODE                       
{
    uint  unFileStart;                       //NC 程序文件在程序代码空间的开始位置的索引号
    uchar ucComplieFlag;               //编译结果标志(0-错误;1-主程序编译通过;2-子程序编译通过)
};

 //PLC存储数据结构
struct PLC_CODE                    
{
  uchar ucPLCCommandType;      //命令类型
  uchar ucPLCAddress[2];            //命令地址(ucPLCAddress[0]-字节地址;ucPLCAddress[1]-位地址)
};


/*---------------------坐标-----------------------------------*/

//位置点数据结构
struct POINT                   
{
   long lY;
   long lZ;  
};


/*--------------------显示----------------------------------------*/

//显存光标位置指针
union CURSOR_ADR                                           
{
	uint Adr ;                                                     //光标指针位置
	struct 
	{
		unsigned char AdrH;                             //光标指针位置高字节
		unsigned char AdrL;                              //光标指针位置低字节
	}AdrByte;
};


union  UINTandBYTE                                      //无符号整数与字节的公用体
{
   uint unData;
   struct                                                              //高低字节结构体
   { 
     uchar ucDataH;
     uchar ucDataL;
   }DataByte;
};



enum AlarmCode                                           //报警代码
{
  ESP,                          //0
  PLCRunError,
  PLCProgramError,
  YDriverAlarm,
  ZDriverAlarm,
  YServoError,            //5
  ZServoError,
  YAdjustErrorN,
  YAdjustErrorP,
  ZAdjustErrorN,
  ZAdjustErrorP,      //10 
  ParameterAlarm,
  ParameterError,    
  YJLimtP,
  YJLimtN,                    
  ZJLimtP,                   //15
  ZJLimtN,    
  URGENTBACK,
  YPLimtP,                  
  YPLimtN,
  ZPLimtP,                 //20 
  ZPLimtN,                 
  GWMOver,                
  HPMover,
  RMOver,
  YNoHome,            //25
  ZNoHome,   
  LiquidLow,
  NoAlarm               //28
};

#endif

⌨️ 快捷键说明

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