设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9328|回复: 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'9 A' u, k3 o1 M1 Y5 s. _
*/
8 X: K: C4 P; Y) ]7 O& l- Mis+ `$ x. p! l$ s3 s' B
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 S. R6 Y/ o6 a' g1 c) Ddo
. O+ y) w0 I. a        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 w# I" |1 ]  F        if current = @.Destination -- else return5 ?& Q7 P7 ^" e4 [$ A; w% y  _
        then' X2 g0 n5 a3 F$ W: H
                @.Destination := void;/ }! s4 q2 D2 n) \8 v
                if @.occupied then
, E1 c& O8 A, d/ g" |                        part := @.cont;
- b" b# Y* U: G' Q                        @.transpOrder := void;; X! H8 C5 W6 k
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 Q1 ?: ]2 d, y$ r9 C/ M. L( T                                @,root.eventcontroller.simTime);) V+ M  p. ?) L7 h! M3 y9 g# `
                        @.HasOrder := false;4 B" ?# U5 d1 z9 M% |
                        @.DrivingHome := true;
% M$ T- m5 _( `2 H7 P0 W6 w+ T                        rgManager.tryToStartTransOrder;/ V# Q9 b: p, p5 @% ~
                        if @.Destination = void  _& b& b1 C8 h9 ~5 j3 X) ^* u/ W" G
                        then -- no transport order for vehicle @3 Y& H! \. R& l! W: [) `
                                @.Destination :=
1 q8 a$ Z! z4 ~2 g                                rgManager.nearestFreeStation(@,track.~);
! g! S4 D- g# ~! v6 D                                newDirection(@);   - a- _3 m2 B" L- C6 _
                                if @.Destination /= void then- V0 h; c/ o( `7 G' X& g) M. S- \$ i
                                        @.Destination.NumReservation :=
7 e9 T2 s- H9 ^8 G4 g% I. ?! X                                        @.Destination.NumReservation + 1;
' g. s4 L+ N5 W  P& T                                end;
; _! w- ^" j0 R, a% V. k                                @.CurrIcon := "drivingHome";
2 e5 l5 @0 `& Z) ~! h$ i/ ]) P                                @.DrivingHome := true;( D: `' }( A8 e) ^- F
                        end;! E$ M$ |3 {' g& W, X
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  ^% U- Z& b" Q                        part := @.transpOrder;$ q- u2 O5 b0 |& u& [$ g9 I# a
                        part.move(@);-- load part' D# k$ \, C* g. }
                        @.CurrIcon := "load";
# K3 }2 H" _7 x0 F6 m/ a% S( V                        GlobalDistObj := part.globDestination;
5 M* F6 X& W) q. r" F                        assignLObj := rgmanager.rgAssignL;
( W7 i$ x6 ~" ~0 w                        row := assignLObj.getRowNo(GlobalDistObj);3 V2 ?% Z5 m8 q, k) {. N
                        if Row = -1 then -- since 701 x( `. k; i. G- z; ^  q; P$ e3 b
                                if lan=1 then
  u7 y8 s. n. J" K" I1 v. F" M5 v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! N" L! ^4 q  ]( d. t1 r; @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% I* s) Y) t) }4 j+ h. \' P% F) ]                                else" Y7 Q% p3 f# r2 d' C& B
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) z. [' i9 d. Z" T/ t$ m
                                                to_str("in docking station: \"",?.~.name,"\""));                                # t: r) o" a. R5 P& d0 T* w& Q
                                end;. S" N  b% o  a0 ]! j
                        else
# {; L2 @! A$ _# p+ i                                @.Destination := assignLObj[1,row];; u: O; k0 T7 }* P: z8 s+ F! e$ K
                        end;                        4 c1 ^' g6 n. n: m" i1 x( {
                        newDirection(@);, W2 Y+ ]: Y4 [2 z  l
                        @.HasOrder := true;* ]6 c+ ^0 g1 G' {! y$ U
                end;
3 H9 ?# e: f8 h; A        end;
/ z, {; ~7 G2 Zend;        -- of the method1 d1 b3 i# |+ C/ L- M: r" I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; ?1 X9 t4 B0 ?& L

7 ^8 {' [0 ^& {( R+ v这是AGV_putin中arrive的method。" t$ S: O" G' D6 E+ \0 w2 }) j0 |

2 S7 o, Q& d3 M1 \当到达物料速度越高时,这个报警更多,; ?8 l$ ]4 j8 g% f4 W7 v
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, S" d4 a/ U/ x, V  ?6 [' y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- S( S( {! U1 Z- w+ n
+ b  \9 n! {3 u9 [5 ?! H9 H% h另外一个小建议,就是move,所有的move都可以这样  j% I7 A: p$ R+ y/ _: k6 A
if not move() then debug end" c$ D0 h# O% q4 C
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  E+ D7 b( j4 f4 U6 @plant simulation中的free libraries有AGV模板,. @2 s6 z3 I: I' K8 K5 I3 z& m
里面也有案例。
# {- z( [0 [+ t$ Z+ V1 r5 f+ y' X我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* q  K- l5 S8 D5 F
1 {" g0 }" }, w3 W3 k' F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / p; M! Y$ t  ~4 H* R

( W! F' M" {0 r5 E' J那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: J; U8 `- D- ~2 ?这是AGV_putin中arrive的method。4 m  a' S1 r( @, ?" d
2 O: O0 X- \( ~" l7 L
当到达物料速度越高时,这个报警更多,

/ e: w1 c* G/ d1 k1 w" ?: m1 T另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-25 18:57 , Processed in 0.014729 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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