ConteúdoPágina
Objetivos da aprendizagem...................................................................................................................2
Tipos de blocos......................................................................................................................................3
OB – Blocos de Organização................................................................................................................4
DB – Bloco de dados.............................................................................................................................5
FC – Função..........................................................................................................................................6
FB – Bloco de funções...........................................................................................................................7
Bloco de dados instance........................................................................................................................8
Bloco de dados multi-instance...............................................................................................................9
Possibilidades de estruturação de programa.........................................................................................10
Imagens de processo.............................................................................................................................11
Adicionar um novo bloco........................................................................................................................12
Declaração da interface.........................................................................................................................13
Instruções de programação....................................................................................................................14
Salvar um bloco......................................................................................................................................15
Chamar um bloco...................................................................................................................................16
Alimentar um bloco com parâmetros.....................................................................................................17
Atualizar a chamada de um bloco..........................................................................................................18
Compilar um bloco.................................................................................................................................19
Transferindo blocos para o PLC............................................................................................................20
Monitorar um bloco................................................................................................................................21
Propriedades do bloco...........................................................................................................................22
Proteção de bloco por senha.................................................................................................................23
Transferindo blocos do PLC para dentro do projeto..............................................................................24
Agrupamento de blocos definidos pelo usuário.....................................................................................25
Barra favoritos........................................................................................................................................26
Inserir / mostrar comentários.................................................................................................................27
Mostrar / ocultar networks.....................................................................................................................28
Selecione o tipo de dado e a instrução.................................................................................................29
Exercício 6-1: Inserir o bloco "FC_Mode" (FC15).................................................................................30
Exercício 6-2: Programar o bloco "FC_Mode" (FC15)..........................................................................31
Exercício 6-3: Programe o bloco "FC_ConvMotor" (FC16)...................................................................32
Exercício 6-4: Chamar "FC_Mode" (FC15) e "FC_ConvMotor" (FC16) no OB1...................................33
Exercício 6-5: Compile, baixe e salve o programa alterado..................................................................34
Blocks(blocos) O sistema de automação fornece diversos tipos de blocos nos quais o programa do usuário e os dados associados podem ser salvos. O programa pode ser estruturado utilizando-se diferentes blocos dependendo das necessidades do processo.
OBs(OB = organization block) Os blocos de organização formam a interface entre o sistema operacional e o programa do usuário. O programa completo pode ser armazenado no OB1 o qual é chamado ciclicamente pelo sistema operacional (programa linear) ou ele pode ser distribuído em diversos blocos (programa estruturado).
FC(FC = function) As funções contêm uma sub-rotina do programa. Funções podem ser programadas como parametrizáveis, deste modo quando a função é chamada, parâmetros devem ser passados para ela. Funções são idealmente apropriadas para programas frequentemente complexos na forma de sub funções, tais como cálculos.
FB (FB = function block) Os blocos de funções oferecem as mesmas possibilidades que as funções, em termos de programação, mas eles possuem como recurso sua própria área de memória na forma de blocos de dados instance. Isto torna os blocos de funções idealmente apropriados para programas que frequentemente realizam funções complexas, tais como tarefas de controle em malha fechada.
Data blocks (DB = data blocks) Os blocos de dados são áreas de dados do programa do usuário nas quais os dados do usuário são gerenciados de modo estruturado.
PermissibleEm todos os blocos (FBs, FCs e OBs) todo o conjunto de instruções pode ser
operationsutilizado.
OBsOs blocos de organização controlam a implementação dos programas do usuário. Cada OB requisita um único número. Muitos números abaixo de 200 são reservados para OBs que respondem a eventos específicos.
Eventos especiais na CPU disparam a execução dos OBs. Um OB não pode ser chamado por outro OB, FC ou FB. Um evento de partida somente pode ativar a implementação de um OB, tal como uma interrupção de diagnóstico (OB82) ou uma interrupção atraso de tempo (>OB200).
Se mais de um evento de interrupção chegar ao mesmo tempo, a prioridade dos OBs determina a sequência de execução. OBs com alta prioridade são processados primeiro.
AcumuladoresUm programa do usuário pode armazenar dados em diferentes área de memória, por exemplo imagem de processo de entrada (PII - process input image), imagem de processo de saída (PIQ - process output image), de memória M (M - memory) que estão disponíveis de acordo com a CPU. Adicionalmente, você também pode declarar blocos de dados (DB) em seu programa.
DBsVocê declara blocos de dados em seu programa de forma a salvar dados ou resultados dos blocos de códigos. Existem dois tipos de blocos de dados:
•Bloco de dados global,que pode ser utilizado por todos os blocos de códigos.
•Bloco de dados instance,que é atribuído a um FB específico e que também pode ser usado por este FB.
UDTsVocê também pode utilizar UDTs (User Data Types – tipos de dados definidos pelo usuário) para criar “templates” (formatos) para blocos de dados globais.
FunçãoUma função (FC) é um bloco de código executado rapidamente o qual normalmente executa um comando com base em parâmetros de entrada. O resultado é armazenado em uma área de memória global.
Você utiliza FCs para as seguintes tarefas:
•Para criar operações reutilizáveis, por ex., fórmulas de cálculos.
•Para criar funções técnicas reutilizáveis (válvulas de controle).
Uma FC pode ser chamada mais de uma vez em diferentes pontos do programa. Uma FC não pode ter um bloco de dados atribuído a ela. A FC utiliza o bloco de dados local para salvar dados temporariamente. Os tags no bloco de dados local são perdidos após a FC ter sido executada.
ParâmetrosOs parâmetros de uma FC devem ser preenchidos.
FBsUm bloco de função (FB) é um bloco de códigos que pode ser chamado com parâmetros. Os parâmetros são armazenados em um DB local (DB instance). Os dados são retidos no DB instance mesmo após o FB ter sido executado. Você pode também chamar um FB mais de uma vez. Cada chamada pode receber um DB instance próprio ou você pode combinar diversos instances para formar um multi-instance.
ParâmetrosEm contraste com o FC, os parâmetros de um FB podem se preenchidos mas eles não necessitam ser preenchidos.
…Entradas / saídas binárias.
…Entradas / saídas digitais.
DefiniçãoA chamada de um bloco de funções pede um DB Instance. Um bloco de dados instance será atribuído a cada chamada de bloco de funções o qual transferirá seus parâmetros. Este bloco de dados instance serve como memória de dados. Os parâmetros atuais e os dados estáticos do bloco de funções serão armazenados nele.
Os tags declarados no bloco de funções determinam a estrutura do bloco de dados instance.
ExemploO diagrama acima mostra a interface de um FB com parâmetros de entrada, saída e de entrada-saída. A interface também contém tags estáticos e temporários. Um DB instance é gerado automaticamente a partir das declarações da interface do FB e não podem ser alterados.
Os parâmetros e tags estáticos somente serão armazenados no DB instance. Os tags temporários somente serão armazenados na pilha local (L stack) durante a execução do FB.
IntroduçãoSe os dados de desempenho de sua CPU S7 limitar a quantidade disponível de blocos de dados, você pode utilizar multi-instances.
DefiniçãoMulti-instances habilitam uma chamada de bloco de função para armazenar seus dados no DB instance do FB chamado. Isto permite a você concentrar os dados instance em um único bloco de dados instance o que representa uma otimização na quantidade utilizada de DBs.
Em outras palavras é como se você reunisse todos os DBs instance em um único DB.
Multi-instanceO diagrama acima mostra a interface de um FB no qual FBs adicionais são chamados. Todos os FBs terão um único e mesmo DB instance. Isto significa que a interface do FB contém interfaces adicionais que serão declaradas como tags estáticos.
Programa LinearSolução para pequenas tarefas de automação podem ser programadas linearmente em um único OB. Isto somente é recomendado no caso de programas simples.
Programa estruturado
Tarefas complexas de automação podem ser implementados e mantidas mais facilmente pela divisão delas em sub tarefas menores que correspondem a funções tecnológicas do processo ou que possam ser reutilizadas. Estas sub tarefas são representadas no programa do usuário pelas correspondentes seções de programa, conhecidas como blocos. Cada bloco é então uma seção independente do programa do usuário.
Estruturar o programa oferece as seguintes vantagens:
• Programas extensos são mais fáceis de entender.
• Seções individuais de programa podem ser padronizadas.
• A organização do programa é simplificada.
• Alterações de programa podem ser mais facilmente realizadas.
• A depuração é simplificada pelo fato que seções separadas podem ser testadas.
• A colocação em operação fica simplificada.
IntroduçãoA CPU possui áreas de memória reservadas para salvar todos os sinais: a imagem de processo de entrada (PII) e imagem de processo de saída (PIQ). Durante a execução do programa, a CPU acessa estas áreas de memória ou diretamente os módulos de entrada e saída.
PII(PII – process input image) A imagem de processo de entrada é a área de memória na qual os estados lógicos de todos os módulos de entrada são armazenados. O sistema operacional lê os estados lógicos dos módulos no início do ciclo e os armazena na imagem de processo de entrada.
PIQ(PIQ – process output image) A imagem de processo de saída é a área de memória na qual os resultados das operações no programa são armazenados. A imagem é escrita para os módulos de saída no fim do ciclo. Através da execução do programa as saídas podem ser atribuídas ou diretamente acessadas.
Consultar Quando entradas são consultadas no programa (p.ex. A I 2.0), o estado lógico desta entrada será consultado na PII onde ele está salvo. Este não pode ser alterado dentro de um ciclo devido ao fato que a PII somente pode ser atualizada ou lida no início de um ciclo. Isto assegura que o mesmo resultado será obtido se uma entrada for consultada diversas vezes durante a execução de um ciclo.
Se o programa tiver que acessar um dado útil diretamente e não via imagem de processo, você deve complementar o endereço de I/O com ":P". Este é o caso, por exemplo, em programas com tempo crítico no qual as saídas também devem ser acionadas no mesmo ciclo.
Adicionar um bloco Para criar um bloco (OB, FB, FC ou DB), siga os seguintes passos:
• Duplo clique no comando "Add new block".
• O diálogo "Add new block" será aberto.
• Acione o botão:
-"Organization block (OB)"
- "Function block (FB)"
-"Function (FC)" ou
-"Data block (DB)".
• Insira um nome para o bloco.
• Na caixa de texto "Language", selecione a linguagem de programação para o novo bloco.
• Caso você deseje definir o número do bloco, verifique se a opção "Manual" está selecionada.
• Se você escolheu atribuir o número manualmente, insira o número do bloco no campo de entrada.
Demais informações•Para definir outras propriedades ao novo bloco, acione a flecha para "Further information" na parte inferior da caixa de diálogo.
-Uma área com campos de entrada adicionais será mostrado.
-Insira todas as propriedades que você deseja.
•Acione "OK" para confirmar as informações que você inseriu..
moreMais informações do bloco através da ajuda online.
ProcedimentoApós o bloco ter sido adicionado, a interface para o bloco será declarada. Os seguintes pontos devem ser aqui considerados:
Input1.Qual informação é necessária para realizar a tarefa na respectiva estação?
• Estado lógico do sinal do sensor de proximidade (Bx).
• Estado lógico do sinal do botão (Sx).
• Um gerador de pulsos e
• O número da estação.
Output2.O que deve ser retornado para a chamada do bloco como um resultado?
• Estado lógico do LED (LIGADO, DESLIGADO ou PISCANDO).
InOut3.Determinadas informações devem ser transferidas para o bloco e retornadas para a chamada do bloco?
• Bit indicando se a estação será a próxima estação a ser iniciada.
• Troca figura para determinação da próxima estação a ser iniciada.
• Número da estação atual.
Static4.Alguns estados lógicos operacionais devem ser salvos no bloco durante diversos ciclos?
• Estados lógicos operacionais da estação.
• Memória de detecção de transição.
TempÁreas de memória também podem ser declaradas por um ciclo de execução, se necessário.
InstruçõesApós a interface ter sido definida, as instruções necessárias podem ser inseridas no bloco a partir da árvore de instruções.
Salvar um blocoO editor será fechado clicando-se no símbolo na barra de títulos com o mouse (até mesmo quando o programa tiver erros de sintaxe). As alterações feitas no bloco não são rejeitadas quando o editor for fechado, elas também serão guardadas no disco rígido da forma que estão!
NoteO bloco não será salvo no disco rígido enquanto o botão salvar tudo não tenha sido pressionado.
Chamar blocoA fim de que os seus blocos, os quais estruturam o programa do usuário em segmentos independentes, sejam executados no programa do usuário, eles devem ser chamados de outros blocos.
Quando um bloco chama outro bloco, as operações do bloco que foi chamado serão executadas. Ainda, o bloco chamado será completamente executado para então retornar ao bloco de onde foi feita a chamada e continuar o seu processamento. A execução continua com a próxima instrução após a instrução de chamada daquele bloco..
No bloco com comando de chamada, você preenche os parâmetros na interface deste bloco chamado com valores. Através da alimentação dos parâmetros de entrada, você especifica os dados que serão utilizados para execução do bloco. Através da alimentação dos parâmetros de saída, você especifica onde os resultados da execução serão armazenados.
ParâmetrosSimplismente alimente o bloco chamado com parâmetros da tabela de tags do PLC por meio de procedimento marcar e arrastar.
Consistency check(verificação de consistência) Mudando o time stamp (selo de tempo) de um bloco (uma memória dentro do bloco que indica a última alteração do bloco) durante ou após o programa ser gerado pode gerar conflito de “time stamp”, o qual em termos causa inconsistências entre os blocos que estão chamando e os que estão sendo chamados.
A função "Consistency check" é usada para visualizar inconsistências quando conflitos de “time stamp” ocorrem. Quando a verificação de consistência for realizada, os blocos inconsistentes serão mostrados na estrutura de chamada (a estrutura de chamada descreve a hierarquia de chamada dos blocos dentro de um programa S7; ela fornece uma visão geral dos blocos utilizados, as dependências entre os blocos e os dados locais requisitados dos blocos) e identificados pelos símbolos apropriados.
• Na maioria das vezes os conflitos de “time stamp” e conflitos de interface podem ser removidos recompilando os novos blocos.
• Se as inconsistências não forem resolvidas pela compilação, você pode navegar para o exato local do problema pelo editor de programas, através da conexão na coluna "Details“ e retificar as inconsistências manualmente.
• Os blocos marcados em vermelho necessitam ser compilados novamente.
ProcedimentoPara compilar um bloco no editor de programas, siga os passos abaixo:
• Clique na área branca abaixo de um network na janela de instruções do editor de programas utilizando o botão direito do mouse.
• Selecione o comando "Compile" no menu atalho.
ResultadoO código para o bloco será gerado. Se o bloco a ser compilado tiver chamadas de blocos nas quais as interface tenham mudado, a chamada do bloco será atualizada.
A mensagem sobre "Info > Compile" na janela inspetor relata se a compilação obteve sucesso ou não.
Download to device(transferir/baixar para o dispositivo) Os dados de projeto que são transferidos para o dispositivo podem ser divididos em dados de projeto de hardware e software:
• Os dados de projeto de hardware resultam da configuração de hardware, networks e conexões. Na primeira transferência todo os dados do projeto de hardware são carregados no dispositivo. Nas transferências seguintes, somente alterações da configuração serão carregadas.
• Os dados de projeto de software envolvem os blocos do programa do usuário. Na primeira transferência todos os dados do projeto de software serão carregados. Nas transferências seguintes, você pode determinar se o software completo ou somente o software modificado será transferido.
-All: Hardware e software
-Hardware configuration : Somente hardware
-Software: Somente blocos alterados
-Software (all blocks): Todos os blocos
Pré condiçãoÉ necessário que o bloco no dispositivo e o bloco no computador sejam iguais.
Estado lógico Para monitorar os estados do programa para um bloco, siga estes passos:
• Acione o botão "Monitoring on/off" na barra de ferramentas.
Para iniciar a monitoração do programa em um ponto específico, siga estes passos:
• Acione o botão "Monitoring on/off" na barra de ferramentas.
• Acione o botão direito sobre o tag do qual você deseja ativar a monitoração do programa.
• Selecione "Monitor from here" no menu atalho.
NotaOs recursos para testar os estados do programa são limitados. Se não existirem recursos suficientes para a monitoração, ela será encerrada precocemente.
ResultadoQuando você habilitar a monitoração dos estados do programa, uma conexão online será estabelecida e os estados do programa serão mostrados. Quando você desabilitar a monitoração dos estados do programa, você será questionado se deseja interromper a conexão online.
PropriedadesCada bloco possui determinadas propriedades que você pode visualizar e editar. Estas propriedades são usadas para:
• Identificar o bloco.
• Mostrar os requisitos de memória e o resultado da compilação do bloco.
• Mostrar o “time stamp”.
• Mostrar as informações de referência.
• Especificar a proteção de acesso.
Parâmetros do bloco
Os blocos de organização possuem parâmetros de bloco que você utiliza para parametrizar respostas específicas, p.ex. atribuição de um evento à um bloco de organização.
Introdução Você pode proteger um ou mais blocos dos tipos OB, FB, FC e DB contra acessos não autorizados utilizando senha. Se um bloco é protegido por senha (know-how protected), somente os seguintes dados podem ser lidos:
• Parâmetros de transferência (Input, Output, InOut, Return).
• Título do bloco.
• Comentários do bloco.
• Propriedades do bloco.
• Estrutura do programa.
• Tags globais na referência cruzada sem informações sobre o ponto de seu uso.
As seguintes ações podem ainda serem realizadas com um bloco protegido:
• Copiar e deletar.
• Chamada em um programa.
• Verificação e onde necessário atualização quando compilado.
Os códigos internos ao bloco, de outra maneira, estão protegidos contra leitura e modificação não autorizadas.
NotaFavor atentar para o seguinte:
Quando você transferir um bloco protegido para um dispositivo, nenhuma informação de recuperação será carregada. Isto significa que você não poderá abrir o bloco protegido, mesmo que se tenha a senha, se você baixou o bloco para o dispositivo. As versões offline e online do bloco podem ainda ser comparadas utilizando a senha correta.
ImportanteSe você esquecer a senha, nenhum acesso ao bloco será possível.
Upload(subir) Os blocos de programa podem ser transferidos para o projeto vindos de qualquer PLC através de acesso online.
Add group(adicionar grupo) Insira uma nova pasta na árvore de projetos. Esta pasta pode ser utilizada para guardar diversos blocos os quais estejam logicamente conectados para formar um novo grupo.
ElementsOs elementos (representação gráfica de instrução) frequentemente utilizados estarão disponíveis na barra de ferramentas. Eles serão inseridos no ponto marcado no programa com um clique do mouse.Demais elementos de programa serão inseridos do catálogo na janela "Instruction tree":•Através de marcar e arrastar para qualquer ponto.•Através de um duplo clique no elemento para qualquer posição marcada.
NetworksClicando-se no símbolo "New network" na barra de ferramentas um novo network será adicionado antes do network atual.
Comments(comentários) Comentários adicionais podem ser atribuídos para cada função. Eles podem ser mostrados ou ocultados pela barra de funções.
NetworksClicando-se no símbolo "New network" um novo network será adicionado após o network atual.
Se um novo network NW1 tiver de ser inserido antes do NW1 existente, marque o título do bloco antes de clicar no símbolo para inserir o novo network.
Todos os networks podem ser abertos ou fechados através da barra de ferramentas. Os networks também podem ser abertos ou fechados individualmente.
DescriçãoVocê pode utilizar a operação de comparação para verificar se o primeiro valor da comparação é o mesmo que o segundo. Todos os valores de comparação devem ser do mesmo tipo de dado. Se a comparação for verdadeira, o RLO da instrução será "1". Uma operação lógica será realizada no RLO e o RLO do caminho atual completo como segue:
• Com lógica “E” quando a operação de comparação estiver conectada em série.
• Com lógica “OU” quando a operação de comparação estiver conectada em paralelo.
PosicionamentoA operação de comparação pode ser localizada em qualquer posição no network.
Drop-down list (lista de seleção) Você pode selecionar o tipo de dado para a operação na lista de seleção "DT".
TarefaCrie uma sub rotina para o modo de operação no "FC_Mode" (FC15) da esteira:
Procedimento1.Duplo clique em "Add new block" na pasta "Program blocks".
2.Insira os valores mostrados no slide dentro da caixa de diálogo que aparecerá.
TarefaPrograme uma sub rotina do modo de operação no recém criado "FC_Mode" (FC15) para a esteira:
O sinaleiro "L_Operation" (LED Q 4.1) será ativado através do botão "T_ON (I0.0) do simulador e desativado através do botão "T_OFF" (I 0.1) do simulador.
Procedimento1.Abra o novo bloco FC15 com um duplo clique.
2.Abra o cartão de tarefas "Instructions" e programe as instruções mostradas usando marcar e arrastar.
3.Atribua os nomes mostrados no slide para os tags utilizados.
TarefaCom "L_Operation" (Q4.1) desativada, deve ser possível executar a operação jog na esteira conforme segue:
Deve ser possível executar a operação jog na esteira para a direita (RIGHT) (Q8.5) através do botão I 0.2 do simulador e para a esquerda (LEFT) (Q 8.6) através do botão I 0.3 do simulador. Se ambos botões forem acionados ao mesmo tempo, o motor da esteira não deve ser ativado em qualquer direção (intertravamento).
Procedimento1.Crie o novo "FC_ConvMotor (FC16) e abra-o.
2.Abra o cartão de tarefas "Instructions" e programe as funções necessárias.
3.Atribua os nomes mostrados no slide para os tags utilizados.
TarefaPara permitir que os blocos criados recentemente sejam executados ciclicamente, programe suas chamadas no bloco "Main" (OB1).
Procedimento1.Abra o bloco "Main" (OB1) com um duplo clique.
2.Programe as chamadas para "FC_Mode" (FC15) e "FC_ConvMotor" (FC16) conforme mostrado no slide através de marcar e arrastar.
TarefaTodos os blocos recentemente editados devem ser compilados, transferidos para a CPU (baixados) e salvos offline na memória de dados do projeto.
ExecuçãoRealize os passos mostrados no slide em sequência.