一、软件整体介绍

1.1 使用说明

1.1.1 M4 能在哪些设备/屏幕/环境使用?

  • 主流手机浏览器

  • Android 手机 APP,Android PDA APP(可扫码)

  • 微信、企业微信、钉钉、飞书内使用

  • 主流平板浏览器

  • 电脑浏览器

  • 工控机(1280 分辨率以上)

  • 电视及高分辨率显示器、触摸屏 2K/4K/5K

1.2 用户

1.2.1 如何使用账号密码登录 M4?

  • 启动服务后,在桌面端或者移动端的浏览器打开 http://localhost:5800/ ,进入 M4 登录页。注意:服务和打开界面的设备需要在同一局域网内。

  • 在登录页面输入用户名、密码,点击登录,即可登录成功。

1080

1.2.2 如何使用企业微信登录 M4?

  • 在 M4 登录页面,点击“企业微信登录”,切换到企业微信登录模式。

  • 使用企业微信扫码后,即可登录。

1.2.3 桌面端如何退出(登出) M4?

  • 在 M4 页面的右上角,点击“用户名”,界面显示弹窗。

  • 在弹窗中,点击“退出”,即可退出登录。

1080

1.2.4 移动端如何退出(登出) M4?

  • 在移动端 M4 首页,点击“用户名”,界面显示弹窗。

  • 在弹窗中,点击“退出”,即可退出登录。

125

1.3 通用界面功能

1.3.1 桌面端页面整体布局如何展示?

桌面端由主导航栏、主菜单、主标签页三部分构成:

  • 主导航栏分左中右三部分,左边显示菜单栏图标,中间显示主标签页标签,右边显示消息、用户、以及系统图标。

  • 主菜单显示两级,一级是组名,二级是菜单名。主菜单下方显示 “配置菜单”,点击后可配置显示的菜单。

  • 点击菜单项,菜单以主标签页的形式打开,可以同时打开多个标签页。主标签页支持点击切换、关闭全部、关闭其他、关闭左侧、关闭右侧、拖动调整顺序。刷新浏览器时,系统会记住打开的菜单页面,自动重新打开已打开的菜单页面。

1080
1080

1.3.2 桌面端可编辑状态的单据,点击“查看”进入详情页面时,是否可以直接修改?

如果业务对象是单据,且当前状态是可编辑状态,则打开业务对象详情时,直接进入编辑状态。比如,分拣单,扫料箱码,匹配到未完成的分拣单,直接弹出分拣单界面,应该直接是编辑状态,而不是查看状态,否则用户还得多点下编辑。

1080

1.3.3 移动端页面整体布局如何展示?

移动端布局分首页和其他页面两种布局:

  • 首页包括标题栏、菜单。标题栏显示系统名称、消息图标。菜单显示两级,一级是组名,二级是菜单名。菜单最下方显示配置菜单,点击可以配置显示哪些菜单。

  • 其他页面包括顶部导航栏和内容。顶部导航栏显示返回按钮、页面标题、消息、折叠的工具按钮。折叠的工具按钮可以通过系统配置-界面配置界面配置取消勾选“移动端业务对象主界面按钮平铺”,按钮就直接展示在主界面。

125 125 125 125

1.3.4 什么是操作性界面?如何配置操作性界面?

  • 点击菜单,打开业务对象的首页。基础资料、单据类界面,首页默认是列表界面。对于呼叫、操作性界面,首页最好是操作性(新增)界面。

  • 以 “叫空卡板” 业务对象为例,先将“叫空卡板”业务对象编辑界面打开,在基础配置项里面勾选:“首页是操作页面”成功后,点击“叫空卡板”菜单,直接展示的是新增页面。

1080
  • 操作性界面桌面端展示效果如下:

1080
  • 操作性界面移动端展示效果如下:

125

1.3.5 桌面端列表界面都有哪些功能?

桌面端列表界面功能分布在顶部工具栏、操作列、底部工具栏:

  • 顶部工具栏。第一行显示新建、批量编辑、删除、导出、导入、设置 ,其中设置按钮只有管理员权限才显示。第二行显示快速查询、刷新、新查询、常用、最近、重置、当前查询。

  • 操作列显示查看和更多功能图标,点击更多功能图标出现气泡弹窗,弹窗内显示编辑、删除、复制。

  • 底部工具栏显示刷新和分页相关的功能按钮,包括上一页、下一页,第几页,每页几条。支持直接跳转到第几页,支持更改每页显示的条数。

1080
1080
  • 列表界面,模糊搜索框。输入后(回车),如果能精确匹配(将弹出详情页),清空输入内容;否则保留输入内容。输入内容后,右侧出现清除按钮。

1080
1080

1.3.6 用户如何快速查看引用字段的详情数据?

  • 以“门店叫货单”为例:在“门店叫货单”详情页面点击“供货商”字段,页面即弹出该供货商的详情数据。

1080
1080

1.3.7 用户如何快速添加到想要的业务(引用字段)数据?

  • 详情界面上目前支持三种方式:下拉选择、“高级筛选"按钮、“添加”。

1080
  • 下拉选择进行筛选数据:

1080
  • 高级筛选:高级筛选将弹出高级筛选对话框,可以构造复杂的查询,筛选对象。例如,筛选一类物料,批量添加

1080
1080
  • 添加:添加则方便快速录入。例如创建入库单时,添加单行。遇到没有的物料,可以直接添加一个。不需要关闭当前单据,从菜单里找物料,进入,新增。

1080

1.3.8 移动端列表界面都有哪些功能?

移动端与桌面端界面的功能差异主要体现在:

  • 新建、批量编辑、删除、导出、导入等功能隐藏在右上角折叠的工具栏中。注意:如果是批量编辑、删除操作,请先勾选卡片。

  • 点击卡片,进入单据详情页。

  • 刷新、上一页、下一页显示在底部工具栏。

125 125

1.3.9 如何构造简单的自定义查询?

  • 在桌面端或者移动端列表页的顶部工具栏中,点击“新查询” ,打开“查询方案管理”弹窗。

1080
  • 在弹窗内,点击“添加筛选条件”,弹窗内出现一组查询录入框。

    • 第一个录入框填写“筛选字段”。

    • 第二个录入框填写“关系符”,默认是“等于”。

    • 前两个录入框填写完成后,如果出现第三个录入框,在第三个录入框内填写“筛选字段的值”。

1080
  • 在“查询方案管理”弹窗,点击“查询”。

1.3.10 查询字段是布尔类型时,如何设置查询条件?

  • 布尔类型的字段的输入方式支持以“开关”的方式呈现。

1080

1.3.11 多个查询条件取交集(且)时,如何构造自定义查询?

  • 按照上述【如何构造简单的自定义查询】描述的方式,添加多个筛选条件即可。

1080

1.3.12 多个查询条件取并集(或)时,如何构造自定义查询?

  • 与【如何构造简单的自定义查询】区别是,先在弹窗内点击“添加 OR 组”。

1080
  • 然后在“ OR 组”内添加筛选条件。比如下图查询的结果为:所属库区为成品存储区 L1 或者状态为有货的库位。

1080

1.3.13 如何自定义排序?

  • 在“查询方案管理”弹窗,找到“排序”,点击“添加项”,会新增一组排序条件。

1080
  • 排序条件中,第一个录入框填写“排序字段”,第二个录入框填写“升序/降序”。

1080
  • 在弹窗内,点击“查询”,列表将按照排序条件排序。

  • 如果同时填写了筛选条件和排序条件,系统会将筛选后的结果,按照排序条件进行排序。

1.3.14 查询时,那些难理解的关系符号怎么用?

  • 多个值:值录入框可以录入多个值,筛选对象的值为其中任意一个时,系统就会筛选出来。

  • 文字的开头是:筛选对象的值完全包含值录入框的内容,且值录入框的内容与筛选对象的开头相同,系统会筛选出来。比如:筛选对象的值是“上海市浦东新区锦绣申江”,值录入框中的内容是“上海市”,“上海市浦东新区锦绣申江”这条记录会被筛选出来。

  • 文字的结尾是:表示筛选对象的值完全包含值录入框的内容,且值录入框的内容与筛选对象的结尾相同,系统会筛选出来。比如:筛选对象的值是“上海市浦东新区锦绣申江”,值录入框中的内容是“锦绣申江”,“上海市浦东新区锦绣申江”这条记录会被筛选出来。

  • 文字包含:筛选对象的值完全包含值录入框中的内容时,系统会筛选出来。比如:筛选对象的值是“仓库001”,值录入框中的内容是“仓库”,“仓库001”这条记录会被筛选出来。

1080
  • 文字包含(忽略大小写):忽略英文字幕大小写的情况下,筛选对象的值完全包含值录入框中的内容,系统会筛选出来。比如筛选对象的值是“仓库ABC”,值录入框中的内容是“仓库abc”,“仓库ABC”这条记录会被筛选出来。

  • 为空:关系符选择“为空”时,没有值录入框。筛选对象值为空的记录,会筛选出来。

  • 不为空:关系符选择“不为空”时,没有值录入框。筛选对象的值不为空的记录(0 也是不为空),会筛选出来。

  • 当前用户名:关系符选择当前用户时,没有值录入框。筛选对象的值与当前用户名一致的记录,会筛选出来。

1080
  • 大于:当筛选对象是数值时,可以使用大于关系符,筛选对象的值大于值录入框内的记录,系统会筛选出来。

  • 大于等于:当筛选对象是数值时,可以使用大于等于关系符,筛选对象的值大于或者等于值录入框内的记录,会筛选出来。

  • 小于:当筛选对象是数值时,可以使用小于关系符,筛选对象的值小于录入框内的记录,会筛选出来。

  • 小于等于:当筛选对象是数值时,可以使用小于等于关系符,筛选对象的值小于或等于录入框内的记录,会筛选出来。

  • 范围:当筛选对象是数值时,可以使用范围关系符,范围的最小值≤筛选对象≤范围的最大值时,系统会筛选出来。比如:筛选对象的值是“15”,范围的最小值是“15”,最大值是“20”,“15”这条记录会被筛选出来。

1080

1.3.15 常用的查询条件如何重复使用?

  • 在桌面端或移动端的“查询方案管理”弹窗内,自定义查询条件、排序条件,并填写方案名,点击保存。

    • 系统默认将查询方案保存为“我的查询方案”,保存的方案仅用户自己可见。

    • 如果用户希望团队内其他成员也可使用查询方案,可以在“查询方案管理”弹窗内,取消勾选“仅我可见”。

1080
  • 在桌面端或移动端列表页的工具栏中,点击“常用”,出现“常用查询”弹窗。点击方案名称,系统会使用该查询方案执行查询。

1080
  • 如果查询方案需要微调,在“常用查询”弹窗内,点击“配置图标”,出现“查询方案管理”弹窗。在“查询方案管理”弹窗内,可以修改或者删除本条查询方案。

1080

1.3.16 最近的查询记录如何重复使用?

  • 用户在桌面端或移动端列表页的工具栏中,点击"最近",显示最近 20 条查询方案。

  • 点击查询方案,系统使用该查询方案查询。

1080

1.3.17 如何新建数据?

  • 桌面端新增按钮位于工具栏按钮区,移动端新增功能按钮位于右上角折叠的弹窗页面,点击“新建”即可进入新增页面。

  • 桌面端、移动端的新增弹窗界面均可以直接“保存”关闭弹窗,亦可以点击右上角:“×”关闭弹窗页面。

1080

1.3.18 如何修改基础数据?

  • 在基础资料的详情页,点击“编辑”按钮,进入编辑页面,修改字段。

  • 通过列表批量编辑按钮实现批量修改数据。

  • 通过列表按钮的导入、导出实现批量修改数据。

  • 通过运维-数据库的导入、导出实现批量修改数据。

1080
1080
1080
1080

1.3.19 如何修改需要入库单、出库单等业务单据?

  • 与【如何修改基础数据】的区别是,能否修改与单据状态相关。通常,“未提交” 状态的业务单据允许编辑,已提交和已完成状态的单据不允许修改。

1080

1.3.20 如何修改库存明细?

  • 与【如何修改基础数据】的区别是,有管理员权限才允许编辑库存明细,且只能编辑一部分字段。如:入库数量核查有误时,可以通过此按钮修改库存数量。

1080

1.3.21 新增/编辑单据时,如何调整单行顺序?

  • 新增/编辑模式下,支持调整单行顺序。具体的操作:

    • 在单头实体的 btLines 字段,勾选允许单行排序,然后点击保存。

    • 刷新页面,在单据的新增/编辑页面,可以看到操作列有上下箭头,可以调整单行顺序。

1080
1080

1.3.22 移动端新增/编辑单据时,如何编辑单行?

  • 在单行编辑页面,如果有多行,界面会显示上一行、下一行,点击即可进行单行切换。

  • 在最后一行,可以添加新行。

  • 点击关闭,保存编辑的内容,并关闭弹窗。

125 125

1.3.23 如何查看详情页?

  • 桌面端,在列表页点击“查看”按钮,即可进入详情页页面。

  • 移动端,在列表页点击卡片,即可进入详情页面。

1080
1080

