Você está na página 1de 20

Sebol

LISTA DE "SEBOL"

TITULO PAGINA
Unidades de Proaramacáo do SeBOL 1
Identificadores do SEBOL 2
Acesso aos Blocos I Declaração das Variáveis 3
IMPUCIT I #DEFINE IINCLUDE ... 4
Exemplo de Im::lude RlelAl"..eracões e Verificações em Grupo 5
TIpos de Operadores 6
Funções Predeterminadas (112) 7
Funções Predeterminadas (2/2) 8
Compare/ORNE (para SIO e para Me) 9
ReferenclarlAlterar Modo/Comando para TemPOrizaclor 10
Referenclar e Alterar StatuslReferenclar Alarme/LIgar-Desllgar Alarme 11
Referenciar/Aiustar %Z e %SW I Bloco Contador 12
Comando rJf" "for". "whIIe- 13
CoIÍ1ando "repeat", "walt until", "switch" 14
Comando "QOto", adelav". -delavcvcle- .' 15
Envio de Mensaaem Gula do Operador, de DiálOQo e para Impressora 16
Envio de Mensaaem para Histórico. tipo Recuest e SVsalarm 17
Envio de Mensagem Prcsafarm, Unlt Prcsalarm e Tabela de Cores 18

........"

;.~

. ".-..
SEBOL (SEquence and Batch Oriented Language)

SEBOL é uma linguagem de programação designada para" controle


de processo.

Unidades de Programação do SEBOL

Exlstern dois tipos de unidades de programação do SEBOL:

• Programa SEBOL
I .

Programa SEBOL é aquele que é executado dentro de um


passo de um SFC.

• Função SEBOL

É um sub programa que é executado se determinada condição


em um Programa SEBOL for verdadeira.
Não é executado necessariamente quando o passo do SFC
está sendo executado .

