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.

Arquitetura do programa de controlo PLC S7-1200 para talha elétrica

Configuração de Hardware e Atribuição de IOs

1.1 Seleção de Hardware

EquipamentoModeloQuantidadeObservação
PLC CPUS7-1200 1212C DC/DC/DC16ES7 212-1AE40-0XB0,8DI/6DO
Sinal Digital Módulo de ExpansãoSM 1223 DI 8×24VDC / DO 8×24VDC16ES7 223-1BH32-0XB0
Sinal Analógico Módulo de ExpansãoSM 1231 AI 4×13bit16ES7 231-4HD32-0XB0,4~20mA
IHM Tela Touch ScreenKTP400 Basic PN16AV6 647-0AD11-3AX0,4.3Polegada
Relé IntermediárioRIM 24VDC 2CO6PLC DOContactor Isolamento de Bobina
Fonte ChaveadaEDR-120-241AC220VDC24V 5A

1.2 Tabela de Atribuição de I/O

EndereçoSímboloFunçãoTipoDescrição
%I0.0SB1_UPBotão de SubidaDISubida pelo Controle, Normalmente Aberto (NA)
%I0.1SB2_DNDescida Botão de SubidaDIControle Remoto Descida, Normalmente Aberto (NA)
%I0.2SB3_LTBotão de Deslocamento à EsquerdaDIDeslocamento à Esquerda pelo Controle, Normalmente Aberto (NA)
%I0.3SB4_RTBotão de Deslocamento à DireitaDIDeslocamento à Direita pelo Controle, Normalmente Aberto (NA)
%I0.4SQ1_ULFim de Curso SuperiorDIChave de Posição, Normalmente Fechado (NF)
%I0.5SQ2_DLlimite inferior Fim de Curso SuperiorDIChave de Posição, Normalmente Fechado (NF)
%I0.6SB0_ESTBotão de Parada de EmergênciaDIContato NF,0=Acionamento
%I0.7FR_OLRelé TérmicoDIRelé Térmico, Normalmente Fechado (NF)
%I1.0OL1_OVLDSinal de SobrecargaDILimitador de Sobrecarga Saída, Normalmente Aberto (NA)
%I1.1RC_SELControle Remoto/Comutação do ControleDI0=Controle Remoto 1=Controle Remoto
Entrada analógica: sensor de sobrecarga(4~20mA0~20t)
EndereçoSímboloFunçãoTipoDescrição
%Q0.0KM1_UPSubida pelo Controle ContactorDOControle do Circuito Principal de Subida Contactor
%Q0.1KM2_DNDescida ContactorDOControle Descida Controle do Circuito Principal de Subida Contactor
%Q0.2KM3_LTDeslocamento à Esquerda pelo Controle ContactorDOControle do Circuito Principal de Deslocamento à Esquerda Contactor
%Q0.3KM4_RTDeslocamento à Direita pelo Controle ContactorDOControle do Circuito Principal de Deslocamento à Direita Contactor
%Q0.4KA1_ALMAlarme de FalhaDOAcionamento Alarme Sonoro e Visual
%Q0.5KA2_RUNluz indicadora de operaçãoDOVerdeluz 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 ChamadaFCBlocoFunçãoLinguagem de Programação
1FC100_Safetyintertravamento de segurança(Parada de Emergência/Fim de Curso Superior/Relé Térmico/Sobrecarga)LAD
2FC200_Hoist CtrlElevação Lógica de Controle(Subida pelo Controle/Descida/Intertravamento)LAD
3FC300_Travel CtrlLógica de Controle Operacional(Deslocamento à Esquerda pelo Controle/Deslocamento à Direita pelo Controle/Intertravamento)LAD
4FC400_Fault DiagDiagnó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

IHMTelaConteúdo ExibidoAssociação DBVariável
Tela PrincipalStatus do Equipamento/Atual Carga/Tempo de OperaçãoDB1.Status / DB1.Load / DB1.Run Hours
Tela de ControleSubida pelo Controle/Descida/Deslocamento à Esquerda pelo Controle/Botão Virtual de Deslocamento à DireitaUsado na Comutação Manual/Automático
Tela de FalhasCódigo de falha/Descrição/Hora da Ocorrência/Botão de ResetDB1.Fault Code / DB1.Fault Msg
Parâmetro TelaValor de Ajuste de Sobrecarga/Zerar Tempo de Operação/Alteração de SenhaDB1.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.

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.

Artigos relacionados

contact

contact us

phone:
+86 13903802779

mail:3915269@qq.com

Working hours: Monday to Friday

Wechat
Wechat
SHARE
TOP