1.3.24 如何删除数据?

  • 桌面端“删除”按钮位于工具栏按钮区,移动端“删除”按钮位于右上角折叠工具按钮页面。

  • 在列表上勾选要删除的数据,点击“删除”按钮即可删除。

  • 不同菜单删除的权限设置不一样,比如:允许“删除”基础资料,库存明细不允许删除,仅允许修改;入库出库只允许删除未提交的单据,已提交和已完成的不能删除。

1080

1.3.25 如何导出“选定范围”的数据?

  • 在列表页,页面勾选需要导出的数据,点击“导出”按钮,弹出导出对话框。

  • 在导出对话框中,根据需要勾选需要导出的字段。

  • 在导出对话框中,点击“生成 Excel 文件”,然后点击“文件已生成,请点击下载”,即可完成数据导出。

1080

1.3.26 如何导出“全部数据”?

  • 在列表页,直接点击“导出”按钮,弹出导出对话框。

  • 在导出对话框中,根据需要勾选需要导出的字段。

  • 在导出对话框中,点击“生成 Excel 文件”,然后点击“文件已生成,请点击下载”,即可完成数据导出。

1080
1080

1.3.27 如何根据客户需求筛选范围来导出数据?

  • 在列表页,直接点击“导出”按钮,弹出导出对话框。

  • 在导出对话框中,选择导出范围为“自定义查询”。添加筛选条件。筛选条件的使用方法与上文查询章节的使用方法一致。

  • 在导出对话框中,根据需要勾选需要导出的字段。

  • 点击“生成 Excel 文件”,然后点击“文件已生成,请点击下载”,即可完成数据导出。

1080

1.3.28 如何导入数据?

  • 导入模板与导出模板一致,因此导入前需要先点击“导出”按钮,导出一份模板。在模板中填写数据后,再通过“导入”按钮,进行导入操作。

  • 在列表页,点击“导入”按钮,打开导入对话框。点击:“选择文件并上传”,选择填好数据的模板即可。

1080
1080
1080

1.3.29 出库单/入库单的单行支持导入导出吗?

  • 支持。

    • 如需导出单行,在导出对话框中,勾选单行字段即可。

    • 如需导入单行,需要使用带单行字段的模板,在模板中填写单行字段。

1080

1.3.30 没有单号的单行如何导入?

  • 支持没有单号的单行导入,导入时,系统默认一行是一单,自动生成单号。示例如下:

1080
1080

1.3.31 如何将需要的业务对象配置成菜单?

  • 点击菜单栏中的配置菜单,进入菜单配置页面。

  • 点击添加菜单组,填写组名。组名将作为一级菜单。

  • 在组内点击添加菜单项,下拉选择要添加的业务对象名。下拉框支持搜索,输入业务对象后回车,即可快速找到业务对象。

  • 在菜单配置页面最上方,点击保存,刷新页面后,即可看到菜单配置成功。

1080

1.3.32 同一组内菜单太多,如何将菜单设置的更醒目?

  • 菜单配置页面,支持自定义菜单的图标、图标的颜色,并支持组内向上分离(菜单之间加空格)

  • 下图示例中,将成品出库单和成品分拣单设置成橙色、将成品入库单、成品入库单行设置成绿色,并在成品入库单中勾选向上分离,即可更好区分入库业务和出库业务。

1080

1.3.33 菜单是否支持折叠?

  • 点击菜单栏上方的折叠/展开图标,可以将全部菜单折叠/展开。

  • 点击菜单栏上方的筛选录入框,录入菜单名后回车,可以筛选目标菜单。

  • 点击菜单栏分组上的折叠/展开图标,可以将本组的菜单全部折叠/展开。

1.3.34 菜单样式支持修改吗?

  • 菜单支持通过脚本(js/css)扩展,比如修改菜单的颜色。

  • 具体操作请参考《开发手册》。

1.3.35 什么是超管模式?

  • 如果用户是“企业管理员”权限,那么新增、编辑、详情页面会显示“超管模式”图标。

  • 勾选“超管模式”图表之后,该业务对象所有字段均可以编辑。

  • 此功能主要是实施人员排错、改错时使用,普通用户无需关心。

1080

1.4 用户管理

  • 管理员权限可以修改编辑查看所有界面,其他用户:如仓管员1 管理入库,仓管员2 管理出库;仓管员3管理分拣;仓管员4管理生产等等,这些用户根据“用户角色”不同被赋予不同的用户权限。

1080
1080

1.4.1 如何添加、删除、修改用户?

  • 在用户菜单页面,桌面端点击工具栏按钮区的“新建”按钮,移动端点击右上角折叠按钮弹窗页面的“新建”按钮。

  • 在用户新增界面输入:用户名、编号、密码、勾选是否为管理员、下拉选择角色(用户角色设置)等,角色权限设置通过【用户角色】菜单添加成功即可显示在用户新增界面的角色的下拉选项里。

  • 除了用户编号、用户名,其他字段均可进行编辑修改。

  • 编辑好用户信息后点击保存或保存并关闭新增用户成功。

1080
1080
  • 在用户菜单页面,桌面端点击列表折叠的“编辑”按钮,即可进入用户编辑页面;移动端直接点击卡片信息即可进入查看页面,点击页面上方的“编辑”按钮,即可进入编辑页面。

1080
  • 删除用户操作如下:

    • 在用户菜单页面,桌面端勾选上列表上选框,点击上方工具栏按钮区的“删除”按钮。移动端点击右上角折叠区的弹窗页面的“删除”按钮删除即可。

    • 无论是移动端还是桌面端,只有管理员权限才可删除用户。

1080

1.4.2 如何管理用户角色和权限?

  • 桌面端、移动端均可以新建“用户角色”进行角色权限设定:角色名必填、允许勾选为“默认角色”。

1080
  • 新建用户角色操作如下:

    • 在用户角色菜单界面,点击“新建”按钮。

    • 在用户角色弹窗页面,输入:角色名。如:仓管员 6 。

    • 根据需求可以“勾选”为该用户,如:“仓管员 6 ”为默认角色。

    • “拷贝权限”、“粘贴权限”功能是对已经赋权好的业务权限,通过拷贝权限后粘贴到新增角色权限里,免除重复赋权操作。

    • 桌面端、移动端根据需求可以对该用户角色进行在“按业务单元赋权”页面,均可按业务单元赋权:菜单权、实体权、字段权、实体行过滤进行赋权操作。

1080
1080
1080
1080
1080

1.4.3 如何给某一个角色赋菜单权限?

  • 首先,在【用户角色】新增界面找到【菜单权】或者从【按业务单元赋权】进入菜单权的赋权设置界面。

  • 勾选该用户角色所需要查看的菜单权限,点击“完成”按钮即可。

1080

1.4.4 如何给某一角色赋增删改等操作权限?

  • 通过“业务对象权”进行菜单界面进行功能权限的设置。

1080

1.4.5 如何给某一角色赋字段展示权?

  • 比如销售人员只能看到建议的销售价格,不能看到进价。

  • 具体需要通过字段权进行设定。

1080

1.4.6 如何给某一角色赋数据查看权限?

  • 比如华东大区的仓库经理只能看华东大区的数据,西北大区的仓库经理只能看西北大区的数据,这就需要用到字段权。即根据某个字段的取值,赋权给不同角色。

  • 比如仓库只能看到已经提交的出库单。

  • 具体操作:在用户-数据行权页面,选择业务对象,设置筛选条件。

1080

1.5 库位一览

1.5.1 如何查看库位一览?

  • 库位一览根据库位设置的信息会显示:排、列、层。

  • 图形下方显示的是:库位编码,上方显示的是:容器编号。

  • 默认显示的是全部库区的库位,可以自定义勾选所需库区,过滤不需要显示的库区信息。

  • 允许放大、缩小库位一览界面显示的比例。默认显示为:1:1

  • 根据入库、出库、上架、下架搬运等业务流转会显示不同的业务状态。比如:入库时,先锁定一个空库位。

1080

1.5.2 库位一览支持三种视图?

  • 库位一览支持三种视图:显示库位容器、显示库位和物料、紧凑模式。

    • 显示库位和容器、显示库位和物料这两种视图支持调整列宽。

    • 显示库位和物料这种视图,鼠标移动到容器上,可以看到物料的数量。

  • 配置方法:点击左上角的设置按钮,弹出设置弹窗,根据客户要求选择视图即可。

1080
1080
1080

1.6 运营看板

1.6.1 如何自定义运营看板?

  • 用户可以将常用的车队、地图、猎鹰任务、库位一览等常用的页面显示到运营看板中,方便对比查看数据。

  • 具体配置方法:

    • 点击【运营看板】菜单,点击系统配置图标进入可自定义界面,展示自定义工具:编辑、左右拆分、上下拆分、删除。

    • 点击“编辑”图标,进入看板设置页面,即可根据业务需求自定义看板。

1080
1080
1080
1080
  • 自定义运营看板效果如下:

1080
1080
  • 如果用户感觉运营看板中某区块较小,想放大区块,可以点击运营看板中的“箭头”,区块将通过新开标签页的方式展示。

1080
1080

1.6.2 如何自定义统计看板?

  • 系统内置的统计图表有:今日直接运单统计、最近七日直接运单统计、最近三十日直接运单统计、最近十日猎鹰任务、最近三十日猎鹰任务、容器空满率、库位空满率、今日接口调用统计、最近七日接口调用统计。

  • 自定义显示统计图表的方法:点击右上角的配置按钮,进入自定义界面。先点击左右拆分、上下拆分图表设置布局,然后通过编辑按钮可以将内置的统计图表在布局中显示出来。

  • 如果客户有其他统计需求,可以联系开发,通过脚本添加统计项。

1080

1.7 消息

1.7.1 M4 能展示哪些异常消息?

  • 猎鹰任务、后台任务、仙工调度、机器人报警等类型的异常消息都会显示在 M4 中,用户在 M4 一个系统就能看全,不需要切换到其他系统中排查异常。

  • 当有异常消息时,M4 系统中的“报警图标”会变红,闪灯,并显示异常消息的数量。点击“报警图标”,即可查看异常消息的详情。

1080
1080

1.7.2 M4 如何监控系统运行情况?

  • 点击界面上浮动“系统监控”的图标,系统监控主要是监控 GW 、RBK 、业务、机器人、网络、设备等的实时运行情况,便于在遇到问题时,快速找到具体问题点。

1080

1.8 条码识别

1.8.1 M4 支持扫描库位、物料、容器等条码录入信息吗?

  • M4 支持扫描库位条码、物料条码、容器条码等简单码录入信息。

  • M4 不需要任何配置,只要光标在扫描框、录入框时,可以通过扫码枪或 PDA 直接扫码录入。一维码和二维码都支持。

1.8.2 M4 支持入库单码、出库单码等包含多字段信息的复杂条码解析和录入吗?

  • M4 支持复杂码解析和录入信息。只要对方提供明确的规则,M4 据此配置解析规则即可。

  • 下文以“成品出库单”为例,介绍当客户将出库单行信息放在二维码中, M4 如何配置解析规则。

    • 在单行业务对象-基础中,找到条码解析。先勾选:启用、允许添加新行。然后点击“添加规则”,界面新增一个规则。

    • 在新增的规则中,填写示例代码:PEWG-01-100123|2023A2|23.4

    • 在新增的规则中,填写正则表达式:

([\w-]+)\|(\w+)\|([\w.]+)
  • 在新增的规则中,下拉选择需要解析的字段:物料、批次号、出库数量。

  • 点击保存,即可配置完成。

1080
1080
  • 配置成功后,出库单-新增页面,当光标在条码解析/搜索定位框中,可以通过扫码进行录入。如果本行内容已经录入了,那么系统会将录入的单行标黄,起到快速定位的作用。单行搜索/条码解析框,必须回车才触发解析,失焦不解析。

1080
1080
  • 单行搜索/条码解析,支持触发定制代码。在定制代码中,可以根据录入的关键词,拉取拼装数据,新增单行,修改单据其他字段等。

1080

二、移动机器人

2.1 机器人配置

2.1.1 如何进行车队管理?

在桌面端的车队管理页面,可以进行车队管理。

1080
1080
  • 主要功能:监控机器人的基本信息、当前状态、报错,以及添加/修改/删除机器人、全选(机器人)、全不选(机器人)、可接单(机器人)、不接单(机器人)、重连(重连)、清错。

    • 基本信息:机器人的名称、厂商、类别、标签等。

    • 状态:在线/断连、可接单/不可接单、电量、位置、运单等信息。

    • 报错:机器人的相关报错都展示在这里,不用再去 Roboshop 看了。

  • 机器人显示模式:车队管理中机器人列表显示模式有两种:标准和扩展模式。默认“标准”模式即可。

  • 核心优势:可以同时连接多家厂商的机器人(比如仙工、海柔、海康),也可以同时使用多种调度方式(比如使用仙工调度、光通讯),连接多个调度。

    • 对于仙工车型,且连接方式是直连或通过 GW/WS ,可以显示定位状态、置信度、今日里程、控制权、阻挡信息。可以清错。

    • 对于光通讯:1.在服务端,M4 与机器人的连接方式是请求上报,所以无法清错。2.在机器人里,除了可以配置开关,还可以把车队管理也配置出来。连接方式是直接连接,连接到控制器内的机器人。然后可以通过网页查看机器人状态、清错了。

    • 在车队管理中显示机器人当前占用的点位资源和申请但申请不到的点位资源。当机器人要行走的点位申请不到资源时,就会不动。

