Escolar Documentos
Profissional Documentos
Cultura Documentos
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
METHOD UpdateTime
CurrentTime := DATE_AND_TIME();
END_METHOD
METHOD Execute
StartTime := DATE_AND_TIME();
Running := TRUE;
END_IF;
Running := FALSE;
END_IF;
IF ResetButton THEN
OperatingTime := 0;
END_IF;
IF Running THEN
UpdateTime();
END_IF;
MotorRunning := Running;
END_METHOD
END_FUNCTION_BLOCK
FUNCTION_BLOCK MotorCounter
VAR_OUTPUT
END_VAR
VAR
END_VAR
METHOD UpdateTime
CurrentTime := DATE_AND_TIME();
END_METHOD
METHOD Execute
StartTime := DATE_AND_TIME();
Running := TRUE;
END_IF;
UpdateTime();
Running := FALSE;
END_IF;
IF Running THEN
UpdateTime();
END_IF;
MotorRunning := Running;
END_METHOD
END_FUNCTION_BLOCK
Olá, eu posso te ajudar a criar um horímetro persistente no CLP Siemens S7-400 em SCL. SCL é uma
linguagem de programação estruturada para os controladores lógicos programáveis da Siemens, que permite
criar blocos de funções e dados de forma clara e modular. Para criar um horímetro persistente em SCL, você
pode seguir os seguintes passos:
Criar um bloco de dados (DB) para armazenar os valores do horímetro, como o tempo total, o tempo
parcial e o estado do equipamento. Você pode usar o tipo de dado TIME para representar os tempos
e o tipo BOOL para o estado. Por exemplo:
DATA_BLOCK DB1
STRUCT
TempoTotal : TIME; // Tempo total de funcionamento do equipamento
TempoParcial : TIME; // Tempo parcial de funcionamento do equipamento
Estado : BOOL; // Estado do equipamento (ligado ou desligado)
END_STRUCT;
END_DATA_BLOCK
Copiar
Criar um bloco de função (FB) para implementar a lógica do horímetro, que consiste em incrementar
os tempos total e parcial a cada ciclo de varredura quando o equipamento estiver ligado, e zerar o
tempo parcial quando o equipamento for desligado. Você pode usar as instruções IF, THEN, ELSE e
END_IF para controlar o fluxo do programa, e as instruções TADD, T#0S e T#1S para manipular os
valores de tempo. Por exemplo:
FUNCTION_BLOCK FB1
VAR_INPUT
Equipamento : BOOL; // Entrada que indica se o equipamento está ligado ou desligado
END_VAR;
VAR_IN_OUT
Horimetro : DB1; // Bloco de dados que contém os valores do horímetro
END_VAR;
BEGIN
IF Equipamento THEN // Se o equipamento estiver ligado
Horimetro.TempoTotal := TADD(Horimetro.TempoTotal, T#1S); // Incrementa o tempo
total em 1 segundo
Horimetro.TempoParcial := TADD(Horimetro.TempoParcial, T#1S); // Incrementa o tempo
parcial em 1 segundo
ELSE // Se o equipamento estiver desligado
Horimetro.TempoParcial := T#0S; // Zera o tempo parcial
END_IF;
END_FUNCTION_BLOCK
Copiar
Criar um bloco de organização (OB) para chamar o bloco de função do horímetro e passar os
parâmetros adequados. Você pode usar a instrução CALL para invocar um bloco e associar as
variáveis de entrada e saída. Por exemplo:
Compilar e transferir os blocos para o CLP usando o software STEP 7. Você pode verificar se os
blocos foram criados corretamente usando o simulador integrado ou um CLP real.
Espero que esses passos sejam úteis para você. Se você quiser saber mais sobre a linguagem SCL e seus
recursos, você pode consultar os manuais da Siemens123, que contêm informações detalhadas sobre a sintaxe,
as instruções, os tipos de dados e os exemplos de código. Se você tiver alguma dúvida ou precisar de mais