Escolar Documentos
Profissional Documentos
Cultura Documentos
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil
Emails: elthon@arapiraca.ufal.br,leandrodds@gmail.com,
{kyller,perkusic,amnlima}@dee.ufcg.edu.br
Resumo— Neste trabalho apresentamos uma técnica para a tradução de programas Ladder para modelos em
Redes de Petri Coloridas (CPN). Ladder é usada no desenvolvimento de software para Controladores Lógico
Programáveis, dispositivos usados na automação industrial (e.g.; plantas quı́micas, de gás e de petróleo). Neste
contexto são necessários alto nı́vel de confiança e de segurança, pois a ocorrência de faltas pode resultar em
grandes perdas financeiras e até mesmo de vidas humanas. Assim, aspectos formais inerentes às CPN e seu
suporte ferramental podem ser usados para garantir o nı́vel de confiança desejado de tais sistemas.
Abstract— In this work we present a technique for translating Ladder to Coloured Petri Nets (CPN) models.
Ladder is used in software developing for Programmable Logic Controllers, devices used in industrial automation
(e.g.; gas, oil and chemical plants). In this context, a high level of reliability and safety are necessary because
faults can cause from lost of big amounts of money to danger to human lives. Thus, formal aspects of CPN and
its tool support can be used to assure a certain level of reliability for such systems.
3'unit
Figura 1: Visão geral. P2 2'unit
5'unit
UNIT unit 2'unit 3'unit
T2 P4 T1 P1
UNIT
lente em CPN (passo 2). Este modelo pode ser P3 2'unit
|| || || ||
|| [anIntVar ==] || || T1 || Figura 5: Modelo do diagrama da Figura 3.
||---[ 1 ]------|| ||---[TON 100.0 ms]---||
|| || || ||
(a) || T2 || A leitura dos dados do ambiente no qual se en-
||---[RTO 100.0 ms]---||
|| || || ||
contra o CLP é modelada pelo disparo da transi-
|| {MUL product :=} || || T3 || ção ReadInputs. O disparo desta transição efetua
||---{ someVar * 5 }---|| ||---[TOF 100.0 ms]---||
|| || || ||
três ações: retira a ficha do lugar Start, que repre-
(b) (c) senta o inı́cio do ciclo de execução; atualiza a ficha
do lugar In, que representa o local de memória que
Figura 4: Elementos e operações de Ladder armazena as leituras das entradas; e passa uma
ficha ao lugar R1, que indica que o fluxo de ener-
gia se encontra no primeiro degrau. A ficha pre-
Uma guarda (Figura 4(a)) permite a pas- sente em In é uma tupla com três valores lógicos.
sagem de energia caso seja avaliada como ver- A quantidade de valores desta tupla corresponde
dadeira. Conjunções e disjunções são expressas à quantidade de variáveis de entrada do CLP.
pondo guardas em série e em paralelo, respectiva- Com a ficha presente em R1, R1Logic dispara
mente. Na Figura 4(b) é ilustrada uma operação e, com base na lógica de controle e nos valores da
de multiplicação. O resultado da multiplicação tupla presente em In, escreve o devido valor no lo-
someVar * 5 é atribuı́do à variável product. cal de memória que corresponde à saı́da (bobina),
Por último, há três temporizadores lugar Mem. Esta transição também passa uma
(Figura 4(c)): delayed Turn On (TON), de- ficha ao lugar Done que representa o fim da exe-
layed Turn Off (TOF) e Retentive delayed cução dos degraus. O disparo de Release libera o
Turn On (RTO). Enquanto for energizado, o dado de saı́da (atualização do lugar Out 2 ) e põe
temporizador TON conta de zero até um valor uma ficha em Start, indicando uma nova leitura
de tempo especificado e então libera o fluxo de dos dados do ambiente e o começo de outro ciclo.
energia para o restante do degrau. O tempo- A função formula(tuple) na inscrição do arco
rizador TOF permite a passagem de energia até (R1Logic, M em) implementa a lógica de controle
que sua contagem, a partir de um certo valor do degrau. Essa função é obtida de acordo
de tempo, chegue a zero, quando interrompe a com um algoritmo apresentado em (de Vasconce-
passagem de energia. Ambos os temporizadores los Oliveira et al., 2009). As funções presentes nos
reiniciam a contagem caso suas entradas passem modelos CPN são implementadas com CPN/ML,
a não ser energizadas durante a contagem. Já o uma variante da linguagem SML (Appel and Mac-
temporizador RTO funciona de forma similar ao queen, 1991). Abaixo segue o código da função
TON, mas sua contagem não é reiniciada quando formula(tuple):
sua entrada é desenergizada. Ao ter sua entrada
fun formula((IN1,IN2,IN3)) =
energizada novamente, este contador continua a (IN1 orelse IN2) andalso not(IN3)
contagem a partir de onde foi interrompida. A
única forma de zerar este temporizador é por 2 Este lugar é atualizado por meio da leitura da ficha
meio de funções previamente implementadas. presente no lugar Mem pelos arcos out2.
(b)
(false,false,false)
()
newTupleIn
token
Start ReadInputs In TOF
tupleIn Fusion 1 Timer
UNIT token
INPUTS INT
R1 UNIT x if x=0 then 0
(false,false,false) (false,false) else (if not(boolValue) then TOF else (x-1))
token
(formula(tupleIn),out2) boolValue
tupleIn In Ti Out
In R1Logic Mem if not(boolValue) then false
Fusion 1 (out1,out2) Fusion 2 BOOL else BOOL
token OUTPUTS
INPUTS if (boolValue andalso x=0) then false
else true
R2 UNIT (c)
token (false,false)
(false,false,false) token
(false,false)
(out1,formula2(tupleIn))
tupleIn
Out OUTPUTS
tupleOut
In
Fusion 1
R2Logic Mem
(out1,out2) Fusion 2 OUTPUTS
Figura 8: Modelos dos temporizadores.
INPUTS token
token
Release Done
newTupleOut
UNIT
As inscrições RTO, TON e TOF (Figuras 8
newTupleOut
(a), (b) e (c), respectivamente) são variáveis
CPN/ML que representam o tempo de seus res-
Figura 7: Modelo do diagrama da Figura 6. pectivos temporizadores. Desta forma, no caso de
mudança na configuração do temporizador, deve-
Nesta rede, R1Logic passa o fluxo de ener- se ajustá-lo na declaração da variável.
gia ao segundo degrau (R2 ). A inscrição O ajuste do temporizador no modelo depende
(f ormula(tupleIn), out2) garante que apenas o do tempo de execução real do CLP onde o código
primeiro elemento da tupla, que corresponde à Ladder é embarcado. Admitindo um ciclo de 10
saı́da OUT1 do diagrama, é atualizado. Em milissegundos e a presença de um temporizador
seguida, R2Logic consome a ficha do lugar R2 e TON cuja configuração seja de 50 milissegundos,
também usa a tupla localizada em In. De forma serão necessários cinco ciclos para que o tempo-
semelhante, (out1, f ormula2(tupleIn)) preserva o rizador gere uma saı́da energizada4. Neste caso,
estado da primeira saı́da e escreve no local de o tempo do temporizador no modelo é de cinco
memória que corresponde à saı́da OUT2. unidades de tempo. Em outras palavras, o tempo
Assim como ocorre com entradas e saı́das, va- do temporizador do modelo, representado por uma
riáveis auxiliares podem ser modeladas por uma das três variáveis (TON, TOF ou RTO), é calcu-
única tupla que contenha todas elas. Um lugar lado pela divisão do tempo do temporizador real
denominado Vars representa o local de memória pelo tempo de duração do ciclo do CLP especı́fico.
que armazena tais variáveis. Vale a pena ressaltar que apenas a parte inteira do
Admitindo que há um terceiro degrau que pro- valor resultante desta divisão é usado.
cesse uma adição usando alguma das variáveis de
4 No caso do temporizador TON, cinco ciclos consecu-
3 Não
foi utilizada tupla no exemplo anterior pois havia tivos com entrada verdadeira são necessários para produzir
apenas uma saı́da. uma saı́da verdadeira.
À CAPES e ao CNPq pelo suporte financeiro. Peng, S. S. and Zhou, M. C. (2004). Ladder dia-
gram and Petri-net-based discrete-event con-
trol design methods, Systems, Man, and Cy-
Referências bernetics, Part C: Applications and Reviews,
IEEE Transactions on 34(4): 523 –531.
Appel, A. W. and Macqueen, D. B. (1991). Stan-
dard ML of New Jersey, Third Int’l Symp. on Ridley, J. (2004). Mitsubishi FX Programmable
Prog. Lang. Implementation and Logic Pro- Logic Controllers - Applications and Pro-
gramming, Springer-Verlag, pp. 1–13. gramming, Elsevier.
Berezin, S., Campos, S. V. A. and Clarke, E. M. Siemens (2004). SIMATIC - Ladder Logic (LAD)
(1998). Compositional reasoning in model for S7-300 and S7-400 Programming.
checking, Revised Lectures from the Inter-
national Symposium on Compositionality: Thapa, D., Dangol, S. and Wang, G.-N.
The Significant Difference, COMPOS’97, (2005). Transformation from Petri Nets
Springer-Verlag, London, UK, pp. 81–102. Model to Programmable Logic Controller us-
ing One-to-One Mapping Technique, Com-
Bos (2009). Understanding the IEC 61131-3 Pro- putational Intelligence for Modelling, Con-
gramming Languages, Bosch Rexroth Corpo- trol and Automation, International Confer-
ration. ence on 2: 228–233.
Clarke, E. M., Grumberg, O. and Peled, D. A. Uzam, M. and Jones, A. H. (1996). Conversion of
(1999). Model Checking, The MIT Press. Petri Net Controllers for Manufacturing Sys-
tems Into Ladder Logic Diagrams, Proceed-
Colla, M., Leidi, T. and Semo, M. (2009). Design ings of the IEEE Conference on Emerging
and implementation of industrial automation Technologies and Factory Automation, Vol. 2,
control systems: A survey, Industrial Infor- pp. 649–655.
matics, 2009. INDIN 2009. 7th IEEE Inter-
national Conference on, pp. 570 –575. Wang, J. (1998). Timed Petri Nets: Theory
and Application (The International Series on
de Vasconcelos Oliveira, K., Gorgônio, K., Perku- Discrete Event Dynamic Systems), Springer.
sich, A., Lima, A. M. N. and da Silva,
L. D. (2009). Extração automática de autô-
matos temporizados a partir de diagramas