设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10171|回复: 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) Y7 J- h  o: v' F- I*/; ?! O3 m& `; d& R3 Z& i
is
+ Q6 H- }; S* H6 [7 Q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: i7 n& c4 h& `# b% p: E1 fdo
( ^, w6 f! ?; n2 U9 j        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 U7 ?8 \( p2 `        if current = @.Destination -- else return+ W3 N, }9 E' @" W& A( ]& o  G/ v, f
        then
' q+ g8 H; c% q- V% l5 `. |                @.Destination := void;+ ?# W( n' r1 M: z& O- O" \$ D
                if @.occupied then
; }. U2 Q- E6 Z( G) u( l' T. f7 s                        part := @.cont;
& p$ l9 D2 t  g" W3 N                        @.transpOrder := void;
  _6 y& |- X" R6 B8 |$ x. X+ M/ }5 l                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  J0 d) R& Y' K# @9 b' @" E1 x
                                @,root.eventcontroller.simTime);
1 D6 {) z$ R! l" z" d, `                        @.HasOrder := false;
+ |. W6 W& _! K; `- Y1 A6 y                        @.DrivingHome := true;) R" K* g5 ?3 ?3 l$ y/ ~- x
                        rgManager.tryToStartTransOrder;
( F; \' v6 _3 T9 q6 F# m0 D  _                        if @.Destination = void
0 S3 \+ ~% R/ Z" B2 D8 V                        then -- no transport order for vehicle @
6 S/ }3 b  I, c0 Y" o                                @.Destination :=
1 E0 t& r+ ^2 `4 `7 f" T. L& v                                rgManager.nearestFreeStation(@,track.~);
) l/ g$ P; y" m8 d" j7 E                                newDirection(@);   2 }8 w* q) X; z+ ^9 v
                                if @.Destination /= void then4 K& }1 T/ c) Z- l# z* j. ]
                                        @.Destination.NumReservation :=
- P! w  ^$ T. b2 c8 f" W# b                                        @.Destination.NumReservation + 1;& U2 N4 F1 a$ T! x
                                end;
1 _$ H! @4 f3 G6 T& h                                @.CurrIcon := "drivingHome";4 m. {3 R8 q$ S4 d7 v
                                @.DrivingHome := true;$ l$ ~8 e6 p  W) W% X. y8 _3 x
                        end;' T5 }) [+ D4 ?' p7 d( `
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- l1 B, N/ w0 K$ Q) q, C                        part := @.transpOrder;
  J+ r$ b- ?& m6 x2 Q                        part.move(@);-- load part
2 F# m, N+ z, y& C0 q2 L                        @.CurrIcon := "load";
* W4 }0 Z5 u' c# P- X  E                        GlobalDistObj := part.globDestination;
+ L* s2 S+ l8 |$ f1 \; y2 _                        assignLObj := rgmanager.rgAssignL;
5 l2 D% m3 W$ X6 ]2 a9 k6 J) X% u+ s                        row := assignLObj.getRowNo(GlobalDistObj);6 ?) b! ~8 J! d- z
                        if Row = -1 then -- since 70
( j2 P4 _& l, Z                                if lan=1 then8 z; `# E+ ?+ l6 j4 C
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ z2 {" p9 ^$ h! H& q& S" f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));# b; ?' B- e" {* B- O# b2 ^
                                else
) x) E' s" J- r+ q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' }' X* n5 k* j& n7 L: @
                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 z) v6 n' h% f$ \6 B8 i                                end;
7 q4 |: j1 b) H0 j2 k# S1 a                        else
6 v$ B( V. u' }" [                                @.Destination := assignLObj[1,row];
9 P8 E" \; l0 i5 r( [/ X! _0 `# }                        end;                       
& S. c) Z7 t% A* g. D                        newDirection(@);$ w4 u# K4 \2 P# D' N# d! J
                        @.HasOrder := true;
5 j  V+ c$ _" J* n4 ?: G; B0 V                end;# B+ @) I- c& P/ U: \# M
        end;
/ E: K2 M& Q$ K: \end;        -- of the method
/ V+ c- \" k" W" C- i# J( K* r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % r; T4 q- I1 U: i2 R- p5 ]0 z' `$ j

3 n* e6 j- a, @: ~8 w5 F- d这是AGV_putin中arrive的method。
5 ^5 _; {" H2 M  K0 {' E! H
% E, B- D$ C& R( Y2 l+ u/ ]" z当到达物料速度越高时,这个报警更多,
& T  |) z0 @1 k0 T可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% f* v+ `6 {/ l0 _" g
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 q; r% H1 T1 L# p* o5 X+ J2 H
: x) N! X7 _8 v9 U8 n; ^3 {另外一个小建议,就是move,所有的move都可以这样9 K! q5 s! \/ a' s
if not move() then debug end+ ~8 d' I$ [2 h% c7 N2 e
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 S& U! H, N$ z
plant simulation中的free libraries有AGV模板,8 q! M$ \" T2 i$ \9 {  b$ Y- ~
里面也有案例。# `, t) |* s4 ?
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# m5 a: J, j  ~7 u0 C5 F5 O/ o# a

% e4 ]: K  z4 d5 r. J1 d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 Y6 X/ ?% t, }% I7 ]5 F

; g4 S3 n* H2 E# R那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, ~0 {7 r3 Y7 e/ F- H9 \这是AGV_putin中arrive的method。& d8 {) r/ g! f, F. P

! R7 z2 R- [# E# s当到达物料速度越高时,这个报警更多,
. M) d" h8 L, F4 j- l
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-18 02:08 , Processed in 0.015638 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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