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

📄 struc_3k.h

📁 嵌入式开发 嵌入式开发 嵌入式开发
💻 H
字号:
/******************************
文件:	3K_STRUC.H
描述:	ST3000上位机参数协议结构体
******************************/
#ifndef ST3000_STRUCTURE
#define ST3000_STRUCTURE

struct worksnum {
    unsigned char B1; // 年
    unsigned char B2; // 月
    unsigned char B3; // 编号
};

struct unitnum {
    unsigned char B1; // 年
    unsigned char B2; // 月
    unsigned char B3; // 系统号
    unsigned char B4; // 单元号
};

struct setupnum {
    struct unitnum sub1; // 单元编号
    struct worksnum sub2; // 出厂编号
};

typedef struct {
    unsigned char unitnumber;
    unsigned char buffer[7];
} CheckBuffer;

typedef struct
{
    struct {
        unsigned char i:2; // 系属
        unsigned char j:6; // 机组号
    } unitworksnum;
    int addressofwav; // 波门地址
    int v_alarm; // 纵向报警
    int v_adjust; // 纵向微调
    int h_alarm; // 横向报警
    int h_adjust; // 横向微调
    struct {
        unsigned char turnsoflabsA:3; //A系的标记排列 000~111 (十进制的0到7 目前使用的只有1纵顺 2纵逆 3单标记 4横顺 5横逆
        unsigned char bitTurns_reserved:1; //
        unsigned char turnsoflabsB:3; //
        unsigned char omk_motorreverse:1; // 单标记电机正反转 bitTurns.motorreverse_omk
    } bitTurns;
    struct {
        unsigned char vmotorreverse:1; // 纵向马达反转
        unsigned char v_motorruning:1; // 纵向马达开
        unsigned char hmotorreverse:1; // 横向马达反转
        unsigned char h_motorruning:1; // 横向马达开
        unsigned char hand_auto:1; // 纵向手动自动
        unsigned char hcontrol:1; // 横向开关
        unsigned char autowork:1; // 通道智能
        unsigned char secondprint:1; // 二次印刷
    } bitfield;
    unsigned char ColorNum; // 跟踪色序
} Menu1Struct;

typedef struct
{
    unsigned char VPlus_P[3]; // V-P值
    unsigned char VPlus_D[3]; // V-D值
    unsigned char VFps[3]; // V-周期频数
    unsigned char VDeadZone[3]; // V-不工作区
    unsigned char HPlus_P[3]; // H-P值
    unsigned char HPlus_D[3]; // H-D值
    unsigned char HFps[3]; // H-周期频数
    unsigned char HDeadZone[3]; // H-不工作区
    unsigned char ValueWidth; // 波门宽度
    struct {
        unsigned char VAver:4; // 纵向平均
        unsigned char HAver:4; // 横向平均
    } VHaver[3];
} Menu2Struct;

typedef struct {
    int DofRoll; // 压轮直径
    long length; // v计算值
    long VRepeatValue; // v重复值
    long VAdjustValue; // v修正值
    long VSetupValue; // v设定值
    long HRepeatValue; // H重复值
    long HSetupValue; // H设定值
    long HWidth; // 横向行程 
    long HMaxValue; // 横辊宽度
    unsigned char HMotorControls:4; // v马达手动
    unsigned char VMotorControls:4; // H马达手动 
} Menu6Struct;

typedef struct {
    Menu1Struct submenu1;
    Menu2Struct submenu2;
    Menu6Struct submenu6;
} Units;

typedef struct {
    unsigned unitscount; // 系统单元数
    unsigned CofBanA; // A系版辊周长
    unsigned CofBanB; // B系版辊周长
    unsigned char ASignTangle;// A系标记角度
    unsigned char BSignTangle;// A系标记角度
    unsigned char AddEnable; // 寻址允许
    struct {
        unsigned char AsetStandard:4; // A系选择标准
        unsigned char BsetStandard:4; // B系选择标准
    } bitStand;
    struct {
        unsigned char ShapeA:4; // A系色标形状
        unsigned char ShapeB:4; // B系色标形状
    } bitShape;
    struct {
        unsigned char TurnofLabsA:3; // A系色标顺序
        unsigned char reserved_a:1;  // 为了和单通道的turnsoflabsA同步 所以调整了结构
        unsigned char TurnofLabsB:3; // B系色标顺序
        unsigned char reserved_b:1;  // 为了和单通道的turnsoflabsB同步 所以调整了结构
    } bitTurns;
    unsigned VCoef; //v调整系数
    unsigned HCoef; //h调整系数
    unsigned ColorWidthA; //A系色标间距
    unsigned ColorWidthB; //B系色标间距
} SystemSettings;

