设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8038|回复: 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') a8 l1 v! f4 R! L5 E
*/$ \) P) S! @6 w
is" k7 [* z) ]# @) r- o% E
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 I  |8 D8 j, c: H
do5 ]5 F9 ~4 _) K& J( ^& j# V
        Lan := rootfolder.Internal.Tools.AOLlanguage;- y" Q2 X- _0 ~5 \
        if current = @.Destination -- else return& A" R1 y1 j. m: \4 G6 D
        then7 E8 D# |" g" F0 C
                @.Destination := void;
- `5 U- \9 j- |0 A- f, u+ Q                if @.occupied then" U8 d: `8 K: r& j2 K, P- z/ G5 s, Q
                        part := @.cont;
5 \9 w8 u! N/ ?! E+ |6 X" D. V, O                        @.transpOrder := void;8 O( B3 t  u9 s5 [0 v5 p
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," m7 N# H- }/ H$ T) m7 n
                                @,root.eventcontroller.simTime);6 g. _/ r5 M5 r* R- T0 A
                        @.HasOrder := false;
2 d. O" }) Q, {                        @.DrivingHome := true;; m6 e! |9 S9 ^9 E* u
                        rgManager.tryToStartTransOrder;
4 h+ X/ m; h1 P5 C+ c                        if @.Destination = void; a" C. }' f, \8 s' M, d
                        then -- no transport order for vehicle @5 f2 N$ l/ w& V' c% S
                                @.Destination :=. ?3 \! c! L8 I0 t. ?
                                rgManager.nearestFreeStation(@,track.~);
9 n5 r- s1 a3 Z                                newDirection(@);   . ~& B1 T, p  D
                                if @.Destination /= void then2 r7 ^+ `3 u7 L. e3 U
                                        @.Destination.NumReservation :=/ Y3 J, T6 \/ _5 A5 f4 Z
                                        @.Destination.NumReservation + 1;
* x# s6 `, b  _' _$ X6 L                                end;, ~# ]+ I) K* \6 S, z9 s5 N3 \. t
                                @.CurrIcon := "drivingHome";2 O, K6 n4 R+ q: D' O
                                @.DrivingHome := true;
, Y" R4 ]5 H8 [, \& v/ U, [                        end;" l" K4 m' E6 m* ~4 t" p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 j( t  w8 }% l! c4 I2 a% {0 ^2 H2 v                        part := @.transpOrder;
8 c, x8 N8 e; C( k: Y/ _0 K2 _                        part.move(@);-- load part6 l6 q! L! T6 s* r1 U7 I
                        @.CurrIcon := "load";# O5 A$ F2 D5 d( e
                        GlobalDistObj := part.globDestination;* z7 Z1 V0 p" X+ W( b5 w& b
                        assignLObj := rgmanager.rgAssignL;! O2 c+ O9 m7 E0 j0 N& o2 M" o, o0 d% N
                        row := assignLObj.getRowNo(GlobalDistObj);, r' P9 S: c: O( s# X4 v3 i
                        if Row = -1 then -- since 704 A" S+ I6 }' i) {) n; b
                                if lan=1 then
5 X$ j3 j2 L: r, }                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 c* Q1 e9 F5 F  ~% S8 {, t                                                to_str("in der Andockstation: \"",?.~.name,"\""));! D) p8 l# T9 ]. K3 K: X: j& v  P# {% B
                                else
9 P$ W! L+ H7 b9 z8 ^0 S0 o+ H                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 S) [' N% ?" \7 j% _% Z: s0 t9 M& j                                                to_str("in docking station: \"",?.~.name,"\""));                                  j( O7 j! X, F' ^; K4 E4 m
                                end;
5 g% J& s4 W4 o4 y. M                        else
8 ]& {# s9 o1 S3 z                                @.Destination := assignLObj[1,row];8 d4 {3 x" a* h7 s
                        end;                       
4 S% e& W  s- t5 I* P/ z                        newDirection(@);; G0 [' a5 D3 t! F
                        @.HasOrder := true;
4 [* s! h$ F8 w! D1 U                end;
4 D& S8 m) M3 |5 ^% H& N- z        end;
4 ^% L: L- V8 D3 xend;        -- of the method
" {7 X0 p2 a! ]. q+ K; e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 ?: S- D) S3 S2 |/ d" F, g  x
# E* w- P3 d. d& n9 Q% B: b4 t
这是AGV_putin中arrive的method。3 K9 o  F( [& `5 M: |1 I

, `* D3 \: h) ?% e# E( A当到达物料速度越高时,这个报警更多,! T) V& p7 y: a( [3 H5 q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; p# C3 |4 G. `; ^6 K5 v- U
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! w7 P6 u1 j( V8 D+ o  B5 s& M5 m
另外一个小建议,就是move,所有的move都可以这样
; Z+ e1 Y' ?; hif not move() then debug end& W( l0 i. I  p* a7 M: K
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 I* G0 M: [2 b4 x% P) D/ Q8 ~plant simulation中的free libraries有AGV模板,
5 ^# z) c$ v9 o: z, z里面也有案例。( t2 O2 S. K3 U- s8 g- O) t
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 F# k' a* D7 c- j  }' C; X) v' c7 y( q5 ?  z
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. }9 p1 }, R- g! x9 ]1 O' g- O! X+ R% T  c: u/ e
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & e* ~; O3 d- @
这是AGV_putin中arrive的method。
" Q. Y. ~7 P1 M8 ^9 S* x
. t  _. S. {9 f0 S( z当到达物料速度越高时,这个报警更多,
' u$ |$ v- T) Q1 V1 t$ f
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-12 09:50 , Processed in 0.019442 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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