wincc professional plc code display

Upload: leo-cruz

Post on 10-Jan-2016

614 views

Category:

Documents


0 download

DESCRIPTION

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.

TRANSCRIPT

  • s WinCC V1X Professional - PLC code display

    29/12/2014 Pgina 1 / 16 s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline

    WinCC V1X

    Uso de PLC code display para monitoramento de lgica do PLC

    Denilson Pegaia

    Objetivo: indicar os passos necessrios para configurar o objeto PLC code display no

    WinCC Professional V1X de modo a visualizar a lgica do PLC.

    Aviso: Este documento apresenta dicas e exemplos sobre o produto e supe que o leitor possua conhecimento bsico prvio sobre o mesmo. Para informaes completas e atualizadas, deve-se consultar o manual do produto. O intuito deste

    texto meramente didtico, podendo ser alterado pela Siemens sem aviso prvio. Os exemplos devem ser adaptados ao uso

    final e exaustivamente testados antes de utilizados em projetos reais.

    ndice

    1. Introduo ...................................................................................................................... 1

    2. Procedimento de configurao. ...................................................................................... 3

    3. Referncias .................................................................................................................. 16

    4. Suporte tcnico ............................................................................................................ 16

    1. Introduo

    A partir da verso 13 do WinCC Professional Runtime, est disponvel o objeto PLC code

    display. Este objeto permite que se visualize a lgica do PLC online em aplicaes de

    WinCC Professional Runtime sem a necessidade do software de configurao do PLC

    (STEP 7).

  • s WinCC V1X Professional - PLC code display

    29/12/2014 Pgina 2 / 16 s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline

    Configurao Na janela de inspeo possvel fazer algumas configuraes bsicas, como estilos e cores. Visualizao da lgica do PLC O objeto PLC code display permite que se visualizem lgicas do PLC feitas em linguagem de contatos (LAD) e blocos (FBD). possvel tambm ver lgicas sequencias (S7-GRAPH). Apenas um conjunto restrito de tipos de instrues pode ser visualizado pelo objeto PLC code display. A tabela a seguir indica estas instrues:

    Conjunto de instrues 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

    Atribuio de valor Atribuio de valor

    FLIP FLOP FLIP FLOP

    A seleo de que parte da lgica do PLC ser vai ser apresentada determinada atravs de chamada de funes especficas (via C script):

    OpenViewerIECPLByAssigment: ajusta o objeto PLC code display para apresentar a parte da lgica que atribui valor a uma determinada varivel, dentro de um bloco de programao. Se a varivel recebe valores em mais de um ponto da lgica, ser apresentado a primeira destas atribuies. Atravs dos botes do objeto possvel ao usurio navegar entre as diferentes atribuies.

    OpenViewerIECPLByCall: ajusta o objeto PLC code display para apresentar a parte da lgica que atribui valor a uma determinada entrada (pino) na chamada de um bloco.

    Notas

    O objeto "PLC Code Display" no pode ser usado em grupos ou faceplates.

    Aps a alterao do programa do PLC recomendado reiniciar a execuo do

    WinCC runtime.

  • s WinCC V1X Professional - PLC code display

    29/12/2014 Pgina 3 / 16 s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline

    2. Procedimento de configurao.

    A configurao feita nos seguintes passos:

    1.1. Inserir o objeto na tela

    O objeto PLC code display est disponvel no menu direita (Toolbox) na diviso

    Controls:

    1.2. Criar script

    A seleo de que parte da lgica do PLC vai ser apresentada determinada atravs de

    chamada de funes especficas (via C script). Os scripts podem ser criados

    diretamente em objetos (por exemplo, no evento On Click de um boto), ou criados

    como funes / sub-rotinas para serem chamados nestes objetos, com passagem de

    parmetros.

    A criao de scripts como funes / sub-rotinas, tem a vantagem de centralizar o

    algoritmo num nico ponto, facilitando a manuteno e o desenvolvimento do projeto.

    Nos tpicos seguintes sero mostrados exemplos de funes / sub-rotinas.

    1.2.1. Monitorando varivel de sada

    O objetivo desta sub-rotina criar um ambiente adequado e padronizado para a

    chamada da funo OpenViewerIECPLByAssigment.

    Ao criar uma funo / sub-rotina, podem-se especificar parmetros que vo ser

    passados na chamada. Esta definio feita na janela de inspeo.

  • s WinCC V1X Professional - PLC code display

    29/12/2014 Pgina 4 / 16 s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline

    Os parmetros definidos neste exemplo so:

    ScreenName: string que descreve o nome da tela onde est o objeto PLC

    code display a ser endereado.

    ObjectName: string que descreve o nome do objeto PLC code display a ser

    endereado.

    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 varivel de sada que dever

    ser monitorada.

  • s WinCC V1X Professional - PLC code display

    29/12/2014 Pgina 5 / 16 s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline

    Exemplo de script comentado

    Comentrios 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

    Incluso de definies padro (default para aplicaes com WinCC Professional):

    0010 #include "GlobalDefinitions.h" // add standard deffinitions

    Definio do cabealho: sem varivel de retorno (no necessrio), definio de

    variveis a serem passadas para a rotina conforme propriedades definidas na janela

    de inspeo.

    0011 void C_OpenCodeViewer_Assig(char* ScreenName, char* ObjectName, char*

    CPUName, char* BlockName, char* OperandName)

    Incio da rotina:

    0012 { 0013

    Incluso de biblioteca prpria 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 Pgina 6 / 16 s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline

    Definio de variveis internas: no geral, os parmetros so copiados para variveis

    internas por questo de organizao. A varivel error retorna informaes de erro

    na chamada da funo. A funo OpenViewerIECPLByAssigment retorna 1 se

    houve erro em sua execuo (a varivel result coleta esta informao).

    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 funo OpenViewerIECPLByAssigment: as varivies do cabealho

    so passadas para a funo.

    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

    Diagnsticos de falha: esta parte do programa opcional. Caso haja alguma falha

    durante a execuo, a varivel result retornar o valor 1. Estando result com o

    valor 1, ser impresso (funo printf) no objeto um texto fixo mais os valores de

    detalhes do erro, conforme varivel 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 Pgina 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 funo OpenViewerIECPLByCall.

    Ao criar uma funo / sub-rotina, podem-se especificar parmetros que vo ser

    passados na chamada. Esta definio feita na janela de inspeo.

    Os parmetros definidos neste exemplo so:

    screenName: string que descreve o nome da tela onde est o objeto PLC

    code display a ser endereado.

    objectName: string que descreve o nome do objeto PLC code display a ser

    endereado.

    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 monitorao.

    pinName: string que define o nome da varivel de entrada que do bloco

    definido em calledBlock e que servir de ponto focal para a monitorao.

  • s WinCC V1X Professional - PLC code display

    29/12/2014 Pgina 8 / 16 s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline

    Exemplo de script comentado

    Comentrios 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

    Incluso de definies padro (default para aplicaes com WinCC Professional):

    0010 #include "GlobalDefinitions.h"

    Definio do cabealho: sem varivel de retorno (no necessrio), definio de

    variveis a serem passadas para a rotina conforme propriedades definidas na janela

    de inspeo.

    0011 void C_OpenCodeViewe_Call(char* screenName, char* objectName, char* cpuName, char* containingBlock, char* calledBlock, char* pinName)

    Incio da rotina:

    0012 {

    0013

    Incluso de biblioteca prpria 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 Pgina 9 / 16 s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline

    Definio de variveis internas: no geral, os parmetros so copiados para variveis

    internas por questo de organizao. A varivel error retorna informaes de erro

    na chamada da funo. A funo OpenViewerIECPLByCall retorna 1 se houve

    erro em sua execuo (a varivel result coleta esta informao).

    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 funo OpenViewerIECPLByCall: as variveis do cabealho so

    passadas para a funo.

    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

    Diagnsticos de falha: esta parte do programa opcional. Caso haja alguma falha

    durante a execuo, a varivel result retornar o valor 1. Estando result com o

    valor 1, ser impresso (funo printf) no objeto um texto fixo mais os valores de

    detalhes do erro, conforme varivel 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 Pgina 10 / 16 s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline

    1.3. Chamada do script

    Neste exemplo os scripts so chamados a partir de botes.

    1.3.1. Monitorando varivel de sada

    Neste caso usa-se a rotina C_OpenCodeViewer_Assig (vide 1.2.1).

    Os parmetros so passados como strings, exceto meno em contrrio:

    Parmetros:

    ScreenName: Nome da tela onde o objeto PLC code display. O nome da tela pode ser

    obtido nas propriedades da tela (General / Name), ttulo das propriedades ou estrutura

    de diretrios:

  • s WinCC V1X Professional - PLC code display

    29/12/2014 Pgina 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 ttulo das propriedades:

    CPUName: Nome da CPU a ser monitorada. O nome da CPU pode ser obtido da

    estrutura de diretrios ou nas propriedades da CPU, diretrio General / Project

    Information / Name.

  • s WinCC V1X Professional - PLC code display

    29/12/2014 Pgina 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 varivel de sada a ser monitorada. Ela serve de referncia

    para a representao do segmento (network) a ser monitorado.

    Para o caso de variveis globais, usar o nome simblico da varivel (por exemplo,

    Tag_1). Para o caso de variveis locais, usar o nome simblico da varivel, precedido

    de # (por exemplo, #out).

  • s WinCC V1X Professional - PLC code display

    29/12/2014 Pgina 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 parmetros so passados como strings, exceto meno em contrrio:

    Parmetros:

    ScreenName: Nome da tela onde o objeto PLC code display. O nome da tela pode ser

    obtido nas propriedades da tela (General / Name), ttulo das propriedades ou estrutura

    de diretrios:

  • s WinCC V1X Professional - PLC code display

    29/12/2014 Pgina 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 ttulo das propriedades:

    CPUName: Nome da CPU a ser monitorada. O nome da CPU pode ser obtida da

    estrutura de dirtrios ou nas propriedades da CPU, diretrio General / Project

    Information / Name.

  • s WinCC V1X Professional - PLC code display

    29/12/2014 Pgina 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 Pgina 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. Referncias

    Um projeto exemplo pode ser acessado no Frum Siemens para automao 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 tcnico

    Siemens Industry Sector Customer Service Division / Service Delivery

    - Technical Support & Hotline

    Requisio 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