📄 struc_3k.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 + -