You are on page 1of 79

MATERIAL EXTRADO DO REFERENCE GUIDE DO

PROMODEL PARA CONSULTA RPIDA DOS USURIOS


DO SOFTWARE

So Paulo/SP

Telefax: (011) 5561.5353

Guia de Referncia Rpida do ProModel for Windows

Copyright 2010

BELGE Engenharia & Sistemas / PROMODEL Corporation

Todos os direitos reservados.

Marcas Registradas: ProModel uma marca da PROMODEL Corporation. Windows uma marca da
Microsoft Corporation.

Editado e impresso pela

BELGE Engenharia & Sistemas


Rua Bernardino de Campos, 318
04620-001 So Paulo SP Brasil
Pabx: (011) 5561.5353
e-mail : suporte@belge.com.br
http://www.belge.com.br/servicos_suporte.html

A elaborao deste Guia de Referncia Rpida uma iniciativa da BELGE e visa auxiliar os usurios do
software em nosso pas, sejam eles empresas que utilizam o produto para aprimorar seus procedimentos e
sua tomada de deciso, ou estudantes e professores que utilizam o software em suas atividades
acadmicas. Com este trabalho temos certeza de que este produto to poderoso, amigvel, flexvel e
mundialmente consagrado, ser mais acessvel aos profissionais das indstrias de manufatura, processos
e servios em nosso pas.

A T EN O:
Este guia de referncia apenas um extrato do Reference Guide da verso 7.0 do software ProModel e
no tem o objetivo de substitu-lo. Campos lgicos onde so vlidos, exemplos de utilizao, algumas
excees ou casos especiais no esto inclusos neste guia. Para informaes mais detalhadas favor
consultar os manuais originais que acompanham o software ProModel.

BELGE Engenharia e Sistemas


Simulao PROMODEL

ii

NDICE
REGRAS DE ROTEAMENTO
Alternate ................................................02
Backup...................................................02
Continue ................................................03
Dependent .............................................04
Empty ....................................................04
First Available ........................................05
Join ........................................................05
Load.......................................................06

Longest Unoccupied ............................. 06


Most Available....................................... 07
Probability ............................................. 07
Random ................................................ 08
Send...................................................... 08
Turn....................................................... 09
Until Full ................................................ 09
User Condition ...................................... 10

COMANDOS E FUNES
Accum....................11
Activate..................11
Animate .................12
Arraydim()....13
Arraydimsize().13
Assignment..14
Begin .....................14
Break .....................15
BreakBlk ................15
Cap()......................16
CalDay() ................16
Caldom()..17
CalHour().17
CalMin() .................18
Calmonth()...18
Calyear()..19
Char() ....................19
Clock() ...................20
Close .....................20
Combine ................21
Comments .............21
Contents()..............22
Create....................22
Debug ....................23
Dec ........................23
Display...................24
Do...Until................24
Do...While ..............25
DOSLoad...............26
Down.26
DownQty(). ............27
DTDelay()....27
DTLeft() .................28
Dynplot() ................28
End ........................29
Ent().......................29
Entity() ...................30
Entries() .................30
Exp() ......................31
ForLocation() .........31
Format().................32

BELGE Engenharia e Sistemas


Simulao PROMODEL

ForResource() ....... 32
Free ....................... 33
FreeCap() .............. 33
FreeUnits()............. 34
Get......................... 34
GetCost()............... 35
Getreplicationnum...35
GetResRate() ........ 36
Goto....................... 36
Graphic.................. 37
Group..................... 37
GroupQty()............. 38
If...Then...Else ....... 38
Inc.......................... 39
IncEntCost............. 39
IncLocCost............. 40
IncResCost............ 40
Int........................... 41
Join........................ 41
Jointly Get.............. 42
Last() ..................... 43
Ln() ........................ 43
Load....................... 44
Loc() ...................... 44
Location()............... 45
Log......................... 46
Maparr ................... 46
Match..................... 47
Move...................... 48
Move For ............... 49
Move On................ 49
Move With.............. 50
Next()..................... 51
Order ..................... 51
OwnedResource()...52
Pause .................... 52
Percentop()......53
Percentutil()..53
Preemptor() ........... 54
Priority ................... 54
Prompt................... 55

iii

Rand() ................... 55
Read...................... 56
Real ....................... 57
Real()..................... 57
Rename................. 58
Report.................... 58
Res()...................... 59
Reset ..................... 59
Reset Status.......... 60
Resource()............. 60
Resourceunit().60
ResQty()................ 61
Return.................... 61
Round() ................. 62
Route..................... 62
Send ...................... 63
SetRate ................. 64
Skip ....................... 64
Sound .................... 65
Split As .................. 65
Sqrt() ..................... 66
Stop ....................... 66
ThreadNum() ......... 67
TimeLeft().............. 67
TimesUsed().......... 68
Trace ..................... 68
Trunc()................... 69
Ungroup................. 69
Units().................... 70
Unload ................... 70
Use ........................ 71
Variable()............... 71
View....................... 72
Wait ....................... 72
Wait Until ............... 73
Warmup................. 73
While...Do.............. 74
Write ...................... 74
WriteLine ............... 75
Xsub().................... 75
Xwrite .................... 76

REGRAS DE ROTEAMENTO
(Routing Rules)
As regras de roteamento fazem parte da construo dos processos nos modelos elaborados com
o software. Para acess-las, entre no mdulo de processos (Construir/Processo ). As regras de
roteamento determinam o prximo local para a entidade em processamento. Voc deve
especificar no campo Regra da janela Roteamento (janela da direita do mdulo de processos)
digitando ou selecionando as regras da caixa de dilogo de regras de roteamento (Roteamento
Regra) mostrada abaixo, clicando no boto Regra.

BELGE Engenharia e Sistemas


Simulao PROMODEL

ALTERNATE

Sintaxe
ALT

Descrio
Seleciona um local como um destino alternativo se a capacidade disponvel e a condio para
uma rota anterior no for satisfeita. Se o local alternativo no estiver disponvel, a entidade espera
at que este local esteja disponvel ou at que a condio da regra de roteamento anterior seja
satisfeita.
Rotas alternativas so comuns a todas as rotas primrias, exceto s regras Probability (por
probabilidade) e User Condition (com condio definida pelo usurio), e voc pode list-las depois
do ltimo roteamento primrio mas sempre antes de qualquer regra do tipo BACKUP.
Por exemplo, uma mquina de alta velocidade pode ser preferida, mas alternativamente, uma
mquina mais lenta pode ser usada quando a mquina mais rpida no estiver disponvel.

BACKUP

Sintaxe
BACKUP

Descrio
Os locais especificados por esta regra so selecionados apenas se todos os outros destinos
(primrios ou alternativos) listados nos roteamentos anteriores de um mesmo bloco no estiverem
disponveis devido a qualquer parada por downtime, incluindo turnos. Um dos usos da regra
BACKUP no caso de uma mquina que no est funcionando, e as entidades precisam de outro
destino para continuar.

BELGE Engenharia e Sistemas


Simulao PROMODEL

CONTINUE

Sintaxe
CONT1

Descrio
Deixa uma entidade no local atual para processamento adicional. O ProModel procura na lista de
processos adiante e depois desde o incio da lista at que um processo seja encontrado para a
entidade que sai do local atual. Se o nome da entidade no mudar, o processo original se repetir
continuamente a no ser que uma condio faa com que o bloco com a regra CONTINUE seja
pulado.
A regra CONTINUE tambm permite mudanas dinmicas de prioridade. Isto significa que a
entidade que entra em um local com uma prioridade baixa pode ser dinamicamente promovida a
uma prioridade mais alta sem sair deste local. A lgica de movimentao do bloco com a regra
CONTINUE no ser executada.
No so permitidos valores de tempo ou movimentaes na coluna de move logic do bloco de
roteamento que contenha a regra CONTINUE. Esta regra uma maneira de rotear uma entidade
de um local de capacidade nica para o mesmo local sem que se crie um beco sem sada. A regra
CONTINUE pode simular tambm um fornecimento ilimitado de matria prima em um local.
As estatsticas para um local usando a regra CONTINUE so coletadas como uma entrada para a
entidade.

BELGE Engenharia e Sistemas


Simulao PROMODEL

DEPENDENT

Sintaxe
DEP

Descrio
Seleciona um local se, e somente se, voc seleciona o roteamento que o precede imediatamente.
Um roteamento ALTERNATE colocado depois de um roteamento dependente uma alternativa ao
ltimo roteamento principal que precede a condio de dependncia, e no o roteamento
dependente em si.
Um roteamento dependente pode ser usado quando um processo resulta em dois tipos diferentes
de entidades que devem ir para locais diferentes. Por exemplo, um roteamento dependente
poderia simular uma pea com duas partes na qual apenas uma deve ser pintada. O roteamento
para o processo de preparao deve rotear uma parte para a rea de pintura e a outra para a rea
de espera. Mas a parte que deve ir para a rea de espera s poder ser roteada se a rea de
pintura tiver capacidade para receber a parte que ir ser pintada. Assim a parte roteada para a
rea de espera s vai para l quando a outra parte for para a rea de pintura.

EMPTY

Sintaxe
EMPTY {<expresso>}

Descrio
Seleciona um local apenas se este estiver completamente vazio. Esta regra de roteamento
similar a regra UNTIL FULL exceto pelo fato de o local precisar estar completamente vazio antes
de ser inicialmente selecionado. Assim que um local que estiver vazio selecionado, este
continuar a ser selecionado at o momento em que estiver cheio. Se nenhum local estiver vazio
a entidade de sada ir esperar at que algum dos locais fique vazio.
A condio EMPTY usada para situaes onde dois ou mais locais de mltipla capacidade esto
sendo alimentados de uma mesma fonte e o modelador deseja que cada local seja
completamente enchido e completamente esvaziado de um modo alternado.

BELGE Engenharia e Sistemas


Simulao PROMODEL

FIRST AVAILABLE

Sintaxe
FIRST {<expresso>}

Descrio
Seleciona o primeiro local disponvel entre um ou mais locais listados no bloco de roteamento.
Especificar mltiplos roteamentos FIRST AVAILABLE em um bloco de roteamento ter o mesmo
efeito de especificar um roteamento FIRST AVAILABLE seguido de um ou mais roteamentos
ALTERNATE.
A regra FIRST AVAILABLE a regra padro. Neste caso, o roteamento FIRST AVAILABLE pode
ser interpretado como um roteamento primrio.

JOIN

Sintaxe
JOIN {<expresso>}

Descrio
Seleciona um local assim que uma solicitao de unio (JOIN) feita naquele local atravs do
comando JOIN. Como a entidade que vai ser unida no utiliza a capacidade do local, no h
necessidade de checar a disponibilidade de capacidade no local de destino. Vrias solicitaes de
unio so atendidas de acordo com a ordem de espera, ou seja, a solicitao que estiver
esperando a mais tempo ser a primeira a ser atendida e assim por diante. As entidades roteadas
com o roteamento JOIN no so enviadas para aquele local at que seja encontrado um comando
JOIN no local de destino.

BELGE Engenharia e Sistemas


Simulao PROMODEL

LOAD

Sintaxe
LOAD {<expresso>}

Descrio
Seleciona um local assim que uma solicitao de carregamento (LOAD) feita naquele local
atravs do comando LOAD. Como a entidade que vai ser unida no utiliza a capacidade do local,
no h necessidade de checar a disponibilidade de capacidade no local de destino. Vrias
solicitaes de carregamento so atendidas de acordo com a ordem de espera, ou seja, a
solicitao que estiver esperando a mais tempo ser a primeira a ser atendida e assim por diante.

LONGEST UNOCCUPIED

Sintaxe
LU {<expresso>}

Descrio
Seleciona um dos locais listados em um bloco de roteamentos baseado em que local ficou com
menor ocupao. Se vrios locais de mltipla capacidade possurem uma ou mais entidades, o
local com maior capacidade disponvel ser selecionado. Se nenhum local tiver capacidade
disponvel, o primeiro que ficar disponvel ser selecionado. Esta regra til em situaes nas
quais efeitos residuais precisam ser minimizados antes de uma utilizao posterior em um local
como por exemplo em um forno que deve esfriar at a temperatura ambiente, ou na diminuio do
vapor em suspenso num ambiente de pintura.

BELGE Engenharia e Sistemas


Simulao PROMODEL

MOST AVAILABLE

Sintaxe
MOST {<expresso>}

