 Utilizar o depurador gráfico

O ISaGRAF inclui um depurador gráfico e simbólico completo. O comando "Depurar" da janela de gerenciamento de programa executa o depurador para controlar o aplicativo carregado no PLC destino. Neste modo, o depurador comunica-se com o sistema destino através de ligação de hardware. O comando "Simular" da janela de gerenciamento de programa simultaneamente executa o depurador e um simulador de destino completo. Isto permite que o usuário teste o seu aplicativo quando o sistema de E/S do destino ainda não está completo. A janela de depurador contém os comandos para controlar todo o aplicativo.

A janela Depurador

Controlando o aplicativo

Opções

Comandos de Escrita

Modificação online

Troca de dados DDE

Quando o depurador inicia, e se o aplicativo no PLC destino é igual àquele do ambiente de trabalho, automaticamente abre a janela de gerenciamento de programa, no modo depurar. Os comandos desta janela para podem ser utilizados para abrir outras janelas ISaGRAF (editores de gráfico e de texto, dicionário, listas de variáveis, conexão de E/S...). Todas as janelas abertas durante uma sessão de depuração operam no "modo de depuração", quer dizer, o comando de edição está desabilitado. Os componentes de programa exibidos (etapas, transições, variáveis...) são mostrados com o seu estado de tempo de execução atual ou valor. Clicando duas vezes sobre um objeto o seu estado ou valor é modificado no aplicativo destino.

Ao executar o depurador em modo de simulação, a comunicação com o sistema destino ISaGRAF é interrompida. O depurador só se comunica com a janela de simulador. Porque o sistema destino não existe neste modo, os comandos "descarregar", "parar" ou "iniciar" não estão disponíveis no menu de depurador.


A janela Depurador

A janela de depurador só contém informação sobre o estado do aplicativo completo. Está ligado a outras janelas ISaGRAF criando um sistema de depuração interativo completo. Os erros de tempo de execução detectados são exibidos na área inferior da janela de depurador. Os comandos do menu "Opções" são utilizados para esconder, mostrar ou remover a lista de erros.

O painel de controle (área abaixo do menu de depurador) mostra o estado global do aplicativo destino e a informação sobre o tempo de ciclo de execução. A lista de estado destino possível é a seguinte:

Conectando:	Depurador estabelece comunicação com o sistema destino.

Desconectado:	Depurador não pode comunicar-se com o sistema destino. Certifique-se que o cabo de conexão e os parâmetros de comunicação são válidos.

Não há aplicação :	A conexão está OK, mas nenhum aplicativo ISaGRAF atualmente existe no sistema destino. Carregue um aplicativo.

Aplicação ativa:	A conexão está OK e um aplicativo ativo existe no sistema destino. O depurador está agora estabelecendo as comunicações com este aplicativo, se é o mesmo do Ambiente de Trabalho.

EXECUTAR:	Aplicativo destino está no modo "Tempo Real".

PARAR:	Aplicativo destino está no modo "Ciclo a Ciclo".

BreakPoint:	Aplicativo destino está no modo "Ciclo a Ciclo", porque um "breakpoint" (ponto de parada)  foi encontrado.

Erro fatal:	Aplicativo destino falhou porque um erro sério ocorreu.

Informações sobre o tempo de ciclo (varredura) são:

Permitido:	tempo programado.

Corrente:	tempo exato do último ciclo de execução completo.

Máximo:	tempo máximo detectado desde o início do aplicativo.

Overflow:	número de ciclos de execução detectado com um tempo maior que o permitido.

Todos os valores de tempo são determinados em milisegundos (ms). Os valores de tempo não são exibidos quando o depurador for utilizado em modo de simulação.


Controlando o aplicativo

Os menus "Arquivo" e "Controle" contêm os comandos para a instalação e o controle do aplicativo ISaGRAF atualmente editado no sistema ISaGRAF destino.

Nota:	Alguns destes comandos não estão disponíveis durante simulação, porque o aplicativo processado pelo simulador é instalado automaticamente pelo Ambiente de Trabalho ISaGRAF.

Parar o aplicativo destino