typedef struct {
    unsigned char Cmd6[7]; // 6#命令
    unsigned char Cmd7[2]; // 7#命令
    unsigned char Cmd8[8]; // 8#命令
    unsigned char Cmd9[6]; // 9#命令
    unsigned char CmdA[5]; // A#命令
    unsigned char CmdB[7]; // B#命令
    unsigned char CmdC[6]; // C#命令
} Cmd;

typedef struct {
    float x1; //x1坐标
    float y1; //y1坐标
    float x3; //x3坐标
    float y3; //y3坐标
    float x5; //x5坐标
    float y5; //y5坐标
    float x6; //x6坐标
    float y6; //y6坐标
    float d1; //d1直径
    float d2; //d2直径
    float d3; //d2直径
    float l1; //l1臂长
    float l2; //l2臂长
    float a;  //l1、l2的夹角
    float m; //两机组间的料长
    int flag; //限位时料是否最长?
} Str6xt;

typedef union {
    struct {
        unsigned char bit0:1;
        unsigned char bit1:1;
        unsigned char bit2:1;
        unsigned char bit3:1;
        unsigned char bit4:1;
        unsigned char bit5:1;
        unsigned char bit6:1;
        unsigned char bit7:1;
    } bits;
    unsigned char B;
} BITFlags;

typedef struct {
    unsigned char Language:1; // 系统语系 (0)中文; (1)英文
    unsigned char YtzMachID:2; // 机械结构 (1)摆臂; (2)三角
    unsigned char _BitsReserved:5; // 保留位
    unsigned long EncryptDWORD1; // 加密字 1
    unsigned long EncryptDWORD2; // 加密字 2
    unsigned Year,Month,Day,AppID; // 年、月、日、版本号
    char WriterName[20]; // 作者名称
} tagVER;

typedef struct {
    /* 主要状态标志 */
    unsigned char AppAlive:1;
    unsigned char Language:1;
    unsigned char jobAB:2;
    unsigned char AlarmCtrlOnOff:1;
    unsigned char CtrlMenuStatus:1; // 工程师菜单状态 (1显示 0隐藏)
    unsigned char FILE_REC:1;
    unsigned char _bitreserved:1;
    /* 主要记数区 */
    int UnitCounts; // 当前最大通道计数
    int UnitActuals; // 当前实际的单元个数
    int SubIDSEL,MenuIDSELOld,MenuIDSEL; // 默认SubIDSEL=3; MenuIDSEL=MenuIDSELOld=2;
} tagVarST3000;

typedef struct {
    unsigned char EntireAuto_A:1; // 整个A系的工作状态(自动=1; 手动=0)
    unsigned char EntireAuto_B:1; // 整个B系的工作状态(自动=1; 手动=0)
    unsigned char EntireIntelligent_A:1; // 整个A系的智能状态(智能ON=1; 智能OFF=0)
    unsigned char EntireIntelligent_B:1; // 整个B系的智能状态(智能ON=1; 智能OFF=0)
    unsigned char ReservedBits:4;
    unsigned EntireYtzFlags;
        // 整机的预套准工作标志 (位=1表示预套准开始; 位=0表示预套准停止)
        // bit0表示1#控制单元; bit15表示16号工作单元
    unsigned EntireLapseFlags[2];
    unsigned EntireVAlarmFlags[2];
    unsigned EntireHAlarmFlags[2];
        // 整机(分A/B系属)的丢失标志 纵向报警标志 横向报警标志
        // bit0表示1#控制单元; bit15表示16号工作单元
    unsigned EntireIntelligentFlags[2];
        // 整机(分A/B系属)的智能寻址标志
        // bit0表示1#控制单元; bit15表示16号工作单元
} tagEntireStatus;

typedef struct {
    int sX; // 所有菜单的起始x坐标
    int sY; // 所有菜单的起始y坐标
    int tW; // 单个菜单的宽度
    int tH; // 单个菜单的高度
    int bW; // 菜单体的宽度
    int bH; // 菜单体的高度
} _tagMenuAttr;

typedef struct {
    int x_offset;
    int v_instance; // 水平间距(按钮或者编辑框之间)
    int y_offset;
    int h_instance; // 垂直间距(按钮或者编辑框之间)
} _tagInstAttr;

typedef struct {
    int w;
    int h;
} _tagSizeAttr;

typedef struct {
    int x;
    int y;
    int w;
    int h;
} _tagRectAttr;

#endif //ST3000_STRUCTURE

⌨️ 快捷键说明

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