Inquiry
Form loading...
Estrutura do programa e características de vários PLC comuns da Siemens

Notícias

Estrutura do programa e características de vários PLC comuns da Siemens

08/12/2023
1. Estrutura do programa de alguns pequenos PLCs estrangeiros O programa do usuário destes CLPs consiste em programa principal, subprograma e programa de interrupção. Em cada ciclo de varredura, a CPU chama o programa principal uma vez. O programa principal pode chamar o subprograma, e o pequeno sistema de controle só pode ter o programa principal. O programa de interrupção é usado para responder rapidamente a eventos de interrupção. Quando ocorre um evento de interrupção, a CPU irá parar de executar o programa ou tarefa que está sendo processado naquele momento e executar o programa de interrupção escrito pelo usuário. Após executar o programa interrompido, continue a executar o programa ou tarefa suspensa. Suas sub-rotinas e programas de interrupção não possuem variáveis ​​locais e suas sub-rotinas não possuem parâmetros de entrada e saída. 2. Estrutura do programa Siemens S7-200 Entrada/saída de imagem de processo (I/Q), memória variável V, bit de memória interna M, temporizador T, contador C, etc. são variáveis ​​globais. A unidade organizacional do programa (POU) do S7-200 inclui programa principal, subprograma e programa de interrupção. Cada POU possui sua própria variável local de 64 bytes, que só pode ser utilizada em sua POU. Em contrapartida, variáveis ​​globais podem ser utilizadas em cada POU. A seguir estão as variáveis ​​locais que a sub-rotina pode usar: 1) TEMP (variável temporária) é uma variável armazenada temporariamente na área de dados local. A variável temporária definida é utilizada somente quando a POU é executada. Após a execução da POU, o valor da variável temporária não será salvo. 2) IN é o parâmetro de entrada fornecido pela POU que o chama. 3) OUT é o parâmetro de saída retornado à POU que o chama (resultado da execução da sub-rotina). 4)IN_OUT é input_ O valor inicial do parâmetro de saída é transferido para a sub-rotina pela POU que a chama, e o resultado da execução da sub-rotina é retornado para a POU que a chama com a mesma variável. Existem apenas variáveis ​​temporárias TEMP nas variáveis ​​locais do programa principal e do programa de interrupção. O subprograma com parâmetros de entrada e saída e variáveis ​​locais é de fácil realização de programação estruturada, o que é particularmente útil para fabricantes que produzem equipamentos ou linhas de produção semelhantes há muito tempo. Os programadores desses fabricantes escreveram um grande número de sub-rotinas gerais para cada componente ou função de processo do equipamento. Mesmo que você não conheça o código interno da sub-rotina, desde que conheça a função da sub-rotina e o significado dos parâmetros de entrada e saída, você pode "montar" rapidamente o programa de controle que atenda aos requisitos de diferentes usuários através a chamada entre programas. É como usar chips de circuitos integrados digitais para formar circuitos digitais complexos. Se a sub-rotina não tiver parâmetros de entrada e saída, não há uma interface clara entre ela e o programa que a chama, por isso é difícil realizar uma programação estruturada. Se uma sub-rotina não possui variáveis ​​locais, ela só pode trocar dados com o programa que a chama através de variáveis ​​globais, e somente variáveis ​​globais podem ser utilizadas dentro da sub-rotina. Ao migrar subprogramas e programas de interrupção para outros projetos, é necessário reorganizar as variáveis ​​globais que eles usam para garantir que não ocorram conflitos de endereço. Quando o programa é muito complexo e existem muitos subprogramas e programas de interrupção, a carga de trabalho desse tipo de reatribuição de endereço é muito grande. Se o subprograma e o programa de interrupção possuem variáveis ​​locais e utilizam apenas variáveis ​​locais em vez de variáveis ​​globais, porque não há conflito de endereço com outras POUs, o subprograma pode ser transplantado para outros projetos sem quaisquer alterações. 3. Estrutura do programa Siemens S7-300/400 O S7-300/400 divide os subprogramas em função (ou função) e bloco funcional. As funções do S7-300/400 são basicamente as mesmas do S7-200. Eles possuem parâmetros de entrada, saída e variáveis ​​temporárias. O valor de retorno nos dados locais da função é na verdade um parâmetro de saída. Eles não possuem uma área de armazenamento dedicada. Após a conclusão da função, os dados nas variáveis ​​temporárias não serão salvos. Você pode usar variáveis ​​globais para salvar os dados que precisam ser salvos após a execução da função, mas isso afetará a portabilidade da função. O bloco de função é um bloco de programa escrito pelo usuário com sua própria área de armazenamento dedicada (ou seja, bloco de dados de segundo plano). Os parâmetros de entrada e saída e as variáveis ​​estáticas do bloco de função são armazenados no bloco de dados de segundo plano especificado e as variáveis ​​temporárias são armazenadas na pilha de dados local. Cada vez que um bloco de função é chamado, um bloco de dados de segundo plano deve ser especificado. Após a execução do bloco de função, os dados do bloco de dados de segundo plano não serão perdidos, mas os dados da pilha de dados local não serão salvos. O bloco funcional adota o conceito de encapsulamento semelhante ao C++, que encapsula o programa e os dados juntos e possui boa portabilidade. O bloco de dados compartilhado do S7-300/400 pode ser usado por todos os blocos lógicos. 4. Estrutura do programa IEC61131-3 IEC61131-3 é o padrão de linguagem de programação do PLC. IEC61131-3 é o primeiro e único padrão de linguagem de programação na área de controle industrial do mundo. CEI 61131-3 possui três tipos de POUs: programa, bloco funcional e função. A função é uma POU com múltiplos parâmetros de entrada e um parâmetro de saída (valor de retorno). O nome do valor de retorno é igual ao nome da função. O tipo de dados do valor de retorno precisa ser definido. Ajustando o aparelho Funções com o mesmo valor de entrada sempre retornam o mesmo resultado. As funções podem chamar outras funções, mas não blocos funcionais ou programas. As variáveis ​​locais que podem ser definidas por funções incluem VAR e VAR_INPUT。 Um bloco funcional é uma POU com múltiplos parâmetros de entrada/saída e unidades de armazenamento internas. O valor do parâmetro de saída de um bloco funcional está relacionado ao valor de sua unidade de armazenamento interna. O bloco de função pode chamar outras funções Bloco ou função, mas o programa não pode ser chamado. Antes de chamar um bloco funcional, você deve declarar a instância do bloco funcional para cada chamada na POU onde o bloco funcional será chamado. O sistema operacional alocará uma área de armazenamento dedicada ao bloco funcional para cada chamada (Semelhante ao bloco de dados de segundo plano do S7-300/400). A função não precisa ser instanciada quando é chamada porque não possui área de armazenamento interno. O comportamento e a finalidade do programa são semelhantes aos do bloco funcional. O programa possui parâmetros de entrada e saída, podendo possuir área de armazenamento interno. Os programas geralmente contêm chamadas para funções e blocos funcionais. IEC61131-3 define diversas funções padrão e blocos funcionais. 5. Diferença entre a estrutura do programa S7-300/400 e IEC61131-3 1) A função do S7-300/400 pode ter vários parâmetros de saída e o valor de retorno também é um parâmetro de saída. A função IEC61131-3 possui apenas um valor de retorno. 2) A área de armazenamento especial para armazenar variáveis ​​locais no bloco funcional IEC61131-3 é alocada ao declarar a instância do bloco funcional. É opaco para os usuários e outras POUs não podem acessar diretamente a área de armazenamento. As variáveis ​​locais (excluindo variáveis ​​temporárias) do bloco funcional do S7-300/400 são armazenadas em seu bloco de dados de segundo plano. Outras POUs podem acessar variáveis ​​no bloco de dados de segundo plano. Se você precisar chamar o mesmo bloco de função várias vezes para controlar o mesmo tipo de objeto controlado, será necessário especificar um bloco de dados de segundo plano para cada chamada, mas há poucas variáveis ​​nesses blocos de dados de segundo plano, portanto, há um grande número de blocos de dados de segundo plano no projeto. Vários blocos de dados de segundo plano podem ser usados ​​para reduzir o número de blocos de dados de segundo plano. No entanto, um bloco funcional para gerenciar vários planos de fundo precisa ser adicionado. 3) As variáveis ​​locais do bloco funcional S7-300/400 incluem variáveis ​​temporárias e variáveis ​​estáticas. A variável interna Var do bloco funcional IEC61131-3 é equivalente à variável estática do S7-300/400. 4) O S7-300/400 divide a área de dados em blocos de dados para uso. O tamanho do bloco de dados está relacionado ao tipo de dados e ao número de variáveis ​​definidas no bloco de dados. IEC61131-3 não possui conceito de bloco de dados.