Você está na página 1de 6

X SBAI – Simpósio Brasileiro de Automação Inteligente

18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil

CONVERTENDO DIAGRAMAS LADDER EM MODELOS DE REDES DE PETRI


COLORIDAS

Elthon A. da S. Oliveira†∗ , Leandro Dias da Silva∗, Kyller Gorgônio† , Angelo


Perkusich† , Antonio Marcus Nogueira Lima†

Campus Arapiraca / Instituto de Computação, Universidade Federal de Alagoas.
Arapiraca / Maceió, Alagoas, Brasil

Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande.
Campina Grande, Paraı́ba, 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.

Keywords— Ladder, Redes de Petri, Tradução, Automação Industrial.

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.

Keywords— Ladder, Petri Nets, Translation, Industrial Automation.

1 Introdução são uma ferramenta de modelagem gráfica e


matemática adequadas para descrever e estudar
Vários processos na indústria são automatiza- sistemas concorrentes, assı́ncronos, distribuı́dos
dos visando a otimização do uso dos recursos e/ou estocásticos (Murata, 1989). Neste trabalho,
disponı́veis e o aumento na produção. Estes pro- é usada uma classe de PN chamada de Redes de
cessos, como por exemplo em plantas de proces- Petri Coloridas (Jensen, 2003) (do inglês CPN -
samento de gás e petróleo, podem ser implanta- Coloured Petri Nets). Outros detalhes são apre-
dos usando um dispositivo chamado Controlador sentados na Seção 2.1.
Lógico Programável (CLP). CLPs permitem o de- Em se tratando processos de desenvolvimento
senvolvimento de sistemas de controle flexı́veis de software, dois problemas se destacam na in-
e confiáveis (Mikkor and Roosimölder, 2004), os serção das atividades de modelagem e verificação
quais variam muito em natureza e complexidade. formais: (i) a necessidade de tempo extra para a
Por se tratar de processos industriais, e geral- modelagem, e (ii) o treinamento de recursos hu-
mente crı́ticos, os sistemas de controle devem asse- manos ou contratação de pessoal especializado na
gurar a estabilidade, a acurácia e a suave transi- linguagem a ser usada.
ção de processo ou atividade de manufatura. É Neste trabalho é apresentada uma técnica de
importante que os sistemas se comportem como tradução automática da linguagem Ladder, es-
esperado. Caso não funcionem desta forma, eles pecificada pelo padrão IEC 61131-3 (John and
podem se tornar uma ameaça à segurança de seres Tiegelkamp, 2001), doravante denominado IEC,
humanos e do meio ambiente. Assim sendo, deve- para modelos CPN. Dentre as linguagens especi-
se assegurar que tais sistemas não apresentarão ficadas no padrão IEC, Ladder foi escolhida por
faltas durante suas execuções. ser uma das mais usadas na indústria (Bos, 2009).
Técnicas de verificação são aplicadas dentro Uma introdução a ela é apresentada na Seção 2.2.
dos processos de desenvolvimento com o propósito Por ser uma técnica automática, o tempo para
de evitar comportamentos indesejados dos sis- modelagem e verificação é reduzido em relação aos
temas. Em algumas técnicas usam-se linguagens casos onde a modelagem é feita de forma comple-
matemáticas na descrição do comportamento do tamente manual. Além disso, simulações e verifi-
sistema a ser verificado. Como o comportamento cação de modelos podem ser executadas em para-
é geralmente complexo, faz-se necessário o uso de lelo durante a implementação do sistema. A téc-
suporte ferramental para que simulações e técnicas nica apresentada é aplicada no processo de desen-
como a verificação de modelos (Clarke et al., 1999) volvimento como ilustrado na Figura 1.
possam ser executadas. O uso de testes, mesmo Primeiramente, um diagrama Ladder é desen-
exaustivos, não garante a ausência de erros. volvido (passo 1). Em seguida, um processo au-
Redes de Petri (do inglês PN - Petri Nets) tomático é executado para obter o modelo equiva-

ISSN: 2175-8905 - Vol. X 1382


X SBAI – Simpósio Brasileiro de Automação Inteligente
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil

CPN. Usando PN, é possı́vel modelar conceitos


