export interface PalletStyle { x: number y: number rotate: 0 | 1 index: number } export interface IPallet { sizeType: 0 | 1 // 0:选用下拉框尺寸;1:自定义栈板尺寸 length: number // 栈板长度(mm) width: number // 栈板宽度(mm) height: number // 栈板高度(mm) } export interface IBox { length: number // 料箱长度(mm) width: number // 料箱宽度(mm) height: number // 料箱高度(mm) weight: number // 料箱重量(kg) } export interface IStyle { a: PalletStyle[] // 跺型样式a,例: [ {"x":number , "y":number, "rotate":0/1 }, {box2位置}..., { boxn位置 } ] x、y为料箱中心坐标(相对用户坐标系),rotate表示是否旋转(0为未旋转) b: PalletStyle[] // 跺型样式b } export interface ILayer { count: number // 堆垛层数(1~10) mode: 0 | 1 | 2 | 3 // aaa/bbb/aba/bab partition: number // 0:不需要隔板;n:每n层添加隔板 partitionHeight: number //隔板高度 } export interface ICoordinate { user: number // 用户坐标系 tool: number // 工具坐标系 } export interface IBasicConfig { // 基础设置 mode: number // 0:码垛;1:拆跺 pallet: number // 0:只有左栈板;1:只有右栈板;2:左右栈板 conveyer: number // 0:单传送带;1:双传送带 box: number // 0:一种尺寸;1:双尺寸 suction: number // 0:单吸盘;1:双吸盘 lift: number // 0:无升降柱;1:有升降柱 userLeft: number // 左用户坐标系 userRight: number // 右用户坐标系 tool1: number // 工具坐标系1 tool2: number // 工具坐标系2 interlayer: number // 隔板取放功能勾选;0:不启用;1:启用 userInterlayer: number // 隔板用户坐标系 } export interface ISignalConfig { // 信号设置 suctionOn1: number // 吸盘 1 吸真空 suctionOn2: number // 吸盘 2 吸真空 vacuumBreakEnable: number suctionOff1: number // 吸盘 1 破真空 suctionOff2: number // 吸盘 2 破真空 vacuumDetectEnable: number vacuumDetect: number // 吸盘 1 真空检测 vacuumTrigger: number // 吸盘 2 真空检测 conveyerIncoming1: number // 传送带1来料 conveyerIncoming2: number // 传送带2来料 leftPalletReady: number[] // 左栈板到位 rightPalletReady: number[] // 右栈板到位 palletConfirmEnable: number // 新栈板到位确认按钮 0:不启用;1:启用 leftPalletConfirm: number // 左栈板确认信号 rightPalletConfirm: number // 右栈板确认信号 multiSensor: number // 是否启用多个传送带传感器 } export interface IBoxConfig { // 料箱参数设置 left: { // 左栈板料箱尺寸 length: number // 料箱长度(mm) width: number // 料箱宽度(mm) height: number // 料箱高度(mm) weight: number // 料箱重量(kg) } right: { // 右栈板料箱尺寸 length: number // 料箱长度(mm) width: number // 料箱宽度(mm) height: number // 料箱高度(mm) weight: number // 料箱重量(kg) } tool: { // 末端工具信息 length: number // 末端工具长度(mm) width: number // 末端工具宽度(mm) height: number // 末端工具高度(mm) weight: number // 末端工具重量(kg) } } export interface IPalletConfig { // 栈板参数设置 size: { type: number // 尺寸类型 0:自定义;1:预设尺寸 length: number // 栈板长度(mm) width: number // 栈板宽度(mm) height: number // 栈板高度(mm) } transition: { left: number[][] // 左栈板过渡点 right: number[][] // 右栈板过渡点 } } export interface IConveyerConfig { // 传送带设置 position: number[][] } export interface ITypeConfig { // 样式A信息 sort: number // 排序模式 0:算法排序;1:自定义排序 mode: number // 放置方式 0:单吸单放;1:双吸双放 align: number // 对齐方式 0:长边对齐;1:短边对齐 dbTimes: number // 双吸次数 style: { x: number // 料箱坐标X y: number // 料箱坐标Y rotate: number // 是否旋转 0:未旋转;1:旋转90° direction: number // 放置方向 0~8: ↖↑↗←↕→↙↓↘ index: number // 料箱序号, connection: number // 0:单吸;1:双吸 offset: number[] // 当前料箱放料点偏移量 }[] } export interface ITemplateConfig { // 跺型设置 typeA: ITypeConfig typeB: ITypeConfig // 样式B信息, typeC?: ITypeConfig // 样式C信息, typeD?: ITypeConfig // 样式D信息, } export interface ILayerConfig { // 码垛层级设置 left: { count: number // 层数 order: number[] // 各层样式排列, partition: number // 0:不需要隔板;n:每n层添加隔板 partitionHeight: number // 隔板高度 partitionPose: number[][] partitionCount: number } right: { count: number // 层数 order: number[] // 各层样式排列, partition: number // 0:不需要隔板;n:每n层添加隔板 partitionHeight: number // 隔板高度 partitionPose: number[][] partitionCount: number } } export interface IMotionConfig { // 运动参数 withBox: { // 带料箱 speed: number // 速度(%) acceleration: number // 加速度(%) } withoutBox: { // 不带料箱 speed: number // 速度(%) acceleration: number // 加速度(%) } } export interface IDebugConfig { advanced: { suctionDelay: number placeDelay: number pickSaveHeight: number rotateCompensation: number dropDetection: number } heightCompensation: { left: { start: number zHeight: number } right: { start: number zHeight: number } } } export interface PalletParams { name: string // 码垛名称 date: string // 修改时间 boxCount: number // 左侧料箱总数 boxCountR: number // 右侧栈板总数 totalHeight: number // 左侧码垛整体高度 totalHeightR: number // 右侧码垛整体高度 basic: IBasicConfig signal: ISignalConfig box: IBoxConfig pallet: IPalletConfig conveyer: IConveyerConfig template: ITemplateConfig layer: ILayerConfig motion: IMotionConfig debug: IDebugConfig } export enum MessageType { SYNC = 0, COLLISION = 1 } export enum BoxStateType { ONCONVEYOR = 0, ONROBOT = 1, ONPALLET = 2 } export enum BoxPositionType { ALL = 0, LEFT_PALLET = 1, RIGHT_PALLET = 2 }