Você está na página 1de 14

Diagnósticos de PCs

Application Note Referências


Control Cabinets
Embedded PCs
Diagnósticos de IPCs Diagnósticos
MDP

Diagnósticos de IPCs

Acessando os diagnósticos dos PCs embarcados e


industriais via serviço MDP
Diagnósticos de PCs

Esta nota de aplicação fornece instruções básicas sobre como acessar os diagnósticos dos PCs industriais e embarcados,
via serviço MDP.

1. Pré-requisitos e público alvo deste documento.


Este documento tem por objetivo fornecer uma introdução à configuração dos diagnósticos dos PCs
industriais e embarcados da Beckhoff via serviço MDP, possibilitando ao leitor conhecimento suficiente para
acessar informações do hardware (PC) Beckhoff. Para tal, são necessários: conhecimento prévio nas
ferramentas de configuração e programação do TwinCAT 3.
Diagnósticos de PCs

2. Considerações Gerais.
Esse exemplo pode ser aplicado em qualquer plataforma de embedded PC ou PC Industrial da Beckhoff.
Dependendo da versão/série de hardware, os recursos de diagnósticos podem ser maiores ou menores.

3. Topologia utilizada no exemplo.


Diagnósticos de PCs

4. Informações básicas sobre o serviço MDP (Modular Device Profile).


O serviço MDP (Modular Device Profile) é uma interface do hardware que é independente do TwinCAT. O
MDP pode ser acessado via TwinCAT através de uma biblioteca de PLC e a comunicação entre ambos é
o ADS.

Os diagnósticos de PCs suportam acessos à sistemas locais (no programa de controle do dispositivo) e
também acesso remoto via outro PC (ou PLC).

As funções de diagnósticos dos IPCs da Beckhoff podem ser integradas na aplicação do usuário via
diferentes tipos de comunicação e interfaces de programação (particularmente o TwinCAT).

Basicamente, o serviço MDP fornece todas as informações pertinentes ao hardware em questão, tanto
com relação à questões físicas (dados de memória, HDD, NIC, etc), quanto de software (versões de
sistema operacional, TwinCAT, BIOS, entre outros).

O modelo de informação em relação a como ela é transferida de um lado a outro, é categorizada em


módulos entre o hardware e o software.

Os módulos categorizam o hardware em partes e as informações de software em grupos lógicos. Cada


módulo tem um endereço dinâmico (não estático), que varia de acordo com o hardware e software
utilizado.

Cada módulo possui tabelas que subdividem as informações de hardware e software em subgrupos
(subindex). Para cada tabela, existe no mínimo uma tabela “cabeçalho” (contendo informações gerais) e
no mínimo mais uma contendo as demais informações do módulo.

Uma entrada particular na tabela poderá ser endereçada via subindex.


Diagnósticos de PCs

Visão geral dos módulos e tabelas.

Mais informações sobre o modelo de informação podem ser encontrados através do link:

https://infosys.beckhoff.com/content/1033/devicemanager/99079192065129227.html?id=8577517488240625411

NOTA: Estes diagnósticos via serviço MDP apresentados neste documento, se aplicam somente à hardwares Beckhoff
fabricados a partir 2015 em diante!

De acordo com o que foi proposto neste documento, vamos estabelecer comunicação entre o hardware e
o PLC através da biblioteca TC2_MDP.lib:

https://infosys.beckhoff.com/content/1033/tcplclib_tc2_mdp/index.html?id=875078454386102504
Diagnósticos de PCs

5. Antes de iniciarmos a sequencia de leitura de diagnósticos, vamos comentar