Descrio
Seleciona um dos locais listados em um bloco de roteamento, baseado no local que tiver maior
capacidade disponvel. Se no houver capacidade disponvel em nenhum dos locais listados, o
ProModel seleciona o primeiro que ficar disponvel. Use a regra de roteamento MOST para
equalizar filas na frente dos trabalhadores. Esta regra til em casos onde voc precisa balancear
os nveis de estoque entre vrias filas.

PROBABILITY

Sintaxe
<probabilidade> {<expresso>}

Descrio
Seleciona aleatoriamente um local listado no bloco de roteamento baseado em uma probabilidade.
Voc deve usar vrios roteamentos por probabilidade juntos e a soma das probabilidades deve ser
igual a um, o equivale a 100%. A entidade ir esperar at que o local escolhido tenha capacidade
disponvel. Diferentemente de outros roteamentos primrios, voc pode especificar um roteamento
ALTERNATE e BACKUP depois de cada roteamento PROBABILITY em um mesmo bloco de
roteamento. Se o local selecionado tiver um roteamento ALTERNATE e no tiver capacidade
disponvel, a entidade ir esperar at que o local tenha capacidade disponvel.

BELGE Engenharia e Sistemas


Simulao PROMODEL

RANDOM

Sintaxe
RANDOM {<expresso>}

Descrio
Seleciona aleatoriamente um de vrios locais disponveis listados no bloco de roteamento, de
forma que o ProModel pode vir a escolher qualquer local que tenha capacidade disponvel. Se
nenhum dos locais tiver capacidade disponvel, o ProModel ir selecionar o primeiro local que ficar
disponvel.

SEND

Sintaxe
SEND {<expresso>}

Descrio
Faz com que a entidade permanea no mesmo local at que um dos locais listados execute o
comando SEND. Assim que o comando SEND executado, o local deve ter capacidade
disponvel antes que a entidade seja roteada. Voc pode definir vrios locais alternativos com a
regra SEND em um bloco.

BELGE Engenharia e Sistemas


Simulao PROMODEL

TURN

Sintaxe
TURN {<expresso>}

Descrio
Seleciona rotativamente os locais listados no bloco de roteamentos que estiverem disponveis. Se
nenhum dos locais listados estiver disponvel, o ProModel selecionar o primeiro que ficar
disponvel. Voc pode listar um local mais de uma vez em um bloco de roteamento se voc quiser
us-lo mais vezes que os outros.

UNTIL FULL

Sintaxe
FULL {<expresso>}

Descrio
Esta regra continua direcionando todas as entidades para o primeiro local especificado at que
sua capacidade seja preenchida e depois passa para o segundo local especificado at que este
no tenha mais capacidade e assim por diante. Se todos os locais estiverem cheios, o ProModel
selecionar o primeiro que ficar disponvel.

BELGE Engenharia e Sistemas


Simulao PROMODEL

USER CONDITION

Sintaxe
<condio> <expresso>

Descrio
Seleciona um dos vrios locais listados no bloco de roteamento baseado em uma condio
definida pelo usurio. O ProModel geralmente usa vrios roteamentos USER CONDITION em um
mesmo bloco de roteamento. No mnimo uma das condies definidas pelo usurio deve ser
verdadeira, caso contrrio uma mensagem de erro ser mostrada e a simulao ser
interrompida. Para que a entidade seja roteada para um local, este local deve ter capacidade
disponvel. Diferentemente de outras regras primrias, voc pode especificar roteamentos
ALTERNATE ou BACKUP depois de cada roteamento USER CONDITION em um mesmo bloco
de roteamento.

BELGE Engenharia e Sistemas


Simulao PROMODEL

10

COMANDOS E FUNES

ACCUM

Sintaxe
ACCUM <expresso>
ACCUM 10
ACCUM Var1

Descrio
Acumula, sem consolidar, a quantidade de entidades especificada em um determinado local. O
comando ACCUM funciona como um porto que evita que as entidades sejam processadas at
que um certo nmero delas chegue. Assim que o nmero de entidades for acumulado, elas
passaro pelo porto e sero processadas individualmente, independente das outras.
O comando ACCUM pode ser usado para modelar situaes onde vrias entidades devem ser
acumuladas antes de serem processadas. Por exemplo, quando uma empilhadeira coloca pallets
em um caminho, ser mais eficiente acumular vrios pallets antes de solicitar a empilhadeira.

ACTIVATE

Sintaxe
ACTIVATE <subrotina>({<parmetro1>,<parmetro2>...})
ACTIVATE Sub1()
Descrio
Executa uma subrotina independente. Chama a subrotina sem esperar que a subrotina chamada
acabe de ser executada. Assim subrotinas independentes podem ser executadas em paralelo com
a lgica que as chamou. Subrotinas independentes so subrotinas que no dependem de nenhum

BELGE Engenharia e Sistemas


Simulao PROMODEL

11

local ou entidade e so executadas de acordo com o que acontece dentro da lgica que as
chamou.
Use ACTIVATE para processar lgicas que tenham os comandos WAIT ou WAIT UNTIL quando
voc no quiser usar uma entidade para processar estes comandos. Por exemplo, um ACTIVATE
na lgica de inicializao pode chamar uma subrotina que ajusta a frequncia de chegada de um
tipo de entidade dependendo da hora do dia.
As subrotinas independentes chamadas pelo comando ACTIVATE no podem ser funes de
sistemas especficas a entidades ou locais. Se a subrotina retorna um valor, o valor ignorado.
Subrotinas externas no podem ser chamadas com o comando ACTIVATE, entretanto podem ser
chamadas de dentro de uma subrotina ativada.

ANIMATE

Sintaxe
ANIMATE <expresso>
ANIMATE 70
ANIMATE Var1

Descrio
Ajusta a velocidade de animao da simulao. Quanto maior for o valor, mais rpida ser a
animao. O comando ANIMATE utilizado principalmente para aumentar ou diminuir a
velocidade de uma simulao assim que uma condio satisfeita. Outro uso comum para
ajustar a velocidade de animao para o valor 100 (cem) na Lgica de Inicializao para avanar
a simulao rapidamente para algum ponto no tempo.

BELGE Engenharia e Sistemas


Simulao PROMODEL

12

ARRAYDIMS()

Sintaxe
ARRAYDIMS (<nome da matriz>)

Descrio
Retorna o nmero de dimenses de uma matriz.. Pode ser utilizado em qualquer lgica do
Promodel.

ARRAYDIMSIZE()
Sintaxe
ARRAYDIMSIZE (<nome da matriz> , <nmero da dimenso>)

Descrio
Retorna o tamanho de uma determinada dimenso em uma matriz. Basta fornecer atravs da
sintaxe acima o nome da matriz e a dimenso que se deseja saber o tamanho. Esta funo pode
ser utilizada em qualquer parte da lgica do Promodel.

BELGE Engenharia e Sistemas


Simulao PROMODEL

13

ASSIGNMENT STATEMENT

Sintaxe
<varivel, matriz ou atributo> = <expresso numrica>
Var1 = 300
Attr2 = Clock(hr) - Attr3
Descrio
Atribui o valor de uma expresso numrica a uma determinada varivel, matriz
ou atributo. Pode ser utilizado em qualquer parte da lgica do Promodel.

BEGIN

