设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7242|回复: 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& a6 @3 q* m. f! M/ c* N8 q% o; H*/7 H4 w9 p, n9 z/ G, U& r6 ~9 L% H0 T. W
is
% f4 n2 \8 q; ~5 y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 P' i  ^$ P, j& Zdo
- S& ]2 @: S/ Z  i0 S8 r( @        Lan := rootfolder.Internal.Tools.AOLlanguage;1 [4 u9 m3 [  x. ]6 f6 j& {
        if current = @.Destination -- else return) c9 j3 n4 o; q' M0 z+ U
        then
5 u" m( b3 k1 L0 E5 z# f                @.Destination := void;4 `4 j( u1 K  f. R7 E0 ~
                if @.occupied then# M! }& [* O* ^; |, Q- D
                        part := @.cont;
8 O7 d* \9 B  m$ x4 I                        @.transpOrder := void;
# i2 P( T1 S4 v" B; q: _; T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 i3 X+ \* ?. d9 i- e$ Q0 L1 S                                @,root.eventcontroller.simTime);; W( a6 s  i: ]8 N0 C
                        @.HasOrder := false;5 b0 L5 r$ t5 s6 ]: A
                        @.DrivingHome := true;
  _3 f% i! u8 \5 _4 q! A' Y3 ~  L                        rgManager.tryToStartTransOrder;/ K* h) }: K  S4 s& t2 {) K
                        if @.Destination = void7 w0 ^4 O' L  }( u) H
                        then -- no transport order for vehicle @* y* P' t' j% b1 P% m: I$ u
                                @.Destination :=9 x9 Z) Z' Z6 \% V
                                rgManager.nearestFreeStation(@,track.~);
; z$ w6 S9 m" \3 i: `$ Y  y: G" }                                newDirection(@);   1 ]( i/ q$ }# J1 K: {& N  A) F! U
                                if @.Destination /= void then
# e9 q+ F. G$ R7 ], r6 V; h                                        @.Destination.NumReservation :=9 g( M: e4 T8 G- R& U4 |: i* l
                                        @.Destination.NumReservation + 1;
- n. w7 C5 Q/ a' U, i/ m                                end;
% V, @/ @6 Y1 O0 [                                @.CurrIcon := "drivingHome";
9 H+ R8 g0 q- _                                @.DrivingHome := true;
2 d9 ?2 T/ D! f5 b6 A/ b. i                        end;, B* @6 S8 K/ Y" s
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% w5 \6 t- @! J' n; I! t+ a1 Z                        part := @.transpOrder;& A1 {: n  X8 p
                        part.move(@);-- load part
6 s& D7 t9 ~, ?$ F, y' ^                        @.CurrIcon := "load";% D! S. X8 Z0 n! P8 L
                        GlobalDistObj := part.globDestination;# X/ a4 k7 T5 \. _
                        assignLObj := rgmanager.rgAssignL;
/ T  n0 b% ?9 P                        row := assignLObj.getRowNo(GlobalDistObj);
6 K  t0 e9 ^, o                        if Row = -1 then -- since 70
; V. I" Q; a, C! F/ |+ y                                if lan=1 then
3 ~! N1 m# g) t, W5 {6 O0 T* w# ]8 M: [                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- X5 e' {9 j0 T& E2 f8 r
                                                to_str("in der Andockstation: \"",?.~.name,"\""));: N' G, ~2 F. X( W
                                else
& M& ~" P: t% c1 m  ?0 e1 q; Y6 a                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ T. O/ Y; S" [. X% N4 ^/ }
                                                to_str("in docking station: \"",?.~.name,"\""));                                / r1 P, ]% g7 Q; Y8 @
                                end;
% Y2 A0 S3 }& y) h; N                        else  o$ ^6 H4 r# O% A0 k6 ~
                                @.Destination := assignLObj[1,row];/ x/ c2 l- _; O, V9 m6 W! s
                        end;                       
" O' \: F; v$ M3 ?                        newDirection(@);
, D4 _5 T5 s# e* B                        @.HasOrder := true;5 U, l8 R1 N9 A0 i' g
                end;
5 ^! q8 M- v9 [3 Q* B( j  `% P        end;
! }) e, b) \: p  K# rend;        -- of the method
& D4 |% h' q; \( e, }. F% M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ u  w- ^. s& u: k
  T' Y3 Z2 M& |; j: R* h. t; `" r4 c这是AGV_putin中arrive的method。
/ N3 c& t" D4 }# Z; }9 a: S% B0 o$ U" [: J. l% V- n- }; m
当到达物料速度越高时,这个报警更多,; ~" b# S7 D2 Q# t  A  W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. z$ t) e6 x4 k* |2 h' [8 A, U6 `
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  y+ n. |4 [8 P6 T+ H, [8 l5 y. q* K1 d" b% q( J8 K
另外一个小建议,就是move,所有的move都可以这样
8 o) J! S- K5 B! ^+ I9 B" P8 lif not move() then debug end3 S7 u3 _+ }7 p6 c
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* o, i. B4 M8 t9 f# N0 F9 Q/ `plant simulation中的free libraries有AGV模板,
' L' J$ N' \. B+ q/ k. o/ a里面也有案例。
* t/ D8 H) y. K5 C我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! Y( s& X& d; u" Z! \
" _6 f" E# T  n' D' M4 l
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  k* o7 K1 O- y/ b: U
0 `0 N* N9 o! {! f那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 T0 `5 E  G' F) o
这是AGV_putin中arrive的method。# S# |8 {& {8 L  E8 |

, j( d# j; j8 ]3 K) m4 g6 i2 V当到达物料速度越高时,这个报警更多,
! h* V) }  y4 ^/ M  o3 ?
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-30 06:01 , Processed in 2.379229 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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