1753 lines
74 KiB
C
1753 lines
74 KiB
C
|
#ifndef __PROTOCOL_H__
|
|||
|
#define __PROTOCOL_H__
|
|||
|
|
|||
|
#include "comm.h"
|
|||
|
#include "datadef.h"
|
|||
|
|
|||
|
#pragma pack(1)//设定为1字节对齐
|
|||
|
|
|||
|
// 和下位机的通讯协议
|
|||
|
|
|||
|
/*
|
|||
|
// 通讯数据包定义
|
|||
|
|
|||
|
一、数据包格式
|
|||
|
|
|||
|
1. 固定长度数据包格式
|
|||
|
|
|||
|
|-------------------------------------------------------------------|-----------|
|
|||
|
| 数据识别序列 | 数据内容 | 校验字 |
|
|||
|
|-------------------------------------------------------------------|-----------|
|
|||
|
| B0 B1 B2 B3 | B4 B5 | B6 B7 B8 B9 B10 B11 B12 B13 | B14 B15 |
|
|||
|
|-------------------------------------------------------------------|-----------|
|
|||
|
| 固定序列如下 | | 参数,不同命令定义不同 | B4--B13的 |
|
|||
|
| | 数据包ID | 具体定义参考命令详细说明 | |
|
|||
|
| 'F','L','D','P' | | | 16位CRC |
|
|||
|
|-------------------------------------------------------------------|-----------|
|
|||
|
|
|||
|
2. 可变长度数据包格式
|
|||
|
|
|||
|
|---------------------------------------------------------------------------|-----------|----------------
|
|||
|
| 数据识别序列 | 数据内容 | 校验字 | 附加数据 |
|
|||
|
|---------------------------------------------------------------------------|-----------|---------------|
|
|||
|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 B12 B13 | B14 B15 | B16--Bn |
|
|||
|
|---------------------------------------------------------------------------|-----------|---------------|
|
|||
|
| 固定序列如下 | | 附加 | 附加 | 参数,不同命令 | B4--B13的 | 数据内容 |
|
|||
|
| | 数据包ID | 数据 | 数据 | 定义不同,定义 | | |
|
|||
|
| 'V','L','D','P' | | 长度 | 校验字 | 参考命令详细说明 | 16位CRC | |
|
|||
|
|---------------------------------------------------------------------------|-----------|---------------|
|
|||
|
|
|||
|
附加数据长度取值范围为 0--1024
|
|||
|
|
|||
|
|
|||
|
//------------------------------------
|
|||
|
二、通讯命令一览表
|
|||
|
|
|||
|
1. 上位机发送命令
|
|||
|
|
|||
|
名称 符号 代码 类型 回复 说明
|
|||
|
读取机器信息 UCMD_GET_MC_INFO 0x0001 FLDP 有 机器信息包括机器种类,配置,控制系统版本等信息
|
|||
|
读取机器状态 UCMD_GET_MC_STATUS 0x0002 FLDP 有 读取机器的运行状态,包括机器工作状态,常用输入状态,电机位置,工作进度,文件信息等。
|
|||
|
读取机器参数 UCMD_GET_MC_PARAS 0x0003 FLDP 有 读取内存中机器参数列表
|
|||
|
读取内存数据 UCMD_GET_MEM_DATA 0x0004 FLDP 有 读取机器存储器数据,包括片内SRAM,片外SRAM,NAND FLASH等的内容
|
|||
|
读取传感信号 UCMD_GET_SENSORS 0x0005 FLDP 有 读取IO信号状态及电机位置,编码器位置等信息
|
|||
|
读取文件信息 UCMD_GET_FILE_INFO 0x0006 FLDP 有 读取数据文件的信息
|
|||
|
读取传输结果 UCMD_GET_TRANS_RESULT 0x0007 FLDP 有 读取文件传输的结果位图,包括数据文件和升级文件
|
|||
|
读取传感器位图 UCMD_GET_SENSOR_BMP 0x0008 FLDP 有 读取传感器配置位图
|
|||
|
|
|||
|
设置机器配置 UCMD_SET_MC_CONFIG 0x0101 VLDP 无 设置机器的配置,包括信号使用的端口等信息
|
|||
|
设置机器状态 UCMD_SET_MC_STATUS 0x0102 FLDP 无 设置机器的工作状态,包括是否允许工作,清除报警等。
|
|||
|
设置机器参数 UCMD_SET_MC_PARAS 0x0103 VLDP 无 传输机器参数列表到下位机
|
|||
|
设置内存数据 UCMD_SET_MEM_DATA 0x0104 FLDP 无 改变某个内存单元的数据内容
|
|||
|
设置文件参数 UCMD_SET_FILE_PARAS 0x0105 FLDP 无 设置文件参数
|
|||
|
设置执行进度 UCMD_SET_EXEC_PROGRESS 0x0106 FLDP 无 设置文件执行进度
|
|||
|
设置分期密码 UCMD_SET_INSTALLMENT 0x0107 FLDP 无 设置分期密码
|
|||
|
设置经过的时间 UCMD_SET_ELAPSED_TIME 0x0108 FLDP 无 设置经过的时间
|
|||
|
设置默认参数 UCMD_SET_DEF_PARA 0x0109 FLDP 无 设置默认参数
|
|||
|
|
|||
|
手动控制命令 UCMD_ACT_BYHAND 0x0201 FLDP 无 手动控制电机转动,OUTPUT信号开关等动作
|
|||
|
机器工作命令 UCMD_MC_WORK 0x0202 FLDP 无 控制机器的工作命令,包括启动,停止,结束,或运动到某个位置等
|
|||
|
移动XY命令 UCMD_MOVE_TO 0x0203 FLDP 无 移动XY到坐标
|
|||
|
|
|||
|
启动文件传输 UCMD_START_TRANS 0x0301 VLDP 无 启动文件传输
|
|||
|
文件传输命令 UCMD_TRANS_FILE_DATA 0x0302 VLDP 无 传输文件数据包
|
|||
|
设置文件列表 UCMD_SET_FILE_LIST 0x0304 VLDP 无 设置文件列表
|
|||
|
获取文件列表 UCMD_GET_FILE_LIST 0x0305 FLDP 有 获取下位机文件列表
|
|||
|
|
|||
|
下位机升级 UCMD_MC_UPDATE 0x0401 VLDP 无 包括升级主控,外围板控制器等
|
|||
|
|
|||
|
2. 下位机发送命令
|
|||
|
|
|||
|
名称 符号 代码 类型 回复 说明
|
|||
|
发送机器信息 DCMD_SEND_MC_INFO 0x8001 VLDP 无 发送机器信息包括机器种类,配置,控制系统版本等信息
|
|||
|
发送机器状态 DCMD_SEND_MC_STATUS 0x8002 VLDP 无 发送取机器的运行状态,包括机器工作状态,常用输入状态,电机位置,工作进度,文件信息等。
|
|||
|
发送机器参数 DCMD_SEND_MC_PARAS 0x8003 VLDP 无 发送内存中机器参数列表
|
|||
|
发送内存数据 DCMD_SEND_MEM_DATA 0x8004 VLDP 无 发送机器存储器数据,包括片内SRAM,片外SRAM,NAND FLASH等的内容
|
|||
|
发送传感信号 DCMD_SEND_SENSORS 0x8005 VLDP 无 发送IO信号状态及电机位置,编码器位置等信息
|
|||
|
发送文件信息 DCMD_SEND_FILE_INFO 0x8006 VLDP 无 发送数据文件的信息
|
|||
|
发送传输结果 DCMD_SEND_TRANS_RESULT 0x8007 VLDP 无 发送文件传输的结果位图
|
|||
|
发送传感器位图 DCMD_SEND_SENSOR_BMP 0x8008 VLDP 无 发送传感器配置位图
|
|||
|
发送张力传感器值 DCMD_SEND_TENSION 0x8009 VLDP 无 发送张力传感器值
|
|||
|
*/
|
|||
|
|
|||
|
// 上位机发送命令
|
|||
|
#define UCMD_GET_MC_INFO 0x0001 // 读取机器信息
|
|||
|
#define UCMD_GET_MC_STATUS 0x0002 // 读取机器状态
|
|||
|
#define UCMD_GET_MC_PARAS 0x0003 // 读取机器参数
|
|||
|
#define UCMD_GET_SENSORS 0x0005 // 读取传感信号
|
|||
|
#define UCMD_GET_TRANS_RESULT 0x0007 // 读取传输结果
|
|||
|
#define UCMD_GET_SENSOR_BMP 0x0008 // 读取传感器位图
|
|||
|
#define UCMD_GET_TENSION_DAT 0x0009 // 读取张力数据
|
|||
|
#define UCMD_GET_LOT_DATA 0x000D // 读取物联网数据
|
|||
|
#define UCMD_SET_MC_CONFIG 0x0101 // 设置机器配置
|
|||
|
#define UCMD_SET_MC_STATUS 0x0102 // 设置机器状态
|
|||
|
#define UCMD_SET_MC_PARAS 0x0103 // 设置机器参数
|
|||
|
#define UCMD_SET_MEM_DATA 0x0104 // 设置内存数据
|
|||
|
#define UCMD_SET_FILE_PARAS 0x0105 // 设置文件参数
|
|||
|
#define UCMD_SET_EXEC_PROGRESS 0x0106 // 设置执行进度
|
|||
|
#define UCMD_SET_INSTALLMENT 0x0107 // 设置分期密码
|
|||
|
#define UCMD_SET_ELAPSED_TIME 0x0108 // 设置经过的时间
|
|||
|
#define UCMD_SET_DEF_PARA 0x0109 // 设置默认参数
|
|||
|
#define UCMD_ACT_BYHAND 0x0201 // 手动控制命令
|
|||
|
#define UCMD_MC_WORK 0x0202 // 机器工作命令
|
|||
|
#define UCMD_MOVE_TO 0x0203 // 移动XY到坐标
|
|||
|
#define UCMD_MOVE_OFST 0x0205 // XY移动偏移量
|
|||
|
#define UCMD_START_TRANS 0x0301 // 启动文件传输
|
|||
|
#define UCMD_TRANS_FILE_DATA 0x0302 // 文件传输命令
|
|||
|
//#define UCMD_TRANS_FILE_DATA 0x0303 // 文件失效命令
|
|||
|
#define UCMD_SET_FILE_LIST 0x0304 // 设置文件列表
|
|||
|
#define UCMD_GET_FILE_LIST 0x0305 // 获取下位机文件列表
|
|||
|
#define UCMD_MC_UPDATE 0x0401 // 下位机升级
|
|||
|
|
|||
|
|
|||
|
// 下位机发送命令
|
|||
|
#define DCMD_REQUEST_DAT 0x8000 // 请求文件数据
|
|||
|
#define DCMD_SEND_MC_INFO 0x8001 // 发送机器信息
|
|||
|
#define DCMD_SEND_MC_STATUS 0x8002 // 发送机器状态
|
|||
|
#define DCMD_SEND_MC_PARAS 0x8003 // 发送机器参数
|
|||
|
#define DCMD_SEND_SENSORS 0x8005 // 发送传感信号
|
|||
|
#define DCMD_SEND_FILE_INFO 0x8006 // 发送文件信息
|
|||
|
#define DCMD_SEND_TRANS_RESULT 0x8007 // 发送传输结果
|
|||
|
#define DCMD_SEND_SENSOR_BMP 0x8008 // 发送传感器位图
|
|||
|
#define DCMD_SEND_LOTDATA 0x800D // 发送物联网数据
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// 三、命令详解
|
|||
|
/*
|
|||
|
工作流程
|
|||
|
1. 上位机发送 UCMD_GET_MC_INFO 命令, 命令格式如下:
|
|||
|
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
| 数据识别序列 | 数据内容 | 校验字 |
|
|||
|
|-------------------|-----------------------------------------------------------------------|-----------|
|
|||
|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 B10 B11 B12 B13 | B14 B15 |
|
|||
|
|-------------------|-------------------|-------------------|-------------------------------|-----------|
|
|||
|
| 固定序列如下 | 数据包ID | 命令切换标志字 | 保留 | B4--B13的 |
|
|||
|
| |-------------------|-------------------|-------------------------------| |
|
|||
|
| 'F','L','D','P' | UCMD_GET_MC_INFO | 可能是随机数 | | 16位CRC |
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
|
|||
|
2. 下位机收到后,回复 DCMD_SEND_MC_INFO 命令, 格式定义如下
|
|||
|
|
|||
|
|-----------------------------------------------------------------------------------------------------------------------|
|
|||
|
|-------------------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
| 数据识别序列 | 数据内容 | 校验字 | 附加数据 |
|
|||
|
|-------------------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 | B12 B13 | B14 B15 | B16--Bn |
|
|||
|
|-------------------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
| 固定序列如下 | | 附加 | 附加 | 和上位机命令 | | B4--B13的 | 机器信息结构 |
|
|||
|
| | DCMD_SEND_MC_INFO | 数据 | 数据 | 相同的 | 保留 | | |
|
|||
|
| 'V','L','D','P' | | 长度 | 校验字 | 命令切换标志字 | | 16位CRC | |
|
|||
|
|-------------------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
|-----------------------------------------------------------------------------------------------------------------------|
|
|||
|
|
|||
|
3. 上位机收到下位机的回复命令后,通过比对 命令标志切换字 , 可以确认是否是刚刚发送命令的回复(对于连续发送命令有用),根据情况确定是否重新发送命令。
|
|||
|
|
|||
|
注意:
|
|||
|
对于没有时序要求的数据包,可以不在意 命令标志切换字。
|
|||
|
*/
|
|||
|
|
|||
|
// 机器信息结构定义
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
// 0
|
|||
|
char mBoardVerStr[16]; // 主板(n1)板卡版本
|
|||
|
char exBoardVerStr[16]; // 扩展板(n1-1)板卡版本
|
|||
|
char softwareVerStr[32]; // 软件版本
|
|||
|
char buildInfoStr[32]; // 编译日期信息
|
|||
|
char boardId[32]; // 板卡ID
|
|||
|
char installment[32]; // 最后一次的分期密码字符串
|
|||
|
|
|||
|
// 160
|
|||
|
char rev1[512-160];
|
|||
|
|
|||
|
// 512
|
|||
|
u32 localIP; // 板卡IP地址
|
|||
|
u32 submask; // 子网掩码
|
|||
|
u32 gateIP; // 网关IP
|
|||
|
// 524
|
|||
|
u8 curN1Ver; //软件编译N1板卡版本
|
|||
|
// 525
|
|||
|
u8 rev2[1024-525];
|
|||
|
|
|||
|
} __attribute__ ((packed)) MCInfo;
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
char debugInfoStr[1024]; // 调试信息
|
|||
|
|
|||
|
} __attribute__ ((packed)) DebugInfo; // 调试信息
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
// 0
|
|||
|
char mBoardVerStr[16]; // 主板(n1)板卡版本
|
|||
|
|
|||
|
// 4
|
|||
|
char exBoardVerStr[16]; // 扩展板(n1-1)板卡版本
|
|||
|
|
|||
|
// 8
|
|||
|
char softwareVerStr[32]; // 软件版本
|
|||
|
|
|||
|
// 16
|
|||
|
char boardId[32]; // 板卡ID
|
|||
|
|
|||
|
// 24
|
|||
|
char installment[32]; // 最后一次的分期密码字符串
|
|||
|
|
|||
|
// 32
|
|||
|
u32 rev10[32];
|
|||
|
|
|||
|
// 64
|
|||
|
u32 errorCode; // 报警信息
|
|||
|
s32 workableTimer; // 可工作时间计数器,剩余时间计数(分钟为单位)
|
|||
|
u32 bootTimer; // 开机时间(单位分钟)
|
|||
|
u32 workTimer; // 工作时间(单位分钟)
|
|||
|
u32 workRpm; // 工作转速
|
|||
|
u32 curOutCounter; // 当前产量计数,由界面记录
|
|||
|
u32 totalOutCounter; // 累计产量计数
|
|||
|
u32 expectedOutput; // 产量预设
|
|||
|
|
|||
|
u32 spindleZeroSta; // 主轴零位状态
|
|||
|
// bit0:绣花主轴
|
|||
|
// bit1:冲孔主轴
|
|||
|
// bit2:缝纫主轴
|
|||
|
|
|||
|
u32 spindleAngle; // 主轴角度
|
|||
|
s32 motosPos[6]; // 电机坐标
|
|||
|
|
|||
|
// 80
|
|||
|
u32 sensorSignal[8]; // 传感器信号
|
|||
|
|
|||
|
// 88
|
|||
|
u32 machinecfg; //机器配置
|
|||
|
//勾线模式 bit0 0:单独勾线;1:集中勾线
|
|||
|
//锁头模式 bit1 0:电机锁头;1电磁铁锁头
|
|||
|
//89
|
|||
|
u32 sewHeadNumbers;//缝纫机头个数
|
|||
|
//90
|
|||
|
u32 embHeadNumbers; //绣花机头个数
|
|||
|
//91
|
|||
|
u32 embneedleNumbers;//绣花机针个数
|
|||
|
//92
|
|||
|
u32 punchHeadNumbers;//冲孔机头个数
|
|||
|
//93
|
|||
|
u32 punchneedleNumbers;//冲孔机针个数
|
|||
|
//94
|
|||
|
u32 sensonNumbers;//传感器信号总数
|
|||
|
|
|||
|
u32 rev20[128-95];
|
|||
|
|
|||
|
// 128
|
|||
|
u32 rev30[192-128];
|
|||
|
|
|||
|
//192
|
|||
|
u32 rev40[256-192];
|
|||
|
|
|||
|
} __attribute__ ((packed)) McLotData; // 主控物联网数据
|
|||
|
|
|||
|
|
|||
|
#define BOARD_VER_LEN 32 // 外围板程序版本长度
|
|||
|
#define MAX_SUPPORT_N5 48
|
|||
|
#define MAX_SUPPORT_N6 2
|
|||
|
#define MAX_SUPPORT_D86 1
|
|||
|
|
|||
|
#define PARA_NUM 256
|
|||
|
|
|||
|
//动框角度参数
|
|||
|
#define MAX_HOR 12 // 横,下标2最大值,针步
|
|||
|
#define MAX_VER 21 // 竖,下标1最大值,转速
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
char softwareVerStr[BOARD_VER_LEN]; // 机头板程序版本
|
|||
|
u32 paraBuf[PARA_NUM]; //机头板参数
|
|||
|
u8 nodeType; // 节点类型
|
|||
|
}__attribute__ ((packed)) HeadInfo;
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
char softwareVerStr[BOARD_VER_LEN]; // 勾剪扣换控制板程序版本
|
|||
|
u32 paraBuf[PARA_NUM]; //换色板参数
|
|||
|
}__attribute__ ((packed)) HcpsInfo;
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
char softwareVerStr[BOARD_VER_LEN]; // D86程序版本
|
|||
|
u32 paraBuf[PARA_NUM]; //换色板参数
|
|||
|
}__attribute__ ((packed)) D86Info;
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
HeadInfo headInfo[MAX_SUPPORT_N5]; //最大支持32个机头
|
|||
|
HcpsInfo hcpsInfo[MAX_SUPPORT_N6]; //最大支持2个N6
|
|||
|
D86Info d86Info[MAX_SUPPORT_D86]; //1
|
|||
|
|
|||
|
}__attribute__ ((packed)) ExBoardInfo;
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
流程
|
|||
|
1. 上位机发送命令 UCMD_SET_MC_CONFIG, 命令结构定义如下:
|
|||
|
|
|||
|
|---------------------------------------------------------------------------------------------------------------|
|
|||
|
|-----------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
| 数据识别序列 | 数据内容 | 校验字 | 附加数据 |
|
|||
|
|-----------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 B12 B13 | B14 B15 | B16--Bn |
|
|||
|
|-----------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
| 固定序列如下 | | 附加 | 附加数据 | | B4--B13的 | 机器信息结构 |
|
|||
|
| | UCMD_SET_MC_CONFIG | 数据 | 校验字或 | 保留 | | |
|
|||
|
| 'V','L','D','P' | | 长度 | 字段ID | | 16位CRC | |
|
|||
|
|-----------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
|---------------------------------------------------------------------------------------------------------------|
|
|||
|
|
|||
|
附加数据结构定义和MCInfo相同。不过前面512字节是只读的信息,不能改变。
|
|||
|
|
|||
|
2. 下位机收到命令后,设置相关配置。
|
|||
|
|
|||
|
*/
|
|||
|
|
|||
|
// 读取机器状态
|
|||
|
/*
|
|||
|
工作流程
|
|||
|
1. 上位机发送 UCMD_GET_MC_STATUS 命令, 命令格式如下:
|
|||
|
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
| 数据识别序列 | 数据内容 | 校验字 |
|
|||
|
|-------------------|-----------------------------------------------------------------------|-----------|
|
|||
|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 B10 B11 B12 B13 | B14 B15 |
|
|||
|
|-------------------|---------------------|-----------------|-------------------------------|-----------|
|
|||
|
| 固定序列如下 | 数据包ID | 命令切换标志字 | 保留 | B4--B13的 |
|
|||
|
| |---------------------|-----------------|-------------------------------| |
|
|||
|
| 'F','L','D','P' | UCMD_GET_MC_STATUS | 可能是随机数 | | 16位CRC |
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
|
|||
|
2. 下位机收到后,回复 DCMD_SEND_MC_STATUS 命令, 格式定义如下
|
|||
|
|
|||
|
|-----------------------------------------------------------------------------------------------------------------------|
|
|||
|
|-------------------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
| 数据识别序列 | 数据内容 | 校验字 | 附加数据 |
|
|||
|
|-------------------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 | B12 B13 | B14 B15 | B16--Bn |
|
|||
|
|-------------------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
| 固定序列如下 | | 附加 | 附加 | 和上位机命令 | | B4--B13的 | 机器状态结构 |
|
|||
|
| | DCMD_SEND_MC_STATUS | 数据 | 数据 | 相同的 | 保留 | | |
|
|||
|
| 'V','L','D','P' | | 长度 | 校验字 | 命令切换标志字 | | 16位CRC | |
|
|||
|
|-------------------------------------------------------------------------------------------|-----------|---------------|
|
|||
|
|-----------------------------------------------------------------------------------------------------------------------|
|
|||
|
|
|||
|
3. 上位机收到下位机的回复命令后,通过比对 命令标志切换字 , 可以确认是否是刚刚发送命令的回复(对于连续发送命令有用),根据情况确定是否重新发送命令。
|
|||
|
|
|||
|
注意:
|
|||
|
1. 对于没有时序要求的数据包,可以不在意 命令标志切换字。
|
|||
|
2. 下位机会在状态发生变化的时候主动发送 DCMD_SEND_MC_STATUS 命令
|
|||
|
|
|||
|
*/
|
|||
|
|
|||
|
// 机器状态数据结构定义
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
// 0
|
|||
|
u32 workStatus; // 工作状态位图
|
|||
|
// .0 允许时限。=0,使用时限已到,不允许下位机工作;=1,允许下位机工作;
|
|||
|
// .1 允许状态。=0,界面钳制,不允许下位机工作;=1,允许下位机工作;
|
|||
|
// .2 机器状态。=0,手动工作状态; =1,自动工作状态
|
|||
|
// .3 钥匙状态。=0,关闭状态; =1,打开状态
|
|||
|
// .4 文件接收标志。= 0,初始状态。= 1,收到了文件
|
|||
|
// .5 参数接收标志。= 0,初始状态。= 1,收到了参数
|
|||
|
// .6 正在忙标志。= 0,空闲(可以接收文件和参数)。= 1,工作中(不会接收文件和参数)
|
|||
|
// .7 上料状态。=0,手动上料状态; =1,自动上料状态
|
|||
|
// .8 参数更新标志。 =1,下位机更新了参数
|
|||
|
// .9 模拟工作标志。=1, 处于模拟工作状态
|
|||
|
// .10 允许扫描条码状态。=1, 允许
|
|||
|
// .11 允许拍照状态。=1, 允许
|
|||
|
// .12 正在工作标志
|
|||
|
// .13 传感信号扫描中标志
|
|||
|
// .14 相机校准模式中标志
|
|||
|
// .15
|
|||
|
// .16
|
|||
|
// .17
|
|||
|
// .18
|
|||
|
// .19 取模板框状态
|
|||
|
// .20 放模板框状态
|
|||
|
// .21 匹绣, 0:退出匹绣,主轴归零 1:进入匹绣,扎针,允许移框
|
|||
|
// .22 断线检测, 0:退出断线检测状态, 1:进入断线检测状态
|
|||
|
|
|||
|
// 1
|
|||
|
u32 errorCode; // 错误代码
|
|||
|
u32 fileIdx; // 文件序号
|
|||
|
u32 dataIdx; // 数据索引
|
|||
|
u32 runSpeed; // 运动速度 主轴转速
|
|||
|
u32 runAction; // 执行动作代码 *
|
|||
|
u32 runSteps; // 当前执行步骤 *
|
|||
|
u32 outCounter; // 产量计数
|
|||
|
|
|||
|
// 8
|
|||
|
s32 xPos; // x电机当前坐标
|
|||
|
s32 yPos; // y电机当前坐标
|
|||
|
u32 workNoseHead; //当前工作机头(平绣或毛巾或缠绕)
|
|||
|
u32 tempdat1[2]; // 自定义状态1
|
|||
|
s32 spindleAngle; // 主轴角度
|
|||
|
u32 traverseState; // 机头板遍历状态
|
|||
|
u32 workTimer; // 工作时长
|
|||
|
u32 showSta; // bit0是平绣ZP主轴是否在位,0是在位,1是不在位
|
|||
|
u32 UThreadBkSta; // 面线断线状态,每一位对应一个机头
|
|||
|
u32 DThreadBkSta; // 底线断线状态,每一位对应一个机头
|
|||
|
u32 tempdat2; // 自定义状态2
|
|||
|
|
|||
|
// 20
|
|||
|
s32 btrdPics; // 底线片数计数
|
|||
|
s32 btrdLength; // 底线长度计数
|
|||
|
|
|||
|
// 22
|
|||
|
u32 colorIdx; // 色序编码
|
|||
|
s32 needleIdx; // 针位号
|
|||
|
|
|||
|
// 24
|
|||
|
u32 potval; //电位器值
|
|||
|
u32 tempdat3; // 提升电机档位值或松紧线位置
|
|||
|
|
|||
|
// 26
|
|||
|
//u32 laserIntensity; // 激光强度
|
|||
|
u32 iterationsNum; // 反复绣,当前反复次数
|
|||
|
|
|||
|
// 27
|
|||
|
s32 workableTimer; // 可工作时间计数器(分钟)
|
|||
|
|
|||
|
u32 needleNum; // 缝纫针数
|
|||
|
|
|||
|
//29
|
|||
|
u32 UThreadBkSta1[32-29];
|
|||
|
|
|||
|
u32 tempdat4[8];
|
|||
|
|
|||
|
u32 tempdat5[8];
|
|||
|
|
|||
|
u32 tempdat6[8];
|
|||
|
|
|||
|
u32 tempdat7[8];
|
|||
|
|
|||
|
} __attribute__ ((packed)) MCStatus;
|
|||
|
|
|||
|
|
|||
|
//机器状态
|
|||
|
#define WORK_STA_ENTIME 0x00000001 // 允许时限
|
|||
|
#define WORK_STA_ENSTATE 0x00000002 // 允许状态
|
|||
|
#define WORK_STA_WKAUTO 0x00000004 // 工作状态,手动自动
|
|||
|
#define WORK_STA_KEYEN 0x00000008 // 钥匙开关状态
|
|||
|
#define WORK_STA_FILEOK 0x00000010 // 文件接收标志。= 0,初始状态。= 1,收到了文件
|
|||
|
#define WORK_STA_PARAOK 0x00000020 // 参数接收标志。= 0,初始状态。= 1,收到了参数
|
|||
|
#define WORK_STA_BUSY 0x00000040 // 正在忙标志。= 0,空闲(可以接收文件和参数)。= 1,忙中(不会接收文件和参数)
|
|||
|
#define WORK_STA_FEED 0x00000080 // 上料状态。=0,手动上料状态; =1,自动上料状态
|
|||
|
#define WORK_STA_NEW_PARA 0x00000100 // 参数更新标志。 =1,下位机更新了参数。上位机需要读取下位机的参数文件并更新
|
|||
|
#define WORK_STA_SIMULATE 0x00000200 // 模拟工作标志。 =1,机器处于模拟工作
|
|||
|
#define WORK_STA_EN_SCAN 0x00000400 // 扫码允许。 =1,允许扫码状态
|
|||
|
#define WORK_STA_EN_PHOTO 0x00000800 // 拍照允许。 =1,允许拍照状态
|
|||
|
#define WORK_STA_WORKING 0x00001000 // 工作标志。= 1,工作中
|
|||
|
|
|||
|
|
|||
|
//通用错误
|
|||
|
#define ERR_NONE 0x0000 // 没有错误
|
|||
|
#define ERR_NO_AIR 0x0002 // 气压不足
|
|||
|
#define ERR_NOT_SAFE 0x0003 // 安全区域介入
|
|||
|
#define ERR_EXPIRATION 0x0004 // 使用时限已到
|
|||
|
#define ERR_DRIVER 0x0005 // 驱动器报警
|
|||
|
#define ERR_FILL_DATA 0x0006 // 填充数据错误
|
|||
|
#define ERR_NOT_ALLOWED 0x0007 // 不允许工作状态
|
|||
|
#define ERR_CTRL_ERR 0x0008 // 控制错误
|
|||
|
#define ERR_FPGA_ERR 0x0009 // 运动控制芯片版本错误
|
|||
|
#define ERR_BUTTON_NOUP 0x000A // 等待按钮抬起超时
|
|||
|
#define ERR_FPGA_RESET 0x000B // FPGA复位错误
|
|||
|
#define ERR_NO_READY 0x000C // 外设未就绪
|
|||
|
#define ERR_NO_SEND_ERR 0x000D // 传输数据错误
|
|||
|
#define ERR_EDTION_ERR 0x000E // 程序版本错误
|
|||
|
#define ERR_WORK_DONE 0x000F // 完成产量
|
|||
|
#define ERR_LMT_POSITIVE 0x0010 // 正向限位
|
|||
|
#define ERR_LMT_NEGATIVE 0x0011 // 反向限位
|
|||
|
#define ERR_RUN_ALM 0x0012 // 运动报警
|
|||
|
#define ERR_RUN_LIMIT 0x0013 // 运动限位
|
|||
|
#define ERR_RUN_EMS 0x0014 // 运动急停
|
|||
|
#define ERR_MV_PARA 0x0015 // 运动参数错误
|
|||
|
#define ERR_MC_PARA 0x0016 // 机器参数错误
|
|||
|
#define ERR_IN_PARA 0x0017 // 输入参数错误
|
|||
|
#define ERR_NOT_WORKSTA 0x001A // 不能工作状态
|
|||
|
#define ERR_NOT_MOVESTA 0x001B // 禁止移框状态
|
|||
|
#define ERR_MTZ_RIGHT 0x001F // 归零成功
|
|||
|
#define ERR_MTZ_ERROR 0x0020 // 归零错误
|
|||
|
#define ERR_COOR_SYSTM 0x0021 // 坐标系统错误
|
|||
|
#define ERR_OUT_RANGE 0x0022 // 目标位置越界
|
|||
|
#define ERR_X_LIT_POSI 0x0023 // X正向限位
|
|||
|
#define ERR_X_LIT_NEGA 0x0024 // X反向限位
|
|||
|
#define ERR_Y_LIT_POSI 0x0025 // Y正向限位
|
|||
|
#define ERR_Y_LIT_NEGA 0x0026 // Y反向限位
|
|||
|
#define ERR_ALM_WATERTANK 0x002A // 水箱报警
|
|||
|
#define ERR_ALM_COVEROPEN 0x002B // 开盖报警
|
|||
|
#define ERR_LIGHTCURTAINS1 0x002C // 光幕1介入
|
|||
|
#define ERR_LIGHTCURTAINS2 0x002D // 光幕2介入
|
|||
|
#define ERR_AIR_POWER 0x002E // 气压不足
|
|||
|
#define ERR_NO_DATA 0x0040 // 无数据
|
|||
|
#define ERR_DATA_ERROR 0x0041 // 数据错误
|
|||
|
#define ERR_GRAPH_OUT_RANGE 0x0042 // 图形超出范围
|
|||
|
#define ERR_MS_NOT_ZERO 0x0050 // 主轴不在零位
|
|||
|
#define ERR_HK_NOT_ZERO 0x0051 // 旋梭不在零位
|
|||
|
#define ERR_MS_NOT_SYNC 0x0052 // 针梭不同步
|
|||
|
#define ERR_RO_NOT_SYNC 0x0053 // 旋转不同步
|
|||
|
#define ERR_CUTTER_NOT_POS 0x0054 // 剪刀不在回位
|
|||
|
#define ERR_HEAD_NOT_HIGH 0x0055 // 机头不在高位
|
|||
|
#define ERR_HEAD_NOT_LOW 0x0056 // 机头不在低位
|
|||
|
#define ERR_LIGHTCURTAINS 0x0057 // 光幕介入
|
|||
|
#define ERR_UPER_TBREAK 0x0058 // 面线断线
|
|||
|
#define ERR_BOBBIN_TBREAK 0x0059 // 底线断线
|
|||
|
#define ERR_NEEDLE_NOT_HIGH 0x005A // 机针不在高位
|
|||
|
#define ERR_SEND_N1CMD_TIMOUT 0x005B // 发送主轴命令超时
|
|||
|
#define ERR_SEND_N1CMD_FAIL 0x005C // 发送主轴命令失败
|
|||
|
#define ERR_TRANS_TIMEOUT 0x005D // 执行命令超时
|
|||
|
#define ERR_NOT_AT_POS 0x005E // 模版不到位
|
|||
|
#define ERR_LIFT_TIMEOUT 0x005F // 机头升降超时
|
|||
|
#define ERR_HEAD_NOT_SAFE 0x0060 // 机头不在安全区域
|
|||
|
#define ERR_HD1_ND_NOT_ZERO 0x0061 // 机头1针不在零位
|
|||
|
#define ERR_HD1_CUTTER_NOT_POS 0x0071 // 机头1剪刀不在回位
|
|||
|
#define ERR_R_LIT_POSI 0x0081 // 旋转正向限位
|
|||
|
#define ERR_R_LIT_NEGA 0x0082 // 旋转反向限位
|
|||
|
#define ERR_XY_NOT_WP 0x0085 // XY不在工作位置
|
|||
|
#define ERR_HEAD_NOT_POS 0x0086 // 机头不到位
|
|||
|
#define ERR_TO_ZERO_TIMOUT 0x008E // 等待运动结束超时
|
|||
|
#define ERR_MOVE_POS_ERR 0x008F // 移动位置错误
|
|||
|
#define ERR_FOOT_POS 0x0093 // 压脚位置错误
|
|||
|
#define ERR_FOOT_OUT_RANGE 0x0094 // 压脚电机位置越界
|
|||
|
#define ERR_LIFT_OUT_RANGE 0x0095 // 机头升降位置越界
|
|||
|
#define ERR_ROT_OUT_RANGE 0x0096 // 旋转位置越界
|
|||
|
#define ERR_ROT_ECD_ERROR 0x0097 // 旋转编码器错误
|
|||
|
#define ERR_LIFT_ULIMIT 0x0098 // 机头升降上限位
|
|||
|
#define ERR_LIFT_DLIMIT 0x0099 // 机头升降下限位
|
|||
|
#define ERR_LIFT_SYNC_ERR 0x009A // 机头升降同步错误
|
|||
|
#define ERR_NOTIN_SAFE_AREA 0x009E // 机头不在安全区域
|
|||
|
#define ERR_BUS_ERR 0x00AD // 总线错误
|
|||
|
#define ERR_CHANGE_BOBBIN 0x00F0 // 更换梭芯
|
|||
|
#define ERR_CHANGE_BOBBIN_A 0x00F1 // 更换梭芯A
|
|||
|
#define ERR_CHANGE_BOBBIN_B 0x00F2 // 更换梭芯B
|
|||
|
#define ERR_CHANGE_BOBBIN_STA 0x00F3 // 机器处于更换梭芯状态
|
|||
|
#define ERR_WORK_HEAD 0x00D6 // 工作机头错误
|
|||
|
#define ERR_CHANGE_SHUT 0x00D7 // 换梭异常
|
|||
|
|
|||
|
|
|||
|
// 设置机器状态
|
|||
|
/*
|
|||
|
工作流程
|
|||
|
1. 上位机发送命令 UCMD_SET_MC_STATUS, 命令结构定义如下:
|
|||
|
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
| 数据识别序列 | 数据内容 | 校验字 |
|
|||
|
|-------------------|-----------------------------------------------------------------------|-----------|
|
|||
|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 B12 B13 | B14 B15 |
|
|||
|
|-------------------|--------------------|------------------|-----------|-------------------|-----------|
|
|||
|
| 固定序列如下 | 数据包ID | 状态码 | 参数 | 保留 | B4--B13的 |
|
|||
|
| |--------------------|------------------|-----------|-------------------| |
|
|||
|
| 'F','L','D','P' | UCMD_SET_MC_STATUS | | | | 16位CRC |
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
|-------------------------------------------------------------------------------------------------------|
|
|||
|
|
|||
|
|
|||
|
2. 下位机收到命令后,根据状态码设置相关状态。
|
|||
|
|
|||
|
*/
|
|||
|
|
|||
|
// 状态码定义如下-设置
|
|||
|
#define MC_STA_CLENA_ERR 0x0000 // 清除错误
|
|||
|
#define MC_STA_EN_WORK 0x0001 // 允许工作(状态)
|
|||
|
#define MC_STA_DIS_WORK 0x0002 // 禁止工作(状态)
|
|||
|
#define MC_STA_EN_TIME 0x0003 // 允许工作(时间)
|
|||
|
#define MC_STA_DIS_TIME 0x0004 // 禁止工作(时间)
|
|||
|
#define MC_CLEAN_COUNT 0x0005 // 产量计数清零
|
|||
|
#define MC_STA_MANUAL 0x0006 // 手动工作状态
|
|||
|
#define MC_STA_AUTO 0x0007 // 自动工作状态
|
|||
|
#define MC_FILE_SWITCH 0x0008 // 文件切换
|
|||
|
#define MC_INVALID_FILE 0x0009 // 文件失效命令
|
|||
|
#define MC_CLEAN_PARA_REF 0x000A // 清除刷新参数标志
|
|||
|
#define MC_SET_TO_NORMAL 0x000B // 设置为正常工作状态
|
|||
|
#define MC_SET_TO_SIMULATE 0x000C // 设置为模拟工作状态
|
|||
|
#define MC_SET_ERR_STA 0x000D // 设置为错误状态(报错)
|
|||
|
#define MC_CLEAN_FIDX 0x000F // 索引复位
|
|||
|
#define MC_CLEAN_BOBBIN 0x0010 // 底线计数复位
|
|||
|
#define MC_SET_ENTRY_SCAN_SENSOR 0x0011 // 设置为 进入 扫描传感器状态
|
|||
|
#define MC_SET_EXIT_SCAN_SENSOR 0x0012 // 设置为 退出 扫描传感器状态
|
|||
|
#define MC_SET_ENTER_TEST_OUTPUT 0x0013 // 设置为 进入 测试输出状态
|
|||
|
#define MC_SET_EXIT_TEST_OUTPUT 0x0014 // 设置为 退出 测试输出状态
|
|||
|
#define MC_STA_EXIT_THREADBK 0x0024 // 退出断线测试
|
|||
|
#define STA_NORMAL_STOP 0x0100 // 正常停止
|
|||
|
#define STA_MTZ_SUCCESS 0x0101 // 归零成功
|
|||
|
#define STA_WORK_PAUSE 0x0102 // 工作暂停
|
|||
|
#define STA_WORK_OVER 0x0103 // 工作结束
|
|||
|
#define STA_WORK_FINISH 0x0104 // 工作完成
|
|||
|
#define STA_WORK_DONE 0x0105 // 完成产量
|
|||
|
#define STA_EXEC_SUCCESS 0x0106 // 执行成功
|
|||
|
#define STA_EXEC_FAILED 0x0107 // 执行失败
|
|||
|
#define STA_WAIT_FILE 0x0108 // 等待文件
|
|||
|
#define STA_CHANGE_BOBBIN 0x0109 // 更换梭芯
|
|||
|
#define STA_PROCESS_FINISH 0x010A // 执行完成
|
|||
|
#define STA_PROCESS_RUNNING 0x010B // 执行过程中
|
|||
|
#define STA_LINE_TBREAK 0x0152 // 断线停止
|
|||
|
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
u32 buf[PARA_NUM];
|
|||
|
} __attribute__ ((packed)) ParaStruct;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// 参数类型定义
|
|||
|
#define SEW_MCPARA_MACH 0 // 缝纫机器参数
|
|||
|
#define SEW_MCPARA_WORK 1 // 缝纫工作参数
|
|||
|
#define SEW_MCPARA_DEF_MC 2 // 出厂默认机器配置参数(读取有效)
|
|||
|
#define SEW_MCPARA_DEF_WK 3 // 出厂默认机器工作参数(读取有效)
|
|||
|
#define SEW_REVMCPARA_MACH 0x07 // 预留机器配置参数
|
|||
|
#define SEW_REVMCPARA_WORK 0x08 // 预留机器工作参数
|
|||
|
|
|||
|
#define SEW_MCPARA_EX1 0x20 // 机器扩展参数1
|
|||
|
#define SEW_MCPARA_EX2 0x21 // 机器扩展参数2
|
|||
|
|
|||
|
// 缝纫机器参数
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
// 0
|
|||
|
u32 machineType; // 机器类型
|
|||
|
u32 productType; // 产品类型
|
|||
|
u32 headNumbers; // 机头个数
|
|||
|
u32 needleNumbers; // 每头机针个数
|
|||
|
// 4
|
|||
|
u32 rev0[10-0];
|
|||
|
|
|||
|
// 10
|
|||
|
u32 xConfig; // x配置
|
|||
|
u32 yConfig; // y配置
|
|||
|
u32 x2Config; // x2配置
|
|||
|
u32 y2Config; // y2配置
|
|||
|
|
|||
|
// config.0, = 0, 无该轴; = 1, 有该轴;
|
|||
|
// config.1, = 0, 单电机驱动; = 1, 双电机驱动;
|
|||
|
// config.2, = 0, 坐标系统为正; = 1, 坐标系统为反;
|
|||
|
// config.3, = 0, 移动对象为机头 = 1, 移动对象为框;
|
|||
|
// config.4, = 0, 没有零位传感器; = 1, 有零位传感器;
|
|||
|
// config.5, = 0, 没有降速传感器; = 1, 有降速传感器;
|
|||
|
// config.6, = 0, 没有正向限位传感器; = 1, 有正向限位传感器;
|
|||
|
// config.7, = 0, 没有负向限位传感器; = 1, 有负向限位传感器;
|
|||
|
// config.8, = 0, 向负方向找零位传感器; = 1, 向正方向找零位传感器;
|
|||
|
// config.9, = 0, 零位单独起作用; = 1, 零位和降速一起起作用;
|
|||
|
|
|||
|
u32 mConfig; // 缝纫主轴配置
|
|||
|
// config.0, = 0, 无该轴; = 1, 有该轴;
|
|||
|
// config.1, = 0, 针梭一体; = 1, 针梭分离(双电机);
|
|||
|
|
|||
|
u32 uConfig; // 升降电机配置
|
|||
|
// config.0, = 0, 无该轴; = 1, 有该轴;
|
|||
|
|
|||
|
u32 fConfig; // 压脚电机配置
|
|||
|
// config.0, = 0, 无该轴; = 1, 有该轴;
|
|||
|
|
|||
|
u32 rConfig; // 旋转电机配置
|
|||
|
// config.0, = 0, 无该轴; = 1, 有该轴;
|
|||
|
// config.1, = 0, 单电机驱动; = 1, 双电机驱动;
|
|||
|
// config.2, = 0, 坐标系统为正; = 1, 坐标系统为反;
|
|||
|
// config.3, = 0, 转动对象为机头 = 1, 转动对象为框;
|
|||
|
// config.4, = 0, 无旋转范围限制 = 1, 有旋转范围限制;
|
|||
|
// 18
|
|||
|
u32 cutDTrdDev; // 下剪刀驱动装置选择, 0, 无下剪线装置; 1, 气缸; 2, 交流电机; 3, 步进电机; 4, 电磁铁
|
|||
|
u32 cutDTrdMode; // 下剪线模式选择, 0, 静态剪线; 1, 动态剪线; 2, 凸轮剪线; 3, 凸轮分别剪线
|
|||
|
u32 cutUTrdDev; // 上剪刀驱动装置选择, 0, 无上剪线装置; 1, 气缸;
|
|||
|
// 21
|
|||
|
u32 utbdDev; // 面线断线检测装置选择; 0, 无装置; 1, 挑线簧; 2, 电子断线器;
|
|||
|
u32 dtbdDev; // 底线断线检测装置选择; 0, 无装置, 1, 光栅轮; 2, 磁编码器;
|
|||
|
u32 tbdMode; // 断线检测模式选择; 0, 直接检测; 1, 外围板检测;
|
|||
|
// 24
|
|||
|
u32 hookTrdDev; // 勾面线装置选择, 0, 无勾面线装置; 1, 气缸; 2, 电磁铁
|
|||
|
u32 looseTrdDev; // 松面线装置选择, 0, 无松线装置; 1, 气缸; 2, 电磁铁
|
|||
|
u32 pullTrdDev; // 拉面线装置选择, 0, 无拉面线装置; 1, 气缸;
|
|||
|
u32 pushTrdDev; // 扣底线装置选择, 0, 无扣底线装置; 1, 气缸; 2, 电磁铁
|
|||
|
u32 looseTrdDev2; // 第二松面线装置选择, 0, 无松线装置; 1, 气缸; 2, 电磁铁
|
|||
|
u32 templateId; // 模版识别装置, 0, 无识别装置; 1, 条形码; 2, 编码孔
|
|||
|
|
|||
|
// 30
|
|||
|
u32 hookFaceTo; // 旋梭面对方向, 0, 向前; 1, 向左; 2, 向右; 3, 向上
|
|||
|
// 31
|
|||
|
u32 templateDect; // 模版检测装置, 0, 无检测装置; 1, 检测
|
|||
|
u32 rev1[50-32];
|
|||
|
|
|||
|
// 50
|
|||
|
// 位置,尺寸
|
|||
|
s32 xSensorPos; // X框传感器坐标,单位 0.01mm
|
|||
|
s32 ySensorPos; // Y框传感器坐标,单位 0.01mm
|
|||
|
s32 mStopAng; // 主轴停车传感器角度,单位 0.01度
|
|||
|
s32 uSensorPos; // 升降传感器坐标,单位 0.01mm
|
|||
|
s32 fSensorPos; // 压脚传感器坐标,单位 0.01mm
|
|||
|
s32 rSensorAng; // 旋转传感器角度,单位 0.01度
|
|||
|
// 56
|
|||
|
s32 mHkSensorAng; // 主轴勾线传感器角度,单位 0.01度
|
|||
|
// 57
|
|||
|
s32 pStopAng; // 冲头停车角度,单位 0.01度
|
|||
|
// 58
|
|||
|
s32 cStopAng; // 裁刀主轴停车角度
|
|||
|
// 59
|
|||
|
s32 x2SensorPos; // X2框传感器坐标,单位 0.01mm
|
|||
|
s32 y2SensorPos; // Y2框传感器坐标,单位 0.01mm
|
|||
|
s32 plSensorPos; // 拉料电机传感器坐标,单位 0.01mm
|
|||
|
// 62
|
|||
|
s32 mJogSensorAng; // 主轴点动停车角度,单位 0.01度
|
|||
|
s32 emStopAng; // 平绣主轴停车角度,单位 0.01度
|
|||
|
|
|||
|
// 64
|
|||
|
u32 rev2[70-64];
|
|||
|
|
|||
|
// 70
|
|||
|
s32 xNegaBorder; // x可移动区域负边界(X-), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 xPosiBorder; // x可移动区域正边界(X+), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 yNegaBorder; // y可移动区域负边界(Y-), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 yPosiBorder; // y可移动区域正边界(Y+), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
|
|||
|
// 74
|
|||
|
s32 headudUper; // 机头升降可移动上边界,单位0.01mm
|
|||
|
s32 headudLower; // 机头升降可移动下边界,单位0.01mm
|
|||
|
|
|||
|
// 76
|
|||
|
s32 footudUper; // 压脚升降可移动上边界,单位0.01mm
|
|||
|
s32 footudLower; // 压脚升降可移动下边界,单位0.01mm
|
|||
|
u32 fppmmNumerator; // 电机压脚脉冲当量分子
|
|||
|
u32 fppmmDenominator; // 电机压脚脉冲当量分母
|
|||
|
|
|||
|
// 80
|
|||
|
s32 rLimitAnglePosi; // 旋转范围正向限制角度,单位 0.01度
|
|||
|
s32 rLimitAngleNega; // 旋转范围正向限制角度,单位 0.01度
|
|||
|
|
|||
|
// 82
|
|||
|
s32 punchOffsetX; // 冲孔机头偏移X, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 punchOffsetY; // 冲孔机头偏移Y, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 sewingAreaXN; // x可缝纫区域负边界(X-), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 sewingAreaXP; // x可缝纫区域正边界(X+), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 sewingAreaYN; // y可缝纫区域负边界(Y-), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 sewingAreaYP; // y可缝纫区域正边界(Y+), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 punchAreaXN; // x可冲孔区域负边界(X-), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 punchAreaXP; // x可冲孔区域正边界(X+), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 punchAreaYN; // y可冲孔区域负边界(Y-), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 punchAreaYP; // y可冲孔区域正边界(Y+), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
|
|||
|
s32 sewingROffsetX; // 缝纫右机头偏移X, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 sewingROffsetY; // 缝纫右机头偏移Y, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
|
|||
|
s32 cutterOffsetX; // 切刀机头偏移X, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 cutterOffsetY; // 切刀机头偏移Y, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
|
|||
|
s32 cuttingAreaXN; // x可裁切区域负边界(X-), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 cuttingAreaXP; // x可裁切区域正边界(X+), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 cuttingAreaYN; // y可裁切区域负边界(Y-), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 cuttingAreaYP; // y可裁切区域正边界(Y+), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
|
|||
|
// u32 rev3[100-100];
|
|||
|
|
|||
|
// 100
|
|||
|
// 速度参数
|
|||
|
u32 xymvstspSpd; // xy启动停止速度, 范围 1--100,单位mm/s,默认 10
|
|||
|
u32 xymvzSpd; // xy归零运行速度, 范围 1--100,单位mm/s,默认 100
|
|||
|
u32 xymvlSpd; // xy空走运行速度, 范围 1--1000,单位mm/s,默认 300
|
|||
|
u32 xymvSAdd; // xy行走加速度, 范围 1--10000,单位mm/s2,默认 1000
|
|||
|
u32 xymvbrkAdd; // xy刹车加速度 1--10000,单位mm/s2,默认 10000
|
|||
|
u32 xymvhSpd1; // xy手动移动速度1, 范围 1--1000,单位mm/s,默认 10
|
|||
|
u32 xymvhSpd2; // xy手动移动速度2, 范围 1--1000,单位mm/s,默认 100
|
|||
|
u32 xymvhSpd3; // xy手动移动速度3, 范围 1--1000,单位mm/s,默认 300
|
|||
|
u32 xymaxSpd; // xy最高移动速度, 范围 1--1000,单位mm/s,默认 300
|
|||
|
|
|||
|
// 109
|
|||
|
u32 msrstspRpm; // 主轴启动停止转速, 范围 1--300,单位r/min,默认 100
|
|||
|
u32 mstzRpm; // 主轴归零转速, 范围 1--3000,单位r/min,默认 120
|
|||
|
u32 msrunRpm; // 主轴运转转速, 范围 1--3000,单位r/min,默认 300
|
|||
|
u32 msrAddRpss; // 主轴运转加速度, 范围 1--100,单位r/ss,默认 50
|
|||
|
u32 msrbrkAdd; // 主轴刹车加速度, 范围 1--100,单位r/ss,默认 100
|
|||
|
u32 msHightRpm; // 主轴缝纫最高转速, 范围 1--3000,单位r/min,默认 3000
|
|||
|
|
|||
|
// 115
|
|||
|
u32 ustspSpd; // 机头升降起停速度, 范围 1--250,单位mm/s,默认 10
|
|||
|
u32 umvtzSpd; // 机头升降归零速度, 范围 1--250,单位mm/s,默认 50
|
|||
|
u32 umoveSpd; // 机头升降行走速度, 范围 1--250,单位mm/s,默认 200
|
|||
|
u32 uliftAdd; // 机头升降行走加速度, 1--10000,单位mm/s2,默认 500
|
|||
|
u32 uBrkAdd; // 机头升降刹车加速度, 1--10000,单位mm/s2,默认 1000
|
|||
|
|
|||
|
// 120
|
|||
|
u32 fstspSpd; // 压脚升降起停速度, 范围 1--100,单位mm/s,默认 10
|
|||
|
u32 fmvtzSpd; // 压脚升降归零速度, 范围 1--100,单位mm/s,默认 30
|
|||
|
u32 fmoveSpd; // 压脚升降行走速度, 范围 1--100,单位mm/s,默认 100
|
|||
|
u32 fliftAdd; // 压脚升降行走加速度, 1--10000,单位mm/s2,默认 500
|
|||
|
u32 fBrkAdd; // 压脚升降刹车加速度, 1--10000,单位mm/s2,默认 1000
|
|||
|
|
|||
|
// 125
|
|||
|
u32 rotstspDps; // 机头旋转启动停止速度, 范围 1--720, 单位 deg/s(度/秒),默认 10
|
|||
|
u32 rottzDps; // 机头旋转归零速度, 1--720, 单位 deg/s(度/秒),默认 50
|
|||
|
u32 rotrunDps; // 机头旋转运转速度, 范围 1--720, 单位 deg/s(度/秒),默认 360
|
|||
|
u32 rotAddDpss; // 机头旋转运动加速度, 范围 1--10000, 单位 deg/s(度/秒方),默认 500
|
|||
|
u32 rotBrkDpss; // 机头旋转刹车加速度, 范围 1--10000, 单位 deg/s(度/秒方),默认 5000
|
|||
|
u32 rotmaxDps; // 机头旋转最高速度, 范围 1--720,单位 deg/s,默认 720
|
|||
|
|
|||
|
// 131
|
|||
|
u32 minDrawSpd; // 最小画笔绘画速度, 范围 1--100,单位mm/s,默认 10
|
|||
|
u32 maxDrawSpd; // 最大画笔绘画速度, 范围 1--1200,单位mm/s,默认 1000
|
|||
|
u32 drawAdd; // 画笔绘画加速度, 范围 1--4000,单位mm/s2,默认 500
|
|||
|
u32 drawSlowAngle; // 画笔绘画降速最小偏差角度,范围 0--18000,单位 0.01度,默认 3000
|
|||
|
|
|||
|
// 135
|
|||
|
u32 rev4[150-135];
|
|||
|
|
|||
|
// 150
|
|||
|
s32 embOffsetX; // 平绣机头偏移X, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 embOffsetY; // 平绣机头偏移Y, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 embAreaXN; // 平绣x可绣花区域负边界(X-), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 embAreaXP; // 平绣x可绣花区域正边界(X+), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 embAreaYN; // 平绣y可绣花区域负边界(Y-), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 embAreaYP; // 平绣y可绣花区域正边界(Y+), 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
// 156
|
|||
|
u32 rev5[200-156];
|
|||
|
|
|||
|
// 200
|
|||
|
s32 penOffsetX; // 画笔偏移X, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 penOffsetY; // 画笔偏移Y, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 PressOffsetX; // 压枣偏移X, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
s32 PressOffsetY; // 压枣偏移Y, 范围 -2147483648--2147483647,单位0.01mm
|
|||
|
|
|||
|
// 204
|
|||
|
u32 EncoderMolecule; // 编码器系数分子, 范围 1--100000,单位 无
|
|||
|
u32 EncoderDeno; // 编码器系数分母, 范围 1--100000,单位 无
|
|||
|
u32 ZeroCutDistance; // 零切距离, 范围 1--500000,单位 0.01mm
|
|||
|
u32 FeedClothDev; // 进料装置选择, 0, 无进料装置; 1, 有进料装置
|
|||
|
u32 CrossCutDev; // 横切装置选择, 0, 无横切装置; 1, 有横切装置
|
|||
|
u32 ClipClothDev; // 夹布装置选择, 0, 无夹布装置; 1, 有夹布装置
|
|||
|
u32 TensionDev; // 张紧装置选择, 0, 无张紧装置; 1, 有张紧装置
|
|||
|
u32 SideCutDev; // 边切装置选择, 0, 无边切装置; 1, 有边切装置
|
|||
|
|
|||
|
// 212
|
|||
|
u32 rev6[256-212];
|
|||
|
|
|||
|
} __attribute__ ((packed)) SewingMcPara;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// 缝纫工作参数
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
// 0
|
|||
|
u32 msWorkRpm; // 主轴缝纫工作转速, 范围 1--3000,单位r/min,默认 2000
|
|||
|
u32 mscutRpm; // 主轴剪线转速, 范围 1--500,单位r/min,默认 120
|
|||
|
u32 msRevRpm; // 主轴回针转速, 范围 1--500,单位r/min,默认 200
|
|||
|
u32 msStSlowRpm; // 主轴启动慢动转速, 范围 1--500,单位r/min,默认 200
|
|||
|
u32 msBackEquRpm; // 倒车等效主轴转速,, 范围 1--3000,单位r/min,默认 1000
|
|||
|
// 5
|
|||
|
u32 sewMoveType; // 缝纫动框方式, 位图
|
|||
|
// bit0 = 0, xy连续动框; bit = 1, xy间歇式动框;
|
|||
|
// bit1 = 0, xy间歇式脉冲无加减速; bit1 = 1, xy间歇式脉冲正弦加减速;
|
|||
|
// bit2 = 0, 机头连续旋转; bit2 = 1, 机头间歇式旋转;
|
|||
|
// bit3 = 0, 机头间歇式脉冲无加减速; bit3 = 1, 间歇式脉冲正弦加减速;
|
|||
|
u32 sewMoveStAng; // 缝纫动框起始角度, 0--36000, 单位 0.01度,默认 28000
|
|||
|
u32 sewMoveCtnAng;// 缝纫动框持续角度, 0--36000, 单位 0.01度,默认 15000
|
|||
|
// 8
|
|||
|
u32 stSlowNum; // 起针慢动针数, 0--10,单位 针, ,默认 3
|
|||
|
u32 actionWhenStart; // 起针动作允许; 位图选择, 0, 不允许; 1, 允许; bit0, 松线允许; bit1, 顶线允许; bit2, 夹线允许;
|
|||
|
|
|||
|
// 10
|
|||
|
u32 cutTrdEn; // 剪线允许; 0, 不剪线; 1, 自动剪线; 2, 数据剪线 ,默认1
|
|||
|
u32 cutTrdDivAngle; // 剪线分线角度,0--36000, 单位 0.01度,默认 20000
|
|||
|
u32 cutTrdEndAngle; // 剪线完成角度,0--36000, 单位 0.01度,默认 6000
|
|||
|
u32 actionWhenCut; // 剪线时动作允许, 位图选择, bit0, 松线允许; bit1, 拉线允许; bit2, 夹线允许;
|
|||
|
|
|||
|
// 14
|
|||
|
u32 tbdNumber; // 断线检测针数; 0, 不检测断线; 其他, 断线信号连续针数,默认3
|
|||
|
u32 tbdAngle; // 断线检测主轴角度,0--36000, 单位 0.01度,默认 3000
|
|||
|
|
|||
|
// 16
|
|||
|
u32 changeBobbinMode; // 换梭芯提醒功能, 0, 不启用该功能; 1, 按长度计数延迟提醒; 2, 按片数计数; 3, 按长度立刻提醒; 默认0
|
|||
|
u32 changeBobbinLength; // 底线长度, 单位 0.01mm,默认 10000000
|
|||
|
u32 cblenFixed; // 每针底线修正量, 单位 0.01mm,默认 0
|
|||
|
u32 changeBobbinNums; // 换梭片数计数, 单位 次,默认 0
|
|||
|
|
|||
|
// 20
|
|||
|
u32 oilMode; // 加油方式选择, 0, 不加油; 1, 按工作时间间歇加油; 2, 按工作针数间歇加油; 3, 持续不停加油,默认0
|
|||
|
u32 addOilGapStitch; // 加油针数间隔, 单位针, 加油方式为按针数加油时有用,默认 10000
|
|||
|
u32 addOilGapTime; // 加油时间间隔, 单位秒, 加油方式为按工作时间加油时有用;
|
|||
|
u32 addOilTime; // 加油持续时长, 单位秒,
|
|||
|
|
|||
|
// 24
|
|||
|
u32 finishStopSel; // 完成后停车位置选择, 0, 当前位置; 1,起点,2,定位点,3,上料点; 4,偏移点
|
|||
|
|
|||
|
// 25
|
|||
|
u32 offsetEn; // 偏移点坐标有效标志; 0, 无效; 1, x有效; 2, y有效; 3, xy同时有效
|
|||
|
s32 offsetX;
|
|||
|
s32 offsetY; // 偏移点坐标
|
|||
|
// 28
|
|||
|
u32 fixPosEn; // 穿线点坐标有效标志; 0, 无效; 1, x有效; 2, y有效; 3, xy同时有效
|
|||
|
s32 fixPosX;
|
|||
|
s32 fixPosY; // 穿线点坐标
|
|||
|
// 31
|
|||
|
s32 headLowPos; // 机头升降低位高度
|
|||
|
s32 headHighPos; // 机头升降高位高度
|
|||
|
|
|||
|
// 33
|
|||
|
u32 expectedOutput; // 产量预设
|
|||
|
// 34
|
|||
|
u32 lightingBrightness; // 照明亮度,0--255; 默认128
|
|||
|
// 35
|
|||
|
u32 delayAfterFrameClose; // 气框关闭后延时, 0--2000, 单位ms, 默认500
|
|||
|
// 36
|
|||
|
u32 msAddRpss; // 缝纫加速度, 1--100, 单位r/ss , 默认5
|
|||
|
// 37
|
|||
|
u32 cutXYMovement; // 剪线动框位移, 1--1000, 单位0.01mm, 默认500
|
|||
|
// 38
|
|||
|
u32 sewingBlowEn; // 缝纫吹气允许, 0, 不允许; 1, 允许
|
|||
|
u32 punchBlowEn; // 冲孔吹气允许, 0, 不允许; 1, 允许
|
|||
|
u32 cleanerCloseDelay; // 吸尘器关闭延时,单位秒
|
|||
|
// 41
|
|||
|
u32 pmWorkRpm; // 冲孔主轴工作转速, 范围 1--3000,单位r/min,默认 2000
|
|||
|
u32 pmAddRpss; // 冲孔加速度, 1--100, 单位r/ss , 默认20
|
|||
|
|
|||
|
u32 pmMoveType; // 冲孔动框方式, 位图
|
|||
|
// bit0 = 0, xy连续动框; bit = 1, xy间歇式动框;
|
|||
|
// bit1 = 0, xy间歇式脉冲无加减速; bit1 = 1, xy间歇式脉冲正弦加减速;
|
|||
|
u32 pmMoveStAng; // 冲孔动框起始角度, 0--36000, 单位 0.01度,默认 24000
|
|||
|
u32 pmMoveCtnAng; // 冲孔动框持续角度, 0--36000, 单位 0.01度,默认 15000
|
|||
|
|
|||
|
// 46
|
|||
|
u32 liftHeadWhenSewing; // 缝纫间越框机头升降, 0, 不允许; 1, 允许
|
|||
|
u32 liftHeadWhenPunch; // 冲孔间越框机头升降, 0, 不允许; 1, 允许
|
|||
|
// 48
|
|||
|
u32 actionWhenMove; // 移框时动作选择; 位图选择, 0, 不允许; 1, 允许; bit0, 松线允许; bit2, 夹线允许;
|
|||
|
// 49
|
|||
|
u32 softwareLimit; // 软件限位; 位图选择, 0, 不允许; 1, 允许; bit0, xy移动; bit1, 缝纫头升降限制; bit2, 冲孔头升降限制; bit3, 裁刀机头升降限制
|
|||
|
|
|||
|
// 50
|
|||
|
s32 changeBobbinAng; // 换梭旋转机头角度, 0--36000, 单位 0.01度,默认 18000
|
|||
|
u32 rotMoveCtnAng; // 旋转持续角度, 0--36000, 单z位 0.01度,默认 36000
|
|||
|
// 52
|
|||
|
u32 hookThreadNum; // 面线勾线针数,1--5,单位 针,默认1
|
|||
|
u32 sewFootHeight; // 缝纫工作时压脚高度,单位 0.01mm
|
|||
|
u32 simuHeadHeight; // 模拟工作时机头高度,单位 0.01mm
|
|||
|
// 55
|
|||
|
u32 cutterWorkRpm; // 切刀工作转速, 范围 1--3000,单位r/min,默认 1200
|
|||
|
u32 cutterAddRpss; // 切刀加速度, 1--100, 单位r/ss , 默认20
|
|||
|
|
|||
|
// 57
|
|||
|
u32 cutMoveDir; // 剪线动框方向, 0, 不动框; 1, 向左; 2, 向前; 3, 向右; 4, 向后
|
|||
|
|
|||
|
// 58
|
|||
|
u32 pressKnotHigh; // 压枣升降行程,单位 0.01mm
|
|||
|
|
|||
|
// 59
|
|||
|
u32 msCornerRpm; // 主轴拐角转速, 范围 1--3000,单位r/min,默认 1000
|
|||
|
u32 slowAngle; // 降速最小偏差角度,单位度,范围0--180,默认 180
|
|||
|
|
|||
|
// 61
|
|||
|
u32 rev2[100-61];
|
|||
|
// 100
|
|||
|
u32 workHeadSel; // 工作机头选择,位图选择,共支持32个机头; 0, 不允许工作; 1, 允许工作; bit0 第一个机头, bit1, 第二个机头......
|
|||
|
u32 safetyEn; // 安全输入允许,位图选择,0, 不允许; 1, 允许; bit0 光幕; bit1, 气压; bit2 上电信号
|
|||
|
u32 autoFrameEn; // 自动气框允许,0, 不允许; 1, 允许;
|
|||
|
u32 autoFrameDelay; // 自动气框闭合延时,单位ms
|
|||
|
u32 sewoffsetAsCmd; // 线迹偏移功能,0, 不允许; 1, 允许;
|
|||
|
u32 autoworkstart; // 循环工作功能,0, 不允许; 1, 允许;
|
|||
|
u32 workHeadSelR; // 右工作机头选择,位图选择,共支持32个机头; 0, 不允许工作; 1, 允许工作; bit0 第一个机头, bit1, 第二个机头......
|
|||
|
u32 PullingPos; // 拉料电机拉料位置,单位 0.01mm
|
|||
|
u32 pullingLength; // 拉料长度,单位 0.01mm
|
|||
|
u32 cuttingLength; // 裁切长度,单位 0.01mm
|
|||
|
|
|||
|
// 110
|
|||
|
u32 addOilHookTime; // 梭加油持续时长, 单位秒, (针梭独立加油时有效)
|
|||
|
u32 clampingForce1; // 夹线力度1: 0~100 %
|
|||
|
u32 clampingForce2; // 夹线力度2: 0~100 %
|
|||
|
u32 clampingForce3; // 夹线力度3: 0~100 %
|
|||
|
u32 clampingForce4; // 夹线力度4: 0~100 %
|
|||
|
|
|||
|
// 115
|
|||
|
u32 emWorkRpm; // 平绣主轴工作转速, 范围 1--3000,单位r/min,默认 1000
|
|||
|
u32 emAddRpss; // 平绣加速度, 1--100, 单位r/ss , 默认5
|
|||
|
|
|||
|
u32 emMoveType; // 平绣动框方式, 位图
|
|||
|
// bit0 = 0, xy连续动框; bit = 1, xy间歇式动框;
|
|||
|
// bit1 = 0, xy间歇式脉冲无加减速; bit1 = 1, xy间歇式脉冲正弦加减速;
|
|||
|
u32 emMoveStAng; // 平绣动框起始角度, 0--36000, 单位 0.01度,默认 24000
|
|||
|
u32 emMoveCtnAng; // 平绣动框持续角度, 0--36000, 单位 0.01度,默认 20000
|
|||
|
// 120
|
|||
|
u32 rev3[150-120];
|
|||
|
|
|||
|
// 150
|
|||
|
u32 rev4[200-150];
|
|||
|
// 200
|
|||
|
u32 rev5[256-200];
|
|||
|
|
|||
|
} __attribute__ ((packed)) SewingWkPara;
|
|||
|
|
|||
|
|
|||
|
//回复的定义
|
|||
|
#define REV_TYPE_ONCE 0 // 单次回复;下位机收到命令后发送一次回复数据
|
|||
|
#define REV_TYPE_BEGIN 1 // 多次回复;下位机收到命令后,会主动开始发送回复数据,直到被其他命令打断。
|
|||
|
|
|||
|
|
|||
|
// 传感信号位定义,传感器信号位图和传感器信号的位定义相同
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
// 0
|
|||
|
u8 bitmap[1024];
|
|||
|
|
|||
|
} __attribute__ ((packed)) SensorsBitmap;
|
|||
|
|
|||
|
|
|||
|
// 传输文件类型
|
|||
|
#define FILE_TYPE_DAT 0x00 // 数据文件
|
|||
|
#define FILE_TYPE_PGM 0x02 // 升级文件
|
|||
|
|
|||
|
|
|||
|
// 文件传输控制结构
|
|||
|
#define LEN_RSV_BMP MAX_EXDP_LEN // 位图大小
|
|||
|
#define MAX_FILE_SIZE (LEN_RSV_BMP*MAX_EXDP_LEN*16) // 最大文件字节数 按位图大小设定
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
int transphase;
|
|||
|
int filetransing;
|
|||
|
int waitcount;
|
|||
|
|
|||
|
u8 transActive; // 传输结构有效
|
|||
|
u8 transflag; // 接收进度标志 = 0, 接收未开始; = 1, 正在接收; = 2,接收完成。
|
|||
|
u8 fileType; // 文件类型
|
|||
|
u8 fileIdx; // 为文件编号,最多支持16个文件
|
|||
|
u16 fileId; // 文件ID
|
|||
|
u16 packetSize; // 包的大小
|
|||
|
u32 packetNum; // 包的个数
|
|||
|
|
|||
|
DataDs16FileHead * pFileHead;
|
|||
|
AppFileHead * pAppHead;
|
|||
|
|
|||
|
u8 * pDatBuff;
|
|||
|
|
|||
|
u16 lenBmp; // 位图有效长度
|
|||
|
u8 rsvBitmap[LEN_RSV_BMP]; // 文件接收进度标志位图
|
|||
|
|
|||
|
}FileTransCtrl;
|
|||
|
|
|||
|
|
|||
|
// 传输有效标志定义
|
|||
|
#define TRANS_NONE 0x00 // 无效
|
|||
|
#define TRANS_ACTIVE 0x5A // 有效
|
|||
|
|
|||
|
// 传输结果代码定义
|
|||
|
#define TRANS_NOT_BEG 0x00 // 没有收到启动命令
|
|||
|
#define TRANS_READY 0x01 // 准备好接收
|
|||
|
#define TRANS_DOING 0x02 // 正在接收
|
|||
|
#define TRANS_DONE 0x03 // 接收完成
|
|||
|
#define TRANS_REQUEST 0x04 // 请求传输模式
|
|||
|
|
|||
|
|
|||
|
// 控制动作定义
|
|||
|
#define MOTO_TO_ZERO 0x0001 // 电机归零(辅助调试的功能,无安全保护和逻辑关系)
|
|||
|
#define MOVE_BY_HAND 0x0002 // 电机手动移动(辅助调试的功能,无安全保护和逻辑关系)
|
|||
|
#define OUTPUT_CTRL 0x0003 // 输出控制(辅助调试的功能,无安全保护和逻辑关系)
|
|||
|
#define MOTO_EN_CTRL 0x0004 // 电机使能控制(辅助调试的功能,无安全保护和逻辑关系)
|
|||
|
#define MANUAL_ACTION 0x0005 // 手动动作功能(日常使用功能,有安全保护和逻辑时序关系)
|
|||
|
#define TEST_OUTPUT 0x0006 // 测试输出OUTPUT端口(obj输出端口 1~26:主板output1~26 101~356:扩展板output1~256)
|
|||
|
#define TEST_THREADBK 0x0007// 测试断线检测
|
|||
|
|
|||
|
// 归零和手动移动和电机使能的 控制参数1 定义
|
|||
|
#define MT_LX 0x0001 // X向移动电机
|
|||
|
#define MT_LY 0x0002 // Y向移动电机
|
|||
|
#define MT_LM 0x0003 // 主轴电机
|
|||
|
#define MT_LN 0x0004 // 针电机
|
|||
|
#define MT_LH 0x0005 // 梭电机
|
|||
|
#define MT_LU 0x0006 // 升降电机
|
|||
|
#define MT_ALLZ 0x0004 // 所有主轴 零位
|
|||
|
#define MT_ALLG 0x0005 // 所有主轴 勾线
|
|||
|
#define MT_ALLM 0x0006 // 所有主轴 点动
|
|||
|
#define MT_LF 0x0007 // 压脚电机
|
|||
|
#define MT_LR 0x0008 // 旋转电机
|
|||
|
#define MT_LRU 0x0009 // 上旋转电机
|
|||
|
#define MT_LRD 0x000A// 下旋转电机
|
|||
|
#define CUT_THREAD 0x0001 // 手动剪线
|
|||
|
#define ALL_MS_RUN 0x0002 // 所有主轴研车
|
|||
|
#define ROTATE_ADJUST 0x0003 // 旋转校对
|
|||
|
#define HEAD_LIFT_UP 0x0004 // 机头上升
|
|||
|
#define HEAD_LIFT_DOWN 0x0005 // 机头下降
|
|||
|
#define HEAD_LIFT_UPDW 0x0006 // 机头升降
|
|||
|
#define MAINSHAFT_ADJUST 0x0007 // 针梭校对
|
|||
|
#define SEWING_MS_RUN 0x0009 // 缝纫主轴研车
|
|||
|
#define SEWING_MS_JOG 0x0084 // 缝纫机头点动
|
|||
|
#define SEW_HEAD_LIFT 0x0012 // 缝纫机头升降(根据传感器状态确定上升还是下降)
|
|||
|
#define SEW_MS_RESET 0x0013 // 缝纫针梭复位(回到停车位)
|
|||
|
#define SEW_MS_TO_FIX 0x0014 // 缝纫针梭去穿线位(回到穿线位)
|
|||
|
#define SEW_LOCLIP_TRD 0x0015 // 松紧线(根据状态松线或紧线)
|
|||
|
#define XY_MOVE_LEFT 0x0016 // X左移
|
|||
|
#define XY_MOVE_RIGHT 0x0017 // X右移
|
|||
|
#define XY_MOVE_FRONT 0x0018 // Y前移
|
|||
|
#define XY_MOVE_BACK 0x0019 // Y后移
|
|||
|
|
|||
|
#define MAKEUP_NOHEAD 0x0020 // 取消补缝
|
|||
|
#define MAKEUP_HEAD1 0x0021 // 机头1补缝
|
|||
|
#define MAKEUP_HEAD2 0x0022 // 机头2补缝
|
|||
|
#define MAKEUP_HEAD3 0x0023 // 机头3补缝
|
|||
|
#define MAKEUP_HEAD4 0x0024 // 机头4补缝
|
|||
|
#define MAKEUP_HEAD5 0x0025 // 机头5补缝
|
|||
|
|
|||
|
#define XY_MOVE_STOP 0x001A // XY停止
|
|||
|
#define SET_WORK_AREA 0x0001 // 设置可工作区域 手动控制功能,para2是机头 para3选X- X+ Y- Y+,分别对应1234
|
|||
|
#define ALL_MOVE_STOP 0x0040 // 移动停止
|
|||
|
#define AUTO_CHANGE_ONE_SHUT 0x0060 // 自动换一个梭
|
|||
|
#define INSTALL_FIRST_BOBBIN 0x0061 // 安装第一个梭壳
|
|||
|
#define SHUT_FROM_PLATE_TO_HEAD 0x0062 // 将旋梭从梭盘拿到机头
|
|||
|
#define SHUT_FROM_HEAD_TO_PLATE 0x0063 // 将旋梭从机头拿到梭盘
|
|||
|
#define SHUT_INTO_TAKE_PLATE 0x0065 // 进入换梭盘状态
|
|||
|
#define SHUT_INTO_INDX_STA 0x0066 // 进入缝纫状态
|
|||
|
#define HEAD_MOVING_MOTOR 0x0067 //机头移动电机
|
|||
|
// 手动 控制参数2 定义
|
|||
|
#define MT_MOVE_DIR_STOP 0x0000 // 停止转动
|
|||
|
#define MT_MOVE_DIR_POSI 0x0001 // 正向移动(x向右,y向上,升降向上)
|
|||
|
#define MT_MOVE_DIR_NEGA 0x0002 // 反向移动(x向左,y向下,升降向下)
|
|||
|
#define MT_SERVO_ON 0x0001 // 电机使能开
|
|||
|
#define MT_SERVO_OFF 0x0002 // 电机使能关
|
|||
|
|
|||
|
|
|||
|
// 通用输出控制定义
|
|||
|
// 输出控制参数1代码定义
|
|||
|
#define OT_LOOSE_THREAD 0x0001 // 松紧线
|
|||
|
#define OT_UCUTTER_LIFT 0x0002 // 上剪刀升降
|
|||
|
#define OT_UCUT_THREAD 0x0003 // 上剪刀剪线
|
|||
|
#define OT_DCUT_THREAD 0x0004 // 下剪刀剪线
|
|||
|
#define OT_FRAME 0x0005 // 气框
|
|||
|
#define OT_OIL 0x0006 // 加油
|
|||
|
#define OT_LIGHT 0x0007 // 照明灯
|
|||
|
#define OT_BIT_FOOT 0x0008 // 大压脚
|
|||
|
#define OT_MID_FOOT 0x0009 // 中压脚
|
|||
|
#define OT_PUSH_BTRD 0x000A// 扣底线
|
|||
|
#define OT_STAND_BTRD 0x000B// 顶底线
|
|||
|
#define OT_CLIP_UTRD 0x000C// 夹面线
|
|||
|
#define OT_LOOSE_UTRD2 0x000D// 松紧线2
|
|||
|
#define OT_SEW_LIFT 0x000E // 缝纫机头升降
|
|||
|
#define OT_SEW_BLOW 0x0010 // 缝纫吹气
|
|||
|
#define OT_HEAD_L_CLUTH 0x001A// 左机头主轴离合
|
|||
|
#define OT_HEAD_R_CLUTH 0x001B// 右机头主轴离合
|
|||
|
#define OT_CLIP_EXTEND 0x0024 // 勾线动作-伸出
|
|||
|
#define OT_CLIP_EXTEND_R 0x0025 // 右机头勾线动作
|
|||
|
#define OT_CLIP_OPEN 0x0026 // 勾线动作-开合
|
|||
|
#define OT_PEN_DOWN 0x0028 // 画笔升降
|
|||
|
#define OT_CHBOB_GRAB_OPEN 0x0070 // 换梭装置抓取
|
|||
|
#define OT_CHBOB_SWAY_PUSH 0x0071 // 换梭装置摆动
|
|||
|
#define OT_CHBOB_SPIN 0x0073 // 换梭装置旋转
|
|||
|
#define OT_LASER_CTRL 0x00F0 // 激光控制
|
|||
|
#define OT_LASER_BLOW 0x00F1 // 激光吹气
|
|||
|
// 输出参数2
|
|||
|
#define OT_STOP 0x0000 // 停止
|
|||
|
#define UP_OPEN_ON 0x0001 // 上升、打开、放松、伸出
|
|||
|
#define DOWN_CLOSE_OFF 0x0002 // 下降、关闭、加紧、收回
|
|||
|
#define OT_ACTION 0x0003 // 动作
|
|||
|
|
|||
|
|
|||
|
// 通用工作控制功能
|
|||
|
#define WORK_START 0x0001 // 启动工作
|
|||
|
#define WORK_PAUSE 0x0002 // 暂停工作
|
|||
|
#define WORK_FINISH 0x0003 // 结束工作(流程复位)
|
|||
|
#define WORK_FIND_ZERO 0x0004 // 自动找零
|
|||
|
#define WORK_GOTO_START 0x0005 // 回起点
|
|||
|
#define WORK_GOTO_ANCHOR 0x0006 // 回定位点
|
|||
|
#define WORK_GOTO_OFFSET 0x0007 // 回偏移点
|
|||
|
#define WORK_CHECK_FRAME 0x0008 // 边框检查
|
|||
|
#define WORK_CUT_FRAME 0x0009 // 边框切割
|
|||
|
#define WORK_CUT_XLINE 0x000A // 手动断布
|
|||
|
#define WORK_FAST_JUMP 0x000B // 快速进退
|
|||
|
#define WORK_GOTO_WKPOS 0x000C // 回工作点
|
|||
|
#define WORK_GOTO_FEEDT 0x000D // 回穿线点
|
|||
|
#define WORK_GOTO_CHGBO 0x000E // 回换梭位
|
|||
|
#define WORK_FEED_MOVE 0x000F // 进料退料
|
|||
|
#define WORK_GOTO_FINISH 0x0011 // 回结束点
|
|||
|
#define WORK_GOTO_ZERO 0x0012 // 回零点(框架归零)
|
|||
|
#define WORK_GOTO_GORNER 0x0013 // 回角点
|
|||
|
#define WORK_MS_JOG 0x0013 // 主轴点动
|
|||
|
#define WORK_FIX_MVFRAME 0x0017 // 定量移框
|
|||
|
#define WORK_RPM_CHG 0x0020 // 速度改变
|
|||
|
#define WORK_SIMULATION_FRAME 0x0026 // 空走边框
|
|||
|
#define WORK_GOTO_FEED 0x0027 // 回上料点
|
|||
|
#define WORK_SET_OFFSET 0x0028 // 定偏移点
|
|||
|
#define WORK_SET_FEED 0x0029 // 定上料点
|
|||
|
#define WORK_ACT_OIL 0x0050 // 工作中加油
|
|||
|
#define AUTO_CHANGE_ONE_SHUT 0x0060 // 自动换一个梭
|
|||
|
#define RESET_SHUT_COUNTER 0x0067 // 梭盘计数复位
|
|||
|
|
|||
|
// 启动工作的参数1定义
|
|||
|
#define WKMD_NORMAL 1 // 正常
|
|||
|
#define WKMD_SIMULATION 2 // 模拟(空走)
|
|||
|
#define WKMD_BACKWORD 3 // 回退
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// 命令结构定义
|
|||
|
typedef union
|
|||
|
{
|
|||
|
DataPacket packet;
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 toggle;
|
|||
|
u8 rev[6];
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) getMcInfo; // UCMD_GET_MC_INFO 读取机器信息
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 toggle;
|
|||
|
u8 rev[6];
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) getMcStatus; // UCMD_GET_MC_STATUS 读取机器状态
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 paraType;
|
|||
|
u16 paraId;
|
|||
|
u8 rev[4];
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) getMcParas; // UCMD_GET_MC_PARAS 读取机器参数
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 fromObj;
|
|||
|
u32 begAddr;
|
|||
|
u16 rdSize;
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) getMemData; // UCMD_GET_MEM_DATA 读取内存数据
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 backType;
|
|||
|
u8 rev[6];
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) getSensors; // UCMD_GET_SENSORS 读取传感信号
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u8 fileType;
|
|||
|
u8 fileIdx;
|
|||
|
u8 rev[6];
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) getFileInfo; // UCMD_GET_FILE_INFO 读取文件信息
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 fileId;
|
|||
|
u8 rev[6];
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) getTransResult; // UCMD_GET_TRANS_RESULT 读取传输结果
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u8 rev[8];
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) getSensorBmp; // UCMD_GET_SENSOR_BMP 读取传感信号
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u16 cfgItem;
|
|||
|
u8 rev[2];
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) setMcConfig; // UCMD_SET_MC_CONFIG 设置机器配置
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 staCode;
|
|||
|
u16 para;
|
|||
|
u8 rev[4];
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) setMcStatus; // UCMD_SET_MC_STATUS 设置机器状态
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u16 paraType;
|
|||
|
u16 paraId;
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) setParas; // UCMD_SET_MC_PARAS 设置下位机参数
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u8 setObj;
|
|||
|
u8 setWord;
|
|||
|
u32 setAddr;
|
|||
|
u16 setData;
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) setMemData; // UCMD_SET_MEM_DATA 设置内存数据
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u8 fileType;
|
|||
|
u8 fileIdx;
|
|||
|
u16 fileId;
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) setFileParas; // UCMD_SET_FILE_PARAS 设置文件参数
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u8 fileType;
|
|||
|
u8 fileIdx;
|
|||
|
u16 fileId;
|
|||
|
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
|
|||
|
} __attribute__ ((packed)) setExecProgress; // UCMD_SET_EXEC_PROGRESS 设置进度命令
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u8 rev[4];
|
|||
|
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
|
|||
|
} __attribute__ ((packed)) setInstallment; // UCMD_SET_INSTALLMENT 设置分期密码
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u8 type;
|
|||
|
u32 time;
|
|||
|
|
|||
|
u8 rev[3];
|
|||
|
u16 crc;
|
|||
|
|
|||
|
} __attribute__ ((packed)) setElapsedTime; // UCMD_SET_ELAPSED_TIME 设置经过的时间
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
u8 id;
|
|||
|
u8 nodeType;
|
|||
|
u8 rev[6];
|
|||
|
u16 crc;
|
|||
|
|
|||
|
} __attribute__ ((packed)) setDefParas; // UCMD_SET_DEF_PARA 设置默认参数
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 actCode;
|
|||
|
u16 para1;
|
|||
|
u16 para2;
|
|||
|
u16 para3;
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) actByhand; // UCMD_ACT_BYHAND 手动动作功能
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 workCode;
|
|||
|
u32 para1;
|
|||
|
u16 para2;
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) mcWork; // UCMD_MC_WORK 机器工作命令
|
|||
|
|
|||
|
#pragma pack(1)//设定为1字节对齐
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
s32 posx;
|
|||
|
s32 posy;
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) moveFrameTo; // UCMD_MOVE_TO 移动框架到位置命令
|
|||
|
#pragma pack(1)//设定为1字节对齐
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u8 fileType;
|
|||
|
u8 fileIdx;
|
|||
|
u16 fileId;
|
|||
|
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) startTrans; // UCMD_START_TRANS 启动文件传输
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u16 pktIdx;
|
|||
|
u16 fileId;
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) transFileData; // UCMD_TRANS_FILE_DATA 文件数据传输
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u32 fileIdxMap;
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) setFilesList; // UCMD_SET_FILE_LIST 设置文件列表
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u8 rev[8];
|
|||
|
|
|||
|
u16 crc;
|
|||
|
|
|||
|
} __attribute__ ((packed)) getFilesList; // UCMD_GET_FILE_LIST 读取文件列表
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 upObj;
|
|||
|
u16 upFileID;
|
|||
|
u32 checksum;
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) mcUpdate; // UCMD_MC_UPDATE 系统升级
|
|||
|
|
|||
|
|
|||
|
//----------------------------------
|
|||
|
// 下位机发送命令
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u8 fileType;
|
|||
|
u8 fileIdx;
|
|||
|
u16 fileId;
|
|||
|
u32 datBlockIdx; // 数据包索引(每个包1024字节)
|
|||
|
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) dRequestDatBlock; // DCMD_REQUEST_DAT 请求文件数据
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u16 toggle;
|
|||
|
u8 rev[2];
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) dSendMcInfo; // DCMD_SEND_MC_INFO 发送机器信息
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u16 toggle;
|
|||
|
u8 rev[2];
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) dSendMcStatus; // DCMD_SEND_MC_STATUS 发送机器状态
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u16 paraType;
|
|||
|
u16 paraId;
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) dSendMcParas; // DCMD_SEND_MC_PARAS 发送机器参数
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u32 begAddr;
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) dSendMemData; // DCMD_SEND_MEM_DATA 发送内存数据
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u8 rev[4];
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) dSendSensors; // DCMD_SEND_SENSORS 发送传感信号
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u8 fileType;
|
|||
|
u8 fileIdx;
|
|||
|
u8 rev[2];
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) dSendFileInfo; // DCMD_SEND_FILE_INFO 发送文件信息
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u16 fileId;
|
|||
|
u8 active;
|
|||
|
u8 result;
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) dSendTransResult; // DCMD_SEND_TRANS_RESULT 发送传输结果
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u8 rev[4];
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) dSendSensorBmp; // DCMD_SEND_SENSOR_BMP 发送传输结果
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u8 fileType;
|
|||
|
u8 fileIdx;
|
|||
|
u16 fileId;
|
|||
|
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
|
|||
|
} __attribute__ ((packed)) setMacKey; // setMacKey
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u8 protocolType; // 协议类型
|
|||
|
u8 nodeType; // 遍历节点类型
|
|||
|
u8 traNum; // 遍历个数
|
|||
|
u8 nodeId; // 遍历起始节点ID
|
|||
|
u8 rev[4];
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) traverse; // 遍历命令
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u8 rev[8];
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) rdBoardVer; // 读取外围板程序版本
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u8 protocolType; // 协议类型
|
|||
|
u8 nodeId; // 节点ID
|
|||
|
u8 rev[6];
|
|||
|
u16 crc;
|
|||
|
} __attribute__ ((packed)) updateBoard; // 升级外围板
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u8 protocolType;
|
|||
|
u8 nodeId; //节点ID
|
|||
|
u8 nodeType; //节点类型 -rq
|
|||
|
u8 rev;
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u32 ver[8];
|
|||
|
u8 exData[MAX_EXDP_LEN-32];
|
|||
|
} __attribute__ ((packed)) sendBoardVer; // 发送外围板程序版本
|
|||
|
|
|||
|
struct
|
|||
|
{
|
|||
|
u8 sync[DP_SYNC_LEN];
|
|||
|
u16 cmdCode;
|
|||
|
|
|||
|
u16 exLen;
|
|||
|
u16 exCrc;
|
|||
|
|
|||
|
u8 nodeId;
|
|||
|
u8 nodeType; // 节点类型
|
|||
|
u8 rev[2];
|
|||
|
u16 crc;
|
|||
|
|
|||
|
u8 exData[MAX_EXDP_LEN];
|
|||
|
} __attribute__ ((packed)) boardPara; // 发送外围板非易失性参数
|
|||
|
|
|||
|
}OperPacket;
|
|||
|
#pragma pack(1)//设定为1字节对齐
|
|||
|
|
|||
|
|
|||
|
#endif
|