设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6394|回复: 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'% Z; w& }2 x5 E! K! r. [5 N$ i
*/
  w' E- o" f+ z+ J6 ^is
, R# }# A; |+ U( q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: l  {% G4 O! Y6 E% Kdo
& U! K& g. x% j        Lan := rootfolder.Internal.Tools.AOLlanguage;1 L- f" l' ]/ W8 u  t# ^
        if current = @.Destination -- else return
$ l9 `+ s1 c0 _( @3 X& {        then
! h( a% J; C# E* T% q                @.Destination := void;
9 }  N$ H) D- D/ t                if @.occupied then
- m$ \( |' [9 z; b2 P7 h                        part := @.cont;
3 G1 K. `+ H" k: U                        @.transpOrder := void;
- \& a( c# k" U8 l; n& }' \* U: M3 m                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; R4 X  e3 ^: B& j) \, r2 ]
                                @,root.eventcontroller.simTime);+ _: Q' K) o* r
                        @.HasOrder := false;
/ v* Y5 k# v+ Q- H                        @.DrivingHome := true;
8 P! w- c$ S9 s) b                        rgManager.tryToStartTransOrder;
6 |, g, F: ~( W$ [) j                        if @.Destination = void" A; S& Z/ k# `4 n7 @7 L
                        then -- no transport order for vehicle @
# Z" }2 W2 h6 [' x                                @.Destination :=
, x- |$ K# d: l* h: B                                rgManager.nearestFreeStation(@,track.~);2 n- T7 I+ I5 d( s! u
                                newDirection(@);   8 U( w/ k0 d4 o
                                if @.Destination /= void then
+ {  ~8 Q: E+ s. x( l                                        @.Destination.NumReservation :=
3 r3 C, e" T+ W- [! g# ~, Q                                        @.Destination.NumReservation + 1;0 ~( X" d  W) E0 C
                                end;& S6 Z- {% j* V. q; Q" C. I
                                @.CurrIcon := "drivingHome";' Z! T! N2 b' h/ h. Q
                                @.DrivingHome := true;: |* P; Q0 b4 ^4 O) W/ r
                        end;+ P2 D" a& I2 v% V4 K
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 N; {0 r. B7 ~
                        part := @.transpOrder;1 l" y: w6 \" q* ^" b
                        part.move(@);-- load part
6 j, D9 D/ Z4 ~. a                        @.CurrIcon := "load";
8 U, B7 _) o. H' a1 Q                        GlobalDistObj := part.globDestination;
. I2 V8 W% m# p+ n& x                        assignLObj := rgmanager.rgAssignL;# P0 d: \- e$ r. Q" ?6 q- q
                        row := assignLObj.getRowNo(GlobalDistObj);
' n" w9 T2 k2 M7 V                        if Row = -1 then -- since 70
$ Y* i1 s4 E8 {, U                                if lan=1 then
0 h# E' V; @: R" X+ h' e                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 ~/ b& C0 a% m+ x" M8 Z                                                to_str("in der Andockstation: \"",?.~.name,"\""));; D  y4 l9 c1 f; m) c  Q
                                else
' A, ?% }/ z) W( V                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 N7 D' N3 K9 m3 v/ C7 X+ D2 ]                                                to_str("in docking station: \"",?.~.name,"\""));                               
; Q9 N* ^4 J/ U/ J& U                                end;
3 T/ r( I+ Z2 N' K  V# x. `                        else
! n! M7 p. y5 R3 c3 Z                                @.Destination := assignLObj[1,row];
8 b6 y# n( i1 h% H' N  q                        end;                        9 A/ Q+ T; p# ], U4 B/ T/ o
                        newDirection(@);
; @5 e, m! ]3 s4 c                        @.HasOrder := true;
8 m5 ?" f$ w: R; O3 h  ^                end;
8 L, }9 c: `) C' r4 R        end;" S3 n& R$ |1 J! Q& X; y" N2 T, M
end;        -- of the method& N  j; K6 f2 S; _+ i6 b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# x5 P: b' V4 S9 a9 a  D* m( G# K
这是AGV_putin中arrive的method。, i) d+ X" a* ~; Q5 v
% n1 \2 u% ?( P2 b
当到达物料速度越高时,这个报警更多,0 ~9 V- A% z3 {; w. r9 k- ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% h$ D5 X: W6 }% {6 |程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& ]! I2 k# t: q! D+ T! y: A% ?  a$ \
另外一个小建议,就是move,所有的move都可以这样
4 e2 L0 p- F+ iif not move() then debug end
! O$ p3 _7 A7 R' q; l' ^& R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 V8 o% p+ f$ L, z6 V6 a
plant simulation中的free libraries有AGV模板,
) _( d5 S0 @7 ~" i: K里面也有案例。
4 L8 X  G1 J8 L$ ?, w* w+ |; \% [2 {我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ S, w! c" t& T
2 p) Z8 L* q! F5 f1 t, y/ O+ q1 F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ U% F  w/ [( y! T& l5 x+ M2 v8 J, R. h8 T1 K; z/ b1 s# y
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! T# O4 x& ?" y! P
这是AGV_putin中arrive的method。/ k9 r- V" z  F' r  Q

# S. r1 I$ k6 z. T9 A2 K0 K/ F当到达物料速度越高时,这个报警更多,
  F7 `( Q, j+ q. e3 ?# d7 I# w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-4 04:32 , Processed in 0.174728 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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