Controladores Lógicos Programáveis são soluções robustas, flexíveis e modulares, utilizadas para otimizar sistemas de automação por meio de abstrações lógicas, eliminando diversos comutadores físicos, reduzindo o espaço ocupado em painéis de comando e aprimorando elementos de informação e diagnóstico, por meio de indicadores visuais, sonoros e/ou textuais, quando associados a IHMs (interfaces homem-máquina) e sistemas supervisórios. Contudo, para aplicações relativas à segurança, a fim de adequar máquinas e/ou equipamentos com sistemas de controle de média e alta complexidade aos requisitos da NR-12, novos desafios podem ser adicionados, em razão da necessidade de consideração sobre falhas sistemática1, critérios de confiabilidade que CLPs convencionais não atendem e de uma abordagem lógica de raciocínio para a programação, sob uma perspectiva diferente daquela normalmente desenvolvida.
A Norma Regulamentadora nº 12 – Segurança no trabalho em máquinas e equipamentos (NR-12) determina, como uma medida de proteção possível, a implementação de sistemas de segurança. Quando esses sistemas compreendem o comando da máquina, as chamadas “partes de sistemas de comando relacionadas à segurança” (SRP/CS, do inglês “safety-related parts of control system”), devem ser compostos por dispositivos interligados adequadamente integrados ao sistema de comando, mantidos sob monitoramento automático (dependendo de risco associado), considerando as características técnicas da máquina e do processo de trabalho, conforme medidas e alternativas técnicas existentes – a exemplo das normas que tratam das partes do sistema de comando relacionado à segurança – a fim de atingir o nível mínimo necessário de segurança, para proteger pessoas nas zonas de perigo.
CLPs de segurança são controladores lógicos programáveis com características especiais de funcionamento (tais como redundância, diversidade e autoteste) que executam instruções e funções específicas de programação (como lógica combinacional e/ou sequencial, temporização e contagem) que, através de blocos padronizados e um programa de aplicação relacionado à segurança (SRASW2) validado, monitoram elementos geradores de sinais (entradas) e comandam elementos de controle da potência de movimentos perigosos (saídas) em vários tipos de máquinas ou processos. O programa de aplicação instalado, partindo da premissa de que não sofre “desgaste”, deve considerar condições previstas, assegurando sua eficácia e reduzindo ao mínimo razoavelmente previsível a possibilidade de erros provenientes de falhas sistemáticas, evitando a perda das funções relativas à segurança e não permitindo alterações inadvertidas dos blocos de função de segurança específicos.
Arquitetura básica:

Consideremos o seguinte:
Falhas sistemáticas são falhas determinísticas, que ocorrem repetidamente sob as mesmas condições, relacionadas a uma determinada causa e que somente podem ser eliminadas por modificações de projeto, processos de fabricação, procedimentos operacionais, documentação ou outros fatores relevantes. Medidas para controlar falhas sistemáticas podem incluir princípios fundamentais e devidamente comprovados de segurança, monitoramento da sequência do programa da aplicação, de módulos e blocos funcionais, de sub-rotinas ou comandos lógicos, bem como do processo de comunicação de dados. Já as medidas para evitar essas falhas incluem diversas opções voltadas para seleção, dimensionamento, montagem e manutenção de dispositivos e componentes, inspeção e testes para evidenciar a efetividade das soluções na aplicação.
Há uma nota na norma técnica ABNT NBR ISO 13849-1, informando que componentes eletrônicos complexos (incluindo CLPs “convencionais”) não atendem requisitos para comprovação como componentes “bem testados” (na edição brasileira, o termo em inglês “well-tried” é traduzido como “devidamente comprovado”). Em contrapartida, os controladores definidos como “CLPs de segurança” são projetados, fabricados e testados conforme normas relevantes em relação à segurança funcional, possuem processamento redundante, arquitetura em diversidade e teste automáticos do próprio sistema, apresentam dados relacionados à segurança (como “probabilidade média de falha perigosa por hora – PFHD4; e “cobertura de diagnóstico média – DCavg5", por exemplo) e permitem uma avaliação apropriada de subsistemas de geração de sinais e de comando de movimentos perigosos por blocos de função previamente validados e por lógica de programação de usuário que seja planejada, modelada, codificada e validada por processo que considere sobretudo a prevenção de falhas e defeitos que possam ser introduzidos durante o desenvolvimento do software.
Para tal, a norma estabelece o "Modelo V" para gerenciamento de ciclo de vida do software, com o objetivo principal de ter um software legível, compreensível, testável e de fácil manutenção.

Ao considerar critérios de estruturação e codificação do software de aplicação, é importante levar em consideração, relacionando às habilidades de programação para aplicações de segurança, uma vez que se pretende mitigar falhas sistemáticas:
Diversas linguagens de programação padronizadas podem ser utilizadas para implementação de software relacionado à segurança, agrupadas em dois tipos principais:
A depender da linguagem selecionada, dos tipos de dados, dos arranjos estruturais, configuração dos blocos e da capacidade de realização automática de testes e detecção de falhas de toda a estrutura do software, diferentes níveis de desempenho (PL) podem ser atendidos ou limitados neste objeto.
Conforme a tecnologia de conectividade avança e controladores, estações remotas e dispositivos de campo são integrados a redes corporativas e à Internet, o ambiente de tecnologia de operações (do inglês “operational technology”, ou a sigla OT) pode se tornar vulnerável a agentes de ataque que procuram por pontos frágeis para entrada em instalações industriais, sendo que a ocorrência de ataques cibernéticos “bem-sucedidos” ou até invasões locais por tentativa de sabotagem podem levar a sérias consequências – como interrupção de operações críticas e comprometimento da segurança de pessoas.
Para prevenir tais situações, é urgente que os profissionais envolvidos com especificação técnica, configuração e programação de CLPs de segurança estejam aptos e capacitados em práticas de programação segura, façam controle e versionamento dos códigos de programação e de firmware, utilizem de autenticação de acessos, redes de comunicação mais seguras, sistemas de IPS (do inglês “intrusion prevention system”), firewalls industriais e medidas de defesa em profundidade, entre outras medidas de segurança cibernética em ambientes “OT”.
Em resumo, aplicações de software relacionado à segurança podem ser tratadas de maneira distinta para atendimento à conformidade com a NR-12. Para isso, é necessário que haja uma equivalência entre os elementos de hardware e a respectiva codificação lógica; a programação deve ser modular e estruturada, e diversos atributos qualitativos e boas práticas de programação defensiva devem ser considerados para o cumprimento dos requisitos de segurança de máquinas previstos na regulamentação. Não apenas conhecimentos apropriados sobre lógica de programação e ferramentas de desenvolvimento validadas, como também base consolidada sobre os requisitos normativos são essenciais para uma aplicação proficiente e segura.
1 Conforme ABNT NBR ISO 13849-1:2019, são “falhas relacionadas de forma determinística a uma determinada causa”, em muitas situações incluem o erro humano, e que somente podem ser eliminadas por modificação do projeto, processo, procedimento, documentação ou outro fator relevante. (voltar)
2 A norma técnica ABNT NBR ISO 13849-1:2019 considera e estabelece requisitos para alguns tipos de software relacionado à segurança, por exemplo: Software embarcado (SRESW), como firmwares e sistemas operacionais; de aplicação (SRASW), como lógicas de controle e avaliação de funções de segurança; e de parametrização, como configuração da área de monitoramento de um scanner. (voltar)
3 A norma técnica ABNT NBR ISO 12100:2013 define e diferencia falha (como uma “incapacidade” – na edição brasileira, “termination of the ability” foi traduzido como “incapacidade”, mas “perda da capacidade” também poderia ser uma tradução válida – de um elemento de executar sua função requerida, sendo um evento) e defeito (como “estado de um determinado elemento caracterizado pela incapacidade de realizar uma função requerida (...)”, frequentemente como resultado de uma falha, mas que pode ocorrer inesperadamente, sem relação com uma falha prévia). (voltar)
4 Conforme Loren Stewart, CFSE (2019), trata-se da probabilidade de um sistema de falhar perigosamente dentro de um período de uma hora e não estar apto a realizar sua determinada função de segurança quando for requerida, e é baseada na taxa de falhas perigosas e dos meios automáticos de diagnóstico. Na aplicação da ABNT NBR ISO 13849-1:2019, o nível de desempenho (PL) de uma função de segurança é definido pela consideração dos valores de PFHD dos diversos subsistemas que compõem esta função. (voltar)
5 Definida pela ABNT NBR ISO 13849-1:2019 como “medida da efetividade do diagnóstico”, considerando a razão entre a taxa de falhas perigosas detectadas por meio de testes automáticos antes de uma possível perda de função de segurança (DD) pela taxa de falhas perigosas totais (DT). (voltar)
6 Blocos de função desenvolvidos e validados previamente pelo fabricante, disponibilizados por meio de bibliotecas. (voltar)
Referências
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS (ABNT). ABNT NBR ISO 12100: Segurança de máquinas - Princípios gerais de projeto - Apreciação e redução de riscos. 1ª. ed. Rio de Janeiro: [s.n.], 2013.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS (ABNT). ABNT NBR ISO 13849-1: Segurança de máquinas - Partes de sistemas de comando relacionadas à segurança - Parte 1: Princípios gerais de projeto. 1ª. ed. Rio de Janeiro: [s.n.], 2019.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS (ABNT). ABNT ISO/TR 22100-2: Segurança de máquinas - Relação com a ABNT NBR ISO 12100 - Parte 2: Como a ABNT NBR ISO 12100 se relaciona com a ABNT NBR ISO 13849-1. 1ª. ed. Rio de Janeiro: [s.n.], 2024.
BRASIL. Ministério do Trabalho e Emprego. Norma Regulamentadora nº 12: Segurança no Trabalho em Máquinas e Equipamentos, Brasília, 2024. Disponivel em: <https://www.gov.br/trabalho-e-emprego/pt-br/acesso-a-informacao/participacao-social/conselhos-e-orgaos-colegiados/comissao-tripartite-partitaria-permanente/normas-regulamentadora/normas-regulamentadoras-vigentes/nr-12-atualizada-2025.pdf>. Acesso em: 17 set. 2025.
FRANCHI, C. M.; CAMARGO, V. L. A. D. Controladores Lógicos Programáveis - Sistemas Discretos. 1ª. ed. São Paulo: Érica, 2008.
INTERNATIONAL ELECTROTECHNICAL COMMISSION (IEC). IEC/TS 63074: Machine safety - Security aspects in connection with the functional safety of safety-related control system. 2ª. ed. Genebra: IEC Central Office, 2023.
MADSEN, T. CyberSecurity-Magazine.com. Secure PLC Programming, 01 jul. 2025. Disponivel em: <https://cybersecurity-magazine.com/secure-plc-programming/>. Acesso em: 27 jan. 2026.
POSTAL, C. UpGuard.com. Programmable Logic Controllers and Cybersecurity Risk, 01 dez. 2025. Disponivel em: <https://www.upguard.com/blog/plc-risk>. Acesso em: 27 jan. 2026.
STEWART, L. Exida.com. PFH (Probability of dangerous failure per hour), 2019. Disponivel em: <https://www.exida.com/blog/back-to-basics-17-pfh>. Acesso em: 19 dez. 2025.
TXONE NETWORKS. txOne.com/blog. The Ultimate Guide to PLC Cybersecurity, 19 abr. 2024. Disponivel em: <https://www.txone.com/blog/ultimate-guide-to-plc-cybersecurity/>. Acesso em: 27 jan. 2026.