Ativar o aplicativo destino

Carregar o aplicativo

Apresentar o número da versão

Modificação online

Modo Tempo Real

Modo Ciclo a Ciclo

Executar um ciclo

O tempo de ciclo

Remover todos os breakpoints

Desbloquear variáveis E/S


Parar o aplicativo destino

O comando "Arquivo / Parar aplicação" interrompe a execução do aplicativo atualmente ativo no sistema ISaGRAF destino.


Parar o aplicativo destino
Iniciar o aplicativo destino

O comando "Arquivo / Iniciar aplicação" executa o aplicativo existente no sistema destino. Quando um aplicativo é carregado, ele é automaticamente iniciado, de forma que o comando "Iniciar" não tenha que ser utilizado. O comando "Iniciar" é tipicamente utilizado após um comando "Parar".

Nota:	o aplicativo destino deve ser interrompido (inativo) antes que seja possível carregar um novo aplicativo.


Carregar o aplicativo

O comando "Arquivo / Descarregar" é utilizado para carregar o código de aplicativo no sistema destino. Selecione o tipo de código a ser carregado, de acordo com o processador de sistema destino e as opções de aplicativo.


Apresentar o número da versão

O comando "Obter número de versão" é utilizado para exibir a identificação completa do Ambiente de Trabalho e aplicativos de destino. O aplicativo de Ambiente de Trabalho é aquele correntemente aberto no ambiente de trabalho ISaGRAF. O aplicativo destino é o executada no ISaGRAF PLC destino. Os seguintes itens são exibidos:

VERSÃO:	Este é o número da versão do código do aplicativo. Este número foi calculado pelo gerador de código.

DATA:	Este item mostra a data e a hora da criação do código..

CRC:	Esta é a soma de verificação ("checksum") calculada com o conteúdo da tabela de símbolo. Este número foi calculado pelo gerador de código. Este valor depende dos conteúdos do dicionário de variáveis.

Nota:	O comando "Obter número de versão" também está disponível durante a simulação. No modo depuração real, este comando não pode ser utilizado se o PLC destino não estiver conectado.


Modificação online

O comando "Arquivo / Realiza atualização" permite que o usuário utilize a "modificação online" do aplicativo destino em execução. Este comando está detalhado em seções adicionais deste capítulo. Não está disponível quando o depurador for utilizado em modo de simulação.


Modo Tempo Real

O comando "Controle / Tempo real" não está disponível quando nenhum aplicativo está ativo. Configura o aplicativo destino no modo "tempo real" normal : modo Normal: os ciclos de execução são sincronizados pelo tempo de ciclo programado.


Modo Ciclo a Ciclo

O comando "Controle ciclo a ciclo" não está disponível quando nenhum aplicativo está ativo. Configura o aplicativo destino no modo "ciclo a ciclo" normal: Neste modo, os ciclos são executados um por um, de acordo com os comandos "Executar um ciclo" feitos pelo usuário a partir do menu depurador.


Executar um ciclo

Quando o destino está no modo ciclo a ciclo, o comando  "Controle / Executar um ciclo" executa um ciclo.


O tempo de ciclo

O comando "Alterar tempo de ciclo" permite que o usuário modifique o tempo de ciclo programado. Este tempo é entitulado como "Permitido" na barra de controle da janela de depurador. O modo "Ciclo a ciclo" deveria ser configurado antes de modificar o tempo de ciclo. O tempo de ciclo é inserido como um número inteiro em milisegundos (ms).


Remover todos os breakpoints

O comando "Controle / Apagar todos Breakpoints" remove todos os breakpoints instalados atualmente (encontrados ou ainda ativos) em todo o aplicativo. Os breakpoints existentes não são removidos automaticamente quando a janela de depurador está fechada.


Desbloquear variáveis E/S

O comando "Destravar todas as variáveis de E/S" desbloqueia todas as variáveis E/S atualmente bloqueadas no aplicativo. Quando uma variável E/S é fechada, nenhuma modificação de estado de entrada ou de saída é feita ao dispositivo E/S correspondente. As variáveis atreladas ao E/S ainda podem ser escritas pelo aplicativo ou pelo depurador. Variáveis E/S atualmente bloqueadas não são automaticamente desbloqueadas quando a janela de depurador está fechada.