como concorrência, conflito, sincronização e
compartilhamento de recursos.
Uma PN (Figura 2) é composta por: lugares
(P1, P2, P3 e P4), transições (T1 e T2), e arcos
((P 2, T 2) e (P 3, T 2), por exemplo). Os lugares
representam condições, atividades ou recursos; as
fichas representam disponibilidade de recursos; as
transições representam eventos; e os arcos indicam
lugares de entrada/saı́da das transições.

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

simulado a fim de se observar comportamentos UNIT


especı́ficos do sistema. Outra possibilidade é a
execução da verificação de modelos em busca de Figura 2: Exemplo de PN.
traços de execução que violem alguma propriedade
desejada (passo 3). Baseado nos resultados obti- Um estado (ou marcação) do modelo é
dos, o programador pode corrigir seu diagrama definido pela quantidade de fichas presentes em
e inicar o processo novamente. Como forma de cada um dos lugares num certo instante da exe-
otimizar este processo, o desenvolvedor pode ini- cução da rede. O disparo de uma transição altera
ciar a verificação de uma parte do sistema en- o estado da rede. Tal disparo deve ocorrer se al-
quanto codifica outra aplicando a verificação com- guma transição estiver habilitada.
posicional (Berezin et al., 1998). Uma explanação Devido às restrições de espaço, as regras de
sobre a técnica de conversão apresentada neste disparo de transições estão omitidas. Todavia, o
trabalho pode ser vista na Seção 3. leitor pode recorrer ao livro (Jensen, 2003) para
Como posto por (Peng and Zhou, 2004), a uma descrição detalhada destas regras.
existência de metodologias de conversão entre PN
e linguagens do padrão IEC seria formidável na 2.2 Ladder
indústria de automação. O modelo (desenho) do
sistema pode ser usado para simulações (Colla Ladder é uma linguagem gráfica beaseada nos cir-
et al., 2009). Alguns trabalhos existentes são dis- cuitos de relé. Devido à sua fácil forma de manipu-
cutidos na Seção 4. O uso de tais metodologias lação, interpretação e representação das conexões
aumenta a confiabilidade do sistema desenvolvido fı́sicas entre componentes (sensores e atuadores),
provendo um modelo comportamental formal o ela é muito usada em ambientes industriais.
qual pode ser simulado e verificado. Há diferentes dialetos de Ladder na indústria,
Como supradito, a técnica apresentada neste tais como (Siemens, 2004) e (Ridley, 2004), cada
trabalho pode ser automatizada, necessitando de um desenvolvido para um CLP diferente. Além
nenhuma interferência humana em sua execução. disso, eles apresentam suas próprias coleções de
Além disso, o processo de verificação de modelos funções e algumas pequenas diferenças visuais.
é inerentemente automático graças as ferramentas Todavia, todos seguem o padrão IEC.
existentes. Faz-se necessária a descrição das pro- A execução do CLP é dividida em ciclos de
priedades desejadas em alguma lógica temporal scan. Durante um ciclo, o fluxo de energia passa
(e.g.; LTL) Algumas considerações finais acerca da esquerda à direita e de cima para baixo, cada
desta técnica e sugestões para trabalhos futuros degrau do diagrama por vez. Quando o fluxo
são apresentados na Seção 5. chega ao final do diagrama, ou o tempo do ciclo
finaliza, inicia-se o ciclo novamente. Cada degrau
representa uma instrução do programa.
2 Fundamentação teórica No começo do ciclo, todas as entradas são li-
das e armazenadas. Durante a execução, os dados
2.1 Redes de Petri Coloridas a serem usados como saı́da podem ser modifica-
CPN (Jensen, 2003) são uma classe de dos a qualquer momento pela lógica de controle
PN (Murata, 1989) na qual fichas represen- e só são liberados apenas ao final do ciclo. Além
tam tipos de dados complexos. Tal caracterı́stica disso, degraus definem o processo de controle e po-
possibilita que os modelos possam ser descritos dem ser compostos por linhas onde os elementos
de uma forma mais concisa se comparados da linguagem são postos.
aos modelos descritos usando a classe de PN Os elementos básicos de Ladder são os con-
lugar/transição. Além disso, uma ferramenta de tatos (entradas) e bobinas (saı́das). Estes elemen-
software chamada CPN-Tools1 suporta a edição, tos podem estar dispostos em série e/ou em pa-
simulação e análise de modelos escritos em ralelo nos degraus. Além disso, degraus contendo
apenas elementos básicos podem ser facilmente ex-
1 http://cpntools.org/ pressos por meio de fórmulas de lógica Booleana.

