You are on page 1of 169
Solugées AVEVA Functions leeras \o oe . "Grou, aaa i) oS e ee S a Objects + _= By, Object Blocks) IF ( ae PMLLIB LE 4 nem] Om mea w: NV ao Ne __ot09) "Oot, PMLID = Linguagem de =a Programacao a i M33 - Linguagem de Programagao de Macros e Customizacao de Menus e Formularios AVEVA ~ PML e PML II Modulo 33 Material Desenvolvido pela Endpoint Solugées Integradas Ltda. Distribuidora AVEVA no Brasil Versdo 11.6 SP4 BDenapoin AVEVA Manual de Treinamento em Administragdo Avangada Programming Macro Language ~ PDMS ~ M33 PML2 + Forms & Menus - AVEVA PDMS. Médulo 33 Informagées sobre este materia! didatico: Edicao: 1# Edigho Revisada Versao: 1.0 DatadaRevisto: 10/09/2007 Data da Vorsio: 10/09/2007 em PDMS 11.6 SP4 Redagao: Distribuidor AVEVA no Brasil Av. Dr. Nelson D’Avila, 389, Piso 7 - Ed. Tech Tower —Centro CEP. 12245-0380 Sao José dos Campos - SP - Brasil Fone; +85 (12) 3924-1010 Fax; 455 (12) 3924-1011 ‘internet: wwow.endooint.com.br Reservados todos os direitos. € proibida a duplicagae au reprodugéo desse volume, no todo ou em arte, sob quaisquer formas ou por quaisquer meios (eletrénico, mecanico, gravagao, folocépia, distribuigao na Web ou outros) sem permissao expressa da Endpoint Solugdes Inlegradas Lida. AVEVA, VPD, PDMS, CADcentre, TRIBON, Review e Review LE so marcas registradas da AVEVA Solutions Limited. 999 99II9III898I9II3IIIIIIIIIIIIIIIIIIIIIBIIIIIIIIIIIIIG lndice “Treinamento om PAL + Fores & Mons AVEVA POMS 11.5 SP4 Contetido Capitulo 1 Ig 1.4-Foco - 4.2-Objetivos... 1.3-Pré-requisitos 2.1-PML Programmable Macro Language... 2.2-PML2 — Uma linguagem mais poderosa. 3.1-Uma macro simples.. 3.2-0 Comando OUTPUT .. 3.3-Comunicagées com os pradutos AVEVA em PML. 8.6-Singnimos recursivos 2.7-Apagando Sinénimos Exerciclo 1 The Spongle 4.1-Variaveis do.tipo Numérica 4.2Nariavels do tipo,Nome 4.2.1-Configurando varidveis do tipo nome Ipos de variaveis do PMLZ.......... Cnando variéveis. Expandindo variéveis 3-Expressoes . . essen 3 4-Operadores de Expressao . 4.3, 7 Precedéncia de operadores ABB-Arays.... Exercicio 2 - Spongle com tamanho variavel Solugdo do Exercicio 2: Capitulo 5 ~27 5-Controlando 0 .27 5.1-Lago DO 27 5.1.1-Lago DO simples... §.1.2-Lagos DO com BREAK endpoint Solugées Integracas Lida Profblda a roproducso sem prévin autorlzagio ‘Troinamonto PML + Forms & Menus ‘AVEVA PDMS 11.6 SP4 5.1.3-Lagos DO com SKIP ... 5.1.4-DO Index e DO Values 5.1.5-Exemplos de lagos DO. 5.2-Expressao IF . 5.2.1-A forma mais simple do construtor IF. 5.2.2-Expressbes IF, THEN, ELSEIF, ELSE. 5.2.3-Sailo (deve ser evitado) ... 5.2.4-Saltos condicionais.... Exerciclo 3 - 0 Spongle Completo Solusée do Exercicio a ate 6 xprese6es joleanas © condicionais IF 6.1-Expressao boleana simples .. 6.2-Convertendo um valor para BOOLEAI 6.3-Expressées booleanas valida 6.4-Expressbes boleanas invalidas 6.5 Expresses boleanas compal 13-Usando Métoa 13.1-O que & um méto 18.2-Goncatenagao de métodos . endpoint Solugbes Intogradas Lida Proibida a reprodugse com prévia autorizagso 2d 2d dd DdIDDIIDIIIIIIIIIIIIIFIIIIIIIIIIIIIIIIFNIIIIG Incioe Tiainamento PML + Forms & Momus AVEVA POMS 11.6 SPS Capitulo 14 44-Objeto Alert. ‘57 14.1-Objeto Alert sem retorno .. . 14.2- -Objeto Al Alert nique retornart valores Capitulo 15. 60 15-Formularios.. 15.1-Formulérios so abjetos globais........ 15.2-Carregamento dinamico de Objetos, Formularios © Fungdes - 15.3-Definigao do formulério ... . 15.4-.NET framework .. 15.5-Dispositivos de formul 15.6-CALLBACKS it 15.7-Um formulario Simples. 15.8-Posicionamento dos dispositivos .. 15.9-Dispositivo Pardgrato (Paragraph) .. 15.10-Botées.. 15.11-Frame... 15.12-Formulérios Tabbed 15.13-Dispositivos Text 15.14-Dispositivos List 15.15-Dispositivo List mulli-colunas .. 15.16-Dispositivo TEXTPANE 15.17-Angorando (ANCHOR) dispasitivos.. Exercicio 6-Criagéo de Formulari Solugao do Exercicio 6 .. Exercicio 7—Callbacks 15.18+| Meera detinidos pelo ustiatio.. 15.19-Arrays Exemplo 8-Array_ 20-Métodos para) objetos jo 9-Manipulacao de String 192 15.22:Dispasitives Toogle .. 93 ositivo Rgroup Radio 93 Exercicio 10-Toggle and Radio Gadgets 96 Solug&o do exercicio 10: .97 415.24-Dispositivo Option (Op¢a9) ..... 99 Exercicio 14-Dispositivos Option 100 Solugao do Exercicio 11: 401 104 15.25-Membros (members) dos formularios. 15.26-O botao CE we . 15.27-Formatando dispositivos Text. 15.28-Bar Menus (Barra de menu) Exercicio 12-Menu Bar Solugao do Exercicio 1 endooin Sotugdes inlogradas La Prolbida 8 reprodugso som prévia autorlzagio indice “Treinamento PML Forms & Menus ‘AVEVA POMS 11.5 SPA Capitulo.’6..... 16-Objetos PML. 16.1-Tipos de 16.2-Objetos de ormuldros e Menus Exerciclo 13-File Browse Solugao Exercicio 4 17.1-Definindo um objeto 17.2-Usando um Objeto 17.3-Definindo um Objeto com Métod 17.4-Utilizande um método do Objeto 17.5-Método Construtor...... ics ( 18.4: exempos de EDG 19.1-A Sintaxe de COLLECTION in. Exerciclo 14-Colegées e Listas de Mul! Solugao Exercicio 14.. Capitulo 20 20- Menu Pop-Up Exercicio 15-| _ -/722.1-FlingSes PML recursivas.. ( 22/2-Quitcall .. . 2213-Destazer e Refazer (Uno e Redo)... ono 22.4-PML Traving 22.5-Alpha Log...... 22.6-Questionamento de Comendos St 22.7- Acesso ao PDMS via TTY. 23-Adicionando Menus .. 23.1-Notas gerais 23.2-Mdulos que utlizam as novas tuncionalidades AD 153 6 endpoint Solugdes Intagraces Prolblda_a reprodugso som prévia autorizacso 9999933399989 » ‘Teinamenta PML + Forms & Meaus Intice AVEVA POMS 11.6 $P4 23.3-Adicionando um Menu / Sarra de ferramentas. Convertendo aplicativos existentes... 16-Inserindo itens no menu Utilities itu jannstaveaens 24-Upgrade de PML1 para o PMLZ.... 24.1-Pontos importantes 24.2-Notas para usuarios de PML1.. DPPOVFVFFIFVVVIIFFHVFFVV9HVVI9IIIFVI9I009 endpoin! Solugdes Intogradas Lida. 7 Proibida e repradugla sem prévia autorlzagio 393599939995 091% incico Troinamento PML + Farms & Menus ‘AVEVA POMS 11.6 SP4 x, iS endpoint Solugdes Integradas Lida Proiblda a reprodugao sem prévia autorizaggo PIDIDIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIG Treinamenio em PML + Forms & Menus Invvocucs0 AVEVA PDMS 11.6 SP4 Capitulo 1-Introdugao 1,1-Foco Os seguintes pontos devem ser entendidos pelos alunos: = como 0 PML pode ser usado para customizar o PDMS = como criar fungées, formuilarios @\ebjetos ‘ = como utilizar-os recursds internos do PDMS - como utilizar 08 Addins para customizar o ambiente. 1,.2-Objetivos No final dojtéinamento vooé tera: - ampla visao da'linguagem PML - pratica basica'em geracdo de cédigo e convengdes = conhecimento de como o PML interage com o médulo Design = conhecimento de como funcionam os formulérios e menus no PML 1,3-Pré-requisitos Os participantes tém que ter completado os treinamentos de administrag&o bisica. cendpsint Solugses Iniogradas Lisa 8 Prolbida a roprodugto vem prévia autorizagio nkoueb0 ‘Treinamonto em modolagem de painéis e places SSPE ‘AVEVA POMS 11 ‘endpoint Solugtes Integradas Lida Prolblda a roprodugao som prévia autorizagio, PIFIFIDPFPIIIIFGIDIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIA Teemnamenio Pik + Forms & Menus PML Overviow AVEVA POMS 11.6 SP4 Capitulo — 2-PML Overview Macros ~ 0 que so macros e como uga-las. PML — Programmable Macro Language (Linguagem de macro programavel) PMLt — Primeira versdo do‘PMllBincluindo Loops, condicionais if , operagoas com string, labels, ete PML2 — Linguagem “orientada a objetos baseada no PML1 com as funcionalidades extendidas para ser parécida com outras linguagens orientadas a objetos (C++, Smalltalk) Forms ~ A\maloria dos aplicativos utiliza’ forms (formularios) e menus. Os aplicativos em PML também s&o baseados em formularios. 2.1-PML Programmable Macro Language Macros sao arquives no padréo ASCII contendo comandos do PDMS em seqdéncia, Macros programaveis s40 macros contendo estrutura de um programa com blocos de condigao IF ¢ Do Loops, por exemplo. Macros rodam no PDMS pelo comando, $m/NOMEDAMACRO. Qualquer bit extra na linha da macro sao tratados como parametros, endpoint Solugses Intogradas Lida Prolbida a ropradugso sem prévia autarlzapi0 PAL Ovorviow ‘Treinamento em Madelagem de Paindis ¢ Places ‘AVEVA POMS 11.6 SP $m/BUILDBOX 400 200 300 o8 trés Ullimos valores sao tratados cam o parametros 1, 2@ 3. Isto pode ser utllizado dentro de macros para ajustar Atributos | até mesmo em calculos. PDMS ou Projetada para sar facil de ler e de Amaioria das macros em PMlet presentes em PML1 a objetos. Fornece grande parte das adas a objetos exceto pela heranga. @mo (built-in) ou definido pelo usuario (user- ‘Solugéos Inogradas Les. ‘sem provia sutortza¢zo en Prolblda a repr DIIIIIIIIIIIFIIIIIIIIIIIIIIIIFIIIIIIIIIFIIIIIIIA® ® Teoinamonto PML + Forms & Menus Macros € sindnimos __ AVEVAPOMS 11.6 SP4 Capitulo 3-Macros e Sindnimos « 3.1-Uma macro simples NEW EQUIP /FRED . NEW BOX J eo Q REENO p XLEN 300-YLEN 400 ZLEN'600_ Lene de ve uo O& | . NEW CYL DIA 400 HE! 600 CONN P1,TO P2. OF PREV, Para rodar-esta macro: $M/MACRO1 » 3.2-0 Comando OUTPUT Uma.maneira de obter exemplos de comandes do PDMS é através do OUTPUT, Dessa forma podemos verificar a sintaxe dos comandos usados pelo programa para © ageracao dos elementos . op File /Bockal of L| ® Abra um arquivo a partir de uma dessas maneiras. ¥—* OUL put @ _ file felaa.txt ou —5 Tee file /c:\aa.txt over ou Salva » File /c:\aa.txt Sobre ‘endpoint Solugbes intogrades Liga Pralbida a raprodugso sem prévia sutorizagio > mM Disk Jam hore ‘Macros 0 Sinbiimas “Tioinamenio Pill + Forms & Manus ‘AVEVA POMS 11,6 SP4 ~-Exporte 0 elemento correnta OUTPUT CE ~- Feche 0 arquivo TERM CO arquivo pode ser editado através de cusio Qe Para expandir 0 co caractere § na fren ML em uma string, basta inserir 0 ® Crier va vurcccvel oe Vprimibivo = 'ROx ae © Gigy vr cleredo box > New $1 primitive DIST $iDist PML2 nao sao Case Sensitive, ou seja, nao diferencia caracteres: los de minusculos! ‘endpoint Solugées Imegradas Liga. Protblda 2 roprodugio sem prévia autorizagio 9393333999999 93999999 a9 99999 ITIGVIIIIIIIIIIIIIISG Treinamento PAL + Forms & Menus Mactos e sindrimos, AVEVA PDMS 11,6 SP 3.4-Macros Parametrizadas re el ro ‘As macros podem ser parametrizadas f° P¢°* NEW EQUIP /$1 mM ] exdemply PTL oT NEW BOX gerd wnelies LEN $2 YLEN $3 ZLEN ge \ XLEN § $3 ZLEN $4 Chive & prs NEW CYL DIA $3 HEI $4 CONN P4 TO P2 OF PREV Para rodar esta macro com os parémetros: $M/MACRO2 FRED 300 400 600 ‘ Obs: as macros podem ter no meaiga 9 ee 24S 67 6 & sMIMACRO2 TESTE GRANDE 99-00 99 345 222 444 555 As strings de texto.podem serinseridas com um tnico parametro SMIMACRO2 § 55 66 77 88 99 00 $< $> - funciona como delimitador, e todo texto inserido no seu interior é tido como um Gnico parametro. Meer oO = ws ad) 3.5-Sinénimos —> $¢ M&& = New EQUI % Torre &- Sindninios s4o abreviagdes de comandos longos e so criados da seguinte forma: | © rer sspoonew ELBO SELECT WITH STYPLRORIP1ISN 7 7 Sin6rimos podem ser parametrizados. | $4 Ab: ‘ ih £ | — \Desa’ GSYYY=NEW BOX XLEN $S1)YLEN $S2.ZLEN $83 | ‘A . Sindh wos Para chamar: YYY 1000 2000 3000 = t Le © Sinénimo YYY 6 expandido nas linhas de comando no qual ele representa e seus parametros so inseridos como em uma macro. $ocalE=$m CA Aveva \ POmSUY \ Des \Equi a cep Slugs megrades Lia iad nine 1s Prolbida a roprodugdo sem prévia aulorlzaczo Les 25 _ atucvler ap (CaN Home eqs Maci0s 0 Sin6nimos “Teeinarento PLL + Forms & Menus AVEVA POMS 11.5 SPA $QS —imprime todos os sinénimos ativos 3.6-SinG6nimos recursivos Para modificar 0 parametro N6 em diversos em uma seqiéncia de cor Comando: PARAM N6 462 NEXT $SPPP = PARAM N6 462 $/ NEXT $/ PPP Ou entdo, poder ser modificado um atributo de Comando: ISPEC /HCINSU NEXT (atributo de defini $SATTR = [SPEC /HCINSU $/ NEXT $/ A’ Nota: $/ age como a tecla ENTER. 3.7-Apagando Sinénim: Para apagar um sinénimo es FIDGDIIIIFIIDIIIIIIIIIIZQIIVQIINFGIIIIIIIIIAIA —_ a ry patel eer adn pestle jateal> we ASATTR = ispee JA cus $/ mex t Varre wchobe valor ender touened, 16 idpdint Solugbas Integradas Lida. Prolbid a coprodugéo sem préva sutorizaga 99 IIIIIIIIDI “Treinamento PML + Forms & Menus Macros e sindnimnas AVEVA PDMS 11.6 SP4 Exercicio 1 - The Spongle Escreva uma macro para construir um Spongle. Os primitivos usados s&o, box, cyl, snout e dish. © box mede: 1000 x 1000 x 1000 O cyl mede: 400 dia x 600 height & O snout mede: 600 Diop x 400 Dbot x 300 height q A dish mede: 600 dia x 300 height 939FFFFHFFFFYXF9979F99999999939999903 enspoint Solucdes intogradas Lida 7 Prolblda a reproduce sem prévia autorizngio 9FFI3Z99ZF99909 Macios # Sindrimos Solucao do Exercicio 1: NEW EQUIP /SPONGLE NEW Box XLEN 1000 YLEN 1000 ZLEN 1000 NEW CYL DIA 400 HEI 600 CONN P1 TO P3 OF PREV NEW SNOUT DTOP 600 DBOT 400 HEI 300 CONN P2 TO P2 OF PREV NEW DISH DIA 600 HEIGH 300 CONN P2 TO P1 OF PREV ADD /SPONGLE AUTO /SPONGLE ‘SMIU:\treinamento\ext.mac rr mento PML + Forms & Menus ‘AVEVA POMS 11.6 SPS ‘endpoint Sclugbes Integradas Lida. Prolbida » reproduce sem prévin autorizagao 9 I4GIIAIILIIIIGDIIILIIIDIIIIIIIIIIAIIDIIAIIZILIII333333393 ‘Troinamonto PML + Forms & Menus AVEVA PDMS 11.6 SP4 As variaveis inicializadas pela sintaxe var sAo varidvel armazenadas nos produtos AVEVA como ii possivel criar a varidvel 120. S6 podem ser usadas no médulo em que ela foi criada. ESTE TIPO DE VARIAVEL NAO E MUITO USADAII! tendpein Solugées infegradas Lida. Pralbida 3 roprodug3o sem prévia autorizagso Varidveis Tisinamonlo PML + Forms & Menus ‘AVEVA PDMS 11.6 SP 4.2-Variaveis do tipo Nome Inicializagao deste tipo de varidvel é feita da seguinte forma: Inomedavariavel ou !Inomedavariavel 1 — indica varidvel local (s6 pode ser acessada na macro onde foi criada) II — indica variavel global (pode ser acessada de qualquer médulo'e)macro) O nome deste tipo de varidvel pode conter no. maximo caracteres, do tipo alfanumérico. NUNCA inicie 0 nome de uma variével com numeros NUNCA use “." no nome de uma varidvel 4 «mods todas at varidvais Ale VAR ITEMP (23 * 1.8 + 32) — caloilla o Valor da,expressao e introduz a variavel VAR ILIST COLL ALL ELBO.FOR. CE- introduz & varidvel a referéncia de todos os elementos. Nota? apdstrofés ‘‘e barras verticais | | devem ser utilizados como delimitadores de texto. O.Var pds ica ‘EONOUO O CE © vor | posicns (P05 ——— (wow posicial 4.3-Tipés de varidveis do PML2 @) fos 4! posicao Existem quatro tipos basicos de varidveis: a pos P STRING ‘QUALQUER CARACTERE ALFANUMERICO' REAL QUALQUER VALOR NUMERICO BOOLEAN TRUE/FALSE T/F (nao pode 0/1) ARRAY QUALQUER COMBINAGAO DAS ACIMA @rvoe \Wistregui collect abl equi for a enigin Soe nea te O Whtuei 5 prod aepcbord sat ots Sharan Wetaequi £23 92 3992 ) ‘Teainamento PML + Forms & Menus Variaveis AVEVAPOMS 11.6 SPS 4.3.1-Criando variaveis Para criar varidveis do tipo: STRING LOCAL —_!Nome = ‘Endpoint REAL GLOBAL MResposta = 42 BOOLEAN GLOBAL. ITeste = TRUE ARRAY LOCAL ILista = ARRAY() !Lista(t] = O tipo da variavel € determinado automatica Iresposta = 42 - se torna Inome = ‘Fred’ - se torna STI FIFFDIOFIIIFSPFPFIOFIIOFISIIP>OHOAIIBIIIBI999 NEW BOX XLEN $!XLEN YLEN $!YLEN ZLEN $!ZLEN ‘endpoint Slugdes Inlogradas Lida ar Prolbida a reproduce som privia autorlzagio 959999999993, Varibveis Treinamenlo PML + Foms & Maeus AVEVA POMS 11.6 SP4 4.3.3-Expressées Expressées s&o calculos utilizando as varidveis do PML. Em PMLI: VAR IZ (‘SIX + ‘$IY") Nota; IZ é uma String. EmPML2; IZ=1X+1lY Nota: IZ é uma varidvel REAL e IX e lY aie e Perceba que as varidveis em PML2 sao mais sit Inserir 0 caractere $ na frente da varidvel fo1 string tx = 64 cria uma varidvel REAL TAN() SaQR() POW(, ) ACOS() ATAN() — LOG() NEGATE() ASIN() (INTO) NINT() ISENO45 = SIN(45) IPOTENCIA = POW(20,2) - mesmo que 20 elevado a 2 2 sougbosneoadas Lia, Probie a roproluet so pba store PIDIDPIDPIDIIIIIIIIIGIIIIIIIIIIFIIIIIIIIIIIIIIIIIIA Tremamenio PML + Forms & Menus Vatiéveis AVEVA POMS 11.5 SP4 VAR INEGATIVO NEGATE(3) = (MATCH (NAME OF OWNER, ‘LPX')GT 0) 43:5 Precedéncia de operadores + ey Hl yee ohet a S 1 tle! A whe ee EQ NE GTLTGELE e NOT AND oR (60° 2/3+5) =45 4.3.6-Expressées em PML2 i As expressées em/PML2 podem atingir élevado grau de complexidade, elas podem conter chamadas & outraé fungées e métodos, podem incluir valores de campos de formularios e utiliza membros,e métodos de objetos. i 4 Conf do A \ ‘ Ppt Exeniplo; a ‘newval = IImyfune(loldval) * !!form.gadget.val ! imyarray.method() 4,3.7-Usando variaveis em expressées Apéstrofos e $ nao sao necessdrios quando se deseja usar valores de varidveis em expressd@s PML2. k=64 -- aoinvésde -- VAR Ix (64) yao l= ly thx Amesma expressao em PML1 ainda é valida: VAR !2 ( ‘Sly’ + ‘$Ix’) ‘endpoint Solugoes inlogradas Lida, Prolbida a reproducso sem provi autortzago variiveis ‘Treinamonlo PML + Forms & Menus AVEVA PDMS 11.6 SPa 4.3.8-Arrays Um array, também conhecido como vetor ou lista (para arrays uni-dimensionais) ou matriz (para arrays bi-dimensionais), é uma das mais simples estrutur Os arrays armazenam uma série de elementos de dados, geralmente tamanho e tipo. Elementos individuais sfo acessados através de sua posigao, como indice do array. Em PML o array é criado automaticamente it, riage individual. a Caso 0 elemento de um array seja também wu dimensional ¢ A bt] = Ola" YA x12] = Mundo” !y[1] = ‘Endpoint’ ‘y[2] = ‘Computador’ & blt]=} Q var !2[2)[2) ‘Computador’ 26 encpoint Solugées Inlogradas Lids. Prolbida a repredugse som prévia autorizagso PIDPIPIIPIIIPIIDIIIIIIIIIIIIDIIPIIIIIIIIIIIIIIIIIIY Troinamenio PML + Forms & Menus AVEVA POMS 11,8 SP4 Exercicio 2 - Spongle com tamanho variavel Modifique a macro do exercicio 1 para aceitar parametros. eG Quantos parametras sao necessarios? | - PARAM! = NOME & Cy : - PARAM2 = 1000 - PARAMS = 400 - PARAMS = 600 - PARAMS = 300 | r 2779939999 99999999999999999900000% my ada 25 endpoint Solugdes 1a. 1 prvia nutorizagso Prolblda a reprod\ DPIIIVFFO 99 Solugao do Exercicio 2: NEW EQUIP /S1 NEW BOX XLEN $2 YLEN $2 ZLEN §2 Trolnamento PML + Forms & Menus ‘AVEVA POMS 11,6 SP4 NEW CYL DIA $3 HE! $4 & CONN P14 TO P3 OF PREV NEW SNOUT DTOP $4 DBOT $3 HEISS CONN P2 TO P2 OF PREV NEW DISH DIA $4 HEIGH $5 CONN P2 TO P1 OF PREV ADD /$1 AUTO /St S$MJU:treinamentole) Nota: ADD /$1 — insere ine © elemento aparecer na tela. ‘endpoint SoiugSes tologradas Lida. Proibida a ronroducio sem prévie autorizaga0 9999 IIFDIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIGI ‘Conteolando 0 PML ‘Treinamonto PML + Forms & Menus AVEVA POMS 11.6 SP4 5-Controlando o PM 5,1i-Lago DO \ 5.1.1-Lago DO simples XY DO ‘contador FROM 10 TO 100 BY. Cédigo em ENDDO FFFFHFHHTFFFVFVTD979999999799999999 Jo para 0 BREAK Break if (contador t 12) ou if(lx eq ly) then BREAK Endit 2 ‘endpoini Salugées intograda UI Protbida a roprodugso som pi autorlza¢80 ! ‘999923999309 ‘Controlando 9 PML Troinamonto PML + Forms & Menus ‘AVEVA POMS 11.6 SP4 5.1.3-Lagos DO com SKIP. DO Cédigo em PML Condig&o para 0 SKIP Skip if(!eontador gt 12) ENDDO 5.1.4-DO Index e DO Values Do Index 6 DO Values s80 maneiras de fazer o ftays. DO IX values ARRAY 'X recebe cada elemel ray de 1 até 0 tamanho do array me eVal name for all from Izones values Iname New text name $Ix-AAA ENDDO os 1’point Solugbes Inlagradas Lida. ratbida a reprodugso s0m prévia auorizagBo 99D IIIDIIIIIGIGIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIG DITZVDIFFFIFFIFI9HVVVFFFH9VIF93I999 99999399999 ‘Treinamanio PML + Forms & Menus AVEVA PDMS 11.6 SP4 Outro exemplo: DO Ix index Iname $iname[$!x] New text name $iname[$!x]-AAA ENDDO 5.2-Expressdo IF As expressCes IF sfo ‘endpoint Solugbes inlegradas Lida. Prolblda 8 ropredugao sem prévio autorizag30 Contolando 0 PML Conirolando © PML ‘Treinamonto PML + Forms & Menus AVEVA POMS 11,6 SP 5.2.2-Express6es IF, THEN, ELSEIF, ELSE IF (expresso) THEN Comandos PML ELSEIF (expressdo) THEN Comandos PML ELSE Comandos PML. ENDIF GOLABEL. Exemplo: LABEL /INICIO Comandos PML GOLABEL /INICIO IF (expresso) 30 int Solugdes Inlegradas Lida Prolbid @rprodugdo ser pws autoreseho DIIIDISIIDIIIPIIIIIIIIIIFIIIIIIIIIIIIIIIIIIIIIIIIII ‘Trsinamento PIL + Forms & Menus Controlando © PML. AVEVA POMS 11.6 SP4 Se (express4o) é verdadeira (TRUE) havera um salto para o label /INICIO se a expressdo for falsa 0 programa continuaré executando as linahs abai GOLABEL. Exemplo: DO le & §P Procesando $la | & DO Ib to 10 Ic=la* Ib | GOLABEL rfinal i (10 ¢ $P Produto $lo ENDDO LABEL /final 93999399 9939995999999999999999998099 DF3 9339093098 Convotando o PML ‘Teoinamenio PML + Forms & Menus ‘AVEVA POMS 11.6 SP Exercicio 3 - O Spongle Completo Modifique 0 Exercicio 2 para que seja feito a construgao do Spongle comple Quantos parametros sero necessarios? Sugest&o: Utilize o lago DO para fazer cada perna. Faga um sul cada pena ‘Solugbes Intograds Lida ends Proiblda a reprodugdo sem prévia aulerizagao DI FIDIIIIIIIFGIIIIIIIIIIMIDIIIFIIIIIIIIIIIIIZIIIIIIII ‘Teeinamento PML + Forms & Mesus Gontiolando o PML, ANEVA PDMS 11.6 SP4 Solug&o do Exercicio 3: NEW EQUIP /$1 NEW BOX /$1-BOX XLEN $2 YLEN $2 ZLEN $2 1 DO IP FROM 1706 NEW SUBE /$1-LEGSIP NEW GYL DIAS3 HEI $4 CONN Pt TO PSIP OF BOX OF /s1-BOX_ NEW SNOUT DTOP $4 DBOT $3 HE! $5 CONN P2 TO P2 OF PREV NEW DISH DIA $4 HE] $5. CONN P2 TO P1 OF PREV ENDDO ‘ ADD /$1 AUTO /$4 FFFFFFFFFFHT7VF7FV9999799999999999909 endpoint Soluges Inegradas Lids Prolbida a reprodugse sem prévia auterizagao 9992799393004 34 Controlando © Pu. ‘Tioinamanto PML + Forms 8 Menus, ‘AVEVA POMS 11.6 SP4 Soljbesintgradas Lids Preto soprodaelo som pre stares PIDMIIIIIIIIIIIIIIIIIIIIIIIIIZGIIIIIIIIIIIIIIIIIII Treinammont Pl + Forms & Menus Expresses Soleanas 0 condicionais IF AVEVA POMS 11.55P4 Capitulo 6-Expressées Boleanas e condicionais IF 6.1-Expressao boleana simples Expressdes baseadas nos operadores, como por exemplo, EQ e GT retornam valores booleanos que podem ser usados diretamente nas instrugdes IF. If (Ivalor GT 999).0r (Ivalor EQ.998) then teste = TRUE : Elself (Ivalor LT, 999)then Iteste = false) Endif Exemplo: If (temp gt 50) and (temp It 75)then $p Precisa de isolamento para protecdo pessoal Elseif (temp gt 75)then $p Precisa de Isolamento Endif ep fad - ambos vercadleire cp Or - Uwe das duas verelocleiras ‘endpoint Solugées Inlegradas Lida Prolbida » raprodugde sem prévia autorlzag3o 25 Expresstos Boleans 6 condicfonals IF ‘Treinamenie PML + Forma.& Manus AVEVA POMS 11.854 A expressao pode ser uma simples varidvel do tipo BOOLEAN. Exemplo: Werlfica = lvalor GT 0 If (IVerifica) then A expresso também pode ser uma fungao definida pelo usuario que valor BOOLEAN. Exemplo: If (Itminhafuncao())then Exemplo: Itexto = ‘TRUE? If (Itexto.Boolean()), 3-ExpressGes booleanas validas Note que as constantes booleanas TRUE, FALSE, YES, NO e suas respectivas iniciais retornam valores BOOLEAN e podem ser inseridas diretamente nas expressoes. 36 endpoin} Soluetos integradss Lida. Prolbida a reprodugio sem prévia autorizeyao DIIIISIIIIIIDIIFIIDIIIIIFIIIIIIPIIIIIPIIIIIIIIIIIIID Tieinamento PML + Forms & Menus Exprossbes Boleanas e cordicionals IF AVEVA PDMS 11.6 SP Exemplo: 1 (TRUE) e if (FALSE) — expressdo correta 1 (1) e if (F) —expressao correta It (YES) e if (NO) — expresso correta If (Y) e if (N) — expressao correta 6.4-Expressées boleanas invalidas If (1) if (0) — expressao incorreta If (TRUE?) e if (‘FALSE’) — expresso incorreta If (‘T’) elf (F) —expressao incorreta If (Slvariavel) — onde varidvel= 1-ou 0, expresso incorreta 6.5-Express6es boleanas compativeis com PML1i Varidveis do tipo STRING iniejalizadas com ‘TRUE’, ‘FALSE’, 'YES’, ‘NO’ podem ser utilizadas em.condicionais IF se forem'precedidas do caractere $. Exemplo: If ($lVariavel) — onde Ivaridvel = TRUE’ expresso correla endpsint Solugtes Integyadas Lica a Pralblda a reprodugto som pravia autorizegso Evpress6es Boloanas @ concicionals IF ‘Treinamento PML + Forms & Monus ‘AVEVA POMS 11.8 SP4 -ndpoin| Solugées Inlegradas Lida. Proibds a reprodugto sem priviasutorzagbo PIFIPIDIIIIIIIFIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIG ‘Treinamento PM + Forms & Morus Hiorarquia do PML AVEVA POMS 11.6 SP4 Capitulo _ 7-Erres e tratamentos de erros Uma condigao de erro pode ocorrer por causa-dé'lim:comarido due néo.pode ser executado corretamente ou por causa de effos de sintaxe\em macros ou fungées. Um erro normalmente possui trés efeitos: - uma caixa de alerta aparece no qual o Usuario precisa confirmar. - uma mengagem de érro e 9 retamo da investigagao do erro em todas as <>, | | - todas as miacros e fungdes em execucdo so abandonadas. macros chamadas. 7.1-Exemplo de erro Exemplo de erro onde 6 utilizada uma variavel que no existe: (2,751) ERROR Variable ITESTE does not exist © 2 representa a segao do programa que identificou 0 erro e 781 6 0 Cédigo do Etro. 7.2-Tratamentos de erros As linhas abaixo apresentam como é feild 0 tratamento de erros em PML. endpoil Solugées Inegradas Lid 2» Proltida a roprodugsa som prove autorizag§0 | ‘iorarquia do PML Um comando causa 0 Err0(2,751) Handie(2,751) Linhas executadas caso haja o erro Elsehandle(46,27) exemplo abaixo d atributo TEMP. Troinamarto PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SP endpoint Solugbes niogradas Lid Prolbida eroprodugdo sem provioautorza 29 DIIZIZIIIIIIDIIIIIIIPIDIIIIIIIIIIIIIIIIIIIIISIII DIFVIFDIF9IOIPFIAOIFIIIFIIFIIFIIOIIFIFI9F99F999997I97999999 Tieinamento PML = Forms & Menus Hiererquia do PMLt AVEVA PDMS 11.6 SP& ual !z recebe o valor REAL 96 ‘endpoint Solugbas Iniegradas Lida. “ Brolbida » reprodugso sem prévia autorizagso Hiorarquia do PML Tisinamanto PML + Founs & Manus AVEVA VANTAGE POMS 11.6 SP Todas as macros em PML1 estao em um de ambiente PDMSUI s mapeados pela variavel Ye 9.1-A variav os Definindo a variével PDA Set PDMSUl=c: pdmsui DES DRA ADMIN CLUB... GEN ADMIN PIPE — EQUI... 2 endoin Solugbes inlegradas Lida. Prolbida a reprodugao sem prévia autorizacao DIDIDIDPIIIIIIIIIDIIIIIFIIIIIIIFGIIII9II9I9I}ILII9IIII Treinamento PML + Foxms & Menus iorarquia do PML AVEVA PDMS 11.5 SP4 Todas as macros em PML1 sao chamadas usando sinénimos. Por exemplo, as macros € os formularios associados com a disciplina'de tubulagoes no Design sao chamados usando o sinénimo CALLP. $ $$ CALLP=$M/%PDMSUI%4/DES/PIPE/$S1 CALLP MPIPE 9.2-Modificacoes em PDMSUI A pratica normal de customizagao ¢ nao modificar nenhum -arquive original da AVEVA, e sim criar uma hierarquia paralela onde serao salvos todos 0s novos arquivos criados Estas customizages (presentes na hierarquia paralela) podem ser chamadas moditicando @ variével PDMSUI de forma a apontar, para outros caminhos. Set POMSUI-c:\avavalpdms1\6.sp2\pdmsul Set PDMSUI=c:\pdmsui %PDMSUI% Estas modificagdesspodem ser feitas no final do arquivo evar.bat ou no arquivo pdms.bat As varidveis-de ambiente podem ser através do comando: checadas a qualquer momento no PDMS. Q EVAR PDMSUI Q’EVAR ‘SAMOO0" endpoint Solugdes intogradas Lids. 43 Prolbida a reprodugao som prévia avtorlzagio PML2: FungSes, Formulérios © Objotos ‘Teolnamenio PML + Forms 8 Manus AVEVA VANTAGE POMS 51.6 SP4 10-PML2: Funcées, Formularios wr Objetos ; ‘utura de diretérios do PML2. e 10.1-A variavel de ai A varidvel de ambi Li —> Pal index (Aduali ar Sevnte que in eV arquivas ols. 9°9 09 9999999 I959I3 99999939993 > pinllib wa pasta Prdbig functions forms objects xxx.pmlfnce xxx.pmlfrm xxx.pmlobj ‘lens6es de arquivos: .pmifne para as fungées * .pmifrm para os formularios # .pmlobj para os objetos Com estas extensdes os arquivos rodaraéo automaticamente (nao ha a necessidade de sindnimos). 4 ‘endpoint Solugdes inlogradas Lisa. Prolbida a roprodugio som provi autorizago 2IIIFIIIZIIIIIIIIII Tieinamanto PML + Forms & Menus PM Fungbes, Formulirios ¢ Objetos AVEVA POMS 11.6 SP4 Funges em PML2 sao executadas através de chamadas (call) Call I!minhafuncao() © comando acima executa 0 arquivo minhafuncao.pmiine, o comando call é opcional Formuldrios séo chamados da seguinte forma: Show !I!meuformulario Objetos so utilizados através da seguinte sintaxe: ix = object meuobjeto() 10.2-Modificag6es em PMLLIB A pratica normal de customizagéo 6 n&o modificar henhum arquivo original da AVEVA, mas criar uma hierarquia pavalela ‘onde Seréo salvos todos o§ novos arquives criados. ais < Estas customizagoes (presentes na) hierarquia paralela) podem ser chamadas modificando a variévelPMLLIB de forma a apontar para diversos caminhos. Set PMLLIB=c:\avevalpdms41.6.sp2\pmllib Set PMLLIB=c:\pmilib %PMLLIB% Estas’ modificagdes devem ser feitas no final do arquivo evar.bat ou no arquivo pdms.bat As varidveis de.ambiente podem ser checadas a qualquer momento no POMS através do comando: QEVAR PMLLIB endpoint Solugdes Intogradas Lida, 6 Prolblda a reprodugao som prévia autorlzagtio PML2: Fungées, Formuléiios 6 Oojetos Tiainamenio PMI. + Forms & Menus AVEVA VANTAGE POMS 11.6 SR Exercicio 4-Modificando PDMSUI e PMLLIB Edite 0 arquivo pdms.bat, de forma a inoluir outros caminhos Primeiramente crie os diretérios onde sera snags Ex: UATreinamentolpdmsui U:\Treinamentolpmlli Set PDMSUI=U:\Treinamento\pdmsui %PL Set PMLLIB=U:\Treinamentotpmifib “6 ‘endpoint Solugbes Inlegradas Lida. Prolbida a roprodugio som prévia autorlzagZo FIDFDIFPIDIIIIPIFFIIIIIFIIIIIIPIIIIIIIIIIIIIIIIIIIIIIIGIS Treinamento PML + Forms & Menus Oodjeto HCE AVEVA PDMS 11.6 SP 'CE 6 uma variavel global especial do PMI elemento corrente e seus atributos. ‘osition.East lagao a ope elemento: RTVaive = !HeadPosition.WRT(IValve) DIPPTIOIOIIPOIIVIPPOOIOPO SO ISI FFF OIFIIFVOID 99399 le de modificar atributos utilizando a seguinte sintaxe de PML. ributo = Variével IICE ou uma Variével HCE.pos = Ipos IPIPE-100) Idbref.nam NICE. built = TRUE wtortzagso SFFVDIIVIIBSD 0 objoto nce ‘Yroinamoro PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SP4 € posstvel alterar um objeto PML, como por exemplo, POSITION, desde que corresponda ao tipo de atributo. Exemplo: NCE.Position = Inovaposicao Nate que quando 0 tipo do atributo 6 um objeto PML nao é possivel altera membro do abjeto diretamente. Isto deve ser feito em 2 estégios: IPos = IICE.Position 1Pos.Up = 2000 &> IICE.Position = IPos Verifique utilzando: QPOS 48 endpoint Solugtos Iniagradas Liga. Prolbida » reprodugso som prévia autorizacdo FIDIDIDIIZIIIFFIIIIIIIIDIIIIIIIIIIFIIIIGVIIIIIAIIGIISI Treinamonto PML + Forms & Menus Fungbes em PraL2 AVEVA PDMS 11.6 8P4 Capitulo : 12-Funcgédes em PML2 Fungées so um novo estilo de macros. SA. chamadas da seguinte forma: call !Iminhafuncao() Estas sao varidveis globais, logo poden’ser executadaS de qualquer parte do programa. ‘ Argumentos das fungées: No exemplo abaixo.ajfungao possui um. ee chamado Iraio e armazena um valor real. Os argumentos so varidveis locais),geralmente, e sao utilizados para receber dados externos para que possam ser processados dentro da fungo. Uma fung&o pode conter inimeros argumentes, lembrando que, quanto menor 0 némero de argumentos,mais eficiente seré seu cédigo. Para definir um argumento devemos inserir dentro dos parénteses 0 nome e seu tipo, caso haja mais de um, deverao estar separados por virgulas. Exemplo: Campo destinado aos argumentos Define function lNared(Iraio is REAL) is REAL !AreaCirculo = Iraio.power(2) * 3.142 ou (pi) Return !AreaCirculo Endfunction Cencpoint Solugbes Intogradas Lida “9 Prolbida a reprodugao sem prévia autorixagéo ung6os om PML2 Fungées retornam valores: return lequi.size() EndFunction Para poder acessar 0 valor retorn; ‘Teeinamonto PHIL + Forms & Menus AVEVA VANTAGE POMS 11.6 SP& valor deve-se utitizar varidveis tas poderdo ser vistas de qualquer endpoint Sotugées Inlegradas Lida. Prolblda a roprodugae som prévia autorizaGd0, 999 IIIIIIIIIIGIIIIIIIIIIIFIIIIIIIIIIIIIIIIIIIIIIGD Teainamento PML + Forms & Menus FungSes em PYL2 AVEVA POMS 11.6 SP4 Exercicio 5-Converta a macro Escada para uma fungao Converta a macro Escada, desorita abaixo, altere a macro para uma funcao.PML2.e chame-a de ex5.pmifne. Defina a fungao com 3 argumentos: Inome, lalturé é llargura Lembre-se em inserir corretamente os tipos de valores que os argumentos receberao 7 Para chamar esta {ungdo: lex5('ESCADA’,3000,350) Esta fungao NAO retorna valores Nota: tenha certeza de que est posidionado'em uin.Zona. ( fu i ee cendpsint Solugbes Inlageadas Lica, st Prolblda 9 oprodugso som previa autorizagSo FungBas am PML2 Tieinamento PML + Forms & Menus "AVEVA VANTAGE POMS 11.6 SP4 MACRO ESCADA: Sp Sp MAGRO ESCADA V 2.0 $2 sp $P Determinando o Nome da escada (ex.: LADDER-99) INAME = IlAlert.Input('Entre com o nome da escada’, NEW EQUIP /SINAME & $P Determinando 2 aitura da escada (ex:. 3000) IHEIGHT = [/Alert.Input(Entre com a altura’,") SP Determinando a largura da escada (ox.: 350) IWIDTH = NAlert.Input('Entre com larg $P ESCADA CRIADA END se ncpaint Scugdes Inogradas Lids Proiblde» roprodugio nem prévs autoreagso SPPIPIPIFIFFVIISIIIIIIIIIIFIIIIIIIVIIIIIFIIISLIIIVID FOLIPIVBIIOFDVFOFIFSPFISOHSFIFSSOFISIODISO IHF IFHSIFFIIFSIPOFIIBIVD er Proibida a reprodugso som prévia autorlza¢a0 Treinamente PML + Forms & Menus AVEVA POMS 41.6 SP | Soluc&o do Exercicio 5: DEFINE FUNCTION HIEXS(INOME IS STRING, [ALTURA IS REAL, ILARGU IDEGRAUS = IALTURA / 230 INUMERO = IDEGRAUS.INT() IDISTANCIA = 1ALTURA J INUMERO NEW EQUuI/$INOME NEW BOX XLEN 60 YLEN 100 ZLEN SIALTURA BY U(SIALTURAV2) W (SILARGURA/2) NEW BOX COPY PREV BY E(SILARGURA) DO ICOUNT FROM 1 NEW CYL DIA 3( ORIP1ISE AT U(SIDISTANCI ENDDO ENDFUNCTION srdpoint Solugbes intogradas Lida. Fungées om PML2 Usando métodos 13-Usando Métodos 13.1-0 que é um método Os métodos podem ser definidas como acd Métodos sao utilizados através retornara um erro. Tioinamanto PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SPS ‘endpoint Solugbas Inlegeadts Lida Prolbids a roprodugao sem prévia autorlzagiio PIDIIIIIIIIVISIIIIFIIVIIIIIIIIIIIIIIIIFIIIIZIIVIIIG ‘Tieinamenio PML + Forms & Menus Usando métodos AVEVA POMS 11.6 SP& © método do objeto String (perceba que comegamos a entender tipo de variaveis como objetos) .real() converte uma string para real, mas 0 tipo da variavel continua sendo string. A Gnica maneira de converter o tipo de uma varidvel para outro tipo é criande uma nova varidvel e ulilzar um método de conversao. zz = bx.real() —_--cria uma varidvel Izz usando os valores de Ix Convertidos Para alterar o método de uma varidvel para outro, 6 necessario utilizar Métodos. IX='56" ~ cria uma string 1Y = (IX.real()* 2) - cria uma real usando, !x Métodos também podem ser usados em expressdes: If (X.real() EQ 56) then Outros métodos de conversao sao: + String() « - Boolean() } Métodos so utilizados néo 86, para conversao. As funcionalidades dos métodos sao indeterminadas. Existem os. métodos, padr6es do\PDMS, mas caso nao alenda as necessidades do programator este pode criaro seu proprio método como veremos mais a frente. Outros exemplos de métodos sao: | =.size() => retoma o tamanho de um array - active() -> desativa um dispositivo de um formulario 13.2-Concatenacao de métodos Qualquer quantidade de métodos pode ser combinada, os resultados so passados f de um método para o outro. ‘endpoint Solucbes inlegradas Liga 85 Prolbida 3 reprodug4o sem prévia autorizagéo Usando mélodos line = ‘Ola mundo quem fol” Jnovalinha = tline.upcase().Split().Sort() Q var | novalinha [1] ‘for [2] ‘mundo! [] ‘Ola’ er [4} ‘quem’ Nota: deve-se prestar atengao na ordem de No exemplo acima, 0 método .split() retorn! por ordem alfabélica um array. Ne Trolnamonto PMi. + Forms & Manus AVEVA VANTAGE POMS 11.6 SP4 ort() organiza Roderd ser alterada. in Slugs ogres Lida rabid atoprodugto som prbia Stara FIP IFIDIIIIVIIGIIIFIIGIIIIIVIIIIIIIIIIIIIIIIIIZIIIIDD Treinamanio PML + Forms & Menus Objeto Aten. AVEVA POMS 11.5 SP4 | Capitulo 14-Objeto Alert 14.1-Objeto Alert sem retorno Existem 3 tipos de alerta no qual ndo.ratornam valores: WWAlertError(‘Voc8 nao Heat fazerisso!) lier. Message(‘Salvar seus arquivos agora?’) !1Alert.Warning(‘Nao aperte esse botdo novamentel’) endpoint Solugbas Integradas Lid 7 Prolbida a reprodugso som préva autorlzagao Objote Alor ‘Tioinamanio PML Foims & Menus AVEVA VANTAGE POMS 11.6 Sa 14.2-Objeto Alert que retornam valores Existem 3 tipos de Alertas que ratornam valores, sendo eles: ~ Confirm - Question - Input 14.2.1-Alertas de confirmacso Alert. Confirm(‘Vocé tem certez: tresposta = Alertas de confirmagao retornam 'YES' ou rene QD Datel apap 0 Sto? eS 58 ‘endpoint Solugdes imegradas Lida. Prolbida a repredugao som prévia sutorlzago PFIZPIDIVIFIIIZGIGIISIVWIIPIIIIIIIIVGIIIIZIIIIIIIGIIIADD ‘Treinamenio PML + Forms & Menus ‘Objato Alor ANEVA POMS 11.5 SP4 1. 3-Alertas itrada de dados lresposta = IlAlert.Input(‘Entre com @ tamanho do elemento’, ‘10’ O primeiro elemento é 0 texto que sera impresso na tela e o segundo. padrao que aparecerd na janela. O campo referente ao valor padrao é OBRIGATORIO. gndpein Soh ogra Lt 0 Proleoa a reprodupha som priviaauoreag80 27FFVIFIIBSS Formutérios ‘Troingmonto PML + Feims & Manus AVEVA VANTAGE POMS 11.6 SP IPessoa = object PrimeiroMinistro() Show !/MeuFormulario endpoint Solugbas a Prolblda a roprodugio sem prévia autorizagto $9 FIDIIIIIPIIGIZGIIIIIGIIIIIIIIIIIIIIIIIFIFIZIIIIIG ‘Teeinameno PML + Forms & Menus Foumulérios AVEVA POMS 11.5 SP4 15.2.2-Para redefinir um formulério quando carrega\ PML RELOAD FORM IIMeuFormulario PML RELOAD OBJECT PrimeiroMinistro 15.2.3-Reconhecendo novas funcées, formularios e objetos. Para reconhecer novos arquivos apés feito o login no PDMS uti comando: “ PML REHASH ALL. | 15.3-Definicdo do formulario Setup form IIMeuForm Title ‘Meu primeiro|For {myform.ini PIRFTBIIIFI9OPIPAIPIHSOFSFS SSF ISOIVIISIIFIFIVIVD NET framework Formularios do tipo DOCK (ex: Command Line) ajustam o tamanho automalicamente Dispositivos ancoraveis (ANCHOR) uti end ‘Solugées integradas Lida. 6 Pro {9 reproducio sem prévia autorlzag0 2>F3FFRFVVFVF9B Foimultrios ‘Trainamento PML + Forms & Menus AVEVA VANTAGE POMS 12.8:SP4 Listas multi-colunas Possibilidade de adicionar menus em aplicativos existentes Possibilidade de adicionar toolbars em aplicativos existentes 15.4,1-Quando usar um formulario DOCK Regras para utlllzago do DOCK ~formutérios que 8&0 utilizados 0 ter - formulério de criagdo de tubulagao ~formulérios de dimensionar Regras para nao utilizar um formutério D - formularios de configure im menu PULL DOWN nao pode Setup form iffnam DOCUMENT FLOAT 62 endpoint Solucdes inlegradas Lida. Prolblda » reprodugo sem prévia autorizaga0 FIFIISIIIPIIIGIZBIFLIIIIIIIIIIIIIIIIIIIIGIIIIGD 329930 Tisinamenio PML + Forms & Menus Formuléios AVEVA PDMS 11.6 SP4 1 Escondendo e apresentando formularios O mecanismo de busca de formularios permite que 0 pré-carregamento de novos formularios nao seja necessério. { ‘ Para mostrar um fomulério: Show !IForm As vezes € necessério manter um formulério carregado, poréfmyn&o visualiz4-lo, por exemplo, para armazenar dados em saus dispositivos. Para carregar um formulario e nao mostré-lo: “ LoadForm !IForm i 15.4.5-Métodos internos para formulirios —— > Existe uma variedade de métodos inlernos para formulatios: { Para mostrar um formulario: E llFormulario.SHOW() Para esconder um formularios I'Formulatio.HIDE() Para finalizar um formulatio: Formulario;KILLO Para questionar se um formulério jé esta aberto: H{(IForm.SHOW() then Endif 15.5-Dispositivos de formula: s (Gadgets) Existem muitos tipos de dispositivos para formuldrios Quando definimos dispositivos nos formularios existem 2 definigdes comuns: endpoint Solugbes Integradas Lida 8 Proibida a roprodugao sem prévia autorizaya0 Foimytdvios Treinemento PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SP4 -Definir a 4rea que serd utilizada no formulério - Definir a ago a ser tomada se o dispositivo for selecionado: Gada tamanho de dispositive e sua posig&o determinam a 4rea que A agao 6 definida pelo dispositive CALLBACK Jétodos internos dos dispositivo: 2 Dispositivos s&o objetos com membros e uma var Para desligar um dispositivo: Qualquer dispositi definido no moms Delete | call | delete equipment | | Apply | call | !ifuncao() | ly | Apply | call | {this.metodo() | a ‘endpoint Solugbes Intogradas Lida, Proibida 2 reprodugdo som prévia auterlzaq30, FIDIIIIDIIFIZIDIIDFFIZIIIIIIIIIIIIIIIIIIFIIIGIIVIEIA ‘Treinamento PML + Forms & Menus Foxmutétios AVEVA PDMS 11.6 SP4 4 1s (Initcall) “ALLBACK dos formul: O Callback de inicializagao sempre é Judo no momento que o formuldrio é aberto, permitindo aos dispositivos serem inicializados para refletir o estado Iniclal do aplicativo. Por exemplo, definir valores padrdes dos campos. | Vocé pode configurar 0 callback através do membro initeall: INITCALL ‘CallbackString’ Ou diretamente através do comando: Ithis.initcal = ‘CallbackString’ Se a Callback de inicializagao descobrir um effo gravéino qual 0 formulario néo poderd ser mostrado vocé pode abortar a apresentagao doformularia retornando um erro e inserir um texto no alerta que ser mostrado. Define method .i iiealiback( Returnierror-4 ‘Vocé nao possui acesso a este Banco de r Ses” Dados’ d } Endmethod Se a callback de inicializagaé jé emnlliu um alerta para ser informado, para prevenir 0 envio de uma nova mensagem de erro utilize NOALERT: Define method .initcallback() Return error 1 NOALERT Endmethod Nota: 0 callback inicial nao deve conter comandos para abrir outros formularios, | encipsint Solugdes inlegrades Lida. 55 Profolds a reprodugso som prévia putoclzagso Trelnemento PML + Forms & Menus Formutsios AVEVA VANTAGE POMS 11.6 S24 15.6.2-CALLBACK dos formularios (OK) O callback OKCALL normalmente é configurado para permitir ao operador aprovar ‘Rite, as configuragées dos dispositivos nos formularios _— E possivel informar ao membro OKCALL do formulério 0 comanda a sak executed através da seguinte sintaxe: OKCALL ‘callback string’. 0 comando a ser executado pelo OK callback pode ser alterado a 2 qualquer momento, usando: Ithis.Okcall ‘callback string’ fae O callback OKCALL normalmente & configura lo pal a Ser exectulada quando 0 botao OK do formuléris for pressionado. Com iss¢ 20 erador.20r6va as configuragbes. removido da tela. 15.6.3-CALLBACK dos formulérios (CANCEL) O callback CANCELGALL ndkmalmente contigurado para permitir ao operador néo executar as alteragées dos formulldrios. E possivel informat ao membro CANCELCALL dé tormulétio o comando @ ser executado atravalida ‘seguinie sintaxe: CANCELCALL ‘callback string’ ‘Ojcomando a Ber executado pelo CANCELCALL pode ser alterado a qualquer momento, usando: Ithis.Cancelcall = ‘callback string’ O callback CANCELCALL normalmente é configurado para ser executado quando o botéo-CANCEL do formuldrio for pressionado, com isso 0 formulario é removido da tela @ todos os valores dos dispositivos 40 automaticamente redefinidos para seus padrées. 68 ‘endpoint Solugties Integradas Lida, Prolbida a reprodugde som prévia autorlzap50 >VDVVIIB®S > »>33339%9 » Troinamonio PML + Forms & Manus Fosmularios AVEVA POMS 11.6 SPQ Normaimente, este callback é uliizado pelo programador PML para desfazer qualquer ago indesejada carregada pelo formuladrio. 15,.7-Um formulario Simples Setup form !!Ola Title ‘Meu formulario* Paragraph .mensagem text ‘Ola Mundo’ Button .sair 'Sair' OK Exit 15.8-Posicionamento dos di positivos Roel a és lrio de Gima para baixo e da esquerda Os dispositivos so posicionados.fio f para direita. { rad EEE) =e eco a id Cada dispositivo (gadget) possui quatro pontos chave — XMIN, XMAX, YMIN, YMAX Estes pontos sdo utllizados para posicionamento At Xmin .apply YMAX-0.5 (EB va endocint Solugées Inlegradas Liga 67 Pratbida a roprodugae sem prévia autorizagso Foxmetatiog ‘roinamenio PML + Forms & Manus AVEVA VANTAGE POMS 11.6 SPS At YMIN At XMAX .framet + 4 Para posicionar um dispositive & direita de um formutario, utilize: At XMAX form-size Um dispositive pode ser imaginado como um quadrado com a orig no canto superior esquerdo. Este quadrado engloba todo tag (nome) caso seja especificado. or As extremidades do aispositivo no formulario podem: seguintes pseudo-variaveis: XMAX, XMIN, YMAX, YMIN- P1234 55789 wY dispositivo anterior (oforéncia) wx veer novo dispostiva ats Para especificar a coordenada da arigem do novo dispositivo em relagdo ao dispositivo anterior, utilize 0 comando AT da sequinte forma: 68 endpoint Solugbes integradas Lida. Prolbida 8 repradugio com privia sutorizagao 993 999IIIIIIGIIBIIFIIIIIIGIIIIIIIIIIIIG9IIL4NIGIIVDIDDIA Treingmento PML + Forms & Menus Formultios AVEVA PDMS 11.6 SP4 Toggle .OnOff AT XMIN YMAX +1 Posiciona a origem do novo dispositiyo com relagéo A extremidade'do dispositive anteriormente criado. © novo dispositivo esté nas coordenadas (XMIN, YMAX+1) do dispositivo anterior. | 15.8.3-Posicionamento relativo de dispositivos; Relativo a.um dispositivo especifico . o12a 456789 mex dispositive anterior (rafaréncia) mux vegans novo dispositive | ¥ Para especificar 0 posicionamento do dispésitivo em relagéo a qualquer outro dispositivo, basta dtilizar 0. comande AT da seguinte forma: Button .apply ‘Apply’ AT XMIN.OnOff YMAX.OnOff +1 Este comando posiciona a origem do botao apply em (Xmin,max+1) do dispositive Ont. 15.8.4-Posicionamento através do comando PATH, © comando PATH pode ser utilizado para definir a posigao légica de dispositivos | subseqiientes. PATH DOWN - indica que o préximo dispositivo estara abaixo do anterior. PATH RIGHT — indica que 0 préximo dispositive estara a direita do anterior. endpoint Solugbos Inlog/adas Lida. 6 Prolbida a reprodugse sem prévia autoriza¢30 ‘Teainamonto PML + Fors & Menus Formutdrios AVEVA VANTAGE POMS 11.6 SP 15.8.5-VDIST e HDIST Este comnando define a distancia vertical (VDIST) e horizontal (HDIST)ide espagamento entre os dispositivos no interior dos frames. Exempio: | VDIST 2 HDIST 4 Definem distancia de espagamento vertical igual a’2.e distanéla de espacamento horizontal igual a 4 15.8.6-HALIGN e VALIGN y eae a, See Alinha os dispositivos subseqiientes horizontalmeni atien) @ Verticalmente (VALIGN) pode ser alinhado em LEFT, RIGHT, TOP, BOTTOM. 15.8.7-Exempo de posicionamento de dispositivos: PATH, VDIST, HDIST, HALIGN e VALIGN i button Butt $* defaull placement PATH down. HALIGN centre VpIsT 2 paragraph .Par2 width Sheight2 — $* auto-placed Naggle Togs $* aulo-placod PATH right Hoist 2.0 VALIGN bottom list .Lled width 2 height 3 $ auto-placed PATH up HALIGN right Paragraph Pars width 3 helght3 $° auto-placed 7» ‘endpoint Sclugbes Intogeadas Lida Prothida a reprodugdo sem prévia autorizacas »2 > 339 Treinamento PML + Forme & Manus Formutvios AVEVA POMS 11.6 SPa 15.9-Dispositivo Paragrafo (Paragraph) O dispositivo pardgrafo pode receber apenas nome ou um PIXMAP a'Ser mostrado em um formulario é Este dispositivo 6 muito utilizado para indicar o titulo de outros elementas. Para .cwd at 0 0 Text ‘Current Directory’ Dispositivo Paragrato (iene € Este dispositivo nao tem\nenhum calba associado, ou seja, nao pode realizar chamadas de fungées, E considerado um elemento passivo ndo podendo ser selecionado pelo usuario. Um dispositive paragrafo pode conter um texto ou um pixmap. Uma vez que foi definido, como PARAGRAFO do tipo TEXTO nao pode ser mudado para PARAGRAFO do tipo PIXMAP e vice-versa. _Para imagem at 0 0 pixmap /c:\caminho.... Pode ser determinada também a area ocupada pelo gadget. para .cwd width 50 hei 3 15.10-Botées Quando o usvarie pressiona um dispositive botéo (button) geralmente abriré um formulario “filho” ou executar4 uma callback - normalmente um método do formulario. ‘endpoint Solueées Inlegradas Lica ” Prolbids 6 wenrodugio sem prévia sutorlzagso Formulsios Treinamonto PML + Forms & Menus [AVEVA VANTAGE POMS 11.6 SP Botées ngo possuem valores para ser inseridos ou resgatados. Estes dispositivos tm um nome ou um pixmap no qual é mostrado dentro do retangulo do botdo. O Tag, o pixmap, o callback e 0 formulatio “iho” S20 opcionais. Se um callback @ um formulrio “filho” forem espesticades, Semmens do callback seré executado antes da abertura do formuléro “hot, Peeod Fle Button « Button .. Button . al rkbetich Apply. Background = 2 Le Nome do membro Nome do dispositive 45. iserindo uma figura em um botéo Button .apply pixmap /c:\caminho\aveva.bmp VEN R endpoint Solugbes Integradas Lida Protbida a reprodugio sem prévia gutorlzacao PIFIDPIFIIIFPIDIIIIIIIIIIIIIIIFZIIIIIIIIIIIIIIVIIIIIO “Trainamerto PML + Forms & Menus Foumuldtios AVEVA PDMS 11.5 SP 15,11-Frame Um frame é um dispositivo para organizagdo apenas, normaimente, é utllizado para agrupar dispositivos similares. Sua sintaxe € a seguinte: FRAME .MYFRAME AT 0 2 ‘My Frame’ BUTTON .B1 ‘Press Here BUTTON .B2 ‘Or Press Here’ EXIT Os Frames sao dispositivos passivos (no interagem). Fornecem a possibilidade do agrupamento visual dos dispésitivos em um formulario, ajudando assim na sua organizagéo. Quaiquer tipo de dispositivo, exceto a barra de menu, pode ser inserida dentro de um frame. © frame possulium Tag (Titulo) que pode ser usado para descrever o grupo como um/todo. Os frames.sao definidos usando uma seqiiéncia que comega com o comande FRAME e finaliza com 0 comando EXIT. Todos os dispositivos definidos apés o comando FRAME e antes de EXIT sero incluidos no frame. Qs seguintes comandos definem o {ramet e seus dispositivos: frame framet ‘Frame 1" Paragraph Message1 text ‘Este frame contem botdes Toggle’ PATH DOWN toggle Bold ‘Bold’ PATH RIGHT toggle Italic ‘Italic’ toggle Underline ‘Underline! exit ‘endooim Solugéas Integradas Lida cy Prolbida 3 roprodugao sem prévia autorlzagae Formutéios ‘Teoinamorio PML + Foims & Menus AVEVA VANTAGE POMS 11,6 SP& 15.12-Formuldrios Tabbed Os formularios agora podem conter abas estas dao a aparéncia de mais formulario. A sintaxe deste recurso é baseada na sintaxe do FRAME. Todos os dispositivos dentro das abas sero apresentados quando,o seleciona-la. Definir 0 formutario de modo que os frames ans: Definigao dos dispositivos exit m% endpoint Solugdes intogradas Lida. Prolbida a reprodusdo om prévia autorizag0 92 IIFIIIIIIIIIIIIIIIIIIIIIIIFIIIIIIIIIIIIIVIIIZIDG| ‘Trginamanto PML + Forms & Menus Formulirios AVEVA POMS 11.5 SP4 15.12.1-Exemplo de um Frame Tabbed setup form lImeuform dialog dock title ‘Exercicio tahbed’ ~-Ithis.initeal! = |Ithis.nit()| path down frame .Tabset TABSET ‘tabset' anchor All frame .paget |Equipment| dock Fill list .eqp! |List of Equipment] columns width 40 hei 15 button .apply ‘Find’ call " : Pe S button Dismiss ‘Dismiss’ at xmax form-size ymin call ‘Ithis.hide()* exit frame .page2 |Page 2| at 0 0 dock Fill button .bye ‘Goodbye’ OK y exit ee. exit exit 15.13-Dispositivos Text Um dispositive da entrada de texto fornéce um lugar em um formulario em que 0 usudrio pode digitar um,valor. O programador deve: e Especificar 0 tamanho do campo que determina o nimero maximo de caracleres. O maximo 6 256 caracteres. '» Especiticar 0 TIPO de dados 0 qual determina como o valor atribuide ao dispositivo sera mostrado € como o valor seré interpretado pelo cédigo PML. Voce pode também espetificar um objeto do tipo FORMAT o qual também especifica em detalhe coma a valor serd mastrado ou interpretado, ‘endpoint Solugbes Iniogradas Lida. 75 Prolbida a roprodugao sem prévia autorizacio Troinamonio PML + Forms & Menus Formulvios ‘AVEVA VANTAGE POMS 11,6 SP4 Um dispositivo texto pode conter um callback, o qual é chamado quando a tecla 6 apertada. Membros importantes do dispositivo texto: = val() — armazena 0 valor do campo - -active()—habilita ov desabilita o dispositivo 15.13.1-Exemplos de dispositivos Text fe f text number AT... widthf0is)REAL text .name ‘Name: callback *MMyFut tion’ width 10 scroll 100 is STRING text .active ‘Active:’ Callback ’!!MyFunction’ width 10 is BOOLEAN text .bore ’Bore:’ width 10 Is BORE format !!FormatBore ith 10 NOECHO is STRING text password Password: Text .DirName callback IThis. TopDir()* AT X 0 Width 50 is String ane 15.14-Dispositivos List ~ O Método de crlag&o deste dispositivo ocorre da seguinte forma Oprogramadordeve montar um array no qual possua todos os itens e valores a serem Mostrados no dispositivo lista, e entdo, copid-lo por inteiro para o dispositivo (gadget). list .List ‘Select some of these’ MULTIPLE width 15 height 8 IElements[1}= ‘Element 1’ —_ ee “ aaa IElements{6]= ‘Element 6' ecasaui tpn smecatcaece Sateen 6 manlo PML + Forms & Manus Formutéviog POMS 11.6 SP¢ IThis.List.Dtext= [Elements 15.14.1-Ope6es de selegao do dispositivo List: SINGLE ou MULTIPLE. Um dispositivo List permite que 0 usuario {aga selegées inteligentes de-seus itens da seguinte forma * SINGLE — sé € possivel selecionar um elemento de cada vez, mesmo que as teclas CTRL ou SHIFT estejam pressidnadas * MULTIPLE —é possivel selecionar quantos elementos forem necessérios através do uso das teclas CTRL ou SHIFT. 7 list .Components SINGLE width 10 height 415 MULTIPLE width 10 Reh ne 1s 15 list Elements ‘Elementos @ serém apagados’ callback ‘Ithis.Delete()’ MULTIPLE width 10 length 18 k list Components 'Cores:’ AT O dispositive List contem naiverdade duas listas paralelas, do mesmo comprimento, uma contendo osWalores que seréo mostrados ao usuario (Dtext) e a outra contem 08 valores opcionais (Rtext). A lista de valores DTEXT deve ser mostrada. A utilizagao dos Valores armazenados em RTEXT so opcionais. O programador pode definir valores RTEXT sé for mals conveniente em seu cédigo de PML manipular os valores que sao diferentes de esses indicados ao usuario, se nao a lista de Rtext ‘sera .uma cépiada lista de Dtext. “endpoin Solugées integradss Lida, 7 Proiblda a repradugio sem prévia autorlza¢ae Fomultrios “Treinamonto PHL 4 Forms & Menus AVEVA VANTAGE POMS 11.6 SP 15.15-Dispositivo List multi-colunas No método construtor do formulario lcabecalho = ARRAY() | cabecalho.append('Name’) mes nd(Inames[ti] & ' (TAB) ' & IE[li] & ' (TABY' & INTIi] &* (TAB) * Ithis.eqpl.dtext = Idtext (TAB) indica 0 uso da tecla TAB. me endpoint Solugbes Inlogradas Lica, Prolbida a reprodugao sem prévia autorlzacéo PIDIDIIIIIIIIIIIIIIIIIIFSIIIIIIIIIIIIIIIIIIIIIIIIG Troinamento PML + Forms & Menus Formulésios AVEVA POMS 11.6SP4 15.15.3-Preenchendo a Lista (Usando arrays de duas dimensées, No método de inicializagao (.init()) f ~ Insira 0 texto que sera mostrado (utilizando um Array de Array) do Il index feqnames Idtext{lI][4] = Inamestli] Mtext{li][2] = 1E[ti] Sdtext[!i][3] = IN[Ii] Idtext{tiJi4] = 1U[!i] enddo Ithis.eqpl.setRows( Idtext ) ~ Insira 0 RTEXT (opcional) Ithis.eqpl.rtext = Inames_ { . Se Ben 15.1 6-Dispositivo TEXTPANE Este dispositivo determina uma aréa no formulério no qual o usuario pode editar texto de varias linhas, copiar, recortar € colar em qualquer outro local Sua sintaxe 6: TextPane .texto ‘Minha Caixa de Texto’ at x3 y6 width 50 hei 6 15.17-Ancorando (ANCHOR) dispositivos | Comando utilizado para “prender" uma das arestas do dispositivo ou formulario em um dos lados da janela TOP, LEFT, BOTTOM, RIGHT, ALL. Uma combinago das opgées também é valida LEFT+TOP. Sinlaxe: Texpane .texto at x0 ymax anchor LEFT Texpane texto at x0 ymax anchor ALL teiipoin Solugéns ntegradas Lida, 7 Proibida a reproduce sem prévia eutoriza¢o Formusrios Trainamanto PML + Forms & Monus - AVEVA VANTAGE POMS 11.6 SP Texpane .texto at x0 ymax anchor LEFT+BOTTOM width 32 hei 6 Oo. % 0 cin SougiesInepraas Lis Prolbia oprodugto sam pres sori ay PIDIDIIIDIIIPIIDIIPIIIIIIIIIIFIPIIIIIIIIIIIIIIIIIIG 9993999999 DFIFFHFFFVFFFFFFFFFFFH9FFFFVIIVI9FIF 999999999 Trainamerta PML + Forms & Morus Foxmuléios AVEVA PDMS 11.8 SP Exercicio 6-Criagao de Formulario Crie o seguinte formulario: Teste 0 comando DOCK no formulério Utilize em alguns dispositivos 0 comando mot Nao se preocupe em fazé-lo funcionar por enquanto. | Formulario {endpoin Solugdes Inlegradas Lida, a Prolbida a reprodugdo som provie autortzo¢so Foumutétios ‘Troinamente PML + Foxe & Menus AVEVA VANTAGE POMS 11.6 SP4 Soluc&o do Exercicio 6 fj SETUP FORM IIEX6 TITLE 'PML2 Training Class Workbench’ FRAME .CONVERSION ‘Temperature Conversion’ ro PATH DOWN TEXT .CENT ‘Centigrade’ CALL" WIDTH 10 IS REA! ‘TEXT .FAHREN ‘Fahrenhelt! CALL" WIDTH 1 EXIT PATH RIGHT WIDTH 41S REAL LL" AT XMAX43 YMIN APPLY TOOLTIP ‘CUIDADO COM OS FRAME .ROOMOBJECTS ‘Room Objects’ AT X 0 82 endpoint Sotugies Intogradas Lida. rolblda a reprodugao sam privia autorizag30 DIDIFGIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIFIIIIIIIIIIIII FFFFFFFHFFHHHHFHFFFFFFFFFFFHFHFDHF9VFTV9VFF9F9FF9I999 Treinamenio PML + Forms & Manus Foxmutarios AVEVAPOMS 11.654 PATH RIGHT TEXT .WIDTH ‘Width' WIDTH 9 IS REAL TEXT -HEIGHT ‘Height’ WIDTH 9 1S REAL TEXT LENGTH ‘Lenght’ WIDTH 9 18 REAL PATH DOWN } TEXT .NAME 'Name' AT X 1 WIDTH 32 IS REAL PATH RIGHT 4 BUTTON .APPLY2" Apply ‘CALLBACK * AT XMIN .Appl EXIT. PATH DOWN FRAME .RESULTS ‘Results’ AT X 0 exit endpoint Solugbes inlegradas Lida. | 8 Proibide a reprodugse sem prévia sutorlzagso Fermultios ‘Treinamonto PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SP Exercicio 7-Callbacks Criar um métoco “convertctot" para converter temperaturas de grausiGelsius para’ Fahrenheit e colocar em um dispositive o resultado em Fahrenheit! Editar o callback do campo de texto Fahrenheit, para converter Fahrenheit em _ Celsius e colocar no dispositivo adequado o resultadoémiCelslus. A {érmula para a conversdo 6: degf = dege * 118432, dege = (degh-42) /1. Celsius & Fahrenheit callback ee TEXT .CENT ‘Centigrade’ GAUL “THIS, CONVERTCTOF()' WIDTH 10 IS REAL TEXT .FAHREN ‘Fahrenhélt’ CALL ‘ITHIS. CONVERTFTOC()' WIDTH 40 IS REAL EXIT DEFINE METHOD .CONVERTCTOF() ITHIS, FAHREN. VAI ITHIS:CENT.VAL “4,8 +32 ENDMETHOD, DEFINE METHOD .CONVERTFTOC() ITHIS.GENT.VAL = (ITHIS.FAHREN.VAL.- 32) /1.8 ENDMETHOD Ou TEXT .CENT ‘Gentigrade’ CALL ‘ITHIS.FAHREN. VAL = ITHIS.CENT.VAL ° 1.8 + 32° WIDTH 10 1S REAL TEXT FAHREN ‘Fahrenheit’ CALL ‘ITHIS.CENT.VAL = (ITHIS.FAHREN.VAL-32)/1.8" WIDTH 10 1S REAL ot endpoint Solugbes Inegradas Liga Proiblda # reprodugse sem prévia autorizag80 Troinamenio PML + Forms & Menus Foumultvios AVEVA POMS 11.5 SPA 15,18-Métodos definidos pelo usuario | Os métodos de inicializago do formulério e de callback de dispositives sero sempre definidos pelo usuario (programador) Um método sem argumento e de mesmo nome do formulario é chamado de método construtor (constructor). Se o método gonstrutor estiver presenteyo PML ira executd-lo automalicamente para inicializar os objetos sempre que estesiforem ctiados. Exemplo da estrutura: Setup form !I!meuform Nmeuform.initcall = ‘tImeufor,init()! ou IThIs.init(): Exit q Define method .meuform()=+Niétodo Construtor Endmethod } Define method .init() -Métoda da Janela de Inicializagao Endmethod. Setup form Imeuform Umeuform.initeall = ‘!lmeuform.init()* Button .but ‘Press me'Call ” at x 0 exit define method .meuform() $P Ajanela esta definida e pronta para o uso, mas ainda nao é visivel. endmethod endpoint Soluges Iniegradas Lida as Prolbida 9 reprodugao sem prévia autoriza¢a0 Pormutévios “Teoinamenio Pitt + Foms & Menus AVEVA VANTAGE POMS 11.6 SPa define method .Init() $P A janela é mostrada para o usuario Endmethod 15.19-Arrays 15.19.1- Declaragao de Arra} Alim de criar um Array que utilize 0 mecanismo de deve ser pré-declarado --nao funcionaria, a menos que 0 Array f IMyArray.append(‘data') Esse 6 um exemplo de método sem efeito ja qual no alleva a Array, mas retorna um resultado REAL atribuido a varidvel 'NumberONames 86 ‘endpoint Soluotes Incegradas Lida. Protbida a reprodugso sem prévia sutorlzag80 2 2FIIPPIDIIIFIIIIIIIIIIIIIIIII—IIIIIIIIIGIIIIIIIIDG FDIBDIIIIAFFOSOFVPIPAFF OO FO OS DOPDO PO OODAPDDP DODO ODODOOO99 a ‘Treinamenio Pk. 4 Forms & Menus Foimulétios AVEVA POMS 11.6 SP4 Abaixo esi apresentado um método no qual o Array é alterado IMyArray.Clear() Esse método modifica o Array apagando todas os seus elementos, nenhum resultado, assim nao hé nada a atribuir uma outra variével. < Abaixo exemplo de método que altera o Array e retorna um 681 !NewArray = |OldArray.RemoveFrom(5,_ te-descartado invocando o jultado a uma varidvel: dos Arrays, ao invés de utilizar ‘endpoint Solugbes itegradas Lida 7 Proibida a reprodugae sem prévia autorlzagéo Farmulsios “reinamonto PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SP4 Exemplo 8-Array O desenvolvimento deste frame ‘Temperature Range’ tem por finalidad programador com relagéo aos Lagos DO e a esorita de métodos Este frame funciona da seguinte forma: - 0 usuario insere a temperatura minima, maxima e o intervalo. E)ao Pressionar 0 bolao Apply & gerada uma completa escala de temperatura @.suas conversdes serao mostradas em uma tabela de resilltados.“ Tente prever 0s ertos que 0 usuario poderd cométer, como por exemplo, campos sem dados € valor maximo menor que o valar minima, Vocé permitiria valos menores que -273 ? SEER X ~- METODO PARA FRAME TEMPERATURE RANGE} DEFINE METHOD .TEMPRANGE() -- BUSCA POR ERROS |NICIAIS \F (ITHIS.MIN.VAL.UNSETI))THEN semarms tone ———— (WALERT.ERROR(MINIMUN NAG INSERIDO) 5) ricitinc |) Step sze | RETURN.ERROR 1 ELSEIF(ITHIS.MIN.VALLT -273)THEN NALERT.ERROR('VALOR ABAIXO DE ZERO ABSOLUTO!') RETURN ERROR 1 ELSEIF (ITHIS.MAX.VAL.UNSET())THEN HALERT.ERROR('MAXIMUN NAO INSERIDO’) RETURN ERROR 1 ELSEIF(ITHIS.MAX.VAL LT -273)THEN WALERT.ERROR(‘VALOR ABAIXO DE ZERO ABSOLUTO!) RETURN ERROR ¢ ae ‘endpoint Salugbos Integradas Lida. Prolbide # raprodusio sem prévia autorlzagso 29FFFFFFFFFFFFHFFFFVFF9FFF7F999F9999999 e 9999993999999 ‘roinamonlo PML + Forms & Menus AVEVA POMS 11.5 SP: ELSEIF(ITHIS.MAX.VAL LT mraaaansasfr MALERT.ERROR('VALORES INVERTIDOSI, RETURN ERROR 1 | ELSEIF(ITHIS.MAX.VAL EQ !THIS.MIN.VAL)THEN IIALERT.ERROR(VALORES MAXIMOS E MINIMOS IGUAISI’) RETURN ERROR 4 ELSEIF(ITHIS.STEP.VAL LT 1)THEN ge HALERT.ERROR('VALOR DO INCREMENTO NAO Pt RETURN ERROR 1 ENDIF SERA ARRAY COM OS VALORES DE TE ITEMPS=ARRAY() | ‘endpoint Solugdes Inlogradas Lica. Broibida a reproduce som prévia autorizag30 Formulirios 89 Formuldvios ‘Treinamonto PML + Farms & Menus AVEVA VANTAGE POMS 11.6 SP4 15,20-Métodos para objetos © manual de referénoia de customizagéo do software (PDMS Softwa» Customization Reference Manual) contém uma tabela dos tipos de objeios, fornacidos como parte do PML2. Para cada tipo de objeto, a tabela mostra: NAME - O nome do método ou membros. Por exemplo, um objeto REAL método chamado Cosine. Se nao tiver nenhum argumento ele sera indieado comlparénieses) (),vazio aps 0 nome. ea, See Por exemplo, o objeto REAL tem um método chamado BETWEEN no qual possui dois argumentos REAL. RESULT - O tipo,de resultadd ¢ do metodo. Por exemplo, o resultado do método Cosine 6 um valorREALy. aa e > eh PURPOSE ~ Esta(coluna dascreve a principal fun¢ao do método Um grande\fitmero de. ridtodos torah ’omecides para 08 diversos tipos de dados do PML:/Por exemplo, para objetos STRING, vocé encontrar um método chamado Length INome = "Tony Blair’ INumerDeLetras = INome.Length() Ese Método retorna um valor REAL (0 ndmero de caracteres de um string), mas. nao altera a varidvel INome. ‘Observar o ponto separador entre o nome da varidvel e o nome do método. ‘Também observar os () parénteses que seguem 0 nome do método. Os parénteses so usados para incluir os argumentos do método, mesmo que nao haja argumentos eles devem estat presentes. 80 ‘endpoint Solugbes iniogradas Lida Prolbide a reprodugda sem prévia autori2agso »IVII 9333133339393 s pd 39 ) ‘Treinsmento PML + Forms & Menus Formutisios AVEVA POMS 11.6 SP« A\ seguir um método muito utiizado para separar uma string a partir de, um delimitador e 0 resultado 6 um ARRAY de STRINGS: Ex. INameStrings = Iname.Split() INameStrings = Iname.Split('%') 4 > Nola: 0 argumento é 0 delimitador, cago ndo haja arqumento o delimited & “0 caractere espago. f Exercicio 9-Manipulagao de String Crie um método para sua janela que tenha/a seguinte fungao. Ao inserir um valor no campo Input do Frame String Manipulation, seu formulario deveré mostrar no Frame Result do.Modifique sua janela ento quando entrar um texto string no dispositivo o wo © numéro de palavras e o texto invertido na tabela results ie ‘manipulation ‘endpoint Solugbos integradas Lida. ot Prolbida a roprodusio som prévia avtorlza¢30 Formuittios ‘Teoinamanio PML + Forms & Menus AVEVA VANTAGE POMS 11,6 SP4 Solugao do Exercicio 9: bs Inserir 0 callback no dispositive correto ‘TEXT STRING ‘Input’ CALL ‘ITHIS.STMANIPULA()' WIDTH 48 IS STRING ~ METODO PARA MANIPULAGAQ DE STRING DEFINE METHOD .STMANIPULA() & ISTRS = ITHIS.STRING.VAL.SPLIT() ITHIS.NUMBER.VAL = ISTRS.SIZE() INOVA =" DO IiNV VALUES ISTRS.INVERTO, INOVA = INOVA + IINV +" ENDDO ITHIS.RESULT.VAL = INOVA.UPC. ENDMETHOD Option gadget Para criar uma tooltip em um boto, por exemplo: BUTTON.B1 ‘Exit’ TOOLTIP ‘ Savework and Exit’ 92 ‘endpoint Solugdos Integradas Lido. Prolbida a roprodugso som prévia outori2agso 22 FIFIIIIIIIIIIIZIIIIIIIGIIIIIIIIIIIVIFGIIGZIIIIIIDG Treinamento PML + Forms & Menus Formutérios AVEVA PDMS 11.65°4 15.22-Dispositivos Toggle Toggle gadget so usados para efetuar contiguragées on/ott independantes umas das outras. Toggle .Bold ‘Bold’ Toggle .GridOn ‘Snap to Grid’ Call ‘{This.MyFunction()’ Toggle .GridOn ‘Snap to Grid’ Call ‘IIMyFunction()* Bold © valor do dispositivo toggle é ajustado através do membro: Neo no qual é um valor BOOLEAN: TRUE or FALSE IF([This.Bold.val EQ TRUE) Then i Ck ‘X ENDIF O valor padrao para.um Toggle é FALSE 15.23-Dispositivo Rgroup Radio Um Radid Group é usado para permitir ao usuario a selegdo de apenas uma em um nimerortixo de opgées, mostrando-as jé organizadas em linhas verticais ou horizontals, cada qual com seu nome impresso A direita dos botées. A sintaxe para ctiacdio deste elemento 6: Roroups Horizontais: RGROUP .FRAME2A ‘Alignment’ FRAME HORIZONTAL CALL" ADD TAG ‘Left’ SELECT 'L’ EXIT endpoin Solugées Integradas Lids 3 Prolblds a eprodugSo sem privia autorizacio Formuldrios Treinamento PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SP4 Rgroups Verticais: RGROUP .FRAME3A ‘Alignment’ FRAME VERTICAL CALL ADD TAG 'Top' SELECT 'T' EXIT Radio group estard sempre com uma das opgoes selecio Ragroup Callback 4 Rgroup .vert |Alignment| FRAME vertic add tag ‘Left’ select ‘L’ exit ar {Imeuform.vert.selection() Note que 0 método SELECTION() retornara o Rlex! do botéo selecionado como uma string, oa endpoint Salugbes Intagrads Lida. Proibide a roprodugdo sem prévia autorixaglo SPIPPIIPIPIIDIIIISFIVDIIIFIIIIIIIIIVIIIIIIIIIZIIIIISI DIFHIFFIPOPPOAOIDIFIOIPOFFI IFS IO TFPDOFOSO PODS IFSP DIISIIIOI>IIOF9IO99 Trelnamento PML+ Forms & Menus Formutérios, AVEVA POMS 11.65PA Para 0 programador verificar qual foi a escolha do usuério podera utilizar a expresso IF como apresentado abaixo: If(\UMyform.vert.selection () EQ ‘C’) then Membro .VAL no Rgroup © membro .val do Rgroup determina através de valot para selecionar um botdo através de valor Por exemplo: !!Meuform.vert.val Ajusta 0 segundo botéo para 5 lenipoint Solughes Iniegradas Lida. 98 Prolslda a reprodugio sem prévia autorlza¢5o Formulrios Troinamento Pll + Forms & Menus AVEVA VANTAGE POMS 11.6 SP4 Criar esta janela: ; > Insira métodos para desabilitar e habilitar campos. eso, membro 5 actively spara este exemplo. ee > es | meta counod nn ‘nutrameewer em 98 lepolnt Slugdes Integradas Lida, Prolbida a reprodugao sem prévia auterizacho 299339 »2 > FIP LZIIIGIIIIIIIIIDGD ,a339a 2»I99 932 IDd > 2 ‘Treinamento PHL + Forms & Morus Formulatios AVEVA POMS (1.8 SP4 Soluc&o do exercicio 10: b SETUP FORM IIEX10 TITLE 'EXERCICIO 10° PARAGRAPH .MSG TEXT ‘This form illustrates form as FRAME .FRAME1 'Frame 1° | PATH DOWN PARAGRAPH .MSG1 TEXT ‘This frame contalt : TOGGLE .BOLD Bold’ CALL" PATH RIGHT TOGGLE ITALIC ‘italic’ CALL" TOGGLE .UNDERLINE ‘Underti EXIT PATH DOWN TEXT ‘This frame contains a horizontal group of radio buttons’ ‘Alignment! FRAME lenzon CALL" "ADD AG Loft’ SELECT ‘L" “Center SELECT 'C’ ‘Right’ SELECT 'R’ endocint Solugb0s Inlogradas Lida. 7 Prolbida a reprodugaa sem prévia autorizng30. DLIFFIPPODFIAOIOADO SOS FIO IFIP DASO SFI AO FSF SOF FFIISISOSIIBIIIIVWD CCOCCERECEOECECHCLCOELKEEECTCECOCOEECCEEOEHRKEECCOCOCEEE ECE CCE Ge opdezuoiee stag wos opSnposdaso epigiohd "wpm sepesBait Sogn |0g wwedpue * ua ONVO 321 I WX LY 19929, TRSNWO" NOLL HO. TWO. 40. HO" NOLLNG, axa axa pp saanenas anes o¥1 cov «NW, 103738 o1ppIWW, OV OY 1 Loatas do1, ov. Gov «TWO WOILUSA INVES JUeWUB)y, VEWvus' dNOwoN 1q O[pes jo dnosB jeojion e Suje\UCO BUIeY} SIL, LX COSW' HdWHOWYV OX Lv .¢ owes, CWves' aINVES dS 9°11 SHGd 3OVLNVA WAsiAY sndoyy 9 SUC + WW OWEUIEEON| ‘soupinuog ‘Treioamenio PML + Forms 8 Menus Foumulsios AVEVA POMS 11.6 SP4 15.24-Dispositivo Option (Opc&o) Um dispositivo Option oferece uma Unica escolha de uma lista. Os itens nallista podem ser pixmaps ou strings de texto, porém nunca uma mistura. O dispositive sempre mostrara o item referente & escolha atual Quando 0 usuério pressiona o dispositive Option, todos os itens serio mostrados. podem entéo’selecionara opgao desejada em uma lista drop-down e o usuai através de clique do mouse. Alargura do texto do dispositive da Option deve ser espetificada- O nome (Tag) é opcional e é indicado a esquérda do dispositivo. A seguinte sintaxe permite criar um disposttivo Optiot Option .Cores ‘Cores! width 10. Assim como visto anteriormenté.nas listas, oS dispositivos Option contém na realidade duas listas paralelas, do mesmo comprimento, os valores mostrados na . } tela (Dtext) e os valores opcionais (Rtext);” A lista dos valores mostrados naitela (Dtext) deve ser inserida em um Array e entao o membro Dtext do dispositive deverd receber este Array. A criagao do array e a atribuig&o do membro Dtext ocorrerd da seguinte forma 1ArrayCores[1] = ‘Preto’ lArrayCores[5] = ‘Vermelho ithis.Cores.Dtext = !ArrayCores endpoint Solugdes Integradas Lda: ” Prolblda a reproduce sem previa autorlzagio Formulétios ‘Trsinamonto PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SP Exercicio 11-Dispositivos Option Crie este formulario: 100 ‘endpoint Solugés Inlegradas Lida. reprodugdo som prévla sutorizacio PIPEZIZGIDIFDIIIDIIIIIIIIIIIIIIIIVFFSIIIFDSFIIQIVINVG GZ IIIA DPOVPFFPPIAPOVIFFFO SSSR FFFSODIDPI OO IF SDFFFIBVIBIIIIF>dIB999 ‘Teonamento PML + Forms & Menus Formuarios AVEVA POMS 11.6 SP Soluc&o do Exercicio 11 SETUP FORM IIEX14 TITLE 'EXERCICIO 11" | PARAGRAPH .MSG TEXT "This form Illustrates form PATH DOWN, > FRAME .FRAME1 'Frame 1° PARAGRAPH .M OPTION .OPCAO exit TEXT GADGE FRAME FRAMES ‘frame 3' AT X 0 YMAX.FRAME1 PARAGRAPH .MSG3 TEXT 'These are text gadget’ ‘endpoint Solugses Integradas Lida. 105 Prolbida a reprodugdo sem prévia autorlzagso COOCCEC OL ECHR ET OCHO EEC ECOEOOEEOCOOEOEE ECE OEE COE COR ECOEEE ‘opSezuoyne ejagid uios ogSnpoudes v epiaiorg "2p11 Sepei6a}y| SegSr|0g 1bIOSpUD zor SOWAH, = [pAVaeVLNSWA721 HANBWdINDA, = [e]AVEVLNSW2 TAI Said. = [Z]AVaeWANSWATaI -BUNLONBIS. = [AVEEVANAWS 731 39AV9 117 OG OANSINO: “TAONVS MO'NIWA WO 40, YO" NOLLNG SAQ LOG —ssrerne Aixa LGIM ,2404 eBessou 3noK 8M, aNve ANVALXL ,oued (xO) 8 S| SIUL, X31 POSW' HavNOVud oy SWE, PWV SINVYS eee INV LYS [meee 4337 NOITVH xa WAH SIS HLOIM . T1¥9 ey, YAN LXE WAY S15 HIGIM « T1¥9 .WBI8H, LHOISH" 1x3. WY SIS HLOIM » T1V9 WRIA, HLOIMY LXBL HORM NOTVH dS 9°61 SNOd 3OVLNYA VA3AY snueyy ¥ SwHOs + Wig OOWRLION, sovpimwres DTIFIPIIPIIAOIFIVIVIVIIFPI>PIOIDOOVO IDOI IFIVID>I>IIBI9I99099 oe ‘Trojnamenio PML + Forms & Menus AVEVA POMS 11.5 SPe IELEMENTARRAYES] = ‘CABLE TRAY" IELEMENTARRAY(6] = ‘CIVIL’ IELEMENTARRAY[7] = "ASL MODELER’ ITHIS.LIST.DTEXT = IELEMENTARRAY ENDMETHOD EXIT ndpoint Solugbes Inlegradas Lida. Frolbie ereprodugaa som prola autoizag80 Formutsros. Formuléios ‘Troinamento PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SPA 15.25-Membros (members) dos formularios Agora os formularios possuem varidveis préprias, chamadas de membrosid Objetos. Estas varidveis tm 0 mesmo tempo de apagadas quando o formulério ¢ finalizado. setup form {MeuForm member .CE is DBREF member String is STRING member -Vafues is ARR, Exit Os membros dos {61 “mem .CEREF is DBREF \this.initcall = /Jthis.init()] button .ce |ce| callback ‘Ithis.init()’ para .cename width 30 hei 4 exit i04 ‘endpoint Solugbes Intogradas Lida. Prolbida a reproduge som prévia auterleacéo FIDIIIIDIIIDISISIIFIIDIIIIIIIIFIIIIIIGIIIIIIIVIIQIIA Treinamento PML + Foims & Menus Formuldrios AVEVA POMS 11.5 SP4 define method .init() Ithis.CEREF = 1ICE Ithis.cename.val = Ithis.CEREF.name Endmethod 15,27-Formatando dispositivos Text © objeto FORMAT controla as informagdes necessérias para Converler um mimero™ (sempre no mm) em uma String, que pode ser uma representagao Imperial. Primeiramente 0 Objeto FORMAT precisa ser instanciado (ctiado) para um tipo de dados especifico. : Podera ser uma variavel GLOBAL e utilizado para qualquer dispositiVo Text. Um dispositive Text pode ser automaticamente formatado utllizando 0 Objeto FORMAT. bak le, y A sintaxe para instandlar um Objeto ¢ a seguinte: llFormatoTamanho = object Pe A configuragao do formato é feita através dos métodos do Objeto FORMAT: !IForifiatoTamanho.Units = ‘FINCH’ 4 Exemplo de racéo do numero de casas decimi dispositi emum lMeuformato = object format() lMeuformato.dp = 3 text Centigrade 'Centigrade* call ‘Ithis.convertCtoF()' width 10 is REAL Format !IMeuformato cendpgint Solugbes Intagradas Liss, 105 Prolbida a roprodusao som prévia autorizagso Formustiog ‘Teeinamorto PML + Forms & onus AVEVA VANTAGE POMS 11.6 SPé 4: Varldveis de formato padronizadas pela AVEVA Os programadores da AVEVA utlizam basicamente quatro objetos dei como variaveis globais. Sendo eles: formatos UDistanceFmt Para unidades de distancia MBoreFmt Para unidades de diémetro NRealFmt Para fornecer um numero consistent nos Reais WintegerFmt Para forgar aos nim 15.28-Bar Menus (Barra de Os formuldrios também podem conter um menu). IThis.bar.add('Window','Menu2') IThis.bar.add('Help'‘Menu3') Exit 108 endpoint Solugbas Integradas Lida. Prolblda a reprodugso som prévis aulcrizag30 PIFIIISIPIIIFIIIIIFIIIAIIIIIIIDIIIIIFISIIIIIIIIIIIA Treinamenio PML + Forms & Menus Foumulstios AVEVA POMS 11 8 $P4 4. }do um Objeto Menu Dentro da definigaéo do formulario 0 sub-comando do menu cria um objeto Menu avlomaticamente. Vocé pode entdo usar 0 método ADD do objeto Menu para adicionar campos aos menus. Um campo do menu pode executar trés fungées, sendo elas: Executar uma callback Abrir um formulario Abrir um sub-menu Vocé pode também adicionar um separador visual entre campos, Através da String SEPARATOR. : Segue abaixo um exemplo da definigac de'um Menu: menu .menut F IThis.menut .add CALLBACK" , ‘Query’, ‘q ban’) IThis.menut.add(‘FORM' , ‘Ola...’ , ‘Ola’} . | IThis.mefut.add(‘SEPARATOR’) IThis.menut.add('MENU’ ,‘Op¢6es’ , ‘opcoes’) | Cria'um menu chamado menui com Irs campos, Query, Ola... Opgdes e um separador entre os ultimos dois campos. campo Query quando selecionado executard uma callback, neste caso execula o comando.Q BAN. © campo Ola... quando selecionade carregara e abrird 0 formulério !!Ola. Pela convengao, 0 texto em um campo do menu que carrega e abre um outro formulario termina com trés pontos, e, © programador deve manter essa convengao na criagéo dos titulos de seus menus. lendpoin! Solugbes inlegradas Lida. 107 Proiblde a repredugae sem pravia autorizagbo Formutvios Treinamento PML + Forms & Momus AVEVA VANTAGE POMS 11.6 SP4 O SEPARADOR, geralmente uma linha, apareceré sempre na mesma posigdo em que ele 6 inserido no cédigo, neste exemplo, entre os menus Ola... @ Opgées. © campo Opgées quando escathido abriré um sub-menu. Ithis.opcoes a sua direlta. Um campo do menu que conduz a um sub com um simbolo > no qual & adicionado aulomaticamente. t ‘ ‘endpoint Solugées Inlagradas Lida. Prolbids a raprodugao som prévia autorizaga0. PIPIPIIIFIVIIIIIIIIIIIIIIIIIIIIILIVIIIGVIIIIIIIGIIA ‘reinamonio PML + Forms & Menus Formularios 7 AVEVA POMS 11.6 SP4 Exercicio 12—Menu Bar o Crie 0 seguinte formulario: Cendpcint Solugbes In(egradas Lia, 109 Proibida a reprociugo sem prévia autorlzagbo Treinamonto PML + Forms & Menus Formuldrios AVEVA VANTAGE POMS 11.6 SP4 Soluc&o do Exercicio 12: SETUP FORM IIEX12 DIALOG SIZE 30 5 BAR ITHIS.BAR.ADD(‘Choose’’MENU1') ITHIS.BAR.ADD(Windows', MENU2' ) ITHIS.BAR.ADD(‘Help' MENUS" ) MENU .MENU4 ITHIS.MENU1.ADD(‘CALLBACK',‘QUERY','Q B, ITHIS.MENU1.ADD(FORM’,‘Ola../Ola') ITHIS.MENU‘.ADD('SEPARATOR') ITHIS.MENU1.ADD(‘MENU','Pull-rig 110 endpsint Solugoes Iniegradas Lida. Prolbida a repradugao som prévis autorizagio 99 FIIVIIIIVIGIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIGIIZG ‘roingmonlo PML + Forms & Menus Objetos PaL AVEVA PDMS 11.6 SP4 @ outros. ara configurar ou formatar 0 sdo usados para armazenar comandos e obler uma forma especial em arrays. O bloco contem uma lista dos comandos e através do io “block evaluation” as agdes so execuladas nos arrays. BOOLEAN — Boolean 6 TRUE ou FALSE, 0 ou 1. REAL — REAL 6 um numero cencpain Solugdes Inlegradas Lida. un Proibida a reprodugao som prévia autorizagio FFDVVFI9II®IFIIIIFAIIIIIDIFIDIFIOIVIFIF9IFI9ID 99999099 Objaros PML Trsingmento PML + Foims & Menus AVEVA VANTAGE PDMS 11.6 SPA STRING — String é um texto entre apdstrofos " ou entre barras verticais | |. FILE —File em principio é 0 nome do arquivo, mas 0 objeto FILE contem métodos para trabalhar com esse arquivo. A BORE - Um objeto Bore é uma varidvel que aceita apenas dad finalidade de um objeto Bore é para que as unidades de diar implicitamente. DB — Db é um objeto de banco de dados. OBREF — é um objeto de referencia do banco de ‘endpoint Solugdes inlegradas Lida. Prolhiga a roprodugso sem prévia sutarizagzo 42 92 9FIIIIIIIIBIIIII9IIIIIIIIIIIIIIIIIIIIIIIIIIIIIAD 999799999 F79FFFIFVIIIIAFIDIVIIIIVDIIDIFIIVVDI9IIIZI0039 Tieinamenia PML + Forms & Menus AVEVA POMS 11.6 SP& MENU OPTION PARAGRAPH RGROUP TEXT TEXTPANE TOGGLE | View | 20 VIEW 8D VIEW 16.2.1-Objetos para geometrias 3D ARG LINE LINEARGRID PLANE PLANTGRID POINTVECTOR RADIALGRID: XYPOSITION \da = object file(‘c:\Arquivoin.txt’) Isaida = object file(‘c:\ArquivoOut.txt’) Para abrir 0 arquivo: Isaida.open(‘WRITE’) ‘endpoint Solugdes inlegradas Lda. Prolbida a reprodugio sem prévia outorlzagdo Odjetos PML Se 113 Obyetos PML ‘Teoinamento PML + Foims & Menus, AVEVA VANTAGE POMS 11.6 SP As opg6es sao; WRITE, READ, OVERWRITE, APPEND, 16.2.3- Usando o Objeto FILE Para ler um arquivo: linha = lentrada.ReadRecord() O arquivo deve estar Para eserever uma linha em um arquivo: lentrada.WriteRecord(|linha) ee de Para ler todo 0 arquivo de entrada: automaticamente Para escrever todo array em um arquivo: Isaida.WriteFile(‘WRITE’, 1A automaticamente O objeto FILE estend vantagens. tamanho,do arquivo pode ser lido Inogratas Lida. 4 endpoint Solued0s Prolbda areprodugso sem prévia sutorlzagao 9239 39I9IDIIIIGIIIINIDIILIIIIIFIIIIIGIIIIII2VIIDIIIDGA > , ‘reinamento PML + Forms & Merus Odjetos PML AVEVA POMS 11.6 SP Exercicio 13-File Browser Crie um formuldrio de busca por arquivos (File Browser) ] Aigumas sugestées: -- defina o formulario file browser setup form llex13 path down text .dirmame list .subdirs A list files ‘Files* | button .readfile button dismiss exit -- verificando os tamanhos dos dispositivos @ seus tipos de arquivos ~ oie as chamadasipara os métodos, exempla: Ithis.initcall = |Ithis.init(Q| ~~ método.construtd | define: method .ex13() Ithis.dirname.val ='.' Endmethod -- definicdo do método de inicializagao define method .init() endmethod -- método de selecao dos sub-diretérios define method .subdirs() endmethod endpoint Solugses Inlogradas Lida ns Proibida a roprodugic sem prévla autorizagao Objetos PL. ‘Treinamonio Pe + Forms & Menus AVEVA VANTAGE POMS 11.6 SPé -- método para mostrar o conteddo de um arquivo define method .readfile() endmethod O métado construtor dever conter: Ithis.DirCorrente.val = ponto (.). O método de inicializagao (Init) devera conter: Instancia do objeto File buscando 0 caminh¢ Ix = object file(2?22??) Inserir o caminho completo em Dir Ithis.DirCorrente. Ibdiret6rios e arquivos este deve “block evaluation” deve-se seguir Néo use o lago DO ser um exemplo do 2 pasos. Idtext = list.evaluate(|files) Insira como primeiro elemento do array (..) para permitir subiada na hierarquia dos diretérios 8 endpoint Solugses Intagradas Lida. Prolbida a reprodugdo sem prévia autorizegzo PIFDFIIIIVIIISIIIIIIIIIIIGIIIIIIIIIIIIIIIIII3BIIIIG| Treinamenio PHL + Forms & Monus Odjetos Pea, AVEVA POMS 11.6 $P4 Idtext.insert(t Insira o array com os subdiretérios no dispositivo List. Ithis.listgadget.dtext = Idtext i Gere um novo array, pode conter 0 mesmo nome, para armazenar os arquivos list = Ix.files() Insira no dispositivo list o novo array ja efetuando 0 comande."block evaluate” Ithis.listgadget2.dtext = Ilist.evalilate(Ifiles), Método de inicializagdo finalizado. \nserir um Callback no dispositivo Text do dirél6rio Corrente, jA que se for inserido um novo diretério ¢ apertado a tecla ENTER todo.0 método Init() devera ser carregade novamente para que seja atualizado os dados do formulario. Inserir um outro Callback no dispositive List ‘dos subdiretdtios para que ao selecionar um subdiretério todo fotmulatio, séja atualizado @ caso seja selecionado o primeiro item da lista (..) 0 diretori cofrente\deVera subir um nivel na hierarquia. Para que essas verficagdes @ejam possivels 0 programador deverd criar um novo método subdirs() ‘ | Define method subdirs() ~- define uma variavel temporaria com)o nome do'diret6rio corrente Itemp = Ithis.ditname.val ~- insere no campo difel6rio corrente o subdirelério selecionado na lista Ithis.dirname.val = !this.subdirs.selection() ~verifica se 6 0 primeiro elemento (..) if (Ithis.subdirs.selection() eq ‘..”) then -- se for instancia um novo. objeto File para o diretério corrente Is = object file(ttemp) ~- insere no campo diretério corrente o caminho do diretério acima dos subdiretérios Ithis.dirname.val = |s.pathname() Endit endpoint Solugdes Intogradas Lida. "7 Profisia a roprodugao som prévie autorlzag80 ‘Teoiramanio PML + Forms & Moous Obietes PML AVEVA VANTAGE PDMS 11.6 SP4 ~ atualiza o formulério Ithis.init() ~final do método Endmethod Defina um método para ler e abrir um arquivo e ( es S PS " end ° Proibida a reprodugac Soluebes iniegradas Lida. jo sem prévis autorizagso 9993 99IDIIIIIIIIIIIIIIIIIIIIIIDIIIIGIIIIZDIIBIIDIDG Treinamento PML + Forms 8 Menus Odjelos PML AVEVAPOMS 116 SPa Solugdo Exercicio 13: ‘SETUP FORM IIEX13 SIZE 50 13 ITHIS.JNITCALL="ITHIS.INIT()" TITLE Fle Browser’ ‘ PATH DOWN | s PARA PARAM TEXT ‘Current Directory’ TEXT .DIRCORRENTE CALL ‘ITHIS.INIT()' WIDTH 50 IS STRING x LIST .SUBDIRS 'Sub Directories' CALL 'ITHIS.SUBDIRS()' WIDTH 50:HEI 3 LIST ARQUIVOS Files’ WIDTH 50 HE! 7 - BUTTON READ ‘Read File’ CALL 'ITHIS.READFILE()' TOOLTIP ’L8 arquivo selecionado’ PATH RIGHT ‘ BUTTON .DISMISS ‘Dismiss’ AT XM) C exit wake METODOS-------=> DEFINE METHOD .EX13() ITHIS.DIRCORRENTE.VAL = ENDMETHOD (CUyEVAvone £SPZuann Cavevavinst 6 sPraaae [ccavevniaes! Spaeth (Ceavevathaet Sean Cavevaroeet 8 sPaat are co DEFINE METHOD .INIT() AVEUAFgra 8 Suan are rds | AVEVRnorlt A SPPaaecece [ceva sates y IX = OBJECT, ony ITHIS.DIRCORRENTE.VAL = IX.FULLNAME() 1ARQ=OBJECT BLOCK(‘ILISTATIEVALINDEX].FULLNAME()') ILISTA = IX.SUBDIRS() IDTEXT = ILISTA.EVALUATE(IARQ) IDTEXT.INSERT(1,.) Cendpeint Solugbes Inlegradas Liga 419 Pralbida a roproduco sem prévia autorlzagao Odjet08 Prat. ITHIS.SUBDIRS.DTEXT = IDTEXT ILISTA = IXFILES() ITHIS. ARQUIVOS.DTEXT = ILISTA.EVALUATE(IARQ) ENDMETHOD DEFINE METHOD SUBDIRS() * IF (ITHIS.SUBDIRS,SELECTION() £Q \.|THEN IS = OBJECT FILE (ITHIS.DIRCORRENTE.VAL) ITHIS. DIRCORRENTE.VAL = IS.PATHNAME() ELSE ITHIS. DIRCORRENTE.VAL = ITHiS.SUBDIRS. ENDIF STHIS.INITO) ENDMETHOD 120 Proll “Teelnamanta PML + Forms & Manus AVEVA VANTAGE POMS 11.6 SP4 ‘endpoint Solugées Inegradas Lisa, produgo Sem prévia autorfzagdo 99999 IDIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIINIIIADIIG PIDIFIIPFIPISOSO OIF IIISOSIOIPPO POO IDS IDI IISIISFIDIIFDI99 ‘Teelnamanto PML + Forme & Morus AVEVA PDMS 11.6 SPA Objotos PML. 16.2.5- Use o Bloco de Notas para abrir um arquivo programador pode utilizar 0 comando syscom" para abrir um programa externo como, por exemplo, o Bloco de Nota Define method readfile() IARQ = object file(|this.arquivos.selection()) --do !d values larray ~-$p $id ~-enddo endmethod ‘endpoint Solugbes intogrades Lida. Prolbida a reprodugio som prévia autorizagiio S syscom 'c:/iwindowsinotepad.exe $IARQ&’ & ~larray = larq.readtile() \ ‘Odjatos definisos polo usuério ‘Trolnamenlo PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SP4 ago ¢ feita da 1as é possivel alterar para 10000 a elevacao do elemento e object VIEWCLIPDATA ember .Pos is POSITION member -XLen is REAL member .YLen is REAL member .ZLen is REAL endpoint Solugbes Integradas Lida. faa reproduce sem prévia autorizagio 999 IIFIFIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIVIIDIID’ PIDIDFIPPTIIIFDISOIDFIIAOTSOSOPDIVID AOD SIIAPS SO SO OO DDIIO0D Troinamonte PML + Forme & Menus AVEVA PDMS 11.6 SP4 member .Ori_ is ORIENTATION endobject | 17.1-Definindo um objeto define object ELEMENT | member .Type is STRING member .Material is STRING endobject 17,2-Usando um Objeto Item = object ELEMENT() a" this. Type & ‘‘ & Ithis. Material ethod 17.4-Utilizando um método do Objeto iName = IItem.FullDesc() | ‘endpoint Solugdes Inlegradas Lda, Prolbida 2 roproducéo sem prévio autorlzagio | ‘Objetos delinides polo usudrio (Objotos detnidos pele usussio ‘Treinamente PAL + Forms & Menus AVEVA VANTAGE POMS (0.8 SP4 17.5-Método Construtor Um método com nenhum argumento mas com mesmo nome do objet de método construtor padrao. define method .Answer() is REAL return \This.Answer endmethod € define method .Answer(IValue is REAL) \This.Answer = IValue Endmethod 17.6-Exemplo de uso IMarvin. Life() Teste = 38 pois recebeu o valor de retorno O método .Lifa() ¢ chamado automaticamente @ a variavel !Numero serd 42 IMarvin = object LIFE() INumero = IMarvin.Answer() ‘endpoint Solugbos Intogradas Lids. Prolbida a roprodugdo som prévia sutorizacao 999 9IFIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIGG ‘Teeinamento PML + Forms & Manus (Odjetos detnidos polo usuario AVEVA POMS 11.6 SP4 4 BOX Icaixa = object box() Icaixa.box(10,20,30) feaixa.volume() 6000 cava area & 2200 mecconmnent ~- Objeto para armazenar informagées sob) x -- Calcula a area da superficie e o volur DEFINE OBJECT BOX MEMBER .XLEN IS REAL MEMBER .YLEN IS REAL MEMBER ZLEN I ENDOBJECT DEFINE METHOD .BOX(IX EAL) ITHIS.XLEN=IX ITHIS.YLEN=1Y JOD .AREA\) IS REAL EN * ITHIS.YLEN * 2+ ITHIS.ZLEN * ITHIS.YLEN * 2 + ITHIS.XLEN * ITHIS.ZLEN * SP SIA ENDMETHOD eripoint Solugées inlegracias Lida 128 Proiolda a reproduggo sem prévia autorlzagio DDIFIPSOSOPFIO DAO IOI FF FIDO SOFISDIO VIF AO IP DAIO FIFI IOI BIFIZO99 Even! Orivan Grenhies ‘Troinamento PML + Forms & Mon ‘AVEVA VANTAGE POMS 11.6 SP 2343333 que utilize a mes’ EDG substitul a ant o'elemento padrao Ipacket.elementPick(‘selecione o elemento para finalizar’) Contigurando uma aco para ser executada apés 0 clique tpacket.action = 'q var Ithis.return[1)" endpoint Selves Iiegradas Lida Proll a producto som prévis sutorzayso ~ a ~ . > ° * > > - * * 5 » - * * . . a - . > . _ ~ ~ _ > ~ ~ _ > 5 4 > 4 ° * > 5 = Treinamanio PML + Fors & Menus Event Driven Graphs AVEVA PDMS 1.6 SPA Configurando a seqiiéncia de finalizagao, neste caso sera imprimido a mensagem Finalizado na tela. Ipacket.close = '$p Finalizado’ Adicionando 0 evento no sistema ledgCntrl.add(lpacket) 18.1-Exemplos de EDG Exemplo 4 -- edgnav — FUNCAO PML2 no qual navegaipelo bandoxde ~-Dados e retorna ao elemento inicial define function !ledgnav() ~ instancia o evento Ipacket = object EDGPACKET() _ ~ Define 0 elemento de referéncia para a Selegao Ipacket.elementPick('Selecione um elemento para sair') -- Salva elemento corrente antes do evento packet ser executado pelo sistema Ipacket. initialisation = "Ithis.input[1] = Ice’ ~ Posicionando no'élemento clicado Ipacket.action = "lice = Ithis.return[f].item' ~- Configurando a seqiiéncia de fechamento, o elemento corrente volta a ser o elemento que era corrente antes do evento ser executado lice = Ithis.input[1} lpacket.close -- Adiciona 0 evento ao sistema endpoint Solugoes intogradas Lida. 7 Proloiga 9 reprodugaa som prévia autorizac30. vont Driven Graphies Tieinamento PML + Forms & Morus AVEVA VANTAGE PDMS 11.6 9P4 StedgCntrl.add(Ipacket) Endfunetion Exemplo 2: ~- edgarray - FUNCAO PML2 no qual imprime uma lista dos Items selecionados na Graphical View. : ie define function Nedgarray() ~- instancia 0 evento Ipacket = object EDGPACKET() ‘esc> para sair') Exemplo 3: 128 “encboint Solugdes Integradas Lida. Prolbida a reprodugso sem prévia autorizagao PIDIIIIIIIIIIIIIIIIIIIIIIIIIIIIIVIIIIIIIIIIIIIIIGI DIDIDIDOF IOI IIOF DISD IDI AOS IAD VII DIDO OIODAODOIODOPVDVIIDIVIO OID ‘Tieinamano PML + Forms & Manus AVEVA PDMS 11.6 SP4 ~- edgpline — FUNGAO PML2 that will pick a pline ~- and display results | define function Hedgpline() ~ instancia 0 evento Ipacket = object EDGPACKET() ~ Define o elemento de referéncia pa Ipacket. plinePick (‘Identifique va -- definigao da agao a ser executada Ipacket.action = 'q var Ithis.retun -- Adiciona o ever si ledgCntrl.add(t Endfunction endpoint Solugses Inteoradas Lids. Prolblda a roprodugao sem prévia autorlzagio Event Driven Graphies Colastes Treinamonio PML + Forms, TvEvR VANTAGE POMS {1 88a Uma ferramenta muito poderosa do banco 6 a pi coletar e nomear (ou dar um valor) aos dad gras para selecao. Pmi2: [Zonas = !Icollectallfor('ZONE’,",SITE) IElbo = IIcollectalifor(‘ELBO’ , 'spref eq /B/4.0ELL90' , PIPE) endpoint Solugdes Integradas Lida, 120 Protbida a reprodugdo sem prévia autorizagBo 99IIIIIIIIIIIFIIIIIIIIIIIIIIIIINIIIIAIIZIIIIIIVIDG DFIFIFHDFFFFFFHFFHFHVFHFFFHFFVFFFF79T999FFV9FF99TI9I909 ralnamento PML + Fons & Menus AVEVA POMS 17.6 SP4 !Bocais = \Icollectallfor{ ‘NOZZ’ , 'ptbore eq 100", HCE} JEquip = lIcollectallfor( ‘EQUI , 'matchw (name , |/1*[)' IICE ) Nola:com esta sintaxe todos os elementos coletados sao DBref. E a utilizar a seguinte sintaxe: Q var Ibocais[3].name ‘/1104-N1' in Solugdes Inlegradas Lica. ‘oprodusae sam prévia autortzagso Cologtes ‘Troinamonto PML + Forms & Menus AVEVA VANTAGE PDMS 17.6 SP Exercicio 14-Colegées e Listas de Multi- colunas Utilize a sintaxe do comando COLLECTION (COLL) ¢ os digpds multi-colunas. No método construtor o programador deverd criar o cabegalho, leabecalho = Array() \cabecalho.append(‘Nome’) \cabecalho.append(‘East Icabecalho.append(‘Noith’) leabecalhé,append("Up’) Ithis.eqpl.setHeadings(Icabecalho) (em aron = iis no i aoe Ya | coweeun vee maces Inserindd dados ha lista (através de arrays multi-dimensionais). Utiizaf'o método de inicializago para esta operacdo. Criando 0 Atray de-Arcay» do li indexlequinomes Adtext[i][1] = !Equinomes{li] Iditext{ti]{2] = !posef!i] ldtext[!i][3] = !posn[li] Jdtext{{i]{4] = Iposulti] enddo this.eqpl.setRows( Idtext ) 192 endpoint Solugdes Integradas Lida Prolblda © reprodiugao som prévia aitorizagio DPIPFPIIAOAO POFFO SOFAS SOO SF SF FIFO F FAO FF VF FOIAODFFIFO F999 R9BF9O9 ‘Treinamanto PML + Forme & Menus AVEVAPOMS 11.5 SP Inserindo apenas os nomes dos equi Ithis.eqp|_rtext = lequinomes eo ‘endooin Solug6es ntogradas Lids. Proibida @ enrodugio sem prévia autorizag3o_ Colegbes mentos no campo Rtext (opcional) SS Coogbos ‘Trinamonto PML + Forms & Monus AVEVA VANTAGE POMS 11.6 SP4 Solugdo Exercicio 14 ‘setup form IIEX44 dlalog dock right title ‘Lista de Equipamentos’ Ithis.initcall = ‘ithis.init() {ist equ ‘Lista de equlpamentos’ anchor left+right+top colur button .find* Find * call “Ithis..nit( path right button dismiss ‘Dismiss’ call " var lequip coll all equi for site jora lista com nomes e posigdes a4 ‘endpoint Solugdes Integradas Lida. Proibida a reprodugao sem prévia autorizagéo 9 I IIIBIIIBDIIIIIIIIIIIIIIIGIIIIII9IIIIIIIIIIIF9VIIIGDG ‘Tyainamento Pik + Faums & Menus AVEVA PDMS 11.8SP4 var lequiname eval name for all from leqi var Ipose eval for all from lequip var Iposn eval n for all from ‘equip var Iposu eval u for all from lequip tequiname.insert(1,'Name’) Ipose.insert(1,"East’) Iposn.insert{4,'North’) Iposu.insert(1,"Up’) do ti index lequiname Idtext(ti][1] = lequiname}ti) Idtext{Ii][2] = Ipose[ti] atextfHi]2] = [posn{t) ldtext{t][4] = tposul endpoint Solugbes Inlogradias Lda. Prolbida 3 roproducse sem prévia autorirags0 DIIIIFIAAIAPIIIPAPPDPI>VIPIPIPIIPPIPIVIFDIVIIDODD Colegbos Monu Pop-Up “Troinamento PML + Forms & Mi AVEVA VANFAGE POMS 11.694 _tmenu. adaljseparator) Imenu.add(|callback| , [Modify...{ , |Ithis.listPopupCallback()]) -- o menu é adicionado ao dispositive Ithis.equi.setPopup(ithis.fistaPopup) 198 Join Solugdes Intagradas Lida, Protldaaroprodughe som pris suloraagto FIDIFDIDPGIAIIIIIFIIIIGIIIIII9IIIIIDIIIIIIVQIIGIIIIFIIIIG Treinamanio PML + Forms & Manus Menu Pop-Up AVEUA PDMS 11.6 SP4 O pop-up pode ser definido dentro ou fora do cédigo do formulario, s6,ndo deve ser definido dentro do cédigo dos métodos. 4 Exercicio 15- Menus Pop-ups Crie um menu Pop-up para 0 formulétio criado no exarcicio 44. Esta Pop Up deverd ser capaz de alterar 0 contetdo dé lista, ~ setup form 1IEX15 dialog dock title ‘Lista de Equipamentos' Ithis.niteall = this." path down ] list oqul ‘Lista de equipamentos’ cofiumris width 40 hel 151%" button find ' Find callIthis.init(Panchor left+bottom 3 path right, > < | [ button dismiss ‘Dismiss! call” at xraax form-size ymin anchor right+bottom CANCEL tmenu = Ithis.newmhenu(‘listpopup') < Imenu.addt'callback,,Fing’,Ithis ini) Imenu.add(‘separator’) £ Imenu.add(‘callback:,'Modify',Ithis.chamaModEqui()) Ithls,equ.setpopup tiis.listpopup) Exit $ ~Dafinigio do:método de inicializagao define method .init() site handle any Walert.error('Voce deve estar na Site ou abaixo dela para utilizar este formulério’) returm error 4 || noalert endhandle ceipoin Solugses Intogradas Lida, 137 Prolbide a reproduce sem prévia autortzagao Merv Pop-Up Tielnamento PML + Forms & Menus AVEVA VANTAGE POMS 11.854 ~~tolaclonar os dbrefs de todos os equipamentos var lequip coll all equi for site ~--gera lista com nomes e posigées var lequinamo eval name for all from lequlp var Ipos: for all from Jequip var Iposn eval n for all from lequip & var Iposu eval u for al! from lequip lequiname.insort(1,'Name") Ipose.Insert(1,'East’) Iposn.Insert(1,'North’) Iposu.insert(1,'Up') do li index lequiname Jatext(N][t] Idtext(ti][2] ldtext[ti]{3} = !posnfll Jdtext[li][4] = Iposufll] 198 endpoint Solucbes Integradas Lida. Prolbida a reprodugio sem prévia autorizagio 9 II IIIIIDAIIIIIDIPGIGIIIIIIIIIIIIIIIIIIILIIIII9IAIIIAD ‘Teinamento PML + Forms & Menus Menu Pop-Up AVEVA POMS 11,554 efinic¢éo do Formulario chamado pela Pop U + definigao de formulario Modequi ~- modifica valores dos campos do formuliirlo EX15 setup form !Imodequi tle "Modifies Elomontos INITCALL "Ithis.init(* mom .ce Is dbref i path down text nome ‘Nome’ width 26 is string text. 'E' width 7 Is real format Idistancefmt path right text .N 'N! width 7 Is real format !Idistancefm text .U U' width 7 Is real format Idistancefmt path down button .apply ‘Apply’ at x0 call" path right sthod .init(), Zc Next5.equi.val + 1) split()(4] »xf[Itex15.equi.val + 1].split()[2].real() ‘endpoint Solugdes inlegradas Lida. 139 Prolbide a roprodugao som prévia autorizagso FIPIAPIOFIOOPSFIAIOIFFI OA FFS9IFTIIVIFFIIFIIFIFFFIFF9IFIFIII99 Menu Pop-Up Trelnamento PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SP4 define method .apply() ~ armazena o elemento corrente Ithis.ce* Ice ~ cofoca-se como CE 0 elemento que deseja-se alterar Sithis.equlp ~-altera o nome lice.name = Ithis.nome.val caso © nome continue o mesmo o erro enviado é c handle(41,12) € endhandle -- modifica-se os valores de posigao é necessario criar ur Ipos = IIce.pos Ipos.up = Ithls.u.val Ipos.east = !this.e.val Ipos.north = Ithis.n.val {Ice.pos = tpos =o retorna-se para CE 0 CE Iniclal Sithis.ce allista do formul é Mex15.init() endmethod 140 ‘endpoint Solugbes Integradas Lida. Proibida a reprodugso sem prévia autorizag3o, FIDGIFGIDIIIIIIIIIIIIAIIAIGIIIZQIIAIIIIIVQIIGIIIIIAIGGIIIIG = Crimson ‘Treinamonio PML + Forms & Menus Disoosivas de visvalizagso AVEVA POMS 11.6 SP4 interativos, Tipos de aplicativ| DPIPOHPFIPFAIODPIDSSOAPOIFIDISIFIF ID DIOVPIIIII9O9O9 channel REQUESTS channel COMMANDS Exit endpoint Solugao Intogradas Lido, 1 Proibida a reprodugao som prévia autorizagie DIFFIVIF9IF999 Dispostivos de visualzagso Treinamento PML + Forms & Menus AVEVA VANTAGE PDMS 11.6 SP4 path down button .Buttont ‘Apply’ Call "' path right button .Button2 ‘Dismiss! Call '' AT Xmax form —size CANCEL exit 21.2-PLOT View setup form !view View .viewt plot width 41 hei 15 exit define method .view() \this.view1 borders = FALSE ithis. view! add('%PDMSUI\piots\ARQUIVO. ndmethod 4 21.3-Dispositivos View, & Pop-Ups setup form lIpoptest view .vol volume, width 50 hel 9 exit path down Button .press ‘swap popup’ call ‘this.popswap()' menu |popmenu ‘add ‘hello’ call ‘show !lola’ ‘add ‘world’ '* exit exit define method .popswap() tthis.vol. popup = this. popmenu Endmethod 12 ‘endpoint Solugées Iniegradas Lida, Prolblda « reprodugio tem prévia autorizagso ‘Treinamento PML + Forms & Manus Mscelénea ANEVAPOMS 11.8 SP4 As fungées do PI seja necessério. Abaixo, exemplo da LT 100) then 1a ela mesma ‘endpainl Solugées inlegradas Lida 149 Proiide 3 reprodupio sem pris autorizacko DIFIFDIVOIOPAOPHOFIFIISOIO BI AIDIIDIVOIFIDIFISS SIF THVIIIIIIVII009 Miscalénea Troinamento PML + Forms & Manus AVEVA VANTAGE POMS 11.6 SP4 22.2-Quitcall Quitcall 6 utilizada para tratar o que acontece quando 0 formulario é fachado pelo X -- Example Quiteall Macro setup form !Iqcall title ‘Quit Call Example’ initcall |Ithis.init()| quitcall |Ithis.quitcall()| okcall |Ithis.ok()| cancelcall |Ithis.cancel()| bulton ok * OK ‘call button .apply ‘Apply’ at x15 bution .cancel Cah ‘ Neste exemplo se 0 X for aperlado os métodos Quitcall e ext Canceleall serdo executados. define method .qca $p Constructor define method .apply() va ‘endpoint SolugBos intogradas Lida. Praibida a reprodugtio som prévia autorlz2ps0 FIFIBPPIDIIIIDFIIIIIIIIFIIVIIIIIIIIVDIIGIVIIIIIAIAIQIIA Treinamanto PML + Forms & Menus Miscolinea AVEVA PDMS 11.6 SP4 $p In Apply endmethod define method .cancel() $p In Cancel Endmethod define method .quitcall() $p In Quit endmethod 22.3-Desfazer e Refazer, (unde e Redo) Se 0 programador deseja escrever Unfapieative o qual cria ou apaga itens do banco de dados do PDMS etnuito importante que seja utilizada a pratica de desfazer ou refazer modtticacdes, Para utilizar estesfecursos, ~. deve sempre que for fazer alguma modificagao inserir uma marca (MARK) no banco de dados, da seguinte forma: MARKDB ‘Comentario! Se o66mando undolforullizado apareceré a seguinte janela (oa) Unda weave back a “eeren. pefomed Oh Om 19: ago, accept? CeCe) 22.3.1-Comandos Undo e Redo UndoDB — retora ao Ultimo ponto marcado no banco de dados RedoDB — refaz 0 ultimo Undo endpoint Solug6es Intogradas Lida. \ us Proibida 8 reprodugSo som pravia autorlzagso Miscolénoa Troinamente PML + Forms & Menus AVEVA VANTAGE POMS 11.6 SP4 22.4-PML Tracing Este recurso € muito util para o programador PML. Configura o PDMS para mostrar as jinhas de comandos das macros am execugAo. A saida pode ser a tela ou um arquivo. 22.4.1-Acianando o Tracing - imprimindo na janela de comandos (command ling): $R{numero} - imprimindo em arquivo: $R{ntimero} {nome do arquivo} 22,4.2-Desligando o Trancig -$R 22.4,3-Verificando as configuragbe: = imprime ebnfowraG oes Eprentey dotracing $QR 22.4.4-Ajuda do Tracing ~ imprime na janela ds comansos 5 opgdes disponiveis: $HR ih a 22.4.5-Opedes d6 Tracing Para ativar 0 tracing existe a nebessidade Ye informar ao PDMS as opgées selecionadas "pelo ‘programador, asta lista dé opgoes 6 passada ao programa através de um NUMERO, Opgées: 4 — tracing inserido em um arquivo 2~tracihg Inserido na janela de comandos \ 4 tracing Gaptura apenas as linhas executadas 8.tracing captura todas as linhas executadas 16 ~ tracing captura as linhas endo expande as variaveis com § na frente 32 — incluira o nuimero da linha no tracing 64 — tracing captura as modificagées feitas pelas macro / fungées O NUMERO 6é formado pela soma do numero de cada opcao desejada. 146 endpoint Slucties Inlegrades Lida Prolblda a reprodugdo sem prévia autori2aga0 3933939 ) Treinamento PML + Foens & Menus Miseeténes AVEVA PDMS 11.5 SP4 Por padrdo o trace insere as linhas no shell do windows e as variaveis com $ sao expandidas. Exemplo: $R4— trace caplura as linhas executadas e envia para o shell do windows $R6 — trace captura as linhas executadas e envia para a linha-de comandes do PDMS. x $R10 — trace captura todas as linhas e envia parava linha de-éomandos do PDMS. $R100 — trace completo das linhas executadas enviadas ao'shell do windows. 22,.5-Alpha Log Salva as respostas do PDMS aos comandgs do usuario em, um arquivo. Exemplo: in eX Ee Alpha Jog /nomedoarquivo Reatornos da linha de comandos : ‘ f Alpha log end 22.6-Questionamento de Comandos - $H Existe um comando do PDMS extremamente util para o programador. Este recurso 6 utllizado para Verllicagao de comandos disponiveis no PDMS. A utllizagao deste recurso sea da seguinte forma: SH — imprime os topicos dos comandos $H{numero} — imprime as opgdes de algum tépico ou outros tépicos {comando} $H — imprime as opgdes daquele comando ‘endpoin Solugées Integradas Lida “7 Prolblda a reprodugio som pravia autorizag3o Migcolénea Traloamanto PML + Forms & Manus AVEVA VANTAGE POMS 11.6 SP Exemplo: Query $H4.2.6. - query ile, login , host, varidveis ce ambiente Setup $H — Criagao de novos formuldrios & Show IIsintaxhelp — formulario para auxilizar no us 22.7- Acesso ao PDMS via TTY Existe 2 possibilidade de acessar o PDMS. interface grafica. Nele podemos executar macros sem, Por exemplo, podem que entra no modo’ AVEVA Review. © modo TTY pode © PDMS via TTY basta digitar na linha de comandos do Windows o rquivo executavel do programa e o parémetro TTY o qual identifica o in desejado. Dessa forma teremos: C:\AVEVAIPDMS11.6.SP4\pdms.exe TTY, Efetuaremos o login conforme os dados abaixo: 18 eadpoin| Solugbes Inlegradas Lida Prolblda a reprodugao sem prévia Butorizag30 PIPIDIIDIDIIIIIIIIIIIIIIIIIIIIIIIIFGIIINGIIIIIIVIIIA ‘Treinamenio PML + Forms & Menus Miscolénoa AVEVA PDMS 11.8 SP4 Projeto: IMP Usuario: TRAINA -- Senha: A MDB: TRAINA Médulo: DESIGN Dentro do programa a sequéncia de comandos para que o login corretamente 6 a seguinte: PROJ IMP USER TRAINA/A ITRAINA DESIGN 4\PDMS.BAT TTY IMP TRAINAJA /TRAINA to 0 login no médulo Design teremos que efetuar essa operagdo culada e também nao é necessario inserir os comandos PROJ, livo com a extensao .bat Para executd-lo basta dar dois cliques sobre o icone. endpoint Solugdes Intogradas Lida. 149 Problda a repradugSo sem prévia autorlzagso DVOIFIAPIIOAPOFAIOOSCASD FF FISOFGIOIFI9 PFO SPFFSIFOIIIISIIIIOIIFIFVIII99 Miscoldnea ‘Treinamanio PHL + Forms & Manus AVEVA VANTAGE POMS 11.6 SP& 22.7,.3-Executando macro no PDMS via arquivo Batch Para executar uma macro no POMS através do arquivo Batch, basta comando acima com a sintaxe de execugao de batch do pdms. O resultado sera: E [PROJECT1.-vm OVER HOLES ON REPRESENTATION PROFILE ON REPRESENTATION INSU OFF REPRESENTATION LEVEL 6 150 endpoint Solugbes Integradas Liga. Prolbida a roprodugBo sem prévia autarizago PIDIDIIDPIIIIIIFSIIIIIIIIIIIIISIIIIIIFGIIVIIIIIIIIIIY AVFIFSFFOFOSOAODOFIFIIFIIOD IO IF VO SFIFIDISIISIOIIVIFI®IIBIIIIOD ‘Teeinamenio PML + Forms & Manus Miscelines AVEVA POMS 11.8 SP4 REPRESENTATION LEVEL PIPE 5 REPRESENTATION LEVEL NOZZ 5 REPRESENTATION LEVEL STRU 7 EXPORT AUTOCOLOUR RESET EXPORT AUTOCOLOUR ON EXPORT AUTOCOLOUR ALL PIPE COLOUR 4 $* YELLOW ~-EXPORT AUTOCOLOUR ALL EQUI COLOUR 9 $* BRO| EXPORT AUTOCOLOUR ALL REST COLOUR 4 $* yell EXPORT AUTOCOLOUR ALL HVAC COLOUR 19 $* GOLD EXPORT AUTOCOLOUR ALL SCTN COLOUR 14 §* BLUE GRA) EXPORT AUTOCOLOUR ALL STRU COLOUR 10 EXPORT AUTOCOLOUR ALL PANE covour 4 EXPORT CE EXPORT FINISH ‘SP FINAL, FINISH ‘endpoint Sougdes Intogradas Lida, 11 Prolbida a reprodugae som pidvla autorlzagso

You might also like