厂区平面布置

术语说明
| 术语/缩写 | 含义 |
|---|---|
| AMR | 无人搬运机器人(Autonomous Mobile Robot) |
| RCS | 机器人控制系统(Robot Control System) |
| AMS | 告警管理系统(Alarm Management System) |
| WCS | 仓储设备管理系统(Warehouse Control System) |
| CMS | 中心管理系统(Central Control System) |
说明
本文提到的字段仅是业务字段,不代表数据库表结构设计
原型
版本迭代规划
计划分为三个版本进行上线:
- MVP 版本:MVP 版本仅包含最基本的点位管理和叫料单管理。通过点位管理与海康地图站位进行关联,通过叫料按钮获取对应产线正在生产的工单,直接拉取工单的工序用料清单作为备料清单使用。
- 1.0 版本:备料区域可以设置备料节奏,可以提前设置一次备料的时间段或料数,实现按批次的备料。产线叫料时仅需将已备好的批次料发出即可。
- 2.0 版本:叫料工位可以设置叫料模式,支持正常生产下的齐套叫料,按批次叫料,同时支持因为各种原因或故障导致料件损坏需要补料的场景,支持空料架沿途回收功能。
业务总体流程
角色活动图

计划部门下达生产计划,由生产计划自动生成《生产订单用料清单》和《生产工单用料清单》,仓库根据这两个用料清单对生产材料提前备料,并运输至备料区。这一部分的动作都在 ERP 中完成,精制不做管控。
备料区根据《生产工单用料清单》进行备料,此时备料的动作可能是拣数量,托盘排序等操作,备料区中的操作系统不做控制。当计划部门下达生产指令时,产线工位的工位机上都将出现该工位需要执行的生产工单,此时工人可以通过工位机进行叫料。
由于叫料的动作是由工位机发出的,所以此时可以确定具体的叫料点位,如果一个工位有多个点位的,由工位机手动选择。备料区收到《叫料单》后,即可按需按量将部件放置在托盘中,等待 AGV 小车运输。由于备料区同样存在多个点位,那么此时此时可以由叫料单确定 AGV 从哪个点位取料架,或者叫料单上不指定,由备料人员将托盘放到点位后确定,亦或者由 AGV 调度平台自行决定点位。
单据
生产备料单
生产备料单参考精制中的生产工单用料单功能。在此项目中,订单下推工单只会根据工位下推,所以其生产计划并不会将一个生产订单进行拆分。但根据生产订单的生产数量和计划日期,会存在一个生产工单拆解成多批次生产的情况,所以需要根据多批次的情况进行备料。
所以此项目中,生产备料单只能从生产工单进行下推,并且支持一个工单进行多次下推。系统中原有的用料单功能并未做移除。默认下推的备料数量和计划时间,根据生产备料配置中的配置项得到。
按工位下推:生产订单按工位下推
生产备料配置:TODO
生产备料单的执行动作应当是在仓库到备料区这一段时间发生,第一期版本系统不干预此过程(2025-07-21)
状态机

字段
生产备料单分为单据基本信息和物料信息两部分,单据基本类型字段有:
| 字段名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| 备料单号 | String | Y | |
| 单据类型 | 枚举 | Y | 固定单据类型为:生产工单用料清单-标准工单用料清单 |
| 关联单据号 | String | N | 当关联单据类型不为空时必填 |
| 关联单据类型 | 枚举 | N | 关联单据类型只支持生产工单,未来可能添加其他类型 |
| 关联单据物料编码 | String | N | 当关联单据类型不为空时必填,由关联单据查询得到,不允许输入编辑。 |
| 关联单据物料名称 | String | N | 当关联单据类型不为空时必填,由物料编码查询得到,不允许输入编辑。 |
| 关联单据特征参数 | String | N | 当关联单据类型不为空时必填,由物料编码查询得到,不允许输入编辑。 |
| 关联单据计划数量 | Integer | N | 当关联单据类型不为空时必填,由关联单据查询得到,不允许输入编辑。 |
| 计划生产数量 | Integer | Y | 关联单据是生产工单时,该字段为工单物料的计划数量 |
| 备注 | String | N | |
| 审批人 | - | - | 生产工单用料清单中存在该字段,备料单不需要 |
| 审批状态 | - | - | 生产工单用料清单中存在该字段,备料单不需要 |
| 审批时间 | - | - | 生产工单用料清单中存在该字段,备料单不需要 |
| 实际审批人 | - | - | 生产工单用料清单中存在该字段,备料单不需要 |
| 审批意见 | - | - | 生产工单用料清单中存在该字段,备料单不需要 |
| 备料状态 | 枚举 | Y | 新增,备料状态即为备料单的状态 |
| 领料状态 | 枚举 | Y | 【待定】只有已领料和未领料两个,不允许编辑,默认是未领料。 |
其中,备料状态就是生产备料单的状态,根据状态机变更状态。领料状态只存在“已领料”和“未领料”两个状态,当备料单刚创建的时候默认是“未领料”,只有当料架送出备料区,状态才会变为“已领料”。料架是否已经送出备料区根据 AGV 的状态得到。
物料信息部分直接复用生产工单用料清单中的物料信息部分,字段和接口随平台更新而更新。
生产叫料单
生产叫料单是由工位机发出的叫料指令,该指令必定关联具体的工单、工序和工位,备料区会根据叫料单进行生产备料,AGV 小车也将根据叫料单来确定其起止点。一个生产工单会存在多个叫料单,所以叫料单的编号上应当对工单和次序做出区分。
状态机