. """'

~--------------------------------------------------------------
Identificadores do SEBOL

Regras para Programação SEBOL:

• Caracteres que podem ser utilizados: caracteres do alfabeto


(A à Z e a à z), números (O à 9), underscore ( _ ), dollar ( $ )
e porcentagem ( % ).

• Ao se usar hyphen ( - ) ou se o Tag começar com número,


deve-se usar "alias" para dar um outro nome no programa.

PID_001 alias PID-Q01

• Os identificadores devem começar com letra ou %.

• Não tem limite para oidentificador de variáveis e nomes


genéricos, só que apenas os 8 primeiros dígitos são tratados
como identificador. Se for um tag, os 16 primeiros.

•. Letras maiúsculas e minúsculas não são distinguidas.

•. Se o mesmo comando precisar de outra linha, usar ''\'' ou "lI".

• Para que uma linha seja de comentário colocar no início dela


um "*".

• Para colocar comando à esquerda e comentário à direita da


linha, usar" !".

•. Para terminar o programa e parar o bloco usar "END" ou


"EXIT". Para executar o próximo passo usar "QUIT".

• Para se usar variáveis no programa definir se é: "integer",


"Iong", "float" , "double" ou "char*n" (onde n vai até 255).

~~----------------------------------
Como Acessar um Bloco no Programa
Acesso a um dado de um bloco no programa: TAG.lTEM NAME
Acesso a um dado do próprio SFC no programa: %.lTEM NAME
Acesso a um dado do próprio UNIT no programa: %%.ITEM NAME

Declaração dos Blocos no Programa

• Tag usando "block"


Declarar o tag do bloco em cada passo que for usado.
block PID TAG001 .

• Tag usando "global block"


Declarar o tag do bloco no passo 1 e usar em qualquer passo.
Não pode ser usado para Operations diferentes de um mesmo UNIT.
global block PID-TAG001
global block %SW SINC_301 ALIAS %SW0310

• Nome genérico usando "genname"


Declarar o nomegenérico do bloco em cada passo que for usado.
genname PID TAG001

• Nome genérico usando "global genname"


. ,,-..
Declarar o nome genérico do bloco no passo 1 e usar em qualquer passo .
Não pode ser usado para Operations diferentes de um mesmo UNIT.
global genname PID TAG001

• Nome genérico usando--uunit-genname"


Declarar o nome genérico do UNIT em cada passo.
unit genname-..;;.ttr.P-8JiT-o.ot

• Nome genérico usando "global unit genname"


do UNlTno passo t -e usar em qualquer passo.
Declarar o nome...Q...enérico
Não pode ser usado para Operations diferentes de um mesmo UNir.
global unit genname_ UTPB U'fOOt

• Declaração das variáveis

global float VALOR1


global char*5 IDENT

3
~-----------------------------------------------------------------
Declaração de Variáveis com IMPLICIT

Usando a instrução #IMPLlCIT, variáveis não declaradas são tratadas como


. automaticamente declaradas.
Só usar para programas muito pequenos, pois erros em caracteres das variáveis .
não serão verificados na compilação.

#IMPLlCIT

Comando #define

Um commando pode ser substituído por um caracter usando #define.

Exempl~ de substituição de comando.

idefine ABRm 2
block SIO-22 VALVEl,VALVB2

drive [VALVBl = ABRIR]


dri ve [VALVB2 •• ABRIR]

o comando "2" foi substituído pela palavra "ABRIR".

Comando Include File

A linha com commando #include coloca o conteúdo inteiro do arquivo declarado.

O~ seguintes-lnckJde-Fites estão disponiveis:

• std-.h
• smode.h
-'" • sbsts.h
• salarm.n

.--- ------- ----------------


r> Exemplo de Include File:

std.h
***** for loop ***** ...
#define TRUE 1
#define FALSE O
***** for valve *****
#define OPEN 2
#define CLOSE O
***** for pump (start/stop pump) *****
#define RUN 2
#define STOP O
***** for sequence element *****
#define'ON 1
#define OFF O
***** for judgment *****
#define OK 1
#define NG O
***** for timer (TM operation) *****
. #define TMSTOP 1
#define TMSTAT 2
#define TMCONT 3
#define TMPAUS 4

Alterações e Verificações em Grupo


bfocl<PIC TAG0100A,TAGOlOOB lFCSl

{TAG0100A.MODE.SV,TAG0100B.MODE.SV::- IJAJIr' ,10.0, \


AU-r' ,10.0]
li

.......,,. ..•..

block PIt> TAGOO1,TAGOO2


char*16sl~2
double dl,d2
......

<
~--------------------------------------------------------------
Tipos de Operadores

...
~ .Operators

Arithmetic
operatDrs
----y- Binary operetors E
E + (Addition)
~ (Subtractlon)
., (f\4ulti~jcation)
I {Division}
mod (Remainder)

Unary operators 11..... __ + (Positiva}


- (Negative)

Comparison operators -.,.-- Relational -----r--- <; (Less than)


operators > (Grea1er lhan)
<= (Less than or equaf to)
>= (Great~r then or equal t

EquaUty cpsratcrs ll.....__ = (Equalto)

Logical operators L Binary Iogfcal


operators
I•
--
<> (Not equal to)

and (loglcaJ ANO)


or (Logical OR)
eor (logical Exclusiva OR)

Unary loglca! operator -- not (LogicaJ NOT)

'"

~
'"

'"

~
r=-.

~
»<,

'"
t:.
r-- Funções Predeterminadas (1/2)

. Built-in function General format Argument type Funçtion type:


fabs(a) L l .
AbsoJute vaJue
dabs(a) O O
> hnax{a,b,C' •••.) L L
Max. va.Iué
dmax(a,b,c,,,.) O O
Arithmetic funcfuns
Imin(a.b,c •••.) L L
Min. valua
dmin(a,b.c. ...) O D
..
. Power power(a.b) 09 O
..
DecjmaJ fraction round-down int{a) O O
Bit position search ~b) lorl, lorL l
Bft operation
8ft pasmon seareh bitsrct$,b) lorl, lorL L I

llimlt{a.)),c) L L
HigMow limit Highllow limit
dRmit{a,b.c) O O
Sina sin{a) O O
T rigonornettic Cosine casCa) O O
functiong. . 1an(a)
Tangent O D
Arctangent a1an(a) D O
Squareroot Square root sqrt{a) O O
Exponentiation Exporlent exp(a) O O
Natural fogarithm NalUrallogari1hm Iog(a) D O
Conversion to integer type tchr(a) C"n I
Comerslon to string typa chr(a) J ~1
Strlng fength len(a) C'"n- I
String concatenation cat(a) C·m. C*n ~(rTl+n)
Cha.racter string Substnng indBx index(a,b) "C*m. C"n l
left(a,b) C*n, I C*n
String extractlon right(a,b) C*nri -C-n-
mid(a,b) - C"n, r, I C"n
Numeric anel string conwrsion snum(a) c-n o
Built-in functions . General format Argumant type Function type
,--.... .

Funções Pred~~~rminadas(212)
,--.....

Built-in function Genoral fonnat Argument type Function type


Date ge1Ifateta,b,c) I, I, 1 .•. L
r>.

Time gettime(Il,b,c) \, I. I L
Data &. time. Elapsed 1Une ~ms(} . l
r>.
GMT seria! seconds timegmt{ ) - l
Date and lime converslon locaJtime{ a,b ,c,d,e, f) l, I, 1,1111'11 I
Function bIock data Oata-status che<:k dscheck(a,b} DS,C I
.~
Error classifícation code of latest error errc() . L
Detailed error cede of Jatast error arrce() - l
Una 01errar occurrence . arri( ) - L
Function name ot 1ates1enor em() - <78

Error
Step number of latest errar amO - l
Plane numbêr of latest error arrp( ) - L
Value check aI error ooourrenca ecrorval( a) I,l. ForO
cerrorid( ) - 0*16
Error-identifier extraction lerrorid{ ) - L
derrorid( ) - O
lre~a) I L
Slgnal Signal parameter extraction dreadpara(a) J O
creadpara(a) f C'''16
Present bIock's tag name gettagno( ) - c-rs
Generic name col1'lJefSÍon getname(a) G C"16
Othêr Start status ex:traction boatO - t

Restart judgement
cks1ep(.). - I.
cks1epci{' ) - I
Built-in functions 'GeneraI format Argument type Function-type=- .

º
)~

Comando Compare
.-----
.r-'
blOGk PIO TAG001 ,TAGOO2 ..

=
[TAG001.SV, TAGOO2.SV 10.0,10.0] !Ajuste em grupo
compare[TAGOO1.PV,TAGOO2.PV>=9.7,9.7];time30.en"orL1

EXIT
l1

CQmando Crive (apenas para 510 e Me)


-.

ldefmeCLOSE o
blockSIO-22VALVE01 VALVE02

driveLVALVE01,VALVE02=CLO~E,CLOSE];errorsubERROOO

em
ERR1JOO:
,
»<. 1llesaage IlVALVE close errar line = tld ezrcoda = %d-%x",errlO , erre O ,errceO
eretum
.. ... ,
'

~J

.J

9
Comando para Referenciar/Alterar Modo
Referenciar
...
block PIO FICOOl

end if

Alterar
block ·PID TAGO01,TAGl102, TAGO03

TAGO01 JlODE:I IIAUT"

[TAGOO2.MODE,TAGOO3.MODE=I"AN"J"'Atl'j! ajuste em grupo

Comando para Bloco Temporizador

OP: Usado para comandar o temporizador


TAG.OP=1 - Parar o temporizador.
TAG.OP=2 -Iniciar o temporizador.
TAG.OP=3 - Reiniciar o ternporízador,
TAG.OP=4 - Pausa do temporzador,

BSTS: Para referenciar Status do temporizador.


if(TAG.BSTS=="CTUP") then
. r--

end if

PV: Para se obter o tempo passado.


wait until{TAG.PV>1 O)

10
Comando para Referenciar/Alterar Status

Referenciar

block PID ~002 .•.

ir {TAGOO2.&PV="CAL', then

em if

Alterar

block PID FICOOl

FICO01..&PV = "NCL"

Comando para Referenciar Alarme


bloék PIO TAG01

-r-; if (TAG01.ALRM=="HI" or "HH") then


end if

Comando para Desligar/ligar Alarme


block PIO TAG01

TAG01.AOFS=" AOF"
TAG01.AOFS=" AONJI

11
Comando para Referenciar/Ajustar PIO e Chaves Internas

block %Z %Z012302
block %SW %SW0301

wait until(%Z012302.PV, %SW0301.PV==1,1)

[%Z012302.PV, %SW0301.PV=1, 1]

Comando para Bloco Contador

oneshot CTSOO3,1 I Inicia contador ~

oneshot CTS003.0 !Reset do contador.

BSTS: Para referenciar Status do contador.


if(TAG.BSTS=="PALM") then

end if

PV: Para se obter a contagem.


wait until(T AG. PV>3)--

12
Comando" lf"

if(CTOO1.PV == 1) Ulen
[SC001.MODE.SV = KAUTa,lO]
. else
[SCOD1.IifODE.SV ::: "AOTII ,50]
endif

Comando "for"
integer function S1JM{N}
integer N, I , SM

S/I! ;:: o
forl= 1toN step 1
SM= SllJ+ 1
-r-; next@
~ retum SM

Comando "while"

whUe(FCOO1.SUM < FCOO1aBSET)


if (FCOO1.ALRM "NRa) tben
[FCOOl. sw '" 3]
t .BSTS = aSTOP"
end li
wend

r---
...../

r=>.

.:> '"

rr>:

13
Comando "repeat"
Slol = o
repeat
SM;Sl.r+l
li = li - 1
until@(N<=O)
retum SM
.......
Comando "wait until"
block PID TICOOl

!ICOOl. MODE • !lAUTa


TICOOl.SV = 60. O

wait until (TICOO1.PV> 50); time 30, errar LBL 1

" exit
LBL1

Comando "switch"
B •••o
switch(A)
case-O:
MSG = "Run·
case 1:
MSG = "Stoplll

B=O
-o1herwise:-
MSG = "ERRORft
B=l
endswitch

return B

14
Comando "goto"

[TlCS.MODE.SV = IIAUTII, 60. O)


[TM001.PR.OP = 90,2)
wait until ('lMQ01.A1RM =~ 8c:rtJPII) .•.
'l'MOOl.OP = 1

if{TIC5.PV < 50.0) goto LBL 1

exit

LBLl:
opeguide 11 ta low internal temperatura", 3
t BS'lS -= "S'1OplI

Comando "delay"

FI~l. BSET = lOO. o


[PlQCl.MODB • sv = 111i1JT1l J 1]
delay10000
wait uotil eFIQC1.2ONE == 7 or FIQC1. ZONE =c O)

Comando "delaycycle"

FICO03.SV ao 30.0
delaycycle

15
r= Comando para Envio de Mensagens

• Mensagem de Guia do Operador

Envia mensagem para Janela de Guia do Operador e para


histórico.
~-.
opeguide "%aFinal da Sequencia",3
ou
opeguide OG,1

• Mensagem de Diálogo

Envia. mensagem ínteratíva para Janela de Guia do-Operador e


para histórico. Operador deve entrar com dados ou confirmar.

dialogue "MSG01 ";"Carga completa?"jconfirm;time 120;error L2

exit
........
L2:

dialogue "MSG03";"Deseja iniciar a preparação do TQ1?";"SIM=S,


NAO=N" ,CONF
while(CONF<>"S" ANO CONF<>"N")
Dialogue "ERRO!"; retry CONF
wend

• Mensagem para Impressora

Envia mensagem para impressora e para hlstõríco.

message "Válvula anormal"


ou
message PR,3

16
• Mensagem para Histórico

Envia mensagem para arquivo histórico.

history "Válvula anormal"


ou
history PR,3

• Mensagem tipo Request .

Executa funções de operação (Inicia/Pára Trend, Chama Janela,


Executa Programa do Usuário, etc ..), por SEBOL.

request RQ;1·

• Mensagem tipo "Sysalarm"

Usada para gerar/normalizar mensagens de alarme de sistema.

sysalarm "Termômetro T100 em falha"


ou
sysalarm recover "Termômetro T100 em falha"

17·
• Mensagem tipo "Prcsalarm"

Usada para gerar/normalizar mensagens de alarme de processo


para um Bloco SFC.

prcsalarm "Problemas no SFC1"


ou
prcsalarm recover "Problemas no SFC1"

• Mensagem tipo "Unit Prcsalarm"

Usada para gerar/normalizar mensagens de alarme de processo


para um Bloco Unit.

unit prcsalarm "Problemas no UT1"


ou
unit prcsalarm recover "Problemas no UT1"

Tabela de Cores para as Mensagens

N° COR N° COR
O preto 8 steel blue
1 vermelho 9 olnk
2 verde 10 bíue-oreen
3 amarelo 1.1 .gotd- yeUow
-4 azul 12- moss creen
.manenta •
5 t3 . '_JJuq.Jle
6 cian 14 azul cian
7 branco 15 cinza

. ..-...

18

Você também pode gostar