设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9015|回复: 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': E9 x1 s& G% e5 y* q2 P
*/, C! h3 v& `) D9 e0 R' `
is
! Y' f" \  ]: @) ]& X2 ?$ C8 R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 N$ d' {2 \0 m  E
do" W2 |# G9 H4 E; o  M1 \4 `& i# F
        Lan := rootfolder.Internal.Tools.AOLlanguage;
! _% k5 v, x" Y1 J3 b        if current = @.Destination -- else return7 I2 F7 [) ^2 o4 j. w, `! _
        then
' o9 N/ U  ^+ I1 Y, u7 A3 |                @.Destination := void;
# Y" F) p! ?9 P# C5 }* C                if @.occupied then4 q8 v8 O, N8 c6 {
                        part := @.cont;3 }& \  v. ^) Y& _% g
                        @.transpOrder := void;
# ?' K5 X: k, K3 K; D3 K                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 _& O9 I' \5 c$ G5 |+ ]                                @,root.eventcontroller.simTime);8 _" ~. X/ H, S) U0 K2 B
                        @.HasOrder := false;
6 F' p& g# _8 V! H  B0 l/ N& c                        @.DrivingHome := true;7 x' k) ^# L" r$ ?
                        rgManager.tryToStartTransOrder;
- K" o, e$ H0 {% m/ g$ j. z                        if @.Destination = void
4 r" ?; P% C$ W                        then -- no transport order for vehicle @
* D" w$ J& ~) ?1 ?) a( f4 h/ H                                @.Destination :=
1 }/ J' K% j2 k( T                                rgManager.nearestFreeStation(@,track.~);  T' o. ?( V7 O; t' h
                                newDirection(@);   * N& S. E  v% }4 H" {, `, p( H
                                if @.Destination /= void then4 m; r& L9 N9 V! a" N) j
                                        @.Destination.NumReservation :=1 Z8 o+ f/ Q6 V
                                        @.Destination.NumReservation + 1;
0 d5 h- Q2 i' T  }6 D6 O% W# I                                end;
1 p* r; Q. g5 x  I: |% ]                                @.CurrIcon := "drivingHome";4 n3 e+ O9 Q* G- H: x
                                @.DrivingHome := true;! v5 v2 e( j" _, f- Y8 F8 a
                        end;
; H# G0 P6 s6 V4 t" [+ f3 I3 L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: l9 L' z4 Z9 d5 X4 b- w                        part := @.transpOrder;. S( C% _0 c( ~' r
                        part.move(@);-- load part4 w8 {) T2 @* M1 g$ d: b
                        @.CurrIcon := "load";
. L% M. {- a& }3 B                        GlobalDistObj := part.globDestination;
# G- J$ x( I) m* z                        assignLObj := rgmanager.rgAssignL;8 s' Y2 R; r$ ~: ]  E
                        row := assignLObj.getRowNo(GlobalDistObj);
9 P2 C# p7 h% e0 u7 B) B7 C4 `' S                        if Row = -1 then -- since 70
8 R0 k% l' j' Y2 @& B& B" F                                if lan=1 then
5 v* [% h! i+ j0 }: r5 T. P# \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ _* e+ t/ j  g1 S3 a! `- u                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 S8 h. X" ?1 ?# f0 d0 t
                                else
' ~; j4 x  k$ i; C                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," q; w, i+ k6 n7 i2 J3 g
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; t( z2 O! H  Y3 n                                end;
" [4 ~: M1 \- P- e5 k+ f; D& k% I                        else
( E$ q7 r& X5 w. g2 f                                @.Destination := assignLObj[1,row];& J0 C/ H% n, N2 Y
                        end;                       
8 i' ]$ V! C: |* M- K                        newDirection(@);
1 M+ q5 ]' C+ K" m& ?! g  g1 o                        @.HasOrder := true;) z2 }; P; P  l' J
                end;% H1 r9 k" F  d# Y
        end;
1 r! w9 ~. H) g% h! r. A2 rend;        -- of the method$ i) q$ W; {2 L+ r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   |* n0 E" ^- h* l/ y
, B+ K* Y; G$ {7 G  i
这是AGV_putin中arrive的method。) r) x* o! e" n- v) O" V3 q
! I5 s) U! x& c+ @# u4 S5 r+ O
当到达物料速度越高时,这个报警更多,' i/ g# i' z- y' X- ~
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 s; A  v) k. k. z( D* t程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ ?( C# u; i- J- D6 T* O: i1 k, f. `  n) j$ G8 n  Q0 h
另外一个小建议,就是move,所有的move都可以这样8 H2 X$ X4 i0 K% X; V
if not move() then debug end: C- T, I7 r( v5 I- }1 n0 t& v
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 V! ?' \! O* t. O* B
plant simulation中的free libraries有AGV模板,
1 M' d, r1 ?$ E) W! ^3 ]" b' I里面也有案例。
( ?5 G! z/ |& ^+ f' h我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) M+ e* h$ E. M1 d9 b9 a1 w
1 N  Z! Y' }: u5 N8 X0 ^. z
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # b8 `" E0 c* Y) g' P) E, |  l
3 M; M8 d* l0 k8 H
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' B7 [3 m3 u& @) H( b. ]* N& v' z
这是AGV_putin中arrive的method。4 p6 e8 U/ s% }& u8 }4 [

4 R5 d  c' b- G+ m9 j当到达物料速度越高时,这个报警更多,
9 |+ ?' L+ X' H  e
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-9 04:36 , Processed in 0.018408 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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