叫料单创建即生效,根据叫料单的顺序会在备料区大屏中显示,且叫料单可以被备料区的工位机搜索到。当备料区开始对叫料单进行备料时,状态变为备料中。当备料区备料完成时,此时备料区将呼叫 AGV 小车,等待 AGV 运输托盘,状态变为待运输。直至 AGV 开始运输托盘,状态变为运输中。在 AGV 运输到叫料单所对应的工位后,叫料单自动变为完成,此时一个叫料单的流程结束。
一个叫料单,只要还没被 AGV 开始运送,叫料单都可以被取消,但一旦开始运送将无法取消。叫料单的取消动作可以由创建叫料单的工位机发出,也可以由备料区发出。
字段
叫料单分为主表和详情表两部分
主表
| 字段名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| 叫料单号 | String | Y | 固定格式:生产工单号-产线 ID- 序号 |
| 关联单据号 | String | N | 当关联单据类型不为空时必填 |
| 关联单据类型 | 枚举 | N | 关联单据类型只支持生产工单,未来可能添加其他类型 |
| 关联单据计划数量 | Integer | N | 当关联单据类型不为空时必填,由关联单据查询得到,不允许输入编辑。 |
| 备注 | String | N | |
| 状态 | 枚举 | Y | 新增字段,有生效、备料中、待运输、运输中、完成和取消 |
| 叫料点位 | Array[String] | Y | 叫料单创建的点位,原则上只有一个点位,但后期可能拓展 |
| 备料点位 | Array[String] | Y | 备料区配料点位,原则上只有一个点位,但后期可能拓展 |
| 叫料模式 | 枚举 | Y | 只有“齐套叫料”和“按物料叫料”两种 |
| 叫料数量 | Integer | N | 只有当叫料模式是“齐套叫料”时,才有值 |
详情表
每个物料是一个行数据,一个叫料单会包含多个物料行。
| 字段名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| 关联叫料单号 | String | Y | 所关联的叫料单单号 |
| 物料编号 | String | Y | 叫料单物料行数据 |
| 物料名称 | String | Y | 叫料单物料行数据 |
| 规格型号 | String | N | 叫料单物料行数据 |
| 单位 | String | Y | 叫料单物料行数据 |
| 申请数量 | Number | Y | 叫料单叫料数量,由系统自动计算得到 |
| 已发数量 | Number | Y | 初始 0,由叫料单执行过程自动计算得到 |
| 叫料点位 | String | Y | 叫料单创建的点位 |
| 配料点位 | String | N | 备料区配料点位,未备料完成前,该字段可能为空 |
点位
MES 中需要配置线边仓和备料区的点位,点位需要与 AGV 平台的站点相互匹配,以便在下发 AGV 任务时能够确定起止点。
字段
| 字段名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| 点位编号 | String | Y | 点位的位编号 |
| 点位名称 | String | N | 点位的名称,默认与编号相同 |
| 点位类型 | 枚举 | Y | 点位的类型,有:备料点和工位点两种 |
| 关联 AGV 站点 | String | Y | 关联 AGV 站点的编号 |
| 所属产线编号 | String | N | 点位关联的产线编号,只有工位点有效 |
| 所属产线名称 | String | N | 点位关联的产线名称,只有工位点有效 |
| 所属工位编号 | String | N | 点位关联的工位编号,只有工位点有效 |
| 所属工位名称 | String | N | 点位关联的工位名称,只有工位点有效 |
| 所属工序编号【待定】 | String | N | 点位关联的工序编号,只有工位点有效 |
| 所属工序名称【待定】 | String | N | 点位关联的工序名称,只有工位点有效 |
| 点位状态 | 枚举 | Y | 点位的状态,有:空闲、空料架、占用、锁定 |
操作流程
设计上,在产线工位上使用普通工位机,普通工位机提供基本的报工和叫料功能。备料区中使用备料协同模块应用,备料协同模块包含点位管理、叫料管理和备料大屏等应用。
下文以场景故事描述操作流程
产线工位-普通工位机