primeiro sobre os principais blocos e estruturas da biblioteca Tc2_MDP:
(https://infosys.beckhoff.com/content/1033/tcplclib_tc2_mdp/18014398688227979.html?id=4715718202539411347)

5.1. Existem algumas estruturas em alguns blocos que precisam ser entendidas e/ou previamente
configuradas:

5.1.1. E_MDP_AddrArea Enumerador que define as três areas de serviços de diagnósticos que
podem ser acessadas:

(https://infosys.beckhoff.com/content/1033/tcplclib_tc2_mdp/178748811.html)

5.1.2. E_MDP_ModuleType Enumerador que define as propriedades da area de


configuração do hardware (eMDP_Area_ConfigArea):

NOTA: Nem todas as


propriedades ao lado
estão disponíveis para
todas as configurações
de CPU!

(https://infosys.beckhoff.com/content/1033/tcplclib_tc2_mdp/178750347.html)
Diagnósticos de PCs

5.1.3. Estrutura de dados ST_MDP_Addr Define quais tabelas e parâmentros serão lidos em cada
propriedade do enumerador E_MDP_ModuleType

(https://infosys.beckhoff.com/content/1033/tcplclib_tc2_mdp/9007199433492875.html)

5.2. Agora veremos de forma simplificada como configurar a estrutura


ST_MDP_ModuleType:
5.2.1. Existem 3 parâmetros nesta estrutura que são cruciais para o funcionamento de alguns blocos.
Estes parâmetros são:

nArea

nTableId

nSubIdx
Diagnósticos de PCs

5.2.2. Como preencher cada um destes três parâmetros?

5.2.2.1. nArea

nArea poderá atribuir uma destas três areas, conforme exemplo abaixo:

nArea:=INT_TO_BYTE(eMDP_Area_ConfigArea)

5.2.2.2. nTableId

Uma vez definido na entrada dos blocos qual será o diagnóstico lido através do enumerador
E_MDP_ModuleType, verifica-se quais são as tabelas e subindex disponíveis para a propriedade
em questão. Neste exemplo abaixo, escolhemos o parâmetro TwinCAT, onde podemos identificar
a tablela índice “0” e tabela índice “1”:

(https://infosys.beckhoff.com/content/1033/devicemanager/54043195791476491.html?id=7727541857821058977)
Diagnósticos de PCs

5.2.2.3. nSubIdx

Os Subindex são parâmetros das tabelas, que podem ser acessados via PLC:

Com relação aos subindex, é muito importante prestar bastante atenção no tipo de variável que
o parâmetro possui, pois você precisará atribuir um tipo similar no PLC.

No geral, sugerimos as atribuições abaixo:

- DWORD: para UNSIGNED16 e UNSIGNED32

- STRING: para VISIBLE STRING


Diagnósticos de PCs

5.3. Os blocos mais usuais são:


5.3.1. FB_MDP_ReadElement  Com este bloco é possível ler todos os parâmetros das três areas o
E_MDP_AddrArea:

5.3.2. FB_MDP_ScanModules  Com este bloco, é possível identificar quantos módulos existem
para cada propriedade e qual é o ID individual de cada módulo ( ex: quantas portas Ethernet existem
no PC):

5.3.3. FB_MDP_SplitErrorID: Caso você queira mostrar os erros em uma IHM, por exemplo, é
sugerido utilizar esse bloco. A ideia é este bloco receber uma variável de ErrorID dos demais
blocos, para que ele possa separar o código em um grupo e tipo de erro:
Diagnósticos de PCs

5.3.4. FB_MDP_NIC_Read  Com este bloco, é possível ler todas as informações pertinentes às
conexões de rede (portas Ethernet):

5.3.5. FB_MDP_NIC_Write_IP  Com este bloco, é possível alterar configurações das portas de rede
via PLC:

5.3.6. FB_MDP_CPU_Read  Este bloco serve para fazer uma leitura do quanto o TwinCAT está
consumindo do hardware de forma mais fácil e é aplicável à todos os PCs da Beckhoff. É
sugerido que a leitura seja feita com ciclos de tempos >=500ms, para que não consuma de forma
desnecessária processamento de CPU. Esse tipo de informação não tem a necessidade de ter
uma leitura com os tempos de ciclo de PLC:
Diagnósticos de PCs

5.4. Os blocos apresentados no item anterior são apenas alguns exemplos dos
mais utilizados. Dependendo na necessidade da aplicação, pode-se incluir no
projeto os demais blocos!

6. Como acessar as informações do hardware (serviço MDP) via TwinCAT PLC.

6.1. Em uma solução do TwinCAT (aplicação), adicione a biblioteca TC2_MDP

6.2. Nesta biblioteca adicionada, haverão dois grupos de blocos:

6.2.1. Genéricos: Servem basicamente para qualquer modelo de CPU


Diagnósticos de PCs

6.2.2. Específicos: São blocos que acessam direto a informação desejada, mas não servem
para qualquer modelo de CPU

6.3. No exemplo utilizamos uma CPU Embedded CX5140, e criamos uma


sequência lógica para ler alguns parâmetros de diagnósficos básicos como
demonstração.

6.4. Dentre todas as informações que o hardware disponibiliza, vamos ler


somente algumas, conforme indicadas abaixo:
 Nome da CPU

 % de uso atual da CPU

 Informações sobre o sistema operacional

 Dados da placa mãe (número de série, modelo, tempo de operação)

IMPORTANTE: Conforme mencionado anteriormente, muitas informações poderão ser acessadas!


Neste documento, estamos apenas apresentando um exemplo de sequência de leitura! Alguns dos
dados acima que serão acessados, são dados estáticos, ou seja, vamos apresentar um código
otimizado para leitura unica.

6.5. Foi desenvolvido o seguinte código/sequência:

NOTA: É importante mencionar que a biblioteca TC2_MDP.lib é aberta e possibilita inúmeras formas de implementação!

Cabe ao desenvolvedor analisar e verificar quais serão as informações que desejará coletar o diagnósticar e como desejará
implementá-las da melhor forma possível no programa de PLC.

Vale lembrar que, para facilicar o diagnóstico, é altamente recomendado implementar a tratativa de erros dos blocos de
função implementados e utilizar também como auxílio o bloco FB_MDP_SplitErrorID.
Diagnósticos de PCs

7. Versão.
Versão 1.0 – Autor: Eng. Marcos José de Souza Rodrigues

8. Suporte Técnico.
Para eventuais dúvidas e problemas favor entrar em contato:

 BECKHOFF São Paulo (11) 4126-3232

 E-mail: support@beckhoff.com.br

Você também pode gostar