Suporte Técnico / Hotline – Informativo Técnico
WinCC: Dicas sobre scripts
Marcelo Butenas
CONTEÚDO
1. Introdução ............................................................................................................................................................ 2
2. Linguagens de programação utilizadas para scripts ............................................................................................. 2
4 Tipos de scripts ..................................................................................................................................................... 3
5 Dicas sobre scripts ................................................................................................................................................ 4
6 Suporte técnico Siemens ...................................................................................................................................... 7
7 Links úteis ............................................................................................................................................................. 7
Simbologia utilizada:
Indica informações importantes
WinCC: Dicas sobre scripts 13/01/2015 1/8
Siemens - Technical Support & Hotline Portal de Suporte: [Link]/Hotline
1. INTRODUÇÃO
Este documento apresenta um resumo e dicas úteis sobre Scripts no produto
Simatic WinCC (versões 5,6,7 e 11,12,13 professional) , e supõe que o leitor possua
conhecimento básico sobre o WinCC. Para informações completas e atualizadas,
deve-se consultar o manual do produto. Toda informação provida por este
Importante documento é apenas de propósito informativo e não pode ser desvirtuado. A
Siemens Ltda. reserva os direitos de mudar a informação contida nesta página a
qualquer momento. A Siemens Ltda. não aceita a responsabilidade pela garantia
da precisão da informação aqui contida.
Por mais completo que seja um software de supervisão de processos, é comum surgirem
necessidades do cliente que não são atendidas pelas funções "normais" do software.
Para estes casos, é comum a utilização de "scripts", que são pequenas rotinas lógicas que
permitem ao programador criar novas funcionalidades (cálculos, animações, relatórios, etc.).
2. LINGUAGENS DE PROGRAMAÇÃO UTILIZADAS PARA SCRIPTS
No WinCC existem várias possibilidades de linguagens de programação para escrever scripts:
Visual Basic for Applications (VBA)
Permite a criação de rotinas para automatizar a fase de engenharia do projeto. Exemplo: cria-
se um novo botão no editor gráfico (além dos originais do WinCC). Ao pressionar este botão,
todos os objetos da tela têm a sua cor alterada para vermelho - ou seja, podem-se criar novas
funcionalidades para ajudar a construção de telas e automatizar tarefas diversas.
VBS (Visual Basic Script)
Permite que rotinas sejam disparadas em intervalos regulares ou quando tags mudam de valor
no CLP (ou ambos), podendo realizar tarefas diversas como cálculos especiais, tocar arquivos
de som, exibir animações especiais, armazenar valores em disco, etc. Permite fácil acesso à
aplicações do Office (Outlook, Word, Excel, etc.).
Os scripts em VBS são guardados em Procedures (criadas uma vez podendo ser usadas em
diversos pontos diferentes). Um conjunto de várias Procedures é determinado Module
o Standard Modules: contém Procedures disponíveis para todos os projetos.
o Project Modules: contém Procedures disponíveis para o projeto específico.
“C”
Idem ao VBS, mas com a sintaxe da linguagem “ANSI-C”. Possibilita acesso à funções
internas do WinCC.
Outras:
Apesar de pouco utilizado, é possível também utilizar funções de uma DLL, escritas
originalmente em outras linguagens (Delphi, C++, etc.) (requer bom conhecimento de
programação).
WinCC: Dicas sobre scripts 13/01/2015 2/8
Siemens - Technical Support & Hotline Portal de Suporte: [Link]/Hotline
Todas estas opções fazem parte do pacote básico do WinCC e a escolha de qual usar é livre,
devendo ser feita conforme o tipo de aplicação e conhecimento do usuário. É possível utilizar
todas ao mesmo tempo, só lembrando que um script escrito em C não pode chamar
diretamente uma função de projeto escrita em VB ou vice-versa. Um script em VB pode
chamar uma função "C" desde que se utilize a ferramenta "WinCC Script Connector":
[Link]
4 TIPOS DE SCRIPTS
1- Scripts de tela (disparadas por eventos do mouse/teclado, mudança de propriedade de um
objeto, tempo ou tags)
Exemplo (em linguagem VBS):
'Interrompe Runtime ao clicar no botão
Sub OnMTClick_RT_Stop(Item)
[Link]
End Sub
2- Scripts globais (global actions): rodam no servidor e em clientes
(disparadas por tempo e/ou tags)
Exemplo (em linguagem “C”):
#include "apdefap.h"
int gscAction( void )
{
// Incrementa o tag “anima1” a cada
// 500 ms (configurado no Triger)
// Quando o valor ultrapassa 15, volta para 1
int i;
i=GetTagWord("anima1");
i++;
if (i>15) i=1;
SetTagWord("anima1",i);
return i;
}
3- Scripts locais (local actions): rodam apenas no micro (servidor ou cliente) especificado.
(disparadas por tempo e/ou tags)
4- Scripts de projeto (project function) (não tem disparo próprio, são chamadas pelas
anteriores)
Exemplo (em linguagem "C"):
// Abre/mostra uma janela com texto informativo
void Avisa(char* texto)
{
MessageBox(NULL,texto,"Aviso:",MB_OK
|MB_ICONEXCLAMATION|MB_SETFOREGROUND);
}
WinCC: Dicas sobre scripts 13/01/2015 3/8
Siemens - Technical Support & Hotline Portal de Suporte: [Link]/Hotline
5- Scripts internos que são chamados em eventos específicos do WinCC (exemplo: na
ocorrência de erros internos ou alarmes do CLP). Para uso destes scripts, é necessário
conhecimento avançado da linguagem "C" e do pacote (adicional) chamado "ODK" (Open
Development Kit).
Os tipos 2 e 3 são usados para tarefas independentes da tela sendo visualizada, tais como
relatórios diários automáticos, monitoração de tags ou cálculos especiais.
O item 4 é usado para rotinas que são usadas em diversos lugares (itens 1,2 e 3), mas são
definidas em apenas um lugar.
O item 5 é usado em aplicações especiais e requer bons conhecimentos de programação em
"C".
5 DICAS SOBRE SCRIPTS
A- Documentação (manuais) sobre scripts são instalados junto com o WinCC, e são
encontrados (V7.0 SP2) na pasta ..\WinCC\Documents\english\..
[Link] (VBA for Automated Configuration)
[Link] e (VBS for Creating Functions and Actions)
[Link] (ANSI-C for Creating Functions and Actions)
Manual online:
WinCC Scripting: VBS, ANSI-C, VBA
[Link]
B- Em geral, os scripts podem ser modificados mesmo com o runtime ativado. Em alguns
casos é necessário a reinicialização do runtime, como por exemplo quando modifica-se
os parâmetros de entrada de uma função global. Na versão 11 Professional, isto não é
possível pelo fato da necessidade da compilação total do projeto.
C- No editor de telas do WinCC, existe um assistente para criar scripts automaticamente
(em "C") para tarefas comuns, assim pode-se criar scripts (que podem ser modificadas
livremente) sem conhecer programação!
D- Atenção especial deve ser tomada no caso do projeto conter clientes web
(Webnavigator): Algumas instruções podem não estar disponíveis para o cliente web
(Verificar no manual do Webnavigator)
Link para o manual SIMATIC HMI WinCC V7.0 SP1 MDM - WinCC/WebNavigator
[Link]
E- Para proteção de propriedade intelectual, é possível bloquear o acesso à fonte dos
scripts com senha:
C-scripts:
Abra o script > "edit" > "Info" > Marcar checkbox
VB-scripts:
Abra o script > Botão direito do mouse > "Info" > Marcar checkbox
WinCC: Dicas sobre scripts 13/01/2015 4/8
Siemens - Technical Support & Hotline Portal de Suporte: [Link]/Hotline
F- Erros em scripts durante a execução do WinCC não interrompem o projeto e não geram
mensagens de erro na tela. Para verificar se erros estão ocorrendo, consulte o item
seguinte.
G- Vários tipos de erros em scripts são reportados nos arquivos de log que ficam na pasta
a pasta "diagnose" (é uma pasta que fica abaixo da pasta "winCC", onde o WinCC está
instalado -e não na pasta do projeto)
O caminho "default" é "C:\Program Files\Siemens\WinCC\Diagnose"..., mas pode ser
diferente conforme a instalação realizada.
Além disto, cada tipo de linguagem utilizada oferece um tipo de ferramenta de
diagnóstico para testes dos scripts. Elas estão descritas no help do WinCC, e
informações adicionais podem ser obtidas no suporte técnico da Siemens. No próximo
item é apresentado um resumo.
H- Para a localização de erros de runtime em scripts, recomendo usar uma GSC
Diagnostics:
Graphics Designer > Object Pallet > Smart Tools > Application Window >
Global Script > GSC Diagnostics
Para um melhor uso, alterar: Properties > Miscellaneous: Trocar tudo para "Yes"
Esta janela de diagnóstico permite verificar erros em scripts escritos em "C" e em VB.
Erros de tempo de execução (divisão por zero, raiz de número negativo, instrução que
usa tag inexistente, tela inexistente, etc.) são reportados nela.
Também é possível enviar mensagens para ela, em pontos específicos dos scripts para
verificar a execução das mesmas. Exemplo:
Em "C": printf("Passo 1 executado");
Em VB: [Link] "Passo 1 executado"
A janela deve ficar sempre aberta (colocar em um lugar que fique sempre visível), e
dentro dela devem aparecer os erros e mensagens dos scripts, na medida em que
ocorram.
Como os scripts no WinCC normalmente não possuem grande complexidade (em
termos de tamanho e algoritmo) a dica acima (GSC Diagnostics) é suficiente para
detectar eventuais problemas. Há entretanto a possibilidade do uso de ferramentas
adicionais, como o "Microsoft Script Debugger" (para VBS) e o "APDiag" para scripts
em "C".
I- Na prática, não existem limites específicos de quantidade e complexidade de scripts
utilizados em um projeto. Mas é de se esperar que scripts muito demorados e
chamados muitas vezes em um curto período de tempo podem provocar lentidão na
operação do supervisório. Uma boa dica é observar o uso da CPU do computador: O
WinCC deve usar no máximo 20% dela, em operação normal (o típico é de menos de
6%). Ele pode usar 100% em troca de telas ou quando scripts complexos são
chamados, mas esta utilização (> que 20% da CPU do computador) deve ser
esporádica.
WinCC: Dicas sobre scripts 13/01/2015 5/8
Siemens - Technical Support & Hotline Portal de Suporte: [Link]/Hotline
J- Uso de controles externos
O WinCC permite que sejam usados “controles” externos cadastrados no Windows
(Grids, Sliders, etc.).
Porém não é assegurado que funcionem corretamente ou que todas as suas
propriedades estarão disponíveis para serem acessadas por script (geralmente em
VBS). Por isto, o uso destes controles é de inteira responsabilidade do usuário.
De uma maneira geral, somente as propriedades que aparecem na janela de
propriedades do objeto (no WinCC) é que são acessíveis em um script. Mesmo
passando na verificação de sintaxe, erros de “propriedade não acessível” podem
acontecer quando os scripts são executados.
O uso destes controles deve ser criteriosa devido a isto, além do fato (comum) de que
um controle que está presente no computador usado para a confecção do projeto pode
estar ausente no computador onde a aplicação final efetivamente irá ser executada.
Além disto, estes controles podem estar ausentes em futuras atualizações do Windows,
dificultando a atualização do projeto para versões mais recentes do sistema
operacional.
WinCC: Dicas sobre scripts 13/01/2015 6/8
Siemens - Technical Support & Hotline Portal de Suporte: [Link]/Hotline
6 SUPORTE TÉCNICO SIEMENS
Siemens Industry Sector
Customer Service Division / Service Delivery
- Technical Support & Hotline -
Fone: 0800 7 737373
Rua Gerson Benedito de Assis, 281
13213-081 – Jundiaí – SP, Brasil
E-Mail: [Link]@[Link]
Homepage Brasil: [Link]
Portal de Suporte: [Link]/servicos&suporte
Centro de treinamento - SITRAIN
[Link]/sitrain
7 LINKS ÚTEIS
Página principal do WinCC
[Link]/wincc
Documentação para iniciantes no WinCC 7.0:
WinCC V7.0 Getting started (Inglês / 11778 KB / Edição 04/2008)
[Link]
Exemplos de scripts em C e VB, para gravar dados (tags) em arquivos CSV(txt), com os valores separados
pelo caracter ";":
How do you export and reimport WinCC Runtime data?
[Link]
How can you copy a file in WinCC to another location?
[Link]
Logging process tags in an ASCII file or Text file
[Link]
Implementing the function "Searching for a file in a subdirectory" with a C script
[Link]
How can I create script functions that are to run on the WinCC Server or WinCC client, but not on the
Web Navigator Client?
[Link]
Using the VBS Debugger in SIMATIC WinCC V6.0
[Link]
How do you use the diagnostic tool "APDiag" to debug C scripts?
[Link]
WinCC: Dicas sobre scripts 13/01/2015 7/8
Siemens - Technical Support & Hotline Portal de Suporte: [Link]/Hotline
How do assign a know-how protection to C scripts and VBS scripts?
[Link]
In WinCC, how do you change the object colors (background, frame, text) by script during Runtime?
[Link]
WinCC: Dicas sobre scripts 13/01/2015 8/8
Siemens - Technical Support & Hotline Portal de Suporte: [Link]/Hotline