Escolar Documentos
Profissional Documentos
Cultura Documentos
Treinamento Cicode
Execute
BOMBA_CMD = 1;
Command
Execute
BOMBA_CMD = 0;
Command
Execute
TIC_P4_SP = 10;
Command
Execute
TIC_P4_SP = TIC_P1_SP;
Command
Uma expressão pode ser uma constante, o valor de um tag de variável ou o resultado de
Você pode utilizar expressões para mostrar e armazenar dados de forma a possibilitar
monitoração e análise, como também para disparar vários elementos em seu sistema, tais como
Você pode inserir uma expressão do Cicode em qualquer propriedade do objeto e ou figura.
Numeric
8+4
Expression
Execute
MILL1_SPEED = MILL2_SPEED + MILL3_SPEED - 100;
Command
Execute
TIC_HOLD_PV
Command
Execute
TIC_HOLD_PV + TIC_P4_PV
Command
TIC_HOLD_PV = TIC_P4_PV;
Execute
NOME_BATELADA = ”RACAO
Command ESPECIAL”;
LIC_SILO_SP = 450;
Key Sequence
F2 Enter
Execute
LIC_BALANCE_SP = 10
Command
●Se o operador utiliza ArgX para efetuar uma entrada, este poderá
Execute
FunctionName(Arg1, Arg2, ...);
Command
Execute
PageDisplay("Caldeira1");
Command
Execute
Prompt("Pressione F1 para Ajuda");
Command
Execute
Login("Manager", "ABC");
Command
Execute
AlarmAck(2, 35);
Command
Execute
DspStr(25, "TextFont", NIVEL);
Command
Algumas funções simplesmente retornam um valor que indica sucesso ou falha na execução da
função;
com sucesso. De outra forma irão retornar um número de erro. Para a maioria das aplicações, você
Algumas funções retornam dados que você pode utilizar em uma expressão ou comando. A função
Execute
Date();
Command
On page
entry Prompt("Ola," + FullName())
Operadores Descrição
+ Adição (para valores numéricos)
+ Concatenação (para variáveis do tipo string)
- Subtração
* Multiplicação
/ Divisão
MOD Módulo (resto da divisão)
Operador Descrição
AND Logica AND
OR Logica OR
NOT Logica NOT
Operador Descrição
= IGUAL
<> DIFERENTE DE
< MENOR QUE
> MAIOR QUE
<= MENOR OU IGUAL QUE
>= MAIOR OU IGUAL QUE
Operador Descrição
: (colon) Formatação em String
TAG_1: ####.#
1. ()
2. NOT
3. *, /, MOD
4. :
5. +, -
6. <, >, < =, > =
7. =, < >
8. AND
9. OR
10. BITAND, BITOR, BITXOR
Marcador
BreakPoint
Execute
IF COUNTER < 100 THEN COUNTER =
Command COUNTER + 1; ELSE COUNTER = 0; END;
Execute
IncContador();
Command
SINTAXE DESCRIÇÃO
Scope Public ou Private
FUNCTION Informa ao Compilador onde começar a
compilar a função
IncContador() Que função será chamada
IF CONTADOR < 100 THEN O código que será executado quando a função
é chamada
CONTADOR = CONTADOR + 1;
ELSE
CONTADOR = 0;
END Termina a Declaração IF
END Isto indica ao compilador o final do código
OLA
Levante()
SE dito ENTÃO
Levante;
SENÃO
Permaneça sentado;
TERMINADO
TCHAU
FUNCTION
NomeFuncao()
Statement;
END
Scope
FUNCTION
Par NomeFuncao()
companheiro
Statements;
END
SCOPE
FUNCTION
NomeFuncao()
Statements;
END
FUNCTION
DeclaracaoExemplo ()
IF STATUS_BMB_PASTA THEN
END
END
FUNCTION
ExemploVoid()
IF STATUS_BMB_PASTA THEN
ELSE
END
END
PUBLIC
FUNCTION
MostraMinhaPagina()
PageDisplay(sPaginaDefault);
END
Schneider Electric- Treinamento- Junho/2009 85
Variáveis do Cicode
Variáveis Locais
Uma variável Local do Cicode é apenas reconhecida pela Function dentro da
qual ela foi declarada e apenas pode ser utilizada por aquela função. Você deve
declarar as variáveis locais antes de utilizá-las.
EXEMPLO:
PUBLIC
INT
FUNCTION
ExemploLocal(INT a, INT b)
INT iMedia
iMedia = (a + b) /2;
RETURN iMedia
END
<Tag>
TIPO FUNÇÃO
TimeToStr() Converte uma variável de hora e data em uma
string
StrToDate() Converte uma string de data em uma variável de
hora e data
- ou -
IF Expressao THEN
TRUE Statement(s);
ELSE
FALSE Statement(s);
END
Schneider Electric- Treinamento- Junho/2009 94
FOR Loop
O loop FOR é utilizado para executar um conjunto de declarações um
determinado número de vezes.
FOR Variável = Expressao1 TO Expressao2 DO
Statement(s);
END
Onde:
Variavel >. é uma variável definida utilizada para contar o número de
vezes que a declaração foi executada
Expressao1 > é o valor de contagem inicial
Expressao2 > é o valor de contagem final
STRING ArrayA[5]="Este","e","um","String","Array";
INT
FUNCTION
MostraArray()
INT Contador;
FOR Contador = 0 TO 4 DO
Prompt(ArrayA[Contador]);
Sleep(2);
END
RETURN 0;
END
WHILE Expressao DO
Statement(s);
END
hTask1 = TaskNew("AnimacoesMaq1","",4+8);
Statement(s);
CASE ELSE
Statement(s);
END SELECT
condição CASE são executadas até a próxima condição CASE ou (para a última condição) até a END
SELECT.
Se a Expressao iguala-se a CaseExpressao em mais de uma condição CASE, apenas as declarações
A condição CASE ELSE é utilizada para indicar as declarações que serão executadas se nenhuma
Quando não existir a declaração CASE ELSE e nenhuma igualdade é encontrada entre Expressao e
qualquer das CaseExpressao, a execução continua na próxima declaração do Cicode seguinte a END
SELECT.
Schneider Electric- Treinamento- Junho/2009 100
Treinamento Cicode
● Introdução a programação com Cicode
● Introdução ao Cicode
Programa: ● Operadores de Variáveis
● O editor do Cicode
● Funções do Cicode
● Executores Condicionais
● Outras funções Cicode
● Cicode Debugger
● Apêndice A - Técnicas de Programação
Estruturada
● Apêndice B- Guia de Programação no
Cicode
● Apêndice C- SQL, Vijeo Citect e ODBC
● Apêndice D- Exemplos de Códigos de
Schneider Electric- Treinamento- Junho/2009
Programa 101
Outras funções Cicode
PUBLIC
INT
FUNCTIONEsta é uma variável local já vista anteriormente.
ExemploReturn (INT a, INT b)
INT iMedia;
iMedia = (a + b) /2
RETURN iMedia; Esta é uma
variável local já
END vista
anteriormente.
Numeric
expression ExemploReturn(TAG1 , TAG2);
Onde TAG1 e TAG2 são tags inteiros. O valor mostrado na página gráfica será
a média entre estes dois tags.
Funções do tipo Return proporcionam maior flexibilidade que uma função do
tipo Void No exemplo seguinte, a função coloca informação em um tag
específico denominado Recipe.
TipodeDado Nome[tamanho]=Valores;
Onde:
TipodeDado >> pode ser INT, REAL ou STRING
Nome >> é o nome do array
[Tamanho] >> é o tamanho do array
=Valores >> são os valores default para o array.
STRING ArrayA[5]="Este","e","um","String","Array";
Este conjunto inicializa os seguintes elementos:
ArrayA[0]="Este"
ArrayA[1]="e"
ArrayA[2]="um"
ArrayA[3]="String"
ArrayA[4]="Array"
valor para o 11o elemento, você estaria fazendo com que a string fosse
Você não pode passar um array inteiro para uma função do Cicode.
7.Coloque um breakpoint na
barra indicadora situada a
esquerda da linha que se mostra
a seguir.
Passo a passo por instruções: Avança o subprocesso do cicode atual uma instrução.
Se a instrução chama uma função definida pelo usuário, o depurador localizará a definição
Se a instrução chama uma função definida pelo usuário, o depurador passará por cima
Passo a passo para sair: Avança até o final da função atual e volta. Se não existe
Blocos de Execução
Faça Contagem = 10
Caminhos Condicionais
SIM
SIM
Valor é > 10? Prompt “Range é inválido”
NÃO
SIM
Valor é < 1? Prompt “Range é inválido”
NÃO
Retorna o valor
Contagem = 0
SIM
Contagem é > 60? Feche o formulário
NÃO
SIM
Botão Pressionado? Executa a tarefa
NÃO
Contagem = Contagem+1
2.A segunda parte consiste da palavra chave FUNCTION, que também deve ser inserida
em uma linha em separado.
3.A terceira parte aparece o nome da função. Os nomes das funções devem possuir até
32 caracteres. Você pode utilizar qualquer nome valido, exceto palavras reservadas e deve
inserir em uma linha em separado.
4.A quarta parte é a lista de argumentos. Os argumentos são separados por vírgulas e
podem possuir valores iniciais (default). A lista de argumentos está normalmente na mesma
linha do nome da função, mas múltiplas linhas de argumentos são aceitáveis quando
facilitam a leitura.
6.Na sexta parte aparece a palavra chave END, que determina o final da função, sendo
também inserida em uma linha em separado.
Schneider Electric- Treinamento- Junho/2009 148
Funções – Exemplo
FUNCTION
PlotInit()
<Declarações>
END
INT
FUNCTION
PlotOpen(STRING sName, INT nMode)
INT hPlot = BAD_HANDLE;
.
hPlot = …..;
.
RETURN hPlot;
END
STRING
FUNCTION
WasteInfoName(INT nType, INT nMode)
//*********************************************************
<funções>
Schneider Electric- Treinamento- Junho/2009 150
Funções
//** FUNCTION : <nome da Função>
//**
//** DESCRIÇÃO : <Sugestão da aplicação, operação
//** e outros detalhes importantes>
//** REVISÃO
//** DATA POR COMENTARIOS
//** <data> <autor> <commentarios aplicáveis>
//**
//** VALOR RETORNADO: < Descrição dos possíveis valores //**
retornáveis>
//**
//** NOTAS:
Por exemplo;
INT hFile,hForm; // ERRADO
Por exemplo:
hFile = -1; hForm = -1; // ERRADO
hFile = -1; // CERTO
hForm = -1; // CERTO
manutenção.
Sempre cheque para que os índices dos Arrays não saiam do range
especificado;
PERSONID COUNTRY
654 Hungary
854 Jamaica
935 Australia
367 Cuba
746 Denmark
153 Portugal
946 Jamaica
479 Ethiopia
294 Thailand
CNAME PERSONID
Jill 854
Englebert 479
O modo pelo qual você declara data em SQL varia entre os systemas
de base de dados. Com DBase, você iria normalmente declarar data
entre chaves {02/18/95}, no Oracle você utilizaria o formato
to_date(‘02/18/95’, ’MM/DD/YY’).
Para tornar isto um pouco mais complicado, o driver ODBC você irá
utilizar um outro formato - ‘YYYY-MM-DD’.
d Data,
t Hora, ou
dt Data e hora.
END
A função abaixo irá mostrar uma caixa de diálogo do tipo popup com o
status de um bit digital
FUNCTION
IfEg(INT Bit)
IF Bit THEN
Message(“IF Example”,”The Bit is on”,48);
ELSE
Message(“IF Example”,”The Bit is off”,48);
END
END
Esta função irá contra de 0 até um valor inteiro passado para ela e irá
mostrar esta contagem na linha de prompt.
FUNCTION
ForEg(INT IntX)
INT Count;
FOR Count = 1 To IntX DO
Prompt(IntToStr(Count));
Sleep(1);
END
Prompt(“”);
END
WhatDayIsIt()
STRING sDay;
INT iDay;