设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10029|回复: 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'
4 _: ~' [1 U' J- B& P9 [8 G" A*/' v, {  K" O% I5 B: J0 p: M
is1 r* d2 R' C& _- f$ C4 R9 W2 O
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: F5 d) T& ^5 Y) \6 m6 }/ Udo7 F% }( B& H6 `. r& n: O: [
        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 S' d. a5 I' O# [" }        if current = @.Destination -- else return
! a5 t' s* @% m        then
) M5 @3 J+ ]4 Q: r# G- X8 L0 S                @.Destination := void;
8 c$ H$ R- H& O1 m8 P# I                if @.occupied then0 ]; K9 c, `! l- ^+ X4 u5 [6 E
                        part := @.cont;
" Y- `% [$ e6 g# t  B                        @.transpOrder := void;& H' T8 v- ^8 e$ _5 m! t
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, ?# u' }( O4 ~( |4 I: I; g                                @,root.eventcontroller.simTime);
4 z, `% Z1 S, |- U( j                        @.HasOrder := false;  x: n& l* `& @, P' J, r! V
                        @.DrivingHome := true;: ?- e. H, G' [  O9 t4 z+ \  P$ b
                        rgManager.tryToStartTransOrder;
0 Q, m1 w' h  F0 J( g$ ~" _                        if @.Destination = void
* }0 x8 y7 G3 A, N! W& e  t                        then -- no transport order for vehicle @( d! N6 j1 F) Q. {5 Q
                                @.Destination :=9 ^/ E2 Z) q% D0 z' y
                                rgManager.nearestFreeStation(@,track.~);7 G3 h, a& c6 E* ?) C' k& j
                                newDirection(@);   
+ ^* e) \) O, k! }5 z                                if @.Destination /= void then
% s( R  K) N* U" m1 _. e                                        @.Destination.NumReservation :=
) W; K0 ~$ w7 D0 |4 M                                        @.Destination.NumReservation + 1;
4 o; B* \6 z9 ^# ~9 |5 C                                end;
( ?0 F! J" ~. a, n3 Q  [5 V) `( `                                @.CurrIcon := "drivingHome";. V, ]; i; D# [# \; X
                                @.DrivingHome := true;
/ C& X* u( ?8 r3 w                        end;
0 A1 w4 l2 K  W- S# w                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 ]5 Y' \# K1 A4 |
                        part := @.transpOrder;
9 E; [7 N1 L0 ~                        part.move(@);-- load part- w5 `" L% S/ V- B+ c+ H1 H
                        @.CurrIcon := "load";/ g# p" p. k, J: {- A& U
                        GlobalDistObj := part.globDestination;5 r' L/ n; j( l6 {
                        assignLObj := rgmanager.rgAssignL;8 s8 b- ?' t9 z6 [
                        row := assignLObj.getRowNo(GlobalDistObj);
% G. R9 V  {8 @/ u                        if Row = -1 then -- since 70. b1 D$ v- n' E& S! w! i% S4 R
                                if lan=1 then) v+ [2 g5 d+ Y+ k8 u* C  \
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# Y- u$ g4 |! K                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 }) {  Z* b' N( u0 w! S6 q: _5 a' G                                else" B$ r% u- z/ \  ^  C3 x
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 W9 k) `5 W3 e! j  i
                                                to_str("in docking station: \"",?.~.name,"\""));                               
- {; c& N1 i5 f' ^6 f/ P                                end;! t- U; I  a6 \+ S4 W  ~
                        else9 X+ \+ ^/ _+ O0 J" b
                                @.Destination := assignLObj[1,row];
3 _; m6 S8 G1 t/ r( M# k% U" \                        end;                        1 `; W6 j  P9 g# i0 ?
                        newDirection(@);
. {4 y3 I! y7 h* @& N, r7 {- r                        @.HasOrder := true;+ x3 g: f% r/ F+ |2 D; O
                end;
8 H+ O  }0 k. O& h$ F6 |3 a) K& J        end;
" o3 ?8 Y- e' E4 [9 t: zend;        -- of the method
3 {, ?8 L( n3 z4 b$ V; a, E
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) H; g% w9 y5 o7 q
4 J% w4 d; ~* k6 `; |
这是AGV_putin中arrive的method。
; d, G% o! f5 u# h" g
6 V+ R0 N' y; D  `当到达物料速度越高时,这个报警更多,
$ c" W* Z$ |* w1 d可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 y  H# n0 }1 Q7 Y, ^' ?5 @程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 L6 P* a; b5 R$ \3 k" T3 Z1 M$ Q' Z3 h# ~
另外一个小建议,就是move,所有的move都可以这样8 v( f! ~% C2 p) _" Q
if not move() then debug end
7 Y: V1 T5 G# P' G3 L: h) X这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; e2 o. L! K1 s* Z  A0 Z7 J- @plant simulation中的free libraries有AGV模板,/ [+ g! r; w  _2 K) p1 X
里面也有案例。
7 S6 Y$ R$ Y! S# g( J我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  W/ _1 S4 B+ S* x9 d: a* B% w% R. F5 u" {( E' }, h
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" ]9 z* v, x6 P) d" {' M0 B
% b/ v# i7 [) K1 o, s那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 e2 p- t  p$ v! e, m
这是AGV_putin中arrive的method。
7 i3 k5 i  W4 u4 M+ C( k; I& J% }1 o5 y; M
当到达物料速度越高时,这个报警更多,

% e' O6 A* y5 b/ x另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-8 12:45 , Processed in 0.018386 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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