Opções

O menu "Opções" contém as opções para controlar a informação exibida na janela de depurador.

Os parâmetros de comunicação

Opções de visualização


Os parâmetros de comunicação

Os parâmetros de tempo de comunicação podem ser ajustados quando o depurador está ativo. Somente os "timeouts" de comunicação podem ser configurados aqui. Os outros parâmetros de comunicação (taxa de transmissão de dados, paridade...) devem ser configurados no menu "Depurar" da janela de Gerenciamento de Programa.

O "Timeout de Comunicação" é o tempo deixado para o sistema destino começar a resposta a um pedido do ambiente de trabalho. O "Duração do tempo de ciclo" é o período de tempo requerido para as solicitações de "leitura " a serem enviadas pelo depurador para atualizar dados nas janelas abertas.

Todos os valores de tempo são exibidos e inseridos como números inteiros em milisegundos (ms). Os parâmetros de tempo de comunicação não podem ser configurados quando o depurador é utilizado no modo de simulação.


Opções de visualização

A opção "Exibir tempo de ciclo" permite que o usuário esconda ou mostre os valores do tempo de ciclo na barra de controle de depurador. Quando esta opção está ativa, todos os componentes do tempo de ciclo (permitido, corrente, máximo, "overflows") são exibidos e atualizados. Desativando esta opção a carga do depurador de comunicação é reduzida.

Quando a opção "Exibir erros" está ativa, os erros de tempo de execução detectados são listados na área inferior da janela de depurador. Quando esta opção desativada, a lista de erros é fechada. Removendo esta opção a carga do depurador de visualização e de comunicação é reduzida. Os comandos "Opções / Apagar erros" limpa a lista de erros de tempo de execução atualmente exibida na janela de depurador.

O comando "Opções / Minimizar janela" reduz o tamanho da janela de depurador de forma que é mostrada como uma pequena janela, sempre no topo, o painel contendo somente o estado do aplicativo e botões gráficos para os comandos mais comumente utilizados.


Comandos "Write"
Comandos de Escrita

O depurador ISaGRAF simbólico oferece muitos comandos para modificar o valor ou o estado dos componentes de aplicativo. A seleção do componente a ser modificado é feita clicando duas vezes sobre seu nome ou seu desenho em uma janela de edição, quando a janela de depurador está aberta.

Variáveis

Objetos SFC


Variáveis

Um estado de variável é modificado clicando duas vezes sobre seu nome em um das seguintes janelas :

•	Dicionário

•	Listas de variáveis ou diagramas de tempo

•	Programas LD ou FBD

•	Conexão E/S

Os seguintes comandos são oferecidos na caixa de diálogo de depuração :

•	Escrever (Write) a variável para um novo valor

•	Travar (Lock) a variável (somente para variáveis E/S)

•	Destravar (Unlock) a variável (somente para variáveis E/S bloqueadas)

•	Iniciar (Start) ou Parar (Parar) uma variável de temporização (ativar o modo automático de atualização)

Valores simbólicos utilizados para representar valores booleanos FALSO e VERDADEIRO são as cadeias definidas para aquela variável booleana específica no dicionário. O valor analógico especificado para um comando "Escrever" deve ser inserido em um formato inteiro ou real, de acordo com a definição da variável no dicionário. A cadeia especificada para um comando "Escrever" para uma mensagem não pode ser maior que a capacidade da mensagem atrelada àquela variável específica no dicionário.


Objetos SFC

Para observar uma operação de controle em um programa SFC durante a depuração do aplicativo, os comandos do menu "Arquivo" são utilizados na janela de Gerenciamento de Programa. O programa SFC deve ser selecionado na lista de programas. Os seguintes comandos estão disponíveis:

Iniciar programa SFC:	Habilita o programa selecionado colocando uma marca em cada etapa inicial.

Encerrar programa SFC:	Mata o programa selecionado removendo todas as suas marcas.

