Programação PLC para Talha Elétrica (S7-1200 em Ladder e SCL)
Programação de PLC para Talha Elétrica (S7-1200 na prática) Este artigo utiliza o Siemens S7-1200 (CPU 1212C DC/DC/DC) como controlador central, com o ambiente de desenvolvimento TIA Portal V17 e programação mista em LAD (Diagrama de Escadas) + SCL (Texto Estruturado), implementando o controlo lógico de subida/descida/deslocamento lateral da talha elétrica, proteção de sobrecarga, proteção de fim de curso, interbloqueio de paragem de emergência, comutação remoto/manípulo, autodiagnóstico de falhas e outras funções. O programa completo inclui 4 blocos FC, 1 bloco DB e 1 ciclo principal OB1, podendo ser importado diretamente para projetos reais.
O controlo tradicional de talhas elétricas tem sido dominado há muito pelo conjunto "controlador de cames + relés + contactores", com diagramas elétricos compostos por dezenas de relés intermédios e relés temporizadores, o que dificulta a deteção de avarias e impede a integração em sistemas de informação fabril. Com o avanço da Indústria 4.0, cada vez mais fábricas exigem a ligação dos equipamentos de elevação a sistemas MES/SCADA, permitindo monitorização do estado dos equipamentos, recolha de dados operacionais e alerta precoce de falhas. A substituição da lógica de relés por PLC é uma tendência inevitável. Este artigo baseia-se na experiência real de um projeto entregue pela Kelude Indústrias Pesadas numa fábrica de peças automotivas (controlo centralizado de 68 talhas elétricas), apresentando de forma completa o processo de programação do PLC para talhas elétricas, incluindo a tabela de atribuição de IOs, a lógica em diagrama de escadas, o código de tratamento de falhas em SCL, o planeamento dos ecrãs de monitorização HMI e todo o fluxo de transferência e depuração do programa.
Configuração de Hardware e Atribuição de IOs
1.1 Seleção de Hardware
| Equipamento | Modelo | Quantidade | Observação |
|---|---|---|---|
| PLC CPU | S7-1200 1212C DC/DC/DC | 1 | 6ES7 212-1AE40-0XB0,8DI/6DO |
| Sinal Digital Módulo de Expansão | SM 1223 DI 8×24VDC / DO 8×24VDC | 1 | 6ES7 223-1BH32-0XB0 |
| Sinal Analógico Módulo de Expansão | SM 1231 AI 4×13bit | 1 | 6ES7 231-4HD32-0XB0,4~20mA |
| IHM Tela Touch Screen | KTP400 Basic PN | 1 | 6AV6 647-0AD11-3AX0,4.3Polegada |
| Relé Intermediário | RIM 24VDC 2CO | 6 | PLC DOContactor Isolamento de Bobina |
| Fonte Chaveada | EDR-120-24 | 1 | AC220VDC24V 5A |
1.2 Tabela de Atribuição de I/O
| Endereço | Símbolo | Função | Tipo | Descrição |
|---|---|---|---|---|
| %I0.0 | SB1_UP | Botão de Subida | DI | Subida pelo Controle, Normalmente Aberto (NA) |
| %I0.1 | SB2_DN | Descida Botão de Subida | DI | Controle Remoto Descida, Normalmente Aberto (NA) |
| %I0.2 | SB3_LT | Botão de Deslocamento à Esquerda | DI | Deslocamento à Esquerda pelo Controle, Normalmente Aberto (NA) |
| %I0.3 | SB4_RT | Botão de Deslocamento à Direita | DI | Deslocamento à Direita pelo Controle, Normalmente Aberto (NA) |
| %I0.4 | SQ1_UL | Fim de Curso Superior | DI | Chave de Posição, Normalmente Fechado (NF) |
| %I0.5 | SQ2_DL | limite inferior Fim de Curso Superior | DI | Chave de Posição, Normalmente Fechado (NF) |
| %I0.6 | SB0_EST | Botão de Parada de Emergência | DI | Contato NF,0=Acionamento |
| %I0.7 | FR_OL | Relé Térmico | DI | Relé Térmico, Normalmente Fechado (NF) |
| %I1.0 | OL1_OVLD | Sinal de Sobrecarga | DI | Limitador de Sobrecarga Saída, Normalmente Aberto (NA) |
| %I1.1 | RC_SEL | Controle Remoto/Comutação do Controle | DI | 0=Controle Remoto 1=Controle Remoto |
| — | Entrada analógica: sensor de sobrecarga(4~20mA0~20t) | |||
| Endereço | Símbolo | Função | Tipo | Descrição |
|---|---|---|---|---|
| %Q0.0 | KM1_UP | Subida pelo Controle Contactor | DO | Controle do Circuito Principal de Subida Contactor |
| %Q0.1 | KM2_DN | Descida Contactor | DO | Controle Descida Controle do Circuito Principal de Subida Contactor |
| %Q0.2 | KM3_LT | Deslocamento à Esquerda pelo Controle Contactor | DO | Controle do Circuito Principal de Deslocamento à Esquerda Contactor |
| %Q0.3 | KM4_RT | Deslocamento à Direita pelo Controle Contactor | DO | Controle do Circuito Principal de Deslocamento à Direita Contactor |
| %Q0.4 | KA1_ALM | Alarme de Falha | DO | Acionamento Alarme Sonoro e Visual |
| %Q0.5 | KA2_RUN | luz indicadora de operação | DO | Verdeluz indicadora de operação |
2. Programação em Diagrama de Escada LAD
2.1 Arquitetura do OB1 no Programa Principal
O OB1 é o bloco de organização do ciclo principal, com um tempo de varredura padrão de 10 ms. Os seguintes blocos FC são chamados na ordem de execução:
| Ordem de Chamada | FCBloco | Função | Linguagem de Programação |
|---|---|---|---|
| 1 | FC100_Safety | intertravamento de segurança(Parada de Emergência/Fim de Curso Superior/Relé Térmico/Sobrecarga) | LAD |
| 2 | FC200_Hoist Ctrl | Elevação Lógica de Controle(Subida pelo Controle/Descida/Intertravamento) | LAD |
| 3 | FC300_Travel Ctrl | Lógica de Controle Operacional(Deslocamento à Esquerda pelo Controle/Deslocamento à Direita pelo Controle/Intertravamento) | LAD |
| 4 | FC400_Fault Diag | Diagnóstico de Falhas E Alarme(SCL) | SCL |
2.2 Intertravamento de Segurança FC100 (Diagrama LAD)
// FC100: Lógica de intertravamento de segurança // Todas as condições de segurança em série——Se qualquer condição não for atendida, a operação é proibida "SB0_EST" "SQ1_UL" "SQ2_DL" "FR_OL" "SafetyOK" ----|/|-------------|/|-------------|/|-------------|/|------------------------( ) // Intertravamento de sobrecarga:Quando em sobrecarga, apenas a descida é permitida "OL1_OVLD" "SB2_DN" ----| |------------| |-----------------------------------------------------------( "Overload_DN_Only" ) // Reset do sinal de sobrecarga(Confirmação manual) "Overload_DN_Only" "SB1_UP" "Overload_Latch" ----| |-------------------| |----------------------------------------------------( )
2.3 Controlo de Elevação FC200 (Diagrama LAD)
// FC200: Lógica de controle de elevação // Subida:SafetyOK + Fim de curso superior não acionado + Sem sobrecarga + Descida não operante + Botão de subida // Descida:SafetyOK + Fim de curso inferior não acionado + Subida não operante + Botão de descida(Em sobrecarga, apenas a descida é permitida) "SafetyOK" "SQ1_UL" "Overload_Latch" "KM2_DN" "SB1_UP" "KM1_UP" ----| |-------------| |-------------|/|----------------|/|-----------| |----------( ) | | "KM1_UP" | ----| |----------------------------------------------------------------------------+ "SafetyOK" "SQ2_DL" "KM1_UP" "SB2_DN" "KM2_DN" ----| |-------------| |-------------------------------|/|-----------| |----------( ) | | "KM2_DN" | ----| |----------------------------------------------------------------------------+ // intertravamento elétrico:KM1eKM2Nunca devem ser emitidos simultaneamente "KM1_UP" "KM2_DN" "Interlock_OK" ----| |-----------| |--------------( ) // Para detecção de falhas,Em condições normais, não deve conduzir
2.4 Proteção de Temporização — Prevenção de Arranques Frequentes
// Proteção contra partidas frequentes:Atraso após cada parada500msSomente então é permitido reiniciar // Evitar que o contactor seja energizado repetidamente em intervalo muito curto(Trepidacão de contato/Arco elétrico) "KM1_UP" ----|/|----------------------------------------------------------------------------- "KM2_DN" TON_Start_Delay ----|/|----------------[TON: #Temp_StartDelay ] PT= T#500MS Q= "Start_Allowed" // Inserido no circuito de controle principal "Start_Allowed" "SB1_UP" "KM1_UP" // Subida ----| |----------------| |-----------( )
Diagnóstico de Falhas em Código SCL
3.1 FC400_FaultDiag (Texto Estruturado SCL)
// FC400: Diagnóstico de falhas e alarme // Linguagem:SCL(Texto estruturado) // Função:Monitoramento em tempo real do estado do equipamento,Detecção13Tipos de falha tipo,Saída de código de falha paraHMI FUNCTION FC400_FaultDiag : Void VAR_INPUT I_SafetyOK : Bool; // Estado de intertravamento de segurança I_KM1_UP : Bool; // Retorno do contactor de subida I_KM2_DN : Bool; // Retorno do contactor de descida I_Overload_Latch : Bool; // Travamento por sobrecarga I_OL1_OVLD : Bool; // Sinal do sensor de sobrecarga I_RunHours : Real; // Tempo de operação acumulado(horas) END_VAR VAR_OUTPUT Q_FaultCode : Int; // Saída de código de falha paraHMI Q_FaultMsg : String[40]; // Descrição da falha Q_Alarm_Output : Bool; // Acionamento do alarme sonoro e visual Q_TotalRunHours : Real; // Tempo total de operação END_VAR VAR vFaultCount : Int; // Contador de falhas vPrev_KM1 : Bool; // Detecção de borda do contactor de subida vPrev_KM2 : Bool; // Detecção de borda do contactor de descida vOverloadTimer : Time; // Duração da sobrecarga END_VAR // === Lista de detecção de falhas === Q_FaultCode := 0; // Padrão: sem falha Q_Alarm_Output := FALSE; vFaultCount := 0; // Padrão: sem falha1:Parada de emergência acionada IF I_SafetyOK = FALSE AND "SB0_EST" = FALSE THEN Q_FaultCode := 1; Q_FaultMsg := 'Botão de parada de emergência pressionado'; vFaultCount := vFaultCount + 1; END_IF; // Padrão: sem falha2:Fim de curso superior acionado IF "SQ1_UL" = FALSE THEN Q_FaultCode := 2; Q_FaultMsg := 'Fim de curso superior acionado(Distância insuficiente entre o gancho e o tambor)'; vFaultCount := vFaultCount + 1; END_IF; // Padrão: sem falha3:Fim de curso inferior acionado IF "SQ2_DL" = FALSE THEN Q_FaultCode := 3; Q_FaultMsg := 'Fim de curso inferior acionado(Cabo de aço do tambor insuficiente3voltas)'; vFaultCount := vFaultCount + 1; END_IF; // Padrão: sem falha4:Relé térmico em sobrecarga IF "FR_OL" = FALSE THEN Q_FaultCode := 4; Q_FaultMsg := 'Proteção contra sobrecarga do motor(Atuação do relé térmico)'; vFaultCount := vFaultCount + 1; END_IF; // Padrão: sem falha5:sobrecarga IF I_Overload_Latch THEN Q_FaultCode := 5; Q_FaultMsg := 'Atuação do limitador de sobrecarga(Carga>110%)'; vFaultCount := vFaultCount + 1; END_IF; // Padrão: sem falha6:KM1/KM2Energização simultânea(Colagem do contactor) IF I_KM1_UP AND I_KM2_DN THEN Q_FaultCode := 6; Q_FaultMsg := 'Falha grave:Contatores de alta e baixa velocidade energizados simultaneamente'; vFaultCount := vFaultCount + 1; END_IF; // Padrão: sem falha7:Retorno anormal do contactor(Comando de saída não corresponde ao retorno) IF ("KM1_UP" = TRUE AND I_KM1_UP = FALSE) OR ("KM2_DN" = TRUE AND I_KM2_DN = FALSE) THEN Q_FaultCode := 7; Q_FaultMsg := 'Resposta anormal do contactor(Possível travamento mecânico/Bobina queimada)'; vFaultCount := vFaultCount + 1; END_IF; // Se houver qualquer falha,Acionar saída de alarme IF vFaultCount > 0 THEN Q_Alarm_Output := TRUE; END_IF; // === Acumulado durante a operação === Q_TotalRunHours := I_RunHours + (TIME_TO_REAL(TIME_NOW() - "Start_Time")) / 3600000.0; END_FUNCTION
Ecrãs de Monitorização IHM e Configuração de Comunicação
4.1 Tabela de Variáveis IHM e Planeamento de Ecrãs
| IHMTela | Conteúdo Exibido | Associação DBVariável |
|---|---|---|
| Tela Principal | Status do Equipamento/Atual Carga/Tempo de Operação | DB1.Status / DB1.Load / DB1.Run Hours |
| Tela de Controle | Subida pelo Controle/Descida/Deslocamento à Esquerda pelo Controle/Botão Virtual de Deslocamento à Direita | Usado na Comutação Manual/Automático |
| Tela de Falhas | Código de falha/Descrição/Hora da Ocorrência/Botão de Reset | DB1.Fault Code / DB1.Fault Msg |
| Parâmetro Tela | Valor de Ajuste de Sobrecarga/Zerar Tempo de Operação/Alteração de Senha | DB1.Overload_Set / DB1.Password |
4.2 Configuração de comunicação PROFINET (configuração no TIA Portal)
// Parâmetros de rede da configuração do dispositivo // 1. S7-1200 CPU 1212C // IP: 192.168.0.10 // Máscara de sub-rede: 255.255.255.0 // PROFINETNome do dispositivo: plc-hoist-01 // 2. KTP400 Basic HMI // IP: 192.168.0.20 // Máscara de sub-rede: 255.255.255.0 // Nome do dispositivo: hmi-hoist-01 // 3. HMIConfiguração de conexão(emHMIdefinido na configuração) // Classe de conexão tipo: PROFINET (S7-1200) // HMIDispositivo: HMI_1 [192.168.0.20] // Controlador: plc-hoist-01 [192.168.0.10] // Ponto de acesso: S7ONLINE // Sub-rede: PN/IE_1 // 4. HMIExemplo de conexão de variáveis(PLC tag HMI tag) // "DB1".FaultCode "FaultCode" (Int, Período de aquisição500ms) // "DB1".Load_Current "CurrentLoad"(Real, Período de aquisição200ms) // "DB1".Status_Running "IsRunning" (Bool, Período de aquisição100ms)
5. Transferência do programa e arranque
5.1 Passos para a transferência
// Processo de download(TIA Portal V17) // 1. Compilar projeto completo(Project Build Rebuild All) // Garantir"0 errors, 0 warnings" // 2. Selecionar dispositivo de destino(Select target device) // Acesso online DetectadoPLC AtribuirIP 192.168.0.10 // 3. Baixar configuração de hardware(Download HW config) // Reiniciará automaticamentePLC(aproximadamente15segundos) // 4. Baixar programa de software(Download SW) // Selecionar"Download all blocks" Sobrescrever programa existente // 5. Monitoramento online(Go online) // Clicar"óculos"ícone para entrar no modo de monitoramento online // Observar se o caminho verde no diagrama ladder conduz conforme o esperado // 6. Forçar variáveis(Force table)—— Para comissionamento // Pode forçar a alteração sem operação real do botãoDIMonitoramento em tempo real do estado do equipamento // Por exemplo, forçar%I0.0=1Simular botão de subida pressionado // Atenção:Após o comissionamento, certifique-se de limpar todos os valores forçados
5.2 Lista de verificação para o arranque
Com a paragem de emergência premida, todas as saídas KM são 0 e a saída de alarme Q0.4 é 1
Com a paragem de emergência reposta e o fim de curso superior não acionado, premir SB1 faz KM1 fechar e o motor subir
Soltar SB1 faz KM1 abrir e o motor parar
Durante a subida, acionar o fim de curso SQ1 faz KM1 abrir imediatamente
Com KM1 fechado, premir SB2 não deve fechar KM2 (confirmar intertravamento)
Com sinal de sobrecarga ativo, a subida é bloqueada; apenas a descida é permitida
Se o intervalo entre arranques e paragens for inferior a 500 ms, a segunda ordem não é executada (proteção de atraso normal)
O ecrã de falhas da IHM mostra o código de falha e a descrição corretos
A comunicação PROFINET não é interrompida (sem pop-up de alarme na IHM)
Perguntas Frequentes
P: Quanto aumenta o custo ao substituir o controle por relés por um PLC?
R: Numa talha elétrica individual, a mudança de controle por relés para Controle por PLC representa um aumento de custo de hardware de aproximadamente 190 a 320 EUR (CPU S7-1200 cerca de 100 EUR + Módulo de Expansão cerca de 75 EUR + IHM cerca de 150 EUR + materiais auxiliares cerca de 40 EUR). No entanto, em aplicações com várias unidades controladas centralmente, o custo é diluído — num caso com 68 unidades, o custo adicional por talha foi de apenas cerca de 45 EUR. Além disso, a solução com PLC reduz o tempo de Diagnóstico de Falhas em 40%, permite Monitoramento Remoto e Manutenção Preventiva, resultando em custos de operação e paragens muito inferiores aos do esquema com relés.
P: Não domino a linguagem SCL. É possível programar uma talha elétrica apenas com diagrama de contatos (LAD)?
R: Sim, perfeitamente. Os blocos FC100/FC200/FC300 deste artigo foram todos escritos em LAD; apenas o FC400 de Diagnóstico de Falhas utiliza SCL. O diagnóstico também pode ser implementado em LAD, usando palavras de estado e instruções de comparação, mas o SCL é mais conciso para processamento de strings e cálculos matemáticos. Para aplicações puramente de engenharia, o estilo de Diagrama Elétrico da linguagem LAD é mais facilmente compreendido por eletricistas. Recomenda-se usar LAD para a lógica principal e SCL para funções auxiliares.
P: Como escolher entre a solução com PLC e a solução com Inversor de Frequência?
R: A solução com PLC destina-se ao controle lógico (ligar/desligar), enquanto a solução com Inversor de Frequência é para Regulação de velocidade. Não são mutuamente exclusivas. Para talhas elétricas, a solução mais consolidada é a combinação "PLC + Inversor de Frequência": o PLC trata da lógica (paragem de emergência, fins de curso, intertravamento, alarmes) e o inversor trata da condução do Motor Elétrico (Partida Suave, Regulação de velocidade, Frenagem). Para talhas acima de 5t, recomenda-se adicionar um inversor para permitir posicionamento lento e preciso. Para talhas de uso simples até 5t, a solução PLC + Contactor é totalmente suficiente.
P: Qual escolher: S7-1200 ou S7-200 SMART?
R: O S7-200 SMART tem um custo mais baixo (CPU cerca de 65 EUR) e é adequado para controle de máquinas individuais até 10 unidades. O S7-1200 suporta Ethernet em tempo real PROFINET, sendo ideal para redes com várias unidades e integração com sistemas MES/Sistema SCADA. Recomendação: para unidades individuais ou pequenos lotes, o 200 SMART (económico); para Monitoramento centralizado de várias unidades, o 1200 (rede); se for necessária comunicação PROFINET com o Inversor de Frequência, o 1200 é obrigatório. A lógica de programação é idêntica nas duas plataformas, o que facilita a migração de programas.
Normas recomendadas
• JB/T 10220-2014 — Freios para talhas elétricas
• JB/T 10218-2014 — Motores de rotor cónico para talhas elétricas
• JB/T 10219-2014 — Redutores para talhas elétricas
Guindaste Industrial Kelude
A Kelude é especializada no fabrico de guindastes industriais e equipamentos de elevação, oferecendo uma vasta gama de soluções para diversos setores. O nosso portefólio inclui pontes rolantes, pórticos, guinchos e componentes, todos concebidos para garantir desempenho, fiabilidade e segurança nas operações diárias.
Pontes Rolantes e Pórticos para Aplicações Exigentes
Os nossos sistemas de elevação são projetados para responder a requisitos técnicos rigorosos, assegurando uma operação suave e eficiente. A linha de produtos abrange desde pontes rolantes de baixa altura até pórticos de grande capacidade, adaptando-se a diferentes ambientes industriais, como oficinas, armazéns e estaleiros.
Componentes de Elevação com Tecnologia Avançada
Para além dos guindastes completos, fornecemos uma variedade de componentes e acessórios, incluindo talhas elétricas de cabo, carros de translação e sistemas de controlo. Cada componente é fabricado com materiais de alta qualidade e submetido a testes rigorosos para garantir a máxima durabilidade e segurança.
Personalização e Suporte Técnico Especializado
Compreendemos que cada operação é única. A nossa equipa de engenharia trabalha em estreita colaboração com os clientes para desenvolver soluções personalizadas, desde a conceção inicial até à instalação e manutenção. Oferecemos suporte técnico completo, assegurando que o seu equipamento opere com a máxima eficiência ao longo de todo o seu ciclo de vida.
Perguntas Frequentes (FAQ)
P: Que tipos de guindastes industriais a Kelude oferece?
R: Oferecemos uma gama completa, incluindo pontes rolantes de viga única e dupla, pórticos, guindastes de coluna e guinchos. Também fornecemos componentes como talhas e carros de translação.
P: É possível personalizar um guindaste para uma aplicação específica?
R: Sim, a personalização é um dos nossos pontos fortes. A nossa equipa de engenharia desenvolve soluções à medida, considerando fatores como capacidade de carga, vão, altura de elevação e condições ambientais.
P: Que normas de segurança os vossos produtos seguem?
R: Os nossos guindastes são projetados e fabricados em conformidade com normas internacionais relevantes, como a ISO 4301 para classificação e a IEC 60204-32 para equipamentos elétricos, garantindo operações seguras e fiáveis.
P: Qual é o prazo de entrega típico para um guindaste padrão?
R: O prazo de entrega varia conforme a complexidade e a personalização do equipamento. Para produtos padrão, o prazo é geralmente de 30 a 60 dias. Para soluções personalizadas, o prazo é definido após a análise técnica do projeto.
P: A Kelude fornece serviços de instalação e manutenção?
R: Sim, oferecemos serviços completos de instalação, comissionamento e manutenção preventiva e corretiva. A nossa equipa técnica está disponível para garantir o funcionamento contínuo e seguro do seu equipamento.