Sintaxe
BEGIN ou {
WHILE FREECAP(Loc1) > 5 DO

IF Var1 > 5 THEN

BEGIN

INC Var2,5

INC Var2,5

WAIT 5 sec

WAIT 5 sec

END

Descrio
Define um bloco de comandos com um correspondente comando END. BEGIN e END so quase
sempre usados em conjunto com um outro comando de controle como IF-THEN e DO WHILE.
Para todo comando BEGIN deve haver o comando END correspondente.

BELGE Engenharia e Sistemas


Simulao PROMODEL

14

BREAK

Sintaxe
BREAK

Descrio
Sai do loop WHILE...DO, DO...WHILE, ou DO...UNTIL que est sendo executado. O prximo
comando a ser executado ser o que est imediatamente aps ao comando END associado ao
loop que est sendo executado. Se o comando BREAK for colocado fora de qualquer loop, o
ProModel sair de toda a lgica.

BREAKBLK

Sintaxe
BREAKBLK

Descrio
Sai do bloco de comando que est sendo executado. O prximo comando a ser executado ser o
que est imediatamente aps o comando END do bloco que est sendo executado. Se um
BREAKBLK colocado fora de qualquer bloco de comando, o ProModel sair de toda a lgica.

BELGE Engenharia e Sistemas


Simulao PROMODEL

15

CAP()

Sintaxe
CAP(<local>)
GROUP CAP(Loc1)

Descrio
Retorna a capacidade total de um local. CAP() pode ser usado para preparar um lote de entidades
para preencher um local.

CALDAY()

Sintaxe
CALDAY()

Descrio
A funo CALDAY() corresponde ao dia da semana da data no calendrio, seja no perodo de
aquecimento ou a partir da data de incio da simulao, no menu Simulao > Opes. Uma vez
que o CALDAY() reinicia com o advento de uma nova semana, todo dia de semana retornar o
mesmo valor (isto , quarta-feira ir sempre retornar o valor 3).

Nota
O CALDAY() funciona somente quando voc seleciona a data no calendrio na caixa de dilogo
do menu Simulao > Opes.

BELGE Engenharia e Sistemas


Simulao PROMODEL

16

CALDOM()
Sintaxe
CALDOM()

Descrio
Esta funo retorna com o dia do calendrio, seja no perodo de aquecimento ou a partir da data
de incio da simulao, no menu Simulao > Opes.. Os valores retornados por esta funo
sero inteiros e dentro do intervalo de 1 a 31. Pode ser utilizada em qualquer parte da lgica do
Promodel, no entanto, s funcionar se o perodo de simulao for selecionado para rodar como
calendrio.

CALHOUR()

Sintaxe
CALHOUR()

Descrio
A funo CALHOUR() corresponde a hora da data no calendrio seja no perodo de aquecimento
ou a partir da data de incio da simulao, no menu Simulao > Opes. Uma vez que esta
funo est diretamente ligada ao relgio de 24-horas mostrado na tela durante a simulao,
CALHOUR() nunca vai retornar um valor maior que 23.

Nota
O CALHOUR() trabalha somente quando voc seleciona uma data no calendrio na caixa de
dilogo sob o menu Simulao > Opes.

BELGE Engenharia e Sistemas


Simulao PROMODEL

17

CALMIN()

Sintaxe
CALMIN()

Descrio
A funo CALMIN() corresponde ao minuto da data no calendrio seja no perodo de aquecimento
ou a partir da data de incio da simulao, no menu Simulao > Opes. Como esta funo est
diretamente ao relgio de 24 horas mostrado na tela durante a simulao, CALMIN() nunca
retornar um valor maior que 59

CALMONTH()

Sintaxe
CALMONTH()

Descrio
Esta funo corresponde ao minuto de uma data especfica do calendrio seja no perodo de
aquecimento ou a partir da data de incio da simulao, no menu Simulao > Opes.
CALMonth() sempre retornar um valor entre 1 e 12. Pode ser utilizada em qualquer parte da
lgica do Promodel, no entanto, s funcionar se o perodo de simulao for selecionado para
rodar como calendrio.

Exemplo
If CalMonth()=12 THEN WAIT 20
Else Wait 10

BELGE Engenharia e Sistemas


Simulao PROMODEL

18

CALYEAR()

Sintaxe

CALYEAR()

Descrio
Esta funo corresponde ao ano de uma data especfica do calendrio seja no perodo de
aquecimento ou a partir da data de incio da simulao, no menu Simulao > Opes. Pode
ser utilizada em qualquer parte da lgica do Promodel, no entanto, s funcionar se o perodo de
simulao for selecionado para rodar como calendrio.

CHAR()

Sintaxe
CHAR(<expresso>)
CHAR(10)

Descrio
Retorna o caractere ASCII correspondente ao valor do resultado da expresso. Esta funo til
para gerar caracteres ASCII que no podem ser digitados, como caracteres acentuados. Esta
funo quase sempre usada em conjunto com uma expresso string e o operador de
concatenao ($).
O nmero correspondente ao caractere ASCII varia de computador para computador dependendo
do ajuste de caracteres especificado no arquivo config.sys de seu computador. Para determinar o
nmero correspondente ao caractere ASCII no seu computador, execute o modelo CHAR.MOD
que est no diretrio PROMOD4/MODELS/REFS. Veja o arquivo que este modelo gera chamado
CHAR.TXT no mesmo diretrio.

BELGE Engenharia e Sistemas


Simulao PROMODEL

19

CLOCK

Sintaxe
CLOCK({<unidade de tempo>})
IF CLOCK(DAY) >= 1.5 THEN PAUSE
Attr1 = CLOCK()

Descrio
Retorna o valor do tempo de simulao na unidade especificada. As unidades de tempo devem
ser consistentes ao comparar valores. Se um atributo tem seu tempo em minutos, qualquer valor
de tempo comparado com este atributo deve estar em minutos.
Quando nenhuma unidade de tempo especificada nos parnteses na funo CLOCK, ser
utilizada a unidade de tempo padro definida no General Information.

CLOSE

Sintaxe
CLOSE <nome do arquivo>
CLOSE Arquivo_de_Chegada
CLOSE ALL

Descrio
Fecha um arquivo que foi previamente escrito com WRITE, WRITELINE, XWRITE, ou lido com
READ. Use CLOSE quando acabar de usar um arquivo para liberar recursos do sistema. O
arquivo ser automaticamente reaberto para ser lido ou escrito, caso tenha sido fechado. Todos
os arquivos abertos so automaticamente fechados no final da simulao. Este comando
especialmente til quando voc est usando vrios arquivos externos e quer economizar recursos
do sistema.

BELGE Engenharia e Sistemas


Simulao PROMODEL

20

COMBINE
Sintaxe
COMBINE <expresso> {AS <nome da nova entidade>}
COMBINE Var1
COMBINE 3 AS EntQ
COMBINE Var1 AS ENT(Attr1)
Descrio
Acumula e consolida uma quantidade especfica de entidades em uma entidade, opcionalmente
com um nome diferente. Diferentemente do comando GROUP, entidades combinadas perdem sua
identidade e seus atributos e no podem ser posteriormente desagrupadas. Use COMBINE
quando vrias entidades devem ser combinadas, como quando oito velas para carro devem ser
combinadas em uma caixa. Note que aps vrias entidades terem sido combinadas em um local,
nenhuma estatstica de qualquer das entidades combinadas naquele local poder ser colhida.
Quando for especificado COMBINE <expresso> AS <nome da nova entidade> na lgica de
operao, deve haver um outro bloco de operao no mesmo local. Neste caso, a entidade que
entra no novo bloco de operao a nova entidade especificada no comando COMBINE.

COMMENTS

Sintaxe
#
Sinaliza o incio de uma linha de comentrio. O ProModel ir ignorar todos os caracteres
do resto da linha.
//
Sinaliza o incio de uma linha de comentrio. O ProModel ir ignorar todos os caracteres
do resto da linha. Este smbolo funciona exatamente como o smbolo #.
/*...*/ Sinaliza o incio de vrias linhas de comentrio. O ProModel ir ignorar todos os
caracteres aps o /*at achar o */. Use este tipo de comentrio para explicaes longas e para
evitar que o ProModel execute longas pores de lgica durante a depurao do modelo
(debugging).
Descrio
Comentrios so notas para o modelador dentro de blocos de lgica. O ProModel os ignora, mas
eles podem ser teis para explicar a lgica quando mais de uma pessoa estiver usando o modelo.

BELGE Engenharia e Sistemas


Simulao PROMODEL

21

CONTENTS()

Sintaxe
CONTENTS(<local>{,<tipo de entidade>})
LOAD CONTENTS(Loc1)
JOIN CONTENTS(Loc1,EntA) EntA

Descrio
Retorna o nmero total de entidades de um local ou o nmero de entidades de um certo tipo que
esto naquele local. Use CONTENTS() para tomar decises baseadas na ocupao do local.
Usando CONTENTS() para controlar o nmero de entidades em um local exige menos passos e
permite mais flexibilidade que o uso de variveis para contar o nmero de entidades que entram e
que saem de um local. Por exemplo, a segunda sintaxe acima, faz com um comando o que
normalmente exigiria vrios comandos sem a funo CONTENTS().

CREATE

Sintaxe
CREATE <expresso> { AS <nome da entidade>}
{TAKE {<expresso2>} <recurso>,...}
CREATE 10 AS EntX
CREATE 2 AS EntB TAKE 1 Res1, 2 Res2
CREATE Var1 AS Ent(Var2) TAKE Var3 Res(Var4)
Descrio
Cria um nmero especfico de entidades adicionais entidade original e copia todos os atributos
da entidade original para cada nova entidade. A primeira entidade criada pode, opcionalmente,
apanhar qualquer um dos recursos que estavam sendo utilizados pela entidade que a criou. As
novas entidades criadas no exigem capacidade adicional do local e so processadas
imediatamente.
O comando CREATE pode simular a criao de papis que precisam ser carregados por algum
para outro local para serem aprovados enquanto a entidade base continua processando. Antes
que a entidade base possa sair do local, os papis devem ser aprovados e roteados de volta para
o local original onde se juntam com a entidade base.
BELGE Engenharia e Sistemas
Simulao PROMODEL

22

DEBUG

Sintaxe
DEBUG

Descrio
Ativa o depurador do ProModel (debugger). Use DEBUG para andar pela lgica, comando por
comando, e examinar valores de atributos e de variveis enquanto desenvolve o modelo. Quando
o modelo est funcionando, os comandos DEBUG so geralmente removidos.

DEC

Sintaxe
DEC <nome>{,<expresso>}
DEC Var1
DEC Attr1,5
Descrio
Decrementa uma varivel, elemento de matriz, ou atributo, do valor especificado pela expresso
numrica. Para decrementar um varivel, atributo, ou elemento de matriz quando a entidade
realmente sai de um local, use DEC na lgica de movimentao.

BELGE Engenharia e Sistemas


Simulao PROMODEL

23

DISPLAY

Sintaxe
DISPLAY <expresso1> {,<expresso2>}
DISPLAY Var1 = $ Var1 $ e Attr1 = $ Attr1
DISPLAY A quantidade atual de entidades :, Var1
DISPLAY Comeando agora o centsimo processo
DISPLAY Numero_na_Fila

Descrio
Pausa a simulao e mostra uma mensagem. A simulao ir continuar quando o usurio
selecionar OK. O smbolo ($) deve ser usado para colocar um valor numrico dentro da
mensagem (como do primeiro exemplo de sintaxe acima). As funes ENT(), LOC(), e RES() iro
mostrar o nome da entidade, local, ou recurso.

DO...UNTIL

Sintaxe
DO <bloco de comandos> UNTIL <expresso>
DO INC Var1 UNTIL Matriz1[Var1] <> 10

DO
BEGIN
INC Var2,5
WAIT 5 sec
END
UNTIL FreeCap(Loc1) > 5

BELGE Engenharia e Sistemas


Simulao PROMODEL

24

Descrio
Repete um comando ou bloco de comandos continuamente enquanto a condio se mantiver
falsa. DO...UNTIL um loop com uma condio de sada, significando que o loop ser sempre
executado pelo menos uma vez. Use DO...UNTIL quando uma operao ser sempre executada
no mnimo uma vez e possivelmente mais vezes.

DO...WHILE

Sintaxe
DO <bloco de comandos> WHILE <expresso>
DO INC Var1 WHILE Matriz1[Var1] <> 10
DO
BEGIN
INC Var2,5
WAIT 5 sec
END
WHILE FreeCap(Loc1) > 5

Descrio
Repete um comando ou bloco de comandos continuamente enquanto a condio se mantiver
verdadeira. DO...WHILE um loop com uma condio de sada, significando que o loop ser
sempre executado pelo menos uma vez. Use DO...WHILE para processos que devem ser
executados pelo menos uma vez e possivelmente outras. Tenha cuidado quando usar com uma
funo do sistema (por exemplo, FREECAP()) para assegurar que o sistema no entre em um
loop infinito. Por exemplo, eliminando o WAIT 5 sec no exemplo acima ir fazer com que o
sistema entre em um loop infinito porque no h um intervalo de tempo dentro do loop.

BELGE Engenharia e Sistemas


Simulao PROMODEL

25

DOSLOAD

Sintaxe
DOSLOAD <expresso> {IN <tempo>} {,prioridade}
DOSLOAD 5,99
DOSLOAD 5 IN 30 min
DOSLOAD Var1 IN 2 Hr, 99

Descrio
Carrega um nmero especfico de entidades e muda o nome da entidade original para o nome da
ltima entidade que foi carregada. Este comando fornecido para compatibilizar com os modelos
feitos no ProModelPC (antiga verso DOS do ProModel). As entidades no podem ser
descarregadas depois de serem carregadas com o comando DOSLOAD. Elas so unidas ou
combinadas em uma entidade. O comando DOSLOAD automaticamente transfere as
propriedades de qualquer entidade carregada para a entidade base. Se voc no quiser que isto
acontea, voc deve usar os comandos LOAD e RENAME.

DOWN

Sintaxe
DOWN <nome do downtime>, {<prioridade>}
Descrio
Ativa a parada de um local por este comando, desde que a parada seja pr-definida anteriormente
como parada por chamada. Quando este comando executado, ser acionada a parada que
tentar executar sua lgica. A execuo da mesma depender da condio do local e da
prioridade da chamada da parada. Pode ser utilizada em qualquer lgica do Promodel exceto nas
lgicas de inicializao e trmino.

BELGE Engenharia e Sistemas


Simulao PROMODEL

26

DOWNQTY()

Sintaxe
DOWNQTY(<local> ou <recurso>)
IF DOWNQTY(Loc1) > 3 THEN ROUTE 2
DISPLAY Total de Res1 parados agora: $ DOWNQTY(Res1)
Descrio
Retorna o nmero de unidades do local ou recurso parados naquele instante. Use esta funo
para tomar decises baseadas em como unidades do local ou recurso esto parados. Por
exemplo, se muitas unidades esto paradas, uma ordem pode chamar vrias unidades de volta
para o servio.

DTDELAY()

Sintaxe
DTDELAY(<unidade de tempo>)
WAIT Attr1 DTDELAY(Min)
DISPLAY O atraso da parada foi de $DTDELAY(Days)$ dias
Retorna a diferena entre o momento da simulao em que a parada no-premptiva estava
programada para ocorrer e o momento no qual ela realmente ocorreu. Use DTDELAY para
determinar paradas que foram adiadas porque o trabalho ainda no estava completo. A funo
DTDELAY pode ser usada na lgica de parada (downtime logic) para assegurar que um local volte
ao trabalho em um momento especfico.
Tambm retorna a diferena entre o momento no qual a parada preemptada e o momento em
que ela executada.

BELGE Engenharia e Sistemas


Simulao PROMODEL

27

DTLEFT()

Sintaxe
DTLEFT <unidade de tempo>
Shift_Time = DTLEFT()

Descrio
A funo DTLEFT retorna o valor do tempo que falta para que a parada se acabe e o local ou
recurso volte ao trabalho. O valor retornado ser na unidade especificada na tabela General
Information a no ser que seja especificada outra unidade na funo, por exemplo, DTLEFT(hr).

DYNPLOT()

Sintaxe
DYNPLOT <nomedografico>

Descrio

utilizado para fazer a mudana automtica para um grfico dinmico pr-definido. Seu uso
similar ao comando view. So pr-definidos durante o funcionamento da simulao e podem ser
chamadas de qualquer parte da lgica do Promodel.
Exemplo
Se aps um perodo de duas horas deseja-se obter um grfico do valor do estoque em processo
(WIP) versus custo e depois de quatro horas deseja-se que este grfico dinmico desaparea,
basta utilizar o seguinte comando:
WAIT 2 HR
DYNPLOT Wip vs Custv
Wait 2 HR
DYNPLOT ""
Nota:
Usando a sintaxe sem nenhum nome entre aspas faz com que a janela aberta com o grfico dinmico
seja fechada.
BELGE Engenharia e Sistemas
Simulao PROMODEL

28

END

Sintaxe
END ou }
WHILE FreeCap(Loc1) > 5 DO
BEGIN
INC Var2,5
WAIT 5 sec
END

Descrio
Define um bloco de comandos juntamente com o comando BEGIN correspondente. BEGIN e END
so quase sempre usados em conjunto com outros comandos como IF-THEN e DO...WHILE. Para
todo comando END deve haver um comando BEGIN correspondente.

ENT()

Sintaxe
ENT(<nmero de nome-ndice da entidade>)
SEND 10 ENT(Var1) TO Loc1
DISPLAY Ent A foi combinada com $ ENT(Var1)
Descrio
Converte um nmero de nome-ndice ou um valor inteiro no nome da entidade. Use esta funo
quando um comando ou funo precisa do nome da entidade cujo nome-ndice foi guardado em
um atributo, varivel, ou alguma outra expresso. Tambm pode ser usada para variar a entidade
a qual o comando se refere usando uma expresso para o nmero de nome-ndice. Quando
usada em uma expresso esperando por uma srie (string), como na segunda sintaxe acima, o
ProModel ir converter o nmero de nome-ndice para o nome da entidade atual.

