全球FlexSim系统仿真中文论坛
标题:
穿梭车模型代码问题,有点粗糙,逻辑还有些问题(V19)
[打印本页]
作者:
17080134968
时间:
2019-10-22 00:53
标题:
穿梭车模型代码问题,有点粗糙,逻辑还有些问题(V19)
本帖最后由 17080134968 于 2019-10-22 00:55 编辑
! y8 g! F/ S& j. e/ h
- e$ Z3 _, @; ?, a, @
穿梭车模型,代码还有些问题,有懂的可以给支支招啊!
: L1 }" |) Q/ v8 R. V/ D! X
1、小车运动轨迹问题,小车与提升机协作的时候,实体怎么引用以获取坐标?
: E2 D. U$ M4 L
2、小车[size=14.3999996185303px]调度问题
" Q5 ]2 C; ]; b$ P) G+ {
[size=14.3999996185303px]
: {! e5 S% k! J4 E
T+ X/ b. C/ }4 T T# U
[size=14.3999996185303px]********************************************
8 C) l; Q6 K, }8 M
/**Custom Code*/
& G, c; ^8 N( R R: {
Object current = param(1);
/ X6 S1 [; Q3 G3 j7 _
Object item = param(2);
( m9 P+ B1 @9 ^# ?' Y' U+ `6 M- o
int port = param(3);
1 e) W% {! j8 M- V
treenode destination = param(4);
7 ~3 w& O# ^1 q1 i; }
double priority = param(5);
. ^# w' w: X1 Q! l. A
int preempt = param(6);
- u+ g# z/ Q3 e0 W6 p4 e7 t9 _1 }% F
# L( h, ]- f, U' P9 E
treenode dispatcher = current.centerObjects[1];
& h* l, Z0 X2 p5 W3 j/ F
treenode lift=Model.find("Elevator1");
- V# K8 ` S' W9 V
2 a1 F! z# B/ F4 A( v7 h
% b# C6 h& `* ?' Z
treenode ts = createcoordinatedtasksequence(dispatcher);
8 q! B7 n/ j) j6 q" W, ^
int opkey = insertallocatetask(ts, dispatcher, 0, 0);
4 J7 Q5 X4 S: Y1 Z2 v, }
int liftkey = insertallocatetask(ts, lift, 0, 0);
# ^+ m& e# d# {4 ^; V
; B, g0 x( f0 {# Y7 b; ?
int oploc=insertproxytask(ts,opkey,TASKTYPE_TRAVEL,liftkey,NULL );//3
) a) ?6 l& }4 t+ x D
int liftloc=insertproxytask(ts,liftkey,TASKTYPE_TRAVEL,opkey,NULL );//3
# H; c x% F, y) C( R
insertsynctask(ts,liftloc);//6
Y/ ?; q. R% a$ V! v: u6 V" }
insertsynctask(ts,oploc);//5
; B1 t/ @# V1 K i# S0 } p
4 o" ?/ ~5 C2 R4 G k
2 {& g& s8 M0 v* C, j D
: A$ c0 }8 j" a# r; N! A, e
int opload=insertproxytask(ts,liftkey,TASKTYPE_LOAD,opkey,liftkey);// 7
0 h) x# M( j3 {4 M, x3 s
insertsynctask(ts,opload);//8
9 A$ `- e# F6 p; q0 l, c) O: n! V
int moveupdes1=insertproxytask(ts,liftkey,TASKTYPE_TRAVELTOLOC,NULL,NULL,xloc(lift),yloc(lift),vectorprojectz(up(item),xloc(item),yloc(item),zloc(item),model()));
: Q; g- i; v0 o- U# g
insertsynctask(ts,moveupdes1);//11
% Z" l" ^8 _& t- X6 M! a" U* U
4 e' K; A+ h, x% U B
0 j; a& v" V6 s
int loadupdes1=insertproxytask(ts,opkey,TASKTYPE_FRLOAD,item,NULL);//18
! b9 b9 G: M" p
insertsynctask(ts,loadupdes1);//11
, C8 h: E O0 h" M) ]
4 T1 f; Z+ O# q4 w( }# K
int moveupdes2=insertproxytask(ts,liftkey,TASKTYPE_TRAVELTOLOC,NULL,NULL,xloc(lift),yloc(lift),item.level-1);
& r0 V8 V: j* P q, G
insertsynctask(ts,moveupdes2);
1 u* q, L5 j7 h# k* Y
5 b! V9 r# J0 |6 K" |
7 S3 ^) {6 N3 h1 f
int opmoveout=insertproxytask(ts,liftkey,TASKTYPE_MOVEOBJECT,opkey,model()); //13
$ M! R4 @" I. }6 L# h, Y
insertsynctask(ts,opmoveout);
, `$ @' ?" @: Y' }
insertdeallocatetask(ts,liftkey);
2 d, y, Y* n; x
insertproxytask(ts,opkey,TASKTYPE_SENDMESSAGE,opkey,item,1,0,0);
( {; P2 s9 h3 M6 C3 |+ H
3 d' S2 B- w) \5 z7 y% z
4 V4 C$ D4 z: K, p; y; B" l
& Q9 O. ]1 J6 d& D- l% w
insertproxytask(ts,opkey,TASKTYPE_TRAVELTOLOC,NULL,NULL,-0.31+0.6*(item.bay)+1.25,0.72,item.level-1);
) E3 o/ Q1 i% L9 X. t
insertproxytask(ts,opkey,TASKTYPE_UNLOAD,item,destination);//20
- d! \4 _8 w" ^3 u! [
3 e$ b. ^3 _9 m0 b" V
: d# A; ?6 K( T0 W( N
k- O, i8 z& ^
insertdeallocatetask(ts,opkey);
}$ U6 m4 L0 j2 f' `( K
& m# X7 ^* r) i
dispatchcoordinatedtasksequence(ts);
* B0 l0 B5 q X9 I$ j6 v/ ~
7 l# ]/ p0 c) x
3 b0 a2 z- L( I1 y U' C9 w
* [- {7 {, f, G' B) e: t6 u
return 0;
j9 w, N8 v8 R9 P# F
" G, i0 F& o& G# _& S. A
0 T- X) `5 Y* T! I3 w
9 G3 d: F8 K( e' \1 V) o. `9 ~& H
作者:
沈瑞祥
时间:
2019-10-24 18:22
我之前做使用的是PF做的,代码做的还是更好封装,就是容易逻辑不清楚,目前来看你的模型穿梭车还有一些问题,一般是坐标出现问题。我晚点帮你再看看
作者:
17080134968
时间:
2019-11-4 17:01
沈瑞祥 发表于 2019-10-24 18:22
8 g( [$ F! T- Y
我之前做使用的是PF做的,代码做的还是更好封装,就是容易逻辑不清楚,目前来看你的模型穿梭车还有一些问题 ...
8 `! U1 U& Q6 K! j0 P& f! x( j6 x# Z
用PF我大概知道怎么搞 了,但是不用PF怎么搞,版主帮我想想招!
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3