Tutorial do Siemens S7-200: conheça ao detalhe o Siemens S7-200. Criptografia de desmontagem dos PLCs da série Siemens S7-200
Thread Content
Este tópico foi editado pela última vez por sea7000 em 31/07/2017, às 12:52.1. Estrutura básica do S7-200
A série S7-200 da Siemens é um PLC de pequeno porte, projetado para substituir relés em situações de controle simples. Também pode ser utilizado em sistemas de automação mais complexos. O PLC integrado reúne o módulo CPU, o módulo I/O e a fonte de alimentação em um gabinete em forma de caixa; o S7-200 é denominado módulo CPU. Abaixo da tampa frontal na Figura 1, há o interruptor RUN/STOP, um potenciômetro analógico e conectores de E/S adicionais. A série S7-200 de PLCs oferece vários módulos CPU com diferentes números de pontos I/O, além de módulos de expansão para entradas e saídas digitais e analógicas, para que o usuário possa escolher conforme sua necessidade. Os módulos CPU e os módulos de expansão são conectados por meio de cabos planos. O PLC como um todo também está equipado com vários módulos de funções especiais, como módulos de entrada/saída analógica, termopares, módulos de resistência térmica, módulos de comunicação, entre outros, o que permite expandir as funcionalidades do PLC. O S7-200 pode ser programado usando diagramas em forma de ladeira, tabelas de instruções e linguagem de módulos funcionais. Ele possui instruções abundantes, com funcionalidades poderosas, é fácil de dominar e prático de operar. Possui contador de alta velocidade, saída de alta velocidade, controlador PID, interface de comunicação/programação RS485, protocolo de comunicação PPI, protocolo de comunicação MPI e função de comunicação em modo livre. Pode ser expandido para até 248 entradas/saídas digitais ou 35 entradas/saídas analógicas. Há até 26 kB de espaço de armazenamento para programas e dados. 2. Módulos CPU do S7-200 O S7-200 possui 5 tipos de módulos CPU. O CPU221 não tem funções de expansão e é adequado para controladores de pequeno porte. O CPU222 possui funções de expansão. O CPU224 é um controlador com capacidades de controle mais avançadas. Já o CPU226 e o CPU226 XM são adequados para sistemas de controle complexos, de pequeno e médio porte. Os parâmetros técnicos dos diferentes modelos de CPU da série S7-200 estão apresentados na Tabela 1. O S7-200 dispõe de funções como transmissão de dados, comparação, deslocamento, repetição de operações, cálculo de complementos numéricos, chamada a subprocedimentos, modulação de largura de pulso, emissão de sequências de pulsos, saltos, conversão de dados, operações aritméticas, operações lógicas com palavras, operações com números em ponto flutuante, cálculo de raízes quadradas, funções trigonométricas e instruções de controle PID. A estrutura do programa consiste em um programa principal, até 8 níveis de subprocedimentos e programas de interrupção. O usuário pode utilizar interrupções programadas com duração de 1 a 255 ms. O programa do usuário pode ter proteção por senha em 3 níveis, além de contar com função de timer de monitoramento (watchdog). Entre as entradas digitais, 4 são utilizadas para interrupções de hardware e 6 para funções de alta velocidade. O contador de adição/subtração de 32 bits, de alta velocidade, tem uma frequência máxima de contagem de 30 kHz. Ele é capaz de contar as duas sequências de pulsos de um codificador incremental, cujos ângulos entre si são de 90 graus. É gerado um interrupção quando o valor de contagem atinge um determinado valor ou quando a direção da contagem muda. No programa de interrupção, é possível realizar operações nas saídas de forma imediata. A saída de alta velocidade de dois canais permite gerar sequências de pulsos com frequência de até 20 kHz e largura ajustável. O cartão de memória opcional permite armazenar permanentemente programas, dados e informações de configuração. Já o cartão de bateria opcional consegue armazenar os valores dos eventos mais importantes por um período de 200 dias. Nos circuitos de saída DC, são utilizados transistores de efeito de campo (MOSFET) como componentes de amplificação de potência. Apenas os circuitos de saída DV possuem saída de pulsos de alta velocidade, com frequência de saída máxima de 20 kHz. 3. Módulos de expansão do S7-200: Os CPUs do S7-200 já possuem um certo número de pontos de E/S digitais integrados. Se o número de pontos de E/S necessários for maior do que o disponível no CPU, é possível expandir suas funcionalidades e aumentar sua capacidade de controle, através da adição de módulos de expansão de entrada/saída. Os módulos de expansão existem em três tipos: expansão de entrada/saída, expansão de entrada para termopares/resistores térmicos e expansão de comunicação. Eles se conectam ao módulo CPU por meio de conectores de barramento (plug-ins). Para que a unidade de expansão funcione corretamente, é necessária uma fonte de alimentação de +5VDC. Essa fonte é fornecida pela CPU, por meio do conector de barramento. Os pontos de entrada e saída de 24VDC da unidade de expansão podem ser alimentados pela fonte de 24VDC da unidade principal. No entanto, é preciso prestar atenção à capacidade máxima de corrente fornecida pela unidade principal. O CPU 221 não possui capacidade de expansão I/O; o CPU 222 pode conectar até 2 módulos de expansão (digitais ou analógicos); o CPU 224 e o CPU 226 podem conectar até 7 módulos de expansão. (1) Módulos de expansão de entrada/saída
A série S7-200 oferece os seguintes módulos de expansão:
① Módulo de expansão de entrada digital EM221 (8DI);
② Módulo de expansão de saída digital EM222 (8DO);
③ Módulo de expansão de entrada e saída digital combinados EM223 (8I/O, 16I/O, 32I/O);
④ Módulo de expansão de entrada analógica EM231 (3AI; tempo de conversão A/D de 25μs, 12 bits);
⑤ Módulo de expansão de entrada e saída analógicas combinados EM235 (3AI/1AO; tempo de conversão A/D de 25μs, tempo de conversão D/A de 100μs; ambos com 12 bits).
(2) Módulos de expansão para termopares/resistores térmicos
Os módulos para termopares e resistores térmicos (EM231) são utilizados em conjunto com os CPUs CPU222, CPU224 e CPU226. Vários tipos de termopares (sinais em mV) e resistores térmicos (sinais de resistência) podem ter seus sinais enviados ao S7-200 por meio do módulo EM231. O usuário utiliza os interruptores DIP no EM231 para selecionar o tipo de termopar ou resistência térmica, o modo de conexão, a unidade de medida e a direção do erro de circuito aberto. (3) Módulos de expansão de comunicação Além das portas de comunicação integradas ao CPU, o S7-200 também pode ser conectado a redes maiores por meio de módulos de expansão de comunicação. A série S7-200 dispõe, atualmente, de dois módulos de expansão de comunicação: o módulo de estação escrava para PROFIBUS-DP, EM277, e o módulo de expansão para interface AS-i, CP243-2. As principais características técnicas dos módulos de expansão de entrada/saída da série S7-200 de PLCs estão mostradas na Tabela 2. 4. Funções de comunicação do S7-200 O módulo CPU do S7-200 dispõe de comunicação serial RS485, que suporta os protocolos PPI, DP/T, protocolos de comunicação livre e o protocolo ponto a ponto PROFIBUS. Cada rede pode ter no máximo 126 estações, e no máximo 32 estações principais. A interface de comunicação permite a comunicação com os seguintes dispositivos: computadores que executam software de programação, o monitor de texto TD200, o painel de operador OP, bem como entre as CPUs S7-200. Por meio do protocolo de comunicação livre, é possível realizar comunicação em série com dispositivos de outros fabricantes. O módulo de escravo EM277 PROFIBUS-DP é utilizado para conectar a CPU S7-200 à rede PROFIBUS-DP. A velocidade de comunicação é de 9600-12 Mbit/s. O módulo de comunicação Ethernet industrial CP243-1 possui uma velocidade de comunicação de 10 Mbit/s ou 100 Mbit/s, operando em modo semiduplex/duplex. A interface RJ-45 utiliza o protocolo TCP/IP. É possível utilizar o software STEP 7-Micro/WIN para configurar e programar remotamente por meio da Ethernet industrial (carregamento e download de programas, monitoramento do status). Além disso, é possível conectar outros CPUs por meio da Ethernet industrial, e processar dados no computador por meio de S7-OPC. O módulo de modem EM241 suporta manutenção remota ou diagnóstico à distância, comunicação entre PLCs, comunicação entre PLCs e PCs, além do envio de mensagens curtas para celulares. O assistente de parametrização do EM241 está integrado ao Micro/WIN V3.2. Por meio do processador de comunicação CP243-2 AS-i, o CPU S7-200 pode atuar como estação mestre AS-i, podendo conectar até 62 estações escravas AS-i e acessar 496 pontos de entrada/saída digitais remotos. 5. Software de programação para S7-200: O STEP 7-Micro/WIN 32 é um software de programação desenvolvido especialmente para o S7-200, e funciona no sistema operacional Windows, em computadores pessoais. A CPU se comunica com o computador por meio de cabos PC/PPI ou de placas de comunicação CP 55111 ou CP 5611 conectadas ao computador. Por meio do cabo PC/PPI, é possível implementar um modo de comunicação com múltiplos mestres no Windows. PASSO 7: A estrutura dos programas de usuário do Micro/WIN 32 é simples e clara. Um programa principal pode chamar subprogramas ou procedimentos de interrupção. Além disso, é possível inicializar variáveis por meio de blocos de dados. Os usuários podem programar usando diagramas de instruções (STL), diagramas em forma de ladeira (LAD) e diagramas de blocos funcionais (FBD). Os programas escritos em diferentes linguagens de programação podem ser convertidos uns nos outros. É possível usar uma tabela de símbolos para definir os símbolos correspondentes aos endereços das variáveis utilizadas no programa, o que facilita o seu design e compreensão. PASSO 7 – O Micro/WIN 32 oferece aos usuários dois conjuntos de instruções: o conjunto de instruções SIMATIC (no formato S7-200) e o conjunto de instruções segundo as normas internacionais (IEC1131-1). A programação remota pode ser realizada por meio de um modem, sendo possível depurar programas e diagnosticar falhas por meio de varreduras únicas e saídas forçadas. O S7-200 foi desenvolvido com base nos pequenos PLCs da Texas Instruments, nos Estados Unidos. Já o S7-300/400 tem como precursor a série S5 de PLCs da Siemens; seu software de programação é o STEP 7. Embora o S7-200 e o S7-300/300 tenham muitas semelhanças, existem diferenças significativas em termos de sistema de instruções, estrutura de programas e softwares de programação. Dados de pedido para o SIMATIC S7-200 SMART
① Números de pedido da unidade central de processamento CPU
Módulo CPU SR20: Parâmetros principais: AC/DC/RLY, 12 entradas digitais/8 saídas digitais. Número de pedido: 6ES7 288-1SR20-0AA0
Módulo CPU SR40: Parâmetros principais: AC/DC/RLY, 24 entradas digitais/16 saídas digitais. Número de pedido: 6ES7 288-1SR40-0AA0
Módulo CPU ST40: Parâmetros principais: DC/DC/DC, 24 entradas digitais/16 saídas digitais. Número de pedido: 6ES7 288-1ST40-0AA0
Módulo CPU CR40: Parâmetros principais: AC/DC/RLY, 24 entradas digitais/16 saídas digitais. Número de pedido: 6ES7 288-1CR40-0AA0
Módulo CPU SR60: Parâmetros principais: AC/DC/RLY, 36 entradas digitais/24 saídas digitais. Número de pedido: 6ES7 288-1SR60-0AA0
Módulo CPU ST60: Parâmetros principais: DC/DC/DC, 36 entradas digitais/24 saídas digitais. Número de pedido: 6ES7 288-1ST60-0AA0
② Números de pedido dos módulos de expansão I/O EM
Módulo EM DI08: Parâmetros principais: 8 entradas digitais de 24VDC. Número de pedido: 6ES7 288-2DE08-0AA0
Módulo EM DR08: Parâmetros principais: 8 saídas digitais por relé. Número de pedido: 6ES7 288-2DR08-0AA0
Módulo EM DR16: Parâmetros principais: 8 entradas digitais de 24VDC/8 saídas digitais por relé. Número de pedido: 6ES7 288-2DR16-0AA0
Módulo EM DR32: Parâmetros principais: 16 entradas digitais de 24VDC/8 saídas digitais por relé. Número de pedido: 6ES7 288-2DR32-0AA0
Módulo EM DT08: Parâmetros principais: 8 saídas digitais de 24VDC. Número de pedido: 6ES7 288-2DT08-0AA0
Módulo EM DT16: Parâmetros principais: 8 entradas digitais de 24VDC/8 saídas digitais de 24VDC. Número de pedido: 6ES7 288-2DT16-0AA0
Módulo EM DT32: Parâmetros principais: 16 entradas digitais de 24VDC/16 saídas digitais de 24VDC. Número de pedido: 6ES7 288-2DT32-0AA0
Módulo EM AI04: Parâmetros principais: 4 entradas analógicas. Número de pedido: 6ES7 288-3AE04-0AA0
Módulo EM AQ02: Parâmetros principais: 2 saídas analógicas. Número de pedido: 6ES7 288-3AQ02-0AA0
Módulo EM AM06: Parâmetros principais: 4 entradas analógicas/2 saídas analógicas. Número de pedido: 6ES7 288-3AM06-0AA0
Módulo EM AR02: Parâmetros principais: 2 canais de entrada para resistências térmicas. Número de pedido: 6ES7 288-3AR02-0AA0
③ Números de pedido das placas de expansão de comunicação SB
Placa SB CM01: Parâmetros principais: conexões R485/R232. Número de pedido: 6ES7 288-5CM01-0AA0
Placa SB DT04: Parâmetros principais: 2 entradas digitais de 24VDC/2 saídas digitais de 24VDC. Número de pedido: 6ES7 288-5DT04-0AA0
Placa SB AQ01: Parâmetros principais: 1 saída analógica de 12 bits. Número de pedido: 6ES7 288-5AQ01-0AA0
Breve discussão sobre a criptografia dos PLCs da série Siemens S7-200
1. Primeiro, é necessário entender os métodos comuns de descriptografia de PLCs. Só conhecendo a si mesmo e ao inimigo é que se pode vencer todas as batalhas. Somente ao entender completamente os métodos atuais de descriptografia utilizados nos PLCs é que se pode criar soluções de criptografia mais eficazes. Atualmente, o que é vendido são softwares de desmontagem e decodificação; ainda não existem softwares de leitura direta. Para obter o programa, é preciso desmontar o chip EEPROM e modificar seu bloco de sistema, a fim de eliminar a proteção por senha. Esse método de decodificação realmente alcança o objetivo de ler o programa, mas esse “remédio” tem efeitos colaterais muito graves, alterando completamente as configurações originais do sistema. Como não se sabia, nem era possível saber, as configurações do bloco de sistema original, substituiu-se apressadamente um bloco de sistema obtido de outro PLC, alterando completamente as configurações originais. Assim, podemos criar uma criptografia específica para contramedidas, com base nessa falha. Agora você pode baixar o exemplo primeiro para dar uma olhada. 2. É necessário configurar proteção por senha de 4 níveis. As versões 2.0 e superiores dos PLCs possuem funcionalidade de criptografia de nível 4, que é o nível mais alto de criptografia. Se você configurar apenas a criptografia de nível 3, ela será facilmente quebrada. Porque basta desmontar o dispositivo e ler o chip para obter a senha original; não é necessário modificar o chip. Com a senha em mãos, é possível fazer o upload do programa. Portanto, se você configurar apenas proteção de criptografia de nível 3, é como se não estivesse protegendo nada; é necessário configurar a proteção de nível mais alto, ou seja, nível 4. Então, por que a proteção de nível 4 é tão eficaz? Veja a explicação na imagem abaixo: com a proteção por senha de nível 4, não é possível fazer o upload de arquivos. Não importa se você conhece ou não a senha; mesmo que saiba a senha, ainda assim não conseguirá fazer o upload. Para descriptografar o dispositivo e permitir o upload, utiliza-se o método de substituição de todo o bloco do sistema. Após a substituição, fica um bloco do sistema sem função de criptografia, e assim o programa pode ser enviado. No entanto, isso altera as configurações originais do dispositivo. Por isso, vou ensinar a você como lidar com essa substituição dos blocos do sistema para descriptografá-los. 3. As configurações da porta de comunicação não podem ser as padrão. Basta clicar no botão “Valor padrão” na imagem abaixo para saber que as configurações padrão de comunicação dos blocos do sistema são uma taxa de transmissão de 9600 e um número de estação de 2. Para impedir que o inimigo consiga se comunicar após a invasão, é melhor definir uma taxa de transmissão de 187,5 kbps. No entanto, se seu cabo não suportar essa taxa de comunicação, então é melhor desistir! O endereço do PLC não deve ser o valor padrão de 2; isso é muito ruim. Escolha outro número de estação. Dessa forma, mesmo que o sistema seja quebrado, ainda é possível impedir que outros dispositivos se conectem. Isso é ainda mais eficaz se você tiver uma tela sensível ao toque ou um computador principal para se comunicar com o sistema. Após a quebra da segurança, como as configurações de comunicação não correspondem mais às originais, os dispositivos externos não conseguirão se conectar, e então será preciso recorrer a você. Ótimo, realmente ótimo!! 4. Defina uma área de manutenção em caso de falha de energia especial; não use o valor padrão. Veja as configurações da área de armazenamento de dados em caso de falha de energia na figura abaixo. Todos esses valores são os padrões definidos pelo sistema. Se você não se dar ao trabalho de fazer alterações nessas configurações, e optar por manter os valores padrão do sistema, então seu criptografia de nível 4 não servirá para nada, pois o sistema utilizará os blocos padrão para substituir seus arquivos criptografados de nível 4. Então, como é que se pode alterar as configurações padrão desse bloco de sistema, a fim de evitar ataques de cracking? Existem muitas maneiras de fazer isso; tudo depende da criatividade de cada pessoa. A seguir, vou dar um exemplo para você ver. Você pode usar esse exemplo como base para encontrar outras soluções. 5. Verificar se os dados da área de manutenção em caso de queda de energia foram perdidos. Use métodos de programação para verificar se os valores que você inseriu anteriormente ainda estão intactos. Verifique também se as minas colocadas explodiram após a execução do programa. Além disso, verifique se seu programa foi violado ou decifrado. Sem mais delongas, veja as imagens: Claro, isso é apenas um tipo simples de criptografia. Na prática, as coisas não são tão fáceis de entender assim. Você deve tornar o processo o mais complexo possível, de modo que seja impossível entender o programa. Os dados precisam passar por uma série de operações lógicas complexas, como transformações, transmissões e cálculos, antes de serem utilizados para desativar o sistema. Você pode definir os intervalos vb0-vb40 como áreas de armazenamento de dados em caso de perda de energia no bloco do sistema. Já os intervalos a partir de vb40 devem ser esvaziados em caso de perda de energia. No programa, você pode definir se há dados disponíveis no momento da inicialização do PLC. Se houver dados, o sistema deve ser desligado; caso contrário, deve-se verificar os dados armazenados nas áreas de armazenamento de dados em caso de perda de energia. Você pode predefinir valores para detectar se os valores que você gravou anteriormente ainda estão presentes. Se não estiverem, o sistema deve ser desligado.
A seguir, algumas perguntas relacionadas:
1. Quais são as vantagens dos PLCs da série Siemens S7-200?
O SIMATIC S7-200 oferece uma solução unificada e econômica. Características gerais do sistema inteiro: desempenho excepcional, modularidade otimizada e comunicação aberta. Estrutura compacta e pequena – a escolha ideal para qualquer aplicação em espaços limitados. Funcionalidades básicas e avançadas em todos os modelos de CPU. Memória grande para armazenamento de programas e dados. Resposta em tempo real excepcional – permite controle total do processo a qualquer momento, o que melhora a qualidade, a eficiência e a segurança. Software de engenharia STEP 7-Micro/WIN fácil de usar – a escolha ideal tanto para iniciantes quanto para especialistas. Interface R-S 485 integrada, que pode ser utilizada como barramento de sistema. Controle extremamente rápido e preciso dos processos. Controle total dos processos que exigem precisão temporal, por meio de interrupções programadas. 2. Método para entender o funcionamento do PLC Siemens S7-200 224CN sem desmontá-lo: Não é necessário descriptografar o dispositivo. Basta observar como as luzes de entrada/saída do PLC se acendem e se apagam durante o funcionamento do equipamento, para entender o programa contido no PLC. Com um pouco de prática, você conseguirá entender tudo sozinho, o que é melhor do que tentar descriptografar o dispositivo. Há também programas nos quais, mesmo que se insira o código neles, a tabela de símbolos e os comentários não são incluídos. Mesmo que você consiga ler o código, provavelmente ainda não conseguirá entendê-lo. Se você tentar inserir em uma máquina um programa que não consegue entender, sua tarefa de manutenção se tornará ainda mais difícil.