BELGE Engenharia e Sistemas


Simulao PROMODEL

29

ENTITY()

Sintaxe
ENTITY({<expresso>})
ENTITY()
ENTITY(Var1)

Descrio
Retorna o nmero de nome-ndice da entidade corrente ou de uma entidade particular em um
grupo de entidades. Esta funo especialmente til em macros e subrotinas que variam
dependendo da entidade que as chama. Use ENTITY() para determinar que tipo de entidade esta
sendo processada quando o tipo ALL est especificado no local. Por exemplo, se uma rea
comum suporta vrias peas diferentes com praticamente o mesmo processo, use um comando
IF-THEN em conjunto com a funo ENTITY() para ter blocos de comandos individuais para
detalhar a operao. Esta funo retorna um valor inteiro.

ENTRIES()

Sintaxe
ENTRIES(<local>)
DISPLAY LocA teve $ ENTRIES(LocA) $ entradas.

Descrio
Retorna o total de entradas de um local. Esta funo retorna um valor inteiro.

BELGE Engenharia e Sistemas


Simulao PROMODEL

30

EXP()

Sintaxe
EXP(<expresso>)
Real1 = EXP(Real2)

Descrio
Retorna o exponencial de uma expresso. Esta funo equivalente a ex.

FORLOCATION()

Sintaxe
FORLOCATION()
IF FORLOCATION() THEN PRIORITY 100
IF FORLOCATION() THEN
INC Arr1[1,2]
ELSE
INC Arr1 [2,2]

Descrio
Esta funo retorna TRUE se o objeto que estiver executando a lgica de turno (shift) ou de
parada (break) for um local.

BELGE Engenharia e Sistemas


Simulao PROMODEL

31

FORMAT()

Sintaxe
FORMAT(<expresso>,<dgitos antes do decimal> {,<dgitos aps o decimal>})
DISPLAY O valor da Var1 $ FORMAT(Var1,5)

Descrio
Converte um nmero em um string no formato especificado. Quase sempre FORMAT() usado
com o smbolo ($) e outro string, como na sintaxe acima. FORMAT usualmente usado em
conjunto com o comando XWRITE para produzir uma sada formatada.

FORRESOURCE()

Sintaxe
FORRESOURCE()
IF FORRESOURCE() THEN GET Res1

Descrio
Esta funo retorna TRUE se o objeto que estiver executando a lgica de turno (shift) ou de
parada (break) for um recurso.

BELGE Engenharia e Sistemas


Simulao PROMODEL

32

FREE

Sintaxe
FREE {<quantidade>} <recurso>, {{<quantidade>}<recurso>...}
FREE Res1,2 Res2,5 Res3
FREE ALL
FREE RES(Attr1)

Descrio
Libera os recursos que esto possudos pela entidade corrente. Estes recursos devem ter sido
capturados pela entidade com os comandos GET ou JOINTLY GET.

FREECAP()

Sintaxe
FREECAP(<local>)
SEND FREECAP(Loc1) EntA TO Loc1

Descrio
Retorna a capacidade disponvel de um local. Esta funo retorna um valor inteiro.

BELGE Engenharia e Sistemas


Simulao PROMODEL

33

FREEUNITS()

Sintaxe
FREEUNITS(<local> ou <recurso>)
USE (FREEUNITS(Res1)) Res1 FOR 5 min

Descrio
Retorna as unidades livres de um local ou recurso.

GET

Sintaxe
GET {<quantidade>} <recurso> {,<prioridade1>{,<prioridade2>}}
{AND ou OR {quantidade} <recurso> {,<prioridade1>{,<prioridade2>}}}
GET Res1
GET Crane3, 5, 32
GET Res3, 20 AND (Crane5, 15 OR Crane2, 12, 40)
GET 2 Res2

Descrio
Captura um nmero especfico de recursos assim que estes estiverem disponveis. Se a entidade
j possui um dos recursos solicitados, a entidade vai tentar capturar uma unidade adicional deste
recurso. Quando estiver capturando mltiplos recursos, cada recurso ser capturado assim que
estiver disponvel at que todos os recursos sejam capturados.
Um recurso capturado com o comando GET em um local e depois liberado com um comando
FREE em outro local no ser utilizado para movimentar a entidade entre os locais a no ser que
isto seja especificado com o comando MOVE WITH na lgica de movimentao. O ProModel usa
a entidade que vai estar movimentando o recurso de um local para o outro e o recurso no ser
visvel quando estiver se movendo com a entidade.
BELGE Engenharia e Sistemas
Simulao PROMODEL

34

Excetuando-se na lgica de movimentao, os recursos capturados com o comando GET podem


ser premptados apenas quando a entidade que estiver possuindo o recurso estiver executando um
tempo de WAIT ou USE. Se o recurso premptado do durante um destes tempos, o tempo
continuar, de onde parou, quando o recurso estiver disponvel.
Para todo GET deve haver o FREE correspondente ou um erro ocorrer quando a entidade sair do
sistema. Se uma entidade possui um ou mais recursos e subsequentemente carregada ou
agrupada com outra entidade, o recurso no ser liberado at que ela seja descarregada ou
desagrupada.

GETCOST()

Sintaxe
GETCOST()
GETCOST()

Descrio
Retorna o custo da entidade corrente que est executando a lgica. Use esta funo para retornar
o custo real acumulado da entidade at aquele local ou momento da simulao.

GETREPLICATIONNUM()

Sintaxe
GETREPLICATIONNUM()

Descrio
Retorna o numero da replicao atual. Pode ser utilizada em qualquer parte da lgica do
Promodel.

BELGE Engenharia e Sistemas


Simulao PROMODEL

35

GETRESRATE()

Sintaxe
GETRESRATE({<recurso>})
GETRESRATE()
GETRESRATE(Operador1)

Descrio
Retorna o fator de custo especificado na janela de custos (Cost dialog) ou atravs da funo
SETRATE() para o recurso capturado pela entidade que chamou a funo. Quando usado sem o
parmetro opcional <recurso>, esta funo retorna o fator de custo do recurso que foi capturado
mais recentemente pela entidade.
Se uma entidade captura mltiplas unidades de um recurso, a funo retorna o fator de custo da
unidade do recurso que foi capturado mais recentemente pela entidade.

GOTO

Sintaxe
GOTO <label ID>
GOTO LabelA

Descrio
Pula para o comando identificado pelo rtulo (label) designado. Um rtulo deve seguir as regras
normais para os nomes, com a exceo de que seguido por dois pontos (:) na lgica. O
comando GOTO pode ser substitudo por comandos IF...THEN...ELSE.

BELGE Engenharia e Sistemas


Simulao PROMODEL

36

GRAPHIC

Sintaxe
GRAPHIC <expresso>
GRAPHIC 2
GRAPHIC Var1

Descrio
Muda o aspecto grfico corrente de uma entidade ou recurso. O ProModel designa grficos da
biblioteca grfica (graphic library) para entidades e recursos atravs do editor de entidades e de
recursos. Use o comando GRAPHIC para mostrar o resultado de um processo. Por exemplo,
quando um avio tem suas asas colocadas, o aspecto grfico pode mudar de uma fuselagem sem
asas para uma fuselagem com asas.

GROUP

Sintaxe
GROUP<expresso> {AS <nome da entidade>}
GROUP (Var1+Var2)
GROUP 10 AS EntX

Descrio
Acumula e temporariamente consolida uma quantidade especfica de entidades em uma nica
entidade. As entidades individuais formando o grupo mantm sua identidade, atributos, e recursos
e so separadas do grupo quando o comando UNGROUP encontrado. A primeira entidade
processada do grupo toma todos os recursos que o grupo possui. As entidades de um grupo
podem ser agrupadas a um grupo maior, em outro local.

BELGE Engenharia e Sistemas


Simulao PROMODEL

37

GROUPQTY()
Sintaxe
GROUPQTY({<nome da entidade>})
ORDER GROUPQTY(Part1) Part2 TO Loc1
IF GROUPQTY(Part1) > 5 THEN ...
Descrio
Retorna o nmero de entidades de um tipo especfico em uma entidade agrupada ou carregada.
Se no for especificado nenhum nome, retorna a quantidade total do grupo. Se for uma entidade
carregada, ir retornar somente o nmero de entidades carregadas, e no a entidade base. Por
exemplo, se quatro peas forem carregadas em um Pallet e se for dado ao conjunto o nome de
Grupo, a funo GROUPQTY() ir retornar o nmero de peas (por exemplo 4), o que no inclui o
Pallet.
No caso de grupos hbridos com vrios nveis de grupos e carregamentos misturados, a funo
GROUPQTY() retorna o nmero de entidades apenas do ltimo nvel.

IF...THEN...ELSE

Sintaxe
IF <expresso> THEN <comando> {ELSE <comando2>}
IF Var1 = 5 THEN WAIT 2
IF (Attr2 = 5) OR (Var5 <>0) THEN WAIT 2 min ELSE WAIT 3 min
IF Var1 > Attr2 THEN
BEGIN
Var1 = Attr2
WAIT Attr1
END
ELSE
BEGIN
INC Var1
WAIT Attr2
END
BELGE Engenharia e Sistemas
Simulao PROMODEL

38

Descrio
Executa um comando ou bloco de comandos se a expresso for verdadeira. Se um comando
ELSE estiver incluso e a expresso for falsa, um comando ou bloco de comandos alternativo ser
executado. Para que o comando IF-THEN seja quebrado em mais de uma linha, o primeiro item
da linha seguinte deve ser THEN, ou AND, ou OR. O comando IF-THEN somente se aplica ao
prximo comando ou bloco de comandos em uma lgica. Qualquer comando fora do BEGIN e
END ser executado normalmente. Veja exemplos em BEGIN e END.

INC
Sintaxe
INC <nome>{,<expresso>}
INC Var1
INC Attr2, 5+Var1

Descrio
Incrementa uma varivel, elemento de matriz, ou atributo, pelo valor de uma expresso numrica
especificada. Quando estiver contando o nmero de entidades que foram processadas em um
local, incremente a varivel no final da lgica do processo.

INCENTCOST
Sintaxe
INCENTCOST <expresso>
INCENTCOST 15
INCENTCOST 15

Descrio
Possibilita que voc incremente o custo (positiva ou negativamente) da entidade corrente de uma
certa quantidade. Use esta funo para adicionar custos ao custo atual acumulado da entidade
corrente.

BELGE Engenharia e Sistemas


Simulao PROMODEL

39

INCLOCCOST

Sintaxe
INCLOCCOST <expresso>
INCLOCCOST 15
INCLOCCOST 15

Descrio
Possibilita que voc incremente o custo (positiva ou negativamente) do local corrente, por uma
certa quantidade. Use esta funo para adicionar custos ao custo atual acumulado do local
corrente.

INCRESCOST

Sintaxe
INCRESCOST <expresso de custo> {,<recurso>}
INCRESCOST 10
INCRESCOST GETRESRATE(Operador1)*20, Operador1

Descrio
Possibilita que voc incremente o custo (positiva ou negativamente) de um recurso capturado pela
entidade que estiver executando o comando. Use esta funo para adicionar custos ao custo atual
do recurso. Quando utilizado sem o parmetro opcional <recurso>, este comando incrementa o
fator de custo do recurso mais recentemente capturado pela entidade.
Se uma entidade tem muitas unidades de um recurso, o custo distribudo equilibradamente para
cada unidade.

BELGE Engenharia e Sistemas


Simulao PROMODEL

40

INT

Sintaxe
INT <nome1>{=<expresso>,<nome2>=<expresso2>...}
INT Contador
INT Contador = 1
INT Contador = 1, Test = FREECAP(Loc2)

Descrio
Cria uma varivel local do tipo inteiro. Variveis locais trabalham quase da mesma maneira que os
atributos, exceto que elas s estaro disponveis dentro da lgica que as declarou. Uma nova
varivel ser criada para cada entidade que encontrar o comando INT. As variveis locais no
esto diretamente disponveis para subrotinas, os quais possuem suas prprias variveis locais.
Entretanto, uma varivel local pode ser passada para uma subrotina como um parmetro. As
variveis locais esto disponveis dentro das macros que so referenciadas.
Use variveis locais onde for possvel para testar as variveis nos loops WHILE...DO,
DO...WHILE, e DO...UNTIL.

JOIN

