设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9756|回复: 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'3 N3 a/ Z9 V9 a& `
*/  v$ T7 F- k8 j8 C! n% q+ \, d; m2 p
is
0 L3 ?; F7 |3 }' p3 b        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ C$ b- ]. `- V7 {7 x& C  m
do
; r# T. W4 `4 `% t        Lan := rootfolder.Internal.Tools.AOLlanguage;/ j0 m/ F4 t0 Z; C7 J) u" d
        if current = @.Destination -- else return) ]1 j! B: q- v$ A1 ]( E
        then& A  A* R- t+ P0 b/ X) u8 {
                @.Destination := void;! J* q9 S: P9 A1 d% ~6 S
                if @.occupied then1 H2 X: Q2 S9 m* @
                        part := @.cont;
, L( L& ]9 I% V4 `4 j" N8 a; N& q9 p                        @.transpOrder := void;
6 p# u$ K2 n5 T6 r, ^/ ^                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 c- ^. e$ g3 K: D$ {, o, U                                @,root.eventcontroller.simTime);# h+ E( k4 f2 q; N: i, @5 y& q& H! F
                        @.HasOrder := false;9 [( J0 ^4 e$ y2 y4 s) U2 U
                        @.DrivingHome := true;
( `! x9 J  G' ]+ c                        rgManager.tryToStartTransOrder;" O) c4 r$ P; e6 g; L) J8 A
                        if @.Destination = void
! A; _8 y1 H. [* A                        then -- no transport order for vehicle @7 P+ s3 k; F/ w( l5 W2 q3 w. ^
                                @.Destination :=& T7 b2 t8 ~' F+ V
                                rgManager.nearestFreeStation(@,track.~);
% F5 @) w( D! d( p0 t                                newDirection(@);   ; u  ]& l& _. V) A
                                if @.Destination /= void then
% R% T# w! D0 L$ `7 Y7 z. J                                        @.Destination.NumReservation :=7 H$ g$ h3 q6 ~# t1 R4 M
                                        @.Destination.NumReservation + 1;- O7 L( o* V3 Z+ |6 [0 Z
                                end;
1 @/ {" ^# k$ E) u) g/ ~                                @.CurrIcon := "drivingHome";
/ ?' H( v6 E- R6 z* ?2 E/ x1 g. S                                @.DrivingHome := true;& ?* E  m2 k& H, U0 ]7 L
                        end;8 L5 R! T( s7 T  X( r/ ~
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ h8 \! Y) p, G+ O/ p4 h
                        part := @.transpOrder;' i$ o. N7 ~- U- x6 H, T
                        part.move(@);-- load part
8 ]0 {3 y# j& e& ?1 n: A                        @.CurrIcon := "load";
8 r: {6 C3 U0 B: L* T, v( \- x                        GlobalDistObj := part.globDestination;1 ^( `9 W* U9 U0 e+ d1 r, n
                        assignLObj := rgmanager.rgAssignL;
3 ]: ~: C& g8 H# D2 |4 V+ ^, f                        row := assignLObj.getRowNo(GlobalDistObj);' y' K$ O- @% L6 @) G
                        if Row = -1 then -- since 70
/ F9 |+ ]7 h) O" f. p* j0 V# [/ z! R- {5 {                                if lan=1 then
. `- c# `. e( v# n8 M                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ i7 z1 R) M' S' ?3 l                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 i3 J9 q1 M0 n; \4 r$ u' u
                                else
0 a" \. L& c/ E1 x( P) e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ H" f6 b2 W+ O4 e$ G0 u3 x+ y; J, K( G                                                to_str("in docking station: \"",?.~.name,"\""));                                ) \0 t5 v* d& T
                                end;% B$ e& ~2 ]8 T0 |1 T- _- w( O# H- Q
                        else) f3 Q2 ^+ V$ n( }% X6 [4 Q+ S
                                @.Destination := assignLObj[1,row];# r$ i1 v  q5 a$ o4 Q* `
                        end;                       
0 }! d- s" p$ p0 x                        newDirection(@);% A( D5 V) p& z. f/ O: z
                        @.HasOrder := true;
$ V$ Y, M# p! C. z) ?                end;$ b! }! p! I! B* l# Q0 i5 J
        end;1 c, m2 A9 O% M  M+ `
end;        -- of the method
5 \- q/ ~8 J/ @/ N& q6 Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ |* H5 `% k0 M* z/ O" D8 }; D( q4 J9 }+ m( ^
这是AGV_putin中arrive的method。4 I1 l: I+ [# S# A5 k

6 C; T, E! @0 [0 `1 \) U当到达物料速度越高时,这个报警更多,
, w/ ]- {9 [, ~& `; w可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 s. ]7 P% E/ d7 u3 W3 L
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 w' w8 |0 Y' T0 h/ ?2 w7 z; O) q( B+ T$ z- b
另外一个小建议,就是move,所有的move都可以这样
5 b1 g, ^, ^+ e) \9 Kif not move() then debug end! l# n7 N' O, D2 q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. m; y: Y5 F  i( v8 e
plant simulation中的free libraries有AGV模板,* V: ^% b) V0 t3 W; d  x! @4 k
里面也有案例。
' s" V8 T6 v5 `+ q' c我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! n6 n# E2 C! B( b* {4 b/ K
9 a* I, `+ a+ u0 p, A" k: y# W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' M: ?" o0 }9 I# @3 F, S5 f
0 H4 d, R; Y+ q- v& w: Q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : [0 C. {7 L0 C) y$ y) @" [  X
这是AGV_putin中arrive的method。( A2 i5 U, ?8 Q2 P% }5 n% D/ N  H
( s, ]2 Q6 R- D& F! R
当到达物料速度越高时,这个报警更多,

  U- D! z5 t& Z7 R7 h  T0 l另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-22 18:04 , Processed in 0.025844 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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