2.1.2 如何添加或修改机器人?

在桌面端的【车队管理页面】,点击主工具栏的 “添加机器人” 或者点击机器人卡片中的“编辑”进入【机器人编辑页面】,填写或者修改机器人信息。

1080
  • 机器人名称:一般是填写机器人编号,需要唯一标识。

  • 厂商:目前支持仙工、海柔、海康。

  • 停用:暂时不使用机器人时,将机器人停用,M4 暂时不再连接机器人。如果后续再次使用机器人,取消停用,M4 将重新连接机器人。

  • 不接单:勾选不接单后,机器人在线,但是不派发任务。

  • 最大载货数:叉车、地牛、顶升的最大载货数都是 1 ,料箱机器人的最大载货数是料箱机器人的背篓数。

  • 类别:根据需要进行自定义,起到备注的作用。可以填写多个值,多个值之间用逗号隔开。

  • 连接类型:目前有 4 种连接机器人的方式,对应填写的信息如下。

    • 直接连接机器人:适用于仙工机器人,需要配置“机器人地址 (IP)”。要求机器人的 IP 固定,如果机器人 IP 变化,此处需要同步更更新。

    • 机器人连接网关 WS 信道:适用于非仙工厂商的机器人,需要配置“网关登录 ID”和“网关登录密钥机”。原理是机器人连接网关,M4 也连接网关,通过网关交换信息。

    • 网关主动上报:适用于光通讯等定制化的调度方式,需要需要配置“网关登录 ID”和“网关登录密钥”。原理是网关装在机器人内部,网关主动向服务器上报。

    • 仙工调度:适用调度仿真出来的机器人,或者真实的仙工机器人。通过调度获取机器人信息,让调度与 M4 连接。此种模式,需要填写“仙工调度 ID”。

  • SSL/TSL加密:目前只有海柔机器人在用。和现场沟通时,可以问一嘴是否加密,如果加密,勾选即可。

  • 任务模式:类似于调度模式,主要指我们怎么给机器人发任务,目前在用的有四种模式。ps:任务模式暂时取消(4.10.3 版本)。

    • 仙工调度:指用 core 做调度,是最常见的模式。

    • 仙工单机:指 M4 通过 WCS 模块直接调度车,适用仙工机器人。

    • 特殊:指需要定制化调度模式,目前主要用在光通讯。

    • 仿真:指 M4 层面的仿真,不需要连真车。

  • 机器人图片:目前支持传一张。

2.2 地图

2.2.1 如何使用地图?

在桌面端-地图页面,可以看到 M4 的地图。M4 地图有查看和编辑两种模式。

1080
  • 查看模式下,显示某个区域的地图,与 Roboshop 中调度地图视角一致。

    • 支持多个区域,在页面左上角点击“区域名称”,可以切换当前展示的区域。每个区域的含义可以根据实际情况来,比如每个区域代表一层楼,或一个工厂等等。每个区域的地图可能是多个车型地图拼接而成。

    • 当前区域显示的内容包括机器人、站点、支持显示站点绑定的库位、路径等信息。机器人用方块展示,每个方块代表一个机器人,方块下方的文字是机器人的名称,方块中间的格子表示车体的“最大载货数”。

    • 查看模式下的功能包括“显示全部”、“放大”、“缩小”地图,按住鼠标拖动可以拖动地图。点击“选择”进入选择模式,可以只显示“地码”或者“路径”,而且允许框选.

1080
  • 编辑模式下,显示当前区域中其中一个“车型地图”,与 Roboshop 中机器人地图视角一致。

    • 支持多个“车型地图”,在页面左上角点击“车型地图名称”,可以切换当前展示的车型地图。点击“机器人:数量”在,可以配置使用该地图的机器人。

    • 保存/取消:保存/取消本次修改。

    • 删除:删除选择的内容,比如删除某些站点或者路径。

    • 连线:点击“连线”进入连线模式,可以逐个连接站点。

    • 批量连线:对于水平和竖直的站点来说,可以使用批量连线的功能,也就是批量创建路径。具体操作是点击“选择”进入选择模式,选择多个站点,然后点击“批量连线”,支持水平方向或者垂直方向的批量连线。

1080
  • 导入地码:适用于二维码导航。在 CAD 或者其他工具上,将地码的 XY 值收集起来,然后粘贴过来,每行一个 XY 值。

1080
1080
  • 导入 Smap:适用于仙工机器人。如果之前在 Roboshop 中已经建好地图,可以选择机器人,导入对应的机器人地图。

1080
  • 桌面端,地图元素属性查看,支持固定在右侧。

1080

2.3 调度运单

2.3.1 如何进行运单管理?

在桌面端-仙工调度运单界面,显示 Core 调度下发的运单信息。

  • M4 支持连接多个调度,仙工调度运单界面支持显示多个调度下发的运单信息。可以在右上角,点击“调度名称”切换当前显示哪一个调度下发的运单。

  • 除了查看运单的单号、机器人、状态、封口等信息之外,还可以直接“终止运单”。

1080

三、猎鹰任务

3.1 猎鹰任务

3.1.1 如何查看猎鹰任务运行情况?

在桌面端点击猎鹰任务记录菜单,进入猎鹰任务记录页面,可以看到已经开始运行的猎鹰任务列表。

  • 列表显示猎鹰任务 ID、任务模版、任务状态、错误原因等信息。

  • 点击操作列的“查看”,进入猎鹰任务运行详情,可以查看猎鹰任务每个块的运行情况。

1080
1080

3.1.2 什么是猎鹰任务模板?

  • 猎鹰任务模板类似于数学中的公式,输入参数后,猎鹰任务模板运行,并输出参数。

  • 每个仓储业务模块(比如入库单)对应一个或多个猎鹰任务模板,比如入库单提交后生成库存,可以建一个名为“入库后生成库存”的猎鹰任务模版,然后在业务对象-入库单-按钮-提交按钮中关联“入库单”猎鹰任务模板。那么用户在入库单新建页面,点击“提交”按钮后,M4 会运行“入库后生成库存”这个猎鹰任务模版,运行完成后会创建库存明细。

  • 在项目交付前,技术支持或开发同事会根据业务情况配置相应的猎鹰任务模版,终端用户不需要关心猎鹰任务模板。因为配置和调试猎鹰任务模板的过程中,需要经常看运行结果,猎鹰任务记录列表页和猎鹰任务详情页,均放了猎鹰任务模板的入口。

3.1.3 如何新建任务模版?

  • 在猎鹰任务模板列表页点击“添加任务模版”,进入猎鹰任务模版编辑页面。猎鹰任务模版编辑页面的顶部是主菜单栏,左侧是任务设置和任务参数,插入组件在桌面端默认打开是固定在任务设置的左侧,中间是业务流程,右侧是组件配置。

1080
  • 在任务名中输入猎鹰任务模版的名字。

  • 在主菜单栏中,点击“插入组件”,弹出组件弹窗,在弹窗内选择需要插入的一个或多个组件,系统默认将选择的组件插入在业务流程的最后。

1080
  • 勾选组件后,点击组件前面的移动图标,然后上下拖动,可以调整组件的顺序。

1080
  • 选中一个组件,在右侧的组件配置中配置组件的详细内容,包括备注、组件引用名、输入参数。

    • 点击其中一个参数后,弹窗填写每个参数的内容。参数有固定值、引用、表达式这三种类型固定值和表达式。

    • 如果输入参数的值唯一确定,选择固定值,然后在输入框中输入值。

    • 如果输入参数的值是任务录入参数或者上下文的组件的输出参数,可以选择引用,然后勾选引用的是哪一个参数。

    • 如果参数的值需要表达式计算,选择表达式,然后在录入框中输入具体的表达式。系统会列出猎鹰任务模版涉及的变量,填写表达式时点击变量名,即可插入到表达式录入框中。

    • 如果猎鹰任务需要修改的话,只需要在顶部菜单栏中点击:撤销、重做等操作即可。目前支持:添加删除组件、移动组件、复制组件、添加删除修改任务输入参数、任务输出参数、配置组件的输入参数。

1080
  • 调整好所有的组件后,点击保存按钮,猎鹰任务模版即可配置成功。

3.1.4 猎鹰任务模版中组件太多,能折叠吗?

猎鹰任务模版支持折叠子组件,具体操作:

  • 添加 “串行执行” 组件。

  • 如果连续多个组件是做一件事,可以把它们放入一个串行组件里。

  • 点击折叠按钮,即可将多个组件收到一个串行组件中。

125

3.1.5猎鹰任务编辑页面,是否可以直接查看子任务的定义?

在猎鹰任务模板编辑页面,添加子任务,并在配置组件中点击“查看子任务”即可查看子任务的定义。

1080

3.1.6 插入组件弹窗,能固定到界面上吗?

在插入组件弹窗中,勾选“固定”,插入组件独立成区块并固定在界面上,方便在编辑时持续修改。

1080

3.1.7 配置猎鹰任务模板时,能复制上文组件吗?

在猎鹰任务模版编辑页面,找到需要复制的组件,点击组件上的复制图标,组件复制并显示到当前组件下放。

1080

3.1.8 配置猎鹰任务模板时,能删除组件吗?

在猎鹰任务模板编辑页面,找到需要删除的组件,点击,组件上的删除图标,组件就会被删除。

1080

3.1.9 选中组件时,是否可以显示更为突出?

在猎鹰任务模板编辑页面,找到需要勾线的组件,组件边框会变成虚线,显示更为突出。

1080

3.1.10 如何快速调试猎鹰任务模版?

  • 修改任务模版后,点击“运行”按钮,M4 跳转到猎鹰任务记录详情页。

  • 在猎鹰任务记录详情页发现报错后,点击“任务模板”,M4 跳转到猎鹰任务模板编辑页面,修改模板后,点击保存。然后切换到猎鹰任务详情页,点击刷新/故障重试,M4 会使用修改后的模版运行猎鹰任务。

1080

3.1.11 猎鹰任务报错会显示到报警消息中吗?

  • 在报警消息中不仅可以查看报错的的猎鹰任务,而且可以重试和取消猎鹰任务。

1080
1080
1080

3.1.12 猎鹰任务详情会支持跳转查看子任务的详情吗?

  • 在猎鹰任务详情中,可以点击子任务的单号跳转到子任务详情页面中。

1080

3.1.13 移动端如何配置猎鹰任务模板?

移动端和 PC 端配置猎鹰任务的功能一致,但是入口和交互略有不同。

  • 在移动端-猎鹰任务记录右上角,点击更多功能图标,弹出功能列表。在功能列表中,点击“模板”,进入“猎鹰任务模板”列表页。

125 125

  • 在猎鹰任务模板配置列表页,点击其中一个猎鹰任务模板,点击右上角更多功能图标,通过功能列表中的新增按钮,进入猎鹰任务模板详情配置页面。

125 125

  • 在猎鹰任务模板详情配置页,显示猎鹰任务流程。选中一个组件后,弹出组件配置弹窗,可对组件进行配置。任务模板运行、删除组件、选择组件、任务设置、任务输入参数、任务输出参数等功能,隐藏在右上角的功能列表中。

125

3.1.14 两点搬运猎鹰任务示例

  • 为方便测试,创建两个输入参数,起点、终点。

1080

  • M4 与 Core 交互的方式是,先创建运单,然后向指定运单添加一个、两个或更多动作,最后结束运单(即封口)。相比于 MWMS,M4 选择贴近 Core 的 API 结构。

  • 第一个组件,创建调度运单。这个组件对应 Core 的创建运单步骤。选择调度 ID。不用指定机器人。关键位置是必填的,一般是任务起点。这个组件输出运单号。后续要向此运单追加动作,只需要引用此运单号。

1080

  • 第二个组件,选择”执行运单块“。这个组件对应 Core 的追加 block 功能。即让选定的机器人执行某个动作。调度 ID 依旧。运单号填第一个组件的输出。站点是任务输入参数,起点。动作按需,简单就是 Wait。其他可以不填。建议填写”说明“,让此组件的目的更清晰。

1080

  • 第三个组件,与第二个类似,只是站点变成终点。

1080

  • 最后一个组件,结束调度运单。即对应 Core 的封口。表示这个运单结束了,可以释放机器人做其他事情了。

1080

  • 保存。运行,填写地图上实际有的点位。可以在地图上查看机器人轨迹。

3.1.15 单据调用猎鹰任务示例

单据调用猎鹰任务通过拓展按钮关联猎鹰任务,如果需要用到单据中的字段作为猎鹰任务的入参,那么还需要在猎鹰任务模板中关联业务实体,并设置输入参数。

  • 在业务对象-界面按钮-新增界面/编辑界面,新增拓展按钮。到按钮编辑页面,关联已经创建好的猎鹰任务。

1080

  • 猎鹰任务模板中,创建两个输入参数,单号、实体。

1080

  • 根据 id 查找业务对象。这个步骤即确认关联的业务对象。

1080

  • 使用业务对象的字段,作为输入参数。比如使用“startbin”作为起点位置,那么所有需要录入起点位置的块,配置输入参数时需要用到表达式。表达式中,“blocks.b6”表示“根据 id 查找业务对象”的块编号,“ev”表示引用的是当前实体,“startbin”表示引用的具体哪个字段。建议用户复制这个表达式,使用时替换块编号和要字段 id 就行。