Sintaxe
JOIN <expresso> <nome da entidade> {,<prioridade>}
JOIN 4 EntA
JOIN Var1 EntA, 1

Descrio
Une uma quantidade especfica de um tipo designado de entidade entidade corrente. As
entidades unidas entidade corrente perdem sua identidade e quaisquer recursos possudos
pelas entidades unidas sero automaticamente transferidos para a entidade corrente. Use JOIN

BELGE Engenharia e Sistemas


Simulao PROMODEL

41

para simular um componente sendo montado na pea principal, tal como quando asas so
montadas na fuselagem do avio.
As entidades que sero unidas, devem estar roteadas para o local corrente atravs da regra JOIN.
A entidade corrente espera at que tenham sido roteadas entidades suficientes que preencham
suas exigncias, e que tambm tenham sido roteadas para o local corrente atravs da regra JOIN.
A entidade resultante conserva os atributos e o nome da entidade corrente. Para transferir
atributos da entidade que vai ser unida para a entidade corrente, copie o atributo desejado para
uma varivel global na lgica de sada da entidade que vai ser unida. Depois designe a varivel
global ao atributo da entidade corrente aps o comando JOIN na lgica do processo.
Todos os recursos possudos pela entidade que ser unida sero transferidos para a entidade
base.
Para unir uma entidade com um valor de atributo especfico, a outra entidade com o mesmo valor
de atributo, use o comando MATCH adicionalmente ao comando JOIN.

JOINTLY GET

Sintaxe
JOINTLY GET {<quantidade>} <recurso> {,<prioridade1>{,<prioridade2>}}
AND ou OR {<quantidade>} <recurso> {,<prioridade1>{,<prioridade2>}}}
JOINTLY GET 3 Res1,5
JOINTLY GET 2 Res1 OR 3 Res2
JOINTLY GET Crane2, 15, 20 AND (Res2 OR Res3)
JOINTLY GET 2 Res(Atributo1)

Descrio
Captura um nmero especfico de recursos quando este nmero de recursos est disponvel.
Quando estiver capturando vrios recursos, nenhum dos recursos ser capturado at que todos
estejam disponveis. Se a entidade j possuir um dos recursos solicitados, a entidade ainda assim
vai tentar capturar a quantidade especificada.

BELGE Engenharia e Sistemas


Simulao PROMODEL

42

LAST()

Sintaxe
LAST()
Var1=LAST()
IF LAST() = 13 THEN Var3 = 0
IF LAST() = PathNet1.N1 THEN INC Var1

Descrio
Retorna o nmero de nome-ndice do n do qual o recurso acaba de sair. LAST() pode ser til
para escolher o grfico apropriado ou para reajustar (reset) uma varivel. Voc pode tambm
checar o nmero de nome-ndice do ltimo n especificando <nome da caminho (path
network)>.<nome do n>. Por exemplo, se voc quer saber se o ltimo n foi o N5 do caminho
Net3, voc pode especificar IF LAST() = Net3.N5 THEN ... na lgica de entrada do n (node
entry logic).

LN()

Sintaxe
LN(<expresso>)
Real1 = LN(Real2)

Descrio
Retorna o logaritmo natural de uma expresso.

BELGE Engenharia e Sistemas


Simulao PROMODEL

43

LOAD

Sintaxe
LOAD <expresso> {IFF <expresso>} {IN <tempo>} {,<prioridade>}
LOAD 5, 99
LOAD 5 IFF Attr3 > 2 IN 5 min
LOAD Capacidade_do_Pallet

Descrio
Carrega uma quantidade especfica de entidades na entidade corrente. As entidades carregadas
mantm sua identidade e podem ser descarregadas com o comando UNLOAD. As entidades
carregadas devem ser roteadas para o local de carregamento usando a regra de roteamento
LOAD. Entidades adicionais podem ser acrescentadas entidade carregada anteriormente,
atravs de comandos LOAD adicionais. Use LOAD para modelar peas colocadas em um
container ou pallet, quando elas precisam ser removidas mais tarde. Se um recurso possui a
entidade carregada quando as entidades so carregadas sobre a entidade base, o recurso fica
com a entidade base.

LOC()

Sintaxe
LOC(<nmero de nome-ndice do local>)
ORDER 10 EntA TO LOC(5)
DISPLAY EntA chegou no $ LOC(5)

Descrio
Converte o nmero de nome-ndice ou valor inteiro em um nome de local. Use esta funo quando
um comando ou funo precisa do nome de um local cujo nmero de nome-ndice est guardado
em um atributo, varivel, ou alguma outra expresso. Quando usando em uma expresso string
como no exemplo da segunda sintaxe acima, o ProModel ir converter o nmero de nome-ndice
para o nome do local. Se a expresso aponta para um local de mltiplas unidades, a funo LOC()
ir retornar o nome do local principal.

BELGE Engenharia e Sistemas


Simulao PROMODEL

44

LOCSTATE()

Sintaxe

LOCSTATE (<nomedolocal>)

Descrio
Retorna um valor indicando o estado atual de determinado local. Os valores retornados iro variar
entre 1 e 7 que significam respectivamente:
1 = ocioso/vazio;
2 = setup;
3 = operao;
4 = bloqueado;
5 = esperando;
6 = em atividade (mltipla capacidade);
7 = parado.

LOCATION()

Sintaxe
LOCATION()
Attr1 = LOCATION()
IF LOCATION() = 2 THEN WAIT 4 min

Descrio
Retorna o nmero de nome-ndice do local corrente. Esta funo especialmente til em macros
e subrotinas que variam dependendo da lgica do local que as chama. Usando a funo
LOCATION() com o comando IF-THEN, a macro ou subrotina pode agir diferentemente
dependendo do local que a chamou. Alm disso, a mesma tcnica pode ser usada para
determinar que local est sendo executado quando ALL usado como local de processo.
BELGE Engenharia e Sistemas
Simulao PROMODEL

45

LOG

Sintaxe
LOG <string>,<expresso>
LOG Tempo da Atividade, Attr1

Descrio
Subtrai o valor do parmetro expresso do tempo de simulao corrente, e guarda o resultado
com uma string em um arquivo texto chamado <nome do modelo>.LAP quando no h cenrios; e
L01 para o primeiro cenrio, L02 para o segundo cenrio, e assim por diante quando cenrios
esto sendo executados. O ProModel assume que o tempo guardado na expresso est na
unidade de tempo padro escolhida na janela General Information. Use o comando LOG para
gravar o tempo entre um comando e outro, armazenando o tempo do primeiro comando em um
atributo, varivel, ou elemento de matriz com CLOCK() e usando o mesmo atributo, varivel, ou
elemento de matriz como a expresso no comando LOG. Use o comando LOG para determinar o
tempo de produo ou ao produo em um determinado trecho da planta.

MAPARR

Sintaxe
MAPARR <nome da matriz>{TO<nome da varivel>}
MAPARR Array1 TO Var10
MAPARR Array5

Descrio
Comeando com uma varivel que voc especifica, o comando MAPARR mapeia cada clula
individual de uma matriz para uma varivel nica (isto , se voc definir 12 clulas para a matriz, a
matriz ser mapeada para 12 variveis). Para mostrar o valor da clula de uma matriz mapeada,
crie um grfico de varivel para a varivel qual voc mapeou a clula da matriz. O ProModel
coleta estatsticas para uma clula da matriz atravs da varivel qual voc mapeou a clula.

BELGE Engenharia e Sistemas


Simulao PROMODEL

46

(Escolha estatsticas Bsicas ou Sries Temporais para um varivel mapeada, em seguida


observe o comportamento da varivel no mdulo de resultados estatsticos).
Se voc no especificar o nome da varivel opcional no comando, o ProModel vai desmapear a
matriz das variveis para qual voc a mapeou originalmente. Voc pode remapear matrizes
usando o comando MAPARR novamente.
Vide exemplo no Reference Manual do ProModel, para verificar em que ordem as clulas da
matriz referem-se s variveis.

MATCH

Sintaxe
MATCH <atributo>
MATCH Attr1

Descrio
Faz com que a entidade corrente espere at que o valor do atributo especificado seja igual ao
valor do mesmo atributo de outra entidade. As duas entidades devem ter um comando MATCH
especificado para o mesmo nome de atributo e podem estar em qualquer local do modelo,
incluindo o mesmo local e dois locais sem relao alguma. Entretanto, voc deve quase sempre
designar o valor do atributo para que este corresponda (MATCH) ao valor de uma varivel global
incrementada por cada entidade que voc correspondeu (matched), como pode ser visto no
exemplo do manual (reference guide).
Os locais usando o comando MATCH geralmente devem ser de mltipla capacidade pois caso
contrrio, eles no conseguiro processar nenhuma outra entidade at que a correspondncia
(match) seja feita. Alm disso, os locais usando MATCH geralmente devem ser do tipo sem
enfileiramento (non-queuning) para permitir que as entidades saiam quando a correspondncia
estiver feita.
Use o comando MATCH para corresponder duas partes especficas antes de mont-las, ou para
equivaler uma ordem de trabalho com uma tarefa completada.

BELGE Engenharia e Sistemas


Simulao PROMODEL

47

MOVE

Sintaxe
MOVE {FOR <expresso de tempo>}
MOVE FOR .25 min
MOVE FOR 3.2
MOVE

Descrio
Move a entidade para o fim de uma fila (queue) ou esteira transportadora (conveyor). Use o
comando MOVE para controlar o movimento de uma entidade em uma fila ou conveyor.
Se no houver nenhum comando MOVE, quando uma entidade entra em uma fila ou conveyor, ela
ir executar toda a lgica do processo definida para a entidade naquele local e depois se mover
para o fim da fila ou conveyor. Para filas, seu tempo de movimentao baseado na velocidade
da entidade e no comprimento da fila.
Se uma entidade que vai ser processada em uma fila ou conveyor encontrar o comando MOVE, a
entidade para de executar a lgica do processo, move-se at o fim da fila ou do conveyor durante
a quantidade de tempo apropriada, e depois continua a lgica do processo. O tempo de
movimentao de uma entidade em um conveyor calculado usando a seguinte frmula:
Tempo = (Comprimento do Conveyor Comprimento ou Largura da Entidade)/Velocidade do
Conveyor
Somente para as filas, o comando MOVE opcionalmente pode ser seguido do comando FOR e
depois de um tempo de movimentao. Se um tempo de movimentao especificado, a entidade
se move atravs da fila durante o tempo de movimentao especificado, sem considerar a
velocidade da entidade e o comprimento da fila. As entidades com menores tempos de
movimentao iro alcanar, mas no ultrapassar, as com um tempo de movimentao maior.
Se uma fila no estiver vazia quando uma entidade estiver entrando, o tempo de movimentao
continuar a ser contado mesmo se o grfico da entidade parar de se movimentar. Quando o
tempo de movimentao da entidade acabar, a entidade comear a executar a lgica que segue
o comando MOVE e depois estar disponvel para roteamento mesmo que o grfico da entidade
no parea estar no fim da fila.
Para um conveyor, se alguma lgica adicional seguir o comando MOVE, a entidade deve avanar
para a ltima posio do conveyor antes que a lgica restante seja executada.

BELGE Engenharia e Sistemas


Simulao PROMODEL

48

MOVE FOR

Sintaxe
MOVE FOR <tempo>
MOVE FOR 0
MOVE FOR 2.5 + Tempo_de_Limpeza
MOVE FOR N(8,.5) + 3 sec

Descrio
Usado para especificar a quantidade de tempo exigida para a movimentao da entidade. Um
tempo de movimentao igual a zero pode ser especificado para fazer com que eventos de outras
entidades que estejam ocorrendo no mesmo tempo de simulao sejam processados, antes que
seja processada qualquer lgica adicional para a entidade corrente. Se nenhum tipo de comando
de movimentao (MOVE FOR, MOVE ON, MOVE WITH) for especificado, a entidade
instantaneamente entra no local destinado e, imediatamente, comea a executar a lgica de
operao para este local.

MOVE ON

Sintaxe
MOVE ON <caminho>
MOVE ON StatPath2

Descrio
Use este comando para mover uma entidade por um caminho (path network). As entidades no
podem se mover por caminhos do tipo pontes rolantes usando este comando. Veja MOVE WITH.

BELGE Engenharia e Sistemas


Simulao PROMODEL

49

MOVE WITH

Sintaxe
MOVE WITH <rec1> {,{prior1}{,{prior2}{,{prior3}}}}
OR <rec2> {,{prior1}{,{prior2}{,{prior3}}}}
{FOR <tempo>} {THEN FREE}
MOVE WITH Ponte3, 99, 230, 425
MOVE WITH Operador1, 399 FOR 3 min
MOVE WITH Caminhao1, 99 THEN FREE
MOVE WITH Operador1 OR Operador2

