设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8257|回复: 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'
2 J( Q2 V6 G1 J: w6 J. h; M*// z9 |: K, F4 H9 [2 S! l4 ^) G# K
is
0 v( Z, b2 Y' a1 g7 i        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) b% N4 c4 A" j4 ]: U# udo- P: |8 E8 A4 k
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 u- y4 @2 v/ M+ H' U) v        if current = @.Destination -- else return
3 H$ h7 ^+ j! m9 `( L, Q6 l        then' ?8 g& \& R. ]
                @.Destination := void;
9 m  f  @: k5 t$ h) S# Z                if @.occupied then
+ t7 T/ o( F6 x' D6 ]& c( ]                        part := @.cont;
! H. I6 z* ]+ G. x' d2 k; R7 t                        @.transpOrder := void;
) V- f1 D3 e6 l8 q% e7 x                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
3 `  o6 L! o+ }: K2 M' |                                @,root.eventcontroller.simTime);% X, y, u- a" u/ i; v/ z! s
                        @.HasOrder := false;! N4 D: ]- D! r% Y3 {) a
                        @.DrivingHome := true;- j! ~$ i  ?7 b; |
                        rgManager.tryToStartTransOrder;
8 R. A! p6 \# ~$ n                        if @.Destination = void
  ~: D' k: W1 h                        then -- no transport order for vehicle @- P! F/ N/ e, n. A
                                @.Destination :=
+ {, G- ^  G1 y: P* t: ?" L; L                                rgManager.nearestFreeStation(@,track.~);. [* O) Z1 B: @" y5 U+ _
                                newDirection(@);   
- i$ k8 N5 u# x% d/ J: {* M                                if @.Destination /= void then9 E3 a( y3 O$ D2 n/ |, l
                                        @.Destination.NumReservation :=* {- J. B6 [+ w
                                        @.Destination.NumReservation + 1;9 x9 k7 @; ~  z5 E% y
                                end;1 Y# _- o) J5 k3 J: j: @5 r
                                @.CurrIcon := "drivingHome";4 ]) k! i% h; G9 y+ l) l
                                @.DrivingHome := true;
" M( m$ O+ E% j6 D8 ?% h                        end;
* H9 L0 V. [2 q5 P: e7 w: O3 W% O                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 q  g' N" [1 ]5 Q3 h                        part := @.transpOrder;, a7 {6 f" K/ _
                        part.move(@);-- load part* C+ q0 N/ b. t- N9 s$ O0 F7 a
                        @.CurrIcon := "load";
$ V2 L* S9 e9 [- M' B                        GlobalDistObj := part.globDestination;0 B- ?, |' i4 z4 `! c. z
                        assignLObj := rgmanager.rgAssignL;
! H0 N) @1 s1 m' `2 u7 m2 F  q                        row := assignLObj.getRowNo(GlobalDistObj);
( U$ l5 Y% P  X5 L& G9 o                        if Row = -1 then -- since 70
3 n& C, ^7 k2 L: m; B* ^                                if lan=1 then
6 k  ?) T% K) J4 W* a% r                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 ^+ M$ g2 R5 Y7 z$ t5 {. C
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 i( \# N5 J+ K  N/ W                                else
" m" [9 \. C. ^! }' c. f3 u* Q  O) N                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 l/ o& U! n) a8 K0 ]$ k                                                to_str("in docking station: \"",?.~.name,"\""));                               
. i4 }* R2 b# y: N9 d: r$ P0 P% ~+ O                                end;
; R7 J1 y+ |! v9 {                        else" v$ |( L  e/ V) U8 Z/ @4 R
                                @.Destination := assignLObj[1,row];
1 Z; t$ ?7 B+ k8 e, m                        end;                        * h) @6 l  z% P
                        newDirection(@);0 Z2 r1 d  D* y
                        @.HasOrder := true;" _7 S2 g; S9 J+ P  b$ {' B% W
                end;* M5 j, A4 i4 \. L- c' Z
        end;
$ p/ s' g+ A" q2 e3 U+ Wend;        -- of the method
) H4 T4 r" r9 \* `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 d7 f2 B: _' d% _9 z. m& z) H, _8 ]4 J! F
这是AGV_putin中arrive的method。
) q4 g, N& i  X- q- U7 u+ w+ \4 m* h- z& r
当到达物料速度越高时,这个报警更多,
9 O7 J0 n4 w6 x# W  x+ T% T( n可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ ?5 h4 {* [! @- ^$ m1 Y. M
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 U7 L- k( V5 N+ O
1 h6 C& F; I! q8 g$ P" J1 G$ b, k另外一个小建议,就是move,所有的move都可以这样
- o+ C, q8 H  zif not move() then debug end& l3 x: q& s  g8 d& e
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ ^: ]3 [/ V1 G
plant simulation中的free libraries有AGV模板,
# s5 I2 n* G4 @% U5 u里面也有案例。
1 d0 B0 e+ e, Q2 ]我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% l9 f9 t5 u, x" X
% ~; T( B9 }9 H2 z. r' e- E我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - K" c1 K0 g+ H! G2 m
3 |$ [1 w0 h( {/ T+ z0 L& i
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. r4 `4 U  D" s$ \* ]2 p这是AGV_putin中arrive的method。7 C  r! m+ I$ k. {; f

7 _  H/ _& \% n  [0 t当到达物料速度越高时,这个报警更多,

8 Y6 q2 s. f) Y- n/ f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-23 16:04 , Processed in 0.020664 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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