1080

3.2 猎鹰任务故障和故障恢复

3.2.1 猎鹰任务中“调度 ID”未填写

  • 场景:以 “原料配送-料架”猎鹰任务为例,将“创建调度运单”组件的参数”调度 ID ”置空,其他不变。

1080

  • 运行结果:

    • 猎鹰任务详情页报错:[wcs_err_tom_OtherError] 请求调度,其他错误:java.net.SocketTimeoutException: Connect timed out

    • 报警消息-猎鹰任务报错:[Error] 猎鹰任务 <原料配送-料架> 失败。任务=FT20231228-000005。原因:[wcs_err_tom_OtherError] 请求调度,其他错误:java.net.SocketTimeoutException: Connect timed out

1080

1080

  • 故障恢复:

    • 排查猎鹰任务模板中的组件,发现“调度 ID”为空。

    • 查看【系统配置】里的“设备控制” 配置的“调度 ID”。

    • 将“设备控制”处配置的“调度 ID ”填写到猎鹰任务模板的组件中。

    • 在猎鹰任务记录页面,找到失败的猎鹰任务,勾选后点击“故障重试”按钮,或在详情页面点击“故障重试”,即可恢复运行。

1080

1080

1080

3.2.2 猎鹰任务中的“关键位置”未填写

  • 场景:以 “原料配送-料架”猎鹰任务为例,将“创建调度运单”组件中的“关键位置”置空。

1080

  • 运行结果:

    • 猎鹰任务详情页报错:[errFalconMissingBlockInputParam] 组件 "b1" 缺少输入参数 "keyRouteStr"

    • 报警消息-猎鹰任务报错:[Error] 猎鹰任务 <原料配送-料架> 失败。任务=FT20231228-000012。原因:[errFalconMissingBlockInputParam] 组件 "b1" 缺少输入参数 "keyRouteStr" 2023-12-28 14:16:54

1080

  • 故障恢复

    • 到猎鹰任务模板中,填写“关键位置”,并保存。

    • 在猎鹰任务记录页面,找到失败的猎鹰任务,勾选后点击“故障重试”按钮,或在详情页面点击“故障重试”,即可恢复运行。

3.2.3 猎鹰任务中的“调度 ID” 未在“设备控制”中配置

  • 场景:以 “原料配送-料架”猎鹰任务为例,猎鹰任务配置一个未在“设备控制”中配置的“设备 ID”。

1080

  • 运行结果:

    • 猎鹰任务详情页报错:[wcs_err_TomNotFound] 未配置调度 "XX"

    • 报警消息-猎鹰任务报错:[Error] 猎鹰任务 <原料配送-料架> 失败。任务=FT20231228-000006。原因:[wcs_err_TomNotFound] 未配置调度 "XX"

1080

1080

  • 故障恢复:与《猎鹰任务中未填写“调度 ID”》节中方法类似,区别是:如果“设备控制”中没有可用的“调度 ID”,需要在“设备控制”页面配置一下“调度 ID”。

3.2.4 调度未启服务

  • 场景:以 “原料配送-料架”猎鹰任务为例,配置均正确,但不启动调度。

  • 运行结果:

    • 猎鹰任务详情页报错:[wcs_err_tom_ConnectError] 连接调度服务器失败:java.net.ConnectException: Failed to connect to localhost/[0:0:0:0:0:0:0:1]:8088

    • 报警消息-猎鹰任务报警:[Error] 猎鹰任务 <原料配送-料架> 失败。任务=FT20231228-000011。原因:[wcs_err_tom_ConnectError] 连接调度服务器失败:java.net.ConnectException: Failed to connect to localhost/[0:0:0:0:0:0:0:1]:8088 2023-12-28 14:10:20

    • 报警消息-机器人报警:[Warning] 机器人 'DN-01' 离线(连接不上) 2023-12-28 14:05:42

1080

  • 故障恢复:

    • 当一台服务器报连接不上,且对应的所有机器人都报警离线,需要排查调度是启动,是否能 ping 通。

    • 启动调度。

    • 在猎鹰任务记录页面,找到失败的猎鹰任务,勾选后点击“故障重试”按钮,或在详情页面点击“故障重试”,即可恢复运行。

3.2.5 调度服务未激活

  • 场景:以 “原料配送-料架”猎鹰任务为例,配置均正确,但是调度自身没有授权。

  • 运行结果:如图。

1080

  • 故障恢复

    • 为调度授权,操作方式参考:https://seer-group.yuque.com/pf4yvd/lsekh8/wcbzcvwvgbqqt1zw

    • 在猎鹰任务记录页面,找到失败的猎鹰任务,勾选后点击“故障重试”按钮,或在详情页面点击“故障重试”,即可恢复运行。

1080

3.2.6 机器人状态为“不接单且占用资源”

  • 场景:以 “原料配送-料架”猎鹰任务为例,猎鹰任务配置正确,但是把猎鹰任务可用的机器人状态设置成“不接单且占用资源”。

1080

  • 运行结果:M4 未报错,但是猎鹰任务卡住。

1080

  • 故障恢复:在 shop 中重新将机器人设置可接单。猎鹰任务即可自动恢复故障。

1080

1080

3.2.7 机器人状态为“不接单不占用资源”

与《机器人状态为“不接单且占用资源” 》一致,请参考上文。

3.3 猎鹰任务组件的使用

3.3.1 绑定库位容器

  • 输入参数含义

    • binId:库位编号

    • containerId:容器编号

    • unlockBin:是否解锁库位

    • unockContainer:是否解锁容器

  • 组件使用场景

    • 通常使用搬运环节,容器搬运到目的库位后,将容器和目的库位进行绑定。

    • 使用该块后库位变为有货,库位上容器会显示绑定的容器号。

    • 使用该块后容器属性不会发生变化。

1080

3.3.2 解绑库位容器

  • 输入参数含义

    • binId:库位编号

    • containerId:容器编号

  • 组件使用场景

    • 通常使用在搬运环节,容器搬运从起点搬走后,将容器和起点库位进行解绑。

    • 使用该块后库位变为无货(有货复选框不勾选),库位上容器置空。

    • 使用该块后容器属性不会发生变化。

1080

3.3.3 获取容器所在库位

  • 输入参数含义

    • containerId:容器编号

  • 组件使用场景

    • 用于不管控库存,库内有空容器又有有货容器,需要出有货容器/空容器的场景。

    • 例子:欧胜智能-电池模组仓,先找有货的托盘,然后根据有货托盘确定出库的库位。

1080

3.3.4 获取库位上的容器

  • 输入参数含义

    • binId:容器编号

  • 组件使用场景

    • 通常用于容器不贴码,根据库位获取追踪容器号。

1080

3.3.5 寻空库位

  • 输入参数含义

    • 库区列表:可以填写多个库区,库区之间用英文的逗号分隔。如果在第一个库区找到了空库位,锁定空库位,不再继续寻找;如果第一个库区没有找到空库位,继续在其他库区中找。

    • cq:寻找条件。可以通过表达式设置多重过滤条件。

    • sort:排序条件。当多个空库位满足条件时,根据排序条件选择用哪一个。如果不填,随机选一个。

    • 反复尝试至成功:如果不勾选,寻找失败后会报错;如果勾选,找不到空库位也不报错,流程卡在这个块,反复尝试寻找。

  • 组件使用场景

    • 通常用于两点搬运时,寻找终点库位。

1080

3.3.6 设置库位未占用

  • 输入参数含义

    • binId:库位编号

    • unlockAfter:勾选后,将库位的“锁定”状态置为“否”。如果库位原本就是未锁定状态,不需要勾选。

  • 组件使用场景

    • 通常用于人工下架场景,人工将容器拉走后,通过此块将库位的“有货”置为“否”,并清空库位上容器。

1080

3.3.7 找空容器

  • 输入参数含义

    • districtIds:库区列表,可以填写多个库区,库区之间用英文的逗号分隔。如果第一个库区找到了空容器,将容器锁定,不再继续寻找。如果第一个库区没有找到空容器,继续在其他库区中找。

    • sort:排序条件。当多个空容器满足条件时,根据排序条件选择用哪一个。如果不填,随机选一个。

    • keepTrying:如果不勾选,寻找失败后直接报错。如果勾选,寻找失败后不报错,流程卡在此块,继续尝试寻找。

  • 组件使用场景

    • 通常用入库-叫空容器。

1080

3.3.8 创建追踪容器

  • 输入参数含义

    • containerType:容器类型编号。

  • 组件使用场景

    • 通常用于容器不贴码仓库的入库。

1080

3.3.9 删除追踪容器

  • 输入参数含义

    • containerIds:容器号

  • 组件使用场景

    • 通常用于容器不贴码仓库的出库。

1080

3.3.10 查询容器的类型的存储区

  • 输入参数含义

    • containerIds:容器号

  • 组件使用场景

    • 料箱、托盘等不同类型的容器存放在不同的存储区,现场根据扫描的容器,确定容器存放的库区。

    • 如果同一容器类型存放在多个库区,此组件的输出结果是多个库区。

1080

3.3.11 根据 id 更新业务对象单个字段

  • 输入参数含义

    • entityName:业务对象名称

    • id:单号

    • fieldName:要更新的字段 id

    • fv:更新的目标值

  • 组件使用场景

    • 通过猎鹰任务修改单据的状态。

  • 注意点

    • 任务输入参数需要配置实体名和单号两个入参,入参配置方法可以参考《单据调用猎鹰任务示例》

    • fieldName 和 fv 使用的是简单值。

1080

3.3.12 从单据单行创建库存

  • 输入参数含义

    • 从单行上拷贝一下字段:系统将此处配的字段的值写入到库存明细中。

    • 其他字段含义直接参考输入参数的中文名即可。

  • 组件使用场景

    • 当入库单或者上架单有单行时,可以通过此块生成库存明细。

  • 注意点

    • 因为单据对象入参是“对象”,因此需要先配一个“根据 id 查找业务对象”,然后引用输出的 ev。

    • 单行上的数量字段名、单行上的物料字段、从单行上拷贝一下字段直接填写字段名。“从单行上拷贝一下字段” 可以配置多个字段名,字段之间使用英文的逗号。

    • 库位、容器字段输入参数是值,需要先配一个“根据 id 查找业务对象”,然后用表达式配出值,格式是 blocks.b 块序号.ev.字段名

    • 存储状态输入参数是值,因为值明确,因此可以直接填写,只要和基本信息-选项清单中配置的一致即可。

1080

3.3.13 从单据创建库存

  • 输入参数含义

    • order:业务对象的值。

    • qtyFieldName:数量字段名。

    • materialFieldName:物料字段名。

    • state:状态字段值。

    • bin:库位的值。

    • container:容器的值。

    • copyFields:需要拷贝值的字段名,系统将此处配的字段的值写入到库存明细中。

    • lotNoFormat:批次号的规则。如果需要设置批次号的规则,请联系 M4 实施或开发人员。

  • 组件使用场景

    • 当入库单或上架单没有有单行,物料、数量、库位等直接在单头上时,可以通过此块生成库存明细。

  • 注意点

    • 因为 order 输入参数是“对象”,因此需要先配一个“根据 id 查找业务对象”,然后引用输出的 ev。

    • bin,container 输入参数是值,需要先配一个“根据 id 查找业务对象”,然后用表达式配出值,格式是 blocks.b 块序号.ev.字段名

    • qtyFieldName,materialFieldName,copyFields 输入参数是字段名的,可以直接用简单值,填写字段名。copyFields 可以写多个,用英文逗号分开。

    • state 输入参数是值,因为值明确,因此可以直接填写,只要和基本信息-选项清单中配置的一致即可。

1080

3.3.14 S7 读取(S7ReadBp)

  • 输入参数含义

    • deviceName:S7 设备名,需要与 PLC 设备配置页面的名称(ID)保持一致。

    • blockType:目前选择 DB。

    • dataType:读取的数据类型。

    • dbID:读取的具体是哪一个 DB,前期和客户沟通确认。

    • byteOffset:读取的具体是 DB 中的哪一个地址,前期和客户沟通确认。

  • 组件使用场景

    • 猎鹰任务通过这个块读取 S7 设备某个地址的值。

1080

3.3.15 S7 写入(S7WriteBp)

  • 输入参数含义

    • deviceName:S7 设备名,需要与 PLC 设备配置页面的名称(ID)保持一致。

    • blockType:目前选择 DB。

    • dataType:读取的数据类型,包括布尔、整数等。

    • dbID:读取的具体是哪一个 DB,前期和客户沟通确认。

    • byteOffset:读取的具体是 DB 中的哪一个地址,前期和客户沟通确认。

    • value:期望读到的值。

  • 组件使用场景

    • 猎鹰任务通过这个块为 S7 设备的某个地址写入值。

1080

3.3.16 S7 读取直到(S7ReadEqBp)

  • 输入参数含义请参考 S7 读取。

  • 组件使用场景

    • 猎鹰任务通过这个块读取 S7 设备某个地址的值,如果读取不到目标值,就一直读取。

1080

