level 1
最近做过相似的模型,可以分享下: 尝试了用两种方法实现
方法一: 设备运作时间分为预置时间和加工时间,加工时间设为10分钟。在处理器的预置结束触发 写操作员的自动命令。
//代码
treenode des=current;
treenode dis=centerobject(current,1);//操作员
treenode ts=createemptytasksequence(dis,0,0);
inserttask(ts,TASKTYPE_TRAVEL,des,NULL);
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,600,STATE_BUSY); //待命10分钟;
inserttask(ts,TASKTYPE_TRAVELTOLOC,NULL,NULL,0,0,0);// 待命结束,移动到指定位置;
dispatchtasksequence(ts);
方法二:
不用预置时间,设置加工时间。在处理器上新增两个标签:processtime(记录加工时间), entrytime(记录货物进入处理器的时间)。
在处理器的进入触发写: setlabelnum(current,"entrytime",time());
在处理器的自定义绘图代码写:
int time1=getlabelnum(current,"entrytime");
int time2=getlabelnum(current,"processtime");
int time3=(time1+time3)–time();
if(time3==600)
{treenode des=current;
treenode dis=centerobject(current,1);//操作员
treenode ts=createemptytasksequence(dis,0,0);
inserttask(ts,TASKTYPE_TRAVEL,des,NULL);
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,600,STATE_BUSY); //待命10分钟;
inserttask(ts,TASKTYPE_TRAVELTOLOC,NULL,NULL,0,0,0);// 待命结束,移动到指定位置;
dispatchtasksequence(ts);}
2016年07月01日 04点07分