170 lines
4.6 KiB
C
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
|