现在有一个生产订单,需要生产03.B000708(康佳 OD35 CKD 29005923)物料 12000 件,计划部门已经将订单下推到生产工单了。
此时产线工人在普通工位机上,确定工位机的车间、产线、工位选择无误,随后开始按工单进行生产。当他选择了这笔生产工单后,普通工位机上会自动加载出这个工单的用料清单,工人需要核对一下用料清单是否正确。但是他不需要自己去计算每个物料的数量,因为工位机会根据工单下发的计划数量自动计算出所有物料的计划用量。
物料清单-计划用量:根据工单的计划数量,按照用料清单中的用料系数计算得到。
即计划用量 = BOM 分子/BOM 分母

叫料模式有两种,但默认是“齐套叫料”。工人只需要在要送料的点位上填写需要送几套物料过来,填完数量后点击呼叫按钮。系统就自动创建了一张叫料单,工位机上的叫料记录表格也会展示刚才呼叫的叫料单,工人可以在这里实时看状态,以便知道来料什么时候能到。
生产过程中可能因为某一道工序或者工位出现不良品,导致原来齐套的来料出现缺料的情况。此时工人可以将叫料模式切换到“按物料”模式,在这个模式下,工人可以在物料清单中,勾选需要补送的物料,勾选好对应的物料后填写数量即可按下呼叫按钮。
齐套叫料:按工单最终的产成品计算每一个物料的需求数量,用户只需要关心送几套料而无需关心具体每件物料的数量
按物料叫料:根据用户在“物料清单”中所勾选的物料,以及在点位上填写的叫料数量,针对性地叫料。用于补充因为各种原因导致的缺料情况
备料区-叫料管理

当有叫料单过来的时候,备料区的工人可以在“叫料管理”中看到具体的叫料单信息。然后根据单据上的物料和数量,将物料备齐装上料架后放置在 AGV 点位。
当备料动作都完成后,就可以点击对应叫料单上的“叫车”按钮,此时会弹出叫车弹窗,需要工人补齐数据后才能将小车叫来。
根据叫料单的叫料模式不同,叫料弹窗也会有所区别。
齐套叫料

当齐套叫料时,备料工人可以直接填写已经备好多少套的材料,此时系统会根据填写的数量自动算出每一行物料的数量。但工人可以再次手动修改每一行物料的数量,以满足一些特殊情况的发生。默认每一行都是同一个发料点位,也就是同一车发出。但如果一车无法发出全部材料时,工人也可以选择不同的发料点位,此时系统会将相同发料点位的数据合并成一个任务发给 AGV 平台。
点击“合并一车”时,所有物料行的发料点位都将变为与第一行相同。
按物料叫料

如果是按物料叫料的,此时弹窗中不会显示多少套,也不需要填写多少套。物料清单的内容就是叫料单的物料内容,默认发料数量就是申请数量。当然发料数量和发料点位也支持修改,逻辑与“齐套叫料”一致。
备料区-叫车
当备料区点击了“叫车”按钮后,对应叫料单的状态将会变为“待运输”。AGV 小车过来将料架运走时,如果这个叫料单只有一个任务单,那么叫料单的状态就变为“运输中”,直到 AGV 小车将料架运送到叫料点位并将料架卸下,此时叫料单状态变为“完成”。如果这个叫料单拆分了多个任务单,那么只有当所有任务单都处于“运输中”或“完成”的状态时,叫料单的状态才会变为“运输中”,只有当所有任务单都变成“完成”时,叫料单才会变为“完成”。
AGV 对接
接口文档:RcsLiteV1.5.0.pdf
生成任务单
绑定叫料单
配置起止点
获取 AGV 小车状态(回调)
查询任务状态
最后编辑:郭腾彬 更新时间:2025-10-28 15:59