设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7442|回复: 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'
" u% ^/ Y# A( _! }, g' L0 n*/+ O* O/ j# I4 ~1 M; ?2 Z" i
is5 n* }  v( Z) o! {3 s1 s
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' ^; s0 Q2 ?( p# |' K+ i/ }) |# _8 Y
do% V! d8 C/ x2 ]3 d
        Lan := rootfolder.Internal.Tools.AOLlanguage;
. U5 E  o" ^# @4 N/ d. Z        if current = @.Destination -- else return: }$ j8 k1 D* E& p8 j
        then4 h# ]3 v1 C9 c: b" K( z
                @.Destination := void;
- a# P" E3 \4 C# Y* Y8 J! ^                if @.occupied then
9 Q2 e1 V+ X' I8 P' g                        part := @.cont;) M9 x) w2 T+ P: D: Q$ ^% Q
                        @.transpOrder := void;
1 C; y2 ^+ j) P: L" x% M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
3 ^. N! a; A7 k0 F                                @,root.eventcontroller.simTime);" X; R' `0 J4 Y' X
                        @.HasOrder := false;4 u7 N9 h  O8 }; W0 z: X8 S- R3 `
                        @.DrivingHome := true;
% V- ~: L- _. L/ ^% W, q                        rgManager.tryToStartTransOrder;
7 [8 g( ^# E4 o  [$ X0 i" `                        if @.Destination = void' W0 W6 h" L" }; `
                        then -- no transport order for vehicle @1 ^9 d& {# N1 i" a0 d# Z
                                @.Destination :=# K3 h6 E% D4 \" Y0 k
                                rgManager.nearestFreeStation(@,track.~);
% x" K) F) k. T+ ~( V8 c                                newDirection(@);   
4 h9 C$ o: z* r* J                                if @.Destination /= void then+ s5 ]/ S* k! [- w
                                        @.Destination.NumReservation :=
$ Y: ^# t9 m' W* a" Q# p                                        @.Destination.NumReservation + 1;" I, P& x# l; W$ I: z
                                end;0 _/ M2 G: |" J6 S
                                @.CurrIcon := "drivingHome";% z1 S7 c4 m) E& b
                                @.DrivingHome := true;
0 q1 ?! `, ?2 o7 _; k8 X* z) `% o                        end;- ^& L( L" x0 p0 d0 h2 q. z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 U2 u4 h: J" p! h$ @* Z- W1 m
                        part := @.transpOrder;2 X. z. O2 s, i) _1 M% w" `
                        part.move(@);-- load part! q+ z" J; P- m$ _4 @, n, K; D9 f
                        @.CurrIcon := "load";& u& O4 \# Y, C' P& G
                        GlobalDistObj := part.globDestination;
& R7 w: u" k5 Q* P0 j- x                        assignLObj := rgmanager.rgAssignL;/ u9 c" W# ?$ G/ ?( v7 q) p' c4 _
                        row := assignLObj.getRowNo(GlobalDistObj);
9 e, _4 |& a! Z/ F                        if Row = -1 then -- since 70  Q' l& \* k$ W; I/ E3 E
                                if lan=1 then2 l- j# A3 x$ S% j. B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ K  |% u" K; T' _: g                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 H: X3 x; j2 B( l; p
                                else
0 @, r5 i/ C8 U                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) k1 p/ z. w& U% P                                                to_str("in docking station: \"",?.~.name,"\""));                                ' B' y& A( R) _. N9 k4 p
                                end;
0 g4 L* z9 ]6 V                        else
& w9 H, J  ]! S; i, C, h                                @.Destination := assignLObj[1,row];6 g5 d' E' |1 l' V/ `8 C
                        end;                        3 S) A( X& M1 {0 a1 z. D* l& V
                        newDirection(@);! `7 f- y) x" C9 D* z( R
                        @.HasOrder := true;
* o% |0 y& Z5 U8 q2 J                end;" j4 C* k( W! o+ }
        end;
( L6 h+ t! Z' \end;        -- of the method
$ J% r) b# d  h3 w3 J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 S* c% y' l0 `. Y+ `$ i1 ^* b' ]: B$ Z) N$ Y% [( K
这是AGV_putin中arrive的method。
' J( D& ?# V* `* C; V9 _- q+ A! m9 u
+ |. K6 s- _6 g) A& Y. V# ?; U当到达物料速度越高时,这个报警更多,
" }4 e& ?6 T/ @  o4 Q可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  C$ U3 T4 ]8 J: J3 i# w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 a+ p2 t7 C2 @& [0 j  P. i
- D. _. w+ H; |, ]另外一个小建议,就是move,所有的move都可以这样
7 ~/ }( f% f- |/ M4 ~if not move() then debug end4 C+ [5 D. M4 f/ W% l
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& A8 J0 q# Q/ x3 J3 n
plant simulation中的free libraries有AGV模板,
/ X8 F3 F" X. W+ q里面也有案例。9 b& k9 k$ y) ^( f; O
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ N; X! I0 C# M( s

/ o5 i: `4 ~8 ~4 _" `) l2 X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 s4 k# o+ N: x% {, {& A7 P4 b: x
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   }* Z& y# N, M+ Z: ~
这是AGV_putin中arrive的method。
9 S4 T. y* J# B3 x& ^6 |
) U0 U  S2 ^& L9 z当到达物料速度越高时,这个报警更多,

# Y8 V! E/ M) ^' _! f3 x另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-11 16:40 , Processed in 0.056110 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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