flexsim7.14自学笔记

更新时间:2024-01-17 09:14:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1

/**Custom Code*/

treenode item = parnode(1);

treenode current = ownerobject(c);

switch(getlabelnum(item,\)) {case 1:{return 1;break;} case 2:{return 1;break;} case 3:{return 2;break;} case 4:{return 2;break;}};

2

3

4函数学习:

Setitemtype(item,Bernoulli(60,1,2));临时实体引用,设置值 item 的引用

临时实体类型值为:getitemtype(item) Setitemtype(item,Bernoulli(60,1,2));

if(getitemtype(item==2)) setlabelnum(item,”nrofcopies”,duniform(1,1000));

设置标签值,其中nrofcopies为自定义的标签名称,duniform函数返回1到1000之间的整数值,而uniform() 函数可返回小数值。

设置不同类型,不同标签值的加工时间: if(getitemtype(item)==1) return 3; else return 5+(getlabelnum(item,”nrofcopies”)*(5.0/60.0)); 多个“标题”语句:

treenode current=ownerobject(c);

此语句为一个变量声明,声明一个变量为current,类型为树节点。变量值设置为:ownerobject(c).current为总是指向正在为其编辑代码区域的“当前”实体。 treenode item=parnode(1);

此语句为一个树节点变量声明,成为item. 其给定值为 parnode(1)。Item将总是指

向那个特定时间执行代码和触发器相关的那个临时实体。

这些语句创建了可以用于代码区域的可访问变量如current item。如有个指向临时实体的引用,并且此引用名为item.

int port=parval(2);

这里是一个名为port的整数变量声明,在此例中,在离开触发器中,端口是临时实体穿越离开的输出端口号。

这段代码表示如果有两个临时实体进入到了该实体中,那

么就关闭该实体的输出端口。

fmod(num,value1,num,value2):返回value1除以value2的余数。 getinput(obj involved)返回所涉及对象的输入统计数据

依次打开各实体的输出端口

nrip(obj object)返回对象输入端口数目 nrop(obj object)返回对象输出端口数目 nrcp(ob object )返回对象中间端口数目

5任务序列:

createemptytaskequeuece(obj dispatcher,num priority ,num preempting) 此命令在分配任务序列中创建一个新的、空的任务序列表。

dispatcher为操作工,

语句:treenode dispatcher=centerobject(current,2或1等数字(表示端口号));为指定操作工所在的中间端口。如图:

例:outobject(current,port) 指向与之相连的下一实体

current 表示当前实体

执行行进任务的语句为:

Inserttask(ts,TASKTYPE_TRAVEL, outobject(current,port)(目的地),NULL) 执行装载卸载任务的语句:

意义:inserttask(序列名称,装载,临时实体,当前实体,当前输出端口

);

Inserttask( 序列名称,卸载,临时实体,卸载目的地,目的地的输入端口);如下:

延时语句:

卸载完临时实体后,呆在处理器那里处理临时实体。使用操作员:添加utilize任务:

Inserttask(ts,TASKTYPE_UTILIZE,item,outobject(current,1),STATE_UTILIZE);

此时操作员被使用,将一直呆在处理器那里,需要释放操作员。

这样释放:首先将操作员与处理器中间连接,然后

treenode current = ownerobject(c); 树节点 当前

Ownerobject(node thenode) 返回对象节点所包含的节点。

int case_val = getlabelnum(current,\); getlabelnum(obj node,str/num label) 返回标签所存储的数值

阴影部分为实体引用

协同任务序列:

创建协同任务序列的命令框架:

treenode xtrw = createcoordinatedtasksequence(执行器);创建任务 int po1rw = insertallocatetask(xtrw,执行器,0,0);分派任务 int po1rw = insertallocatetask(xtrw,执行器,0,0);

insertproxytask();任务流程

insertsynctask();中断

insertdeallocatetask();取消分派任务

dispatchcoordinatedtasksequence();分配任务

Inserttask(ts, TASKTYPE_TRAVELTOLOC, NULL, NULL, X, Y, Z, 结束速度);

函数:rank(current,getrank(item)-1)

6

yrot(obj object) 返回对象y轴的旋转位置。

6运动学

initkinematics(kin,current);它的第一个参数必须指定一个空节点,通常将这个参数设置为一个标签节点。

参数localcoords控制实体的位置,其值只能为0或1,默认为0(当不写入时),0表示为 参考model坐标,1表示参考实体自身的坐标。

addkinematic(kin,0,15,0,10,0,0,10,0,time(),KINEMATIC_ROTATE);

7

treenode current = ownerobject(c);

treenode source = inobject(current,1);指定相关的实体

for(int i = 1; i<=nrop(source);i++) nrop函数返回该实体的输出端口数目。定义数值i初值为1. { openoutput(outobject(source,i));如果为真则打开相关实体outobject(source,i)的输出端口。 }

closeoutput(current);关闭当前实体的输出端口。

senddelayedmessage(current,30,current);当前实体给当前实体发送延时消息,延时30秒。触发当前实体内的消息触发器内的函数,使之生效。

8,

本文来源:https://www.bwwdw.com/article/9o2o.html

Top