Buscar

280275188 WinCC Professional PLC Code Display (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 1 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
WinCC V1X 
Uso de “PLC code display” para monitoramento de lógica do PLC 
 
Denilson Pegaia 
Objetivo: indicar os passos necessários para configurar o objeto “PLC code display” no 
WinCC Professional V1X de modo a visualizar a lógica do PLC. 
Aviso: Este documento apresenta dicas e exemplos sobre o produto e supõe que o leitor possua conhecimento básico 
prévio sobre o mesmo. Para informações completas e atualizadas, deve-se consultar o manual do produto. O intuito deste 
texto é meramente didático, podendo ser alterado pela Siemens sem aviso prévio. Os exemplos devem ser adaptados ao uso 
final e exaustivamente testados antes de utilizados em projetos reais. 
Índice 
 
1. Introdução ...................................................................................................................... 1 
2. Procedimento de configuração. ...................................................................................... 3 
3. Referências .................................................................................................................. 16 
4. Suporte técnico ............................................................................................................ 16 
 
1. Introdução 
 
 
A partir da versão 13 do WinCC Professional Runtime, está disponível o objeto “PLC code 
display”. Este objeto permite que se visualize a lógica do PLC online em aplicações de 
WinCC Professional Runtime sem a necessidade do software de configuração do PLC 
(STEP 7). 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 2 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
 
Configuração 
Na janela de inspeção é possível fazer algumas configurações básicas, como estilos e 
cores. 
 
Visualização da lógica do PLC 
 
O objeto “PLC code display” permite que se visualizem lógicas do PLC feitas em linguagem 
de contatos (LAD) e blocos (FBD). É possível também ver lógicas sequencias (S7-GRAPH). 
 
Apenas um conjunto restrito de tipos de instruções pode ser visualizado pelo objeto “PLC 
code display”. A tabela a seguir indica estas instruções: 
 
Conjunto de instruções que podem ser visualizadas pelo objeto “PLC code display” 
Em linguagem de contatos (LAD) Em linguagem de blocos (FBD) 
Contato normalmente aberto AND 
Contato normalmente fechado OR 
 OU Exclusivo 
NOT NOT 
SET SET 
RESET RESET 
Atribuição de valor Atribuição de valor 
FLIP FLOP FLIP FLOP 
 
A seleção de que parte da lógica do PLC será vai ser apresentada é determinada através 
de chamada de funções específicas (via C script): 
 
 OpenViewerIECPLByAssigment: ajusta o objeto “PLC code display” para 
apresentar a parte da lógica que atribui valor a uma determinada variável, dentro de 
um bloco de programação. 
 
Se a variável recebe valores em mais de um ponto da lógica, será apresentado a 
primeira destas atribuições. Através dos botões do objeto é possível ao usuário 
navegar entre as diferentes atribuições. 
 
 OpenViewerIECPLByCall: ajusta o objeto “PLC code display” para apresentar a 
parte da lógica que atribui valor a uma determinada entrada (pino) na chamada de 
um bloco. 
 
 
 
Notas 
 
 O objeto "PLC Code Display" não pode ser usado em grupos ou faceplates. 
 Após a alteração do programa do PLC é recomendado reiniciar a execução do 
WinCC runtime. 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 3 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
2. Procedimento de configuração. 
 
A configuração é feita nos seguintes passos: 
1.1. Inserir o objeto na tela 
O objeto “PLC code display” está disponível no menu à direita (“Toolbox”) na divisão 
“Controls”: 
 
 
 
 
1.2. Criar script 
 
A seleção de que parte da lógica do PLC vai ser apresentada é determinada através de 
chamada de funções específicas (via C script). Os scripts podem ser criados 
diretamente em objetos (por exemplo, no evento “On Click” de um botão), ou criados 
como funções / sub-rotinas para serem chamados nestes objetos, com passagem de 
parâmetros. 
 
A criação de scripts como funções / sub-rotinas, tem a vantagem de centralizar o 
algoritmo num único ponto, facilitando a manutenção e o desenvolvimento do projeto. 
Nos tópicos seguintes serão mostrados exemplos de funções / sub-rotinas. 
 
1.2.1. Monitorando variável de saída 
 
O objetivo desta sub-rotina é criar um ambiente adequado e padronizado para a 
chamada da função “OpenViewerIECPLByAssigment”. 
 
Ao criar uma função / sub-rotina, podem-se especificar parâmetros que vão ser 
passados na chamada. Esta definição é feita na janela de inspeção. 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 4 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
 
 
 
Os parâmetros definidos neste exemplo são: 
 
 ScreenName: string que descreve o nome da tela onde está o objeto “PLC 
code display” a ser endereçado. 
 ObjectName: string que descreve o nome do objeto “PLC code display” a ser 
endereçado. 
 CPUName: string que descreve o nome da CPU a ser acessada pelo objeto 
“PLC code display”. 
 BlockName: string que descreve o nome do bloco a ser monitorado pelo 
objeto “PLC code display”. 
 OperandName: string que descreve o nome da variável de saída que deverá 
ser monitorada. 
 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 5 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
Exemplo de script comentado 
 
Comentários iniciais: 
0001 /* 
0002 
0003 This fuction call OpenViewerIECPLByAssignment with correct eviroment / 
parameters 
0004 
0005 OpenViewerIECPLByAssignment is used for the LAD and FBD languages by 
Code Viewer object. 
0006 It shows the assignment to an operator (program related to a "coil"). 
0007 
0008 */ 
0009 
 
Inclusão de definições padrão (default para aplicações com WinCC Professional): 
 
0010 #include "GlobalDefinitions.h" // add standard deffinitions 
 
 
Definição do cabeçalho: sem variável de retorno (não é necessário), definição de 
variáveis a serem passadas para a rotina conforme propriedades definidas na janela 
de inspeção. 
 
0011 void C_OpenCodeViewer_Assig(char* ScreenName, char* ObjectName, char* 
CPUName, char* BlockName, char* OperandName) 
 
Início da rotina: 
0012 { 
0013 
 
Inclusão de biblioteca própria para uso do objeto “PLC code display” 
0014 // add libraries 
0015 #pragma code("KOPAPI.dll") 
0016 #include "kopapi.h" 
0017 #pragma code() 
0018 
 
 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 6 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
Definição de variáveis internas: no geral, os parâmetros são copiados para variáveis 
internas por questão de organização. A variável “error” retorna informações de erro 
na chamada da função. A função “OpenViewerIECPLByAssigment” retorna “1” se 
houve erro em sua execução (a variável “result” coleta esta informação). 
0019 // Variable definitions for fuction call 
0020 char* pServerPrefix= NULL; 
0021 char* pCPUName = CPUName; // CPU's name to be monitored 
0022 char* pContainingBlock = BlockName; // Block's name to be monitored 
 //(OB, FC, DB, Instance DB) 
0023 char* pOperand = OperandName; // Operand's name to be monitored 
0024 CMN_ERROR error; // Error description 
0025 
0026 BOOL result; // 0 means that the fuction was 
executed without errors 
0027 
 
Chamada da função OpenViewerIECPLByAssigment: as variávies do cabeçalho 
são passadas para a função. 
0028 // function call 
0029 result = OpenViewerIECPLByAssignment(0, // DWFLAGS: Bit array, 0 by 
default (i.e open TIA in 
online mode). 
KOPAPI_FLAG_TIAPORTAL_SUPPRE
SS_PROGRAM_STATUS=0x0004: 
Open TIA in offline mode. 
0030 pServerPrefix, // Server Prefix: NULL 
0031 ScreenName, // Screen Name where Code 
Viewer object is used 
0032 ObjectName, // Name of Code Viewer 
object 
0033 pCPUName, // PLC name to be monitored 
0034 pContainingBlock, // Name of the Block to be 
monitored 
0035 pOperand, // Operand to be monitored 
0036 &error); // Error description 
0037 
 
Diagnósticos de falha: esta parte do programa é opcional. Caso haja alguma falha 
durante a execução, a variável “result” retornará o valor “1”. Estando “result” com o 
valor “1”, será impresso (função printf) no objeto “ “ um texto fixo mais os valores de 
detalhes do erro, conforme variável “error”. 
0038 // check for errors, and print a log if necessary 
0039 if(!result) 
0040 { 
0041 // there are only few reasons why the call to 
 OpenViewerIECPLByAssignment will 
0042 // fail, in most cases the viewer control could not be found 
0043 // most of the errors have to be handled in the OnError event of the 
 viewer 
0044 printf("OpenViewerIECPLByAssignment failed: err1=%ld, err2=%ld, 
err3=%ld, err4=%ld, err5=%ld, text=\"%s\"\r 
\n", result, error.dwError1, error.dwError2, error.dwError3, 
error.dwError4, error.dwError5, error.szError- 
Text); 
0045 } 
 
 
Fim da rotina: 
0046 
0047 } 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 7 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
1.2.2. Monitorando entrada de bloco 
 
 
 
O objetivo desta sub-rotina é criar um ambiente adequado e padronizado para a 
chamada da função “OpenViewerIECPLByCall”. 
 
Ao criar uma função / sub-rotina, podem-se especificar parâmetros que vão ser 
passados na chamada. Esta definição é feita na janela de inspeção. 
 
 
Os parâmetros definidos neste exemplo são: 
 
 screenName: string que descreve o nome da tela onde está o objeto “PLC 
code display” a ser endereçado. 
 objectName: string que descreve o nome do objeto “PLC code display” a ser 
endereçado. 
 cpuName: string que descreve o nome da CPU a ser acessada pelo objeto 
“PLC code display”. 
 containingBlock: string que descreve o nome do bloco a ser monitorado pelo 
objeto “PLC code display”. 
 calledBlock: string o bloco que esta sendo chamado dentro do 
containingBlock e que servirá de ponto focal para a monitoração. 
 pinName: string que define o nome da variável de entrada que do bloco 
definido em “calledBlock” e que servirá de ponto focal para a monitoração. 
 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 8 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
Exemplo de script comentado 
 
Comentários iniciais: 
0001 /* 
0002 
0003 This fuction call OpenViewerIECPLByCall with correct eviroment / 
parameters 
0004 
0005 OpenViewerIECPLByCall is used for the LAD and FBD languages by Code 
Viewer object. 
0006 It shows the assignment to an operator (program related to a called 
block's input). 
0007 
0008 */ 
0009 
 
Inclusão de definições padrão (default para aplicações com WinCC Professional): 
 
 
0010 #include "GlobalDefinitions.h" 
 
 
 
 
Definição do cabeçalho: sem variável de retorno (não é necessário), definição de 
variáveis a serem passadas para a rotina conforme propriedades definidas na janela 
de inspeção. 
 
 
0011 void C_OpenCodeViewe_Call(char* screenName, char* objectName, char* 
cpuName, char* containingBlock, char* calledBlock, char* pinName) 
 
Início da rotina: 
0012 { 
0013 
 
Inclusão de biblioteca própria para uso do objeto “PLC code display” 
0014 
0015 // add libraries 
0016 #pragma code("kopapi.dll") 
0017 #include "kopapi.h" 
0018 #pragma code() 
0019 
 
 
 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 9 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
Definição de variáveis internas: no geral, os parâmetros são copiados para variáveis 
internas por questão de organização. A variável “error” retorna informações de erro 
na chamada da função. A função “OpenViewerIECPLByCall” retorna “1” se houve 
erro em sua execução (a variável “result” coleta esta informação). 
 
0020 // Variable definitions for fuction call 
0021 
0022 char* serverPrefix = ""; 
0023 CMN_ERROR error; // Error description 
0024 
0025 BOOL result; // 0 means that the fuction was executed without errors 
0026 
0027 
Chamada da função OpenViewerIECPLByCall: as variáveis do cabeçalho são 
passadas para a função. 
 
 
0028 result = OpenViewerIECPLByCall(0, // DWFLAGS: Bit array, 0 by 
default(the complete pin name is 
compared to lpszPin); 
IECPLVIEWER_PIN_SUBSTRING_SEARCH=
0x0001: the pin name starts with 
the string pass in lpszPin. 
0029 serverPrefix, // Server Prefix: NULL 
0030 screenName, // Screen Name where Code Viewer 
object is used 
0031 objectName, // Name of Code Viewer object 
0032 cpuName, // PLC name to be monitored 
0033 containingBlock,//Name of the Block to be monitored 
0034 calledBlock, // Name of the Block called in the 
monitored's block 
0035 pinName, // Input name of the called Block to 
be monitored 
0036 &error); // Error description 
0037 
0038 
 
Diagnósticos de falha: esta parte do programa é opcional. Caso haja alguma falha 
durante a execução, a variável “result” retornará o valor “1”. Estando “result” com o 
valor “1”, será impresso (função printf) no objeto “ “ um texto fixo mais os valores de 
detalhes do erro, conforme variável “error”. 
 
 
0039 if(!result) 
0040 { 
0041 // there are only few reasons why the call to OpenViewerIECPLByCall 
will fail, in most cases the viewer control could not be found 
0042 // most of the errors have to be handled in the OnError event of the 
viewer 
0043 printf("OpenViewerIECPLByCall failed: err1=%ld, err2=%ld, err3=%ld, 
err4=%ld, err5=%ld, text=\"%s\"\r\n", result, error.dwError1, 
error.dwError2, error.dwError3, error.dwError4, error.dwError5, 
error.szErrorText); 
0044 } 
0045 
0046 
 
Fim da rotina: 
 
0047 } 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 10 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
 
1.3. Chamada do script 
Neste exemplo os scripts são chamados a partir de botões. 
1.3.1. Monitorando variável de saída 
Neste caso usa-se a rotina “C_OpenCodeViewer_Assig” (vide 1.2.1). 
Os parâmetros são passados como strings, exceto menção em contrário: 
 
 
Parâmetros: 
ScreenName: Nome da tela onde o objeto “PLC code display”. O nomeda tela pode ser 
obtido nas propriedades da tela (General / Name), título das propriedades ou estrutura 
de diretórios: 
 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 11 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
Object name: Nome do objeto “PLC code display”. O nome do objeto pode ser obtido 
nas propriedades da tela (Miscellaneous / Name) ou título das propriedades: 
 
CPUName: Nome da CPU a ser monitorada. O nome da CPU pode ser obtido da 
estrutura de diretórios ou nas propriedades da CPU, diretório General / Project 
Information / Name. 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 12 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
 
BlockName: Nome do bloco a ser monitorado. No caso de FB, usar o nome do instance 
DB: 
 
OperandName: nome da variável de saída a ser monitorada. Ela serve de referência 
para a representação do segmento (network) a ser monitorado. 
Para o caso de variáveis globais, usar o nome simbólico da variável (por exemplo, 
“Tag_1”). Para o caso de variáveis locais, usar o nome simbólico da variável, precedido 
de “#” (por exemplo, “#out”). 
 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 13 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
1.3.2. Monitorando entrada de bloco 
Neste caso usa-se a rotina “C_OpenCodeViewer_Call” (vide 1.2.2). 
Os parâmetros são passados como strings, exceto menção em contrário: 
 
 
 
Parâmetros: 
ScreenName: Nome da tela onde o objeto “PLC code display”. O nome da tela pode ser 
obtido nas propriedades da tela (General / Name), título das propriedades ou estrutura 
de diretórios: 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 14 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
Object name: Nome do objeto “PLC code display”. O nome do objeto pode ser obtido 
nas propriedades da tela (Miscellaneous / Name) ou título das propriedades: 
 
CPUName: Nome da CPU a ser monitorada. O nome da CPU pode ser obtida da 
estrutura de dirtórios ou nas propriedades da CPU, diretório General / Project 
Information / Name. 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 15 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
 
ContainingBlock: Nome do bloco a ser monitorado. No caso de FB, usar o nome do 
instance DB: 
 
CalledBlock: nome do bloco cuja chamada deve ser monitorada. No caso de FB, usar 
o instance DB. No caso de FB muiltinstance, usar o nome do Multiinstance, precedido 
por “#” (por exemplo, “#My_Block2_Instance”). 
 
 
s WinCC V1X Professional - PLC code display 
 
29/12/2014 Página 16 / 16 
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline 
 
 
PinName: nome do pino de entrada do bloco cuja chamada deve ser monitorada. 
 
3. Referências 
 
Um projeto exemplo pode ser acessado no Fórum Siemens para automação industrial, sob 
link: 
https://www.automation.siemens.com/BR/forum/guests/PostShow.aspx?PageIndex=1&PostI
D=531865&Language=en&onlyInternet=False#top 
4. Suporte técnico 
 
Siemens Industry Sector 
Customer Service Division / Service Delivery 
- Technical Support & Hotline – 
 
Requisição de suporte: www.siemens.com.br/Hotline/SR 
Tel.: +55 0800 7 73 73 73 
 
Portal de Suporte: www.siemens.com.br/Hotline 
 
Homepage Brasil: www.siemens.com.br

Outros materiais