设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7812|回复: 9

[求助] 用AGV模板发生了以下错误,请解!

  [复制链接]
发表于 2011-11-5 16:38:28 | 显示全部楼层 |阅读模式
问题在哪里?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2011-11-14 10:37:54 | 显示全部楼层
没有解决,再顶一下。
 楼主| 发表于 2011-11-17 11:03:27 | 显示全部楼层
/* called by:        entrance ctrl of the object 'track'5 O3 t0 H! y  ]) v( r
*/
$ v) B3 v3 z# Y( Q7 g. ^* uis" ?2 }$ N& ?. @/ x- x6 W; A; A8 a4 ?; i
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: \" u- P% D4 a3 B/ B/ U, U& pdo) Q1 B/ A9 `! G0 I; }! {4 m% a
        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 \& K* ?; S' q( H% |- _& s        if current = @.Destination -- else return
  Q* q' c1 [  a7 L9 j: M9 O8 Z        then
7 V8 m: T4 q; C/ p+ J2 h' |                @.Destination := void;
. T& O  N, q9 K) }& C9 F8 T- v                if @.occupied then
4 W/ R) S& @$ u" X3 ?5 r2 _                        part := @.cont;
3 U3 \2 |8 m( I& ]% [$ |2 T                        @.transpOrder := void;) A% v7 {1 o4 C/ Q1 g/ W
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- T9 a9 e( V0 j4 ^8 z
                                @,root.eventcontroller.simTime);9 ]* l; [0 }6 B! j0 e
                        @.HasOrder := false;
# @4 F* @! _8 @5 h$ g2 b: t; I2 O                        @.DrivingHome := true;
5 A4 z$ k) r3 c/ ?+ z0 S5 {0 l                        rgManager.tryToStartTransOrder;
) H3 h1 u, M, |( @' P7 P                        if @.Destination = void& o! ?3 s# K( F% p. C! y
                        then -- no transport order for vehicle @
+ T' Z* O/ o* i                                @.Destination :=/ m, p  t' w: O4 q) s- W7 t7 ~
                                rgManager.nearestFreeStation(@,track.~);
4 b$ s% }0 B; d: e$ @                                newDirection(@);   1 X- a% y2 e- M; Z
                                if @.Destination /= void then
7 _& S# z) R( k' e                                        @.Destination.NumReservation :=4 ?8 U4 r+ u  C* V$ [7 r0 M& ~
                                        @.Destination.NumReservation + 1;
2 l$ Z' }$ a0 h7 ^! K( }6 ?                                end;
5 h/ K7 G+ f$ @! b                                @.CurrIcon := "drivingHome";; v$ }7 P% A! n5 i) d
                                @.DrivingHome := true;" E" Q2 |- B7 q5 D' d
                        end;
0 F3 J/ O8 r) I- ^2 o6 Q1 t                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ n5 Q: M! A, X% n/ b, Z
                        part := @.transpOrder;% _( ^8 H- E# @7 N+ l
                        part.move(@);-- load part
2 d& }/ s- b* z; b                        @.CurrIcon := "load";
5 }' E2 P" C" ~& e& F2 W                        GlobalDistObj := part.globDestination;
: F3 h" q3 ]# s' C* h! m) J6 m3 l                        assignLObj := rgmanager.rgAssignL;( O8 `. J. C% U$ {' J, ]/ z( ^& Z. C
                        row := assignLObj.getRowNo(GlobalDistObj);
  X# w* \# z5 m" }                        if Row = -1 then -- since 70, K2 D* |( Z5 x6 p$ i2 |/ `
                                if lan=1 then
+ o7 s5 Z1 Z* E7 E) f, `                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# @& j$ [7 Y9 M
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ C. C. t2 k( f5 ]                                else
# y, I! ?9 H+ t4 d# ]& g                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# N/ v4 h) G  `0 z* m                                                to_str("in docking station: \"",?.~.name,"\""));                                # P7 a0 y1 ^/ P5 d# u
                                end;
+ v# ~  d( f9 z5 d                        else
) H6 @6 {0 |6 P2 {                                @.Destination := assignLObj[1,row];) J- g; ^' F5 }  e% s5 i( \
                        end;                        ; T; `7 H: n4 }0 W. f- u+ P
                        newDirection(@);( x# Y: Z: G" ~7 N( S' g
                        @.HasOrder := true;: i# D+ R1 ~7 f8 Z5 o% Y- s
                end;
, I0 L9 o2 t; @        end;
% Y, \. w* g2 ^) |( J7 ]+ mend;        -- of the method
/ T6 \: S% u+ _1 `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 ^7 V& |! Q( v* R+ c5 j' i

' H5 F. J5 ?7 L9 p这是AGV_putin中arrive的method。0 e' }& z0 F! |) L6 a; L
/ B3 C) L  W9 i5 H& ?4 K& l! T
当到达物料速度越高时,这个报警更多,
5 e0 k  q. Q+ S: u! Y3 s; Z可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( c; {+ U2 Q7 ^/ b" H3 w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' [# X6 O2 M$ l2 G# u

: z5 Y% [$ G* G5 F另外一个小建议,就是move,所有的move都可以这样
% \- J+ q, c' W4 r& {if not move() then debug end
5 h% L$ ]! e  X! C& M5 B这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# f; F% P' I$ ^% g- wplant simulation中的free libraries有AGV模板,/ b3 f+ C4 o) U# B$ f% m# q! P  P+ _+ R
里面也有案例。$ u% ]: ^- q4 f% S3 S* S
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# s9 P& X" R5 K; A3 D
2 T! w' v5 W( j
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 f* @7 Q8 N0 ?) E2 N  z0 t) }5 c4 x8 J6 V: X
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! F% F) I& B+ O  N( c8 G- f
这是AGV_putin中arrive的method。
6 L; ~6 V* a& Y1 g  p7 y- K/ K4 q. T; b  P* R
当到达物料速度越高时,这个报警更多,
* v2 ?- x- z  l& q8 x
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-4-30 06:41 , Processed in 0.018543 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表