Módulo TIA Portal 010-090
Programação 'startup' em linguagem de alto nível
com S7-SCL e SIMATIC S7-1200
Documentação de treinamento SCE
para a solução de automação universal
Totally Integrated Automation (TIA)
Pacotes de instrutor SCE deste documento
SIMATIC S7-1200 AC/DC/RELAIS 6º "TIA Portal"Nº de pedido: 6ES7214-1BE30-4AB3
SIMATIC S7-1200 DC/DC/DC 6º "TIA Portal" Nº de pedido: 6ES7214-1AE30-4AB3
SIMATIC S7-SW para treinamento STEP 7 BASIC V11 Upgrade (para S7-1200) 6º "TIA Portal" Nº de pedido: 6ES7822-0AA01-4YE0
Note que os pacotes de instrutor podem ser substituídos por pacotes atualizados.
Um resumo dos pacotes SCE atualmente disponíveis pode ser encontrado em: siemens.com/sce/tp
Treinamentos avançados
Para treinamentos avançados SCE Siemens, entre em contato com o parceiro SCE da sua região
siemens.com/sce/contact
Outras informações sobre SCE
siemens.com/sceNota sobre o uso
A documentação de treinamento para a solução de automação universal Totally Integrated Automation (TIA) foi elaborada para o programa "Siemens Automation Cooperates with Education (SCE)" especificamente para fins educacionais. A Siemens AG não assume nenhuma responsabilidade sobre o conteúdo.
Este documento só pode ser utilizado para o treinamento inicial em produtos/sistemas da Siemens. Isto é, ele pode ser copiado em sua totalidade ou parcialmente e ser entregue aos alunos para uso durante o treinamento. A transmissão e reprodução deste documento, bem como a divulgação de seu conteúdo, são permitidas apenas para fins educacionais.
As exceções demandam a aprovação por escrito do representante da Siemens AG: Sr. Roland Scheuerer
roland.scheuerer@siemens.com.
As violações estão sujeitas a indenização por danos. Todos os direitos, inclusive da tradução, são reservados, particularmente para o caso de registro de patente ou marca registrada.
A utilização em cursos para clientes industriais é expressamente proibida. O uso comercial dos documentos não é autorizado.
PÁGINA:
1. Prefácio ... 4
2. Nota sobre a linguagem de programação S7-SCL ... 6
3. O ambiente de desenvolvimento S7-SCL ... 7
4. Exemplo de tarefa para o conteúdo do tanque ... 8
4.1 Descrição da tarefa ... 8
4.2 Lista de atribuição / tabela de variáveis ... 8
4.3 Estrutura do programa... 9
4.4 Interface do bloco calculate_volume_tank [FC140] ... 10
4.5 Nota de solução ... 11
5. Programação do cálculo do conteúdo do tanque para o SIMATIC S7-1200 em S7-SCL ... 12
5.1 Criar o projeto e configurar o hardware ... 12
5.2 Criar o programa ... 15
5.3 Testar o programa ... 23
1.
Prefácio
O módulo SCE_PT_010-090 constitui a unidade de aprendizado 'Fundamentos da programação
CLP' e representa uma introdução rápida na programação do SIMATIC S7 1200 com a linguagem de
programação S7-SCL com o TIA-Portal.
Meta de aprendizado:
Neste módulo o leitor deverá conhecer as funções básicas do ambiente de desenvolvimento S7-SCL. Além disto, serão apresentadas as funções de teste para a eliminação dos erros lógicos de
programação.
Pré-requisitos:
Para um bom entendimento desse módulo, é
necessário conhecimento sobre Windows
Fatores adicionais para a programação CLP Módulo 30 Fundamentos da programação CLP Módulo 10, módulo 20 PROFIBUS PROFINET
Módulo 60 Módulo 70 AS-Interface Módulo 50 Tecnologia de segurança Módulo 80 Tecnologia de acionamento Módulo 100 Visualização do processo (IHM) Módulo 90 Tecnologia de sensores Módulo 110 Simulação do sistema SIMIT Módulo 150 Outras linguagens de programação Módulo 40
Hardware e software necessários
1 PC Pentium 4 com 1.7 GHz, 1 GB de RAM (XP) ou 2 GB de RAM (Vista), espaço livre em disco de aprox. 2 GB
Sistema operacional Windows XP Professional SP3 / Windows 7 Professional / Windows 7
Enterprise / Windows 7 Ultimate / Windows 2003 Server R2 / Windows Server 2008 Premium SP1, Business SP1, Ultimate SP1
2 Software STEP 7 Professional V11 SP2 (TIA-Portal V11)
3 Conexão Ethernet entre o PC e a CPU 1214C
4 CLP SIMATIC S7-1200 a partir de firmware V2.2, por exemplo, CPU 1214C com módulo de sinal 14DI/10DO.
As entradas deverão ser executadas em um painel de controle.
4 S7-1200 com CPU 1214C a partir de firmware V2.2 1 PC 2 STEP 7 Professional V11SP2 (TIA-Portal) 3 Conexão Ethernet
2.
Nota sobre a linguagem de programação S7-SCL
S7-SCL (Structured Control Language) é uma linguagem de programação de alto nível, que se orienta por PASCAL e permite uma programação estruturada. A linguagem corresponde a um diagrama funcional sequencial SFC "Sequential Function Chart" definida na norma DIN EN-3 (IEC 61131-3). A S7-SCL contém, além dos elementos de linguagem de alto nível, também os elementos típicos do CLP, tais como entradas, saídas, tempos, marcadores, chamadas de bloco etc., como elementos de linguagem. Ela suporta o conceito de blocos do STEP 7 e permite, além de AWL, LD e FBD, a
programação normalizada de blocos. Isto é, S7-SCL complementa e amplia o software de programação STEP 7 com suas linguagens de programação LD, FBD e AWL.
Nem todas as funções precisam ser criadas de modo próprio, mas podem ser acessados nos blocos pré-fabricados, tais como as funções do sistema ou blocos de função do sistema, que existem no sistema operacional da CPU.
Os blocos, programados com S7-SCL, podem ser misturados com blocos AWL, LD e FBD. Isto
significa, que um bloco programado com S7- SCL pode chamar outro bloco que tenha sido programado com AWL, LD ou FBD. De modo correspondente, os blocos S7-SCL também podem ser chamados em programas AWL, LD e FBD
As funções de teste de S7-SCL permitem a localização de erros lógicos de programação em uma compilação livre de erros.
3.
O ambiente de desenvolvimento S7-SCL
Para a utilização e a aplicação de S7-SCL há um ambiente de desenvolvimento, que tanto é adaptado às propriedades específicas do S7-SCL, como também do STEP 7. Este ambiente de desenvolvimento consiste em um editor/compilador e um depurador.
Editor / Compilador
O editor S7-SCL é um editor de texto, com o qual podem ser processados quaisquer textos. A tarefa central que você executará será a criação e edição de blocos para os programas STEP 7. Durante a entrada ocorre uma verificação fundamental da sintaxe, o que simplifica a programação isenta de erros. Os erros de sintaxe são representados em diversas cores.
As seguintes possibilidades são oferecidas pelo editor: - Programação de um bloco S7 na linguagem S7-SCL.
- Fácil inserção dos elementos de linguagem e chamada de blocos por meio de Arrastar&Soltar. - Verificação direta de sintaxe durante a programação.
- Configuração do editor conforme os seus requisitos, por exemplo, pela coloração dos diversos elementos de linguagem de acordo com a sintaxe.
- Verificação do bloco concluído por meio de compilação.
- Indicação de todos os erros e avisos, que surgiram durante a compilação.
- Localização do ponto com defeito no bloco, opcionalmente com a descrição do erro e informações sobre a eliminação do erro.
Depurador
O depurador S7-SCL oferece a possibilidade, de controlar um programa durante sua execução em AS e, assim, localizar os possíveis erros lógicos.
O S7-SCL oferece dois modos de teste diferentes: - Observação passo a passo
- Observação contínua
Na "Observação passo a passo" é reproduzida a sequência lógica do programa. Você poderá executar o algoritmo de instrução por instrução e observar em uma janela de resultado como os conteúdos das variáveis processadas se alteram
Com a "Observação contínua" é possível testar um grupo de instruções dentro de um bloco. Durante a execução do teste, os valores das variáveis e dos parâmetros são exibidos em sequência cronológica e - desde que seja possível - ciclicamente atualizados.
S7-SCL para S7-300/400
4.
Exemplo de tarefa para o conteúdo do tanque
4.1 Descrição da tarefaComo nosso primeiro programa, iremos programar o cálculo de um conteúdo de tanque.
O tanque possui a forma de um cilindro em pé. O nível de preenchimento do conteúdo é medido com um sensor analógico. Na tarefa, o valor do nível de preenchimento deverá estar disponível já
normalizado na unidade de metros.
O programa deve ser programado em uma função FC140 'cálculo_conteúdo tanque’. Os parâmetros de transferência são o diâmetro e o nível de preenchimento na unidade de metros. O resultado é o
conteúdo do tanque na unidade de litros.
4.2 Lista de atribuição / tabela de variáveis
Como na programação moderna não são usados endereços absolutos, mas sim variáveis simbólicas, aqui primeiro é necessário definir as Variáveis globais do CLP.
Estas variáveis globais do CLP são nomes descritivos com comentário para todas as entradas e saídas usadas no programa. Posteriormente, as variáveis globais do CLP poderão ser acessadas através dos respectivos nomes durante a programação.
Estas variáveis globais podem ser usadas em todo o programa e em todos os blocos.
Tabela de variáveis padrão
Nome Tipo de dados Endereço Comentário
filling_level_tank1 REAL %MD40 em metros
diameter_tank1 REAL %MD44 em metros
4.3 Estrutura do programa
A sequência do programa é gravada nos assim chamados blocos. Como padrão, o bloco de organização Main [OB1] já existe. Este representa a interface ao sistema operacional da CPU e é automaticamente chamado e ciclicamente processado.
A partir deste bloco de organização é possível chamar outros blocos, tais como, por exemplo, a função cálculo_conteúdo tanque [FC140], para a programação estruturada.
Isto faz com que a tarefa completa seja decomposta em subproblemas. Estes são mais fáceis de solucionar e ter a sua funcionalidade testada.
Estrutura do exemplo de tarefa para o conteúdo do tanque
Bloco de organização Main [OB1] )
Bloco ciclicamente chamado pelo sistema operacional. Aqui é a chamada da função cálculo_conteúdo tanque [FC140] Função: calculate_volume_tank [FC140]
Contém, neste exemplo, o programa
propriamente dito. É chamado por Main [OB1].
4.4 Interface do bloco calculate_volume_tank [FC140]
Antes de poder gravar o programa, é necessário declarar a interface do bloco. Na declaração da interface, são definidas as variáveis locais conhecidas somente neste bloco.
As variáveis ou parâmetros da interface subdividem-se em dois grupos:
Os parâmetros do bloco, que formam a interface do bloco para a chamada no programa.
Tipo Designação Função Disponível em
Parâmetros de entrada Input Parâmetros cujos valores são lidos pelo bloco.
Funções, blocos de função e alguns tipos de blocos de organização Parâmetros de saída Output /
Return
Parâmetros cujos valores são
gravados pelo bloco. Funções e blocos de função Parâmetros de
transição InOut
Parâmetros cujo valor é lido pelo bloco na chamada e no qual se realiza a gravação após o processamento.
Funções e blocos de função
Dados locais usados para o armazenamento de resultados intermediários.
Tipo Designação Função Disponível em
Dados locais
temporários Temp
Variáveis usadas para o armazenamento de resultados intermediários temporários. Os dados temporários são mantidos somente durante um ciclo.
Funções, blocos de função e blocos de organização
Dados locais estáticos Static
Variáveis usadas para o armazenamento de resultados intermediários estáticos no bloco de dados de instância. Os dados estáticos são mantidos até nova gravação, inclusive ao longo de diversos ciclos.
Os parâmetros de interface utilizados em nosso exemplo de programa para o bloco 'calculate_volume_tank [FC140]' são os seguintes.
Interface da função FC140: calculate_volume_tank
Tipo Nome Tipo de dados Comentário
IN filling_level REAL em metros
IN diameter REAL em metros
OUT volume REAL em litros
A chamada da função em um bloco programado por FBD têm a seguinte aparência.
Chamada da função: representação em FBD
4.5 Nota de solução
Para a solução da tarefa é aplicada a fórmula para cálculo do volume de um cilindro em pé. O fator de conversão 1000 é utilizado para calcular o resultado em litros.
h
4
d
V
2
=>3
.
14159
filling_le
vel
1000
4
2
d
volume
iameter
FC140 calculate_volume_tank filling_level: REAL diameter: REAL REAL :volume5.
Programação do cálculo do conteúdo do tanque para o SIMATIC S7-1200 em
S7-SCL
Conforme os passos abaixo é possível criar um projeto para o SIMATIC S7-1200 e programar a solução da tarefa:
5.1 Criar o projeto e configurar o hardware
1. A ferramenta central é o 'Totally Integrated Automation Portal', que é chamada aqui por meio de um clique duplo. ( TIA-Portal V11)
2. Os programas para o SIMATIC S7-1200 são administrados em projetos. Um projeto é criado na visualização do portal ( Create a new project scl_startup Create)
3. Então, são sugeridos os 'First steps' para a criação do projeto. Queremos, primeiro, 'Configure a
device'. ( First steps Configure a device)
4. Então iremos em 'Add new device' com o 'nome de dispositivo controller001'. Em "Catalog", selecionamos a 'CPU1214C AC/DCRly' com o número de pedido adequado. ( Add new device
controller001 PLC SIMATIC S7-1200 CPU CPU1214 AC/DC/Rly 6ES7 214-1BE30-0XB0 V2.2 Add)
5. O software altera automaticamente para a visualização do projeto com a configuração de
hardware aberta na visualização do dispositivo. Para que o software acesse posteriormente a CPU correta, o seu respectivo 'ETHERNET address' deverá ser configurado.
( Properties General ETHERNET address IP address: 192.168.0.80 Subnet mask: 255.255.255.0)
5.2 Criar o programa
1. Abra 'Default tag table' e introduza os 'Operands' com seus nomes e tipos de dados. ( controller001 [CPU1214 AC/DC/Rly]’ PLC tags Default tag table Insert operands)
2. Para criar a função calculate_volume_tank [FC140], selecione, na árvore do projeto, o
'controller001 [CPU1214 AC/DC/Rly]’ e, em seguida, 'Program blocks'. Clique duas vezes
sobre 'Add new block'. Selecione a opção 'Function (FC)' e dê o nome
'calculate_volume_tank'. Altere a linguagem de programação para 'SCL'. A numeração pode ser
alterada mudando-se de automático para manual. Insira o número 140. Aplique as entradas por meio de 'OK'.
( controller001[CPU1214 AC/DC/Rly]’ Program blocks Add new block Function (FC) calculate_volume_tank SCL Manual 140 OK)
3. O bloco 'calculate_volume_tank [FC140]’ é aberto automaticamente. Introduza os 'Parâmetros de
entrada e saída' do bloco conforme o indicado. Para uma melhor compreensão, todas as
variáveis locais devem ser acompanhadas de um 'comentário'.
( Ampliar a interface do bloco FC140 Inserir os parâmetros da interface )
Nota:
4. Após a declaração das variáveis locais, é possível dar início à criação do programa aqui
apresentado. Nesta ocasião é utilizada a função raiz quadrada integrada em SCL 'SQR’ para raiz quadrada de um número. O número cuja raiz quadrada deve ser calculada está entre parênteses. Para inserir a função, arraste-a por Arrastar&Soltar para o local de utilização no programa. ( Instructions (Menu direito!) Basic instructions Math functions SQR)
6. Agora o programa pode ser salvo e compilado .
( Save Compile )
7. Os erros de sintaxe que surgirem são identificados durante a compilação e são exibidos no 'Menu
8. Agora a função pode ser chamada em 'Main[OB1]'. Antes de abrir o bloco 'Main[OB1]' com um clique duplo, vamos converter sua linguagem de programação para 'FBD'.
( Main[OB1] Switch programming language FBD)
9. A função 'calculate_volume_tank[FC140]’ pode ser simplesmente arrastada por Arrastar&Solar para a rede 1 do bloco Main[OB1]. Os parâmetros de interface da função
'calculate_volume_tank[FC140]' agora devem ser interligados com as variáveis globais do CLP, como exibido aqui. Não se esqueça de documentar as redes também no bloco Main[OB1]. ( Main[OB1] Program blocks calculate_volume[FC140])
11. Para carregar os blocos de programa e a configuração do dispositivo na CPU, marque primeiro a pasta 'controller001[CPU1214 AC/DC/Rly]' e, em seguida, clique no símbolo Download to device. ( controller001[CPU1214 AC/DC/Rly] )
Nota:
Por meio do carregamento, o projeto será automaticamente compilado de novo e examinado com relação a erros.
12. Antes do carregamento será exibida novamente uma visão geral para a verificação dos passos a serem executados. Inicie-os com 'Load'. ( Load Finish)
5.3 Testar o programa
1. Com um clique do mouse sobre o símbolo "Monitoring on/off", é possível observar o estado das variáveis de entrada e saída no bloco "calculate_volume_tank' durante o teste do programa. ( )
2. Já que não dispomos de nenhum sensor analógico e de nenhum valor de processo
correspondente, é necessário definir os valores 'diameter_tank1' e 'filling_level_tank1' com a ajuda de uma tabela de observação. Crie uma 'New watch table' e insira ambos os valores. Altere para o 'Monitoring on' para visualizar os valores atuais.
( controller001 Watch and force tables New watch table diameter_tank1, filling_level_tank1 )
3. Para predefinir os valores, é necessário inserir um valor de comando na coluna 'Monitor value'. Com o botão 'Write monitor value once and immediately' os valores são aplicados na CPU. ( diameter_tank1 = 10.0 filling_level_tank1 = 7.0 )
4. Agora o programa pode ser verificado em OB1. ( )
5. Em SCL Editor, é possível observar os valores das variáveis individuais. Para tal, altere para
'Monitoring on'. ( )
Nota:
Agora o bloco 'calculate_volume_tank' deverá verificar se existem informações incorretas nos
parâmetros de entrada. É adicionalmente transferido outro valor 'height_máx' para o bloco. Este indica a altura do tanque.
O bloco deverá avaliar se o nível de preenchimento do tanque é inferior a zero ou superior à altura especificada do tanque. Além disto, deverá ser examinado se foi especificado um diâmetro inferior a zero.
Se houver um erro, um parâmetro de saída booleano 'er' deverá fornecer TRUE e o valor do parâmetro
'volume' deverá ser -1.
Ampliação da lista de atribuição/tabela de variáveis:
Endereço Símbolo Tipo de dados Comentário
%Q1.7 error bit BOOL Erro, o cálculo não pode ser executado
Ampliação da interface da Função FC140: calculate_volume_tank
Tipo Símbolo Tipo de dados Comentário
IN height_max REAL em metros
OUT er REAL er = 1, existe um erro, conteúdo = -1
Chamada da função: Representação em FBD
FC140 calculate_volume_tank filling_level: REAL height_max: REAL diameter: REAL BOOL :er REAL:volume
1. Amplie a 'Default tag table' do bloco conforme indicado acima.
( controller001[CPU1214 AC/DC/Rly] PLC tags Default tag table Insert operands)
2. Amplie os 'Interface parameters' do bloco conforme indicado acima.
( controller001[CPU1214 AC/DC/Rly] Program blocks calculate_volume_tank) Insert parameters)
3. Complete o programa conforme indicado abaixo e o examine com relação a erros de sintaxe, compilando-o. Salve o programa e carregue-o no controlador.
4. Já que os parâmetros do bloco foram modificados, a chamada em OB1 deve ser atualizada. Abra o OB1 e role-o para o ponto da chamada do bloco. Com a tecla direita do mouse, abra o menu de contexto e selecione o item 'Update'.
( controller001[CPU1214 AC/DC/Rly] Program blocks Main [OB1] tecla direita do mouse
Update)
5. São exibidas as interfaces antiga e a nova. Confirme com 'OK'. ( OK)
6. Complete os valores no parâmetro de entrada 'height_max' e no parâmetro de saída 'er' conforme o indicado. Compile, salve e carregue o programa no controlador.
(Complete parameters )
7. Examine as alterações em 'Monitoring' do bloco 'calculate_volume_tank'.