ISSN: 2175-8905 - Vol. X 1383


X SBAI – Simpósio Brasileiro de Automação Inteligente
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil

Contatos podem se apresentar como normalmente 3 De Ladder para CPN


abertos ou normalmente fechados. Estes últi-
mos representam a negação dos primeiros. Na 3.1 Lógica de controle simples
Figura 3, a bobina OUT é energizada se um dos
contatos IN1 e IN2 (abertos) for energizado e IN3 Como a lógica de controle dos degraus pode ser
(fechado) não for. expressa pela lógica Booleana, a obtenção do mo-
delo CPN a partir de um degrau composto apenas
por contatos e bobinas é relativamente simples.
|| || A tradução pode ser feita diretamente quando o
|| IN1 IN3 OUT ||
||---] [---+---]/[---( )---|| degrau não contiver outros tipos de elementos.
|| | || No diagrama apresentado na Figura 3, a bobina
|| IN2 | ||
||---] [---+ || OUT é energizada se o valor resultante da fórmula
|| || (IN1∨IN2)∧¬IN3 for verdadeiro. O modelo CPN
daquele diagrama é apresentado na Figura 5.
Figura 3: Exemplo de diagrama Ladder.
(false,false,false)
() newTupleIn
token
Start ReadInputs In
Dois dos elementos de Ladder usados neste UNIT tupleIn INPUTS
token
trabalho são apresentados na Figura 4: guardas e false token
Fusion 10

temporizadores. Além destes, há cinco operações Out


R1 UNIT

que podem ser incluı́das: atribuição, adição, sub- BOOL


(false,false,false) token
formula(tuple) false
tuple
tração, divisão e multiplicação. Diferentemente de out1
Fusion 10
In R1Logic Mem
boolValue
contatos e bobinas, tais elementos não podem ser out2
INPUTS token BOOL

representados unicamente por fórmulas. Release


token
Done
out2

|| || || ||
|| [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.

ISSN: 2175-8905 - Vol. X 1384


X SBAI – Simpósio Brasileiro de Automação Inteligente
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil

Contatos normalmente abertos e fechados sistema, é suficiente acrescentar dois arcos: um


com o mesmo nome representam a mesma entrada conectando o lugar Vars à transição R3Logic para
no diagrama Ladder. Assim, são considerados da que esta possa ler a variável, e outro arco retor-
mesma forma no modelo. nando ao lugar Vars executando a operação men-
A adição de outro degrau ao diagrama da cionada na variável desejada.
Figura 3 demanda a replicação de algumas partes
no modelo. O novo diagrama é apresentado na
3.2 Temporizadores
Figura 6. Neste diagrama há outra bobina, a qual
será energizada se a fórmula IN3∧¬IN2 for avali- Os modelos dos temporizadores (Seção 2.2) podem
ada como verdadeira. ser vistos na Figura 8. O disparo de Ti significa a
passagem de energia durante um ciclo no degrau
|| || onde o temporizador se encontra. O lugar In con-
|| IN1 IN3 OUT1 ||
||---] [---+---]/[---( )---|| tém o valor avaliado a partir das entradas lidas e
|| | || da lógica de controle que precede o temporizador
|| IN2 | ||
||---] [---+ || no mesmo degrau. Por último, o lugar Out contém
|| || a saı́da do temporizador durante o ciclo.
|| IN3 IN2 OUT2 ||
||---] [---]/[-------( )---||
|| || 0
Timer
INT
Figura 6: Diagrama Ladder com dois degraus. x if x=RTO then RTO
else (if (boolValue) then (x+1) else x)
boolValue
In Ti Out
if x=RTO then true
Apenas algumas mudanças são necessárias BOOL else false BOOL

para modelar o novo diagrama. Basta usar uma (a)

tupla em Mem com n valores verdade, onde n é a 0


Timer
quantidade de saı́das diferentes3 . Outra mudança INT
é a replicação da estrutura que modela o degrau x if x=TON then TON
else (if (boolValue) then (x+1) else 0)
no último exemplo. Na Figura 7 é apresentado o boolValue
In Ti Out
modelo CPN para dois degraus. BOOL
if x=TON then true
BOOL
else false

(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.

ISSN: 2175-8905 - Vol. X 1385


X SBAI – Simpósio Brasileiro de Automação Inteligente
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil

3.3 Temporizador e operação aritmética pois implementa a lógica de controle mencionada.


L1 conterá a saı́da do temporizador: verdadeiro,
Um diagrama com um temporizador RTO e uma se por pelo menos cinco (valor de RTO ) vezes
operação de adição é ilustrado na Figura 9. não necessariamente consecutivas a checkR1L1 for
avaliada como verdadeiro; ou falso, caso contrário.
|| ||
|| A B Timer {ADD var1 :=} || No mesmo degrau, se a função disj for ver-
||--] [--+--] [---[RTO 50.00 ms]---+---{ var1 + 1 }---|| dadeira, R1Logic atualizará var1 e energizará D.
|| | | ||
|| | C | D || Esta função implementa a disjunção dos valores
|| +--]/[--------------------+-------------( )---|| resultantes das partes temporizada e não tempo-
|| ||
rizada. Internamente, a função incr usa disj. As
implementações das funções são:
Figura 9: Diagrama com temporizador e adição.
fun checkR1L1((a,b,c)) = a andalso b;
fun checkR1L2((a,b,c)) = a andalso not c;
O degrau apresenta um contato (A) e, em fun disj(a,b) = a orelse b;
seguida, divide-se em duas linhas. A primeira fun incr(a,b,c) = if disj(a,b) then c+1 else c;
contém um outro contato (B) e um temporizador Aparentemente, as funções checkR1L1 e
retentivo (Timer ) em série. A segunda contém checkR1L2 possuem três parâmetros. Contudo,
outro contato (C ). Se uma das duas lógicas de elas possuem apenas um do tipo tupleIn, que é
controle for avaliada como verdadeira, uma var- uma tupla com três elementos. Usando tuplas
iável inteira (var1 ) é incrementada em 1 e uma desta forma, a estrutura do modelo pode se man-
bobina (D ) é energizada. O modelo CPN corre- ter intacta mesmo com mudanças na lógica de con-
spondente é apresentado na Figura 10. Outros as- trole dos degraus. Fazendo-se necessário apenas
pectos são modelados neste exemplo: (i) mais de alterar o código CPN/ML.
uma linha num mesmo degrau, (ii) temporizador
e (iii) manipulação de variável.
4 Trabalhos relacionados
(false,false,false)
()
newTupleIn
token
Start ReadInputs In
Fusion 1
Pesquisadores têm usado PN para modelar e con-
UNIT tupleIn
token token INPUTS trolar sistemas de manufatura, alguns lidando di-
R1L2 UNIT R1L1 UNIT
retamente com Ladder. Em (Uzam and Jones,
token
(false,false,false)
token
0
1996), uma metodologia chamada Token Passing
x
R1L2Log
tupleIn
In
tupleIn
R1L1Log Timer Logic é usada para converter PN controladoras de
Fusion 1 INPUTS if x=RTO then RTO
token
checkR1L2(tupleIn) else(
INT
sistemas de manufaturas em diagramas Ladder.
if checkR1L1(tupleIn) then
if x=RTO then true
else false
(x+1)
else x
Porém, as PN incluem novos conceitos: atuadores
(false) L2
res2
res1
L1
)
e sensores como estruturas formais das redes.
BOOL
Out 0
incr(res1,res2,var1) (out1)
BOOL (false) Em (Lee and Lee, 2009), é apresentado um
OUTPUTS
tupleOut
Vars
VARIABLES var1
R1Logic
(disj(res1,res2))
Mem
OUTPUTS
processo de conversão de Ladder em modelos PN
token
newTupleOut analisando atributos do programa Ladder e da
Release
token
Done
UNIT newTupleOut
operação do CLP. Capacidade de análise formal
é agregada da teoria de PN para programas Lad-
der. Contudo, para tornar isso possı́vel, conceitos
Figura 10: Modelo do diagrama da Figura 9. pouco conhecidos (arco de reinı́cio) são usados e
novos conceitos são introduzidos (arco de preser-
Um degrau com mais de uma linha pode ser vação e lugar de buffer ).
modelado com uma disjunção. Contudo, neste
Os trabalhos apresentados por (Thapa et al.,
caso há um temporizador que muda a lógica de
2005) e por (Park et al., 2000) apresentam
controle do degrau. Se não fosse por ele, a saı́da
traduções de modelos PN para Ladder. O
(D ) seria energizada e var1 seria incrementada se
primeiro usa uma técnica de mapeamento um para
A ∧ (B ∨ ¬C) fosse verdadeiro. Com a presença do
um para gerar código de controle sem falha para
temporizador, é necessário separar a parte tempo-
um desempenho operacional melhor.
rizada da não temporizada. Desta forma, a lógica
Estes trabalhos usam uma notação similar a
do degrau é modelada por uma disjunção entre
das PN lugar/transição e introduzem novos con-
(A∧B) temporizado e (A ∧¬C) não temporizado.
ceitos o que dificulta o uso de ferramentas de soft-
Como pode ser visto na Figura 10, há dois lu-
ware bem consolidadas. Além disso, caso seja
gares para o degrau: R1L1 (parte temporizada)
necessário analisar o modelo diretamente, as PN
e R1L2 (parte não temporizada). A parte não
ordinárias são de difı́cil compreensão pois tendem
temporizada é modelada como nos exemplos an-
a ser demasiado grandes. Mesmo lidando com pe-
teriores. A fórmula (A ∧¬C) é implementada pela
quenos diagramas, o modelo correspondente pode
função checkR1L2 que recebe uma tupla com os
se tornar enorme e ininteligı́vel.
valores de entrada e cujo resultado é posto em L2.
A parte temporizada inicia em R1L1. Como
ilustrado na Figura 8(a), a entrada do tempo- 5 Conclusões
rizador deve ser o valor resultante da lógica de
controle que o precede. R1L1Log lê as entradas e a Neste trabalho foi apresentada uma técnica para
função checkR1L1 funciona como o valor verdade, conversão de Ladder em modelos CPN. Com ex-

ISSN: 2175-8905 - Vol. X 1386


X SBAI – Simpósio Brasileiro de Automação Inteligente
18 a 21 de setembro de 2011
São João del-Rei - MG - Brasil

ceção da definição de tempo dos temporizadores, ladder, Anais do IX Simpósio Brasileiro de


não há interferência humana no processo. Esta Automação Inteligente, Sociedade Brasileira
caracterı́stica agiliza o processo de modelagem. de Automática, Brası́lia, Brasil.
Além disso, a ferramenta CPN-Tools possibilita
simulações de subpartes do sistema bem como a Jensen, K. (2003). Coloured Petri Nets: Ba-
aplicação da técnica de verificação de modelos de sic Concepts, Analysis Methods and Practi-
forma completamente automática. cal Use. Volume 1 (Monographs in Theoret-
Uma vantagem no uso de CPN em relação ical Computer Science. An EATCS Series),
às redes lugar/transição é que a estrutura da Springer.
primeira rede não apresenta mudanças drásticas John, K.-H. and Tiegelkamp, M. (2001). IEC
quando a lógica de controle é alterada. Mudanças 61131-3: Programming Industrial Automa-
podem ser feitas a nı́vel de código CPN/ML. Al- tion Systems, Springer-Verlag.
gum desenvolvedor com o mı́nimo conhecimento
em programação funcional pode atualizar o mo- Lee, J. and Lee, J. (2009). Conversion of ladder
delo diretamente no código. Inclusive pode testar diagram to petri net using module synthe-
diferentes lógicas de controle alterando simples- sis technique, International Journal of Mod-
mente as funções geradas. elling and Simulation 29.
Futuramente é pretendido aplicar este tra-
balho a um estudo de caso com uma maior combi- Mikkor, A. and Roosimölder, L. (2004). Pro-
nação de elementos de Ladder. Foi percebido que grammable logic controllers in process au-
é possı́vel definir um modelo CPN mais genérico. tomation, 4th International DAAAM Con-
Desta forma, mais mudanças poderiam ser refleti- ference. Industrial Engineering Innovation as
das apenas no código SML, preservando a estru- Competitive Edge for SME, pp. 55–57.
tura da rede. Tal possibilidade será investigada.
Murata, T. (1989). Petri nets: Properties, analy-
Também será implementada uma ferramenta com
sis and applications, Proceedings of the IEEE
interface amigável ao usuário. Outro possı́vel tra-
77(4): 541–580.
balho é usar PN temporizadas (Wang, 1998) como
modelo alvo. Assim, será possı́vel modelar tempo- Park, E., Tilbury, T. and Khargonekar, P. (2000).
rizadores totalmente sem intervenção humana. Control logic generation for machining sys-
tems using Petri net formalism, Vol. 5,
Agradecimentos pp. 3201 –3206 vol.5.

À 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

ISSN: 2175-8905 - Vol. X 1387

Você também pode gostar