3.3.17 简易脚本

  • 对于简单的需要定制的功能,不需要再写定制组件。可以直接写脚本。实现,拼装复杂字符串、JSON 组装、复杂计算、调用 HTTP 接口、查询业务对象、创建业务对象等。

1080

1080

  • 对于简单的需要定制的功能,不需要再写定制组件。可以直接写脚本。实现,拼装复杂字符串、JSON 组装、复杂计算、调用 HTTP 接口、查询业务对象、创建业务对象等。

function simpleScript(proxy) {
    // 获得任务 ID
    const taskId = proxy.getTopTaskId()

    // 获取任务输入参数
    const name = proxy.getTaskInputParam("name")

    // 获得组件的输出参数:引用名、参数名
    const timestamp = proxy.getBlockOutputParam("b3", "timestamp")

    // 获得上下文参数
    // const index = proxy.getContextVariable("index")

    // 调用 HTTP 客户端
    const hr = httpClient.requestJson("GET", "http://localhost:5173/api/base", null, null)
    if (hr.successful) {
        const hro = JSON.parse(hr.bodyString)
        const result = `应用名:${hro.name},任务 id=${taskId},任务输入参数=${name},当前时间=${timestamp}`
        return JSON.stringify({ error: false, result })
    } else {
        return JSON.stringify({ error: true, errorMsg: hr.bodyString })
    }
}
  • 原来在脚本里能调用的函数都可以调用。除此之外,还可以调用 proxy 对象的函数,获取组件相关信息,如任务 ID、任务输入参数、组件输出参数、上下文参数。

  • 要求:脚本源码里必须定义一个叫 simpleScript的函数。这个函数有一个参数 proxy,获取组件相关信息。这个函数必须返回一个 JSON 字符串。error字段表示是否有错。当有错时,报错信息通过errorMsg获得。正常情况下,结果通过 result字段返回,可以是任意类型。

四、业务对象

4.1 业务对象首页

4.1.1 M4 系统“业务对象”首页有哪些功能?

  • 顶部是按钮区。顶部按钮区显示:添加业务对象、刷新、修复、导出、导入、重置按钮。

    • 添加业务对象:输入必须是英文和数字,且不能重复。添加实体弹窗页面显示:数量关系默认为:多值、流水号默认是:4。

    • 重置:即让系统恢复出厂设置。点击“重置”后,用户新添加的业务对象会删除,修改的内建业务对象会恢复默认。

1080
1080

4.1.2 目前 M4 系统上对不同的“业务对象”是如何划分的?

  • 业务对象首页支持关键字筛选,最近使用的业务对象会被记录,方便查找。且下方列出所有业务对象。目前业务对象有两种:内建对象和项目扩展对象。

    • 内建业务对象:系统内置的标准的业务对象,用户可以需要增减字段。内建的就是系统内自带的业务对象(蓝色显示)。

    • 项目扩展对象就是根据项目需求新增的业务对象(橘色显示)。

    • 禁用的业务对象:属于暂时停用的业务对象。需要时,可以重新启用。禁用的业务对象会显示删除线。

1080
1080

4.1.3 目前 M4 系统内建“业务对象”是用来做什么的?

  • 系统内建业务对象通俗来说,就是标准业务框架的各个组成部分。目前主要是由:MainData(基础数据) 、Test(组件和实体) 、user(用户)、Warehouse(仓库标准业务) 、Core(调度) 、Falcon(猎鹰任务) 、GW(光通讯) 、WCS(仓库控制系统)八部分组成。

  • MainData 主要包含有:仓库、库区、库位、容器类型、容器、容器容量、物料分类、物料、物料容器容量、物料批次、物料单位、包装规格、货架、供应商、工位、岗位、货主、客户。

  • Test 主要包含有:测试组件、测试组件表格、测试实体。

  • user 主要包含有:部门、组织、用户设置。

  • Warehouse 主要包含有: 叫空容器、新容器上架单、盘点结果执行、入库单、入库单行、库存明细、出库单、出库单行、库存变更、分拣单、分拣单行、装货单、装货单行。

  • Core 主要包含有:代理账户、配置项、实体修改记录、实体评论、实体同步记录、用户会话、编号规则、定制界面、列表查询方案、单据流转记录、资源锁、脚本鲁棒执行、运行一次、脚本运行一次、监控节点、用户通知。

  • Falcon 主要包含有:猎鹰任务字块 ID 、猎鹰任务块记录、猎鹰自定义组件、猎鹰任务日志、猎鹰任务记录。

  • GW 主要包含有:网关简单运单。

  • WCS 主要包含有:容器搬运单、直接运单、海康资源包、移动机器人运行记录、移动机器人系统配置、PLC 设备配置、机器人通讯点、通用运单、通用运单步骤、机器人任务日志。

1080
1080

4.1.4 目前 M4 系统上禁用的业务对象是用来做什么的?

  • 禁用的业务对象是属于暂时停用的业务对象。需要时,可以重新启用。目前主要是在:Core 、 MainData 组内有禁用的业务对象。

  • Core 主要包含有:监控节点

  • MainData 主要包含有:产线、物料批次、物料单位

1080

4.2 业务对象详情

4.2.1 如何配置业务对象的基础(信息)?

  • 基本配置:实体名、显示名、分组、摘要字段、数量关系(多值、层级数据、单例)。

  • 配置好基础配置后,菜单页面效果如下图:

1080
  • 禁用配置:有停用/禁用功能、禁用创建、禁用更新、禁用批量更新、禁用删除、禁用导出、禁用导入。

  • 勾选禁用相关配置,配置效果如下图:

1080
1080
  • 编号及排序规则配置:启用自动编号、编号前缀、流水号位数;默认排序。

  • 启用自动编号以及排序后,配置效果如下图:

1080
1080
  • 其他配置:启用回收站、记录历史版本、追踪修改、启用评论、替换详情页、详情页打开方式:对话框、页面。

  • 勾选其他配置后,配置效果如下:

1080
1080

4.2.2 如何配置业务对象的摘要?

业务对象得摘要,指需要用简短文字描述业务对象特性或状态时的描述文字。每个业务对象,默认显示为业务对象的 ID(如容器编号)。

  • 以“容器”业务对象为例:

  • 配置步骤:如果修改要展示的字段。可以指明多个字段,有竖线分隔。如果还要定制,可以通过一段前端脚本代码。

1080
  • 场景描述:要通过引用选择一个容器在下拉列表里,有时仅通过编号不能区别业务对象的。需要多个字段。如物料编号、名称、规格、型号。此外,还可能需要显示一些状态信息。录入选择容器时,希望能提示容器是否是有货状态。

1080

4.2.3 如何配置系统通知?

在桌面端业务对象配置详情页-基本配置页面,配置通知事件和通知人。当其他人更新、评论业务对象后,会给配置的通知人发消息。比如:当仓库主管修改了仓库经理创建的“仓库”后,系统会给仓库经理发消息。

1080
1080

4.2.4 如何扩展表格样式和逻辑?

在桌面端业务对象配置详情页-基本配置页面,填写扩展代码脚本,可以实现表格样式和逻辑的扩展。扩展代码属于高级功能,可以联系技术支持获取服务。

1080

4.2.5 如何配置业务对象的字段?

  • 在桌面端业务对象配置详情页-字段配置页面,点击工具栏中的“添加字段”,填写字段名。只能填写字母和数字,并且必须以字母开头。

1080
1080
  • 选中字段,填写字段的具体属性。

  • 显示名:操作页面显示的字段名,也叫字段标签。可以使用中文、英文等。

  • 类型:即字段的数据类型,与输入方式有关。

    • 当类型选择文本、整数、浮点数、布尔、日期、时间、图片、文件,不需要手动选择“输入方式”,系统会自动匹配合适的“输入方式”。

    • 当类型选择组件,要勾选“多值”,“引用实体”选择单行实体名称。当字段类型是组件时,在 PC 端就会以表格形式呈现。不管是不是多值。

    • 当类型选择“引用”,“引用实体”选择所引用的实体名称。

1080
  • 多值:表示字段值是一个数组,可以录入多个值。

    • 当“类型”选择图片时,勾选“多值”后,新建或编辑页面可以上传多个图片。

    • 当“类型”选择文本时,勾选“多值”后,新建货编辑页面可以添加多个文本录入框。

    • 当“类型”选择引用时,勾选“多值”后,新建货编辑页面选项变为多选。

    • 类型可以与“列表最少多少项”“列表最多多少项”来搭配使用,限制值的数量。比如 单据实体中 btLines 字段配置“列表最少多少项”的值为 1,表示单据至少有一个单行。如果单据没有添加单行,保存或提交时,系统给与报错。

1080
  • 当“类型”选择布尔时,支持定制布尔类型字段的显示。首先,如果不定制,在列表表格界面,true 会显示为“是”, false/null/undefined 会显示为空。可以定制 true/false 情况下,更高显示文字,用图标显示,或添加 CSS 样式。

1080
1080
  • 选项清单:单据状态等字段可以通过“选项清单”配置,配置后,新建或编辑页面以下拉的方式填写字段值。

  • 默认值:如果需要在新建时显示值,通过“默认值”配置。

  • 停用:如果需要临停用字段,勾选“停用”。

  • 模糊筛选:如果要在列表界面的快速查询时,匹配该字段的值,勾选“模糊筛选”。

  • 必填:勾选后,新建或编辑页面,字段必填。

  • 小数位数:当类型是浮点数时,必须设置“小数位数”,默认为 3 。

  • 引用字段:本业务对象检测字段与引用字段:取值路径配合使用。比如采购单详情页,如果想选择物料后自动带出物料名称,可以在采购单单行业务对象-物料名称字段的“引用字段:本业务对象检测字段”中选择“物料”,在“引用字段:取值路径”中填写“name”。

1080
  • 汇总单行字段:用于单头汇总计算。比如在采购单头业务对象-采购数量字段的“汇总单行字段”中,填写采购单单行的“采购数量”字段,系统会自采购单单行的采购数量汇总,显示在采购单单头的“采购数量”中。

1080
  • 计算公式:通过填写计算公式,可以基于现有字段做公式计算。比如采购单单行中的-采购金额字段,可以通过采购单单行的“采购价格”和“采购数量”进行计算。

1080
1080
  • 输入方式:新增或编辑界面,字段的录入方式。

  • 特殊输入:这是高级操作。填写“特殊输入”后,可以调取前端特殊的组件实现输入。

  • 查看、新建、编辑:可以配置字段在这三种界面的输入控制,有不显示、只读、可编辑三种。红框内是 3 种常用组合,点击可快速录入。

1080
  • 字段显示顺序:通过填写序号,可以手工编辑字段顺序。这里的顺序与列表页字段顺序、单头字段顺序、单行列表字段顺序一致。

  • 宽显示:字段在详情界面默认采用多列布局。勾选“宽显示”后,字段在详情界面将占据整行宽度。

1080
  • 组件表格列宽度:控制单行业务对象的字段在单行表格的列宽,单位是 px 。比如将采购单单行业务对象-采购数量字段的“组件表格列宽度”设置为 200 px。

1080
1080
  • 列表表格禁用:控制单头业务对象的字段是否显示在列表表格中。勾选后,字段不显示在列表表格中。

1080
  • 列表表格宽度:控制单头业务对象的字段在列表表格的宽度。

  • 列表表格对齐:控制单头业务对象的字段在列表表格的对齐方式。

  • SQL 数据库:目前需要填写字段的数据类型和最多字符,整数、长整数、浮点数需要填写数字位数,浮点数需要填写小数位数。

1080
  • 引用筛选:如果字段引用了实体,可以通过对实体中的字段进行筛选,实现过滤的效果。比如,下图过滤出“原料缓存区 L2”的库位。

1080

4.2.6 M4 如何实现“多组单行”的功能?

  • 一个业务对象支持多个多值组件子组件。即多组单行支持。

  • 桌面端和移动端均支持多组单行的功能。

  • 以“门店叫货单”为例,配置如下:

  • 在业务对象-字段配置页面:首先对于单据,创建完主单(单头),接下来需要创建单行业务对象。现在可以从主单处触发。点击:“创建组件业务对象”按钮,即可自动创建单行业务对象。关键是类型选择:组件、多值( ☑️ )、业务对象(选单行业务对象)。

    • 对于单行业务对象(如入库单行),关键字段是所属订单和行号。可以通过“添加常用字段”添加。注意所属订单关联业务对象要填对:填主单业务对象。

1080
1080
  • 多组单行配置效果如下图:

1080

4.2.7 为什么要配置业务对象列表界面批量操作功能?

  • 有时需要对多个业务对象进行批量操作,如很常用的:批量解锁、批量标记为取消等等。对于布尔类型的字段和有选项清单的字段,可以配置“列表界面批量按钮”。现在已经对直接运单、库存明细、库位、容器添加了这类按钮。

  • 以“库存明细”为例:

  • 配置操作如下:

  • 在字段配置界面-列表界面批量按钮,点击“添加”按钮:

    • “按钮文字”输入:解锁,“值”不勾选,按钮类型下拉选择:警告,点击“保存”业务对象。

1080
  • 配置实现效果如下:

1080

