O documento fornece soluções para exercícios de treinamento em automação industrial usando o controlador lógico programável SIMATIC S7 da Siemens. As soluções incluem programas, blocos funcionais e estruturados para exercícios que vão desde operações matemáticas básicas até sistemas de produção complexos.
O documento fornece uma visão geral dos sistemas de automação da Siemens, incluindo controladores SIMATIC S7/C7/M7, software STEP 7, ferramentas de programação como S7-GRAPH e CFC, e comunicação industrial como PROFIBUS e Industrial Ethernet.
O documento apresenta um curso de treinamento para o sistema de automação SIMATIC S7 da Siemens. O curso abrange tópicos como introdução ao S7, hardware, programação, operações lógicas e temporizadores, contadores, dados, blocos de função e programação.
O documento contém 40 páginas de exercícios relacionados ao sistema SIMATIC S7 e programação de PLCs Siemens. Os exercícios cobrem tópicos como criação de projetos, programação, depuração de erros, comunicação entre CPUs e monitoramento de variáveis em estações diferentes.
O documento discute blocos de funções e chamadas de blocos no SIMATIC S7. Apresenta tipos de variáveis, execução de blocos, pilha de dados locais, parâmetros atribuíveis, blocos de funções e chamadas de blocos.
O documento lista cursos de treinamento oferecidos por um centro de treinamento da Siemens em automação industrial. Ele inclui cursos sobre sistemas SIMATIC S7, SIMATIC M7, SIMATIC HMI, SIMATIC NET e outros, com duração variando de 1 a 8 semanas.
O documento descreve os diferentes tipos de blocos de organização (OBs) em um controlador SIMATIC S7. Explica como os OBs são usados para executar programas periódicos, de interrupção e de erro, e descreve exemplos de cada tipo de OB.
O documento descreve os passos para a configuração de software para um sistema de automação, incluindo transferir o programa do usuário para o controlador lógico programável, depurar erros que causam paradas no sistema, testar o sistema passo a passo e documentar e arquivar o programa finalizado.
O documento discute como encontrar e corrigir erros que levam uma CPU PLC a parar. Ele descreve como usar as ferramentas Module Information, Diagnostic Buffer, I Stack, B Stack e L Stack para diagnosticar erros e como interpretar mensagens de erro. Ele também fornece exercícios passo a passo para encontrar e corrigir erros em um programa PLC e usar OBs de erro apropriadamente.
O documento fornece uma visão geral dos sistemas de automação da Siemens, incluindo controladores SIMATIC S7/C7/M7, software STEP 7, ferramentas de programação como S7-GRAPH e CFC, e comunicação industrial como PROFIBUS e Industrial Ethernet.
O documento apresenta um curso de treinamento para o sistema de automação SIMATIC S7 da Siemens. O curso abrange tópicos como introdução ao S7, hardware, programação, operações lógicas e temporizadores, contadores, dados, blocos de função e programação.
O documento contém 40 páginas de exercícios relacionados ao sistema SIMATIC S7 e programação de PLCs Siemens. Os exercícios cobrem tópicos como criação de projetos, programação, depuração de erros, comunicação entre CPUs e monitoramento de variáveis em estações diferentes.
O documento discute blocos de funções e chamadas de blocos no SIMATIC S7. Apresenta tipos de variáveis, execução de blocos, pilha de dados locais, parâmetros atribuíveis, blocos de funções e chamadas de blocos.
O documento lista cursos de treinamento oferecidos por um centro de treinamento da Siemens em automação industrial. Ele inclui cursos sobre sistemas SIMATIC S7, SIMATIC M7, SIMATIC HMI, SIMATIC NET e outros, com duração variando de 1 a 8 semanas.
O documento descreve os diferentes tipos de blocos de organização (OBs) em um controlador SIMATIC S7. Explica como os OBs são usados para executar programas periódicos, de interrupção e de erro, e descreve exemplos de cada tipo de OB.
O documento descreve os passos para a configuração de software para um sistema de automação, incluindo transferir o programa do usuário para o controlador lógico programável, depurar erros que causam paradas no sistema, testar o sistema passo a passo e documentar e arquivar o programa finalizado.
O documento discute como encontrar e corrigir erros que levam uma CPU PLC a parar. Ele descreve como usar as ferramentas Module Information, Diagnostic Buffer, I Stack, B Stack e L Stack para diagnosticar erros e como interpretar mensagens de erro. Ele também fornece exercícios passo a passo para encontrar e corrigir erros em um programa PLC e usar OBs de erro apropriadamente.
O documento discute o diagnóstico de erros em sistemas SIMATIC S7. Ele explica como exibir mensagens de diagnóstico da CPU, escrever mensagens do usuário no buffer de diagnóstico usando SFC 52, e configurar mensagens de texto personalizadas. Também descreve como módulos com capacidade de diagnóstico podem disparar interrupções de diagnóstico e como exibir diagnóstico de hardware no SIMATIC Manager.
O documento discute comunicação entre PLCs Siemens S7 usando dados globais e redes MPI. Ele fornece instruções sobre como configurar hardware, definir dados globais, compilar a tabela de dados globais e transferir dados de configuração.
O documento discute o processo de refiamento de programas no SIMATIC Manager. Refiamento envolve substituir endereços lógicos por endereços físicos em um programa quando há mudanças no hardware. Isso permite que o mesmo programa funcione em configurações de hardware alteradas.
O documento discute informações sobre o sistema SIMATIC S7, incluindo vistas gerais, tabelas sobre memória, tempo de varredura do ciclo e sistema de tempo, dados de desempenho de blocos e um exercício sobre leitura de informações do sistema.
Este documento fornece uma introdução sobre comunicação básica e expandida no SIMATIC S7, incluindo sub-redes, serviços de comunicação, blocos de função para comunicação e configuração de redes e conexões.
O documento apresenta vários métodos de teste e depuração de programas SIMATIC S7, incluindo monitorar o status do programa, usar pontos de gatilho, monitorar e modificar variáveis, definir breakpoints, e exercícios para aplicar esses métodos.
O documento descreve o uso de blocos de programação (FBs e FCs) no sistema SIMATIC S7 da Siemens para programação estruturada de sistemas de automação industrial. Os principais pontos são:
1) Os blocos permitem a modularização de tarefas através de parâmetros atribuíveis e reutilização dos blocos;
2) Existem vários tipos de blocos como OBs, FBs, FCs e DBs com propriedades e usos diferentes;
3) As funções permitem a passagem de parâmetros e podem retorn
O documento discute funções e blocos de funções no SIMATIC S7. <br>
1) Existem variáveis globais, locais e temporárias que podem ser usadas em OBs, FCs e FBs. Variáveis locais são armazenadas em pilhas L ou em DBs. <br>
2) FCs podem ter parâmetros atribuídos, enquanto FBs requerem instâncias de DB para armazenar variáveis estáticas.
1. O documento descreve a estrutura e configuração de sistemas PROFIBUS DP, incluindo mestres, escravos, comunicação e funções.
2. São apresentados diferentes tipos de escravos DP como compactos, modulares e inteligentes e como inseri-los em um sistema mestre.
3. São explicadas funções como leitura, escrita e sincronização de dados dos escravos utilizando SFCs.
O documento discute armazenamento de dados em blocos de dados no SIMATIC S7, incluindo tipos de dados elementares e complexos, blocos de dados, arrays, estruturas e tipos de dados definidos pelo usuário. É apresentada uma visão geral dos conceitos e exemplos de como criar, acessar e endereçar elementos em blocos de dados.
Drv13 power flex 755 programming with devicelogixconfidencial
This document provides instructions for a lab demonstrating programming of the PowerFlex 755 drive using DeviceLogix. The lab includes two application examples - a diverter conveyor system and a wet well pump control system. Students will download predefined parameter files, then program function blocks in DeviceLogix to implement the control logic for each application. The goal is to familiarize students with the DeviceLogix programming capabilities of the PowerFlex 755 drive.
O documento discute funções e blocos de funções no SIMATIC S7. Ele explica os tipos de variáveis que podem ser usadas em blocos de programação como OBs, FCs e FBs, e descreve como as variáveis temporárias são armazenadas no L-stack. Também apresenta exemplos de como declarar e usar parâmetros em blocos parametrizáveis como FCs e instanciar blocos de função como FBs com dados em blocos de dados.
O documento fornece instruções sobre operações binárias e digitais, incluindo lógicas binárias, temporizadores, contadores, comparadores, funções matemáticas, instruções de movimentação, conversão e controle de programa. Ele também apresenta exercícios para aplicar essas operações no controle de uma esteira e na contagem de peças transportadas.
Premier integration with_logix_pf drives_and_ft_view_pf755_ptconfidencial
Este documento fornece instruções para configurar um sistema integrando um controlador ControlLogix, um inversor PowerFlex 755 e o software FactoryTalk View usando os Integrated Drive Profiles do RSLogix 5000. Ele inclui etapas como adicionar um perfil PowerFlex 755 no projeto RSLogix, configurar a comunicação de rede e importar objetos de interface do usuário do PowerFlex para o FactoryTalk View.
This document describes a lab exercise using the Engineering Assistant software to size a drive and motor for a sugar centrifuge application. The lab objectives are to familiarize students with using the Centrifuge Calculator tool to determine torque and power requirements. The document provides background on the centrifuge machine and process, as well as detailed technical specifications for the existing motor and centrifuge operating parameters. It guides students to use the Centrifuge Calculator tool to analyze the application, check for peak torques and currents, and graph the results. The suggested solution is to use an Allen-Bradley 1336R drive for dynamic braking capabilities given the significant energy regeneration during portions of the centrifuge cycle.
1) O documento discute endereçamento indireto e instruções que usam registradores de endereços em S7-300/400. Ele explica como usar ponteiros de 16 e 32 bits para endereçar variáveis em memória indiretamente.
2) É mostrado como carregar e transferir dados usando registradores de endereço e ponteiros. Exemplos demonstram endereçamento indireto de áreas internas e cruzadas.
3) O documento também explica como abrir e usar bancos de dados com endereçamento indireto e
O documento descreve os principais tipos de blocos de programação usados no S7-1500, incluindo OBs, FBs, FCs e DBs. Ele também explica como estruturar programas usando blocos, como editar e monitorar blocos, e fornece exemplos de exercícios para demonstrar essas funcionalidades.
O documento descreve um treinamento sobre operações binárias e digitais, incluindo objetivos de aprendizagem como programar lógicas binárias, usar temporizadores, contadores e comparadores, e familiarizar-se com funções matemáticas e instruções de programação. Ele também fornece exemplos de código e exercícios para praticar os tópicos cobertos.
O documento fornece instruções sobre como instalar e atualizar o software STEP 7 Professional V11 (TIA Portal V11) e sobre os fundamentos da programação de um controlador lógico programável (CLP) SIMATIC S7-1200. O documento explica como configurar o hardware e a comunicação, criar e testar programas para o CLP e fornece um exemplo detalhado de programação de uma prensa.
O documento descreve os diferentes tipos de blocos utilizados para programação do controlador lógico programável SIMATIC S7-1200, incluindo blocos de organização, blocos de função, funções e blocos de dados. Além disso, fornece exemplos de como esses blocos podem ser usados para criar um programa estruturado para controlar uma esteira.
O documento descreve os principais componentes e funcionamento de controladores lógicos programáveis (CLP). Apresenta a evolução dos sistemas de controle desde relés até controladores programáveis modernos e detalha os componentes de hardware de um CLP, incluindo memória, processador, módulos de entrada e saída e portas de comunicação.
1. O documento descreve a família SIMATIC S7 da Siemens, incluindo os controladores S7-200, S7-300 e S7-400.
2. Os controladores S7-300 e S7-400 são descritos em termos de módulos, design da CPU e características.
3. A família SIMATIC S7 fornece soluções de automação totalmente integradas através da configuração e programação comum, tratamento de dados comum e comunicação entre todos os componentes.
O documento discute o diagnóstico de erros em sistemas SIMATIC S7. Ele explica como exibir mensagens de diagnóstico da CPU, escrever mensagens do usuário no buffer de diagnóstico usando SFC 52, e configurar mensagens de texto personalizadas. Também descreve como módulos com capacidade de diagnóstico podem disparar interrupções de diagnóstico e como exibir diagnóstico de hardware no SIMATIC Manager.
O documento discute comunicação entre PLCs Siemens S7 usando dados globais e redes MPI. Ele fornece instruções sobre como configurar hardware, definir dados globais, compilar a tabela de dados globais e transferir dados de configuração.
O documento discute o processo de refiamento de programas no SIMATIC Manager. Refiamento envolve substituir endereços lógicos por endereços físicos em um programa quando há mudanças no hardware. Isso permite que o mesmo programa funcione em configurações de hardware alteradas.
O documento discute informações sobre o sistema SIMATIC S7, incluindo vistas gerais, tabelas sobre memória, tempo de varredura do ciclo e sistema de tempo, dados de desempenho de blocos e um exercício sobre leitura de informações do sistema.
Este documento fornece uma introdução sobre comunicação básica e expandida no SIMATIC S7, incluindo sub-redes, serviços de comunicação, blocos de função para comunicação e configuração de redes e conexões.
O documento apresenta vários métodos de teste e depuração de programas SIMATIC S7, incluindo monitorar o status do programa, usar pontos de gatilho, monitorar e modificar variáveis, definir breakpoints, e exercícios para aplicar esses métodos.
O documento descreve o uso de blocos de programação (FBs e FCs) no sistema SIMATIC S7 da Siemens para programação estruturada de sistemas de automação industrial. Os principais pontos são:
1) Os blocos permitem a modularização de tarefas através de parâmetros atribuíveis e reutilização dos blocos;
2) Existem vários tipos de blocos como OBs, FBs, FCs e DBs com propriedades e usos diferentes;
3) As funções permitem a passagem de parâmetros e podem retorn
O documento discute funções e blocos de funções no SIMATIC S7. <br>
1) Existem variáveis globais, locais e temporárias que podem ser usadas em OBs, FCs e FBs. Variáveis locais são armazenadas em pilhas L ou em DBs. <br>
2) FCs podem ter parâmetros atribuídos, enquanto FBs requerem instâncias de DB para armazenar variáveis estáticas.
1. O documento descreve a estrutura e configuração de sistemas PROFIBUS DP, incluindo mestres, escravos, comunicação e funções.
2. São apresentados diferentes tipos de escravos DP como compactos, modulares e inteligentes e como inseri-los em um sistema mestre.
3. São explicadas funções como leitura, escrita e sincronização de dados dos escravos utilizando SFCs.
O documento discute armazenamento de dados em blocos de dados no SIMATIC S7, incluindo tipos de dados elementares e complexos, blocos de dados, arrays, estruturas e tipos de dados definidos pelo usuário. É apresentada uma visão geral dos conceitos e exemplos de como criar, acessar e endereçar elementos em blocos de dados.
Drv13 power flex 755 programming with devicelogixconfidencial
This document provides instructions for a lab demonstrating programming of the PowerFlex 755 drive using DeviceLogix. The lab includes two application examples - a diverter conveyor system and a wet well pump control system. Students will download predefined parameter files, then program function blocks in DeviceLogix to implement the control logic for each application. The goal is to familiarize students with the DeviceLogix programming capabilities of the PowerFlex 755 drive.
O documento discute funções e blocos de funções no SIMATIC S7. Ele explica os tipos de variáveis que podem ser usadas em blocos de programação como OBs, FCs e FBs, e descreve como as variáveis temporárias são armazenadas no L-stack. Também apresenta exemplos de como declarar e usar parâmetros em blocos parametrizáveis como FCs e instanciar blocos de função como FBs com dados em blocos de dados.
O documento fornece instruções sobre operações binárias e digitais, incluindo lógicas binárias, temporizadores, contadores, comparadores, funções matemáticas, instruções de movimentação, conversão e controle de programa. Ele também apresenta exercícios para aplicar essas operações no controle de uma esteira e na contagem de peças transportadas.
Premier integration with_logix_pf drives_and_ft_view_pf755_ptconfidencial
Este documento fornece instruções para configurar um sistema integrando um controlador ControlLogix, um inversor PowerFlex 755 e o software FactoryTalk View usando os Integrated Drive Profiles do RSLogix 5000. Ele inclui etapas como adicionar um perfil PowerFlex 755 no projeto RSLogix, configurar a comunicação de rede e importar objetos de interface do usuário do PowerFlex para o FactoryTalk View.
This document describes a lab exercise using the Engineering Assistant software to size a drive and motor for a sugar centrifuge application. The lab objectives are to familiarize students with using the Centrifuge Calculator tool to determine torque and power requirements. The document provides background on the centrifuge machine and process, as well as detailed technical specifications for the existing motor and centrifuge operating parameters. It guides students to use the Centrifuge Calculator tool to analyze the application, check for peak torques and currents, and graph the results. The suggested solution is to use an Allen-Bradley 1336R drive for dynamic braking capabilities given the significant energy regeneration during portions of the centrifuge cycle.
1) O documento discute endereçamento indireto e instruções que usam registradores de endereços em S7-300/400. Ele explica como usar ponteiros de 16 e 32 bits para endereçar variáveis em memória indiretamente.
2) É mostrado como carregar e transferir dados usando registradores de endereço e ponteiros. Exemplos demonstram endereçamento indireto de áreas internas e cruzadas.
3) O documento também explica como abrir e usar bancos de dados com endereçamento indireto e
O documento descreve os principais tipos de blocos de programação usados no S7-1500, incluindo OBs, FBs, FCs e DBs. Ele também explica como estruturar programas usando blocos, como editar e monitorar blocos, e fornece exemplos de exercícios para demonstrar essas funcionalidades.
O documento descreve um treinamento sobre operações binárias e digitais, incluindo objetivos de aprendizagem como programar lógicas binárias, usar temporizadores, contadores e comparadores, e familiarizar-se com funções matemáticas e instruções de programação. Ele também fornece exemplos de código e exercícios para praticar os tópicos cobertos.
O documento fornece instruções sobre como instalar e atualizar o software STEP 7 Professional V11 (TIA Portal V11) e sobre os fundamentos da programação de um controlador lógico programável (CLP) SIMATIC S7-1200. O documento explica como configurar o hardware e a comunicação, criar e testar programas para o CLP e fornece um exemplo detalhado de programação de uma prensa.
O documento descreve os diferentes tipos de blocos utilizados para programação do controlador lógico programável SIMATIC S7-1200, incluindo blocos de organização, blocos de função, funções e blocos de dados. Além disso, fornece exemplos de como esses blocos podem ser usados para criar um programa estruturado para controlar uma esteira.
O documento descreve os principais componentes e funcionamento de controladores lógicos programáveis (CLP). Apresenta a evolução dos sistemas de controle desde relés até controladores programáveis modernos e detalha os componentes de hardware de um CLP, incluindo memória, processador, módulos de entrada e saída e portas de comunicação.
1. O documento descreve a família SIMATIC S7 da Siemens, incluindo os controladores S7-200, S7-300 e S7-400.
2. Os controladores S7-300 e S7-400 são descritos em termos de módulos, design da CPU e características.
3. A família SIMATIC S7 fornece soluções de automação totalmente integradas através da configuração e programação comum, tratamento de dados comum e comunicação entre todos os componentes.
This document provides information about PID controllers and pulse width modulation including:
- PID controllers use a feedback loop to control processes and can operate in automatic or manual mode.
- Pulse width modulation uses variable pulse widths to control outputs like motor speed or valve position similarly to analog outputs.
- Commissioning involves using the auto-tuning function to calculate PID parameters from process responses to a step change, then uploading the parameters for automatic control.
O documento lista vários blocos de programa (OBs, FCs, FBs) em um sistema de automação e suas respectivas páginas, sugerindo soluções para possíveis problemas.
05 conexão logo! 0 ba7 com ihm (wincc flexible)confidencial
This document provides instructions for connecting a touch panel HMI to a LOGO! controller to display and control process values. It describes:
1) Configuring an Ethernet connection between the LOGO! 0BA7 controller and HMI touch panel and mapping I/O tags in the controller for access by the HMI.
2) Creating an HMI project in WinCC Flexible, adding a device, connection to the LOGO! controller, and configuring tags, screens and buttons to display fill level, temperature and control a pump.
3) Testing the HMI configuration through simulation with either real-time process values from the connected controller or using a tag simulator.
The document provides instructions for connecting a LOGO! ..0BA7 controller to a touch panel HMI. It describes making changes to the LOGO! program to enable data transfer, configuring the connection between LOGO! and the HMI in the parameter VM mapping, and setting up an HMI project in WinCC Basic V11 by creating tags, screens, and connections to display values from and control the LOGO! program. Testing the configuration involves starting a simulation from within the WinCC Basic V11 software.
I - Revisão de Blocos de Dados e Funções no Step-7
1. O documento apresenta uma revisão dos principais blocos de dados e funções utilizados no Step-7, como OBs, DBs, FBs e FCs. Também aborda módulos de entrada e saída analógicos, o comando Rewire e redes MPI e Profibus.
II - Configuração de Redes no Step-7
2. O documento explica como configurar e utilizar diferentes tipos de redes no Step-7, incluindo MPI, Profibus DP e
The document provides information about PID controllers and pulse width modulation including:
1) It discusses adding a PID controller instruction block and configuring its parameters such as input scaling, output limits, and manual PID parameters.
2) It describes adding a cyclic interrupt organization block to execute the PID instruction at a specified cycle time.
3) It explains defining variable symbols to provide symbolic names for addresses used in the PID controller program for clarity.
treinamentos em automacao e solucoes industriais s7 tia 2 simatic s7 porgama...confidencial
Este documento não contém nenhum conteúdo legível. Consiste apenas de uma série de caracteres repetidos que não formam palavras ou frases com sentido. Portanto, não é possível resumir seu conteúdo de forma concisa.
O documento contém 40 páginas de exercícios relacionados ao sistema SIMATIC S7 para treinamento em automação industrial, cobrindo tópicos como criação de projetos, programação, depuração de erros, comunicação e monitoramento de variáveis entre estações.
O documento apresenta vários métodos de depuração e monitoramento de programas SIMATIC S7, incluindo funções de teste, monitoramento de variáveis, uso de pontos de gatilho, configuração de breakpoints e modificação de saídas no modo de parada.
O documento discute comunicação entre PLCs Siemens S7 usando dados globais e redes MPI. Ele fornece instruções sobre como configurar hardware, definir dados globais, transferir dados de configuração e monitorar variáveis entre estações.
O documento apresenta vários exercícios e tutoriais sobre como usar as ferramentas de depuração e monitoramento de variáveis no SIMATIC S7, incluindo como monitorar e modificar variáveis, usar pontos de gatilho, forçar saídas e depurar com breakpoints.
O documento lista diversos cursos de treinamento oferecidos pelo Training Center da Siemens em sistemas de automação industrial, incluindo SIMATIC S7, SIMATIC M7, SIMATIC HMI, SIMATIC NET e SIMATIC S5. Detalha cursos de configuração, programação, manutenção, comunicação e atualização entre diferentes sistemas.
O documento fornece uma visão geral dos principais produtos e soluções da Siemens para automação industrial, incluindo controladores SIMATIC S7/C7/M7, software STEP 7, linguagens de programação como LAD, FBD, SCL, ferramentas gráficas como S7-GRAPH e S7-HiGraph, soluções de comunicação industrial SIMATIC NET e ferramentas de engenharia como S7-PLCSIM, S7-PDIAG e DOCPRO.
O documento apresenta uma introdução a um curso de treinamento sobre o sistema de automação SIMATIC S7 da Siemens, abordando tópicos como configuração de hardware, programação, operações lógicas e temporização. É composto por 15 arquivos que descrevem o conteúdo programático do curso seção a seção.
O documento descreve os passos para comissionamento de software para um sistema SIMATIC S7, incluindo transferir o programa do usuário para a CPU, eliminar erros que causam paradas, testar o sistema passo a passo, documentar alterações e arquivar o projeto.
O documento contém 37 arquivos que descrevem exercícios para o uso de diferentes recursos e ferramentas do SIMATIC S7, incluindo criação de projetos, programação, depuração, gerenciamento de erros e configuração.
O documento descreve o sistema SIMATIC HMI da Siemens, incluindo suas aplicações possíveis, formas de licenciamento, funções principais e arquitetura. É apresentada uma visão geral do sistema, seus benefícios para o usuário, possibilidades do software WinCC e funções básicas. Além disso, são detalhadas as opções de licenciamento, configurações possíveis, integração flexível e serviços de suporte disponíveis.
Este documento fornece instruções sobre como configurar e editar mensagens de alarme no WinCC. Ele explica como criar classes de mensagens e tipos de mensagens, editar blocos de mensagem e linhas de mensagem, configurar arquivos de mensagens e backup, e exibe a interface do WinCC Alarm Control.
O documento discute configuração e arquivamento de dados analógicos no WinCC. Ele explica como configurar pontos de medição, arquivos de tendência de curto e longo prazo, e como visualizar e analisar dados arquivados.
O documento apresenta um exercício sobre a identificação e correção de erros lógicos em um programa, fazendo perguntas sobre as funcionalidades e comportamentos de um sistema de automação industrial.
O documento apresenta os conceitos básicos da programação de um controlador lógico programável Siemens S7, incluindo os tipos de blocos de programa, estruturas de programa, linguagens de programação e editor de blocos.
O documento apresenta informações sobre o sistema SIMATIC S7, incluindo vistas gerais, tabelas sobre memória, tempo de varredura e desempenho, e instruções para ler informações do sistema no SIMATIC Manager.
O documento descreve como configurar e usar um CP 342-5 como controlador mestre de rede PROFIBUS DP. Ele explica as diferenças entre um CP e uma interface integrada, como configurar o hardware, atribuir dados de processo às áreas de dados e os princípios por trás da troca e endereçamento de dados. Instruções sobre como usar as instruções FCs DP_SEND e DP_RECV para ler e escrever dados também são fornecidas.
O documento contém 39 arquivos relacionados ao sistema SIMATIC S7, incluindo soluções para exercícios, tabelas de símbolos, movimentação de transportador, contagem de peças transportadas e registro e exibição de peso de peças transportadas.
Este documento descreve as áreas de memória e registradores em uma CPU S7, incluindo acumuladores, memória de trabalho, registradores de endereços, palavras de status e estrutura. Também explica como checar os bits de status e usar instruções dependentes de status, como saltos condicionais.
O documento fornece uma introdução à família SIMATIC S7 da Siemens, incluindo seus principais componentes de hardware e software. É descrito o funcionamento e configuração dos controladores SIMATIC S7-200, S7-300 e S7-400, assim como seus módulos de entrada/saída e terminais de programação. O documento também apresenta informações sobre a instalação e uso do software STEP 7 para programação dos controladores SIMATIC S7.
Configure the high and low limits and alarms
9. Configure in chart P113:
• PV_In: Interconnection to Address: “LT114”
• SP_In: Interconnection to Address: “SP114”
• AutAct: Interconnection to Address: “P113_AutAct”
• Run: Interconnection to Address: “P113_Run”
• Stop: Interconnection to Address: “P113_Stop”
10. Configure in chart V112:
• PV_In: Interconnection to Address: “LT114”
• SP_In: Interconnection to Address: “SP114”
• AutAct: Interconnection to Address: “V112_Aut
The document discusses syntax rules for naming conventions in PCS 7 projects, including:
- Special characters that should not be used such as ?, ", /, etc. in different areas like ES, OS, etc.
- Maximum length of names for objects in CFCs, SFCs, blocks, and other project components which generally range between 8-24 characters.
- Specific rules for different components like variables, charts, libraries, projects, etc. regarding allowed characters and maximum lengths.
17 demonstration server client system-v1.00_enconfidencial
This document describes the configuration of a PCS 7 server-client system. It discusses the system architecture with OS servers connected to automation systems and OS clients accessing the servers' data. The main configuration steps are outlined, including setting up the multiproject, configuring functional information like the plant hierarchy and pictures, distributing configuration via loading servers and clients, and defining information flow between the engineering system, servers, clients, and automation systems.
15 final steps of configuration v1.00_enconfidencial
1. The document discusses the final steps of configuring a PCS 7 system, including AS-AS communication, configuration in run mode, simulation, and forcing block I/Os.
2. It describes how to automatically or manually configure an AS-AS connection in NetPro to enable communication between different automation systems.
3. It also covers preparing the system for modifications during operation, simulating process signals on the operator station and engineering station, and forcing values to test block behavior.
The document discusses mass data engineering in PCS 7, including process tag types, import/export assistants, and chart reference data. It provides an example of using a process tag type and import file to generate level measurement charts for 4 reactors based on an existing chart, modifying chart names, signals, scaling, and comments. The import file is created from a template to define the I/O points and data for the new process tags. Running the import will generate new charts according to the file. Chart reference data allows navigating between elements in CFC and SFC charts for troubleshooting.
13 locking functions and operating modes v1.00_enconfidencial
This document provides an overview of locking functions and operating modes in PCS 7 System course. It describes interlock functions that can avoid undesired control functions by locking valves and motors. Interlock blocks make it possible to create static binary logic using AND and OR operations. The status of inputs can be inverted or bypassed. Operating modes like local, remote, manual and automatic are discussed along with how they affect control functions. The document also covers resetting interlocks, forcing operating states, and priorities between operating modes and control functions.
This document provides an overview of archiving in the PCS 7 system. It discusses how to configure alarm logging to archive messages and alarms. Process values can be archived by configuring tag logging. There are two archive types for tags - fast and slow logging. Trends and alarm lists can be displayed in WinCC by configuring the appropriate controls. The document also covers preparing the OS for archiving, defining the archive size and location, and transferring alarm and tag configuration from SIMATIC Manager to the Operator Station.
This document section discusses customizing the OS in a PCS 7 system. It covers topics like user administration and authorization concepts, picture navigation settings, the OS project editor, time synchronization configuration, alarm handling, status displays, and making WinCC object properties dynamic. The document provides information on configuring operator rights, presentation of events and alarms, status displays connected to tags, and making object properties dynamic based on tag values. It aims to teach the user how to customize various OS aspects in PCS 7 including user authorization, time settings, alarm management and dynamic displays.
10 basics automatic mode control v1.00_enconfidencial
The document provides information about sequential function charts (SFC) in SIMATIC PCS 7, including:
1) SFCs are used for sequential control and allow advancing between states depending on conditions. They control functions like CFC charts via mode and state changes.
2) An SFC chart can include a maximum of 8 sequencers to represent different states of a sequential control system. Each sequencer can have 2-255 steps.
3) When a new sequencer is created in an SFC, it is inserted with an initial step, transition, and final step representing its initial state.
09 basics operating and monitoring v1.00_enconfidencial
The document discusses the basics of operating and monitoring a PCS 7 system. It describes the general functions of the operator station (OS) and how it can be configured as a single station or multiple station system. It also covers plant hierarchy settings, the OS-AS connection, compiling projects, layouts, block icons and faceplates. The key points are:
- The OS is based on WinCC and used for process visualization, alarm logging, tag logging, and more.
- A system can be a single OS or multiple OSs connected to one or more automation stations. Redundant servers provide high availability.
- Plant hierarchy settings determine how data is structured in pictures and tag names on the
This document provides an overview of basics control functions in PCS 7, including:
- An introduction to the Advanced Process Library (APL) blocks, which use structures to pass both process values and signal status through a single interconnection.
- Details on how signal status is implemented and displayed as symbols or hexadecimal values in the APL to indicate quality.
- A comparison of how standard and APL blocks handle passing signal status.
- Information on group status formation and priority in technological blocks.
The document discusses connecting PCS 7 to a process. It covers using component and plant views in a multiproject system, basics of charts and blocks including libraries and properties. It also discusses device drivers, process signals, and testing I/O signals by configuring charts containing drivers for all signals of a training process simulation. The goal is for trainees to be able to configure these connections and test the process simulation as preparation for automation function development.
06 station and network configuration v1.00_enconfidencial
The document discusses station and network configuration in PCS 7. It describes:
1) How station configuration differs between the "classic" STEP 7 method and PCS 7's approach, with PCS 7 involving the engineering system in the project and network of all stations.
2) The key components and principles of station configuration in PCS 7, including configuring stations as 1:1 images of real hardware, using a "virtual rack" for PC stations, and configuring network connections between components.
3) The process of configuring PC stations in both the project and on the local PC, and how the "PLC Configure" function streamlines this configuration.
In 3 sentences or less, this
The document discusses setting up a SIMATIC PCS 7 project. It describes how a multiproject binds together multiple projects and libraries. A multiproject must contain at least one project and the master data library. The master data library stores standardized blocks, SFCs, and declarations that can be synchronized across the multiproject. It also supports bulk engineering functions. The document provides an overview of the steps to configure automation and operator systems and introduces the main SIMATIC PCS 7 engineering tools.
03 requirements and functional process description v1.00_enconfidencial
The document describes the requirements and functional process for a training system to control a food processing plant. It includes:
1) An overview of the plant process which involves dosing, mixing, and heating components in reactors and storing the finished product in buffer tanks.
2) Descriptions of the key components in the process including material tanks, dose tanks, reactors, and buffer tanks.
3) Details on connecting the training system to a signal box for input/output of digital and analog signals to represent process variables.
4) Diagrams of the digital and analog signals including input and output modules to interface between the signal box and programmable logic controller.
02 pcs 7 documentation and support v1.00 enconfidencial
This document discusses the various documentation and online support resources available for the SIMATIC PCS 7 process control system. It describes the manuals delivered with PCS 7 installation, additional readme files, the online help system, and a template for a plant-specific operator manual. It also outlines sources of additional information like the PCS 7 Compendium, product catalogs, and the Industry Online Support portal. This portal provides product support, tools, demonstrations, services, and other resources to users of PCS 7.
This document provides an overview of a PCS 7 system training course, including:
1) The course will introduce participants to the general workflow of a PCS 7 project from requirements to maintenance using a simulated automation of a 4 reactor plant.
2) The training will utilize one ES/OS, one AS with distributed I/O, and Industrial Ethernet as the system bus to simulate the automation based on available equipment.
3) Participants will work through tasks at different levels using the main PCS 7 engineering tools to create their own training project, with the process behavior simulated on the AS CPU.
This document is a course outline for a SIMATIC PCS 7 System Course provided by SITRAIN Training for Industry. The course covers topics such as PCS 7 documentation and support, system design and configuration, basic control and monitoring functions, customizing the operating system, archiving, locking functions, mass data engineering, and exercises using a demonstration server-client system. The course runs from a start date to an end date and is held at a specified training site, with a designated trainer. The document is intended for training purposes only and Siemens assumes no responsibility for its contents.
Fluxograma processo acucar_alcool_etanol_verdeconfidencial
Este documento apresenta um fluxograma detalhado do processo de produção de açúcar e álcool a partir da cana-de-açúcar. O processo inclui as seções de preparação da cana, extração do caldo, fermentação, filtração, evaporação, cristalização, secagem e envase do açúcar, além da destilação para produção de álcool. O fluxograma também mostra a geração de energia a vapor e elétrica a partir dos resíduos do processo.
O documento descreve o Totally Integrated Automation Portal (TIA Portal) da Siemens, uma plataforma de engenharia integrada que combina ferramentas como SIMATIC STEP 7 e SIMATIC WinCC. O TIA Portal fornece um ambiente de desenvolvimento centralizado para projetos de automação industrial, permitindo programação, configuração, comunicação e diagnóstico através de uma única interface de usuário.
A festa junina é uma tradicional festividade popular que acontece durante o m...ANDRÉA FERREIRA
Os historiadores apontam que as origens da Festa Junina estão diretamente relacionadas a festividades pagãs realizadas na Europa no solstício de verão, momento em que ocorre a passagem da primavera para o verão.
Atividade letra da música - Espalhe Amor, Anavitória.Mary Alvarenga
A música 'Espalhe Amor', interpretada pela cantora Anavitória é uma celebração do amor e de sua capacidade de transformar e conectar as pessoas. A letra sugere uma reflexão sobre como o amor, quando verdadeiramente compartilhado, pode ultrapassar barreiras alcançando outros corações e provocando mudanças positivas.
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 11, Central Gospel, Os Mortos Em Cristo, 1Tr24, Pr Henrique, EBD NA TV, Revista ano 11, nº 1, Revista Estudo Bíblico Jovens E Adultos, Central Gospel, 2º Trimestre de 2024, Professor, Tema, Os Grandes Temas Do Fim, Comentarista, Pr. Joá Caitano, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 11, Betel, Ordenança para exercer a fé, 2Tr24, Pr Henrique, EBD NA TV, 2° TRIMESTRE DE 2024, ADULTOS, EDITORA BETEL, TEMA, ORDENANÇAS BÍBLICAS, Doutrina Fundamentais Imperativas aos Cristãos para uma vida bem-sucedida e de Comunhão com DEUS, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Comentários, Bispo Abner Ferreira, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
1. Soluções dos Exercícios
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.1
Conhecimento em Automação
Training Center
2. Soluções dos Exercícios
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.2
Conhecimento em Automação
Training Center
3. Suporte da Área de Treinamento com S7-300
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.3
Conhecimento em Automação
Training Center
4. Configuração da Unidade de Treinamento com S7-300
Versão A
(módulos de 16
canais de I/O)
Módulo
No. do Slot
Endereço I/O
-->
-->
-->
PS
1
CPU
2
DI 16
4
0
DI 16
5
4
DO 16
6
8
DO 16
7
12
PS
1
CPU
2
DI 32
4
0
DO 32
5
4
DI8/DO8
6
8
DI 16
8
16
DO 16
9
20
AI/AO4
10
352
AI 2
7
304
Verssão B
(módulos de 32
canais de I/O)
Módulo
No. do Slot
Endereço I/O
-->
-->
-->
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.4
Conhecimento em Automação
Training Center
5. Configuração da Unidade de Treinamento com S7-400
No. Slot
1
PS
2
CPU
Endereços Padrões:
SIMATIC S7
Siemens AG 1999. All rights reserved.
3
4
5
6
7
DI
32
DI
32
28
32
8
9
10
11
12
13
14
15
16
17
18
DO DO AI
32 32 8
36
Date:
File:
40
1216
09.03.14
PRO2_14P.5
Conhecimento em Automação
Training Center
7. O Modelo Correia Transportadora
INI 1 a INI 3
LB1
(Sensores de proximidade) Barreira de luz
M1
(Motor)
SIMATIC S7
Siemens AG 1999. All rights reserved.
H 1, H 2, H 3, H 4
(LEDs)
S 1, S 2, S 3, S 4
(Botões de reconhecimento)
Date:
File:
09.03.14
PRO2_14P.7
Conhecimento em Automação
Training Center
8. Solução do Exercício 1.1: Salto após uma Subtração
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.8
Conhecimento em Automação
Training Center
9. Solução do Exercício 1.2: Salto após uma Multiplicação
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.9
Conhecimento em Automação
Training Center
10. Solução do Exercício 1.3: Programando um Distribuidor de Saltos
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.10
Conhecimento em Automação
Training Center
11. Solução do Exercício 2.1: Cálculo de Expoentes
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.11
Conhecimento em Automação
Training Center
12. Solução do Exercício 2.2: Troca de Dados no ACCU1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.12
Conhecimento em Automação
Training Center
13. Solução do Exercício 2.3: Formação de Complementos
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.13
Conhecimento em Automação
Training Center
14. Solução do Exercício 3.1: Calculando a Distância
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.14
Conhecimento em Automação
Training Center
15. Solução do Exercício 4.1: Programação de Loop com
Endereçamento Indireto de Memória
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.15
Conhecimento em Automação
Training Center
16. Solução do Exercício 4.1: Programação de Loop com
Endereçamento Indireto de Memória
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.16
Conhecimento em Automação
Training Center
17. Solução do Exercício 4.2: Programação de Loop com
Endereçamento Indireto de Registro
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.17
Conhecimento em Automação
Training Center
18. Solução do Exercício 4.3: Cálculo de Soma e Valor Médio
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.18
Conhecimento em Automação
Training Center
19. Solução do Exercício 5.2: Acessando Tipos de Dados Complexos
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.19
Conhecimento em Automação
Training Center
20. Solução do Exercício 5.3: Leitura do Relógio do Sistema
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.20
Conhecimento em Automação
Training Center
21. Solução do Exercício 6.1a: Planta de Engarrafamento – Modo de
Operação
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.21
Conhecimento em Automação
Training Center
22. Solução do Exercício 6.1b: Planta de Engarrafamento – Controle
do Transportador (parte 1)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.22
Conhecimento em Automação
Training Center
23. Solução do Exercício 6.1b: Planta de Engarrafamento – Controle
do Transportador (parte 2)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.23
Conhecimento em Automação
Training Center
24. Solução do Exercício 6.1b: Planta de Engarrafamento – Controle
do Transportador (parte 3)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.24
Conhecimento em Automação
Training Center
25. Solução do Exercício 6.1b: Planta de Engarrafamento – Controle
do Transportador (parte 4)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.25
Conhecimento em Automação
Training Center
26. Solução do Exercício 6.2a: FB1 para Estação de Trabalho (parte 1)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.26
Conhecimento em Automação
Training Center
27. Solução do Exercício 6.2a: FB1 para Estação de Trabalho (parte 2)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.27
Conhecimento em Automação
Training Center
28. Solução do Exercício 6.2a: FB2 para o Transportador (parte 1)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.28
Conhecimento em Automação
Training Center
29. Solução do Exercício 6.2a: FB2 para o Transportador (parte 2)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.29
Conhecimento em Automação
Training Center
30. Solução do Exercício 6.2a: OB1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.30
Conhecimento em Automação
Training Center
31. Solução do Exercício 6.2b: Extensão para 3 Estações
(FB10, parte 1)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.31
Conhecimento em Automação
Training Center
32. Solução do Exercício 6.2b: Extensão para 3 Estações
(FB10, parte 2)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.32
Conhecimento em Automação
Training Center
33. Solução do Exercício 6.2b: Extensão para 3 Estações
(FB10, parte 3)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.33
Conhecimento em Automação
Training Center
34. Solução do Exercício 6.2b: Extensão para 3 Estações (OB1)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.34
Conhecimento em Automação
Training Center
35. Solução do Exercício 7.2: Testando o Bloco de Dados
(SFC 24: somente S7 400)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.35
Conhecimento em Automação
Training Center
36. Solução do Exercício 7.3: Criando um DB (SFC 22)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.36
Conhecimento em Automação
Training Center
37. Solução do Exercício 7.4: Copiando DB da Memória de Carga para
de Trabalho (SFC 20)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.37
Conhecimento em Automação
Training Center
38. Solução do Exercício 7.5: Initializando um DB com "0"
(SFC 21: FILL)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.38
Conhecimento em Automação
Training Center
39. Solução do Exercício 7.6: Escrevendo uma Menssagem no Buffer
de Diagnóstico (SFC 52)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.39
Conhecimento em Automação
Training Center
40. Solução do Exercício 7.7: Bloco Contador com "Debouncing de
Contato"
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.40
Conhecimento em Automação
Training Center
41. Solução do Exercício 8.1: Manipulação de Erro no FC43 (parte 1)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.41
Conhecimento em Automação
Training Center
42. Solução do Exercício 8.1: Manipulação de Erro no FC43 (parte 2)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.42
Conhecimento em Automação
Training Center
43. Solução do Exercício 9.2: Contagem de Peças Terminadas
(FB1, parte 1)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.43
Conhecimento em Automação
Training Center
44. Solução do Exercício 9.2: Contagem de Peças Terminadas
(FB1, parte 2)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.44
Conhecimento em Automação
Training Center
45. Solução do Exercício 9.2: Contagem de Peças Terminadas
(FB2, parte 3)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.45
Conhecimento em Automação
Training Center
46. Solução do Exercício 9.2: Contagem de Peças Terminadas
(FB2, parte 4)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.46
Conhecimento em Automação
Training Center
47. Solução do Exercício 9.2: Contagem de Peças Terminadas
(FB10, parte 5)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.47
Conhecimento em Automação
Training Center
48. Solução do Exercício 9.2: Contagem de Peças Terminadas
(FB10, parte 6)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.48
Conhecimento em Automação
Training Center
49. Solução do Exercício 10.2: Comunicação com os SFBs GET/PUT
(OB1, parte 1)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.49
Conhecimento em Automação
Training Center
50. Solução do Exercício 10.2: Comunicação com os SFBs GET/PUT
(OB1, parte 2)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.50
Conhecimento em Automação
Training Center
51. Solução do Exercício 10.3: Comunicação com os SFBs
START/STOP (parte 1)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.51
Conhecimento em Automação
Training Center
52. Solução do Exercício 10.3: Comunicação com os SFBs
START/STOP (parte 2)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Date:
File:
09.03.14
PRO2_14P.52
Conhecimento em Automação
Training Center
Notas do Editor
ConteúdoPág.
Suporte da Área de Treinamento com S7-300 ...................................................................................3
Configuração da Unidade de Treinamento com S7-300 ....................................................................4
Configuração da Unidade de Treinamento com S7-400 ....................................................................5
O Simulador ........................................................................................................................................6
O Modelo Correia Transportadora ......................................................................................................7
Solução do Exercício 1.1: Salto após uma Subtração ........................................................................8
Solução do Exercício 1.2: Salto após uma Multiplicação ....................................................................9
Solução do Exercício 1.3: Programando um Distribuidor de Saltos ....................................................10
Solução do Exercício 2.1: Cálculo de Expoentes ................................................................................11
Solução do Exercício 2.2: Troca de Dados no ACCU1 .......................................................................12
Solução do Exercício 2.3: Formação de Complementos ....................................................................13
Solução do Exercício 3.1: Calculando a Distância .............................................................................14
Solução do Exercício 4.1: Programação de Loop com Endereçamento Indireto de Memória ...........15
Solução do Exercício 4.2: Programação de Loop com Endereçamento Indireto de Registro ............17
Solução do Exercício 4.3: Cálculo de Soma e Valor Médio ................................................................18
Solução do Exercício 5.2: Acessando Tipos de Dados Complexos ...................................................19
Solução do Exercício 5.3: Leitura do Relógio do Sistema ..................................................................20
Solução do Exercício 6.1a: Planta de Engarrafamento – Modo de Operação ...................................21
Solução do Exercício 6.1b: Planta de Engarrafamento – Controle do Transportador ........................22
Solução do Exercício 6.2a: FB1 para Estação de Trabalho ................................................................26
Solução do Exercício 6.2a: FB2 para o Transportador .......................................................................28
Solução do Exercício 6.2a: OB1............................................................................................................30
Solução do Exercício 6.2b: Extensão para 3 Estações .......................................................................31
ConteúdoPág.
Solução do Exercício 7.2: Testando o Bloco de Dados (SFC 24: somente S7 400) .........................35
Solução do Exercício 7.3: Criando um DB (SFC 22) .........................................................................36
Solução do Exercício 7.4: Copiando DB da Memória de Carga para de Trabalho (SFC 20) ............37
Solução do Exercício 7.5: Initializando um DB com &quot;0&quot; (SFC 21: FILL) .............................................38
Solução do Exercício 7.6: Escrevendo uma Menssagem no Buffer de Diagnóstico (SFC 52) ...........39
Solução do Exercício 7.7: Bloco Contador com &quot;Debouncing de Contato&quot; ........................................40
Solução do Exercício 8.1: Manipulação de Erro no FC43 ..................................................................41
Solução do Exercício 9.2: Contagem de Peças Terminadas ..............................................................43
Solução do Exercício 10.2: Comunicação com os SFBs GET/PUT ....................................................49
Solução do Exercício 10.3: Comunicação com os SFBs START/STOP .............................................51
Conteúdo do Kit O kit de treinamento consiste dos seguintes componentes:
de Treinamento• Um controlador lógico programável S7-300 com CPU 314 ou CPU 315- DP• Módulos de entrada e saída digital, módulo analógico• Simulador com equipamentos para testes digitais e analógicos• Modelo de Correia TransportadoraNota:É bem possível que o seu kit de treinamento de área não seja equipado com o modelo de correita transportadora mostrado acima, mas com o modelo mostrado na foto abaixo.
ConfiguraçãoO controlador programável é configurado com os seguintes módulos:
da Versão ASlot 1:Fonte de alimentação 24V/5ASlot 2:CPU 314 ouCPU 315-2 DPSlot 4:Entrada digital 16x24VEntradas do simuladorSlot 5:Entrada digital 16x24V Botões PushwheelSlot 6:Saída digital 16x24V 0.5ASaídas do simuladorSlot 7:Saída digital 16x24V 0.5ADisplay digital Slot 8:Entrada digital 16x24VEntradas do modelo C. Transp. Slot 9:Saída digital 16x24V 0.5ASaídas do modelo C. Transp. Slot 10:Módulo analógico 4 AI/4 AOAjustável do simulador
Configuração O controlador programável é configurado com os seguintes módulos :
da Versão BSlot 1:Fonte de alimentação 24V/5ASlot 2:CPU 314 ou CPU 315-2 DP Slot 4:Entrada digital 32x24VEntradas do simulador eBotões Pushwheel Slot 5:Saída digital 32x24V/0.5ASaídas do simulador eDisplay digital Slot 6:Entrada e saída digitalModelo C. Transp. módulo 8X24V/ 8x24V 0.5ASlot 7:Entrada analógica 2 AISeção analógica do simulador
EndereçosO endereçamento slot fixo é usado no S7-300 (CPU 312-314). Os endereços do módulos são mostrados no slide.Os endereços iniciais do módulos podem ser ajustados pela atribuição de parâmetros na CPU 315-2DP e para o S7-400.
ArquiteturaVocê pode ver a arquitetura da unidade de treinamento do S7-400 no slide
acima.O bastidor de montagem UR 1 é configurado com os seguintes módulos:
Slot 1:Fonte de alimentação 24V e 5V/20ASlot 2:- &quot; -Slot 3:- &quot; -Slot 4:CPU 412 ou outraSlot 5:vago (quando a CPU for de largura simples)Slot 6:vago Slot 7:vago Slot 8:Entrada digital 32x24V(do Simulador) Slot 9:Entrada digital 32x24V (do modelo C. Transp.) Slot 10:Saída digital 32x24V 0.5A(para Simulador)Slot 11:Saída digital 32x24V 0.5A(para modelo C. Transp.)Slot 12:Entrada analógica 8X13 Bit(do potenc. no Simulador)Slot 13:vago Slot 14:vago Slot 15:vago Slot 16:vago Slot 17:vago Slot 18:vago
EndereçamentoVocê tem os endereços padrões, conforme mostrado no slide acima, quando não foi feita nenhuma configuração ou nenhuma parametrização de novos endereços tenham sido transferidas.
ProjetoO Simulador é conectado às unidades de treinamento S7-300 ou S7-400 por dois cabos. Eles são divididos em três seções:•Seção binária com 16 chaves (liga-desliga e liga com retorno por mola) e 16 LEDs.•Seção digital com 4 chaves pushwheel (ou thumbwheel) e um display digital. Estas operam com valores BCD.
•Seção analógica com um voltímetro para mostrar os valores dos canais de saída analógicos 0 e 1. Você utiliza a chave seletora para escolher o valor de tensão que você deseja monitorar. Existem dois potenciômetros separados para ajuste de valores para os canais de entrada analógicos.
EndereçamentoVocê utiliza os seguintes endereços para endereçar as entradas e saídas em seu programa do usuário:
ProjetoO slide acima mostra um diagrama do modelo Correia Transportadora com seus sensores e atuadores.
Addresses S7-300S7-300S7-400
Ver. AVer. B(semSensor / Atuador Símbolo
(DI16, (DI32,Config. DO16) DO32) HW )
I 16.0I 8.0I 32.0Barreira de luz LB 1LB1I 16.1I 8.1I 32.1Ch. reconhec., posto 1S1I 16.2I 8.2I 32.2Ch. reconhec., posto 2 S2I 16.3I 8.3I 32.3Ch. reconhec., posto 3S3I 16.4I 8.4I 32.4Ch. reconhec., mont.finalS4 I 16.5I 8.5I 32.5Sensor proximidade 1INI1I 16.6I 8.6I 32.6Sensor proximidade 2INI2I 16.7I 8.7I 32.7Sensor proximidade 3INI3Q 20.1Q 8.1Q 40.1LED no posto 1 H1Q 20.2Q 8.2Q 40.2LED no posto 2 H2Q 20.3Q 8.3Q 40.3LED no posto 3 H3Q 20.4Q 8.4Q 40.4LED na montagem finalH4Q 20.5Q 8.5Q 40.5C. Transp. oper. p/ dir.K1_CONVRQ 20.6Q 8.6Q 40.6C. Transp. oper. p/ esq.K2_CONVLQ 20.7Q 8.7Q 40.7BuzinaHORN
Solução do Exercício 1.1: Salto após uma Subtração
FUNCTION FC 11 : VOID
TITLE =Exercise 1.1 : saloto após uma Subtração
//Version for 16Bit SM
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
BEGIN
NETWORK
TITLE =
LIW 4; // Chave Thumbwheel
BTD ; // Converte formato de BCD para DINT
L IW 0; // Palavra de entrada 0
BTD;
-D;
JMNEG; // Salta, se resultado negativo
LIW4;
JUEND;
NEG: L 0;
END: TQW 12; // Display digital
END_FUNCTION
Solução do Exercício 1.2: Salto após uma Multiplicação
FUNCTION FC 12 : VOID
TITLE =Exercise 1.2 : Salto após uma Multiplicação
//Version for 16Bit SM
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
BEGIN
NETWORK
TITLE =
LIW4; // Chave Thumbwheel
BTD; // Conversão de BCD para DINT
LIW 0; // Chaves de teste no Simulador
BTD;
*I;
JOOVL; // Salta se houver overflow
DTB; // Conversão de DINT para BCD
JUEND;
OVL: L0;
END: TQW12; // Display digital
END_FUNCTION
Solução do Exercício 1.3: Programando um Distribuidor de Saltos
OB1
FUNCTION FC 13: VOID
//Versão para SM 16Bit
// Programando um Distribuidor de Saltos
VAR_INPUT
Select: INT;
END_VAR
BEGIN
SET;
L #Select;
AW W#16#FF00; // Verifica se a seleção é &gt;255 ou
JN Err; // Salta se &gt; 255
L #Select; // Recarreaga o valor
JL GT5; // Salta p/rótulo se ACCU1-L-L &gt;5
JU Err; // Se a seleção for = 0 (não permitido)
JU Dr_1; // Correia p/direita (seleção=1)
JU Dr_2; // Correia p/esquerda (seleção=2)
JU Dr_3; // Parar correia (seleção=3)
JU Ho_1; // Liga buzina
JU Ho_2; // Desliga buzina
GT5: JU Err;
Dr_1:S Q 20.5; // Correia p/direita
R Q 20.6;
JU End;
Dr_2: S Q 20.6; // Correia p/esquerda
R Q 20.5;
JU End;
Dr_3: R Q 20.5; // Parar Correia
R Q 20.6;
JU End;
Ho_1: S Q 20.7; // Liga buzina
JU End;
Ho_2: R Q 20.7; // Desliga buzina
JU End;
Err: RQ 20.5;// Parar Correia
RQ 20.6;
RQ 20.7;// Desliga buzina CLR;// Resetar ENO
SAVE;
End: BE;
END_FUNCTION
Solução do Exercício 2.1: Cálculo de Expoentes
FUNCTION FC 21 : VOID
TITLE =Exercise 2.1: Cálculo de Expoentes
//Version for 16Bit SM
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
BEGIN
NETWORK
TITLE =
L IB5;// Carrega byte a direita da chave pushweel
BTI; // BCD para INT -&gt; entrada de valor
PUSH; // Copia ACCU1 para ACCU2
*D; // Forma o quadrado de valor no ACCU1
PUSH; // Copia quadrado do ACCU1 para ACCU2
PUSH;// Necessário p/S7-400: quadrado -&gt; ACCU3
*D; // Forma potência de 4 no ACCU1
*D; // Forma potência de 6 no ACCU1
DTB; // Converte para BCD
T QW12;// Transfere palavra baixa p/ display digital
END_FUNCTION
Solução do Exercício 2.2: Troca de Dados no ACCU1
FUNCTION FC 22 : VOID
TITLE = Exercício 2.2: Troca de Dados no ACCU1
//Versão para SM 16Bit
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
BEGIN
NETWORK
TITLE =
LIW4;// Carrega número BCD
CAW;// Troca dois bytes no ACCU1-L
TQW12; // Mostra o resultado
END_FUNCTION
Solução do Exercício 2.3: Formação de Complementos
FUNCTION FC 23 : VOID
TITLE = 2.3: Formação de Complementos
//Versão para SM 16Bit
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
BEGIN
NETWORK
TITLE = Complemento de Um em STL
LIW0; // Carrega palavra de entrada das chaves de testes
INVI; // Forma o complemento de um
TQW8;// Transfere o resultado para os LEDs do simulador
END_FUNCTION
Solução do Exercício 3.1: Calculando a Distância
FUNCTION FC 31 : REAL
TITLE =Exercise 3.1: Calculando a distância
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
VAR_INPUT
X1: REAL;
Y1: REAL;
X2: REAL;
Y2: REAL ;
END_VAR
VAR_TEMP
XSquare : REAL;
END_VAR
BEGIN
NETWORK
TITLE =
L #X1; // Carrega cooredenada X de P1
L #X2; // Carrega cooredenada X de P2
-R; // Calcula (X1-X2)
SQR; // Eleva (X1-X2) ao quadrado
T #XSquare; // Armazena o resultado na variável TEMP
L #Y1; // Carrega cooredenada Y de P1
L #Y2; // Carrega cooredenada Y de P2
-R; // Calcula (Y1-Y2)
SQR; // Eleva (Y1-Y2) ao quadrado
L #XSquare;// Recarrega (X1-X2) elevado ao quadrado
+R;// Soma
SQRT;// Calcula raiz quadrada
T #RET_VAL;// Transfere para RET_VAL
END_FUNCTION
Solução do Exercício 4.1: Programação de Loop com Endereçamento Indireto de Memória (parte 1)
FUNCTION FC 41 : VOID
TITLE = Exercício 4.1: Programação de Loop com Endereçamento Indireto de Memória
VAR_INPUT
DB_Num : WORD ;
END_VAR
VAR_TEMP
L_Counter : INT ;
Ini_Value : REAL ;
I_DB_Num : WORD;
Par_Pointer : DWORD ;END_VAR
BEGIN
NETWORK
TITLE = Abre o DB
L #DB_Num; // Carrega o número do DB
T #I_DB_Num; // e transfere p/ variável temporária
OPN DB [#I_DB_Num]; // Abre DB
NETWORK
TITLE = LOOP
L P#0.0; // Carrega end. do primeiro componente Tanque
T #Par_Pointer; // e transfere para #T_Pointer
L 1.0; // Carrega constante 1,0 e
T #Ini_Value; // transfere para #Ini_Value
L 100; // Inicializa loop de contagem com 100
BEGN: T #L_Counter; // e transfere para #L_Counter
L #Ini_Value;
T DBD [#Par_Pointer]; // Transfere #Ini_Value Meas_Value[i]
L 1.0; // Incrementa ACCU1 (#Ini_Value)
+R ; // de 1,0
T #Ini_Value; // e transfere para #Ini_Value
L #Par_Pointer; // Carrega #Par_Pointer no ACCU1
L P#4.0; // Incrementa o byte de endereço
+D ; // do #Par_Pointer em 4 unidades
T #Par_Pointer; // e transfere resultado para #Par_Pointer
L #L_Counter; // Carrega contador de loop,
LOOP BEGN; // Decrementa contador loop e se necessário saltar
END_FUNCTION
Solução do Exercício 4.1: Programação de Loop com Endereçamento Indireto de Memória (parte 2)
ORGANIZATION_BLOCK OB 1
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ;//Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ;//1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ;//1 (Prioridade do 1 é baixa)
OB1_OB_NUMBR : BYTE ;//1 (Bloco de Organização 1, OB1)
OB1_RESERVED_1 : BYTE ;//Reservado para o sistema
OB1_RESERVED_2 : BYTE ;// Reservado para o sistema
OB1_PREV_CYCLE : INT ;//Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ;//Mínimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ;//Máximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ;//Data e horário da partida do OB1
END_VAR
BEGIN
NETWORK
TITLE =
CALL FC 41 (
DB_Num := W#16#29);
NOP 0;
END_ORGANIZATION_BLOCK
Solução do Exercício 4.2: Programação de Loop com Endereçamento Indireto de Registro
FUNCTION FC 42: VOID
TITLE = Exercício 4.2: Programação de Loop com Endereçamento Indireto de Registro
// Versão para S7-300 e S7-400
VAR_INPUT
DB_Num : WORD ;
END_VAR
VAR_TEMP
I_DB_Num : WORD ;
END_VAR
BEGIN
NETWORK
TITLE = Abertura do DB
L #DB_Num; // Carrega número do DB
T #I_DB_Num; // e transfere para variável temporária
OPN DB [#I_DB_Num]; // Abre DB
NETWORK
TITLE = LOOP
LAR1 P#DBX0.0; // Carrega endereço do primeiro componente do Tanque
L L#1; // Carrega 1 no ACCU1(Ini_Value.)
L 100; // 100 no ACCU1 (L_Counter); 1 no ACCU2 (Ini_Value)
BEGN: TAK ; // L_Counter no ACCU2, Ini_Value no ACCU1
T D [AR1,P#0.0]; // Transfere Ini_Value para Tank[i]
+ L#1; // Incrementa Ini_Value
+AR1 P#4.0; // Incrementa AR1 de 2 unidades
TAK ; // L_Counter no ACCU1, Ini_Value no ACCU2
LOOP BEGN; // Decrementa, verifica término e salta
END_FUNCTION
Solução do Exercício 4.3: Cálculo de Soma e Valor Médio
FUNCTION FC 43 : VOID
TITLE = Exercício 4.3: Cálculo de Soma e Valor Médio
VERSION : 0.0
VAR_INPUT
Measured_values : ANY ;
END_VAR
VAR_OUTPUT
Sum : REAL ;
Mean_value : REAL ;
END_VAR
VAR_TEMP
Num_Elements : WORD ;
L_Counter : WORD ;
DB_No : WORD ;
END_VAR
BEGIN
NETWORK
TITLE =
L P##Measured_values; // Carrega endereço do ponteiro &quot;ANY&quot;
LAR1 ; // Transfere endereço no AR1
L B [AR1,P#1.0]; // Carrega identificador de tipo de dado
L 8; // Carrega identificador de REAL (16#08)
==I ;
JC REAL; // Salta se tipo de dado é igual a REAL
NOP 0; // Instruções p/ tipo de dado diferente de REAL
CLR ; // RLO=0
SAVE ; // BR=0
L L#-1; // Carrega número REAL inválido
T #Sum;
T #Mean_value;
BEU ;
REAL: NOP 0; // Instruções para tipo de dado: REAL
L W [AR1,P#2.0]; // Carrega número de elementos array
T #Num_Elements; // Guarda número de elementos
L W [AR1,P#4.0]; // Carrega número do DB ou 0
T #DB_No; // Se: DB_No=0, então: OP DB[DB_No]=NOP
OPN DB [#DB_No]; // Erro de Runtime!!, se DB não existe
L D [AR1,P#6.0]; // Carrega ponteiro para operando atual
LAR1 ; // no AR1, Erro !! Se identificador de área é igual a &quot;DI&quot;
L 0.000000e+000; // 0 no ACCU1 (Soma =0,0)
L #Num_Elements; // Num_Elements no ACCU1; Sum=0 no ACCU2
BEGN: T #L_Counter; // Seta L_Counter
TAK ; // Sum no ACCU1
L D [AR1,P#0.0]; // Elemento do Array no ACCU1, Sum no ACCU2
+R ; // Sum em ACCU1
+AR1 P#4.0; // Incrementa AR1 de 4 unidades
L #L_Counter; // L_Counter no ACCU1, Sum no ACCU2
LOOP BEGN; // Decrementa e salta
TAK ; // Sum no ACCU1
T #Sum; // Sum para #Sum
L #Num_Elements; // Sum no ACCU2, número de elementos no ACCU1
DTR ; // Converte inteiro não sinalizado (16 bit) para REAL
/R ; // Valor médio no ACCU1
T #Mean_value; // Transfere valor médio para #Mean_value
SET ; // Seta bit BR
SAVE ;
END_FUNCTION
Solução do Exercício 5.2: Acessando Tipos de Dados Complexos
FUNCTION FC 52 : VOID
TITLE =Monitoração de Motores
//Versão para S7-300 e S7-400
VERSION : 0.1
VAR_INPUT
Motor : &quot;Motor&quot;;
END_VAR
VAR_OUTPUT
Motor_OK : BOOL ;
SetActDiff : DINT ;
SetActDiffDisp : DWORD ;
END_VAR
VAR_TEMP
SetActDifference : REAL ;
END_VAR
BEGIN
NETWORK
TITLE =
//Computando a porcentagem de desvio
SET ; //Obriga o first check, seta RLO p/ &quot;1&quot;
SAVE ; //Seta o bit BR p/ &quot;1&quot;
L #Motor.SetSpeed; //Carrega velocidade no ACCU1
PUSH ; //somente p/ S7-400, seta velocidade no ACCU2
PUSH ; //Carrega velocidade no ACCU3
L #Motor.ActualSpeed; //Seta veloc. no ACCU2, veloc. atual no ACCU1
-R ; //Diferença no ACCU1, seta velocidade no ACCU2
T #SetActDifference; //Guarda diferença na variável temporária
TAK ; //Diferença no ACCU2, seta velocidade no ACCU1
/R ; //Desvio percentual atual no ACCU1
ABS ; //Desvio percentual absoluto no ACCU1
L #Motor.SetActDiffMax; //Carrega máx. desvio percentual no ACCU1
&lt;=R ; //Desvio atual igual ou menor que desvio desejado?
AN #Motor.Disturbance; //e nenhum distúrbio
= #Motor_OK; //então Motor está OK
NETWORK
TITLE = Mostrando a diferença entre a velocidade e a velocidade atual
L #SetActDifference; //Carrega SetActDifference
RND ; //Converte p/ DINT
PUSH ; //Guarda SetActDifference no ACCU2
DTB ; //Número DINT no ACCU2, número BCD no ACCU1
JO ERR; //Salta se houve erro de conversão
T #SetActDiffDisp; //Transfere número BCD válido p/ display digital
TAK ;
T #SetActDiff; //Transfere número DINT válido p/ #SetActDiff
BEU ; //Se nenhum erro, termina
ERR: CLR ;
SAVE ; //Limpa bit BR
END_FUNCTION
Solução do Exercício 5.3: Leitura do Relógio do Sistema
FUNCTION FC 53 : VOID
TITLE = Exercício 5.3: Leitura do Relógio do Sistema
//Versão para SM 16Bit
AUTHOR : PT41
FAMILY : A2_0
NAME : ST7PRO2
VERSION : 0.0
VAR_TEMP
Date_Time : DATE_AND_TIME ;//Data e hora atuais
RET_VAL_SFC1 : INT ;//Returna valor do SFC 1
END_VAR
BEGIN
NETWORK
TITLE =Call SFC 1 (READ_CLK)
CALL SFC1 (
RET_VAL:= #RET_VAL_SFC1,
CDT := #Date_Time);
NOP 0;
NETWORK
TITLE = Mostra horas e minutos
LAR1 P##Date_Time;// Captura endereço do #Date_Time
L LB [AR1, P#3.0];// Lê a hora
T QB 12; // e transfere para display digital
L LB [AR1, P#4.0];// Lê minutos
T QB 13;// e transfere para display
END_FUNCTION
Solução do Exercício 6.1a: Planta de Engarrafamento – Modo de Operação
FUNCTION_BLOCK &quot;Mode_Selection&quot;
TITLE =Modo de Seleção
VERSION : 0.1
VAR_INPUT
Start : BOOL ;
Stop : BOOL ;
Auto_Man : BOOL ;
OM_activate : BOOL ;
END_VAR
VAR_OUTPUT
Plant_on : BOOL ;
OM_Man : BOOL ;
OM_Auto : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =Planta liga / desliga
A #Start; // sinal liga planta,
S #Plant_on; // seta saída plant_on;
AN #Stop; // sinal desliga planta,
R #Plant_on; // reseta saída plant_on;
A #Plant_on; //
= #Plant_on; //
NETWORK
TITLE = Modo de Operação: Manual
A #Plant_on; // se a planta estiver ligada e
AN #Auto_Man; // se o modo manual estiver selecionado e
A #OM_activate; // se a entrada enter_mode estiver ativa,
S #OM_Man; // então seta a saída manual_mode;
A( ;
ON #Plant_on; // se a planta estiver desligada
O ; // ou
A #Auto_Man; // se o modo automático estiver selecionado e
A #OM_activate; // se o enter_mode estiver ativado,
) ;
R #OM_Man; // reseta a saída manual_mode;
A #OM_Man; //
= #OM_Man; //
NETWORK
TITLE = Modo de Operação: Automático
A #Plant_on; // se a planta estiver ligada e
A #Auto_Man; // se o modo automático estiver selecionado e
A #OM_activate; // se a entrada enter_mode estiver ativada,
S #OM_Auto; // então seta a saída automatic_mode;
A( ;
ON #Plant_on; // se a planta estiver desligada
O ; // ou
AN #Auto_Man; // se o modo manual estiver selecionado e
A #OM_activate; // se o enter_mode estiver ativado,
) ;
R #OM_Auto; // reseta a saída automatic_mode;
A #OM_Auto; //
= #OM_Auto; //
END_FUNCTION_BLOCK
Solução do Exercício 6.1b: Planta de Engarrafamento – Controle do Transportador (parte 1)
FUNCTION_BLOCK &quot;Conveyor_Control&quot;
TITLE =
VERSION : 0.1
VAR_INPUT
OM_Man : BOOL ;
OM_Auto : BOOL ;
Jog_for : BOOL ;
Jog_back : BOOL ;
Sensor_fill : BOOL ;
Sensor_full : BOOL ;
END_VAR
VAR_OUTPUT
Conv_for : BOOL ;
Conv_back : BOOL ;
Filling_active : BOOL ;
Full_bottles : WORD ;
END_VAR
VAR
Filling_time : &quot;TP&quot;;
Bottle_counter : &quot;CTU&quot;;
END_VAR
VAR_TEMP
bottles : INT ;
END_VAR
BEGIN
NETWORK
TITLE = Ramificação entre o modo Manual e Automático
SET ; // obriga o first check,
SAVE ; // e seta o bit BR p/ &quot;1&quot;;
A #OM_Man; // se manual_mode estiver ativo,
JC Man; // salta para modo manual;
A #OM_Auto; // se automatic_mode estiver ativo,
JC Auto; // salta para modo automático;
R #Conv_for; // se nenhum modo de operação estiver ativo,
R #Conv_back; // reseta o acionamento da C. Transp.,
R #Filling_active; // reseta filling_active
CALL #Bottle_counter (
R := TRUE);// reseta contador
L 0; // reseta valor de full_bottles
T #Full_bottles;
BEU ;
NETWORK
TITLE = Modo de Operação: Manual
//Controla a Correia Transportadora através dos botões JOG
Man: A #Jog_for;
AN #Jog_back;
= #Conv_for;
A #Jog_back;
AN #Jog_for;
= #Conv_back;
BEU ;
// (Continua na próxima página)
Solução do Exercício 6.1b: Planta de Engarrafamento – Controle do Transportador (parte 2)
NETWORK
TITLE = Modo de Operação: Automático
//Partir Filling_time
Auto: A #Sensor_fill;
= L 2.0;
LD 103;
CALL #Filling_time (
IN := L 2.0,
PT := T#3S,
Q := #Filling_active);
NOP 0;
NETWORK
TITLE = Modo de Operação: Automático
//Contagem de garrafas cheias
A #Sensor_full;
= L 2.0;
BLD 103;
CALL #Bottle_counter (
CU := L 2.0,
R := FALSE,
CV := #bottles);
NOP 0;
NETWORK
TITLE = Modo de Operação: Automático
//Convertendo #bottles para BCD
//
L #bottles;
ITB ;
T #Full_bottles;
NOP 0;
NETWORK
TITLE = Modo de Operação: Automático
//C. Transp. p/frente enquanto o enchimento não estiver em processo
AN #Filling_active;
= #Conv_for;
END_FUNCTION_BLOCK
Solução do Exercício 6.1b: Planta de Engarrafamento – Controle do Transportador (parte 3)
ORGANIZATION_BLOCK &quot;Cycle&quot;
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ;//Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ;//1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ;//1 (Prioridade do 1 é baixa)
OB1_OB_NUMBR : BYTE ;//1 (Bloco de Organização 1, OB1)
OB1_RESERVED_1 : BYTE ;//Reservado para o sistema
OB1_RESERVED_2 : BYTE ;// Reservado para o sistema
OB1_PREV_CYCLE : INT ;//Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ;//Mínimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ;//Máximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ;//Data e horário da partida do OB1
Full_bottles : INT ;
END_VAR
BEGIN
NETWORK
TITLE = Modo de Operação
//Controle do Modo de Operação
A &quot;Start&quot;;
= L 22.0;
BLD 103;
A &quot;Stop&quot;;
= L 22.1;
BLD 103;
A &quot;Man/Auto&quot;;
= L 22.2;
BLD 103;
A &quot;Enter_Mode&quot;;
= L 22.3;
BLD 103;
CALL &quot;Mode_selection&quot; , &quot;Mode_Selection_DB&quot; (
Start := L 22.0,
Stop := L 22.1,
Auto_Man := L 22.2,
OM_activate := L 22.3,
Plant_on := &quot;Plant_on&quot;,
OM_Man := &quot;Manual_Mode&quot;,
OM_Auto := &quot;Automatic_Mode&quot;);
NOP 0;
// (Continua na próxima página)
Solução do Exercício 6.1b: Planta de Engarrafamento – Controle do Transportador (parte 4)
NETWORK
TITLE = Controlando a Correia Transportadora
A &quot;Manual_Mode&quot;;
= L 22.0;
BLD 103;
A &quot;Automatic_Mode&quot;;
= L 22.1;
BLD 103;
A &quot;Jog_forward&quot;;
= L 22.2;
BLD 103;
A &quot;Jog_backward&quot;;
= L 22.3;
BLD 103;
A &quot;Filling_Position&quot;;
= L 22.4;
BLD 103;
A &quot;Counting_Bottles&quot;;
= L 22.5;
BLD 103;
CALL &quot;Conveyor_Control&quot; , &quot;Conveyor_Control_DB&quot; (
OM_Man := L 22.0,
OM_Auto := L 22.1,
Jog_for := L 22.2,
Jog_back := L 22.3,
Sensor_fill := L 22.4,
Sensor_full := L 22.5,
Conv_for := &quot;Conveyor_forward&quot;,
Conv_back := &quot;Conveyor_backward&quot;,
Filling_active := &quot;Filling_in_progress&quot;,
Full_bottles := &quot;Display&quot;);
NOP 0;
END_ORGANIZATION_BLOCK
Solução do Exercício 6.2a: FB1 para Estação de Trabalho (parte 1)
FUNCTION_BLOCK &quot;Station&quot;
TITLE = Controlando uma estação de trabalho
AUTHOR : PT41
FAMILY : A2_0
NAME : ST7PRO2
VERSION : 0.0
VAR_INPUT
Initial : BOOL ;
Proxy_switch : BOOL ;
Acknowledge : BOOL ;
Clock_bit_q : BOOL ;
Clock_bit_s : BOOL ;
END_VAR
VAR_OUTPUT
LED : BOOL ;
Transp_req : BOOL ;
END_VAR
VAR_IN_OUT
Conv_busy : BOOL ;
END_VAR
VAR
State : STRUCT
Process_piece : BOOL ;
Piece_finished : BOOL ;
Place_piece_on_conv : BOOL ;
Wait_for_piece : BOOL ;
Take_piece_from_conv : BOOL ;
END_STRUCT ;
END_VAR
BEGIN
NETWORK
TITLE = Inicialização
//Por meio da entrada &quot;Initial&quot; o estado básico #Process_piece é setado
A #Initial;
S #State.Process_piece;
R #State.Piece_finished;
R #State.Place_piece_on_conv;
R #State.Wait_for_piece;
R #State.Take_piece_from_conv;
R #Conv_busy;
NETWORK
TITLE = Estado: Process_piece
//Neste estado a peça bruta é processada. Processamento é terminado
// quando o operador reconhece o término da peça bruta
//por meio do botão &quot;S1&quot;
AN #State.Process_piece;
JC Pfin;
S #LED; //o LED fica ligado constantemente;
R #Transp_req;
A #Acknowledge; //quando o operador reconhece,
R #State.Process_piece; //uma mudança de estado ocorre;
R #LED;
S #State.Piece_finished;
// (Continua na próxima página)
Solução do Exercício 6.2a: FB1 para Estação de Trabalho (parte 2)
NETWORK
TITLE = Estado: Piece_finished
//No estado #Piece_finished o operador espera pela permissão
//para colocar a peça bruta na C. Transp.. O sinal #Conv_busy indica,
//se a C.Transp. está ocupada ou não. Quando a CT estiver livre, uma mudança de estado
//para o estado Place_piece_on_conv é realizada.
Pfin: AN #State.Piece_finished;
JC PpCo;
A #Clock_bit_s; //pisca lento;
= #LED;
AN #Conv_busy; //quando a C. Transp. estiver livre,
S #Conv_busy; //isto é sinalizado ocupado
R #LED; //então uma mudança de estado é realizada;
R #State.Piece_finished;
S #State.Place_piece_on_conv;
NETWORK
TITLE = Estado: Place_piece_on_conv
PpCo: AN #State.Place_piece_on_conv;
JC Wait;
A #Clock_bit_q; //pisca lento;
= #LED;
A #Proxy_switch; //quando a peça estiver colocada na Correia,
S #Transp_req; //o transportador parte,
R #LED; //e o LED é apagado;
A #Transp_req; //Quando a Correia estiver movimentando,
AN #Proxy_switch; //então a peça bruta deixa a chave de proximidade,
R #State.Place_piece_on_conv; // e uma mudança de estado é realizada;
S #State.Wait_for_piece;
NETWORK
TITLE = Estado: Wait_for_piece
//Esperando por uma nova peça bruta. A chegada de uma nova peça é iniciada pelo
//sensor de proximidade da Correia
Wait: AN #State.Wait_for_piece;
JC TpCo;
R #LED; //o LED é desligado;
A #Proxy_switch; //uma nova peça bruta chega,
R #Transp_req; //a C. Transp. é parada,
R #State.Wait_for_piece; //e uma mudança de estado é realizada;
S #State.Take_piece_from_conv;
NETWORK
TITLE = Estado: Take_piece_from_conv
//Neste novo estado a nova peça bruta é pega da C. Transp. paraa
//o posto de trabalho
TpCo: AN #State.Take_piece_from_conv;
JC END;
A #Clock_bit_q; //o LED pisca rapidamente
= #LED; //
AN #Proxy_switch; //quando a nova peça bruta é pega da C. Transp.,
R #Conv_busy; //a C. Transp. fica livre,
R #LED; //o LED é desligado
R #State.Take_piece_from_conv; //e uma mudança de estado é realizada;
S #State.Process_piece;
END: BEU ;
END_FUNCTION_BLOCK
Solução do Exercício 6.2a: FB2 para o Transportador (parte 1)
FUNCTION_BLOCK &quot;Transport&quot;
TITLE = Controlando a Correia Transportadora
VERSION : 0.1
VAR_INPUT
Initial : BOOL ;
L_Barrier : BOOL ;
Acknowledge : BOOL ;
Transp_req : BOOL ;
Clock_Bit : BOOL ;
END_VAR
VAR_OUTPUT
LED : BOOL ;
Conv_right : BOOL ;
Conv_left : BOOL ;
END_VAR
VAR
State : STRUCT
Waiting : BOOL ;
Conv_right : BOOL ;
Assembly : BOOL ;
Conv_left : BOOL ;
END_STRUCT ;
END_VAR
BEGIN
NETWORK
TITLE = Inicialização
A #Initial;
S #State.Waiting;
R #State.Conv_right;
R #State.Assembly;
R #State.Conv_left;
NETWORK
TITLE = Estado: Esperando
//A C. Transp. espera neste estado pela finalização da peça.
AN #State.Waiting;
JC RECH;
R #Conv_right;
R #Conv_left;
R #LED;
A #Transp_req;
R #State.Waiting;
S #State.Conv_right;
NETWORK
TITLE = Estado: Conv_right
//Este estado descreve o transporte da peça acabada em direção a montagem final
RECH: AN #State.Conv_right;
JC ENDM;
S #Conv_right;
A #Clock_Bit;
= #LED;
AN #L_Barrier;
R #Conv_right;
R #State.Conv_right;
S #State.Assembly;
AN #L_Barrier;
= #L_Barrier;
// (Continua na próxima página)
Solução do Exercício 6.2a: FB2 para o Transportador (parte 2)
NETWORK
TITLE = Estado: Montagem
//Neste estado, a peça finalizada é removida e uma nova peça bruta é deixada
//na correia. Depois disto, o transporte da peça bruta em direção da estação de
//processamento vazia é iniciado com S4.
//
ENDM: AN #State.Assembly;
JC LINK;
S #LED;
A #Acknowledge;
R #LED;
R #State.Assembly;
S #State.Conv_left;
NETWORK
TITLE = Estado: Conv_left
//Neste estado, o transporte da nova peça bruta para a estação ocorre, que entrega
//a peça finalizada.
LINK: AN #State.Conv_left;
JC ENDE;
S #Conv_left;
A #Clock_Bit;
= #LED;
AN #Transp_req;
R #Conv_left;
R #State.Conv_left;
S #State.Waiting;
ENDE: BEU ;
END_FUNCTION_BLOCK
Solução do Exercício 6.2a: OB1
ORGANIZATION_BLOCK &quot;Cycle&quot;
TITLE = &quot;Varredura do Programa Principal (Ciclo)&quot;
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ;//Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ;//1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ;//1 (Prioridade do 1 é baixa)
OB1_OB_NUMBR : BYTE ;//1 (Bloco de Organização 1, OB1)
OB1_RESERVED_1 : BYTE ;//Reservado para o sistema
OB1_RESERVED_2 : BYTE ;// Reservado para o sistema
OB1_PREV_CYCLE : INT ;//Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ;//Mínimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ;//Máximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ;//Data e horário da partida do OB1
END_VAR
BEGIN
NETWORK
TITLE = Convocação do bloco de controle da estação
CALL &quot;Station&quot; , &quot;Station_DB&quot; (
Initial := &quot;INITIALIZATION&quot;,
Proxy_switch := &quot;INI1&quot;,
Acknowledge := &quot;S1&quot;,
Clock_bit_q := &quot;CLOCK_BIT_FAST&quot;,
Clock_bit_s := &quot;CLOCK_BIT_SLOW&quot;,
LED := &quot;H1&quot;,
Transp_req := &quot;Transport_DB&quot;.Transp_req);
NETWORK
TITLE = Convocação do bloco de transporte da estação
CALL &quot;Transport&quot; , &quot;Transport_DB&quot; (
Initial := &quot;INITIALIZATION&quot;,
L_Barrier := &quot;LB1&quot;,
Acknowledge := &quot;S4&quot;,
Clock_bit := &quot;CLOCK_BIT_FAST&quot;,
LED := &quot;H4&quot;,
Conv_right := &quot;K1_CONVR&quot;,
Conv_left := &quot;K2_CONVL&quot;);
END_ORGANIZATION_BLOCK
Solução do Exercício 6.2b: Extensão para 3 Estações
(FB10, parte 1)
FUNCTION_BLOCK &quot;ASSEMBLY_LINE&quot;
TITLE =
VERSION : 0.1
VAR
Station_1 : &quot;STATION&quot;;
Station_2 : &quot;STATION&quot;;
Station_3 : &quot;STATION&quot;;
Transport : &quot;TRANSPORT&quot;;
Conv_busy : BOOL ;
END_VAR
VAR_TEMP
trans_1 : BOOL ;
trans_2 : BOOL ;
trans_3 : BOOL ;
trans : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE = Convocação Station_1(Estação 1)
A &quot;INITIALIZATION&quot;;
= L 1.0;
BLD 103;
A &quot;INI1&quot;;
= L 1.1;
BLD 103;
A &quot;S1&quot;;
= L 1.2;
BLD 103;
A &quot;CLOCK_BIT_FAST&quot;;
= L 1.3;
BLD 103;
A &quot;CLOCK_BIT_SLOW&quot;;
= L 1.4;
BLD 103;
CALL #Station_1 (
Initial := L 1.0,
Proxy_switch := L 1.1,
Acknowledge := L 1.2,
Clock_bit_q := L 1.3,
Clock_bit_s := L 1.4,
LED := &quot;H1&quot;,
Transp_req := #trans_1,
Conv_busy := #Conv_busy);
NOP 0;
// (Continua na próxima página)
Solução do Exercício 6.2b: Extensão para 3 Estações
(FB10, parte 2)
NETWORK
TITLE = Convocação Station_2 (Estação 2)
A &quot;INITIALIZATION&quot;;
= L 1.0;
BLD 103;
A &quot;INI2&quot;;
= L 1.1;
BLD 103;
A &quot;S2&quot;;
= L 1.2;
BLD 103;
A &quot;CLOCK_BIT_FAST&quot;;
= L 1.3;
BLD 103;
A &quot;CLOCK_BIT_SLOW&quot;;
= L 1.4;
BLD 103;
CALL #Station_2 (
Initial := L 1.0,
Proxy_switch := L 1.1,
Acknowledge := L 1.2,
Clock_bit_q := L 1.3,
Clock_bit_s := L 1.4,
LED := &quot;H2&quot;,
Transp_req := #trans_2,
Conv_busy := #Conv_busy);
NOP 0;
NETWORK
TITLE = Convocação Station_3 (Estação 3)
A &quot;INITIALIZATION&quot;;
= L 1.0;
BLD 103;
A &quot;INI3&quot;;
= L 1.1;
BLD 103;
A &quot;S3&quot;;
= L 1.2;
BLD 103;
A &quot;CLOCK_BIT_FAST&quot;;
= L 1.3;
BLD 103;
A &quot;CLOCK_BIT_SLOW&quot;;
= L 1.4;
BLD 103;
CALL #Station_3 (
Initial := L 1.0,
Proxy_switch := L 1.1,
Acknowledge := L 1.2,
Clock_bit_q := L 1.3,
Clock_bit_s := L 1.4,
LED := &quot;H3&quot;,
Transp_req := #trans_3,
Conv_busy := #Conv_busy);
NOP 0;
// (Continua na próxima página)
Solução do Exercício 6.2b: Extensão para 3 Estações
(FB10, parte 3)
NETWORK
TITLE = Lincando as saídas às entradas
O #trans_1;
O #trans_2;
O #trans_3;
= #trans;
NETWORK
TITLE = Convocação Transport (Transporte)
A &quot;INITIALIZATION&quot;;
= L 1.0;
BLD 103;
A &quot;LB1&quot;;
= L 1.1;
BLD 103;
A &quot;S4&quot;;
= L 1.2;
BLD 103;
A #trans;
= L 1.3;
BLD 103;
A &quot;CLOCK_BIT_FAST&quot;;
= L 1.4;
BLD 103;
CALL #Transport (
Initial := L 1.0,
L_Barrier := L 1.1,
Acknowledge := L 1.2,
Transp_req := L 1.3,
Clock_Bit := L 1.4,
LED := &quot;H4&quot;,
Conv_right := &quot;K1_CONVR&quot;,
Conv_left := &quot;K2_CONVL&quot;);
NOP 0;
END_FUNCTION_BLOCK
Solução do Exercício 6.2b: Extensão para 3 Estações (OB1)
ORGANIZATION_BLOCK &quot;CYCLE&quot;
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ;//Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ;//1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ;//1 (Prioridade do 1 é baixa)
OB1_OB_NUMBR : BYTE ;//1 (Bloco de Organização 1, OB1)
OB1_RESERVED_1 : BYTE ;//Reservado para o sistema
OB1_RESERVED_2 : BYTE ;// Reservado para o sistema
OB1_PREV_CYCLE : INT ;//Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ;//Mínimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ;//Máximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ;//Data e horário da partida do OB1
END_VAR
BEGIN
NETWORK
TITLE = Convocação Assembly Line (Linha de Montagem)
CALL &quot;ASSEMBLY_LINE&quot; , &quot;ASSEMBLY_LINE_DB&quot; ;
NOP 0;
END_ORGANIZATION_BLOCK
Solução do Exercício 7.2: Testando o Bloco de Dados
(SFC 24: somente S7 400)
FUNCTION FC 72 : INT
TITLE = Exercício 7.2: Testando o Bloco de Dados (somente S7-400)
VERSION : 0.1
VAR_INPUT
DB_NUM : WORD ;
END_VAR
VAR_TEMP
I_DB_Length : WORD ;
I_RET_VAL : INT ;
I_Write_Protect : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE = Testando DB
//somente para S7-400
CALL SFC 24 (
DB_NUMBER:= #DB_NUM,
RET_VAL := #I_RET_VAL,
DB_LENGTH:= #I_DB_Length,
WRITE_PROT:= #I_Write_Protect);
L #I_RET_VAL;
L W#16#0;
==I ;
JC DBOK; // DB disponível na memória de trabalho
TAK ;
L W#16#80A1;
==I ;
JC NODB; // DB não disponível na CPU
TAK ;
L W#16#80B1;
==I ;
JC NODB; // DB disponível na memória de trabalho
TAK ;
L W#16#80B2;
==I ;
JC DBLM; // DB somente na memória de carga
NODB: L -1;
T #RET_VAL; // DB não disponível na CPU
BEU ;
DBLM: L 1;
T #RET_VAL; // DB somente na memória de carga
BEU ;
DBOK: L 0;
T #RET_VAL; // DB disponível memória de trabalho
END_FUNCTION
Solução do Exercício 7.3: Criando um DB (SFC 22)
ORGANIZATION_BLOCK OB 100
TITLE = Exercício 7.3: Criando um DB
//Versão para S7-400
VERSION : 0.1
VAR_TEMP
OB100_EV_CLASS : BYTE ;//16#13, Evento Classe 1, entrando estado evento, evento // logado no buffer de diagnóstico
OB100_STRTUP : BYTE ;//16#81/82/83/84 Método de partida (startup)
OB100_PRIORITY : BYTE ;//27 (Prioridade de 1 é mais baixa)
OB100_OB_NUMBR : BYTE ;//100 (Bloco de Organização 100, OB100)
OB100_RESERVED_1 : BYTE ;//Reservado para sistema
OB100_RESERVED_2 : BYTE ;//Reservado para sistema
OB100_STOP : WORD ;//Evento que causou stop da CPU (16#4xxx)
OB100_STRT_INFO : DWORD ;//Informação de como partiu o sistema
OB100_DATE_TIME : DATE_AND_TIME ;//Data e hora que o OB100 partiu
END_VAR
BEGIN
NETWORK
TITLE = Criando o DB10
CALL SFC 22(
LOW_LIMIT := W#16#A,// identificação com decimal 10 (DB10)
UP_LIMIT := W#16#A,// &quot;
COUNT := W#16#28,// identificação com decimal 40 ( 40 Bytes)
RET_VAL := MW 0,
DB_NUMBER := QW 38);
END_ORGANIZATION_BLOCK
Solução do Exercício 7.4: Copiando DB da Memória de Carga para de Trabalho (SFC 20)
ORGANIZATION_BLOCK OB 1
TITLE = Exercício 7.4: Copiando DB da Memória de Carga para de Trabalho
//Versão para S7-400
VERSION : 2.10
VAR_TEMP
OB1_EV_CLASS : BYTE ;//Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ;//1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ;//1 (Prioridade do 1 é baixa)
OB1_OB_NUMBR : BYTE ;//1 (Bloco de Organização 1, OB1)
OB1_RESERVED_1 : BYTE ;//Reservado para o sistema
OB1_RESERVED_2 : BYTE ;// Reservado para o sistema
OB1_PREV_CYCLE : INT ;//Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ;//Mínimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ;//Máximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ;//Data e horário da partida do OB1
END_VAR
BEGIN
NETWORK
TITLE =
A I 28.0;
FP M 0.0;
JNB _001;
CALL SFC 20 (
SRCBLK := P#DB20.DBX 0.0 BYTE 40,
RET_VAL := QW 38,
DSTBLK := P#DB10.DBX 0.0 BYTE 40);
_001: NOP 0;
END_ORGANIZATION_BLOCK
Solução do Exercício 7.5: Initializando um DB com &quot;0&quot;
(SFC 21: FILL)
FUNCTION FC 75 : BOOL
TITLE = Exercício 7.5: Initializando um DB com &quot;0&quot; (somente S7-400)
VERSION : 0.1
VAR_INPUT
DB_NUM : WORD ;
INI : BYTE ;
END_VAR
VAR_TEMP
I_RET_VAL : INT ;
I_DB_Length : WORD ;
I_WRITE_PROT : BOOL ;
I_ANY : ANY ;
DB_No : WORD ;
I_INI : BYTE ;
I_RET_VAL1 : INT ;
END_VAR
BEGIN
NETWORK
TITLE =
//Verifica se o DB está na memória de trabalho
CALL &quot;TEST_DB&quot; (
DB_NUMBER := #DB_NUM,
RET_VAL := #I_RET_VAL,
DB_LENGTH := #I_DB_Length,
WRITE_PROT := #I_WRITE_PROT);
L #I_RET_VAL;
L W#16#0;
==I ; // DB na memória de trabalho
AN #I_WRITE_PROT;
JC OK;
CLR ; // Não é possível inicialização
= #RET_VAL; // Returna FALSE
BEU ;
OK: LAR1 P##I_ANY; // Atribui variável temp. ANY
L B#16#10; // Identificador para ANY
T LB [AR1,P#0.0]; // para Byte-Offset 0
L B#16#2; // Identificador para tipo de dado BYTE
T LB [AR1,P#1.0]; // para Byte-Offset 1
L #I_DB_Length; // carrega comprimento do DB em bytes
T LW [AR1,P#2.0]; // para Byte-Offset 2
L #DB_NUM; // carrega número do DB
T LW [AR1,P#4.0]; // para Byte-Offset 4
L P#DBX 0.0; // carrega ponteiro para DBX0.0
T LD [AR1,P#6.0]; // para Byte-Offset 6
L #INI; // Byte de inicialização
T #I_INI; // na variável temp.
CALL SFC 21 (
BVAL := #I_INI,// somente possível com variável temp.
RET_VAL := #I_RET_VAL,
BLK := #I_ANY);
SET ;
= #RET_VAL;
BE ;
END_FUNCTION
Solução do Exercício 7.6: Escrevendo uma Menssagem no Buffer de Diagnóstico (SFC 52)
FUNCTION FC 76 : VOID
TITLE =
//Exercício 7.6: Escrevendo uma Menssagem no Buffer de Diagnóstico (SFC 52)
//Versão para S7-300 SM 16 Bit
VERSION : 0.0
VAR_TEMP
I_RET_VAL : INT ;
info1 : WORD ;
info2 : DWORD ;
END_VAR
BEGIN
NETWORK
TITLE =
L W#16#8;
T #info1;
L W#16#1;
T #info2;
CALL &quot;WR_USMSG&quot; (
SEND:= TRUE,
EVENTN:= W#16#9B0A,
INFO1:= #info1,
INFO2 := #info2,
RET_VAL := #I_RET_VAL);
END_FUNCTION
Solução do Exercício 7.7: Bloco Contador com &quot;Debouncing de Contato&quot;
FUNCTION_BLOCK FB 71
TITLE = Exercício 7.7: Bloco Contador com &quot;Debouncing de Contato&quot;
//Versão para S7-300 SM 16 bit
VERSION : 0.1
VAR_INPUT
CU : BOOL ;
R : BOOL ;
PV : INT ;
PT : TIME ;
END_VAR
VAR_OUTPUT
Q : BOOL ;
CV : INT ;
END_VAR
VAR
Pulse_Counter : &quot;CTU&quot;;
Pulse_Time : &quot;TON&quot;;
END_VAR
VAR_TEMP
Edge_memory : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =
A #Edge_memory;
= L 1.0;
BLD 103;
A #R;
= L 1.1;
BLD 103;
A( ;
A #CU;
= L 1.2;
BLD 103;
CALL #Pulse_Time (
IN := L 1.2,
PT := #PT,
Q := #Edge_memory);
A BR;
) ;
JNB _001;
CALL #Pulse_Counter (
CU := L 1.0,
R := L 1.1,
PV := #PV,
Q := #Q,
CV := #CV);
_001: NOP 0;
END_FUNCTION_BLOCK
Solução do Exercício 8.1: Manipulação de Erro no FC43 (parte 1)
FUNCTION FC 81 : INT
TITLE =Exercise 8.1: Calculation of sum, mean value with error handling
// Solution for S7-300/400
VERSION : 0.0
VAR_INPUT
Measured_values : ANY ;
END_VAR
VAR_OUTPUT
Sum : REAL ;
Mean_value : REAL ;
END_VAR
VAR_TEMP
Num_Elements : WORD ;
L_Counter : WORD;
DB_No : WORD ;
Sum_1 : REAL ;
sfc_ret_val : INT ;
sfc_prgflt : DWORD ;
sfc_accflt : DWORD ;
I_BR : BOOL ;//usuário bit BR
END_VAR
BEGIN
NETWORK
TITLE =
L P##Measured_values; // Carrega ponteiro de área em pont. &quot;ANY&quot;
LAR1 ; // Ponteiro de área em AR1
L B [AR1,P#1.0]; // Lê identificador de tipo de dado
L 8;// Carrega identificador REAL (16#08)
==I ;
L -1; // Identificador para tipo de dado difente de REAL
JCN ERRO; // Salta se tipo de dado diferente deREAL
// Os seguintes eventos são mascarados:
// Número de falha de um DB Global
// Número de falha de um DB Instance,
// Erro de área na leitura,
// Erro de comprimento de área na leitura
CALL SFC 36 (
PRGFLT_SET_MASK := DW#16#40C0014,
ACCFLT_SET_MASK := DW#16#0,
RET_VAL := #sfc_ret_val,
PRGFLT_MASKED := #sfc_prgflt,
ACCFLT_MASKED := #sfc_accflt);
L W [AR1,P#2.0]; // Carrega número de elementos do array
T #Num_Elements;// Inicializa contador de loop
L W [AR1,P#4.0]; // Carrega número do DB ou 0
T #DB_No; // Se: DB_No=0 então: OPN DB[DB_No]=NOP
OPN DB [#DB_No]; // Erro Run-time está agora mascarado
L D [AR1,P#6.0]; // Carrega ponteiro de área para endereço atual
LAR1 ; // no AR1, erro!! Se identificador de área &quot;DI&quot;
L 0.000000e+000; // 0 para Accu1 (Sum =0.0)
L #Num_Elements; // Contador para ACCU1; Sum=0 para ACCU2
BEGN: T #L_Counter; // Seta L_Counter
TAK ; // Sum no ACCU1
L D [AR1,P#0.0]; // Elemento array no ACCU1, Sum no ACCU2
+R ; // Sum no ACCU1
+AR1 P#4.0; // Incrementa AR1 de 4 unidades
// (Continua na próxima página)
Solução do Exercício 8.1: Manipulação de Erro no FC43 (parte 2)
L #L_Counter; // L_Counter no ACCU1, Sum no ACCU2
LOOP BEGN; // Decrementa e salta
TAK ; // Sum no ACCU1
T #Sum_1; // Sum??? para #Sum_1
// Avaliação de erro
CALL SFC 38 (
PRGFLT_QUERY := DW#16#40C0014,
ACCFLT_QUERY := DW#16#0,
RET_VAL := #sfc_ret_val,
PRGFLT_CLR := #sfc_prgflt,
ACCFLT_CLR := #sfc_accflt);
L #sfc_prgflt; // Verifica falha no DB
L DW#16#40C0000;
AD ; // Bitwise &quot;Roundup&quot;
L -2; // Código de erro para DB não existe
JN ERRO; // salta se erro
L #sfc_prgflt; // Verifica para erro de área ou comprimento de área
L DW#16#14;
AD ;
L -4; // Identificador para erro de área ou comprimento de área
JN ERRO; // Salta se erro
//
// nenhum erro ocurrido, procede com processamento &quot;normal&quot;
L #Sum_1;
T #Sum;// Atribui parâmetro #Sum
L #Num_Elements; // Sum no ACCU2, número no ACCU1
DTR ; // Inteiro não sinalizado (16 Bit) para REAL
/R ; // Valor médio no ACCU1
T #Mean_value; // Valor médio para #Mean_value
SET ; // Seta bit BR em 1
= #I_BR ;
L 0 ;// Todos os identificadores O.K.
T RET_VAL;
JU DMSK; // Salta para desmascaramento de erro síncrono
//
// Avaliação de erro
//
ERRO: CLR ; // Instruções no caso do erro RLO=0
= #I_BR ; // BR =0
T #RET_VAL; // Transfere código de erro para RET_VAL
L L#-1; // Carrega número Real inválido
T #Sum;
T #Mean_value;
DMSK: NOP 0; // Demascara falha síncrona
CALL SFC 37 (
PRGFLT_RESET_MASK := DW#16#40C0014,
ACCFLT_RESET_MASK := DW#16#0,
RET_VAL := #sfc_ret_val,
PRGFLT_MASKED := #sfc_prgflt,
ACCFLT_MASKED := #sfc_accflt);
CLR ; // Obriga o first check, RLO = 0
A #I_BR ; // Copia bit BR do usuário
SAVE ; // Coloca bit BR no sistema
BEU ;
END_FUNCTION
Solução do Exercício 9.2: Contagem de Peças Terminadas (FB1, parte 1)
FUNCTION_BLOCK &quot;Station&quot;
TITLE = Controlando uma estação de trabalho
AUTHOR : PT41
FAMILY : A2_0
NAME : ST7PRO2
VERSION : 0.0
VAR_INPUT
Initial : BOOL ;
Proxy_switch : BOOL ;
Acknowledge : BOOL ;
Clock_bit_q : BOOL ;
Clock_bit_s : BOOL ;
END_VAR
VAR_OUTPUT
LED : BOOL ;
Transp_req : BOOL ;
END_VAR
VAR_IN_OUT
Conv_busy : BOOL ;
END_VAR
VAR
State : STRUCT
Process_piece : BOOL ;
Piece_finished : BOOL ;
Place_piece_on_conv : BOOL ;
Wait_for_piece : BOOL ;
Take_piece_from_conv : BOOL ;
END_STRUCT ;
END_VAR
BEGIN
NETWORK
TITLE = Inicialização
//Por meio da entrada &quot;Initial&quot; o estado básico #Process_piece é setado
A #Initial;
S #State.Process_piece;
R #State.Piece_finished;
R #State.Place_piece_on_conv;
R #State.Wait_for_piece;
R #State.Take_piece_from_conv;
R #Conv_busy;
NETWORK
TITLE = Estado: Process_piece
//Neste estado a peça bruta é processada. O processamento é terminado
//quando o operador reconhece o término da peça bruta
//por meio do botão &quot;S1&quot;
AN #State.Process_piece;
JC Pfin;
S #LED; //O fica ligado LED permanentemente ;
R #Transp_req;
A #Acknowledge; //quando o operador reconheces,
R #State.Process_piece; //uma mudança de estado ocorre;
R #LED;
S #State.Piece_finished;
// (Continua na próxima página)
Solução do Exercício 9.2: Contagem de Peças Terminadas (FB1, parte 2)
NETWORK
TITLE = Estado: Piece_finished
//Neste estado #Piece_finished o operador espera pela permissão
//para colocar a peça bruta na C. Transp.. O sinal #Conv_busy indica,
//se a C. Transp. está ocupada ou não. Quando a C. Transp. está livre, mudança de estado
//para o estado Place_piece_on_conv é realizada.
Pfin: AN #State.Piece_finished;
JC PpCo;
A #Clock_bit_s; //pisca lento;
= #LED;
AN #Conv_busy; //quando a C. Transp. está livre,
S #Conv_busy; //este é marcado ocupado
R #LED; //uma mudança de estado é realizada;
R #State.Piece_finished;
S #State.Place_piece_on_conv;
NETWORK
TITLE = Estado: Place_piece_on_conv
PpCo: AN #State.Place_piece_on_conv;
JC Wait;
A #Clock_bit_q; //pisca rápido;
= #LED;
A #Proxy_switch; //Quando a peça é colocada na correia,
S #Transp_req; //o transportador parte,
R #LED; //e o LED é apagado;
A #Transp_req; //Quando a correia é movida,
AN #Proxy_switch; //a peça bruta sai da frente do sensor de proximidade,
R #State.Place_piece_on_conv; //uma mudança de estado ocorre;
S #State.Wait_for_piece;
NETWORK
TITLE = Estado: Wait_for_piece
//Espera por uma nova peça bruta. A chegada de uma nova peça é indicada pelo
//sensor de proximidade da correia
Wait: AN #State.Wait_for_piece;
JC TpCo;
R #LED; //o LED é desligado;
A #Proxy_switch; //uma nova peça bruta chega,
R #Transp_req; //a correia é parada,
R #State.Wait_for_piece; //e uma mudança de estado ocorre;
S #State.Take_piece_from_conv;
NETWORK
TITLE = Estado: Take_piece_from_conv
//Neste estado a nova peça bruta é pega da correia para
//a estação de trabalho
TpCo: AN #State.Take_piece_from_conv;
JC END;
A #Clock_bit_q; //o LED pisca rapidamente
= #LED; //
AN #Proxy_switch; //quando a peça bruta é pega da correia,
R #Conv_busy; //a C. Transp. fica livre,
R #LED; //o LED é desligado
R #State.Take_piece_from_conv; //e uma mudança de estado ocorre;
S #State.Process_piece;
END: BEU ;
END_FUNCTION_BLOCK
Solução do Exercício 9.2: Contagem de Peças Terminadas (FB2, parte 3)
FUNCTION_BLOCK &quot;Transport&quot;
TITLE = Controlando a Correia Transportadora
VERSION : 0.1
VAR_INPUT
Initial : BOOL ;
L_Barrier : BOOL ;
Acknowledge : BOOL ;
Transp_req : BOOL ;
Clock_Bit : BOOL ;
END_VAR
VAR_OUTPUT
LED : BOOL ;
Conv_right : BOOL ;
Conv_left : BOOL ;
Count_Value :INT ;
END_VAR
VAR
State : STRUCT
Waiting : BOOL ;
Conv_right : BOOL ;
Assembly : BOOL ;
Conv_left : BOOL ;
END_STRUCT ;
Count: &quot;CTU&quot;;// SFB 0 deve ser incluso
END_VAR
BEGIN
NETWORK
TITLE = Inicialização
A #Initial;
S #State.Waiting;
R #State.Conv_right;
R #State.Assembly;
R #State.Conv_left;
CALL #Count (R:= #Initial,
CV := #Count_Value);
NETWORK
TITLE = Estado: &quot;Waiting&quot;
//A C. Transp. espera pela peça terminada neste estado.
AN #State.Waiting;
JC RIGH;
R #Conv_right;
R #Conv_left;
R #LED;
A #Transp_req;
R #State.Waiting;
S #State.Conv_right;
// (Continua na próxima página)
Solução do Exercício 9.2: Contagem de Peças Terminadas (FB2, parte 4)
NETWORK
TITLE = Estado: Conv_right
//Este estado descreve o transporte de peças terminadas na direção
//da montagem final
RIGH: AN #State.Conv_right;
JC FINM;
S #Conv_right;
A #Clock_Bit;
= #LED;
AN #L_Barrier;
R #Conv_right;
R #State.Conv_right;
S #State.Assembly;
AN #L_Barrier;
= #L_Barrier;
CALL #Count (CU := #L_Barrier,
CV:= #Count_Value);
NETWORK
TITLE = Estado: Assembly
//Neste estado, a peça terminada é removida e uma nova peça bruta é deixada
//na correia. Após isto, o transporte da peça bruta na direção da estação
//de processamento desocupada parte com S4.
//
FINM: AN #State.Assembly;
JC LEFT;
S #LED;
A #Acknowledge;
R #LED;
R #State.Assembly;
S #State.Conv_left;
NETWORK
TITLE = Estado: Conv_left
//Neste estado, o transporte da peça bruta para estação ocorre, que entrega
//a peça terminada.
LEFT: AN #State.Conv_left;
JC ENDE;
S #Conv_left;
A #Clock_Bit;
= #LED;
AN #Transp_req;
R #Conv_left;
R #State.Conv_left;
S #State.Waiting;
ENDE: BEU ;
END_FUNCTION_BLOCK
Solução do Exercício 9.2: Contagem de Peças Terminadas (FB10, parte 5)
FUNCTION_BLOCK FB 10
TITLE =
VERSION : 0.1
VAR
Station_1 : &quot;Station&quot;;
Station_2 : &quot;Station&quot;;
Station_3 : &quot;Station&quot;;
Transport : &quot;Transport&quot;;
Conv_busy : BOOL ;
END_VAR
VAR_TEMP
Trans_1 : BOOL ;
Trans_2 : BOOL ;
Trans_3 : BOOL ;
Trans : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =Station_1
CALL #Station_1 (
Initial := &quot;INITIALIZATION&quot;,
Proxy_Switch := &quot;INI1&quot;,
Acknowledge := &quot;S1&quot;,
Clock_Bit_q := &quot;CLOCK_BIT_FAST&quot;,
Clock_Bit_s := &quot;CLOCK_BIT_SLOW&quot;,
LED := &quot;H1&quot;,
Transp_req := #Trans_1,
Conv_busy := #Conv_busy);
NETWORK
TITLE =Station_2
CALL #Station_2 (
Initial :=&quot;INITIALIZATION&quot;,
Proxy_Switch := &quot;INI2&quot;,
Acknowledge := &quot;S2&quot;,
Clock_Bit_q := &quot;CLOCK_BIT_FAST&quot;,
Clock_Bit_s := &quot;CLOCK_BIT_SLOW&quot;,
LED := &quot;H2&quot;,
Transp_req := #Trans_2,
Conv_busy := #Conv_busy);
NETWORK
TITLE =Station_3
CALL #Station_3 (
Initial := &quot;INITIALIZATION&quot;,
Proxy_Switch := &quot;INI3&quot;,
Acknowledge := &quot;S3&quot;,
Clock_Bit_q := &quot;CLOCK_BIT_FAST&quot;,
Clock_Bit_s := &quot;CLOCK_BIT_SLOW&quot;,
LED := &quot;H3&quot;,
Transp_req := #Trans_3,
Conv_busy := #Conv_busy);
// (Continua na próxima página)
Solução do Exercício 9.2: Contagem de Peças Terminadas (FB10, parte 6)
NETWORK
TITLE = Lógica: Transp_req
//Formação lógica para #Transp_req
O #Trans_1;
O #Trans_2;
O #Trans_3;
= #Trans;
NETWORK
TITLE = Transport
CALL #Transport (
Initial := &quot;INITIALIZATION&quot;,
L_Barrier := &quot;LB1&quot;,
Acknowledge := &quot;S4&quot;,
Transp_req := #Trans,
Clock_Bit := &quot;CLOCK_BIT_FAST&quot;,
LED := &quot;H4&quot;,
Conv_right := &quot;K1_CONVR&quot;,
Conv_left := &quot;K2_CONVL&quot;);
L #Transport.Count_Value ;
ITD ;// Expande para DINT
DTB ;// Converte para BCD
TQW12 ;
END_FUNCTION_BLOCK
DATA_BLOCK &quot;ASSEMBLY_LINE_DB&quot;
VERSION : 0.1
&quot;ASSEMBLY_LINE&quot;
BEGIN
END_DATA_BLOCK
ORGANIZATION_BLOCK OB 1
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ;//Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ;//1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ;//1 (Prioridade do 1 é baixa)
OB1_OB_NUMBR : BYTE ;//1 (Bloco de Organização 1, OB1)
OB1_RESERVED_1 : BYTE ;//Reservado para o sistema
OB1_RESERVED_2 : BYTE ;// Reservado para o sistema
OB1_PREV_CYCLE : INT ;//Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ;//Mínimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ;//Máximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ;//Data e horário da partida do OB1
END_VAR
BEGIN
NETWORK
TITLE =
CALL FB 10 , DB 10 ;
END_ORGANIZATION_BLOCK
Solução do Exercício 10.2: Comunicação com os SFBs GET/PUT (parte 1)
// Transfere os blocos compilados para a S7-400
DATA_BLOCK DB 14
VERSION : 0.1
&quot;GET&quot;
BEGIN
END_DATA_BLOCK
DATA_BLOCK DB 15
VERSION : 0.1
&quot;PUT&quot;
BEGIN
END_DATA_BLOCK
ORGANIZATION_BLOCK OB 1
TITLE = S7400 escreve no S7-300 e lê do S7-300
AUTHOR : PT41
FAMILY : A2_0
NAME : ST7PRO2
VERSION : 0.0
VAR_TEMP
OB1_EV_CLASS : BYTE ;//Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ;//1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ;//1 (Prioridade do 1 é baixa)
OB1_OB_NUMBR : BYTE ;//1 (Bloco de Organização 1, OB1)
OB1_RESERVED_1 : BYTE ;//Reservado para o sistema
OB1_RESERVED_2 : BYTE ;// Reservado para o sistema
OB1_PREV_CYCLE : INT ;//Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ;//Mínimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ;//Máximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ;//Data e horário da partida do OB1
NDR_FLAG_14 : BOOL ;
ERROR_FLAG_14 : BOOL ;
DONE_FLAG_15 : BOOL ;
ERROR_FLAG_15 : BOOL ;
STATUS_WORD_14 : WORD ;
STATUS_WORD_15 : WORD ;
END_VAR
BEGIN
NETWORK
TITLE =&quot;SFB_GET&quot;
CALL SFB 14 , DB 14 (
REQ := I 28.0,
ID := W#16#1,
NDR := #NDR_FLAG_14,
ERROR := #ERROR_FLAG_14,
STATUS := #STATUS_WORD_14,
ADDR_1 := P#I 0.0 BYTE 1,
ADDR_2 := P#I 4.0 WORD 1,
RD_1 := P#Q 40.0 BYTE 1,
RD_2 := P#Q 42.0 WORD 1);
// (Continua na próxima página)
Solução do Exercício 10.2: Comunicação com os SFBs GET/PUT (parte 2)
NETWORK
TITLE =&quot;SFB_PUT&quot;
CALL SFB 15 , DB 15 (
REQ := I 28.1,
ID := W#16#1,
DONE := #DONE_FLAG_15,
ERROR := #ERROR_FLAG_15,
STATUS := #STATUS_WORD_15,
ADDR_1 := P#Q 12.0 WORD 1,
SD_1 := P#I 30.0 WORD 1);
NETWORK
TITLE =STATUS_WORD para QW38
A( ;
O #NDR_FLAG_14;
O #ERROR_FLAG_14;
) ;
JCN _002;
L #STATUS_WORD_14;
T QW 38;
_002: NOP 0;
NETWORK
TITLE =
A( ;
O #DONE_FLAG_15;
O #ERROR_FLAG_15;
) ;
JCN _001;
L #STATUS_WORD_15;
T QW 38;
_001: NOP 0;
NETWORK
TITLE =
// Caso contrário FFFF para QW38
A I 28.0;
BEC ;
A I 28.1;
BEC ;
L W#16#FFFF;
T QW 38;
END_ORGANIZATION_BLOCK
Solução do Exercício 10.3: Comunicação com os SFBs START/STOP (parte 1)
// Transfere os blocos compilados para o S7-400
DATA_BLOCK DB 19
VERSION : 0.1
&quot;START&quot;
BEGIN
END_DATA_BLOCK
DATA_BLOCK DB 20
VERSION : 0.1
&quot;STOP&quot;
BEGIN
END_DATA_BLOCK
ORGANIZATION_BLOCK OB 1
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ;//Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ;//1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ;//1 (Prioridade do 1 é baixa)
OB1_OB_NUMBR : BYTE ;//1 (Bloco de Organização 1, OB1)
OB1_RESERVED_1 : BYTE ;//Reservado para o sistema
OB1_RESERVED_2 : BYTE ;// Reservado para o sistema
OB1_PREV_CYCLE : INT ;//Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ;//Mínimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ;//Máximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ;//Data e horário da partida do OB1
DONE_FLAG_20 : BOOL ;
ERROR_FLAG_20 : BOOL ;
DONE_FLAG_19 : BOOL ;
ERROR_FLAG_19 : BOOL ;
STATUS_WORD_20 : WORD ;
STATUS_WORD_19 : WORD ;
END_VAR
BEGIN
NETWORK
TITLE =
//Entre com os caracteres &quot;P_PROGRAM&quot; em PI_NAME
L &apos;P_PR&apos;;
T MD 100;
L &apos;OGRA&apos;;
T MD 104;
L &apos;M&apos;;
T MB 108;
NETWORK
TITLE =&quot;SFB_STOP&quot;
CALL SFB 20 , DB 20 (
REQ := I 28.0,
DONE := #DONE_FLAG_20,
ERROR := #ERROR_FLAG_20,
STATUS := #STATUS_WORD_20);
// (Continua na próxima página)
Solução do Exercício 10.3: Comunicação com os SFBs START/STOP (parte 2)
NETWORK
TITLE =&quot;SFB_START&quot;
CALL SFB 19 , DB 19 (
REQ := I 28.1,
DONE := #DONE_FLAG_19,
ERROR := #ERROR_FLAG_19,
STATUS := #STATUS_WORD_19);
NETWORK
TITLE = STATUS_WORD para QW38
A( ;
O #DONE_FLAG_19;
O #ERROR_FLAG_19;
) ;
JCN _001;
L #STATUS_WORD_19;
T QW 38;
_001: NOP 0;
NETWORK
TITLE = STATUS_WORD para QW38
A( ;
O #DONE_FLAG_20;
O #ERROR_FLAG_20;
) ;
JCN _002;
L #STATUS_WORD_20;
T QW 38;
_002: NOP 0;
NETWORK
TITLE =
A I 28.2; // Caso contrário FFFF para QW38
BEC ;
A I 28.3;
BEC ;
L W#16#FFFF;
T QW 38;
END_ORGANIZATION_BLOCK