设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8712|回复: 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'7 {; [. j8 Q( y* D; ?" Z( C
*/
+ X8 Z: T, R4 W+ c( G& l/ L7 vis
) O& _5 ]. z# E+ o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* v, u4 B4 V" a
do1 F5 ~& S/ h( X5 I6 p( P) u) l
        Lan := rootfolder.Internal.Tools.AOLlanguage;
* d4 Y$ @' h7 o6 K. f, v4 ]        if current = @.Destination -- else return7 i: r9 h/ \# N7 }/ W' k4 p
        then
. F! q- L: Q' J0 D0 h9 K                @.Destination := void;
, f& x: X, l% D% _                if @.occupied then+ Y& X: ?3 g- c& R) O# ?, [
                        part := @.cont;
! K2 B1 r. U3 K6 J" }/ L                        @.transpOrder := void;! M; e9 F* l/ P/ A
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
. u% b6 s# [# _3 M: k8 F0 M                                @,root.eventcontroller.simTime);. k, `5 ~5 g: [4 `
                        @.HasOrder := false;8 |! W9 I& q6 r& a0 `) G
                        @.DrivingHome := true;
6 V* H3 e- _( s8 E5 k, |+ `8 G1 e                        rgManager.tryToStartTransOrder;
8 u- _6 n3 d1 N! u5 R6 O( }                        if @.Destination = void
5 j8 m# T7 ?- Y' ]: s6 {                        then -- no transport order for vehicle @
- `$ B9 W: o! Q4 e: N                                @.Destination :=
5 U3 M5 N( o5 ?. y# P$ Z1 t7 P9 l                                rgManager.nearestFreeStation(@,track.~);
* {4 e3 D/ N3 f, C' E                                newDirection(@);   
! T7 A. r5 G5 }# x9 l2 l7 n                                if @.Destination /= void then
) A6 m1 i# S& m' k1 I7 `                                        @.Destination.NumReservation :=& w0 n9 e5 m: ?& v+ F) b
                                        @.Destination.NumReservation + 1;
6 {# e0 |0 V6 g) Y" u- e( d/ X                                end;5 ?: a! ~& K" N. M
                                @.CurrIcon := "drivingHome";
+ g" v# i; p9 A                                @.DrivingHome := true;, I* J" Z% k2 \% L$ i* V
                        end;
: x4 I: o- O& _  a" E6 p                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" I- }' z2 x; C( z# I                        part := @.transpOrder;- Q$ |% o6 L% m, t) n; k; h
                        part.move(@);-- load part' U# f, n1 |5 h& C, W! e
                        @.CurrIcon := "load";, P% S: s, x5 s, O% }/ B1 r# c
                        GlobalDistObj := part.globDestination;; B, c( B" r& z4 r8 r
                        assignLObj := rgmanager.rgAssignL;+ Q: y) h2 B2 P$ J" _: M  b! }
                        row := assignLObj.getRowNo(GlobalDistObj);
7 y  K( M# j  r3 R5 G                        if Row = -1 then -- since 70
! P- I% Z3 B) d# `0 s4 J                                if lan=1 then* z7 D  x& {) P' p0 {9 E
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 r+ ~4 A' G' _3 V$ f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));! |: \% G5 N* |
                                else
1 c# Y# Y- g9 U" ^* d  ]9 `) P9 T                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! q$ W) K+ ~: v! z- q                                                to_str("in docking station: \"",?.~.name,"\""));                                ( a, e( K8 E! x
                                end;
; V2 n- t9 l/ v  n7 x# X                        else  U: \) c9 I0 Y5 d; {
                                @.Destination := assignLObj[1,row];; m" \( q  V/ `+ z4 m4 I
                        end;                       
. `$ D( Y# m% f3 ^! t                        newDirection(@);
5 X0 [; h8 i& |! r" {' D                        @.HasOrder := true;- ]: A+ m& E& ?: @
                end;# ]0 ]! k/ Q! r5 Z0 i& P. I
        end;
; A( A! b9 a! W! W# [3 lend;        -- of the method9 K2 c; \; _% o" Y5 \" g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 r* \/ @+ l( p+ _' ^3 M" g9 S
% ~6 e# E0 z; i# T9 h这是AGV_putin中arrive的method。" N, {  j$ H* O4 C2 p0 ^; ]
% r1 k8 o0 ~3 s* b8 A/ y( k7 E6 F$ k6 @
当到达物料速度越高时,这个报警更多,
! K, |5 `7 J& F3 R4 `& ]可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! M) ]) o; F; H! R程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 y7 w# V, Z9 s' f
. D- d# O) p* o0 Y& P
另外一个小建议,就是move,所有的move都可以这样0 w+ ?2 J- ^/ @* ^& E0 o# z
if not move() then debug end5 ?5 l0 A1 l0 T+ H. d: t4 d* Q% _
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 @5 Y) m. N! J8 f& vplant simulation中的free libraries有AGV模板,
% G: |7 \6 z  u: ?里面也有案例。
4 x* C6 g1 d2 |* F3 u8 d8 a8 L我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, t. \7 i# t" s

& ]9 s) z# d; _. r' H9 k我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, C- ?2 k) n, d, |6 w0 K, p# c( i, s$ X* A0 B% q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 r( {8 J7 I( K" g% e这是AGV_putin中arrive的method。
: A/ x( V+ d9 p( g) k' m/ f- t, i
当到达物料速度越高时,这个报警更多,
0 w2 s7 e, B- t9 P. u3 p; R" Z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-21 20:54 , Processed in 0.016612 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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