设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7379|回复: 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'7 ~  C# D- c$ r$ q% ~* w8 i
*/
5 M2 P" g/ K, _* g- e. l% d) W, cis( z4 q7 J, }" @2 J4 d  ]% c. q; L+ z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& W- p+ V2 p0 R0 Ido
  F' ]- E0 C  ~        Lan := rootfolder.Internal.Tools.AOLlanguage;
) z/ R; H7 U# B7 d1 m        if current = @.Destination -- else return& R% }( v8 Q$ F- D' e
        then: m5 x8 I  m9 q. [
                @.Destination := void;7 ~7 I' R4 ^% N% o1 E  z/ T
                if @.occupied then  P' `2 T# ^( u: t, M% p" @
                        part := @.cont;
2 ?/ l3 C- F; S7 V% }% m                        @.transpOrder := void;
! d: B" ?8 @$ T; N* ^                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, `5 k: D0 G/ I9 X6 c
                                @,root.eventcontroller.simTime);( l6 R1 S1 u5 b+ U5 u, @1 Y
                        @.HasOrder := false;, d9 {; U4 i; o' ~3 N
                        @.DrivingHome := true;& R9 e, j- Q: B6 k" b& c* W7 u
                        rgManager.tryToStartTransOrder;
) N- u  [+ q5 r9 E" K                        if @.Destination = void
4 `; a  Z. {& Q. w4 _                        then -- no transport order for vehicle @
8 p$ m8 {/ c4 Q) e0 n# z& x                                @.Destination :=
4 h: e' X3 z- L                                rgManager.nearestFreeStation(@,track.~);. o( [: g3 g) l; [! Y  ~6 e1 G8 x( U' \+ ?
                                newDirection(@);   
0 c0 U* A4 P. E* b5 @$ ]+ [                                if @.Destination /= void then4 p3 ]3 {* c( P
                                        @.Destination.NumReservation :=
- ]5 O0 p3 b4 a# v) ]& p3 v( Z                                        @.Destination.NumReservation + 1;& ~) F; g5 U) p$ g8 [& c8 z4 |( m0 I
                                end;
  [8 T& a' u7 P/ b                                @.CurrIcon := "drivingHome";
3 |) W. |& Y& }8 G9 B$ k                                @.DrivingHome := true;
1 `9 a& L4 R& A& c, H+ v* h                        end;
8 z) ]! z  P" N+ L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) |; H  {+ _& l/ Y* T. @
                        part := @.transpOrder;
: |+ B. J1 ^' D; p                        part.move(@);-- load part
- f& k. a5 J+ g  p1 W0 b                        @.CurrIcon := "load";
( T$ o, B* ~- S* H1 ]% h                        GlobalDistObj := part.globDestination;
% S) N, P, c- W% w* n9 `                        assignLObj := rgmanager.rgAssignL;2 X; f! ]" h% r, }
                        row := assignLObj.getRowNo(GlobalDistObj);
9 o% w8 i( D! c( J, g' b                        if Row = -1 then -- since 704 `6 i$ K6 S& }# n1 |
                                if lan=1 then$ T) D5 L% K. ~. j, C  k6 r
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- _9 T6 A+ d, v) `; l" g  b
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& {. n% x! F. K! j) S) e7 v7 f                                else; }9 n8 m' }6 k0 l, R) a+ ?
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 O9 ]5 a5 G4 @. G                                                to_str("in docking station: \"",?.~.name,"\""));                               
! A, {8 y8 L& I# G                                end;
6 D* [7 B5 m# Q                        else5 i5 X" ^0 L* }; Y' T
                                @.Destination := assignLObj[1,row];! G' |8 D3 O; D. g0 r
                        end;                       
8 }6 t6 c+ j) ]                        newDirection(@);3 a! q3 y* h4 [* M7 h7 i
                        @.HasOrder := true;& @0 ~# q$ u0 y& R& m5 o
                end;" w% `0 Z+ G1 p$ R
        end;
0 L4 Y3 S; \! Z; x) v" ?" V. m! oend;        -- of the method
' }% u8 ?5 y! H2 t% N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# ]) w' e  s# v; j9 x1 q: H1 N  P" U9 b
这是AGV_putin中arrive的method。
- l* m# ]+ r7 k3 _7 D  S* l5 S, i: {$ |) U
当到达物料速度越高时,这个报警更多,* ?3 z/ v) A# q9 I" a6 N; e7 D+ P1 H
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 E7 ~2 a/ n3 y8 b程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& h+ @" q' H2 w( ?/ h, j7 }5 U5 c/ A. c
另外一个小建议,就是move,所有的move都可以这样/ j* q3 Q, Q* C% N4 Q
if not move() then debug end
2 G5 R* Y, O/ h7 i; f; p1 Z0 a这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& T6 d+ D2 D+ R0 z# eplant simulation中的free libraries有AGV模板,
1 s2 U. j5 `' x7 B* g里面也有案例。7 T" N5 M$ a9 D) e3 B0 a" @: @; y
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 ]# N+ W1 c* i2 u! h& M1 |* Z! V/ u# v* j" @7 h
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 c, O$ s6 W% N* t% e  a' w9 \% ?+ C  }* G; i( h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " ]; h. h' t8 e' k; I
这是AGV_putin中arrive的method。
5 t5 E) W  \7 _4 z5 N0 \9 J8 t! Q6 e# C) n, M: X
当到达物料速度越高时,这个报警更多,

4 {4 B1 ?2 d! \另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-8 09:46 , Processed in 0.017218 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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