Descrio
Este comando usado para mover uma entidade usando um recurso designado, como uma ponte
rolante ou uma empilhadeira. Com o operador OR, voc pode designar recursos alternativos para
movimentar a entidade. Neste caso, o comando captura o primeiro recurso designado na
expresso que estiver disponvel e realiza a movimentao. Assim que o local de destino fica
disponvel a entidade captura o recurso. Entretanto, se a entidade j possui um dos recursos ela
ir usar este recurso.
O comando tambm permite que voc determine uma prioridade (prior1) para acessar o recurso
designado. Se a entidade j possui o recurso, esta prioridade ignorada. Se o recurso for uma
ponte rolante, voc pode determinar outras duas prioridades: prior2 para a movimentao para
pegar a entidade e prior3 para a movimentao da entrega da entidade. Estas prioridades so
teis em situaes onde duas pontes usam o mesmo trilho na movimentao para pegar ou
entregar a entidade.
Se o recurso esttico, voc pode especificar um tempo (FOR <expresso de tempo>) para a
movimentao. Se o recurso dinmico, um tempo (FOR <expresso de tempo>) no valido. Se
voc utiliza (FOR <expresso de tempo>) com um recurso dinmico, o ProModel ignora o tempo.
O recurso ir mover-se baseado seja no tempo, seja na velocidade/distncia definida no mdulo
de caminhos (path networks).
O recurso usado para realizar a movimentao s liberado se a opo THEN FREE for utilizada.

BELGE Engenharia e Sistemas


Simulao PROMODEL

50

NEXT()

Sintaxe
NEXT()
Var1 = NEXT()
IF NEXT() = PathNet5.N11 THEN Var5 = 3

Descrio
Retorna o nmero de nome-ndice do n de destino do recurso. Use NEXT() para determinar em
que direo a entidade se dirige, e para escolher o aspecto grfico apropriado. Esta funo pode
ser usada para controlar a interferncia entre mltiplos transportadores no mesmo caminho (path
network). Voc tambm pode checar o nmero de nome-ndice do prximo n especificando
<nome do caminho>.<nome do n>. Por exemplo, se voc quiser saber se o prximo n o n N5
do caminho Net3, voc poderia especificar IF NEXT() = Net3.N5 THEN ... na lgica do n (node
entry logic).

ORDER

Sintaxe
ORDER <expresso> <entidade> {TO <local>}
ORDER 10 EntA TO Loc2
ORDER Attr_Qdd_Ordem ENT(Attr_da_Entidade) TO LOC(Attr_do_Loc)

Descrio
Faz com que um nmero especfico de entidades seja criado e colocado no sistema, em um local
designado. Se o local no tiver capacidade suficiente para todas as novas entidades, o excesso
ser destrudo. Os atributos da entidade criadora sero copiados para as entidades criadas. Use
ORDER para reabastecer inventrios quando uma condio particular ocorrer, como por exemplo
quando o inventrio atinge o nvel mnimo.

BELGE Engenharia e Sistemas


Simulao PROMODEL

51

OWNEDRESOURCE()

Sintaxe
OWNEDRESOURSE ({<expresso>})
OWNEDRESOURSE(2)
OWNEDRESOURSE(RESQTY())
OWNEDRESOURSE()

Descrio
Retorna o nmero de nome-ndice do ensimo recurso que est sendo usado pela entidade ou
pela parada (downtime) que est fazendo a funo de chamada. O parmetro da funo indica a
posio no recurso na lista cronolgica de recursos utilizados pela entidade. Por exemplo,
OWNEDRESOURCE(1) retorna o recurso utilizado a mais tempo da lista de recursos possudos e
assim por diante.
Quando usado sem um parmetro, esta funo retorna o ltimo recurso que a entidade capturou e
ainda possui. Se o valor do parmetro est fora do alcance da lista de recursos, ou se a entidade
ou parada (downtime) no momento no possui um recurso, a funo ir retornar o valor 0 (zero)
sem nenhum aviso ou mensagem de erro.
Um recurso premptado NO removido da lista mas marcado temporariamente para indicar que o
que o premptou no possui o recurso. Depois da preempo, quando o recurso continua o
processo original, ele conserva sua posio original na lista.

PAUSE

Sintaxe
PAUSE {<expresso>}
PAUSE
PAUSE Var1 = $ Var1
PAUSE Alcanou a metade da simulao.

BELGE Engenharia e Sistemas


Simulao PROMODEL

52

Descrio
Executa uma pausa na simulao e opcionalmente mostra uma mensagem em algum ponto de
interesse. Esta pausa permite ao usurio examinar o sistema com detalhes. Uma janela de
informao aparecer na tela quando a pausa ocorrer. A simulao continuar apenas quando o
usurio selecionar a opo Resume Simulation no menu Simulation.

PERCENTOP()

Sintaxe
PERCENTOP (<nomedolocal>)
Descrio
Retorna a porcentagem acumulada do tempo de operao de um local de capacidade unitria.
Este valor representa a porcentagem acumulativa do tempo em que um local processou uma
determinada entidade at o ponto onde a funo foi chamada. Se esta funo for utilizada para um
local de mltipla capacidade, o valor retornado ser sempre zero, j que esta funo s serve para
locais de capacidade unitria. Pode ser utilizada em qualquer parte da lgica do Promodel.

PERCENTUTIL()

Sintaxe
PERCENTUTIL (<nomedolocal>)
Descrio
Retorna a porcentagem acumulada de utilizao de um local especifico. O valor retornado
representa a porcentagem acumulativa da capacidade ocupada por este local at o momento em
que a funo chamada. Pode ser utilizada em locais de mltipla capacidade e capacidade
unitria e pode ser usado em qualquer parte da lgica do Promodel.

BELGE Engenharia e Sistemas


Simulao PROMODEL

53

PREEMPTOR()

Sintaxe
PREEMPTOR()
Var1 = PREEMPTOR()

Descrio
Identifica se uma parada (downtime) ou uma entidade que est solicitando a preempo. A
funo retorna o nmero de nome-ndice da entidade que est premptando; entretanto, a funo
retornar o valor 0 se o premptor for uma parada.

PRIORITY

Sintaxe
PRIORITY <expresso>
PRIORITY 199

Descrio
Este comando usado para mudar a prioridade do estado off-line do local ou recurso. Se a
prioridade menor que o valor ajustado anteriormente, o sistema ir checar se voc pode
preemptar o recurso ou local.

BELGE Engenharia e Sistemas


Simulao PROMODEL

54

PROMPT

Sintaxe
PROMPT <expresso>, <nome> {,<escolha1>:<expresso1>,
<escolha2>:<expresso2>,<escolha3>:<expresso3>...}
PROMPT Digite o nmero de entidades do processo:, Var2
PROMPT Digite o tamanho do lote a ser feito:, Var1, Grande:20, Medio:15 Pequeno:10

Descrio
Pausa a simulao e mostra seja uma mensagem com um campo de entrada, seja um menu para
que se escolha uma opo. O valor digitado ou selecionado alocado para uma varivel,
elemento de matriz, ou atributo em questo. Para que o comando PROMPT apresente um menu,
especifique uma ou mais escolhas como na Segunda sintaxe acima. O valor atual da varivel,
elemento de matriz, ou atributo usado como padro na caixa de dilogo. Um dos usos do
comando PROMPT a de dar a opo de mudar o tempo de operao representado por uma
varivel durante a simulao.

RAND()

Sintaxe
RAND(<expresso>)
RAND(10) min
ORDER RAND(10) EntA TO Loc1
IF RAND(100) > 45 THEN ROUTE 1

Descrio
Retorna um valor aleatrio n entre 0 e X (0

n < X) onde X o resultado da expresso.

Para gerar nmeros aleatrios entre a expresso e um nmero diferente de zero use a expresso
como o alcance entre o valor mximo e o valor mnimo. Depois adicione o valor mnimo ao nmero
aleatrio. Por exemplo, a expresso Attr1 = 2 + RAND(3) gera um nmero aleatrio maior que 2 e
menor que 5. Um mtodo alternativo usar uma distribuio uniforme.

BELGE Engenharia e Sistemas


Simulao PROMODEL

55

Esta funo retorna um nmero real mas que pode ser convertido para um inteiro. Para fazer com
que a funo RAND() gere valores aleatrios inteiros entre zero e um valor mximo, use a frmula,
Valor_Inteiro = RAND(X+1), onde X o mximo valor inteiro que pode ser retornado pela funo.
Por exemplo, para gerar um valor aleatrio e inteiro entre 0 e 6, use a frmula,
Valor_Inteiro=RAND(7). A parte RAND(7) da frmula vai gerar um valor real entre 0 e 6.999, mas
que ser truncado para um nmero inteiro entre 0 e 6. Portanto, quando estiver gerando valores
inteiros, verifique se o resultado da funo RAND() est designada a um valor inteiro, ou usada
em uma expresso onde ser truncada para um inteiro.

READ
Sintaxe
READ <identificao do arquivo>,<nome>
READ File1, Var1

