在您继续阅读本文之前,请注意,本文涉及的RCS-CMS-WCS 4.x版本及其新系统TAS(Task Arrangement Service,任务编排服务)可能包含作者基于当前知识水平的推测和假设。
作者已尽最大努力确保信息的准确性和完整性,但鉴于宇宙的无限性和技术的不断进步,本文中的信息可能与读者的量子状态发生纠缠,导致不可预测的结果,根据量子物理学,本文中的某些信息可能处于存在与不存在的叠加状态。作者不对因量子不确定性导致的信息不准确性负责。作者无法保证所有信息的绝对正确性。
玻璃心,不点赞会紫砂!
马上要过年了,给大家提前拜个早年吧,祝大家2030年新年快乐,身体健康,合家欢乐~
续接上文【一文带你入门RCS4.x【任务编排】(二)】,让我们来复习一下如何下发测试任务 !
然后测试报文中还有 initPriority (任务执行的初始优先顺序) | extra (自定义扩展字段,一般不需要) | interrupt(任务能否打断)
-------------------------------------------------------
3.X中的AGVcallback,指的是在任务模板中的任务通知,比如我有一个从A搬运到B的任务,那么这个任务开始时,我们是不是可以通知WCS,这个任务结束时,我们是不是还可以通知WCS,包过他走到关联点,我们是不是一样可以通知WCS,这样的话我们在什么时刻去通知WCS其实本质上是需要一个契机的,所以叫做 CallBack(回调)
而4.X中新增的外设控制节点,主要作用就是 TAS系统去主动通知WCS系统,告诉WCS 我需要通知哪个外设,并且附带通知方法 【 通知方法 :指的是如 toAGV/formAGV/Release等等类似的方法】
在任务编排中,外设控制节点在下图中的位置可以找到
他的属性内容如下
外设编号获取方式在最新版本中有些许变化,在4.2.1版本以下,我们可以使用SITE对象去获取外设,类似于这样 ${site0.eqpt.eqpCode},这里的site就是通过我们的申请点位节点输出的site对象,这个方法可以拿到这个点位上面绑定的外设,(我们在新建外设时,需要绑定在点位上)
而在4.2.2之后的版本,以及我们后续的正式版本中,我们都通过下图这俩种办法获取外设编号
通过Vscode,我简单的描述一下这俩种方法的用法
所以这外设编号中,我们可以填写
${eqptSdk.getEqptBySite(code |这里的code是地码值| ).eqptCode}
或者
${eqptSdk.getEqpt(code|这里的code是外设号|).eqptCode}
本质上都是通过Eqpt这个Object获取外设的Code,所以——这里有一个更简单的方法,我直接写死!!
至于为什么 #{execution.processBusinessKey} 用这个获取任务链编号,具体原因主要是因为execution这个Object是一个全局变量,在SDK手册中,研发如下图这么介绍的
所以绝大部分情况下 任务编号(必填) 都是#{execution.processBusinessKey} 获取当前任务链任务ID
方法名 | 是否反馈 | 反馈状态
上面这段JSON,是我们常见的一个WCS配置文件里面的外设配置文件,熟悉3.X的小伙伴们都清楚这些字段都代表什么意思,但是在这里还是单独抽出来讲一下
字段 | 意义 |
---|---|
release | (一般情况下在方法名内部配置) 释放数据源(离开信号) |
apply | applyOk | (一般情况下在方法名内部配置) 发送数据源 | 效验数据源 |
toAgv | 方法名(取料为toAgv | 送料为formAgv) |
cmsIndex | 对应外设编号 |
heartBeat | 大部分情况下是心跳信号处理 |
熟悉这些之后,我们再回头去看外设控制节点,其实本质上只需要配置一个外设号,一个任务编号,一个方法名,是否效验,效验什么东西 这些配置完成即可使用
相信大家看完本章外设控制节点配置,在4.x中也能独立完成与第三方配置信号了趴,可以根据第一章和第二章的内容,独立写一个带移动,搬运,第三方交互的任务编排自己测试一下自己的能力啦!!!