4.2.8 如何在字段改变后触发扩展代码?

  • 功能:当录入一个字段后,根据这个字段的值,自动查询外部,自动填充相关字段。

  • 示例:耗材上架单行,在录入物料后,要根据物料查询此物料在仓库内存放的位置,如果有,要作为”建议库位“,并且如果”存储库位“用户此前未填,作为默认值。

  • 配置方法:在耗材上架单行业务对象,找到物料字段(当此字段改变后触发),填入扩展代码。

{
 // 查库存此物料存储库位
const oldBin = await ctx.utils.getStoreBinIdOfMaterial(ctx.newFv)
// 实际上架库位,如果已录入(非空),则按用户录入的,否则按建议的
const storeBin = ctx.ev["storeBin"] || oldBin
return { suggestBin: oldBin,  storeBin: storeBin }
}
1080
  • 界面效果:拉取入库单,或者手工添加单行选择物料,如果物料有库存,将当前存储位填充到建议存储库位、存储库位。

1080

4.2.9 如何配置移动端的卡片?

  • 业务对象可以配置它的卡片视图。在移动端等需要展示业务对象时,以卡片的形式展示。

  • 以“仓库”业务对象为例,配置说明如下:

    • 添加卡片第一行:字段筛选为:仓库名称;类型选择:简单;前缀、后缀为空。

    • 添加卡片第二行:字段筛选为:停用;类型选择:根据值;前缀、后缀为空。

      • 添加条件:比较运算符:等于;值填写:true;替换显示内容:已停用,不勾选作为标签使用;不显示、文字颜色、背景颜色、CSS样式、靠右显示均不配置。

      • 添加条件:比较运算符:其他;值为空;勾选:不显示;替换显示内容、作为标签显示、文字颜色、背景颜色、CSS 样式、 CSS 类名、靠右显示均不配置。

1080
  • 卡片配置效果如下图:

125

  • 图片字段配置:只有含有图片类型的字段才显示:图片,如:物料。状态字段:只有业务单据才显示状态字段,如:入库单。

1080
1080

125 125

4.3 单据业务对象配置

4.3.1 如何配置单据中数量字段的逻辑?

  • 在单据配置页面,启用单据。

  • 单行:本次发生数量字段,单选,比如上架单中的“上架数量”。提交上架后,按照本次填写的“上架数量”,增加库存。

  • 单行:已发生数量字段,多选,比如上架单中的“已上架数量”。一个入库单可能分多个上架单上架,通过“已上架数量”提示用户前面的上架单已经上架了多少数量。

  • 单行:计划总数量字段,单选,比如入库单中的“入库数量”是上架单中的“计划入库数量”,通过“计划入库数量”提示用户总共需要上架多少数量。

1080

4.3.2 如何配置单据状态?

  • 在桌面端业务对象配置详情页-字段页面,通过“添加常用字段”添加“单据状态”。

1080
  • 在桌面端业务对象配置详情页-单据状态页面,可看到已添加的“单据状态”,逐个设置每个单据状态能做的操作。

    • 可修改单据:默认不勾选,勾选后,单据在此状态下仍然可以修改,即在单据详情页/列表操作列显示“编辑”按钮。

    • 终态:默认不勾选,勾选后,此状态将作为单据的最终状态,即单据业务流完成时的状态。一个单据可以有多个状态,比如入库单的终态可以有已完成、已取消。

    • 添加后续状态:如果此状态不是终态,可以选择此状态后面是什么状态,以及触发状态变化的按钮。具体操作:点击“添加后续状态”,后续状态配置列表出现一个空白行,可以选择“后续状态”、“按钮显示文字”、“按钮种类”、“录入说明”。

    • 后续状态:单选。

    • 按钮显示文字:根据需求填写,填写后作为按钮标签。

    • 按钮种类:即按钮的样式,根据业务需求选择。

    • 录入说明:如果勾选,点击按钮后,操作界面弹出“录入说明”的弹窗,填写录入说明后,状态才进行切换。

1080

4.3.3 以耗材入库单为例,介绍单据状态如何配置?

  • 在桌面端业务对象配置详情页-字段页面,通过“添加常用字段”添加“单据状态”。

1080
  • 在桌面端业务对象配置详情页-单据状态页面,可看到已添加的“单据状态”,逐个设置每个单据状态能做的操作。

  • 未提交状态配置如下:

    • 勾选“可修改单据”。

    • 添加后续状态。后续状态:已提交。按钮显示文字:提交。按钮种类设置为:主要。

  • 已提交状态配置如下:

    • 添加后续状态。后续状态:已完成。按钮显示文字:完成。按钮种类设置为:主要。

  • 已完成状态配置如下:

    • 勾选“终态”

1080
1080
  • 配置效果如下:

1080
1080
1080
1080

4.3.4 如何配置上游单据?

一个单据可以配置零个、一个、多个上游单据。比如上架单可以配置原料入库单、成品入库单等多种入库单作为上游单据。配置上游单据后,在新增或编辑页面,可以拉取上游单据的信息。

具体配置方式如下:

  • 在下游单据的业务对象配置详情-单据页面,配置“单行:本次发生数量字段列表”、“单行:已发生数量字段(可选多个)”、“单行:计划总数量字段”。

1080
  • 在下游单据的业务对象配置详情-上游单据页面,点击“添加上游单据”,出现一个配置区块。并根据需要配置一下内容:

    • 上游单据:单选,选择需要拉取信息的上游单据,对应的单头业务对象名。

    • 上游单据状态筛选:多选,选择后据此过滤可拉取的上游单据,只有满足此状态的上游单据才可以被拉取,如已提交的入库单。

    • 下游单据反写时的状态:多选,选择后据此过滤可反写的下游单据,只有满足此状态的下游单据才可以被会写,如已完成的上架单。

    • 添加单头字段映射:可以添加多对,每对包括上游单据的单头字段,以及拉取后对应的下游单据的单头字段。

    • 添加单行字段映射:可以添加多对,每对包括上游单据的单行字段,以及拉取后对应的下游单据的单行字段。

    • 添加反写映射:可以添加多对,每对包括下游单据的单头字段,以及反写后对应的上游单据的单行字段。

1080

4.3.5 如何定制列表统计逻辑?

在桌面端业务对象配置详情页-列表统计页面,由操作、停用(是否)、标签、类型、筛选、合计字段、计算脚本、文字颜色等进行定制实现。填写扩展脚本,可以实现列表统计逻辑的扩展。定制统计逻辑属于高级功能,可以联系技术支持获取服务。 * 列表统计功能。可以低代码构造列表统计项。通过此功能,可以突出实现一些关键异常,并进行直接筛选。 * 如果一个统计项是通过筛选方式统计的(下文解释),点击一个统计项,可以对列表执行这个筛选。即,点击“故障”,下面列表只显示故障的任务;点击“今日新增”,下面列表只显示今日新增的任务。 * 目前支持三种统计方式:计数、字段合计、脚本。计数就是统计业务对象的个数;字段合计,需要选择对哪个字段进行合计,例如合计所有入库单的入库数量。脚本,则可以通过 js 代码构造复杂的统计项,进行加减乘除,或加载额外的数据。 * 对于“计数”和“字段合计”,通过点击筛选,构造筛选条件。如“今日新增”的筛选条件。

1080
1080
1080
1080
  • 示例:猎鹰任务。统计:故障数、暂停数、今日新增数、今日失败取消数等等。

1080
1080

4.3.6 列表统计默认配置了部分字段是为了什么?

增设几个常用业务对象的列表统计:容器、库位、网关简单运单、直接运单,主要是了更好的显示出问题。 * 以“容器”为例: * 业务对象-列表统计界面,配置如图:

1080
  • 配置效果如图:

1080

4.3.7 通过定制按钮能做哪些事儿?

客户希望定制界面按钮的行为有很多,下面是一些例子:

  • 点击按钮,根据采购单号,加载 ERP 采购单,转换为入库单填入当前界面。

  • 点击按钮,打印标签。

  • 点击按钮,一键填充数量,一键数量清零。

  • 点击按钮,提交,但定制提交前的检查逻辑,如要求实际数量不能超过计划数量。

  • 点击按钮,提交,定制提交后的行为,如触发搬运,或回调第三方。

  • 点击按钮,弹出对话框,显示库存。

  • 根据单据状态,如完成前,显示人工完成按钮。

  • 根据单据类型,如自动单据,可以呼叫机器人。

4.3.8 如何定制界面按钮?

界面按钮分为三种类型:标准、扩展和特殊扩展。标准按钮就是新增、编辑、查看等标准按钮。特殊扩展内部使用,不提。这里主要讲下扩展按钮。扩展按钮可以出现在三类界面:列表、新增编辑和查看。

  • 按钮通用的配置是:

    • 标签:即显示在按钮中的文字。

    • 按钮级别:简单说就是颜色。如警告是红色。

    • 前方添加分隔:勾选后,与前方按钮加大距离,用于分组。

    • 确认消息:如果填了,点击按钮会弹出确认对话框,显示确认消息。确认后再执行。

    • 调用超时:用于调用后端函数和猎鹰任务。单位毫秒。

1080
  • 在新增编辑查看界面,还可以控制按钮显示的时机,根据业务对象值的情况。例如仅在单据状态为未提交时显示。

1080
  • 可以通过三种方式定制按钮的行为:

    • 前端扩展代码:编写一段前端代码。

    • 后端脚本函数:填一个后端脚本函数名,并在脚本里定义。

    • 猎鹰任务:选一个猎鹰任务。

  • 对于列表和查看界面。只能填写:前端扩展代码、后端脚本函数、猎鹰任务。只能填一个,如果填了多个,优先按上述顺序只执行一个。例如如果填了前端扩展代码和后端脚本函数,只执行前端扩展代码。

1080
  • 对于新增和编辑界面,按钮常用于做两类:

    • 处理当前页面,点击后待在当前页面,如点击按钮加载额外的数据。

    • 触发保存、提交等操作,然后关闭页面。

因此,对于新增和编辑界面,三种方式又多出两种配置:保存前和保存后。用于触发保存操作。

1080
  • 以后端脚本函数为例:

    • 后端脚本函数名 (不触发保存) :点击按钮,执行一个后端脚本函数。例如,输入 ERP 采购单号后,点击加载,加载 ERP 的单据详情,转换为我们的入库单。

    • 保存前:执行一个后端脚本,如果报错,则显示,否则触发标准保存动作。可以用于检查输入是否争取。

    • 保存后:标准保存成功后,执行一个后端脚本。例如,触发额外的搬运任务,通知第三方等。

  • 保存前和保存后的操作,允许同时定义,执行顺序是:

    • 如果有定义,执行“保存前的前端扩展代码”。如果报错,显示在界面,终止。

    • 如果有定义,执行“保存前的后端脚本函数”。如果报错,显示在界面,终止。

    • 如果有定义,执行“保存前的猎鹰任务”。如果报错,显示在界面,终止。

    • 执行标准保存逻辑。如果报错,显示在界面,终止。

    • 如果有定义,执行“保存后的前端扩展代码”。异步执行,不报错。

    • 如果有定义,执行“保存后的后端脚本函数”。异步执行,不报错。

    • 如果有定义,执行“保存后的猎鹰任务”。异步执行,不报错。

  • 所有保存前和保存后的操作,允许杂糅。例如:

    • 定义一个“保存前的前端扩展代码”,检查输入是否有效。

    • 定义一个“保存后的猎鹰任务”,触发搬运。

  • 具体的示例,请参考《开发手册》

4.3.9 以“仓库”为例,介绍基础资料类业务对象如何配置?

  • 在【业务对象】菜单页面,点击“添加业务对象”输入:“FbWarehouse” 并点击“确定”按钮,进入【编辑业务对象】弹窗页面。

  • 编辑仓库的基础信息:业务对象名:FbWarehouse ;显示名:仓库; 组:MainData ;不勾选 “停用”;摘要:name ;数量关系:多值;勾选 “有停用/禁用功能”;默认排序: id 。

1080
  • 编辑仓库的字段信息:左侧显示的字段是通过:添加的字段或添加常用字段显示的:仓库编号、仓库名称、备注、显示顺序、地址、位置经度、位置纬度、容积、默认库位、联系人、联系电话、面积、创建人、创建时间、最后修改人、最后修改时间、停用。字段配置详见字段是如何配置的。

1080
  • 编辑仓库的卡片信息:添加行后且每一行允许添加多个段(字段)。如仓库第一行显示的字段是:仓库名称、第二行显示的字段是:仓库编号、停用。

1080
  • 配置效果如下:

1080

4.3.10 以“入库单”为例,介绍单据类业务对象如何配置?

  • 在【业务对象】菜单页面,点击“添加业务对象”输入:“FbInboundOrder” 并点击“确定”按钮,进入【编辑业务对象】弹窗。

  • 编辑入库单的基础信息:业务对象名:FbInboundOrder ;显示名:入库单; 组:Warehouse ;不勾选 “停用”;摘要:name ;数量关系:多值;勾选 “有停用/禁用功能”;默认排序: _id ;勾选启用修改记录;勾选启用自动编号,编号前缀设置:IO ;流水号位数:5。

1080
  • 编辑入库单的字段信息:左侧显示的字段是通过:添加的字段或添加常用字段显示的:单号、类型、状态、状态说明、备注、已叫空容器、创建人、单行(有物料单行的就启用)等字段。