Descrio
L o prximo valor numrico de um arquivo de leitura geral e designa este valor a um nome. Os
arquivos externos so definidos no External Files Editor (Editor de Arquivos Externos). Quando
est lendo de um arquivo, o ProModel ignora os dados no numricos, tais como textos, e l o
prximo valor numrico. Assim, comentrios e observaes podem estar includos sem problema
em um arquivo de leitura. Note que o ProModel vai ler um ponto (.) existente em um arquivo
externo como sendo um valor zero. Para evitar que isto acontea, voc deve usar o smbolo de
comentrio (#) antes das observaes e comentrios que contm um ponto. Mltiplas replicaes
do modelo iro continuar lendo os dados do arquivo do ponto em que a replicao anterior parou,
a no ser que este seja zerado com o comando RESET.
O comando READ pode ler arquivos ASCII. A maioria das planilhas eletrnicas podem converter
as planilhas em arquivos ASCII (.TXT) e arquivos delimitados por vrgulas (.CSV Comma
Delimited Files).
Se o comando READ no estiver alocando os valores corretos aos nomes apropriados, pode
haver algum tipo de informao numrica nas observaes e comentrios de cabealho contidos
no incio do arquivo. Alm disso, se os valores esto sendo lidos para uma matriz, os ndices da
matriz podem no estar sendo incrementados corretamente entre as leituras.
Se voc for ler um arquivo de leitura mais de uma vez em um modelo, ele pode precisar ser
reiniciado (reset). Uma maneira de disser quando um arquivo precisa ser reiniciado (reset)
atravs de um marcador de fim de arquivo, tal como 9999 no final do arquivo e as seguintes duas
linhas de lgica:
READ File1, Valor
IF Valor = 9999 THEN RESET File1

BELGE Engenharia e Sistemas


Simulao PROMODEL

56

REAL

Sintaxe
REAL <nome1>{=<expresso1>,<nome2>=<expresso2>...}
REAL Var1
REAL Counter = 0
REAL Var1 = CLOCK(SEC), Random_Num = RAND(10)

Descrio
Cria uma varivel local do tipo real. As variveis locais funcionam quase da mesma maneira que
os atributos, exceto que elas s estaro disponveis dentro da lgica que as declara. Uma varivel
local ser criada para cada entidade que encontra o comando REAL. As variveis locais no esto
diretamente disponveis para subrotinas, as quais possuem suas prprias variveis locais.
Entretanto, uma varivel local pode ser passada para uma subrotina como um parmetro. As
variveis locais esto disponveis para macros.

REAL()

Sintaxe
REAL (<expresso>)
Var2 = Var1 + REAL(Var3)
Attr3 = 1.05 * REAL(Var5)

Descrio
Converte um nmero inteiro para um real. As verses do ProModel superiores 2.0 convertem
automaticamente nmeros inteiros para reais quando necessrio. Esta funo foi includa no
ProModel para se manter a compatibilidade com as verses anteriores.

BELGE Engenharia e Sistemas


Simulao PROMODEL

57

RENAME
Sintaxe
RENAME {AS} <novo nome da entidade>
RENAME EntB
RENAME AS EntB
RENAME AS ENT(Var2)

Descrio
Renomeia a entidade que est sendo processada. Depois que um comando RENAME
encontrado, a entidade procura adiante na lista de processos e depois volta para o comeo da
lista de processos at achar um processo definido para o novo tipo de entidade no local atual. No
ser executada mais nenhuma lgica para esta entidade que estiver definida para o seu nome
original. Use RENAME para comear a colher estatsticas para uma entidade com um novo nome.
Geralmente, o modo mais fcil e eficiente para renomear uma entidade simplesmente usar um
novo nome como entidade de sada no roteamento.

REPORT
Sintaxe
REPORT {WITH RESET} {AS <expresso>}
REPORT
REPORT WITH RESET
IF producao = 50 THEN REPORT AS Relat50

Descrio
Calcula e envia as estatsticas atuais para um banco de dados de sada. til para que se tenha
uma fotografia instantnea do modelo enquanto ele est sendo executado.
O comando REPORT pode ser seguindo pela opo WITH RESET que zera as estatsticas
depois que o relatrio passado para o banco de dados. Quando voc usa a opo WITH
RESET, voc geralmente quer fornecer algum loop ou criar algum evento que ir chamar o
comando REPORT em um momento apropriado.
Usado com a opo AS, o comando REPORT cria um relatrio com o nome especificado na
expresso, que pode ser acessado atravs do Mdulo de Resultados quando criado um relatrio
de estatsticas gerais (General Stats Report) com o nome especificado na expresso.

BELGE Engenharia e Sistemas


Simulao PROMODEL

58

RES()

Sintaxe
RES(<nmero de nome-ndice do recurso>)
USE 10 RES(Var1) FOR 1.5 min
FREE RES(Var1)
DISPLAY Usando agora $ RES(Var1)

Descrio
Converte o nmero de nome-ndice ou inteiro para o nome do recurso. Use esta funo quando
um comando ou funo precisa do nome do recurso cujo nmero de nome-ndice est definido em
um atributo, varivel, ou alguma outra expresso. Quando usado em uma expresso como a da
terceira sintaxe acima, o ProModel ir retornar o nome do recurso atual.
Use RES() para designar o operador apropriado de acordo com o atributo da pea, ou para mudar
as tarefas dos recursos com o passar da simulao.

RESET

Sintaxe
RESET <identificao do arquivo>
RESET Tempos
RESET (Tempos)

Descrio
Inicia um arquivo geral de leitura novamente partir do incio. O comando RESET utilizado
principalmente nas lgicas de Inicializao ou de Terminao (Initialization or Termination logic)
para comear de novo a ler ou a escrever um arquivo geral no comeo ou no fim de mltiplas
replicaes ou execuo simples e independente. O comando RESET tambm pode ser usado
para reler dados cclicos em uma mesma execuo da simulao. Os parnteses opcionais foram
includos apenas para assegurar a compatibilidade com modelos mais antigos.

BELGE Engenharia e Sistemas


Simulao PROMODEL

59

RESET STATS

Sintaxe
RESET STATS
IF Total = 20 THEN RESET STATS
Descrio
Zera as estatsticas da simulao. til em conjunto com o comando REPORT para se controlar
manualmente as estatsticas para confeco de relatrios em algum caso especfico ou lgica de
evento.

RESOURCE()

Sintaxe
RESOURCE()

Descrio
Retorna o nmero de nome-ndice do recurso que est sendo processado por uma lgica de
parada (break logic) ou lgica fora do turno (off-shift logic).

RESOURCEUNIT ()
Sintaxe
RESOURCEUNIT()

Descrio
Retorna o numero unitrio do recurso que esta sendo utilizado. Pode ser utilizada somente nas
lgicas de parada e fora de turno.
BELGE Engenharia e Sistemas
Simulao PROMODEL

60

RESQTY()

Sintaxe
RESQTY({<nome do recurso>})
IF RESQTY(Res1) > 5 THEN FREE Res1
Descrio
Retorna o nmero de unidades do recurso especificado que a entidade atual possui. A funo
RESQTY() pode ser usada para determinar a quantidade de tempo necessria para processar
uma entidade baseada no nmero de recursos que a entidade possui.

RETURN

Sintaxe
RETURN {<expresso>}
RETURN
RETURN Attr1**SQRT(Attr2)

Descrio
Envia um valor, partir de uma subrotina, para a lgica que chamou a subrotina. Da mesma
maneira que os parmetros enviam informaes da lgica que chamou a subrotina para a
subrotina, o comando RETURN envia informaes da subrotina para a lgica que a chamou.
Depois que o comando RETURN executado, nenhuma outra lgica na subrotina executada.
Quando a subrotina retorna valores, o comando RETURN deve ser seguido de uma expresso.
Quando usado em uma lgica que no seja uma subrotina, o comando RETURN funciona como
um comando BREAK ou BREAKBLK muito poderoso. Enquanto os comandos BREAK e
BREAKBLK saem apenas do loop ou bloco de comandos em que se encontram o comando
RETURN sai da lgica inteira, no importando o nmero de loops ou blocos de comando que
estiverem depois dele.

BELGE Engenharia e Sistemas


Simulao PROMODEL

61

ROUND()

Sintaxe
ROUND(<expresso>)
Inteiro1 = ROUND(3.5)

Descrio
Arredonda a expresso para o nmero inteiro mais prximo. Use ROUND() quando o ProModel
estiver truncando nmeros reais para inteiros, e voc quer que eles sejam arredondados.

ROUTE

Sintaxe
ROUTE <expresso>
ROUTE 2
ROUTE Attr1
ROUTE Dist1()

Descrio
Executa um bloco de roteamento para a entidade que est sendo processada. Os processos no
continuam at que todas as entidades roteadas para um bloco particular tenham comeado a
executar sua lgica de movimentao. A lgica do processo pode conter vrios comandos
ROUTE. Estes comandos podem ser selecionados individualmente usando os comandos IFTHEN, ou podem ser processados sequencialmente, combinados ou no com outros comandos
entre eles. Se qualquer comando ROUTE aparecer em uma lgica de processo, o ProModel
assume que todo o roteamento ser feito pelo usurio e assim no realiza o roteamento
automtico. Se nenhum comando ROUTE aparecer na lgica do processo, todos os blocos de
roteamento sero executados automaticamente assim que a lgica do processo estiver completa.
O comando ROUTE geralmente utilizado com os comandos IF-THEN para tomarem decises de
roteamento baseado em alguma lgica complexa que no seja disponvel em alguma outra funo
do ProModel (tais como funes do sistema ou 'user condition routing rule). O comando ROUTE,

BELGE Engenharia e Sistemas


Simulao PROMODEL

62

se usado com os comandos IF-THEN adequadamente, ir assegurar que apenas um dos blocos
de roteamento ser ativado.
Este comando pode ser usado para rotear uma ou mais entidades e deixar para trs uma entidade
fantasma que ir processar a lgica restante depois do comando ROUTE. A entidade fantasma
tambm referenciada como a entidade me. A entidade gerada pela entidade me toma a rota
especificada pelo comando ROUTE. Se a entidade gerada no puder ir para o prximo local e
est bloqueada, a entidade me tambm estar bloqueada e no ir continuar na execuo da
lgica at que a entidade gerada por ela seja desbloqueada.

SEND

Sintaxe
SEND <expresso><nome da entidade> TO <destino>{,<prioridade>}
SEND 2 EntA TO Loc2
SEND 1 Grp_A TO Processamento_do_Grp_A, 10

Descrio
Envia um nmero especificado de um tipo de entidade particular para um destino. As entidades a
serem enviadas devem estar esperando com uma regra de roteamento SEND. A entidade que
gerou o comando SEND continua processando no importando se as entidades do tipo solicitado
esto esperando para serem enviadas ou no. Se nenhuma entidade naquele momento estiver
esperando para ser enviada, as entidades sero enviadas medida em que forem ficando
disponveis.
O comando SEND pode modelar um sistema baseado na demanda, e no na chegada de
entidades, (chamado de sistema de puxada). Os pedidos do cliente fazem com que um comando
SEND seja designado para a entidade principal. A montagem principal designa comandos SEND
para as submontagens. O modelo de referncia SEND um excelente exemplo desta tcnica.
O comando SEND tambm pode ser usado como um dispositivo de controle para limitar a
quantidade de estoque em processo (WIP) em certas reas crticas. As quantidades so enviadas
para a rea de produo apenas quando o nvel de WIP cai a um certo ponto.

BELGE Engenharia e Sistemas


Simulao PROMODEL

63

SETRATE

Sintaxe
SETRATE <nome do recurso>,<expresso>,<# da unidade>
SETRATE Operador,25,3

Descrio
Permite que voc defina a taxa regular de custos para os recursos de um modelo. Se voc j
definiu uma taxa regular no mdulo de custos (Cost module), este comando ir substituir esta
taxa. Voc pode usar o comando SETRATE para designar diferentes taxas de custo para cada
unidade do recurso.

SKIP

Sintaxe
SKIP

Descrio
Em lgicas de pr off-shift (antes do trmino no turno) ou pre-break (antes da parada), um
comando SKIP faz com que qualquer lgica off-shift ou lgica principal de parada, assim como
tempo fora de turno ou paradas definidas no arquivo de turno sejam ignoradas e assim o local ou
recurso afetado ir continuar em operao.
Em uma lgica off-shift (fora do turno) ou lgica de parada (break logic), um comando SKIP faz
com que o trmino de turno ou tempos de parada definidos no arquivo de turno sejam ignorados.
Isto til quando voc quer definir seu prprio tempo de parada como uma parte da lgica e no
usando o tempo definido no arquivo de turno.

BELGE Engenharia e Sistemas


Simulao PROMODEL

64

SOUND

Sintaxe
SOUND <expresso>
SOUND Chimes.wav
SOUND Tada.wav
Descrio
Executa um arquivo de som. Os arquivos de som, que tm a extenso .WAV, podem ser
comprados ou criados com uma placa de som. Alguns sons, como os dos exemplos acima, j vm
com o Windows e so encontrados no diretrio Windows. Use o comando SOUND para alertar o
usurio do modelo que algum evento est ocorrendo.

SPLIT

Sintaxe
SPLIT <expresso> {AS <novo nome da entidade>}
SPLIT 10
SPLIT 10 AS EntX

Descrio
Divide uma entidade em um nmero especificado de entidades, e, opcionalmente, muda seus
nomes. Todas as entidades resultantes tero os mesmos valores de atributos da entidade original.
Cada entidade resultante inicia novas estatsticas. Para que uma entidade seja dividida esta deve
liberar, com o comando FREE, todos os recursos capturados por ela. Use o comando SPLIT para
dividir um pedao de matria prima em componentes, tal como dividir uma caixa de velas em
velas individuais. As entidades formadas pelo comando SPLIT AS em um local no aparecero
nas estatsticas deste local.

BELGE Engenharia e Sistemas


Simulao PROMODEL

65

SQRT()

Sintaxe
SQRT(<expresso>)
Real1 = SQRT(Real2)
Descrio
Retorna a raiz quadrada de uma expresso.

STOP

Sintaxe
STOP {<expresso>}
STOP
STOP Termino normal

Descrio
Termina a replicao corrente e, opcionalmente, mostra uma mensagem. A simulao ir
continuar com a prxima replicao. Use STOP para parar uma replicao quando a simulao foi
executada o tempo suficiente para fornecer dados estatsticos suficientes.

BELGE Engenharia e Sistemas


Simulao PROMODEL

66

THREADNUM()

Sintaxe
THREADNUM()
IF THREADNUM() = 215 THEN DEBUG

Descrio
Toda vez que qualquer lgica executada, executa-se linha por linha, s quais so designados
nmeros especficos. A funo THREADNUM retorna o nmero da linha que chamou a funo.
Esta funo mais til em conjunto com os comandos IF-THEN e DEBUG para ativar o depurador
num processo especfico. Se o modelo no mudar entre as execues da simulao, o nmero de
cada linha tambm no mudar, mas este nmero ir mudar de replicao para replicao.
A maioria das mudanas num modelo faro com que as linhas (threads) tenham diferentes
numeraes em execues subsequentes.

TIMELEFT()

Sintaxe
TIMELEFT()
Attr1 = TIMELEFT()

Descrio
Retorna o tempo restante caso uma preempo tenha ocorrido durante um comando WAIT. O
valor retornado estar na unidade de tempo padro e deve ser checado antes que qualquer
processamento ocorra, pois o valor atualizado toda vez que uma preempo ocorre. Se o valor
tiver que ser guardado para um uso posterior, este deve ser designado a um atributo da entidade
ou a uma varivel local.
Se vrias entidades forem preemptadas em um local, o valor retornado pela funo para cada
entidade ser o da entidade que tiver o maior tempo restante no comando WAIT.
Quando nenhuma unidade especificada nos parnteses desta funo, ela retorna o valor na
unidade de tempo padro especificada na janela de Informao Geral (General Information).

BELGE Engenharia e Sistemas


Simulao PROMODEL

67

TIMESUSED()

Sintaxe
TIMESUSED(<recurso>)
IF TIMESUSED(Res1) > 5 THEN USE Res2 FOR 10
Descrio
Retorna o nmero de vezes que o recurso foi utilizado.

TRACE

Sintaxe
TRACE {<mensagem>} {STEP ou CONT ou OFF ou CLOSE}
TRACE Begin Test for Resouce A
TRACE CONT

Descrio
Ativa e desativa o rastreamento. As listas de rastreamento aparecero em uma janela separada
na tela. Use o comando TRACE para acompanhar o fluxo lgico do modelo.
STEP Faz com que o ProModel espere por um clique no boto esquerdo do mouse para
executar o prximo comando, ou faz com que rasteie continuamente enquanto o boto direito do
mouse estiver pressionado. O step o default do comando TRACE.
CONT Rasteia continuamente sem a interveno do usurio.
OFF Desativa o rastreamento mas no fecha a lista de rastreamento.
CLOSE Desativa o rastreamento e fecha a lista de rastreamento.

BELGE Engenharia e Sistemas


Simulao PROMODEL

68

TRUNC()

Sintaxe
TRUNC(<expresso>)
Inteiro1 = TRUNC(3.9)
Descrio
Retorna uma expresso real truncada em um inteiro. Qualquer dgito a direita da vrgula ser
removido. O ProModel converte valores reais em inteiros truncando-os automaticamente quando
necessrio. Esta funo foi includa para assegurar compatibilidade com as verses mais antigas
do ProModel.

UNGROUP

Sintaxe
UNGROUP { LIFO }
UNGROUP
UNGROUP LIFO

Descrio
Separa as entidades que foram agrupadas com o comando GROUP. Cada uma das entidades
resultantes procura por um processo adiante e depois volta ao incio da lista de processos at que
um processo seja encontrado para aquele tipo de entidade no local em que foram desagrupadas.
A primeira entidade processada do grupo fica com os recursos possudos pelo grupo. Se uma
entidade agrupada tem membros que tambm so entidades agrupadas, apenas o nvel mais alto
de agrupamento ser desagrupado com o comando UNGROUP. Um comando UNGROUP
adicional ir desagrupar outros membros agrupados.

BELGE Engenharia e Sistemas


Simulao PROMODEL

69

UNITS()

Sintaxe
UNITS (<local> ou <recurso>)
PAUSE Existem $ UNITS(Res1) $ Res1s no sistema.
Descrio
Retorna o total de unidades de um local ou recurso.

UNLOAD

Sintaxe
UNLOAD <expresso> {IFF <expresso booleana>}
UNLOAD 5
UNLOAD 5 IFF Entity() = EntA

Descrio
Descarrega uma certa quantidade de entidades, ou uma certa quantidade destas entidades
dependendo de uma condio. Use o comando UNLOAD para descarregar entidades de uma
entidade carregadora que foi carregada anteriormente com o comando LOAD. O ProModel
processa as entidades descarregadas, na frente da entidade que as carregou. Cada uma das
entidades descarregadas procura por um processo adiante e depois volta ao incio da lista de
processos at que um processo seja encontrado para aquele tipo de entidade no local em que
foram descarregadas.

BELGE Engenharia e Sistemas


Simulao PROMODEL

70

USE
Sintaxe
USE {<quantidade>} <recurso> {,<prioridade1>{,<prioridade2>}}
FOR <tempo>
{AND ou OR {<quantidade>} <recurso> {,<prioridade1>{,<prioridade2>}}
FOR <tempo> ...}
USE 2 Res2, 5 FOR 4:23:O3
USE 2 Res1 FOR 2.0 min OR 3 Res2 FOR 1.5 min
USE Crane2 , 15, 35 AND (Res2 FOR 5 OR Res3 FOR 5)
USE Attr_Oper RES(Tipo_Attr) FOR Var_Tempo1 Hr
Descrio
Captura um recurso ou combinao de recursos assim que cada recurso fica disponvel. Quando o
recurso capturado, ele usado pelo intervalo de tempo especificado, e depois liberado quando
a durao especificada terminar. Se a entidade j possui um dos recursos especificados devido a
um comando GET, JOINTLY GET, ou MOVE WITH anterior, a entidade ir ainda assim tentar
capturar uma unidade adicional daquele recurso.

VARIABLE()
Sintaxe
VARIABLE()(<expresso numrica>)
VARIABLE(Attr)=124
VARIABLE(x)=VARIABLE(y)
N=VARIABLE(x)+VARIABLE(y)-1
Descrio
Converte o nmero de nome-ndice ou inteiro em um nome de varivel. Use esta funo quando
uma expresso numrica usar uma varivel cujo nmero do nome-ndice estiver armazenado em
um atributo, matriz, ou varivel.
Observao: Voc no pode usar VARIABLE() em um comando PROMPT, INC, DEC OU READ.

BELGE Engenharia e Sistemas


Simulao PROMODEL

71

VIEW

Sintaxe
VIEW nome da vista
VIEW Cell5
VIEW Vista10

Descrio
Use este comando para mudar a lista na janela de Layout, partir de uma lgica. Uma vez que
uma vista definida no menu de exibio (View) do menu principal, voc poder us-la na lgica.

WAIT

Sintaxe
WAIT <expresso de tempo>
WAIT 3 min
WAIT 0
WAIT 2.5 + Tempo_de_Limpeza
WAIT N(8,.5) + 3 sec

Descrio
Simula o tempo necessrio para o processamento de uma entidade. O comando WAIT faz com
que qualquer processamento posterior da entidade aguarde at que o intervalo de tempo
especificado tenha passado. O resto do modelo continua sendo processado enquanto a entidade
espera. Se o valor de expresso for igual a zero, a entidade atual no acabar o processamento
at que todos os outros processos agendados para aquele momento da simulao tenham sido
executados.

BELGE Engenharia e Sistemas


Simulao PROMODEL

72

WAIT UNTIL

Sintaxe
WAIT UNTIL <expresso>
WAIT UNTIL Var1 > 3
WAIT UNTIL Var1 < Attr3 AND Var2 >= 5
Descrio
Aguarda o processamento da lgica corrente at que a expresso seja verdadeira. O resto do
modelo continua processando durante a espera. Observe que, se a expresso avaliada
inicialmente como falsa, ela s ser reavaliada quando um atributo de local, varivel, ou elemento
de matriz da expresso mudar. Se vrias entidades estiverem esperando pela mesma condio
elas sero liberadas uma por uma. Isto permite que uma entidade liberada mude o valor de uma
varivel que ir impedir que as outras entidades que esto esperando sejam liberadas.

WARMUP

Sintaxe
WARMUP
WARMUP
IF producao = 50 THEN WARMUP

Descrio
Instrui a simulao para encerrar o perodo de warmup (aquecimento) zerando todas as
estatsticas e apagando arquivos seriados no tempo (time series) relevantes. Somente um
comando WARMUP poder ser usado na simulao.
CUIDADO! Se vrios comandos WARMUP forem encontrados ou se um comando WARMUP for
usado adicionalmente ao tempo de warmup especificado na janela de opes de execuo (Run
Options), o ProModel ir gerar um aviso para inform-lo que isto ocorreu. Somente o primeiro
warmup encontrado (do comando, ou da opo de execuo) ser executado.

BELGE Engenharia e Sistemas


Simulao PROMODEL

73

WHILE...DO

Sintaxe
WHILE <expresso booleana> DO <bloco de comandos>
WHILE Matriz1[n] <> 10 DO INC n
WHILE FREECAP(Loc1) > 5 DO
BEGIN
INC Var2,5
WAIT 5 sec
END

Descrio
Repete um comando ou bloco de comandos continuamente enquanto uma condio permanecer
verdadeira. WHILE...DO um entry-condition loop (loop condicional da entrada), ou seja, o loop
no ser executado at que uma expresso seja verdadeira.

WRITE

Sintaxe
WRITE <nome do arquivo>,<string ou expresso numrica>
{<nmero mximo de dgitos antes do decimal>,<dgitos aps a decimal>}

Descrio
Escreve informaes para um arquivo geral de escrita. O prximo item a ser escrito no arquivo
aparecer imediatamente aps este item. O comando WRITE ir sempre inserir no arquivo, a no
ser que o arquivo seja resetado (RESET) em mltiplas replicaes ou em simulaes simples e
independentes. Qualquer arquivo que foi escrito com o comando WRITE automaticamente se
torna um arquivo texto e ter um marcador de fim atachado automaticamente no fim do arquivo
quando ele for fechado. Para maior flexibilidade de escrita, use o comando XWRITE.
BELGE Engenharia e Sistemas
Simulao PROMODEL

74

WRITELINE

Sintaxe
WRITELINE <nome do arquivo>,<string ou expresso numrica>
{<nmero mximo de dgitos antes do decimal>,<dgitos aps a decimal>}

Descrio
Escreve informaes para um arquivo geral de escrita e inicia uma nova linha. O comando
WRITELINE ir sempre inserir dados no arquivo a no ser que o arquivo seja resetado (RESET)
em mltiplas replicaes ou simulaes simples e independentes. Qualquer arquivo que foi escrito
com o comando WRITELINE automaticamente se torna um arquivo texto e ter um marcador de
fim atachado automaticamente no fim do arquivo quando ele for fechado.

XSUB()

Sintaxe
XSUB (<nome do arquivo>,<nmero da funo ordinria> ou <nome da funo>
{,<parmetro1>,<parmetro2>...})
XSUB(Interface,1,5)
XSUB(LogDLL,_Log_B_of_X,10,5)

Descrio
Chama uma subrotina externa dentro de um arquivo DLL. XSUB() talvez o comando mais
poderoso do ProModel, porque ao utiliz-lo o usurio pode acessar toda a funcionalidade de
qualquer linguagem de programao 32 bit para Windows, tais como as linguagens C, C++, ou
Pascal. O comando XSUB() pode ser usado para entradas e sadas (IO) sofisticadas de arquivo, e
para tornar as simulaes interativas. De fato, as subrotinas chamadas com o comando XSUB()
podem fazer qualquer coisa que a linguagem em que o arquivo foi escrito permitir. Por causa de
seu poder, entretanto, o comando XSUB() deve ser usado com cuidado. Quando chamado, o
XSUB suspende a simulao at que a execuo da subrotina externa seja concluda.
BELGE Engenharia e Sistemas
Simulao PROMODEL

75

Para isso, a subrotina deve ter sido compilada dentro do DLL como exportvel pelo compilador 32
bit do Windows, e ter um tipo de retorno do tipo IEEE e no formato real duplo (double real).
O XSUB() ir copiar os parmetros que seguem o nome da funo para um bloco de memria, e
da passa a funo a um ponteiro para este bloco de memria.
A funo pode pegar apenas um parmetro. Mas a funo pode acessar qualquer quantidade de
parmetros atravs da estrutura sobreposta. A funo deve definir uma estrutura equivalente ao
tipo e ordem dos parmetros, e alocar um ponteiro transmitido a um ponteiro para este tipo de
estrutura. Assim os ponteiros podem ser usados atravs de uma estrutura sobreposta. O
ProModel transmite strings como ponteiros de caracteres, inteiros como valores de 4 bytes, e reais
como valores IEEE de 8 bytes.

XWRITE

Sintaxe
XWRITE <nome do arquivo>,<string ou expresso numrica>

Descrio
Escreve informaes para um arquivo geral de escrita em qualquer formatao que o usurio
escolher. O comando XWRITE til para escrever em arquivos com uma formatao definida pelo
usurio, enquanto que os comandos WRITE e WRITELINE visam escrever em arquivos texto com
uma formatao especial. O comando XWRITE sempre insere dados ao arquivo a no ser que
este seja resetado (RESET). Note que sempre que os comandos WRITE ou WRITELINE
escrevem em um arquivo, o arquivo ser automaticamente um arquivo texto. No haver nenhum
marcador de fim inserido nos arquivos escritos apenas com o XWRITE. Em replicaes
subsequentes, itens adicionais so inseridos no fim do arquivo a no ser que o arquivo seja
resetado (RESET). Nenhuma formatao dada expresso, embora o comando FORMAT
possa ser usado para formatar os dados manualmente. Para adicionar um marcador de final de
arquivo a um arquivo com formatao definida pelo usurio, use XWRITE CHAR(26).

BELGE Engenharia e Sistemas


Simulao PROMODEL

76

You might also like