Congelar programa SFC:	Remove todas as marcas existentes do programa selecionado e armazena suas localizações.

Reiniciar programa SFC:	Reinicia um programa congelado recolocando as marcas que foram removidas pelo comando "Congelar".

Para programas secundários, estes comandos correspondem às funções "GSTART", "GKILL", "GFREEZE" e "GRST" na linguagem de programação.

Uma operação de controle pode ser vista em uma etapa SFC quando depurando o aplicativo clicando duas vezes sobre sua representação gráfica na janela de edição SFC. Os seguintes comandos estão disponíveis dentro da caixa de diálogo de depuração:

•	Instale um breakpoint na etapa de ativação

•	Instale um breakpoint na etapa de desativação

•	Remover (clear) o breakpoint adicionado à etapa

Nota:	Breakpoints de ativação e de desativação não podem ser acrescentados à mesma etapa.

Uma operação de controle pode ser vista em uma transição SFC quando depurando o aplicativo clicando duas vezes sobre sua representação gráfica na janela de edição SFC. Os seguintes comandos estão disponíveis dentro da caixa de diálogo de depuração:

•	Adicione um breakpoint na remoção de transição

•	Remover (Clear) um breakpoint acrescentado à transição

•	Manualmente remover (clear) a transição (mova ou adicione marcas)

Remoção condicional: um símbolo é criado nas etapas seguintes à transição. As marcas que existam nas etapas precedentes são removidas. Remoção incondicional: uma marca é criada nas etapas seguintes à transição. As marcas que existam nas etapas precedentes não são removidas.


Modificação online

A característica "modificação online" permite que o usuário  modifique o aplicativo enquanto o processo estiver em andamento. Isto às vezes é necessário para processos de substâncias químicas em que qualquer interrupção pode arriscar a produção ou a segurança. Esta função deve ser utilizada muito cuidadosamente. O ISaGRAF pode não ser capaz de detectar todos os conflitos possíveis gerados pelas operações definidas pelo usuário como resultado destas mudanças online.

Seqüências de código

Variáveis

Entradas e saídas

Tempo de execução das operações

Memória necessária

Limitações

Operações


Seqüências de código

Como ISaGRAF oferece muitas possibilidades para acesso a variáveis, programas ou placas E/S do depurador, a função "modificação online" descrita aqui só se aplica à modificação de seqüências de código. Uma seqüência de código é um conjunto completo de instruções ST,  IL, LD ou FBD executadas em uma fila. Em um programa "início de ciclo" ou "fim de ciclo", uma seqüência de código é a lista inteira de instruções escrita no programa. Em um programa SFC, uma seqüência de código é a programação de Nível 2 de uma etapa ou transição. Uma "modificação online" consiste em substituir uma ou mais seqüências de código, sem parar a execução de ciclo PLC. Como o controle das marcas SFC é muito crítico, não é possível modificar uma estrutura SFC, adicionar, renumerar ou remover uma etapa, uma transição ou um programa SFC.


Variáveis

Como o banco de dados variável é uma parte muito crítica do aplicativo, ele pode ser acessado a qualquer hora por outros processos (em multitasking PLC). Também é possível modificar valores de variáveis do depurador. Entretanto, o ISaGRAF não permite que o usuário adicione, renomeie ou remova uma variável online. De qualquer maneira, é possível modificar o modo que uma variável é utilizada no aplicativo. Também é possível reservar variáveis "não utilizadas" interna ou E/S na primeira versão do aplicativo, de forma que modificações futuras possam fazer uso delas.

São diferentes estilos de variáveis no banco de dados ISaGRAF destino. Limitações agem em todos elas:

- Variáveis declaradas

São aquelas utilizando o dicionário ISaGRAF. Não podem ser modificadas e não podem ser renomeadas para modificação online. É recomendado que algumas variáveis extras sejam declaradas e inicializadas no aplicativo mesmo que não sejam utilizadas no momento. Tais variáveis extras permitirão modificações futuras para trabalhar sem modificar o checksum de dados de aplicativo.

- Instâncias de blocos de função