1080
1080
  • 编辑入库单的卡片信息:添加行后且每一行允许添加多个段(字段)。如仓库第一行显示的字段是:单号、第二行显示的字段是:类型、创建人、创建时间。

1080
  • 编辑入库单的单据信息前提是:首先需要先添加一个名叫“入库单行”的新的业务对象。

    • 在单据配置页面勾选“启用”单行业务对象,下拉选择:“入库单行”。单行:本次发生数量字段列表下拉选:入库数量;单行:已发生数量字段选(可选多个)下拉选:之前入库数量;单行:计划总数量字段下拉选:收货数量。勾选“入库:创建库存”;入库:创建库存时的单据状态(可选多个)下拉选:已提交;入库:库存初始状态:存储中。

    • 添加业务对象“入库单行”的基础信息:业务对象名:FbInboundOrderLine 、显示名:入库单行、组:Warehouse、摘要为空、数量关系:多值;入库单行的字段必有信息:ID 所属入库单(单据)关联业务对象为:入库单;卡片信息为:第一行字段显示为:物料名称,第二行字段显示为:物料编号、物料型号、物料规格,第三行字段显示为:入库数量。

1080
1080
  • 编辑入库单的单据类型:到字段配置页面类型字段字段的选项清单进行配置为:勾选启用,添加项:采购入库、产成品入库、其他入库。

1080
  • 编辑入库单的单据状态的前提是:在入库单字段配置里添加了常用字段:状态(state)后单据状态页面配置功能才会启用。未提交时:勾选可修改单据,颜色设置:#777 ,添加后续状态下拉选择:已提交,按钮显示文字:提交,按钮种类设置下拉选:主要;已提交状态时:勾选:终态,颜色设置: #4AC774 。

1080

4.3.11 以“门店叫货单”为例,介绍多单行单据类业务对象如何配置?

  • 桌面端和移动端均支持,多单行单据,效果见下图:

1080
  • 配置方法:

    • 在单头业务对象配置时,单行字段不再使用“btlines”,而是自己添加。添加时,类型选择“组件”、勾选“多值”、关联“单行业务对象”。

    • 在单行业务对象配置时,每个单页业务对象的所属订单,都要关联单头业务对象。

1080
1080
1080

4.3.12 业务对象配置省事 tips ?(开发和实施用的比较多)

  • 创建新单据类型(业务对象):强烈不建议从头创建!请在 M4Demo 里找最接近的单据复制!

  • 尽量使用“添加常用字段” :当需要添加常用字段时,尽量使用“添加常用字段”功能。

1080

4.3.13 业务对象的命名规范是怎样的?

  • 业务对象名和字段名均采用驼峰命名法。

    • 每个单词首字母大写。不使用连字符。如不要使用 “Inbound_Order”。

    • 业务对象第一个单词首字母也要大写,如 “MaterialCategory”。字段第一个单词首字母要小写,其余单词保持大写。如 “sourceOrder”。可以使用缩写,但缩写也仅第一个首字母大写,不要全大写。如要 “HcInbound”,不要 “HCInbound”。不要使用一个字母的单词或缩写,例如不要查询 “WInbound”。

    • 单据以 Order 结尾,例如入库单“InboundOrder”。

    • 不同类型的单据以缩写放在开头。缩写可以使用中文拼音或英文,以好识别为标准。如原料入库单 “MatInboundOrder” ,成品入库单 “FpInboundOrder” ,耗材入库单 “HcInboundOrder”。

4.3.14 新增业务对象后需要修复?

新增业务对象时,字段的 SQL 数据库类型、最多字符等配置容易漏填,以及 ID、创建人、创建时间等字段容易漏添加。因此,建议新增业务对象后,在业务对象列表页,点击“修复”,M4 会自动为你补缺。

4.3.15 更改业务对象后需要更新数据库结构?

  • 对 SQL 类数据库,更改业务对象(新增、添加字段、改类型等),必须先创建、修改表结构,才能正常读写。

  • 非现场,修改业务对象后,需要在业务对象列表页,点击“更新数据库结构”。

  • 现场,推荐重启服务。

五、运维中心

5.1 运维中心

5.1.1 如何快捷重启脚本?

在桌面端-运维中心页面,点击“重启脚本”即可,不需要重启系统。

1080

5.1.2 如何查看系统监控信息?

  • 在桌面端-运维中心页面,点击“系统监控”,进入系统监控页面。

  • 监控项分组。界面上支持筛选。

  • 页面显示系统状态,比如机器人的连接状态、网关上报的内容等。统监控可以监控系统内各组件的实时运行情况,通过系统监控让系统运行透明化,遇到问题,不用看日志,看界面就能排查问题。主要用于运维人员和开发人员排错。

    • 例如,排查光通讯项目车不动的问题,发现通过系统监控就能发现问题,比如,1)车要经过的点位被其他车占用,因而暂时无法移动;2)车正在等待料箱到库口的信号,因而不动。

1080

5.1.3 如何查看 PLC 读写结果?

  • 通过配置菜单功能,把 PLC 读写记录放到菜单。

  • 点击 PLC 读写记录菜单,打开 PLC 读写记录页面,可以看到 Modbus 和 S7 两种设备的读写记录。规则是当新一次读取的值与上一次不同时,M4 会产生一条变更记录。如果连续读写值相同,不会连续记录。

1080

5.1.4 PLC 设备面板如何使用?

  • 在 M4 中更直观的监控设备状态,对设备进行功能控制。

  • 可以添加一个或多个设备面板,每个监控一个设备。

  • 界面自动刷新(1s),也可以强制手工筛选。

1080

  • 每个面板可以添加多个状态监控(字段)。可以配置哪些监控设备变量(如 Modbus 地址)。

  • 字段支持开关、选项等显示模式。例如将 0、1 值转换为关、开两个图标。将门状态数字转换为文本,理解更直观。

1080

1080

  • 还可以通过脚本,将一组复杂的值转换为最终的形式。例如有 5 个 Modbus 地址,每个表示一个字母,合起来表示一个栈板号。通过脚本将 5 个数字转换为长度为 5 的字符串。通过脚本还可以实现大小端转换显示,四字节、八字节、浮点数等显示。

let str = ""
for (const code of values) {
    str += String.fromCharCode(code)
}
return str
  • 可以自定义多个按钮,控制设备。例如,向一个或多个地址写指定值,控制电梯是否启用。可以配置按钮样式、是否需要确认后执行。

1080

5.1.5 如何导入导出数据库?

  • 桌面端运维中心-数据库组内,显示导出数据库、导入数据库功能按钮。

  • 点击“导出数据库”,导出数据库弹窗上点击“开始”按钮,导出运行结束后点击“下载”按钮即成功将数据库导出。

1080
1080
1080
  • 点击“导入数据库”,弹出导入数据库弹窗,点击“开始”按钮,选择对应要入库的数据库,导入运行完成后显示数据库导入成功。导入数据库时会默认勾选:删除已有数据,可以自定义勾掉。

1080
1080

5.1.6 如何清理历史数据?

日志类业务对象经常需要清理历史数据,现在可以在业务对象-基础中设置数据保留天数,然后在运维中清除“保留天数”之外的历史数据。以机器人任务日志为例操作如下:

  • 在业务对象-基础中找到数据清理,勾选启用,填写数据保留天数 30,然后点击保存。

  • 在运维中心-数据库找到立即清理历史数据,系统弹出危险操作警告,点击确定,30 天之外的机器人任务日志将被清理。

1080
1080

5.1.7 如何通过数据字典查看业务对象的字段信息?

  • 通过配置菜单功能,把数据字典放到菜单。

  • 点击数据字典菜单,打开数据字典页面。

  • 通过下拉框选择要查看的业务对象名称,界面自动显示该业务对象的所有字段信息。

1080

5.2 服务器文件管理

5.2.1 M4 有哪些文件管理功能?

  • 支持查看、删除、上传、下载、压缩、解压服务器中的文件。实施人员可以通过此菜单下载日志,上传新版本的服务等。

1080

5.3 数据库

5.3.1 推荐使用的数据库有哪些?

  • 自 V4.12.1 开始,M4 数据库首推使用 MySQL,其次内置数据库,其次 MongoDB。

5.3.2 推荐使用的数据库有哪些?怎么配?

  • MySQL 常见配置

{
  "db": {
    "type": "MySQL",
    "host": "127.0.0.1",
    "username": "root",
    "password": "root_123",
    "dbName": "m4"
  }
}
  • 内建数据库配置(什么都不配,默认就是内建数据)

{
  "db": {
  }
}
  • MongoDB 常见配置

{
  "db": {
    "type": "MongoDB",
    "url": "mongodb://localhost/m4",
    "dbName": "m4"
  }
}

5.3.3 是否支持数据库备份?

  • 支持自动备份数据,在系统配置-数据管理页面可以具体配置。

    • 可以配置是否启用、备份存放位置(备份文件夹)、最多保持多少天的备份。

    • 可以通过 Cron 表达式配置备份时机。默认每天凌晨 2 点备份。通过 Cron 表达式还可以实现一天多次备份、三天备份一次、一周备份一次等高级操作。

1080
  • 备份文件默认放在项目目录 backup 目录下。

  • 在运维中心页面的数据库分组,可以看到数据库自动备份记录,支持还原数据。

1080

六、网关介绍

6.1 网关配置

6.1.1 如何启用网关配置?

  • 点击【网关配置】菜单,打开网关配置页面,勾选【启用网关】。

1080
1080

6.1.2 如何配置本地机器人?

  • 点击【添加】,填写实际机器人名称、选择厂商和机器人 IP。

1080

6.1.3 如何配置 HTTP 服务器?

  • 多协议网关默认对外提供 HTTP 服务,用于配置,及通过 HTTP 下发机器人指令。

  • 主要配置是端口、用户 ID、用户秘钥。

1080

6.1.4 如何配置 WebSocket 服务器配置?

  • 多协议网关还可以作为 WebSocket 服务器对外提供服务。调用者可以作为 WebSocket 客户端给服务器发消息。 默认不启用。

  • 主要配置是端口、用户 ID、用户秘钥。

1080

6.1.5 如何配置 WebSocket 客户端?

  • 如果机器人位于内网,服务位于外网。外网无法直接向内网发起连接。需要位于内网的 GW 主动向服务器发起连接,此时用 WebSocket 客户端比较好。

  • URL 是服务器的 WebSocket 的 URL。

1080

6.1.6 如何配置上报&申领任务模式?

1080

6.2 发送 RBK 指令

6.2.1 如何发送 RBK 指令?

{
  "reqId": "1",
  "robotId": "CDD14",
  "rbkApiNo": 1100
}
  • reqId 是请求 ID,由调用方决定。robotId 是机器人名称。rbkApiNo 是 RBK 的 API 编号。

  • 有的请求需要传请求参数,有两种传法。一种是通过 reqStr 字段传。里面是文本、序列化的 JSON 等。

{
    "reqId": "1",
    "robotId": "CDD14",
    "rbkApiNo": 1100,
    "reqStr": "{}"
}
  • 另一种方法是通过 reqObj字段传。里面是 JSON 对象。

{
    "reqId": "1",
    "robotId": "CDD14",
    "rbkApiNo": 1100,
    "reqObj": {
      "filter": 10,
      "location": "XXX"
    }
}

6.3 简单运单

6.3.1 什么是简单运单?

通过 RBK 3051 接口可以给机器人发送命令,让它自主规划路径移动到某个站点,执行动作。 但由于 3051 接口一次只能发送一个命令,无法实现“到 A 点取货、到 B 点卸货”多个移动步骤。 通过简单运单可以实现。

注意:对一个机器人,尽量在其完成一个运单后再发下一个运单。但在机器人正在执行一个运单时下发另一个运单,会排队执行。

6.3.2 如何发送简单运单?

发送 POST 请求到: api/simple-transport-order。

注意需要身份验证。

请求正文示例:

{
  "id": "20230101-0001",
  "robotName": "AMB-03",
  "moves":[
    {
      "task_id":"A1",
      "source_id": "SELF_POSITION",
      "id": "AP1",
      "operation": "Load"
    },
    {
      "task_id":"A2",
      "source_id": "SELF_POSITION",
      "id": "AP26",
      "operation": "Unload"
    }
  ]
}

其中,id是单号,robotName 是机器人名,moves 是移动步骤。moves 数组的每个元素是 3051 接口的命令,参考:https://support.seer-group.com/d/1674676713470087169.html

6.3.3 如何查询运单状态?

发送 GET 请求到 /api/simple-transport-order/<id>。其中 id 是单号。

响应:

{
    "found": true,
    "order": {
        "id": "20230101-0001",
        "robotName": "AMB-03",
        "createdOn": 1695194165073,
        "status": "Done",
        "moves": [
            {
                "task_id": "A1",
                "source_id": "SELF_POSITION",
                "id": "AP1",
                "operation": "Load"
            },
            {
                "task_id": "A2",
                "source_id": "SELF_POSITION",
                "id": "AP26",
                "operation": "Unload"
            }
        ],
        "currentMove": 1,
        "doneOn": 1695194191518,
        "errorMsg": null
    }
}
  • 如果运单找不到,found为 false。order是运单详情。 currentMove是当前正在执行的步骤(0 based)。

  • status是运单状态:

    • Created:已创建

    • Done:已完成

    • Failed:失败

    • Cancelled:取消 errorMsg是失败原因。

