optical/NxFuncs/controlbus/sewhdcontrol.h
2025-09-04 09:45:08 +08:00

170 lines
4.6 KiB
C

//-------------------------------------------------------------------------------
// 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