Cada Instância de bloco de função escrito em "C" ou IEC corresponde a dados armazenados em banco de dados em tempo real ISaGRAF destino. Quando instâncias de bloco de funções são adicionadas ou removidas, a modificação online não é mais possível. Assim é melhor trabalhar em ST com instâncias FB declaradas em dicionário, em lugar de adicionar blocos (isso corresponderá a novas instâncias automaticamente declaradas) em diagramas Quick LD ou FBD. Também, qualquer modificação na definição de blocos de função disponíveis na biblioteca ISaGRAF conduzirá a uma modificação online impossível.

- Etapas

Cada etapa SFC corresponde a um pedaço de dados nos quais são armazenados atributos dinâmicos SFC (seu tempo de atividade e bandeira). A adição ou a remoção de etapas SFC modifica o banco de dados de aplicativo e é proibido para modificação online.

- Variáveis escondidas alocadas por compiladores

O Compilador ISaGRAF gera variáveis temporárias "escondidas" para resolver expressões complexas. Em algum caso, a modificação de uma expressão pode conduzir a um conjunto diferente de variáveis temporárias não visíveis, e isso conduz a uma modificação online impossível. Para evitar esta situação, você pode adicionar as seguintes entradas no arquivo ISA.INI para forçar que um número mínimo de variáveis temporárias seja alocado para cada programa, mesmo se não utilizadas para a compilação da primeira versão do aplicativo. Os valores aqui apresentados são apenas exemplos:

[DEBUG]

MNTVboo=8	; for booleans

MNTVana=4	; for integers and reals

MNTVtmr=4	; for timers

MNTVmsg=2	; for messages

Quando tal conjunto é escrito no arquivo ISA.INI, o compilador emite uma mensagem de advertência se uma nova compilação de aplicativo conduz para um número maior de variáveis temporárias alocadas.


Entradas e saídas

Como o sistema E/S ISaGRAF é muito aberto, as modificações exigidas deveriam ser implementadas pelo OEM, utilizando características específicas do hardware correspondente. O sistema ISaGRAF não permite que o usuário adicione, conecte ou remova uma variável E/S, ou modifique a descrição de uma placa E/S online. Operações tais como modificar parâmetros de placa e bloquear canais E/S são disponíveis utilizando características de padrão OEM e a função "OPERATE".


Tempo de execução das operações

A modificação de um aplicativo em andamento consiste nas seguintes operações:

•	modificar o código fonte de aplicativo no ambiente de trabalho

•	gerar o novo código de aplicativo

•	carregar o novo código de aplicativo utilizando o comando "Atualizar" em vez de "Descarregar"

•	trocar do aplicativo antigo para o novo, entre os ciclos de execução PLC utilizando o comando "Realizar atualização".

Este procedimento garante que o PLC destino sempre tem um aplicativo em execução completo e seguro, e permite que o usuário controle a sincronização das operações de amostragem de uma maneira muito segura e eficiente. Também permite que o usuário modifique o projeto tão freqüentemente quanto possível. Indiferentemente ao processo, a "modificação online" é essencialmente igual ao conjunto de comandos normais "parar, iniciar e descarregar". As únicas diferenças são que nenhum estado variável é perdido, e o tempo de comutação é muito curto (normalmente 1 ou 2 ciclos de duração). Durante a comutação, nenhuma variável é modificada, e todas as variáveis interna, de entrada ou de saída mantêm o mesmo valor anterior e posterior a modificação de aplicativo. Durante a comutação, nenhuma ação é executada, e marcas SFC não são movidas.


Memória necessária

Para suportar a capacidade "modificação online", o PLC destino tem que ter espaço de memória livre para habilitar o armazenamento da versão modificada do código de aplicativo. Ambas as versões do código de aplicativo têm que ser armazenado em memória PLC durante a operação de comutação.


Limitações