6.3.4 如何取消运单?

发送 POST 请求到 /api/simple-transport-order/cancel/<id>。其中 id 是单号。

响应 200。

6.3.5 错误运单如何重试?

发送 POST 请求到 /api/simple-transport-order/retry/<id>。其中 id是单号。

响应 200。

6.4 网关仿真

6.4.1 如何创建网关仿真?

  • 在网关配置页面,本地机器人设置中,填写必填项目,勾选 mock。运维中心页面,开发分组中会出现仿真机器人入口。

1080
1080
  • 在仿真机器人页面,可以设置机器人的出生点。

1080
  • 在地图界面,可以看到仿真机器人在出生点。

1080
  • 开发同学请注意:目前,仿真机器人支持 3051、3066、1100 等指令。可以执行目前所有的光通讯运单。对于 3051,等待 N 秒后,机器人瞬移到目标点。对于 3066,机器人会逐个点走,间隔 1 秒。上述仿真,测流程够,测其他不行。

七、仓储业务

7.1 出库

7.1.1 如何配置出库需分拣单?

  • 以“成品出库”为例:成品出库,需要进行分拣。

  • 先从标准出库单、分拣单,复制出成品出库单、分拣单。

    • 点击【业务对象】菜单,点击“出库单”业务对象进入编辑“出库单”页面。点击出库单右上角“复制”按钮,即可复制“出库单”。

    • 在复制的弹窗界面:将组:重命名为:“定制”。将标准出库单和出库单单行重新进行编辑为成品出库单和成品出库单行。

    • 修改成品出库单单行字段:只保留“批次”这一个库存特征字段,其他库存特征字段禁用掉。

1080
1080
  • 用以上同样的方式复制标准分拣单到“成品分拣单”。

1080

7.1.2 如何配置出库单的业务逻辑?

  • 点击【系统配置】菜单,点击“仓储业务”进行出库逻辑的配置。

  • 勾选“自动出库处理库存”。提交出库单后(Committed)后,后台任务会自动为此出库单找库存、创建分拣单、容器搬运单。

  • 出库处理时间间隔(毫秒)设置:5000。即后台任务每 5 秒运行一次。

  • 点击分单据配置“+”,展开分单据配置页面。

    • 出库单业务对象下拉选择:成品出库单;分拣单业务对象下拉选择:成品分拣单。

    • 库存筛选单行匹配字段下拉选择:物料、批次号;“库存筛选单行匹配字段“指的是,仅当出库单行与库存明细这些字段匹配,才算找到库存。物料是必填的。注意,出库单行批次号如果非必填,则只有填了才会参与匹配,如果不填,就是任意批次。

    • 容器运出猎鹰任务下拉选择:成品出库搬运;容器运回猎鹰任务:成品分拣回库搬运。默认会找库存特征匹配的未锁定的所有库存,如果有额外的筛选要求,可以通过脚本定制,填写”找库存脚本函数“。

1080

7.1.3 如何配置运输和猎鹰任务?

M4 标准货物进出将通过”容器搬运单“配合“猎鹰任务”实现。

  • 容器搬运单是标准的。每个容器搬运单由一个机器人、搬运一个容器、从单个起点到单个终点。容器搬运单创建后,可以通过猎鹰任务或脚本执行实际搬运动作。

  • 出库找到库存(容器)后,会创建出库的“容器搬运单”。分拣提交后,会创建回库的”容器搬运单“。并且,根据配置,会通过猎鹰任务执行此容器搬运单。

1080
1080
  • 下面是执行出库的容器搬运单的猎鹰任务。省略了调用机器人的过程。其他过程主要是:找空的分拣位、绑定和解绑。例如,对于出库的容器搬运单,开始时容器和起点是已知的,随着猎鹰任务的执行,获取到了终点库位、机器人,可以调用组件,在猎鹰任务里更新”容器搬运单“的终点、机器人、已取货、已卸货、运单完成。

1080
1080

7.1.4 出库时需准备的数据?

  • 点击【库存明细】菜单,打开库存明细页面。

  • 新建保存一条存储中的库存明细:只使用一个库存特征字段:批次。

  • 手工修改库位、容器状态、与库存明细一致。

1080
1080
1080

7.1.5 出库单的业务流转走向?

  • 点击【成品出库】菜单,展示成品出库页面。

  • 新建一条出库单:添加行:物料名称、批次号、出库数量。

  • 点击“提交”按钮。出库单创建成功。自动找库存明细当中的库存。

1080
1080
  • 找到库存后,会自动创建“分拣单”。

1080
  • 找到库存后,同时会自动创建“容器搬运单”。同时,关联的猎鹰任务“成品出库搬运”执行完成,最终“容器搬运单”状态为:“完成”。

1080
1080
  • 点击“成品分拣单”菜单,找到“等待分拣”状态的分拣单。 在分拣单编辑界面点击“完成”按钮。完成后会立即修改库存。生成回库的容器搬运单,从分拣位回存储位。

1080
1080
1080
1080
  • 最终查看库存明细,数量减少,解锁。

1080

7.1.6 如何配置整托出库单不分拣?

以包材出库为例:包材整托出库不分拣。

  • 整托出库,不分拣。例如,出库单 A 物料需求出 10 个,找到一个托盘,托盘上有 20 个,则实际出库数量是 20。

  • 只有出库单,没有分拣单。可能需要按需创建下架单。

  • 整托出库,在处理处理单找到库存时,立即扣减库存。不等运输出库、下架。

  • 系统配置,勾选”整托出,不分拣“。 不需要”分拣单业务对象“和”容器运回猎鹰任务“。

1080
  • 包材整托出库人工放行:

    • 包材出库,还勾选了”人工放行“。提交出库单,库存分配成功,找到容器后,可以看到,出库搬运未实际反正,因为生成的容器搬运单处于”未提交“状态。

    • 还有一个附加需求是:出库终点库位需要人工选定,而不是系统自动找。结合此需求,筛选出待搬运的运单,编辑,修改”终点库位“,状态选”已提交“。保存,即可触发搬运。

1080
1080
1080
1080

7.1.7 出库库存不足时如何处理?

  • 出库时,当库存不足时,支持两种模式:报错、先出部分,有库存了继续出。

    • 默认是“报错”,即库存不足时,取消本次库存分配,等下次再尝试,指导目前库存满足此出库单所有需求。

    • 在系统配置中还可选择:“先出部分,有库存了继续出”。有多少先出多少,生成出库搬运任务、分拣单等。下次再继续尝试不足的库存。

1080

7.1.8 如何配置拉取外部系统数据示例?

以“采购退库单”为例,展示从外部系统拉取数据操作。

  • 采购退库单,新建后,不手填单行。而是先录入采购订单号,然后点击“拉取单行”按钮。会调用定制脚本,从外部系统中拉取数据,进行处理后,转换为出库单行,返回给界面。

1080
1080
1080

7.2 基础数据

7.2.1 库位

  • 库位的位置属性

    • 所属库区:仓库一般会根据功能将库位划分成库口、存储区、分拣区等类型。从位置上说,同类型的库位会集中在一起。

    • 所在巷道:巷道指机器人或人在仓库内行驶的通道,一个巷道对应左右两列库位。

  • 库位的业务属性

    • 有货:库位上是否放托盘,如果放了托盘则勾选“有货”。

    • 锁定:库位是否被“占”,如果库位被一个任务锁定则不能用于其他任务。

    • 库位上容器:库位上的容器号。

1080

7.2.2 容器

  • 有货:容器内有货物。

  • 锁定:容器是否被“占”,如果容器被一个任务锁定则不能用于其他任务。

1080

7.3 直接出库

7.3.1 以 M4Demo 项目为例展示下直接出库如何操作?

  • 目前支持从四个地方(库存明细列表界面、库位列表界面、容器列表界面、库位一览)处,直接创建出库单出库

  • 首先,要配置可以从哪里发起直接出库。目前有两个选择:库存明细列表界面、库位列表界面、容器列表界面、库位一览。

  • 其次,需要一个承接的出库单。因为:

    • 有时候需要微调,比如修改出库数量。

    • 直接出库仍然可能需要分拣、运输。

1080
1080
  • 库存明细直接出库操作展示如下:

    • 选择一个或多个库存明细,点击直接出库。

    • 弹出确认对话框,给出摘要信息。有一个选项,是否自动将选中库存明细同库位的库存一并出库,默认是选中的。

    • 提交后,会创建出库单。并自动弹出.

1080
1080
  • 创建的出库单若需要修改则修改,不需要的点击 “提交” 直接提交。提交后会按照出库单的配置,触发运输、分拣等。直接出库分拣完成后库存清掉。

  • 提交时,会检查选中的库存明细是否有出库的条件。比如:如果库存明细已被锁定(说明它被其他出库单出库),会报错提示。

1080
1080
  • 库位列表直接出库:配置后,可以从库位列表或详情界面发起直接出库。即将选中的一个或多个库位上的货出库,如果选中的库位为空,会报错提示。

  • 若满足出库条件,会自动创建一条出库单并弹出,与库存明细出库类似。若需要则点击“编辑”修改,不需要修改则直接提交即可。提交后会按照承接出库单的配置,触发运输、分拣等。直接出库分拣完成后库存清掉。

1080
1080
1080
  • 库位一览界面直接出库:配置后,可以在库位一览界面任意点击有货状态的库位容器点击即可显示弹框,点击:“直接出库”按钮即可发起直接出库,否则,弹框不会显示:“直接出库”按钮。直接出库分拣完成后库存清掉。

1080
1080
1080
1080
  • 容器列表界面直接出库,勾选有库存的容器即可发起直接出库,出库完成该容器内库存全部清掉。

1080
1080
1080

八、系统配置

8.1 基础配置

  • 大多客户希望把自己的企业名称和公司 LOGO 显示在系统中,M4 支持自定义系统名称和系统 LOGO。

  • 配置方法:在桌面端-系统配置-基础配置页面,填写“企业名称”,上传“LOGO图片”,点击“保存”。

1080

8.2 车队管理

8.2.1 如何配置 M4 使用的调度 ?

  • M4 系统支持机器人显示模式:标准和扩展,默认显示为:标准。

  • M4 系统支持同时使用多个调度,支持同时使用仙工、海柔、海康、NDC 等多个品牌的调度。配置了多个调度后,在猎鹰任务、PLC设备配置等页面,可以直接使用配置好的调度的 ID。

  • 配置方法:在桌面端-系统配置页面-“车队管理”页面,点击“+”,填写“调度 ID”和“调度网址”。

    • “调度 ID” 是用户自定义的。

    • “调度网址”需要和现场使用的一致。示例:http://192.168.8.56:8088。

    • 如果不做配置,系统默认使用仙工调度,“调度 ID”是“Main”,调度网址:http://192.168.8.56:8088。

1080

8.2.2 如何在 M4 中 实现光通讯派单?

  • M4 系统支持光通讯派单,在系统配置-车队管理页面勾选“启用”光通讯派单,派单周期可以自定义设置,如:5000 。配置好后即可实现光通讯派单生成“容器搬运单”,默认容器搬运单初始状态为:已提交。

1080

九、单车管理

9.1 单车管理

9.1.1 什么是单车管理?

  • M4 的单车管理主要实现光通讯环境下日常故障的快速查看和处理。比如当机器人出现可恢复性故障,如抓取料箱失败、识别栈板失败。

9.1.2 单车管理怎么操作?

  • 准备工作

    • 将控制器网口引出,经过转换器转换为 Type-C、USB 或网口,露出车体外。

    • 将平板固定在车体外。或者不固定,每次需要时拿到机器人处。固定时可以选择网络和供电二合一转换器。

1080
  • 故障恢复

    • 出现故障时,拿出手机、平板、电脑或者使用固定在车上的平板,打开 GW 网关网页,打开《单车管理》页面。

    • 《单车管理》页面显示机器人当前常用信息、故障。如取放货失败。线下调整好货叉或货物后,在系统中点击“清错”尝试清除错误。如果错误清除则继续,否则继续解决机器人问题,再次清错。

    • 对于简单错误,直接点击故障重试。机器人将重试最后一步失败的动作。一般这样做就够了。

    • 特殊情况下,如果机器人已经偏移最后一次动作点位,可以按照界面提示将机器人推到当前执行的步骤的起始或目标点位,然后进行取放动作。

    • 如果故障确实无法恢复,可以取消运单。

PC 端展示效果

1080

移动端展示效果

125

9.1.3 网管网页支持地图吗?

  • 网关网页也支持地图,显示效果如下:

1080
  • 细节原理

    • 网关配置好本地机器人后。系统会自动在车队管理里创建一个同名机器人。这样就可以利用监控、地图等基础设施了。

    • 这里的运单指 M4 GW 的《简单运单》,是单车运单。不是 RBK 的路径导航任务,或调度运单。

    • 光通讯需要机器人在无网环境下批量执行大量动作。特别对于料箱车等车型,一个运单可能包含几十步。传统恢复方式很困难,最好到车这边解决。

    • 开发测试时,不能像过去一样把 M4 服务器和网关放到一个应用里了,车队里的机器人会冲突。必须起两个进程。

    • 项目包建两个。服务器和 GW 的分开。

1080