//------------------------------------------------------------------------------- // File Name: headcontrol.h // Brief: // Version: 1.0.0 // Create Date: 2018/05/02 // Create by: Marshal Lee // Copyright: // Copyright (c) 2017, GetonAgain Co., LTD. // All rights reserved. // // Modify by: Marshal Lee // Modify Date: 2018/05/02 //------------------------------------------------------------------------------- #ifndef __SEWHDCONTROL_H__ #define __SEWHDCONTROL_H__ #include "controlbus.h" #if (CONTROL_BUS == COMM_CAN) /* 机头板控制板 */ //------------------------------------------------------------------------------- typedef struct { u8 nodeTye; // 节点类型 u8 nodeId; // 节点ID CtrlBusPacket ctrlCmd; // 发给外围板的控制命令 CtrlBusPacket exbSta; // 外围板返回的状态命令 CtrlBusPacket busSta; // 外围板返回的总线状态命令 CtrlBusPacket traCmd; // 发给外围板的遍历命令 BoardRegVal regVal; // 外围板寄存器值 CtrlBusPacket rdReg; // 读取外围板寄存器值 u8 cmdFlag; // 有新命令标志 N5--接收到控制命令 u8 staFlag; // 有新状态标志 N5--发送BN_CMD_EXSTA u8 refSta; // 刷新状态标志 N5--接收BN_CMD_EXSTA u8 traFlag; // 有新命令标志 N5--接收到遍历命令 u8 busFlag; // 有新状态标志 N5--发送BN_CMD_BUSSTA u8 refVer; u8 verFlag; u8 transFlag; // 数据传输标志 发送数据 u8 exbupdateFlag; // 外围板程序升级标志 u8 refNvPara; // 刷新非易失性参数 u8 nvParaFlag; // 接收到非易失性参数标志 u8 refHeadPara; // 刷新机头参数 u8 headParaFlag; // 接收机头参数标志 }SewHeadControl; //------------------------------------------------------------------------------- typedef union { u8 buff[CAN_DATA_LEN]; struct { u16 cmd; u8 subcmd; u8 para[5]; } __attribute__ ((packed)) headCtrl; // 机头板控制 struct { u16 cmd; u16 pataId; s32 paraVal; // 保留 } __attribute__ ((packed)) headPara; // 机头板参数 struct { u16 cmd; // 子命令 u8 parablockID; // 参数块ID u8 paraID; // 参数ID s32 paraval; // 参数值 } __attribute__ ((packed)) headNvPara; // 非易失性参数 struct { u32 staBits; // 状态位 u8 setedNP; // 设置的当前针位 u16 potValue; // 电位器数值(毛巾提升电机) s8 curHoistLevel; // 提升电机当前档位 } __attribute__ ((packed)) headSta; // 状态命令 struct { u32 staBits; // 状态位 u8 setedNP; // 设置的当前针位 s16 footmotopos; // 压脚电机位置 u8 rev; } __attribute__ ((packed)) footHeadSta; // 状态命令(独立压脚) }SewHeadCommand; //------------------------------------------------------------------------------- // 控制命令定义 #define CTRL_CMD_SEW_HEAD_CTRL 0x1000 // 缝纫机头板控制 #define CTRL_CMD_SEW_HEAD_PARA 0x1001 // 缝纫机头板参数设置 #define CTRL_CMD_SEW_HEAD_NVPARA 0x1002 // 缝纫机头非易失性参数设置 //------------------------------------------------------------------------------- // 子控制命令定义 #define CTRL_SUBCMD_SEW_WORK_STA 0x00 // 工作状态刷新 #define CTRL_SUBCMD_SEW_ENABLE 0x01 // 机头控制功能打开 #define CTRL_SUBCMD_SEW_DISABLE 0x02 // 机头控制功能关闭 #define CTRL_SUBCMD_SEW_OUTPUT_CTRL 0x03 // IO输出控制 #define CTRL_SUBCMD_SEW_ELCLIP_CTRL 0x04 // 电子夹线控制 #define CTRL_SUBCMD_SEW_IN_WORK 0x05 // 进入工作状态 #define CTRL_SUBCMD_SEW_PFOOT_CTRL 0x10 // 压脚电机控制 //------------------------------------------------------------------------------- #define CTRL_PFOOT_CMD_TO_ZERO 0x00 // 压脚电机归零 #define CTRL_PFOOT_CMD_DIS 0x01 // 压脚电机失能 #define CTRL_PFOOT_CMD_EN 0x02 // 压脚电机使能 #define CTRL_PFOOT_CMD_RESET 0x03 // 压脚电机重启 #define CTRL_PFOOT_CMD_UP 0x04 // 压脚电机上升 #define CTRL_PFOOT_CMD_DOWN 0x05 // 压脚电机下降 #define CTRL_PFOOT_CMD_BACK 0x06 // 压脚电机去回针位 //------------------------------------------------------------------------------- #define CTRL_SUBCMD_SEW_PFOOT_FOLLOW_CTRL 0x11 // 压脚电机跟随 #define CTRL_SUBCMD_SEW_PFOOT_SET_POS 0x12 // 设定压脚工作下位 #define CTRL_SUBCMD_SEW_PFOOT_SET_ECD 0x13 // 校正编码器位置 // 状态位定义 #define HDSTA_SEW_HEAD_LOCK 0x00000001 // 锁头状态标志(无论按钮锁头或软件锁头) //------------------------------------------------------------------------------- //------------------------------------------------------------------------------- void InitSewHeadControl(SewHeadControl * pCtrl); void SendSewHeadCommand(SewHeadControl * pCtrl, SewHeadCommand * pCmd); void RequestSewHeadStatus(SewHeadControl * pCtrl); void RequestSewHeadVersion(SewHeadControl * pCtrl); void RequestSewHeadNvPara(SewHeadControl * pCtrl); //------------------------------------------------------------------------------- //------------------------------------------------------------------------------- #endif #endif