Como descrito anteriormente, somente modificações nas seqüências de código são permitidas. A definição de variável, os parâmetros de aplicativo e conexões E/S não podem ser modificados. Ao carregar uma versão modificada do aplicativo, o ISaGRAF faz uma comparação entre o aplicativo modificado e o em execução para detectar qualquer modificação insegura. Se a comutação parece perigosa ou impossível, um erro de carga é gerado. Uma das proteções executadas pelo ISaGRAF é comparar o "checksum" da tabela de símbolos, de forma que qualquer modificação de nome de variável, programa ou elemento SFC é detectado. Se uma etapa está ativa quando a comutação ocorre, suas ações não armazenadas (N) são perdidas. As ações de ativação de novas etapas não são executadas. Ações executadas durante a desativação da etapa são aquelas trazidas no novo código de aplicativo. Se uma transição é válida quando a comutação ocorre, sua equação de receptividade é atualizada. O novo código de aplicativo carregado não é duplicado no PLC. A cópia de segurança (backup) é a versão previamente carregada com os comandos de carga padrão.


Operações

Para atualizar o código de um aplicativo em execução, as seguintes operações têm que ser executadas:

•	Antes de fazer qualquer modificação em um aplicativo em execução, é muito recomendado fazer uma cópia do projeto atual com outro nome. As modificações podem ser executadas nas cópias.

•	Antes de editar qualquer programa, o usuário deve verificar que a opção "atualizar diário" das ferramentas de edição está ativa, para facilitar futura manutenção de programa.

•	Quando uma ou mais seqüências forem modificadas (sem modificar estruturas SFC e hierarquia de programa), o novo código de aplicativo deve ser gerado no ambiente de trabalho antes de carregar.

•	Utilizando o depurador, de dentro o projeto antigo, o usuário tem que conectar o PLC destino e tem que executar qualquer operação que possa fazer o aplicativo atualizar mais rapidamente ou com mais segurança.

•	Utilizando o depurador, de dentro do novo projeto, o usuário deve conectar o PLC destino. Se o nome de aplicativo é modificado, o banco de dados destino não pode ser acessado. O usuário tem que executar o comando "Arquivo / Realiza atualização".

•	O aplicativo modificado é carregado selecionando a opção "Atualizar depois". Isto pode reduzir ligeiramente a velocidade durante a transferência PLC.

•	Quando a carga está completa, o usuário pode executar o comando " Arquivo / Realiza atualização " para habilitar a comutação no momento mais adequado. A comutação terá uma duração 1 ou 2 ciclos.

•	Quando a comutação tiver sido corretamente executada, os programas do aplicativo modificado em execução são mostrados. Se não, o aplicativo em execução existente permanece como é.


Trocas DDE
Troca de dados DDE

O depurador ISaGRAF inclui um servidor DDE (Dynamic Data Exchange). Um "loop" de aviso pode ser instalado entre o depurador ISaGRAF e outros aplicativos, de modo a exibir dinamicamente o valor atual das variáveis nos aplicativos não ISaGRAF.

Somente as transações "avdvise" e "poke" são suportadas pelo servidor DDE depurador ISaGRAF. Você só pode utilizar a transação "request" para variáveis já monitoradas dentro de um "loop" de aviso. Outros serviços DDE tais como "execute" não estão disponíveis. Quando um "loop" de aviso está estabelecido em uma variável, o valor desta variável é atualizado no aplicativo de cliente toda vez que ele mudar. Qualquer tipo de variáveis pode ser monitorado. A identificação da ligação dinâmica inclui os seguintes nomes :

Service name:	"ISaGRAF"

Topic name:	Nome do projeto ISaGRAF

Item name:	Nome da variável

Se a variável for local para um programa, o seu nome deve ser seguido pelo nome de seu programa principal, escrito entre parênteses, com seguinte a sintaxe :

nome_da_variável(nome_do_programa)

O servidor DDE depurador ISaGRAF que é dedicado ao aplicativo ISaGRAF atualmente monitorado pelo depurador. Até 256 variáveis podem ser monitoradas pelo servidor ISaGRAF. O servidor DDE pode ser utilizado quando o depurador ISaGRAF é executado ou no modo conectado ou no modo simulação. A duração da atualização é a estabelecida para a comunicação entre o depurador e o sistema ou simulador ISaGRAF destino.