设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6183|回复: 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'
+ j/ w) Y& R# p6 L*/
+ X- K7 p  M7 A2 L1 Ris
" q4 H+ i# A& t0 A        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 l& J: V$ q5 w& g4 S2 w8 xdo
; ^; }3 Z9 D7 H        Lan := rootfolder.Internal.Tools.AOLlanguage;
) X/ w4 i" N5 }7 U0 I& C5 L        if current = @.Destination -- else return) _' h" {/ I* I  C3 d
        then9 P/ ?$ [4 U$ E* j% n
                @.Destination := void;7 P, G1 V+ m- F4 I5 f
                if @.occupied then1 n) d  u/ I& u- w" p: O
                        part := @.cont;
; _6 ~0 K* B( H! v                        @.transpOrder := void;
8 i* E- W8 i2 V$ @+ O& r                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; S1 ~9 _) W" t5 G7 v. \
                                @,root.eventcontroller.simTime);
  I1 l& d5 D$ b9 R. k                        @.HasOrder := false;
, I- N3 ]' t/ g8 \# P' w                        @.DrivingHome := true;" n3 z' [8 q! z! l
                        rgManager.tryToStartTransOrder;+ O6 t1 R* W" g1 r6 |( _! h3 W
                        if @.Destination = void: e* B3 o* S) U. Q
                        then -- no transport order for vehicle @
2 J5 F% u( g+ p                                @.Destination :=
/ j, s  S; J1 ^                                rgManager.nearestFreeStation(@,track.~);/ ~: s. d0 E6 [. C
                                newDirection(@);   $ @7 a+ k4 {# r/ z$ t  |1 ]! u# Q
                                if @.Destination /= void then
4 E+ ~  g1 d- N+ f5 v# C$ N                                        @.Destination.NumReservation :=' x1 I! S4 {$ o+ }; n$ M
                                        @.Destination.NumReservation + 1;
5 ?7 e5 g. k' h- b5 o' E                                end;
1 m" c, b- d: y                                @.CurrIcon := "drivingHome";( [" j; o8 W! R; @. g
                                @.DrivingHome := true;
* F9 a: ^9 ?# B& u                        end;
3 }) B& e/ {1 r0 B) N" ?2 K6 ]                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 s5 }9 ^7 j4 {' j3 U8 y& G                        part := @.transpOrder;
; B* X) J$ Y" S7 q4 Q                        part.move(@);-- load part
6 K  h$ P9 r6 g9 P- X! U! E                        @.CurrIcon := "load";
+ O, }( p$ F& {) v$ L& [' d2 K                        GlobalDistObj := part.globDestination;9 j6 O* o/ q0 n9 u" B* |; C
                        assignLObj := rgmanager.rgAssignL;
- \( z; K0 P" ?5 c; o( j                        row := assignLObj.getRowNo(GlobalDistObj);
7 A( b# N9 W# ~* r& h+ N% P2 q5 Q                        if Row = -1 then -- since 70! `; E3 b  h4 Q- ~& \
                                if lan=1 then
- y. r* q1 N/ s1 G4 Q6 H1 L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 n- ]' N3 _& P2 ~8 b' }0 c                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 i. F9 \' \$ c
                                else
! s6 s, e3 L9 [9 A                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& _* S4 Z" D$ p8 c/ ?' w5 o% E& E/ u
                                                to_str("in docking station: \"",?.~.name,"\""));                                & n# P% D8 P$ m- T; Z3 k
                                end;& ?1 ]! B4 t; W! b2 g  Z8 @
                        else8 p6 j6 G; ^: ?/ t+ u+ A5 a. R
                                @.Destination := assignLObj[1,row];
, w& D+ @4 c3 D; r; b' z                        end;                       
4 M7 r# r' I: r/ j$ k                        newDirection(@);
( ]( E! @/ q+ B' w3 @$ W+ V                        @.HasOrder := true;
- b7 b6 h. A' x9 r3 ^' k4 A# p! F                end;. D# k* K+ y2 q$ `4 F
        end;6 V8 {, a: Y) c
end;        -- of the method' ^' U4 i7 w; q5 v. m" K6 X' C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. G- X  U7 g1 a+ N  L% b
  g9 J8 R4 ^: G3 O这是AGV_putin中arrive的method。9 k2 D! K; h7 W; a  q
! o+ p! H4 N0 G2 r6 m7 V
当到达物料速度越高时,这个报警更多,
0 |6 j% P+ P$ r4 h; A+ n可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
/ C- K2 h& J3 N; _6 ~( @$ Y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?5 B' u  X4 {' ]
3 v; [$ j1 K" Q* f5 d" H7 i0 l
另外一个小建议,就是move,所有的move都可以这样0 W4 J7 r! ^% R" Y9 L8 O' c
if not move() then debug end
, P* @- I+ J: Y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 o7 Y: f5 w8 m) @% c
plant simulation中的free libraries有AGV模板,
' t  S0 w9 k: H% w- S里面也有案例。- y' T& x$ [# y/ P4 Q5 P
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& `- \! l. D# V/ D/ [+ x
: t. B$ _  f1 y& {! U& Q, d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) A4 B  }4 P' c/ v4 `+ c8 l- }1 P7 F
- d3 [/ }( ?2 X8 p6 d$ u那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) S- W" Z1 y5 t' M3 [* C这是AGV_putin中arrive的method。
0 v$ z# `+ Z( o) R+ H) m
& M1 e; c) D0 {" D; p当到达物料速度越高时,这个报警更多,

$ h& U- ^& Z+ c$ H, w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-23 12:26 , Processed in 0.025405 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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