Primera Version TwinCat Converter
This commit is contained in:
parent
95eb1bc62f
commit
c597eaa28f
|
@ -311,18 +311,157 @@ def log_message(log_path, message):
|
|||
print(f"Error al escribir en el log: {e}")
|
||||
print(message)
|
||||
|
||||
def transform_io_address(address):
|
||||
def get_io_address_format(address, data_type):
|
||||
"""
|
||||
Transform IO addresses according to the required format:
|
||||
Determinar el formato correcto de dirección IO según el tipo de datos.
|
||||
|
||||
Args:
|
||||
address: Dirección base (ej: "I0.0", "Q0.0", "PEW0", etc.)
|
||||
data_type: Tipo de datos (Bool, Word, Real, etc.)
|
||||
|
||||
Returns:
|
||||
str: Dirección formateada según el tipo de datos
|
||||
"""
|
||||
if not address or not isinstance(address, str):
|
||||
return address
|
||||
|
||||
address = address.strip()
|
||||
data_type_lower = data_type.lower() if data_type else ""
|
||||
|
||||
# Handle Profibus ranges (extract the first number before the range)
|
||||
profibus_match = re.match(r'^(EW|AW)\s+(\d+)\.\..*$', address)
|
||||
if profibus_match:
|
||||
prefix, number = profibus_match.groups()
|
||||
if prefix == 'EW':
|
||||
if data_type_lower in ['dword', 'udint', 'dint', 'real']:
|
||||
return f"%ED{number}"
|
||||
elif data_type_lower in ['byte', 'usint', 'sint']:
|
||||
return f"%EB{number}"
|
||||
else:
|
||||
return f"%EW{number}" # Word por defecto
|
||||
elif prefix == 'AW':
|
||||
if data_type_lower in ['dword', 'udint', 'dint', 'real']:
|
||||
return f"%AD{number}"
|
||||
elif data_type_lower in ['byte', 'usint', 'sint']:
|
||||
return f"%AB{number}"
|
||||
else:
|
||||
return f"%AW{number}" # Word por defecto
|
||||
|
||||
# Handle simple AW/EW with space (without range)
|
||||
simple_profibus_match = re.match(r'^(EW|AW)\s+(\d+)$', address)
|
||||
if simple_profibus_match:
|
||||
prefix, number = simple_profibus_match.groups()
|
||||
if prefix == 'EW':
|
||||
if data_type_lower in ['dword', 'udint', 'dint', 'real']:
|
||||
return f"%ED{number}"
|
||||
elif data_type_lower in ['byte', 'usint', 'sint']:
|
||||
return f"%EB{number}"
|
||||
else:
|
||||
return f"%EW{number}" # Word por defecto
|
||||
elif prefix == 'AW':
|
||||
if data_type_lower in ['dword', 'udint', 'dint', 'real']:
|
||||
return f"%AD{number}"
|
||||
elif data_type_lower in ['byte', 'usint', 'sint']:
|
||||
return f"%AB{number}"
|
||||
else:
|
||||
return f"%AW{number}" # Word por defecto
|
||||
|
||||
# Extraer números de las direcciones para determinar el formato según tipo de datos
|
||||
# Patterns for boolean addresses (mantener formato de bit)
|
||||
if re.match(r'^[IEQ](\d+)\.(\d+)$', address):
|
||||
byte_num = re.match(r'^[IEQ](\d+)\.(\d+)$', address).group(1)
|
||||
bit_num = re.match(r'^[IEQ](\d+)\.(\d+)$', address).group(2)
|
||||
|
||||
if address.startswith(('I', 'E')):
|
||||
if data_type_lower == 'bool':
|
||||
return f"%E{byte_num}.{bit_num}"
|
||||
elif data_type_lower in ['byte', 'usint', 'sint']:
|
||||
return f"%EB{byte_num}"
|
||||
elif data_type_lower in ['dword', 'udint', 'dint', 'real']:
|
||||
return f"%ED{byte_num}"
|
||||
else:
|
||||
return f"%EW{byte_num}" # Word por defecto
|
||||
|
||||
elif address.startswith(('Q', 'A')):
|
||||
if data_type_lower == 'bool':
|
||||
return f"%A{byte_num}.{bit_num}"
|
||||
elif data_type_lower in ['byte', 'usint', 'sint']:
|
||||
return f"%AB{byte_num}"
|
||||
elif data_type_lower in ['dword', 'udint', 'dint', 'real']:
|
||||
return f"%AD{byte_num}"
|
||||
else:
|
||||
return f"%AW{byte_num}" # Word por defecto
|
||||
|
||||
# Patterns for word addresses
|
||||
elif re.match(r'^PEW(\d+)$', address):
|
||||
number = re.match(r'^PEW(\d+)$', address).group(1)
|
||||
if data_type_lower in ['dword', 'udint', 'dint', 'real']:
|
||||
return f"%ED{number}"
|
||||
elif data_type_lower in ['byte', 'usint', 'sint']:
|
||||
return f"%EB{number}"
|
||||
else:
|
||||
return f"%EW{number}" # Word por defecto
|
||||
|
||||
elif re.match(r'^PAW(\d+)$', address):
|
||||
number = re.match(r'^PAW(\d+)$', address).group(1)
|
||||
if data_type_lower in ['dword', 'udint', 'dint', 'real']:
|
||||
return f"%AD{number}"
|
||||
elif data_type_lower in ['byte', 'usint', 'sint']:
|
||||
return f"%AB{number}"
|
||||
else:
|
||||
return f"%AW{number}" # Word por defecto
|
||||
|
||||
# Handle addresses that already have % prefix but wrong data type format
|
||||
elif re.match(r'^%[AE][BWDL](\d+)$', address):
|
||||
match = re.match(r'^%([AE])([BWDL])(\d+)$', address)
|
||||
if match:
|
||||
prefix, current_type, number = match.groups()
|
||||
if prefix == 'E': # Input
|
||||
if data_type_lower in ['dword', 'udint', 'dint', 'real']:
|
||||
return f"%ED{number}"
|
||||
elif data_type_lower in ['byte', 'usint', 'sint']:
|
||||
return f"%EB{number}"
|
||||
else:
|
||||
return f"%EW{number}" # Word por defecto
|
||||
elif prefix == 'A': # Output
|
||||
if data_type_lower in ['dword', 'udint', 'dint', 'real']:
|
||||
return f"%AD{number}"
|
||||
elif data_type_lower in ['byte', 'usint', 'sint']:
|
||||
return f"%AB{number}"
|
||||
else:
|
||||
return f"%AW{number}" # Word por defecto
|
||||
|
||||
# Si ya está en formato correcto o formato desconocido, devolver tal como está
|
||||
return address
|
||||
|
||||
def transform_io_address(address, data_type=None):
|
||||
"""
|
||||
Transform IO addresses according to the required format, considering data type:
|
||||
|
||||
For Bool:
|
||||
- Ixx.x → %Exx.x
|
||||
- Exx.x → %Exx.x
|
||||
- Qxx.x → %Axx.x
|
||||
- Axx.x → %Axx.x
|
||||
|
||||
For Byte:
|
||||
- Ixx.x → %EBxx
|
||||
- Qxx.x → %ABxx
|
||||
|
||||
For Word:
|
||||
- Ixx.x → %EWxx
|
||||
- Qxx.x → %AWxx
|
||||
- PEWxx → %EWxx
|
||||
- PAWxx → %AWxx
|
||||
- EW xx..xx → %EWxx (ranges for Profibus)
|
||||
- AW xx..xx → %AWxx (ranges for Profibus)
|
||||
|
||||
For DWord/Real:
|
||||
- Ixx.x → %EDxx
|
||||
- Qxx.x → %ADxx
|
||||
- PEWxx → %EDxx
|
||||
- PAWxx → %ADxx
|
||||
"""
|
||||
if data_type:
|
||||
return get_io_address_format(address, data_type)
|
||||
|
||||
# Fallback a la lógica anterior si no se proporciona data_type
|
||||
if not address or not isinstance(address, str):
|
||||
return address
|
||||
|
||||
|
@ -385,6 +524,62 @@ def is_bit_type(data_type):
|
|||
"""Determinar si el tipo de dato es un bit (Bool)."""
|
||||
return data_type.lower() == 'bool'
|
||||
|
||||
def get_memory_address_format(data_type, mem_byte, mem_bit=None):
|
||||
"""
|
||||
Determinar el formato de dirección de memoria y el incremento de bytes según el tipo de datos.
|
||||
|
||||
Returns:
|
||||
tuple: (address_format, byte_increment, new_bit)
|
||||
"""
|
||||
data_type_lower = data_type.lower()
|
||||
|
||||
if data_type_lower == 'bool':
|
||||
# Para Bool usar formato de bit
|
||||
if mem_bit is None:
|
||||
mem_bit = 0
|
||||
address = f"%M{mem_byte}.{mem_bit}"
|
||||
new_bit = mem_bit + 1
|
||||
if new_bit > 7:
|
||||
new_bit = 0
|
||||
byte_increment = 1
|
||||
else:
|
||||
byte_increment = 0
|
||||
return address, byte_increment, new_bit
|
||||
|
||||
elif data_type_lower in ['byte', 'usint', 'sint']:
|
||||
# Para Byte usar %MB (1 byte)
|
||||
address = f"%MB{mem_byte}"
|
||||
return address, 1, None
|
||||
|
||||
elif data_type_lower in ['word', 'uint', 'int']:
|
||||
# Para Word usar %MW (2 bytes)
|
||||
address = f"%MW{mem_byte}"
|
||||
return address, 2, None
|
||||
|
||||
elif data_type_lower in ['dword', 'udint', 'dint']:
|
||||
# Para DWord usar %MD (4 bytes)
|
||||
address = f"%MD{mem_byte}"
|
||||
return address, 4, None
|
||||
|
||||
elif data_type_lower in ['real', 'lreal']:
|
||||
# Para Real usar %MD (4 bytes), para LReal usar %ML (8 bytes)
|
||||
if data_type_lower == 'lreal':
|
||||
address = f"%ML{mem_byte}"
|
||||
return address, 8, None
|
||||
else:
|
||||
address = f"%MD{mem_byte}"
|
||||
return address, 4, None
|
||||
|
||||
elif data_type_lower in ['time', 'time_of_day', 's5time']:
|
||||
# Para tipos de tiempo usar %MD (4 bytes)
|
||||
address = f"%MD{mem_byte}"
|
||||
return address, 4, None
|
||||
|
||||
else:
|
||||
# Para tipos desconocidos, usar %MW por defecto (2 bytes)
|
||||
address = f"%MW{mem_byte}"
|
||||
return address, 2, None
|
||||
|
||||
def update_plc_tags(excel_path, md_path, output_path, log_path):
|
||||
"""
|
||||
Actualiza el archivo Excel con la información del archivo Markdown.
|
||||
|
@ -443,14 +638,14 @@ def update_plc_tags(excel_path, md_path, output_path, log_path):
|
|||
log_message(log_path, f"Columna IO: {io_col}")
|
||||
log_message(log_path, f"Columna Master Tag: {master_tag_col}")
|
||||
|
||||
# Crear un diccionario de mapeo IO desde el Markdown
|
||||
# Crear un diccionario de mapeo IO desde el Markdown (sin transformar aún)
|
||||
io_mapping = {}
|
||||
for _, row in md_df.iterrows():
|
||||
master_tag = str(row[master_tag_col]).strip()
|
||||
io_value = str(row[io_col]).strip()
|
||||
|
||||
if master_tag and io_value and master_tag != 'nan' and io_value != 'nan':
|
||||
io_mapping[master_tag] = transform_io_address(io_value)
|
||||
io_mapping[master_tag] = io_value # Guardar la dirección sin transformar
|
||||
|
||||
log_message(log_path, f"Tags mapeados en el archivo Markdown: {len(io_mapping)}")
|
||||
|
||||
|
@ -467,9 +662,20 @@ def update_plc_tags(excel_path, md_path, output_path, log_path):
|
|||
# Inicializar contadores para direcciones de memoria
|
||||
input_mem_byte = 3600
|
||||
input_mem_bit = 0
|
||||
output_mem_byte = 3800
|
||||
output_mem_byte = 3900
|
||||
output_mem_bit = 0
|
||||
|
||||
# Validar configuración inicial de memoria
|
||||
if output_mem_byte <= input_mem_byte:
|
||||
error_msg = (f"ERROR: Configuración de memoria inválida. "
|
||||
f"output_mem_byte ({output_mem_byte}) debe ser mayor que input_mem_byte ({input_mem_byte}). "
|
||||
f"Ajuste los valores iniciales de memoria.")
|
||||
log_message(log_path, error_msg)
|
||||
return False
|
||||
|
||||
log_message(log_path, f"Configuración de memoria: input_mem_byte={input_mem_byte}, output_mem_byte={output_mem_byte}")
|
||||
log_message(log_path, f"Espacio disponible para inputs: {output_mem_byte - input_mem_byte} bytes")
|
||||
|
||||
# Estadísticas
|
||||
total_tags = 0
|
||||
updated_tags = 0
|
||||
|
@ -532,7 +738,9 @@ def update_plc_tags(excel_path, md_path, output_path, log_path):
|
|||
# Verificar si el tag está en el mapeo de IO
|
||||
if tag_name in io_mapping:
|
||||
old_address = logical_address_cell.value
|
||||
new_address = io_mapping[tag_name]
|
||||
io_raw_address = io_mapping[tag_name]
|
||||
# Transformar la dirección considerando el tipo de datos
|
||||
new_address = transform_io_address(io_raw_address, data_type)
|
||||
logical_address_cell.value = new_address
|
||||
|
||||
# Determinar el nuevo path basado en la dirección asignada
|
||||
|
@ -558,7 +766,7 @@ def update_plc_tags(excel_path, md_path, output_path, log_path):
|
|||
relocated_tags[new_path] = relocated_tags.get(new_path, 0) + 1
|
||||
|
||||
updated_tags += 1
|
||||
log_message(log_path, f"Actualizado: {tag_name} | Viejo valor: {old_address} | Nuevo valor: {new_address} | Path: {path_cell.value}")
|
||||
log_message(log_path, f"Actualizado: {tag_name} | Tipo: {data_type} | Viejo valor: {old_address} | Nuevo valor: {new_address} | Path: {path_cell.value}")
|
||||
|
||||
# Si no está en el mapeo, asignar dirección de memoria según configuración
|
||||
else:
|
||||
|
@ -577,34 +785,40 @@ def update_plc_tags(excel_path, md_path, output_path, log_path):
|
|||
|
||||
# Asignar dirección de memoria según el tipo (Input/Output)
|
||||
if path_type == "Input" or (is_input and not is_output):
|
||||
# Asignar dirección de memoria para entradas
|
||||
# Verificar que no se exceda el límite de memoria de entrada
|
||||
new_address, byte_increment, new_bit = get_memory_address_format(
|
||||
data_type, input_mem_byte, input_mem_bit
|
||||
)
|
||||
|
||||
# Verificar límites antes de asignar
|
||||
new_input_mem_byte = input_mem_byte + byte_increment
|
||||
if new_input_mem_byte >= output_mem_byte:
|
||||
error_msg = (f"ERROR: input_mem_byte ({new_input_mem_byte}) excedería output_mem_byte ({output_mem_byte}). "
|
||||
f"La memoria de entrada está demasiado cerca de la memoria de salida. "
|
||||
f"Tag problemático: {tag_name}. "
|
||||
f"Considere aumentar output_mem_byte o reducir el número de tags de entrada.")
|
||||
log_message(log_path, error_msg)
|
||||
return False
|
||||
|
||||
if is_bit_type(data_type):
|
||||
new_address = f"%M{input_mem_byte}.{input_mem_bit}"
|
||||
input_mem_bit += 1
|
||||
if input_mem_bit > 7:
|
||||
input_mem_bit = 0
|
||||
input_mem_byte += 1
|
||||
else:
|
||||
new_address = f"%MW{input_mem_byte}"
|
||||
input_mem_byte += 2
|
||||
input_mem_bit = new_bit
|
||||
input_mem_byte = new_input_mem_byte
|
||||
|
||||
else: # Tipo Output o no determinado
|
||||
# Asignar dirección de memoria para salidas
|
||||
new_address, byte_increment, new_bit = get_memory_address_format(
|
||||
data_type, output_mem_byte, output_mem_bit
|
||||
)
|
||||
if is_bit_type(data_type):
|
||||
new_address = f"%M{output_mem_byte}.{output_mem_bit}"
|
||||
output_mem_bit += 1
|
||||
if output_mem_bit > 7:
|
||||
output_mem_bit = 0
|
||||
output_mem_byte += 1
|
||||
else:
|
||||
new_address = f"%MW{output_mem_byte}"
|
||||
output_mem_byte += 2
|
||||
output_mem_bit = new_bit
|
||||
output_mem_byte += byte_increment
|
||||
|
||||
relocated_tags[no_used_path] = relocated_tags.get(no_used_path, 0) + 1
|
||||
old_address = logical_address_cell.value
|
||||
logical_address_cell.value = new_address
|
||||
assigned_memory_addresses += 1
|
||||
|
||||
log_message(log_path, f"Asignación memoria: {tag_name} | Viejo valor: {old_address} | Nuevo valor: {new_address} | Path: {path_cell.value}")
|
||||
log_message(log_path, f"Asignación memoria: {tag_name} | Tipo: {data_type} | Viejo valor: {old_address} | Nuevo valor: {new_address} | Path: {path_cell.value}")
|
||||
|
||||
# Guardar el archivo actualizado
|
||||
try:
|
||||
|
@ -623,6 +837,17 @@ def update_plc_tags(excel_path, md_path, output_path, log_path):
|
|||
log_message(log_path, f"Tags relocalizados a {path}: {count}")
|
||||
log_message(log_path, f"Tags con direcciones de memoria asignadas: {assigned_memory_addresses}")
|
||||
|
||||
# Mostrar uso final de memoria
|
||||
log_message(log_path, "\n" + "=" * 25 + " USO DE MEMORIA " + "=" * 25)
|
||||
log_message(log_path, f"Memoria de entrada final: {input_mem_byte} (inicio: 3600)")
|
||||
log_message(log_path, f"Memoria de salida final: {output_mem_byte} (inicio: 3900)")
|
||||
log_message(log_path, f"Bytes usados para entradas: {input_mem_byte - 3600}")
|
||||
log_message(log_path, f"Bytes usados para salidas: {output_mem_byte - 3900}")
|
||||
log_message(log_path, f"Espacio restante entre memorias: {3900 - input_mem_byte} bytes")
|
||||
|
||||
if input_mem_byte > 3600 or output_mem_byte > 3900:
|
||||
log_message(log_path, f"✅ Proceso completado exitosamente sin conflictos de memoria")
|
||||
|
||||
return True
|
||||
|
||||
def main():
|
||||
|
|
|
@ -0,0 +1,297 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION_BLOCK ADSVARREAD
|
||||
VAR_INPUT
|
||||
NETID : STRING(21);
|
||||
PORT : UINT;
|
||||
VARNAME : STRING(101);
|
||||
DESTLEN : UDINT;
|
||||
DESTADDR : DWORD;
|
||||
CONNECT : BOOL;
|
||||
READ : BOOL;
|
||||
TMOUT : TIME;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
CONNECTED: BOOL;
|
||||
BUSY : BOOL;
|
||||
ERR : BOOL;
|
||||
ERRID : UDINT;
|
||||
END_VAR
|
||||
VAR
|
||||
i_NETID : STRING(21);
|
||||
i_PORT : UINT;
|
||||
i_VARNAME : STRING(101);
|
||||
i_DESTLEN : UDINT;
|
||||
i_DESTADDR : DWORD;
|
||||
i_TMOUT : TIME;
|
||||
|
||||
i_IdxOffset : UDINT;
|
||||
|
||||
fbRTrigCon : R_TRIG;
|
||||
fbRWCon : ADSRDWRT;
|
||||
fbWDiscon : ADSWRITE;
|
||||
fbAdsRead : ADSREAD;
|
||||
|
||||
fbBlockTimer : TOF;
|
||||
tBlockTime : TIME;
|
||||
|
||||
iState : INT;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
fbRTrigCon(CLK:= CONNECT);
|
||||
tBlockTime := T#60s;
|
||||
|
||||
fbBlockTimer(IN:=FALSE, PT:=tBlockTime);
|
||||
|
||||
CASE iState OF
|
||||
|
||||
0: (*
|
||||
Awaiting CONNECT
|
||||
*)
|
||||
ERR:=FALSE;
|
||||
CONNECTED:=FALSE;
|
||||
IF READ THEN
|
||||
BUSY:=TRUE; (* go error state, but create signals ... *)
|
||||
ERRID:=0;
|
||||
iState:=-1;
|
||||
ELSIF CONNECT THEN
|
||||
(* rising edge at CONNECT input, save input vars *)
|
||||
i_NETID:=NETID;
|
||||
i_PORT:=PORT;
|
||||
i_VARNAME:=VARNAME;
|
||||
i_DESTLEN:=DESTLEN;
|
||||
i_DESTADDR:=DESTADDR;
|
||||
i_TMOUT:=TMOUT;
|
||||
(* go active ... *)
|
||||
BUSY:=TRUE;
|
||||
ERRID:=0;
|
||||
IF fbBlockTimer.Q THEN
|
||||
iState:=-2; (* still blocked out, go error state, but create signals ... *)
|
||||
ELSE
|
||||
fbRWCon(WRTRD:=FALSE);
|
||||
iState:=10; (* start varconnect ... *)
|
||||
END_IF
|
||||
ELSE
|
||||
BUSY:=FALSE; (* still waiting ... *)
|
||||
END_IF
|
||||
|
||||
-1: (*
|
||||
Tried to start without connect
|
||||
*)
|
||||
BUSY:=FALSE;
|
||||
ERR:=TRUE;
|
||||
ERRID:=16#FFFFFFFF;
|
||||
IF NOT READ THEN
|
||||
iState:=0; (* go idle *)
|
||||
END_IF
|
||||
|
||||
-2: (*
|
||||
Tried to connect while still blocked out
|
||||
*)
|
||||
BUSY:=FALSE;
|
||||
ERR:=TRUE;
|
||||
ERRID:=16#FFFFFFFE;
|
||||
IF NOT CONNECT THEN
|
||||
iState:=0; (* go idle *)
|
||||
END_IF
|
||||
|
||||
(* ########################################################## *)
|
||||
|
||||
10: (*
|
||||
Sending var connect request
|
||||
*)
|
||||
fbRWCon.NETID:=i_NETID;
|
||||
fbRWCon.PORT:=i_PORT;
|
||||
fbRWCon.IDXGRP:=ADS_IDXGRP_GETVARHANDLEBYNAME;
|
||||
fbRWCon.IDXOFFS:=16#0;
|
||||
fbRWCon.WRITELEN:= LEN(i_VARNAME);
|
||||
fbRWCon.READLEN:=SIZEOF(i_IdxOffset);
|
||||
fbRWCon.SRCADDR:=ADR(i_VARNAME);
|
||||
fbRWCon.DESTADDR:=ADR(i_IdxOffset);
|
||||
fbRWCon.TMOUT:=i_TMOUT;
|
||||
fbRWCon.WRTRD:=TRUE;
|
||||
fbRWCon();
|
||||
iState:=11; (* go ahead *)
|
||||
|
||||
11: (*
|
||||
Sending var connect request
|
||||
*)
|
||||
fbRWCon();
|
||||
IF NOT fbRWCon.BUSY THEN
|
||||
BUSY:=FALSE;
|
||||
IF fbRWCon.ERR THEN
|
||||
ERR:=TRUE;
|
||||
ERRID:=fbRWCon.ERRID;
|
||||
fbBlockTimer(IN:=(fbRWCon.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO));
|
||||
iState:=-11; (* go error state *)
|
||||
ELSE
|
||||
(* Succeded *)
|
||||
CONNECTED:=TRUE;
|
||||
(* Prepare for Reading *)
|
||||
fbAdsRead.READ:=FALSE;
|
||||
fbAdsRead();
|
||||
iState:=20; (* go ahead *)
|
||||
END_IF
|
||||
fbRWCon.WRTRD:=FALSE;
|
||||
fbRWCon();
|
||||
END_IF
|
||||
|
||||
-11: (*
|
||||
wasn't able to connect
|
||||
*)
|
||||
IF NOT CONNECT THEN
|
||||
iState:=0; (* go idle *)
|
||||
END_IF
|
||||
|
||||
(* ########################################################## *)
|
||||
|
||||
20: (*
|
||||
awaiting DISCONNECT or READ
|
||||
*)
|
||||
ERR:=FALSE;
|
||||
IF READ THEN
|
||||
BUSY:=TRUE; (* go ahead ... *)
|
||||
ERRID:=0;
|
||||
IF fbBlockTimer.Q THEN
|
||||
iState:=-40; (* still blocked out, go error state, but create signals ... *)
|
||||
ELSE
|
||||
iState:=40;
|
||||
fbAdsRead(READ:=FALSE);
|
||||
END_IF
|
||||
ELSIF NOT CONNECT THEN
|
||||
BUSY:=TRUE;
|
||||
ERRID:=0;
|
||||
(* Prepare for Disconnect *)
|
||||
IF fbBlockTimer.Q THEN
|
||||
iState:=-30; (* still blocked out, go error state, but create signals ... *)
|
||||
ELSE
|
||||
fbWDiscon(WRITE:=FALSE);
|
||||
iState:=30; (* go ahead *)
|
||||
END_IF
|
||||
ELSE
|
||||
BUSY:=FALSE; (* still waiting ... *)
|
||||
END_IF
|
||||
|
||||
30: (*
|
||||
Sending var disconnect request
|
||||
*)
|
||||
fbWDiscon.NETID:=i_NETID;
|
||||
fbWDiscon.PORT:=i_PORT;
|
||||
fbWDiscon.IDXGRP:=ADS_IDXGRP_RELEASEVARHANDLE;
|
||||
fbWDiscon.IDXOFFS:=i_IdxOffset;
|
||||
fbWDiscon.LEN:= SIZEOF(i_IdxOffset);
|
||||
fbWDiscon.SRCADDR:=ADR(i_IdxOffset);
|
||||
fbWDiscon.TMOUT:=i_TMOUT;
|
||||
fbWDiscon.WRITE:= TRUE;
|
||||
fbWDiscon();
|
||||
iState:=31; (* go ahead *)
|
||||
|
||||
31: (*
|
||||
Sending var disconnect request
|
||||
*)
|
||||
fbWDiscon();
|
||||
IF NOT fbWDiscon.BUSY THEN
|
||||
BUSY:=FALSE;
|
||||
IF fbWDiscon.ERR THEN
|
||||
ERR:=TRUE;
|
||||
ERRID:=fbRWCon.ERRID;
|
||||
fbBlockTimer(IN:=(fbRWCon.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO));
|
||||
iState:=-31; (* go error state *)
|
||||
ELSE
|
||||
(* Succeded *)
|
||||
CONNECTED:=FALSE;
|
||||
iState:=0; (* go idle *)
|
||||
END_IF
|
||||
fbWDiscon.WRITE:= FALSE;
|
||||
fbWDiscon();
|
||||
END_IF
|
||||
|
||||
-30: (*
|
||||
tried to DISCONNECT while still blocked out
|
||||
*)
|
||||
BUSY:=FALSE;
|
||||
ERR:=TRUE;
|
||||
ERRID:=16#FFFFFFFD;
|
||||
IF CONNECT THEN
|
||||
iState:=20; (* go back *)
|
||||
END_IF
|
||||
|
||||
-31: (*
|
||||
wasn't able to DISCONNECT
|
||||
*)
|
||||
IF CONNECT THEN
|
||||
iState:=20; (* go back *)
|
||||
END_IF
|
||||
|
||||
(* ########################################################## *)
|
||||
|
||||
40: (*
|
||||
Sending read request
|
||||
*)
|
||||
fbAdsRead.NETID:=i_NETID;
|
||||
fbAdsRead.PORT:=i_PORT;
|
||||
fbAdsRead.IDXGRP:=ADS_IDXGRP_READVARBYHANDLE;
|
||||
fbAdsRead.IDXOFFS:=i_IdxOffset;
|
||||
fbAdsRead.LEN:=i_DESTLEN;
|
||||
fbAdsRead.DESTADDR:=i_DESTADDR;
|
||||
fbAdsRead.TMOUT:=i_TMOUT;
|
||||
fbAdsRead.READ:=TRUE;
|
||||
fbAdsRead();
|
||||
iState:=41; (* go ahead *)
|
||||
|
||||
41: (*
|
||||
Sending read request
|
||||
*)
|
||||
fbAdsRead();
|
||||
IF NOT fbAdsRead.BUSY THEN
|
||||
BUSY:=FALSE;
|
||||
IF fbAdsRead.ERR THEN
|
||||
ERR:=TRUE;
|
||||
ERRID:=fbAdsRead.ERRID;
|
||||
fbBlockTimer(IN:=(fbAdsRead.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO));
|
||||
iState:=-41; (* go error state *)
|
||||
ELSE
|
||||
iState:=42; (* go ahead *)
|
||||
END_IF
|
||||
fbAdsRead.READ:=FALSE;
|
||||
fbAdsRead();
|
||||
END_IF
|
||||
|
||||
42: (*
|
||||
Sending read request
|
||||
*)
|
||||
IF NOT READ THEN
|
||||
iState:=20; (* go idle *)
|
||||
END_IF
|
||||
|
||||
-40: (*
|
||||
tried to READ while still blocked out
|
||||
*)
|
||||
BUSY:=FALSE;
|
||||
ERR:=TRUE;
|
||||
ERRID:=16#FFFFFFFC;
|
||||
IF NOT READ THEN
|
||||
iState:=20; (* go back *)
|
||||
END_IF
|
||||
|
||||
-41: (*
|
||||
wasn't able to READ
|
||||
*)
|
||||
IF NOT READ THEN
|
||||
iState:=20; (* go back *)
|
||||
END_IF
|
||||
|
||||
(* ########################################################## *)
|
||||
|
||||
ELSE
|
||||
BUSY:=FALSE;
|
||||
ERR:=TRUE;
|
||||
ERRID:=16#FFFFFF00;
|
||||
IF NOT CONNECT AND NOT READ THEN
|
||||
iState:=0; (* go idle *)
|
||||
END_IF
|
||||
|
||||
END_CASE
|
||||
END_FUNCTION_BLOCK
|
|
@ -0,0 +1,143 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION_BLOCK ADSVARTRANSLATE
|
||||
VAR_INPUT
|
||||
FORMAT : STRING(255);
|
||||
SOURCELEN : UDINT;
|
||||
SOURCEADDR : DWORD;
|
||||
DESTADDR : DWORD;
|
||||
START : BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
READY : BOOL;
|
||||
ERR : BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
baName : ARRAY [1..255] OF BYTE;
|
||||
nStrMaxIdx : INT;
|
||||
nStrIdx : INT;
|
||||
|
||||
baData : ARRAY [1..255] OF BYTE;
|
||||
nDataMaxIdx : INT;
|
||||
nDataIdx : INT;
|
||||
|
||||
nCount : INT;
|
||||
bTemp : BYTE;
|
||||
|
||||
fbRTrig : R_TRIG;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
fbRTrig(CLK:= START);
|
||||
|
||||
IF fbRTrig.Q THEN
|
||||
ERR := FALSE;
|
||||
|
||||
nStrMaxIdx := MIN(LEN(FORMAT),255);
|
||||
MEMCPY(ADR(baName),ADR(FORMAT),nStrMaxIdx);
|
||||
|
||||
nDataMaxIdx := UDINT_TO_INT(MIN(SOURCELEN,255));
|
||||
MEMCPY(ADR(baData),SOURCEADDR,nDataMaxIdx);
|
||||
|
||||
nStrIdx := 1;
|
||||
nDataIdx := 1;
|
||||
|
||||
WHILE(nStrIdx<=nStrMaxIdx) DO
|
||||
nCount := 1;
|
||||
IF(baName[nStrIdx] >= 48 AND baName[nStrIdx] <= 57) THEN
|
||||
nCount := baName[nStrIdx] - 48;
|
||||
nStrIdx := nStrIdx+1;
|
||||
IF(nStrIdx>nStrMaxIdx) THEN
|
||||
ERR := TRUE;
|
||||
EXIT;
|
||||
END_IF
|
||||
IF(baName[nStrIdx] >= 48 AND baName[nStrIdx] <= 57) THEN
|
||||
nCount := 10 * nCount + baName[nStrIdx] - 48;
|
||||
nStrIdx := nStrIdx+1;
|
||||
IF(nStrIdx>nStrMaxIdx) THEN
|
||||
ERR := TRUE;
|
||||
EXIT;
|
||||
END_IF
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF(baName[nStrIdx] = 68 OR baName[nStrIdx] = 100) THEN
|
||||
(*
|
||||
dword data: revert bytes
|
||||
*)
|
||||
WHILE(nCount > 0)DO
|
||||
IF((nDataIdx+3) > nDataMaxIdx) THEN
|
||||
ERR := TRUE;
|
||||
EXIT;
|
||||
END_IF
|
||||
bTemp := baData[nDataIdx];
|
||||
baData[nDataIdx] := baData[nDataIdx+3];
|
||||
baData[nDataIdx+3] := bTemp;
|
||||
bTemp := baData[nDataIdx+1];
|
||||
baData[nDataIdx+1] := baData[nDataIdx+2];
|
||||
baData[nDataIdx+2] := bTemp;
|
||||
nDataIdx := nDataIdx + 4;
|
||||
nCount := nCount - 1;
|
||||
END_WHILE;
|
||||
nStrIdx := nStrIdx+1;
|
||||
ELSIF(baName[nStrIdx] = 82 OR baName[nStrIdx] = 114) THEN
|
||||
(*
|
||||
real data: revert bytes
|
||||
*)
|
||||
WHILE(nCount > 0)DO
|
||||
IF((nDataIdx+3) > nDataMaxIdx) THEN
|
||||
ERR := TRUE;
|
||||
EXIT;
|
||||
END_IF
|
||||
bTemp := baData[nDataIdx];
|
||||
baData[nDataIdx] := baData[nDataIdx+3];
|
||||
baData[nDataIdx+3] := bTemp;
|
||||
bTemp := baData[nDataIdx+1];
|
||||
baData[nDataIdx+1] := baData[nDataIdx+2];
|
||||
baData[nDataIdx+2] := bTemp;
|
||||
nDataIdx := nDataIdx + 4;
|
||||
nCount := nCount - 1;
|
||||
END_WHILE;
|
||||
nStrIdx := nStrIdx+1;
|
||||
ELSIF(baName[nStrIdx] = 87 OR baName[nStrIdx] = 119) THEN
|
||||
(*
|
||||
word data: swap high / low byte
|
||||
*)
|
||||
WHILE(nCount > 0)DO
|
||||
IF((nDataIdx+1) > nDataMaxIdx) THEN
|
||||
ERR := TRUE;
|
||||
EXIT;
|
||||
END_IF
|
||||
bTemp := baData[nDataIdx];
|
||||
baData[nDataIdx] := baData[nDataIdx+1];
|
||||
baData[nDataIdx+1] := bTemp;
|
||||
nDataIdx := nDataIdx + 2;
|
||||
nCount := nCount - 1;
|
||||
END_WHILE;
|
||||
nStrIdx := nStrIdx+1;
|
||||
ELSIF(baName[nStrIdx] = 66 OR baName[nStrIdx] = 98) THEN
|
||||
(*
|
||||
byte data: skip byte
|
||||
*)
|
||||
WHILE(nCount > 0)DO
|
||||
IF(nDataIdx > nDataMaxIdx) THEN
|
||||
ERR := TRUE;
|
||||
EXIT;
|
||||
END_IF
|
||||
nDataIdx := nDataIdx + 1;
|
||||
nCount := nCount - 1;
|
||||
END_WHILE;
|
||||
nStrIdx := nStrIdx+1;
|
||||
ELSE
|
||||
ERR := TRUE;
|
||||
EXIT;
|
||||
END_IF
|
||||
END_WHILE;
|
||||
|
||||
MEMCPY(DESTADDR,ADR(baData),nDataMaxIdx);
|
||||
|
||||
END_IF
|
||||
|
||||
READY := START;
|
||||
END_FUNCTION_BLOCK
|
|
@ -0,0 +1,297 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION_BLOCK ADSVARWRITE
|
||||
VAR_INPUT
|
||||
NETID : STRING(21);
|
||||
PORT : UINT;
|
||||
VARNAME : STRING(101);
|
||||
SRCLEN : UDINT;
|
||||
SRCADDR : DWORD;
|
||||
CONNECT : BOOL;
|
||||
WRITE : BOOL;
|
||||
TMOUT : TIME;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
CONNECTED: BOOL;
|
||||
BUSY : BOOL;
|
||||
ERR : BOOL;
|
||||
ERRID : UDINT;
|
||||
END_VAR
|
||||
VAR
|
||||
i_NETID : STRING(21);
|
||||
i_PORT : UINT;
|
||||
i_VARNAME : STRING(101);
|
||||
i_SRCLEN : UDINT;
|
||||
i_SRCADDR : DWORD;
|
||||
i_TMOUT : TIME;
|
||||
|
||||
i_IdxOffset : UDINT;
|
||||
|
||||
fbRTrigCon : R_TRIG;
|
||||
fbRWCon : ADSRDWRT;
|
||||
fbWDiscon : ADSWRITE;
|
||||
fbAdsWrite : ADSWRITE;
|
||||
|
||||
fbBlockTimer : TOF;
|
||||
tBlockTime : TIME;
|
||||
|
||||
iState : INT;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
fbRTrigCon(CLK:= CONNECT);
|
||||
tBlockTime := T#60s;
|
||||
|
||||
fbBlockTimer(IN:=FALSE , PT:=tBlockTime );
|
||||
|
||||
CASE iState OF
|
||||
|
||||
0: (*
|
||||
Awaiting CONNECT
|
||||
*)
|
||||
ERR:=FALSE;
|
||||
CONNECTED:=FALSE;
|
||||
IF WRITE THEN
|
||||
BUSY:=TRUE; (* go error state, but create signals ... *)
|
||||
ERRID:=0;
|
||||
iState:=-1;
|
||||
ELSIF CONNECT THEN
|
||||
(* rising edge at CONNECT input, save input vars *)
|
||||
i_NETID:=NETID;
|
||||
i_PORT:=PORT;
|
||||
i_VARNAME:=VARNAME;
|
||||
i_SRCLEN:=SRCLEN;
|
||||
i_SRCADDR:=SRCADDR;
|
||||
i_TMOUT:=TMOUT;
|
||||
(* go active ... *)
|
||||
BUSY:=TRUE;
|
||||
ERRID:=0;
|
||||
IF fbBlockTimer.Q THEN
|
||||
iState:=-2; (* still blocked out, go error state, but create signals ... *)
|
||||
ELSE
|
||||
fbRWCon(WRTRD:=FALSE);
|
||||
iState:=10; (* start varconnect ... *)
|
||||
END_IF
|
||||
ELSE
|
||||
BUSY:=FALSE; (* still waiting ... *)
|
||||
END_IF
|
||||
|
||||
-1: (*
|
||||
Tried to start without connect
|
||||
*)
|
||||
BUSY:=FALSE;
|
||||
ERR:=TRUE;
|
||||
ERRID:=16#FFFFFFFF;
|
||||
IF NOT WRITE THEN
|
||||
iState:=0; (* go idle *)
|
||||
END_IF
|
||||
|
||||
-2: (*
|
||||
Tried to connect while still blocked out
|
||||
*)
|
||||
BUSY:=FALSE;
|
||||
ERR:=TRUE;
|
||||
ERRID:=16#FFFFFFFE;
|
||||
IF NOT CONNECT THEN
|
||||
iState:=0; (* go idle *)
|
||||
END_IF
|
||||
|
||||
(* ########################################################## *)
|
||||
|
||||
10: (*
|
||||
Sending var connect request
|
||||
*)
|
||||
fbRWCon.NETID:=i_NETID;
|
||||
fbRWCon.PORT:=i_PORT;
|
||||
fbRWCon.IDXGRP:=ADS_IDXGRP_GETVARHANDLEBYNAME;
|
||||
fbRWCon.IDXOFFS:=16#0;
|
||||
fbRWCon.WRITELEN:= LEN(i_VARNAME);
|
||||
fbRWCon.READLEN:=SIZEOF(i_IdxOffset);
|
||||
fbRWCon.SRCADDR:=ADR(i_VARNAME);
|
||||
fbRWCon.DESTADDR:=ADR(i_IdxOffset);
|
||||
fbRWCon.TMOUT:=i_TMOUT;
|
||||
fbRWCon.WRTRD:=TRUE;
|
||||
fbRWCon();
|
||||
iState:=11; (* go ahead *)
|
||||
|
||||
11: (*
|
||||
Sending var connect request
|
||||
*)
|
||||
fbRWCon();
|
||||
IF NOT fbRWCon.BUSY THEN
|
||||
BUSY:=FALSE;
|
||||
IF fbRWCon.ERR THEN
|
||||
ERR:=TRUE;
|
||||
ERRID:=fbRWCon.ERRID;
|
||||
fbBlockTimer(IN:=(fbRWCon.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO));
|
||||
iState:=-11; (* go error state *)
|
||||
ELSE
|
||||
(* Succeded *)
|
||||
CONNECTED:=TRUE;
|
||||
(* Prepare for writing *)
|
||||
fbAdsWrite.WRITE:=FALSE;
|
||||
fbAdsWrite();
|
||||
iState:=20; (* go ahead *)
|
||||
END_IF
|
||||
fbRWCon.WRTRD:=FALSE;
|
||||
fbRWCon();
|
||||
END_IF
|
||||
|
||||
-11: (*
|
||||
wasn't able to connect
|
||||
*)
|
||||
IF NOT CONNECT THEN
|
||||
iState:=0; (* go idle *)
|
||||
END_IF
|
||||
|
||||
(* ########################################################## *)
|
||||
|
||||
20: (*
|
||||
awaiting DISCONNECT or WRITE
|
||||
*)
|
||||
ERR:=FALSE;
|
||||
IF WRITE THEN
|
||||
BUSY:=TRUE; (* go ahead ... *)
|
||||
ERRID:=0;
|
||||
IF fbBlockTimer.Q THEN
|
||||
iState:=-40; (* still blocked out, go error state, but create signals ... *)
|
||||
ELSE
|
||||
iState:=40;
|
||||
fbAdsWrite(WRITE:=FALSE);
|
||||
END_IF
|
||||
ELSIF NOT CONNECT THEN
|
||||
BUSY:=TRUE;
|
||||
ERRID:=0;
|
||||
(* Prepare for Disconnect *)
|
||||
IF fbBlockTimer.Q THEN
|
||||
iState:=-30; (* still blocked out, go error state, but create signals ... *)
|
||||
ELSE
|
||||
fbWDiscon(WRITE:=FALSE);
|
||||
iState:=30; (* go ahead *)
|
||||
END_IF
|
||||
ELSE
|
||||
BUSY:=FALSE; (* still waiting ... *)
|
||||
END_IF
|
||||
|
||||
30: (*
|
||||
Sending var disconnect request
|
||||
*)
|
||||
fbWDiscon.NETID:=i_NETID;
|
||||
fbWDiscon.PORT:=i_PORT;
|
||||
fbWDiscon.IDXGRP:=ADS_IDXGRP_RELEASEVARHANDLE;
|
||||
fbWDiscon.IDXOFFS:=i_IdxOffset;
|
||||
fbWDiscon.LEN:= SIZEOF(i_IdxOffset);
|
||||
fbWDiscon.SRCADDR:=ADR(i_IdxOffset);
|
||||
fbWDiscon.TMOUT:=i_TMOUT;
|
||||
fbWDiscon.WRITE:= TRUE;
|
||||
fbWDiscon();
|
||||
iState:=31; (* go ahead *)
|
||||
|
||||
31: (*
|
||||
Sending var disconnect request
|
||||
*)
|
||||
fbWDiscon();
|
||||
IF NOT fbWDiscon.BUSY THEN
|
||||
BUSY:=FALSE;
|
||||
IF fbWDiscon.ERR THEN
|
||||
ERR:=TRUE;
|
||||
ERRID:=fbRWCon.ERRID;
|
||||
fbBlockTimer(IN:=(fbRWCon.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO));
|
||||
iState:=-31; (* go error state *)
|
||||
ELSE
|
||||
(* Succeded *)
|
||||
CONNECTED:=FALSE;
|
||||
iState:=0; (* go idle *)
|
||||
END_IF
|
||||
fbWDiscon.WRITE:= FALSE;
|
||||
fbWDiscon();
|
||||
END_IF
|
||||
|
||||
-30: (*
|
||||
tried to DISCONNECT while still blocked out
|
||||
*)
|
||||
BUSY:=FALSE;
|
||||
ERR:=TRUE;
|
||||
ERRID:=16#FFFFFFFD;
|
||||
IF CONNECT THEN
|
||||
iState:=20; (* go back *)
|
||||
END_IF
|
||||
|
||||
-31: (*
|
||||
wasn't able to DISCONNECT
|
||||
*)
|
||||
IF CONNECT THEN
|
||||
iState:=20; (* go back *)
|
||||
END_IF
|
||||
|
||||
(* ########################################################## *)
|
||||
|
||||
40: (*
|
||||
Sending read request
|
||||
*)
|
||||
fbAdsWrite.NETID:=i_NETID;
|
||||
fbAdsWrite.PORT:=i_PORT;
|
||||
fbAdsWrite.IDXGRP:=ADS_IDXGRP_READVARBYHANDLE;
|
||||
fbAdsWrite.IDXOFFS:=i_IdxOffset;
|
||||
fbAdsWrite.LEN:=i_SRCLEN;
|
||||
fbAdsWrite.SRCADDR:=i_SRCADDR;
|
||||
fbAdsWrite.TMOUT:=i_TMOUT;
|
||||
fbAdsWrite.WRITE:=TRUE;
|
||||
fbAdsWrite();
|
||||
iState:=41; (* go ahead *)
|
||||
|
||||
41: (*
|
||||
Sending read request
|
||||
*)
|
||||
fbAdsWrite();
|
||||
IF NOT fbAdsWrite.BUSY THEN
|
||||
BUSY:=FALSE;
|
||||
IF fbAdsWrite.ERR THEN
|
||||
ERR:=TRUE;
|
||||
ERRID:=fbAdsWrite.ERRID;
|
||||
fbBlockTimer(IN:=(fbAdsWrite.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO));
|
||||
iState:=-41; (* go error state *)
|
||||
ELSE
|
||||
iState:=42; (* go ahead *)
|
||||
END_IF
|
||||
fbAdsWrite.WRITE:=FALSE;
|
||||
fbAdsWrite();
|
||||
END_IF
|
||||
|
||||
42: (*
|
||||
Sending read request
|
||||
*)
|
||||
IF NOT WRITE THEN
|
||||
iState:=20; (* go idle *)
|
||||
END_IF
|
||||
|
||||
-40: (*
|
||||
tried to WRITE while still blocked out
|
||||
*)
|
||||
BUSY:=FALSE;
|
||||
ERR:=TRUE;
|
||||
ERRID:=16#FFFFFFFC;
|
||||
IF NOT WRITE THEN
|
||||
iState:=20; (* go back *)
|
||||
END_IF
|
||||
|
||||
-41: (*
|
||||
wasn't able to WRITE
|
||||
*)
|
||||
IF NOT WRITE THEN
|
||||
iState:=20; (* go back *)
|
||||
END_IF
|
||||
|
||||
(* ########################################################## *)
|
||||
|
||||
ELSE
|
||||
BUSY:=FALSE;
|
||||
ERR:=TRUE;
|
||||
ERRID:=16#FFFFFF00;
|
||||
IF NOT CONNECT AND NOT WRITE THEN
|
||||
iState:=0; (* go idle *)
|
||||
END_IF
|
||||
|
||||
END_CASE
|
||||
END_FUNCTION_BLOCK
|
|
@ -0,0 +1,611 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
PROGRAM AmmoniaCtrl
|
||||
VAR
|
||||
mAmmoniaCtrlDelay : TOF;
|
||||
mFirstProdColdReqDly : TON ;
|
||||
mCompressorDelay : TON;
|
||||
mCompressorRS_Prod : RS;
|
||||
mCompressorRS_CIP : RS;
|
||||
mCompressorCIPRun : TON;
|
||||
mAmmoniaRunOutRS : RS;
|
||||
mCompressorRun_CIP : BOOL;
|
||||
mCompressorRun_Prod : BOOL;
|
||||
mNH3CompressorFault : TON;
|
||||
mCompressorStart : R_TRIG;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 10
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
Enables NH3 evaporation
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderStartPumps
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gEnableRecircPHE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gAuxVoltageOk
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOutAmmoniaWaterColdControl
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
Enables NH3 evaporation
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gOutAmmoniaCompressorRun
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gH_ColdRinseRun
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderStartPumps
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mAmmoniaCtrlDelay
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#15s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
tof
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gAuxVoltageOk
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOutAmmoniaProductColdControl
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
Enables NH3 liquid inlet
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gCarboWaterLine_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gEnableRecircPHE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gH_ColdRinseRun
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderStartPumps
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gAuxVoltageOk
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOutAmmoniaWaterColdRequest
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
During First Production the pipe from Water MOD. valve through the prod heat exchanger TO the product tank
|
||||
is empty, so 30 S are needed TO wait that the pipe fills OF product.
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gH_ColdRinseRun
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderStartPumps
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mFirstProdColdReqDly
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFirstProdLatched
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#0s
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#30s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SEL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ton
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_LD_CONTACT
|
||||
gAuxVoltageOk
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOutAmmoniaProductColdRequest
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gOutAmmoniaCompressorRun
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gBlenderProdMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gH_ColdRinseRun
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderStartPumps
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_ColdRinseRun
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
DO_AmmoniaProductColdControl
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOutAmmonia_ByPassHotGas
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
Ammonia compressors NOT running
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gOutAmmoniaProductColdControl
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gInAmmoniaCompressorReady
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mNH3CompressorFault
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#10s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TON
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_LD_CONTACT
|
||||
gWorkshopTest
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gAmmoniaCompressor_Fault
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
mCompressorRS_Prod
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gBlenderRinse_Running
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
OR
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 5
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gProdTankRunOut_Latch
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
gGencoldChillerEn
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_WarmRinseRun
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gBlenderCIPMode
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
gCoolerEnabled
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
OR
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
rs
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mCompressorRun_Prod
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
mCompressorRS_CIP
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gBlenderStartPumps
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
gAmmoniaRunOut_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gAmmoniaRunOut_Done
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gBlenderProdMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
OR
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
rs
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mCompressorRun_CIP
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
mCompressorRun_Prod
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
mCompressorRun_CIP
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOutAmmoniaCompressorRun
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
mAmmoniaRunOutRS
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_FUNCTIONBLOCK
|
||||
mCompressorCIPRun
|
||||
_BOX_EXPR : 2
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mCompressorRun_CIP
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gInAmmoniaCompressorReady
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#30m
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ton
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gBlenderProdMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
rs
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gAmmoniaRunOut_Done
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_PROGRAM
|
|
@ -0,0 +1,29 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION ArrayToReal : REAL
|
||||
VAR_INPUT
|
||||
mIn_Value : POINTER TO BYTE;
|
||||
END_VAR
|
||||
VAR
|
||||
i : INT;
|
||||
p : UDINT;
|
||||
p1 : UDINT;
|
||||
mPoint : POINTER TO BYTE;
|
||||
mPoint1 : POINTER TO BYTE;
|
||||
mTemp : REAL;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
mPoint := ADR(mTemp);
|
||||
FOR i := 3 TO 0 BY -1
|
||||
DO
|
||||
p1 := mIn_Value;
|
||||
mPoint1 := p1 + i;
|
||||
mPoint^ := mPoint1^;
|
||||
p := mPoint ;
|
||||
p := p + 1 ;
|
||||
mPoint := p ;
|
||||
END_FOR
|
||||
ArrayToReal := mTemp;
|
||||
|
||||
END_FUNCTION
|
|
@ -0,0 +1,209 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := BlenderProcedure_Variables *)
|
||||
(* @PATH := '\/Blending_Variables' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
(************************************************************************************)
|
||||
(* START UP VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gDeairStartUp_Qualifier : BOOL ; (* *)
|
||||
gDeairStartUp_Request : BOOL ; (* *)
|
||||
gDeairStartUp_Reset : BOOL ; (* *)
|
||||
gDeairStartUp_Latch : BOOL ; (* *)
|
||||
gDeairStartUp_Running : BOOL ; (* *)
|
||||
gDeairStartUp_Wait : BOOL ; (* *)
|
||||
gDeairStatUpH2OFilter_OK : BOOL ; (* *)
|
||||
|
||||
gCarboWaterLine_Qualifier : BOOL ; (* *)
|
||||
gCarboWaterLine_Request : BOOL ; (* *)
|
||||
gCarboWaterLine_Reset : BOOL ; (* *)
|
||||
gCarboWaterLine_Latch : BOOL ; (* *)
|
||||
gCarboWaterLine_Running : BOOL ; (* *)
|
||||
gCarboWaterLine_Wait : BOOL ; (* *)
|
||||
|
||||
gSyrLineMFMPrep_Qualifier : BOOL ; (* *)
|
||||
gSyrLineMFMPrep_Request : BOOL ; (* *)
|
||||
gSyrLineMFMPrep_Reset : BOOL ; (* *)
|
||||
gSyrLineMFMPrep_Latch : BOOL ; (* *)
|
||||
gSyrLineMFMPrep_Running : BOOL ; (* *)
|
||||
gSyrLineMFMPrep_Wait : BOOL ; (* *)
|
||||
|
||||
gSyrMFMStartUp_Qualifier : BOOL ; (* *)
|
||||
gSyrMFMStartUp_Request : BOOL ; (* *)
|
||||
gSyrMFMStartUp_Reset : BOOL ; (* *)
|
||||
gSyrMFMStartUp_Latch : BOOL ; (* *)
|
||||
gSyrMFMStartUp_Running : BOOL ; (* *)
|
||||
gSyrMFMStartUp_Wait : BOOL ; (* *)
|
||||
|
||||
gDensimeterCal_Qualifier : BOOL ; (* *)
|
||||
gDensimeterCal_Request : BOOL ; (* *)
|
||||
gDensimeterCal_Reset : BOOL ; (* *)
|
||||
gDensimeterCal_Latch : BOOL ; (* *)
|
||||
gDensimeterCal_Running : BOOL ; (* *)
|
||||
gDensimeterCal_Wait : BOOL ; (* *)
|
||||
|
||||
gProdBrixRecovery_Qualifier : BOOL ; (* *)
|
||||
gProdBrixRecovery_Request : BOOL ; (* *)
|
||||
gProdBrixRecovery_Reset : BOOL ; (* *)
|
||||
gProdBrixRecovery_Latch : BOOL ; (* *)
|
||||
gProdBrixRecovery_Running : BOOL ; (* *)
|
||||
gProdBrixRecovery_Wait : BOOL ; (* *)
|
||||
gProdBrixRecovery_Done : BOOL ; (* *)
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL PERSISTENT
|
||||
gDeairStartUp_Done : BOOL ; (* *)
|
||||
gCarboWaterLine_Done : BOOL ; (* *)
|
||||
gSyrLineMFMPrep_Done : BOOL ; (* *)
|
||||
gDensimeterCal_Done : BOOL ; (* *)
|
||||
gSyrRunOut_Done : BOOL ; (* *)
|
||||
gFirstProd_Request : BOOL ; (* Must be Persistent in order to remember the request *)
|
||||
gFirstProd_Done : BOOL ;
|
||||
gProdTankRunOut_Done : BOOL ; (* *)
|
||||
gProdTankDrain_Done : BOOL ; (* *)
|
||||
gBlendFillStartUp_Done : BOOL ; (* *)
|
||||
gAmmoniaRunOut_Done : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL
|
||||
(************************************************************************************)
|
||||
(* BLENDER RUN CONTROL VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gBlenderRun_Qualifier : BOOL ; (* *)
|
||||
gBlenderRun_Request : BOOL ; (* *)
|
||||
gBlenderRun_Reset : BOOL ; (* *)
|
||||
gBlenderRun_Latch : BOOL ; (* *)
|
||||
gBlenderRun_Running : BOOL ; (* *)
|
||||
gBlenderRun_Wait : BOOL ; (* *)
|
||||
gBlenderRun_Done : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* BLENDER STOP CONTROL VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gBlenderStop_Request : BOOL ; (* *)
|
||||
gBlenderStop_Latch : BOOL ; (* *)
|
||||
gBlenderStop_Running : BOOL ; (* *)
|
||||
gBlenderStop_Done : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* BLENDER RINSE VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gBlenderRinse_Qualifier : BOOL ; (* *)
|
||||
gBlenderRinse_Request : BOOL ; (* *)
|
||||
gBlenderRinse_Reset : BOOL ; (* *)
|
||||
gBlenderRinse_Latch : BOOL ; (* *)
|
||||
gBlenderRinse_Running : BOOL ; (* *)
|
||||
gBlenderRinse_Wait : BOOL ; (* *)
|
||||
gBlenderRinse_Done : BOOL ; (* *)
|
||||
|
||||
gBlenderRinse_DoneONS : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* FILLER SPEED CALCOLUS VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gFillerSpeed_Qualifier : BOOL ; (* *)
|
||||
gFillerSpeed_Request : BOOL ; (* *)
|
||||
gFillerSpeed_Latch : BOOL ; (* *)
|
||||
gFillerSpeed_Running : BOOL ; (* *)
|
||||
gFillerSpeed_Done : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* FIRST PRODUCTION VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gFirstProd_Qualifier : BOOL ; (* *)
|
||||
gFirstProd_Reset : BOOL ; (* *)
|
||||
gFirstProd_Latch : BOOL ; (* *)
|
||||
gFirstProd_Running : BOOL ; (* *)
|
||||
gFirstProd_Wait : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* PRESSURE CONTROL VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gProdTankPress_Qualifier : BOOL ; (* *)
|
||||
gProdTankPress_Request : BOOL ; (* *)
|
||||
gProdTankPress_Reset : BOOL ; (* *)
|
||||
gProdTankPress_Latch : BOOL ; (* *)
|
||||
gProdTankPress_Running : BOOL ; (* *)
|
||||
gProdTankPress_Wait : BOOL ; (* *)
|
||||
gProdTankPress_Done : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* SYRUP RUNOUT VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gSyrRunOut_Qualifier : BOOL ; (* *)
|
||||
gSyrRunOut_Request : BOOL ; (* *)
|
||||
gSyrRunOut_Reset : BOOL ; (* *)
|
||||
gSyrRunOut_Latch : BOOL ; (* *)
|
||||
gSyrRunOut_Running : BOOL ; (* *)
|
||||
gSyrRunOut_Wait : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* PRODUCT TANK RUNOUT VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gProdTankRunOut_Qualifier : BOOL ; (* *)
|
||||
gProdTankRunOut_Request : BOOL ; (* *)
|
||||
gProdTankRunOut_Reset : BOOL ; (* *)
|
||||
gProdTankRunOut_Latch : BOOL ; (* *)
|
||||
gProdTankRunOut_Running : BOOL ; (* *)
|
||||
gProdTankRunOut_Wait : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* PRODUCT TANK DRAIN VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gProdTankDrain_Qualifier : BOOL ; (* *)
|
||||
gProdTankDrain_Request : BOOL ; (* *)
|
||||
gProdTankDrain_Reset : BOOL ; (* *)
|
||||
gProdTankDrain_Latch : BOOL ; (* *)
|
||||
gProdTankDrain_Running : BOOL ; (* *)
|
||||
gProdTankDrain_Wait : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* SYRUP BRIX AUTOCORRECTION VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gSyrAutoCorr_Qualifier : BOOL ; (* *)
|
||||
gSyrAutoCorr_Request : BOOL ; (* *)
|
||||
gSyrAutoCorr_Reset : BOOL ; (* *)
|
||||
gSyrAutoCorr_Latch : BOOL ; (* *)
|
||||
gSyrAutoCorr_Running : BOOL ; (* *)
|
||||
gSyrAutoCorr_Wait : BOOL ; (* *)
|
||||
gSyrAutoCorr_Done : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* BRIX TRACKING VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gProdBrixTrack_Qualifier : BOOL ; (* *)
|
||||
gProdBrixTrack_Request : BOOL ; (* *)
|
||||
gProdBrixTrack_Reset : BOOL ; (* *)
|
||||
gProdBrixTrack_Latch : BOOL ; (* *)
|
||||
gProdBrixTrack_Running : BOOL ; (* *)
|
||||
gProdBrixTrack_Wait : BOOL ; (* *)
|
||||
gProdBrixTrack_Done : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* FILLER TANK INTEGRATED VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gBlendFillStartUp_Qualifier : BOOL ; (* *)
|
||||
gBlendFillStartUp_Request : BOOL ; (* *)
|
||||
gBlendFillStartUp_Wait : BOOL ; (* *)
|
||||
gBlendFillStartUp_Reset : BOOL ; (* *)
|
||||
gBlendFillStartUp_Latch : BOOL ; (* *)
|
||||
gBlendFillStartUp_Running : BOOL ; (* *)
|
||||
gBlendFillStartUp_EnBlend : BOOL ; (* *)
|
||||
|
||||
(************************************************************************************)
|
||||
(* UV LAMP VARIABLES *)
|
||||
(************************************************************************************)
|
||||
gUV_Lamp_Qualifier : BOOL ; (* *)
|
||||
gUV_Lamp_Request : BOOL ; (* *)
|
||||
gUV_Lamp_Drain : BOOL ; (* *)
|
||||
gUV_Lamp_Latch : BOOL ; (* *)
|
||||
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @OBJECT_END := BlenderProcedure_Variables *)
|
||||
(* @CONNECTIONS := BlenderProcedure_Variables
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,970 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM BlenderRinse
|
||||
VAR
|
||||
mWarmReq : BOOL ;
|
||||
mColdReq : BOOL ;
|
||||
mWarmReqONS : R_TRIG ;
|
||||
mColdReqONS : R_TRIG ;
|
||||
mDoneONS : R_TRIG ;
|
||||
mAuxONS : R_TRIG ;
|
||||
mColdDoneONS : F_TRIG ;
|
||||
mWarmDoneONS : F_TRIG ;
|
||||
mColdRinseSR : SR ;
|
||||
mWarmRinseSR : SR ;
|
||||
mColdRinseSelected : BOOL ;
|
||||
mWarmRinseSelected : BOOL ;
|
||||
mColdStop : BOOL ;
|
||||
mWarmStop : BOOL ;
|
||||
|
||||
mDummy : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 20
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gH_Blender_Prod_CIP
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderSuppliesOk
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gBlenderRinse_Qualifier
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_CMD_ColdRinseReq
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFastRinse_Request
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderAlarm
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gCoolerEnabled
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mColdReqONS
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
R_TRIG
|
||||
_OUTPUTS : 0
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Qualifier
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mColdReq
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_CMD_WarmRinseReq
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFastRinse_Request
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderAlarm
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gCoolerEnabled
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mWarmReqONS
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
R_TRIG
|
||||
_OUTPUTS : 0
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Qualifier
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mWarmReq
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
mWarmRinseSelected
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
mColdRinseSelected
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Qualifier
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gBlenderRinse_Request
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
mColdRinseSelected
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mColdDoneONS
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
F_TRIG
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mColdStop
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
mWarmRinseSelected
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mWarmDoneONS
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
F_TRIG
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mWarmStop
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
mColdRinseSelected
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
mColdReq
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mColdRinseSR
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 5
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mColdRinseSelected
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mColdReq
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mWarmRinseSelected
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gBlenderCIPMode
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFastChangeOverActivated
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFastRinse_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gBlenderRinse_Done
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
gFastChangeOverActivated
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mColdRinseSelected
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
OR
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SR
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mColdRinseSelected
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
mWarmRinseSelected
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
mWarmReq
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mWarmRinseSR
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 5
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mWarmRinseSelected
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mWarmReq
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mColdRinseSelected
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gBlenderCIPMode
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFastChangeOverActivated
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFastRinse_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gBlenderRinse_Done
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
gFastChangeOverActivated
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mWarmRinseSelected
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
OR
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SR
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mWarmRinseSelected
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 6
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_Deaireation
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gDeairStartUp_Done
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRun_Latch
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gProdTankDrain_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Qualifier
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gCIPStopLevel
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_CompletedLatch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gBlenderRinse_Wait
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gBlenderRinse_Reset
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Request
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Done
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Reset
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gBlenderRinse_Latch
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
18
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_BlenderStateNum
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gBlenderRinseMode
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Wait
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gBlenderRinse_Running
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
mWarmRinseSelected
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 2
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_Status014
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_WarmRinseRun
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
mColdRinseSelected
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 2
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_Status015
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_ColdRinseRun
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gProdTankDrain_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 2
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_Status026
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gRinseDrainRunning
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gIn_Flr_FastRinseCompleted
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mAuxONS
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
R_TRIG
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_SET
|
||||
gFillerRinse_CompletedLatch
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
mColdStop
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
mWarmStop
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFastRinse_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gProdTankDrain_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_CompletedLatch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 2
|
||||
_OUTPUT
|
||||
_NEGATIV
|
||||
_SET
|
||||
gFillerRinse_CompletedLatch
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gBlenderRinse_Done
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mDoneONS
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
R_TRIG
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gBlenderRinse_DoneONS
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_DoneONS
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
BlenderRinse.RinseDone
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_PROGRAM
|
||||
ACTION RinseDone:
|
||||
_Blender_PID_Main._PID_Reset_Integral ;
|
||||
|
||||
_Blender_Ctrl_Main.InitErrors() ;
|
||||
|
||||
END_ACTION
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,406 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM Blender_ProcedureCall
|
||||
VAR
|
||||
mDummy : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 13
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
System_Run_Out
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
Deaireator_StartUp
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
CarboWaterLine
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
Syrup_Line_MFM_Prep
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
Syrup_MFM_StartUp
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
Syrup_RunOut
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ProdTank_RunOut
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ProdTank_Drain
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SyrBrix_Autocorrection
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
BrixTracking
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ProdBrixRecovery
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
BlendFillSystem_StartUp
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
Densimeter_Calibration
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_PROGRAM
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,431 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := Blender_Variables *)
|
||||
(* @PATH := '\/Blending_Variables' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
(**********************************************************************************************************************)
|
||||
(* INPUTS AUXILIARY VARIABLES *)
|
||||
(**********************************************************************************************************************)
|
||||
gAuxVoltageOk : BOOL ; (* *)
|
||||
gInResetHorn : BOOL ; (* *)
|
||||
gInResetBtn : BOOL ; (* *)
|
||||
gInStopBtn : BOOL ; (* *)
|
||||
gInStartBtn : BOOL ; (* *)
|
||||
gInLinePressCO2Ok : BOOL ; (* *)
|
||||
gInLinePressAirOk : BOOL ; (* *)
|
||||
gDeairTankMinLvlAux : BOOL ;
|
||||
gDeairTank2MinLvlAux : BOOL ;
|
||||
gSyrupTankMinLvlAux : BOOL ;
|
||||
gSyrupLineDrainValveAux : BOOL ;
|
||||
gWaterManualDrainValveAux : BOOL ;
|
||||
gBlenderDeairVacuum_Ok : BOOL ; (* *)
|
||||
gInWaterValveClosed : BOOL ; (* *)
|
||||
gInSyrupValveClosed : BOOL ; (* *)
|
||||
gInCarboCO2ValveClosed : BOOL ; (* *)
|
||||
gInManifoldNotReadyForProd : BOOL ;
|
||||
gInManifoldNotReadyForCIP : BOOL ;
|
||||
|
||||
gIn_ProdPumpFCReady : BOOL ;
|
||||
gIn_ProdTankNotEmpty : BOOL ; (* *)
|
||||
gIn_FlowSwitch : BOOL ; (* *)
|
||||
gIn_DeaireatorPressure : REAL ;
|
||||
gIn_DeairFlow_PV : REAL ;
|
||||
|
||||
gIn_C1_Conductivity_Caustic : REAL ;
|
||||
gIn_C2_Conductivity_Water : REAL ;
|
||||
|
||||
gInSyrRoomOk : BOOL ; (* From Syrup Room Syrup ready *)
|
||||
|
||||
gInFillerProductReq : BOOL ; (* From Filler Product request *)
|
||||
gInFillerProdReady : BOOL ; (* From Filler Ready to Production *)
|
||||
gInFillerCIPRequest : BOOL ; (* From Filler Ready to CIP *)
|
||||
gInFillerCIPDrainCompleted : BOOL ; (* From Filler Drain Completed *)
|
||||
gInFillerCIPCycleEnded : BOOL ; (* From Filler Spare *)
|
||||
gInFillerCIPChangeReady : BOOL ; (* From Filler Spare *)
|
||||
gInFillerEV62Enable : BOOL ;
|
||||
gInFillerEV46Enable : BOOL ;
|
||||
gInFillerEndTankFilling : BOOL ;
|
||||
gInFillerBottleFilling : BOOL ;
|
||||
gInFillerEndFlushing : BOOL ;
|
||||
gInFillerCIPModeSelected : BOOL ; (* From Filler CIP Mode Selected *)
|
||||
gInFillerCIPDrainSelecteted : BOOL ; (* From Filler Drain Selecteted *)
|
||||
gInFillerCIPOpenEV13 : BOOL ;
|
||||
gInFillerStopCIPReturnPump : BOOL ;
|
||||
|
||||
gInCIP_DrainRequest : BOOL ; (* From CIP Room Drain Request *)
|
||||
gInCIP_TankFilling : BOOL ; (* From CIP Room Flood Request *)
|
||||
gInCIP_RinseMode : BOOL ; (* From CIP Room Flood Request *)
|
||||
gInCIP_CIPRunning : BOOL ; (* From CIP Room CIP running *)
|
||||
gInCIP_ChangeSanitize : BOOL ; (* From CIP Room CIP change sanitize *)
|
||||
gInCIP_CIPCompleted : BOOL ; (* From CIP Room CIP completed *)
|
||||
gInCIP_CIPMode : BOOL ; (* From CIP Room CIP Mode *)
|
||||
gInCIP_CausticSanitizeRunning : BOOL ; (* From CIP Room CIP change sanitize *)
|
||||
gInCIP_Fault : BOOL ; (* From CIP Room CIP Fault *)
|
||||
|
||||
gInAmmoniaLowPressure : BOOL ; (* From Chiller Ammonia Low Pressure *)
|
||||
gInAmmoniaHighLevel : BOOL ; (* From Chiller Ammonia High Level *)
|
||||
gInAmmoniaCompressorReady : BOOL ; (* From Chiller Ammonia Compressors not running *)
|
||||
|
||||
gInUVLampReady : BOOL ;
|
||||
gInUVLampAlarm : BOOL ;
|
||||
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL
|
||||
(**********************************************************************************************************************)
|
||||
(* OUTPUTS AUXILIARY VARIABLES *)
|
||||
(**********************************************************************************************************************)
|
||||
gOut_WaterPumpRun : BOOL ; (* P1 Water Pump Run *)
|
||||
gOut_WaterPump2Run : BOOL ; (* P5 Water Pump Run *)
|
||||
gOut_SyrupPumpRun : BOOL ; (* P2 Syrup Pump Run *)
|
||||
gOut_ProductPumpRun : BOOL ; (* P3 Product Pump Run *)
|
||||
gOut_VacuumPumpRun : BOOL ; (* P4 Vacuum Pump Run *)
|
||||
gOut_RecircPumpRun : BOOL ; (* P6 ByPass Pump Run *)
|
||||
gOut_SyrupRoomPumpRun : BOOL ; (* Syrup Room Pump Run *)
|
||||
gOut_SyrupRoomWaterReq : BOOL ; (* Syrup Room Water Request *)
|
||||
gOut_WaterPumpVFCRun : BOOL ; (* Water Pump VFC Run *)
|
||||
|
||||
gOut_FillerProduction : BOOL ; (* To Filler Production *)
|
||||
gOut_FillerMinimumLevel : BOOL ; (* To Filler Product under minimum level *)
|
||||
gOut_FillerProductAvailable : BOOL ; (* To Filler Product sending available *)
|
||||
gOut_FillerRinseMode : BOOL ; (* To Filler Rinse Request *)
|
||||
gOut_FillerCIPMode : BOOL ; (* To Filler CIP Request *)
|
||||
gOut_FillerCIPRunning : BOOL ; (* To Filler CIP Running *)
|
||||
gOut_FillerCIPChangeSanitize : BOOL ; (* To Filler CIP *)
|
||||
gOut_FillerCIPDrainRequest : BOOL ; (* To Filler CIP Drain *)
|
||||
gOut_FillerCIPCompleted : BOOL ; (* To Filler CIP Completed *)
|
||||
gOut_FillerCIPCausticSanitizeRunning : BOOL ; (* To Filler CIP *)
|
||||
|
||||
(* gOut_CIPRequest : BOOL; (* To CIP Room *)
|
||||
(* gOut_CIPDrainCompleted : BOOL ; (* To CIP Room *)
|
||||
(* gOut_CIPCycleEnded : BOOL ; (* To CIP Room *)
|
||||
gOut_CIPChangeReady : BOOL ; (* To CIP Room *)
|
||||
(* gOut_CIPWaterPipe_Ready : BOOL; (* To CIP Room *)
|
||||
gOutAmmoniaCompressorRun : BOOL ; (* To Chiller : Ammonia Compressors Run *)
|
||||
gOutAmmoniaWaterColdRequest : BOOL; (* To Chiller : Enables NH3 liquid inlet *)
|
||||
gOutAmmoniaProductColdRequest : BOOL; (* To Chiller : Enables NH3 liquid inlet *)
|
||||
gOutAmmoniaWaterColdControl : BOOL; (* To Chiller : Enables NH3 evaporation *)
|
||||
gOutAmmoniaProductColdControl : BOOL; (* To Chiller : Enables NH3 evaporation *)
|
||||
gOutAmmonia_ByPassHotGas : BOOL; (* To Chiller : *)
|
||||
gOutDeaireationValve : REAL ;
|
||||
gOutUVLamp_ONOFF : BOOL ; (* Switch UV Lamp ON / OFF *)
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL
|
||||
gtemphigh :BOOL;
|
||||
gpherecirculation :BOOL;
|
||||
gDelayS7Call : BOOL ;
|
||||
gAlwaysOff : BOOL ; (* *)
|
||||
gHighPriorityAlarm : BOOL ; (* *)
|
||||
gLowPriorityAlarm : BOOL ; (* *)
|
||||
gBlenderAlarm : BOOL ; (* *)
|
||||
gAlarmHorn : BOOL ; (* *)
|
||||
gWarningHorn : BOOL ; (* *)
|
||||
gProductionONS : BOOL ;
|
||||
gCIPONS : BOOL ;
|
||||
gRinseONS : BOOL ;
|
||||
gGencoldChillerEn : BOOL ;
|
||||
gProductChillerEn : BOOL ;
|
||||
gProductDoubleStadiumChillerEn : BOOL ;
|
||||
gWaterChillerEn : BOOL ;
|
||||
gEnableRecircPHE : BOOL;
|
||||
gSyrupRoomEn : BOOL ;
|
||||
gStillWaterByPassEn : BOOL ;
|
||||
gEmergencyPressed : BOOL ;
|
||||
gVacuumAcheaved : BOOL ; (* In case of vacuum pump, still product signal from vacuum probe *)
|
||||
|
||||
gWorkshopTest : BOOL ; (* Use during Workshop test - BF - *)
|
||||
|
||||
gWaterSpeedToStop : BOOL ;
|
||||
gStopBlendCarboError : BOOL ; (* Water Speed to stop Blend error and Carbo error *)
|
||||
gEnRampDownToStop : BOOL ;
|
||||
gBlenderFillerRunning : BOOL ; (* Both Blender and Filler are running *)
|
||||
gEnToStopBlender : BOOL ; (* Next Filler stop, stop blender *)
|
||||
gFlowToFiller : BOOL ; (* Product is Flowing to Filler *)
|
||||
gBlendRecircActive : BOOL ;
|
||||
gCriticalBlending : BOOL ;
|
||||
gProdAvailable : BOOL ;
|
||||
gDisableProdAvailable : BOOL ;
|
||||
gTrackFillerSpeed : BOOL ;
|
||||
|
||||
gDeairTankLoading : BOOL ;
|
||||
gSyrupTankLoading : BOOL ;
|
||||
gSyrupTankMinLevel : BOOL ;
|
||||
gBlenderStableFlow : BOOL ; (* *)
|
||||
gBlenderEnToRamp : BOOL ; (* *)
|
||||
gBlenderStartPumps : BOOL ; (* *)
|
||||
gBlenderStartPumpsONS : BOOL ; (* *)
|
||||
gBlenderBlending : BOOL ; (* *)
|
||||
gBlenderStopping : BOOL ; (* *)
|
||||
gBlenderOperatorStop : BOOL ;
|
||||
gModValveRiseTimeCalcEn : BOOL ; (* *)
|
||||
gBlenderFlowFltEn : BOOL ; (* *)
|
||||
gBlenderStopLevel : BOOL ; (* Product Tank Maximum Level Acheaved *)
|
||||
gBlenderStartLevel : BOOL ; (* Product Tank Pump Start Level Acheaved *)
|
||||
gBlenderLevelOk : BOOL ; (* Product Tank Recipe Minimum Level Acheaved *)
|
||||
gBlenderLevelTarget : BOOL ; (* Product Tank Target Level Acheaved *)
|
||||
gBlenderMinLevel : BOOL ; (* Product Tank 5% Level Acheaved *)
|
||||
gProdTankEmpty : BOOL ; (* Product Tank Empty *)
|
||||
gBlenderEmpty : BOOL ;
|
||||
gFirstProdStop : BOOL ; (* Stop Blender when First Production Done *)
|
||||
gProdTankStopLvl : REAL ; (* Product Tank Max Level *)
|
||||
gProdTankTargetLvl : REAL ; (* Product Tank Target Level *)
|
||||
gProdTankStartLvl : REAL ; (* Product Tank Start Level below Stop Level to Start *)
|
||||
gCIPStopLevel : BOOL ; (* *)
|
||||
gCIPMaxLevel : BOOL ; (* 100% Product Tank Level during CIP *)
|
||||
gCIPPrdTankFlood : BOOL ;
|
||||
gCIP_BlenderDrainDone : BOOL ;
|
||||
gCIPDeairTankFlood : BOOL ;
|
||||
gCIPSyrupTankFlood : BOOL ;
|
||||
gCIPSyrupStopLevel : BOOL ;
|
||||
gCIPPrdTankPressLow : BOOL ;
|
||||
gRinseCloseVM1 : BOOL ;
|
||||
gRinseCloseVM2 : BOOL ;
|
||||
gRinseDrainRunning : BOOL ;
|
||||
gBlenderTankPress_Ok : BOOL ; (* *)
|
||||
gTankPress_HighLimit : BOOL ; (* *)
|
||||
gTankPress_LowLimit : BOOL ; (* *)
|
||||
gTankPress_OkToBlend : BOOL ; (* *)
|
||||
gWaitLevelToHold_TankPress : BOOL ; (* *)
|
||||
gEqPressSelected : BOOL ;
|
||||
gFinalPressureOk : BOOL ; (* Final Pressure acheaved during First Production *)
|
||||
gEqPressOk : BOOL ; (* Equilibrium pressure acheaved during First Production *)
|
||||
gFirstProdPressHold : BOOL ; (* Pressure control enable during first production *)
|
||||
gDeairVacuumOk : BOOL ; (* Deaireator vacuum pressure acheaved *)
|
||||
gCloseMainCO2Valve : BOOL ;
|
||||
gPV_SyrBrixOk : BOOL ; (* Syrup Brix value not Zero *)
|
||||
gPV_SyrDensOk : BOOL ; (* Syrup Density value not zero *)
|
||||
gBlenderSuppliesOk : BOOL ; (* *)
|
||||
gFreezeSyrupMeter : BOOL ; (* Hold Signal To Syrup Densimeter *)
|
||||
gFreezeProductMeter : BOOL ; (* Hold Signal To Product Meter *)
|
||||
gProdMeterTransferRecipe : BOOL ; (* Signal to the Product Meter Recipe Transfer *)
|
||||
gDisableAlarmDuringCalibration : BOOL ;
|
||||
gMinRatio : BOOL ; (* Maximum Syrup Brix Autocorr Acheaved - minimum ratio - *)
|
||||
gMaxSyrAutoCorrDone : BOOL ; (* Maximum Syrup Brix Autocorr Acheaved maximum autocorr perc *)
|
||||
gLineCO2LowPressure : BOOL ; (* Low pressure infeed CO2 line from CO2 density & temperature Calculation *)
|
||||
gWaterPIDCtrlOk : BOOL ; (* Water PID Controlling Ok *)
|
||||
gSyrupPIDCtrlOk : BOOL ; (* Syrup PID Controlling Ok *)
|
||||
gCarboCO2PIDCtrlOk : BOOL ; (* CO2 PID Controlling Ok *)
|
||||
gSyrLevPIDCtrlOk : BOOL ; (* Syrup Level PID Controlling Ok *)
|
||||
gBlendResetTotalizer : BOOL ;
|
||||
gMaxBlendErrorAfterFault : BOOL ;
|
||||
gMaxCarboErrorAfterFault : BOOL ;
|
||||
|
||||
gProductConductivity : REAL ;
|
||||
gSyrupMFMBrixSlope : REAL ;
|
||||
gH2O_Flow_Meas : REAL ;
|
||||
gSYR_Flow_Meas : REAL ;
|
||||
gSYR_Vol_Flow_Meas : REAL ;
|
||||
gCO2_Flow_Meas : REAL ;
|
||||
gProd_Flow_Meas : REAL ;
|
||||
gCO2Solubility : REAL ;
|
||||
gDeairCO2Vol : REAL ;
|
||||
gFillerCO2Loss : REAL ;
|
||||
gCO2EqPressure : REAL ;
|
||||
gCO2InjPressureCalc : REAL ;
|
||||
gCO2InjPressure : REAL ;
|
||||
gCO2InjPressureSP : REAL ;
|
||||
gCO2PressNotOk : BOOL ;
|
||||
gProductTotalizerLt : Integral ;
|
||||
gProductLiters : REAL ;
|
||||
gProductTemperature : REAL ;
|
||||
gWaterTemperature : REAL ;
|
||||
gBlendErrorInt : Integral ;
|
||||
gCarboCO2ErrorInt : Integral ;
|
||||
gBlendError : REAL ;
|
||||
gCarboCO2Error : REAL;
|
||||
gK_RecBlendError : REAL;
|
||||
gK_RecCarboCO2Error : REAL;
|
||||
gMaxCarboCO2_V : REAL;
|
||||
|
||||
gWaterFlowSlewValve : REAL ;
|
||||
gWaterFlowSlewMFM : REAL ;
|
||||
|
||||
gBlenderProdMode : BOOL ; (* *)
|
||||
gBlenderRinseMode : BOOL ; (* *)
|
||||
gBlenderCIPMode : BOOL ; (* *)
|
||||
|
||||
gWaterVFMResetTot : BOOL ;
|
||||
gSyrupMFMResetTot : BOOL ;
|
||||
gCO2MFMResetTot : BOOL ;
|
||||
gProductMFMResetTot : BOOL ;
|
||||
|
||||
gDeairWaterTemp : REAL ; (* *)
|
||||
gDeairCO2Comp : REAL ; (* *)
|
||||
gDeairFlow_SP : REAL ;
|
||||
gWaterO2 : REAL ;
|
||||
gDeairWaterO2 : REAL := 1.0 ;
|
||||
gSyrupO2 : REAL ;
|
||||
gProductO2 : REAL ;
|
||||
gProductDensity : REAL ;
|
||||
gProdDensFromMeter : REAL ;
|
||||
gTankProdAmount : REAL ;
|
||||
gProductTankLevel : REAL ;
|
||||
gSyrupTankLevel : REAL;
|
||||
gProductTankPress : REAL ;
|
||||
gWaterLinePress : REAL ;
|
||||
gPrdTankPressError : REAL ;
|
||||
|
||||
gH2OValveRiseUpTime : INT ;
|
||||
gSyrValveRiseUpTime : INT ;
|
||||
gCO2ValveRiseUpTime : INT ;
|
||||
|
||||
gFillerProductFlow : REAL ;
|
||||
|
||||
gWaterVFM_DN : UINT ;
|
||||
gWaterPipe_DN : UINT ;
|
||||
gSyrupMFM_DN : UINT ;
|
||||
gCarboCO2MFM_DN : UINT ;
|
||||
gWaterVFMMeasError : REAL ;
|
||||
gWaterVFMRepeatibility : REAL ;
|
||||
gWaterVFMCalcError : REAL ;
|
||||
gSyrupMFMMeasError : REAL ;
|
||||
gSyrupMFMRepeatibility : REAL ;
|
||||
gSyrupMFMZeroStab : REAL ;
|
||||
gSyrupMFMCalcError : REAL ;
|
||||
gCO2MFMMeasError : REAL ;
|
||||
gCO2MFMRepeatibility : REAL ;
|
||||
gCO2MFMZeroStab : REAL ;
|
||||
gCO2MFMCalcError : REAL ;
|
||||
|
||||
gFirstProdExtraBrix : REAL ; (*0.03Start up *)
|
||||
gFirstProdDietExtraSyr : REAL ; (*0.0014Start up *)
|
||||
gFirstProdExtraCO2Fact : REAL ; (*0.97Start up *)
|
||||
|
||||
gUVLamp_ONOFF : BOOL ;
|
||||
gUVLampHighTemperature : BOOL ; (*UVLampTemperatureOk *)
|
||||
|
||||
(******************* MFM Pressure Loss *****************************************)
|
||||
d : REAL ; (* m *)
|
||||
K : REAL ;
|
||||
K1 : REAL ;
|
||||
K2 : REAL ;
|
||||
Re : REAL ;
|
||||
ni : REAL ;
|
||||
ro : REAL ;
|
||||
|
||||
gBlenderBlendMaxError : REAL ;
|
||||
gWaterVFM_Area : REAL ; (* Water Flowmeter section Area - dm2 - *)
|
||||
gWaterVFM_Vel : REAL ; (* Water Velocity in Water FlowMeter - m/s - *)
|
||||
gWaterPipe_Area : REAL ; (* Water Pipe Section Area in in - dm2 - *)
|
||||
gWaterPipe_Vel : REAL ; (* Water Velocity in serpentine - m/s - *)
|
||||
gWaterSpeedToStopError : REAL ; (* Water Speed to stop Blend error and Carbo error *)
|
||||
gProdTankVolume : REAL ; (* Product Tank Total Volume *)
|
||||
gProdTankBottomVol : REAL ; (* Product Tank Bottom Volume Below level Probe *)
|
||||
gDeairTankVolume : REAL ; (* Deaireator Tank Volume *)
|
||||
gBlenderNomSpeed : REAL ; (* Blender Nominal Production Rate - L/min - *)
|
||||
gBlenderProdSlewMax : REAL ; (* Blender Maximum Production SlewRate - (L/min)/sec - *)
|
||||
gBlenderSpeedUp : BOOL ; (* Production rate rampUp *)
|
||||
gBlenderSpeedDown : BOOL ; (* Production rate rampDown *)
|
||||
|
||||
gProductLitTank : REAL ; (* Liters of Product In Porduct Tank *)
|
||||
gProductO2Conc : REAL ;
|
||||
|
||||
gBlenderFillerDeltaV : REAL ; (* Blender Filler Production Rate difference - L/min - *)
|
||||
gSP_ProdTrackFiller : REAL ; (* Set Point Production to track Filler Speed - L/min - *)
|
||||
gEstimateFillerSpeed : REAL ; (* Filler Production Rate - L/min - *)
|
||||
gFlowTronic : REAL ;
|
||||
gFlowTronicFullScale : REAL ;
|
||||
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL
|
||||
gWaterStat_MeanValue : REAL ;
|
||||
gWaterStat_Variance : REAL ;
|
||||
gWaterStat_DevStd : REAL ;
|
||||
gSyrupStat_MeanValue : REAL ;
|
||||
gSyrupStat_Variance : REAL ;
|
||||
gSyrupStat_DevStd : REAL ;
|
||||
gCarboCO2Stat_MeanValue : REAL ;
|
||||
gCarboCO2Stat_Variance : REAL ;
|
||||
gCarboCO2Stat_DevStd : REAL ;
|
||||
gSyrLevStat_MeanValue : REAL ;
|
||||
gSyrLevStat_Variance : REAL ;
|
||||
gSyrLevStat_DevStd : REAL ;
|
||||
|
||||
gProdBxStat_MeanValue : REAL ;
|
||||
gProdBxStat_Variance : REAL ;
|
||||
gProdBxStat_DevStd : REAL ;
|
||||
gProductMeterOk : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL PERSISTENT
|
||||
gBlenderStarted : BOOL ;
|
||||
gWaterRecipe : BOOL ;
|
||||
gSugarBeverage : BOOL ;
|
||||
gCarboStillProduct : BOOL ;
|
||||
gCarboStillRecipe : BOOL ;
|
||||
gSkipDeaireation : BOOL;
|
||||
gCoolerEnabled : BOOL ;
|
||||
gWaterTotal : REAL ; (* Water Totalizer *)
|
||||
gSyrupTotal : REAL ; (* Syrup Totalizer *)
|
||||
gCO2Total : REAL ; (* CO2 Totalizer *)
|
||||
gProductVFMTotal : REAL ; (* From Product VFM Totalizer *)
|
||||
gWaterTempTot : REAL ;
|
||||
gSyrupTempTot : REAL ;
|
||||
gCO2TempTot : REAL ;
|
||||
gProductVFMTempTot : REAL ;
|
||||
gSyrRunOutCountInit : REAL ;
|
||||
gSyrLineTankPrepCountInit : REAL ;
|
||||
|
||||
gSyrupRoomTankLiter : ARRAY[1..15] OF REAL ;
|
||||
|
||||
gProdSec : UINT ;
|
||||
gProdMin : UINT ;
|
||||
gProdHour : UINT ;
|
||||
gBlendingMaintHour : UINT ;
|
||||
gRunningSeconds : UINT ;
|
||||
gRunningMinutes : UINT ;
|
||||
gRunningMaintHour : UINT ;
|
||||
|
||||
gSLIM_Sec : UINT ;
|
||||
gSLIM_Min : UINT ;
|
||||
gSLIM_Hour : UINT ;
|
||||
|
||||
gFillerRinse_CompletedLatch : BOOL ;
|
||||
gFirstProdLatched : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL
|
||||
(**********************************************************************************************************************)
|
||||
(* WORKING RECIPE PARAMETERS *)
|
||||
(**********************************************************************************************************************)
|
||||
gProdTankBrix : REAL ;
|
||||
gFlowProdBrix : REAL ; (* Product Brix Calculated from Flows *)
|
||||
gBrixTrackingCorr : REAL ; (* Delta Correction Due To Brix Tracking in °Brix *)
|
||||
gProdRunSyrFact : REAL ; (* Syrup Factor calculated during production *)
|
||||
gProdRunSyrMFMFact : REAL ; (* Syrup MFM Factor calculated during production *)
|
||||
|
||||
gActualSyrupDens : REAL ; (* Syrup Density value to calculate SYR_SP *)
|
||||
gActualSyrupBrix : REAL ; (* Syrup Brix *)
|
||||
gActualSyrupPerc : REAL ; (* Syrup Actual Percentage *)
|
||||
gActualWaterPerc : REAL ; (* Water Actual Percentage *)
|
||||
gSyrupVolFlow_PV : REAL ;
|
||||
|
||||
gProductRecipeNum : INT ; (* From Product Meter Recipe Number *)
|
||||
gProductBrix : REAL ; (* From Product Meter Product Brix Value *)
|
||||
gProductDens : REAL ; (* From Product Meter Product Density Value *)
|
||||
gProductCO2 : REAL ; (* From Product Meter Product CO2 Vols Value *)
|
||||
gProductTemp : REAL ; (* From Product Meter Product Temperature *)
|
||||
gProductLinePress : LREAL ; (* From Product Meter Product CO2 Press Value *)
|
||||
|
||||
gMeterSyrBrix : REAL ; (* Measured Syrup Brix from Meter *)
|
||||
gMeterSyrDens : REAL ; (* Measured Syrup Density from Meter *)
|
||||
gMeterSyrTemp : REAL ; (* Measured Syrup Temperature from Meter *)
|
||||
|
||||
gSP_H2O : REAL ;
|
||||
gSP_SYR : REAL ;
|
||||
gSP_CO2 : REAL ;
|
||||
gActual_Prod_SP : REAL ; (* Actual Product Target With Slew Limitation *)
|
||||
gActual_SP_CO2 : REAL ;
|
||||
gActual_Prod_Flow : REAL ;
|
||||
gActual_Ratio : REAL ;
|
||||
gActual_RatioM : REAL ;
|
||||
gActual_CO2_Vol : REAL ;
|
||||
END_VAR
|
||||
(* @OBJECT_END := Blender_Variables *)
|
||||
(* @CONNECTIONS := Blender_Variables
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,71 @@
|
|||
(* @PATH := '\/Signals Inteface' *)
|
||||
TYPE BlendFillRecStruct :
|
||||
STRUCT
|
||||
Spare_W0 : INT ;
|
||||
Filler_Speed : DINT ;
|
||||
Spare_W4 : INT ;
|
||||
Spare_W6 : INT ;
|
||||
ProductTemp : INT ;
|
||||
Valve1_Pressure : INT ;
|
||||
RunOutBottleCount : INT ;
|
||||
Spare_W16 : WORD ;
|
||||
Spare_W18 : WORD ;
|
||||
Gen_EV62_Enable : BOOL ;
|
||||
Gen_EV46_Enable : BOOL ;
|
||||
Gen_Spare02 : BOOL ;
|
||||
Gen_Spare03 : BOOL ;
|
||||
Gen_Spare04 : BOOL ;
|
||||
Gen_Spare05 : BOOL ;
|
||||
Gen_Spare06 : BOOL ;
|
||||
Gen_Spare07 : BOOL ;
|
||||
Gen_Spare10 : BOOL ;
|
||||
Gen_Spare11 : BOOL ;
|
||||
Gen_Spare12 : BOOL ;
|
||||
Gen_Spare13 : BOOL ;
|
||||
Gen_Spare14 : BOOL ;
|
||||
Gen_Spare15 : BOOL ;
|
||||
Gen_Spare16 : BOOL ;
|
||||
Gen_ConnAlive : BOOL ;
|
||||
Prod_Selected : BOOL ;
|
||||
Prod_End_Tank_Filling : BOOL ;
|
||||
Prod_Spare02 : BOOL ;
|
||||
Prod_Last_Bottle : BOOL ;
|
||||
Prod_BottleFilling : BOOL ;
|
||||
Prod_EndFlushing : BOOL ;
|
||||
Prod_Spare06 : BOOL ;
|
||||
Prod_Spare07 : BOOL ;
|
||||
CIP_Selected : BOOL ;
|
||||
CIP_Sanitize_Request : BOOL ;
|
||||
CIP_End_Cycle : BOOL ;
|
||||
CIP_Change_Ready : BOOL ;
|
||||
CIP_Drain_Completed : BOOL ;
|
||||
CIP_OpenEV13 : BOOL ;
|
||||
CIP_StopCIPReturnPump : BOOL ;
|
||||
CIP_Spare07 : BOOL ;
|
||||
Rinse_Selected : BOOL ;
|
||||
Rinse_Ended : BOOL ;
|
||||
Rinse_Spare02 : BOOL ;
|
||||
Rinse_Spare03 : BOOL ;
|
||||
Rinse_Spare04 : BOOL ;
|
||||
Rinse_Spare05 : BOOL ;
|
||||
Rinse_Spare06 : BOOL ;
|
||||
Rinse_Spare07 : BOOL ;
|
||||
Drain_Selected : BOOL ;
|
||||
Drain_Spare01 : BOOL ;
|
||||
Drain_Spare02 : BOOL ;
|
||||
Drain_Spare03 : BOOL ;
|
||||
Drain_Spare04 : BOOL ;
|
||||
Drain_Spare05 : BOOL ;
|
||||
Drain_Spare06 : BOOL ;
|
||||
Drain_Spare07 : BOOL ;
|
||||
Spare_W_26 : WORD ;
|
||||
Spare_W_28 : WORD ;
|
||||
Spare_W_30 : WORD ;
|
||||
Spare_W_32 : WORD ;
|
||||
Spare_W_34 : WORD ;
|
||||
Spare_W_36 : WORD ;
|
||||
Spare_W_38 : WORD ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,64 @@
|
|||
(* @PATH := '\/Signals Inteface' *)
|
||||
TYPE BlendFillSendStruct :
|
||||
STRUCT
|
||||
Pressure_SP : INT ; (* Filling Valve Head Pressure SP: 0 - 1000 mBar (x10) *)
|
||||
Pressure_PV : INT ; (* Filling Valve Head Pressure PV: 0 - 1000 mBar (x10) *)
|
||||
Tank_Level : INT ; (* Buffer Tank Level: 0.0 - 100.0 % (x10) *)
|
||||
Spare_W_06 : INT ; (* Filler Actual Flow: 0 - 1050 L/min (x10) *)
|
||||
Pump_Freq : INT ; (* OverPressure Pump P3 Frequency: 0 - 60 Hz (x10) *)
|
||||
Recipe_Number : INT ; (* Filler Recipe Number *)
|
||||
ProdTankPress : INT ; (* Buffer Tank Pressure: 0.0 - 10.0 Bar (x10) *)
|
||||
PressDiffPEW : WORD ;
|
||||
ProdTotalAvailable : INT ;
|
||||
Spare_W_18 : WORD ;
|
||||
Gen_EV62_Status : BOOL ;
|
||||
Gen_EV46_Status : BOOL ;
|
||||
Gen_Spare02 : BOOL ;
|
||||
Gen_EV15_Status : BOOL ;
|
||||
Gen_EV13_Status : BOOL ;
|
||||
Gen_P3_Status : BOOL ;
|
||||
Gen_P6_Status : BOOL ;
|
||||
Gen_Spare07 : BOOL ;
|
||||
Gen_Spare10 : BOOL ;
|
||||
Gen_Spare11 : BOOL ;
|
||||
Gen_Spare12 : BOOL ;
|
||||
Gen_Spare13 : BOOL ;
|
||||
Gen_Spare14 : BOOL ;
|
||||
Gen_Spare15 : BOOL ;
|
||||
Gen_Spare16 : BOOL ;
|
||||
Gen_ConnAlive : BOOL ;
|
||||
Prod_Mode : BOOL ;
|
||||
Prod_PressRunning : BOOL ;
|
||||
Prod_ProdLoad : BOOL ;
|
||||
Prod_ProdSend : BOOL ;
|
||||
Prod_ProdRunOut : BOOL ;
|
||||
Prod_ProdLoad2 : BOOL ;
|
||||
Prod_ProdCompleted : BOOL ;
|
||||
Prod_FastRinseRequest : BOOL ;
|
||||
CIP_Mode : BOOL ;
|
||||
CIP_Running : BOOL ;
|
||||
CIP_Change_Sanitize : BOOL ;
|
||||
CIP_Drain_Request : BOOL ;
|
||||
CIP_Completed : BOOL ;
|
||||
CIP_Caustic_Running : BOOL ;
|
||||
CIP_Spare06 : BOOL ;
|
||||
CIP_Spare07 : BOOL ;
|
||||
Rinse_Mode : BOOL ;
|
||||
Rinse_Running : BOOL ;
|
||||
Rinse_Spare02 : BOOL ;
|
||||
Rinse_Spare03 : BOOL ;
|
||||
Rinse_Spare04 : BOOL ;
|
||||
Rinse_Spare05 : BOOL ;
|
||||
Rinse_Spare06 : BOOL ;
|
||||
Rinse_Spare07 : BOOL ;
|
||||
Spare_W_26 : WORD ;
|
||||
Spare_W_28 : WORD ;
|
||||
Spare_W_30 : WORD ;
|
||||
Spare_W_32 : WORD ;
|
||||
Spare_W_34 : WORD ;
|
||||
Spare_W_36 : WORD ;
|
||||
Spare_W_38 : WORD ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,826 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM BrixTracking
|
||||
VAR
|
||||
mLocalProdLevel : REAL ;
|
||||
mProdQualityGood : BOOL ;
|
||||
mAuxONS : R_TRIG ;
|
||||
mAuxONS1 : R_TRIG ;
|
||||
mLatchONS : BOOL ;
|
||||
mDummy : BOOL ;
|
||||
|
||||
mProdBrixStat : StatisticalAnalisys ;
|
||||
mProdBrixSample : INT := 35 ;
|
||||
mWaitCycleToSample : INT ;
|
||||
mCycleCount : INT ;
|
||||
mTotalCount : INT ;
|
||||
mProdRefresh : REAL ; (* Time in min to refresh all product in product tank *)
|
||||
mProdRefreshS : REAL ; (* Time in sec to refresh all product in product tank *)
|
||||
mAuxProdBrixCorr : REAL ;
|
||||
mAuxProdBrixCorrInit : REAL ;
|
||||
mStart : BOOL ;
|
||||
mTakeSample : BOOL ;
|
||||
mTakeProdSample : BOOL ;
|
||||
mProdInit : REAL ;
|
||||
mAllSamples : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 18
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 5
|
||||
_LD_CONTACT
|
||||
gBlenderProdMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gProductMeterOk
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gSugarBeverage
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gWaterRecipe
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProdBrixTrack_Qualifier
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gH_CMD_PrdBrixTrackingReq
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mAuxONS
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
R_TRIG
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProdBrixTrack_Request
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Qualifier
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProdBrixTrack_Reset
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gProdBxStat_DevStd
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
8E-3
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
LT
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mProdQualityGood
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
mProdQualityGood
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFlowToFiller
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFreezeProductMeter
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderEnToRamp
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProdBrixTrack_Wait
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Request
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Reset
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Done
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProdBrixTrack_Latch
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mAuxONS1
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
R_TRIG
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mLatchONS
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Wait
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProdBrixTrack_Running
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Wait
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_Status009
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_PrdBrixTrackingRun
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gProductTankLevel>50
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gProductTankLevel
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
60
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SEL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mLocalProdLevel
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTION
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mLocalProdLevel
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ProductLiterInTank
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProductLitTank
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
BrixTracking.ProdSamples
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
BrixTracking.SampleTimeCalc
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Latch
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 2
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mAuxProdBrixCorr
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gBrixTrackingCorr
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_Status010
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 3
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
mLatchONS
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gProdBrixTrack_Request
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProdBrixTrack_Done
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
BrixTracking.ProductQualityMonitor
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_PROGRAM
|
||||
ACTION ProdSamples:
|
||||
(* Calculates the product liters during blending. Every 60 Liters of product take a sample for the statistical analisys
|
||||
in order to correct the product brix *)
|
||||
IF gBlenderBlending THEN
|
||||
gProductTotalizerLt.i_NewValue :=gActual_Prod_Flow ;
|
||||
gProductTotalizerLt.i_IntCycle := gTask02CycleTime ;
|
||||
gProductTotalizerLt(Out_Integral:=gProductLiters) ;
|
||||
END_IF
|
||||
IF gBlenderRinseMode OR gBlenderCIPMode THEN
|
||||
gProductLiters := 0.0 ;
|
||||
gProductTotalizerLt(Out_Integral:=gProductLiters) ;
|
||||
END_IF
|
||||
IF (gProductLiters-mProdInit)>60 THEN
|
||||
mTakeProdSample := TRUE ;
|
||||
mProdInit := gProductLiters ;
|
||||
END_IF
|
||||
(*mAuxProdBrixCorr := (gActualRecipe_Beverage_Brix - gProdBxStat_MeanValue) / 2 ;*)
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION ProductQualityMonitor:
|
||||
_LD_BODY
|
||||
_NETWORKS : 3
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
mTakeSample
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gAlwaysOff
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
mTakeProdSample
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
mProdBrixStat
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gProductBrix
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProdBrixSample
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
1
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
StatisticalAnalisys
|
||||
_OUTPUTS : 2
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProdBxStat_Variance
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProdBxStat_DevStd
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProdBxStat_MeanValue
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
mTakeSample
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_NEGATIV
|
||||
_SET
|
||||
mTakeSample
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
mTakeProdSample
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_NEGATIV
|
||||
_SET
|
||||
mTakeProdSample
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION SampleTimeCalc:
|
||||
IF gActual_Prod_SP<>0 THEN
|
||||
mProdRefresh := gProductLitTank / gActual_Prod_SP ;
|
||||
ELSE
|
||||
mProdRefresh := 0 ;
|
||||
END_IF
|
||||
mProdRefreshS := mProdRefresh * 1.6 * 60 ;
|
||||
|
||||
IF gTask02CycleTime<>0 AND mProdBrixSample<>0 THEN
|
||||
mWaitCycleToSample := REAL_TO_INT(mProdRefreshS / mProdBrixSample / gTask02CycleTime) ;
|
||||
END_IF
|
||||
IF mWaitCycleToSample<1 THEN
|
||||
mWaitCycleToSample := 1 ;
|
||||
END_IF
|
||||
IF gProdBrixTrack_Latch AND NOT gFreezeProductMeter THEN
|
||||
IF mCycleCount<=mWaitCycleToSample THEN
|
||||
mCycleCount := mCycleCount + 1 ;
|
||||
ELSE
|
||||
mTakeSample := TRUE ;
|
||||
mCycleCount := 0 ;
|
||||
END_IF
|
||||
ELSE
|
||||
mTakeSample := FALSE ;
|
||||
(* mCycleCount := 0 ;*)
|
||||
END_IF
|
||||
IF mTakeSample THEN
|
||||
mTotalCount := mTotalCount + 1 ;
|
||||
END_IF
|
||||
|
||||
IF mTotalCount>=mProdBrixSample THEN
|
||||
IF gProdBrixTrack_Running THEN
|
||||
IF NOT mStart THEN
|
||||
mStart := TRUE ;
|
||||
mAuxProdBrixCorrInit := gActualRecipe_Beverage_Brix - gProdBxStat_MeanValue ;
|
||||
IF mAuxProdBrixCorr=0 THEN
|
||||
mAuxProdBrixCorr := (gActualRecipe_Beverage_Brix - gProdBxStat_MeanValue) / 3 ;
|
||||
END_IF
|
||||
ELSE
|
||||
mStart := FALSE ;
|
||||
(* IF ABS(gActualRecipe_Beverage_Brix - gProdBxStat_MeanValue)<=mAuxProdBrixCorrInit THEN*)
|
||||
mAuxProdBrixCorr := mAuxProdBrixCorr + (gActualRecipe_Beverage_Brix - gProdBxStat_MeanValue) / 10 ;
|
||||
(* END_IF*)
|
||||
END_IF
|
||||
END_IF
|
||||
mAllSamples := TRUE ;
|
||||
mTotalCount := 0 ;
|
||||
ELSE
|
||||
mAllSamples := FALSE ;
|
||||
END_IF
|
||||
(* Check the limit boundaries to act the product tracking *)
|
||||
IF gProdBrixTrack_Running THEN
|
||||
IF NOT (ABS(mAuxProdBrixCorr)<gBrixTrackingMinCorr OR ABS(mAuxProdBrixCorr)>gBrixTrackingMaxCorr) THEN
|
||||
gBrixTrackingCorr := mAuxProdBrixCorr ;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
END_ACTION
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection\/FillingHead' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION Bytes_To_Dword : DWORD
|
||||
VAR_IN_OUT
|
||||
i_Byte_0 : BYTE ;
|
||||
END_VAR
|
||||
VAR
|
||||
i : INT ;
|
||||
mPtr : POINTER TO BYTE ;
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
mPtr := ADR(i_Byte_0) ;
|
||||
Bytes_To_Dword := BYTE_TO_WORD(i_Byte_0) ;
|
||||
FOR i:=1 TO 3 DO
|
||||
mPtr := mPtr + 1 ;
|
||||
Bytes_To_Dword := SHL(Bytes_To_Dword, 8 ) OR BYTE_TO_WORD(mPtr^) ;
|
||||
END_FOR
|
||||
END_FUNCTION
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection\/FillingHead' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION Bytes_To_Word : WORD
|
||||
VAR_IN_OUT
|
||||
i_Byte_0 : BYTE ;
|
||||
END_VAR
|
||||
VAR
|
||||
i : INT ;
|
||||
mPtr : POINTER TO BYTE ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
mPtr := ADR(i_Byte_0) +1;
|
||||
Bytes_To_Word := BYTE_TO_WORD(i_Byte_0) ;
|
||||
Bytes_To_Word := SHL(Bytes_To_Word, 8 ) OR BYTE_TO_WORD(mPtr^) ;
|
||||
END_FUNCTION
|
|
@ -0,0 +1,27 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION Calc_InjPress : REAL
|
||||
VAR_INPUT
|
||||
i_GasTemperature : REAL;
|
||||
i_GasMW : REAL;
|
||||
i_GasDensity : REAL;
|
||||
END_VAR
|
||||
VAR
|
||||
mMW_Gas : REAL;
|
||||
mTa_Gas : REAL;
|
||||
m_R : REAL;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF i_GasTemperature<gZeroAbsolute THEN
|
||||
mTa_Gas := i_GasTemperature + gZeroAbsolute;
|
||||
ELSE
|
||||
mTa_Gas := i_GasTemperature;
|
||||
END_IF
|
||||
|
||||
m_R := g_R0 / i_GasMW;
|
||||
|
||||
Calc_InjPress := i_GasDensity * 1000 * 1000 * m_R * mTa_Gas;
|
||||
Calc_InjPress := (Calc_InjPress / 100000) - 1.01325;
|
||||
|
||||
END_FUNCTION
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,253 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/CIP' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM CentralCIP_Ctrl
|
||||
VAR
|
||||
mReadCIP_Block : ADSREAD ;
|
||||
mReadCIP_Busy : BOOL ;
|
||||
mReadCIP_Read : BOOL ;
|
||||
mReadCIP_Error : BOOL ;
|
||||
mReadCIP_ErrorCode : UDINT ;
|
||||
mDummy : BOOL ;
|
||||
mCIPCommFault : TON;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 4
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCIPSendData.AliveBit
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_NEGATIV
|
||||
_SET
|
||||
gCIPReceiveData.AliveBit
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SignalsInterchange
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_CIPSignalExchange
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gCIPReceiveData.AliveBit
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mCIPCommFault
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#5s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ton
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCIPCommFault
|
||||
|
||||
END_PROGRAM
|
||||
ACTION SignalsInterchange:
|
||||
_LD_BODY
|
||||
_NETWORKS : 2
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
mReadCIP_Read
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
mReadCIP_Busy
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mReadCIP_Read
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
mReadCIP_Block
|
||||
_BOX_EXPR : 8
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gAutosanAMS_NET_ID
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
821
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
16#00004020
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
16#00001388
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gCIPReceiveData
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SIZEOF
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gCIPReceiveData
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADR
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mReadCIP_Read
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#3s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADSREAD
|
||||
_OUTPUTS : 2
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mReadCIP_Error
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mReadCIP_ErrorCode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mReadCIP_Busy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_ACTION
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection\/FillingHead' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION Cetrifugal_Head : REAL
|
||||
VAR_INPUT
|
||||
i_Diameter : REAL ; (* Carousel Diameter [mm]*)
|
||||
i_NumValve : REAL ; (* Filling Valve Number *)
|
||||
i_Speed : REAL ; (* Speed [BpH] *)
|
||||
END_VAR
|
||||
VAR
|
||||
Omega : REAL ;
|
||||
Radius : REAL ;
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(* Filler Centrifugal Head [mm]*)
|
||||
|
||||
(* Head [m] = 1/2 *( Omega^2 * R^2) / g *)
|
||||
IF i_NumValve<>0 THEN
|
||||
Omega := ( i_Speed / i_NumValve / 3600 ) * 2 * gP_Greek ;
|
||||
END_IF
|
||||
Radius := i_Diameter / 2 / 1000 ;
|
||||
|
||||
(*Cetrifugal_Head := (( 0.5 * Omega*Omega * Radius * Radius ) / 9.8 ) * 100 ;*)
|
||||
Cetrifugal_Head := (( 0.5 * Omega*Omega * Radius * Radius ) / 9.8 ) * 1000 ;
|
||||
END_FUNCTION
|
|
@ -0,0 +1,27 @@
|
|||
(* @PATH := '\/Signals Inteface' *)
|
||||
TYPE CIPReceiveStruct : (* 10 Byte *)
|
||||
STRUCT
|
||||
CIP_Request : BOOL ;
|
||||
CIP_Running : BOOL ;
|
||||
CIP_Completed : BOOL ;
|
||||
CIP_DrainRequest : BOOL ;
|
||||
CIP_ChangeSanitize : BOOL ;
|
||||
CIP_CausticSanitizeRunning : BOOL ;
|
||||
Spare0_6 : BOOL ;
|
||||
Spare0_7 : BOOL ;
|
||||
Spare1_0 : BOOL ;
|
||||
Spare1_1 : BOOL ;
|
||||
Spare1_2 : BOOL ;
|
||||
Spare1_3 : BOOL ;
|
||||
Spare1_4 : BOOL ;
|
||||
Spare1_5 : BOOL ;
|
||||
Spare1_6 : BOOL ;
|
||||
AliveBit : BOOL ;
|
||||
HeatingTemperature : INT ;
|
||||
Spare_Word1 : WORD ;
|
||||
Spare_Word2 : WORD ;
|
||||
Spare_Word3 : WORD ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,27 @@
|
|||
(* @PATH := '\/Signals Inteface' *)
|
||||
TYPE CIPSendStruct: (* 10Byte *)
|
||||
STRUCT
|
||||
Line_Ready : BOOL ;
|
||||
CIP_DrainCompleted : BOOL ;
|
||||
CIP_CycleEnded : BOOL ;
|
||||
CIP_ChangeReady : BOOL ;
|
||||
Spare0_4 : BOOL ;
|
||||
Spare0_5 : BOOL ;
|
||||
Spare0_6 : BOOL ;
|
||||
Spare0_7 : BOOL ;
|
||||
Spare1_0 : BOOL ;
|
||||
Spare1_1 : BOOL ;
|
||||
Spare1_2 : BOOL ;
|
||||
Spare1_3 : BOOL ;
|
||||
Spare1_4 : BOOL ;
|
||||
Spare1_5 : BOOL ;
|
||||
Spare1_6 : BOOL ;
|
||||
AliveBit : BOOL ;
|
||||
Spare_Word0 : WORD ;
|
||||
Spare_Word1 : WORD ;
|
||||
Spare_Word2 : WORD ;
|
||||
Spare_Word3 : WORD ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION CIP_CVQ : REAL
|
||||
VAR_INPUT
|
||||
i_TempIn : REAL ;
|
||||
i_TempOut : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF i_TempOut<= 0.5 THEN
|
||||
CIP_CVQ := 50.0 ;
|
||||
ELSIF i_TempIn-i_TempOut<=1 THEN
|
||||
CIP_CVQ := 100.0 ;
|
||||
ELSIF (i_TempIn-i_TempOut>1) AND (i_TempIn-i_TempOut<=5) THEN
|
||||
CIP_CVQ := (i_TempOut - i_TempIn) * 12.5 + 87.5 ;
|
||||
ELSIF i_TempIn-i_TempOut>5 THEN
|
||||
CIP_CVQ := 50.0 ;
|
||||
END_IF
|
||||
|
||||
END_FUNCTION
|
|
@ -0,0 +1,10 @@
|
|||
(* @PATH := '\/CIP Structure' *)
|
||||
TYPE CIP_Link_Type :
|
||||
STRUCT
|
||||
CIP_LinkName : STRING [20] ;
|
||||
CIP_Simple_Prog : ARRAY [1..30] OF INT ;
|
||||
CIP_Link_Changed : BOOL ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,10 @@
|
|||
(* @PATH := '\/CIP Structure' *)
|
||||
TYPE CIP_List_Element :
|
||||
STRUCT
|
||||
CIP_Prog_Block : CIP_Simple_Type ; (* *)
|
||||
Prev_CIP_List_Elem : POINTER TO CIP_Simple_Type ; (* Pointer to the previous element in the list *)
|
||||
Next_CIP_List_Elem : POINTER TO CIP_Simple_Type ; (* Pointer to the next element in the list *)
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,62 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := CIP_Program_Variables *)
|
||||
(* @PATH := '\/CIP' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
gCIP_Run_Qualifier : BOOL ; (* *)
|
||||
gCIP_Run_Request : BOOL ; (* *)
|
||||
gCIP_Run_Reset : BOOL ; (* *)
|
||||
gCIP_Run_Latch : BOOL ; (* *)
|
||||
gCIP_Run_Wait : BOOL ; (* *)
|
||||
gCIP_Run_Done : BOOL ; (* *)
|
||||
gCIP_Run_Running : BOOL ; (* CIP Running Signal *)
|
||||
|
||||
gCIPMaxStepNum : UINT := 16 ;
|
||||
gCIPMaxSimpleNum : UINT := 32 ;
|
||||
|
||||
gCIP_WaitEventStatus AT %MB10000 : CIP_WaitEvent_Type ; (* memory Used from 10000 to 10032 *)
|
||||
gCIP_WaitEventStatus_Array AT %MB10000 : ARRAY [0..31] OF BOOL ;
|
||||
gCIP_WaitEventReq AT %MB10033 : CIP_WaitEvent_Type ; (* memory Used from 10033 to 10065 *)
|
||||
gCIP_WaitEventReq_Array AT %MB10033 : ARRAY [0..31] OF BOOL ;
|
||||
|
||||
gWaitFillerReadyToCIP : BOOL ;
|
||||
|
||||
gCIPHeaterTemp_PV : REAL ;
|
||||
gCIPReturnTemp_PV : REAL ;
|
||||
|
||||
gCIPOpenEV33_35Valve : BOOL ;
|
||||
gCIP_WaitAnyCond : BOOL ; (* CIP Waiting a Condition *)
|
||||
gCIP_SPHigh_Cond : REAL ; (* High Conductivity Set Point *)
|
||||
gCIP_SPLow_Cond : REAL ; (* Low Conductivity Set Point *)
|
||||
gCIP_SPTemperature : REAL ; (* CIP Temperature Set Point *)
|
||||
|
||||
gCIPBlenderDrainDone : BOOL ;
|
||||
gCIPBlenderDrainRunning : BOOL ;
|
||||
gCIPBlenderEmpty : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL PERSISTENT
|
||||
gCIPTotalElapsedTime : DINT ;
|
||||
gCIPTotalTime : UDINT ;
|
||||
gActualSimpleNum : UINT ;
|
||||
gActualStepNum : UINT ;
|
||||
gStepActualTime : UINT ;
|
||||
gCIP_Run_Prog : ARRAY [1..32] OF CIP_Simple_Type ; (* Running Link Complete Program *)
|
||||
gActualCIP_LinkProgram : ARRAY [1..32] OF CIP_Simple_Type ; (* Running Link Complete Program *)
|
||||
gActual_LinkProgName : STRING[32] ;
|
||||
gActual_ArrSimpleProgName : ARRAY [1..40] OF STRING[32] ;
|
||||
gCIP_ProgramLoaded : BOOL ;
|
||||
|
||||
gCIP_Started : BOOL ;
|
||||
gCIPCausticRecoveryRun : BOOL ;
|
||||
|
||||
gCIP_Simple_Exec : CIP_Simple_Type ; (* Actual Simple Program Running *)
|
||||
gCIP_Inizialized : BOOL ; (* CIP Inizialized Signal *)
|
||||
gCIP_Completed : BOOL ; (* CIP Completed Signal *)
|
||||
END_VAR
|
||||
(* @OBJECT_END := CIP_Program_Variables *)
|
||||
(* @CONNECTIONS := CIP_Program_Variables
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,13 @@
|
|||
(* @PATH := '\/CIP Structure' *)
|
||||
TYPE CIP_Simple_Type:
|
||||
STRUCT
|
||||
CIP_SimpleArray : ARRAY [1..16] OF CIP_Step_Type ;
|
||||
CIP_SetPoint_Temp : REAL ; (* Temperature set Point *)
|
||||
CIP_SetPoint_LowCond : REAL ; (* Low Conductivity set Point *)
|
||||
CIP_SetPoint_HighCond : REAL ; (* High Conductivity set Point *)
|
||||
CIP_SimpleCode : INT ;
|
||||
Dummy : INT ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,16 @@
|
|||
(* @PATH := '\/CIP Structure' *)
|
||||
TYPE CIP_Step_Type :
|
||||
STRUCT
|
||||
CIP_StepTime : UINT ; (* Step Time Length *)
|
||||
(* Dummy : INT ;*)
|
||||
CIP_OutWord_0 : UINT ; (* Output Word 0 to Valves *)
|
||||
CIP_OutWord_1 : UINT ; (* Output Word 1 to Valves *)
|
||||
CIP_OutWord_2 : UINT ; (* Output Word 2 to Valves *)
|
||||
CIP_OutWord_3 : UINT ; (* Output Word 3 to Valves *)
|
||||
|
||||
CIP_ControlWord0 : UINT ; (* Conditions Word 0 *)
|
||||
CIP_ControlWord1 : UINT ; (* Conditions Word 1 *)
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,40 @@
|
|||
(* @PATH := '\/CIP Structure' *)
|
||||
TYPE CIP_WaitEvent_Type :
|
||||
STRUCT
|
||||
Temperature_Ok : BOOL ; (* Local CIP: Wait "Temperature Achieved Condition" *)
|
||||
HighConductivity : BOOL ; (* Local CIP: Wait "High Conductivity Achieved" *)
|
||||
LowConductivity : BOOL ; (* Local CIP: Wait "Low Conductivity Achieved" *)
|
||||
ProdTankMaxLev : BOOL ; (* Local CIP: Wait "Product Tank 100% Level Achieved" *)
|
||||
ReadyForCIP : BOOL ; (* Local CIP: Wait "Ready For CIP" *)
|
||||
DrainCompleted : BOOL ; (* Local CIP: Wait "Drain Completed" *)
|
||||
CIPCycleEnded : BOOL ; (* *)
|
||||
CIPChangeReady : BOOL ; (* From Filler CIP Change Ready *)
|
||||
SpareWord0_Bit_8 : BOOL ; (* *)
|
||||
SpareWord0_Bit_9 : BOOL ; (* *)
|
||||
SpareWord0_Bit_10 : BOOL ; (* *)
|
||||
SpareWord0_Bit_11 : BOOL ; (* *)
|
||||
SpareWord0_Bit_12 : BOOL ; (* *)
|
||||
SpareWord0_Bit_13 : BOOL ; (* *)
|
||||
SpareWord0_Bit_14 : BOOL ; (* *)
|
||||
SpareWord0_Bit_15 : BOOL ; (* *)
|
||||
|
||||
SpareWord1_Bit_0 : BOOL ;
|
||||
SpareWord1_Bit_1 : BOOL ;
|
||||
SpareWord1_Bit_2 : BOOL ;
|
||||
SpareWord1_Bit_3 : BOOL ;
|
||||
SpareWord1_Bit_4 : BOOL ;
|
||||
SpareWord1_Bit_5 : BOOL ;
|
||||
SpareWord1_Bit_6 : BOOL ;
|
||||
SpareWord1_Bit_7 : BOOL ;
|
||||
SpareWord1_Bit_8 : BOOL ;
|
||||
SpareWord1_Bit_9 : BOOL ;
|
||||
SpareWord1_Bit_10 : BOOL ;
|
||||
SpareWord1_Bit_11 : BOOL ;
|
||||
SpareWord1_Bit_12 : BOOL ;
|
||||
SpareWord1_Bit_13 : BOOL ;
|
||||
SpareWord1_Bit_14 : BOOL ;
|
||||
SpareWord1_Bit_15 : BOOL ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,24 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION CleanBoolArray : BOOL
|
||||
VAR_INPUT
|
||||
i_ArrayPtr : DWORD ;
|
||||
i_UpBound : INT ;
|
||||
END_VAR
|
||||
VAR
|
||||
i : INT ;
|
||||
mArrayPointer : POINTER TO BOOL ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF i_UpBound>0 AND i_UpBound<=191 THEN
|
||||
FOR i:=0 TO i_UpBound DO
|
||||
mArrayPointer := i_ArrayPtr + i ;
|
||||
mArrayPointer^ :=FALSE ;
|
||||
END_FOR;
|
||||
CleanBoolArray := TRUE ;
|
||||
ELSE
|
||||
CleanBoolArray := FALSE ;
|
||||
END_IF
|
||||
END_FUNCTION
|
|
@ -0,0 +1,83 @@
|
|||
|
||||
(* @PATH := '\/TASK0_VOID' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM Clock_Signal
|
||||
VAR
|
||||
mSec_100 : INT;
|
||||
mSec_10 : INT;
|
||||
mClock_1s : BOOL ;
|
||||
mONS : R_TRIG ;
|
||||
mTemp : BOOL ;
|
||||
mInc : INT ;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
gCPU_Counts ;
|
||||
gSystem_Time;
|
||||
|
||||
mSec_100 := TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 100;
|
||||
(*Sec_10 := TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/1000000) MOD 10;*)
|
||||
gMinInSeconds := TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/10000000) MOD 60;
|
||||
gTime_sec := UINT_TO_REAL (gMinInSeconds) + INT_TO_REAL (mSec_100) / 100;
|
||||
|
||||
IF mSec_100 < 50 THEN
|
||||
gClock_1s := TRUE ;
|
||||
ELSE
|
||||
gClock_1s := FALSE ;
|
||||
END_IF
|
||||
|
||||
IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 5 < 3 THEN
|
||||
gClock_50ms := TRUE ;
|
||||
ELSE
|
||||
gClock_50ms := FALSE ;
|
||||
END_IF
|
||||
|
||||
gClock_60ms := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 6) ;
|
||||
|
||||
IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 10 < 5 THEN
|
||||
gClock_100ms := TRUE ;
|
||||
ELSE
|
||||
gClock_100ms := FALSE ;
|
||||
END_IF
|
||||
|
||||
gClock_200ms := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/1000000) MOD 2) ;
|
||||
|
||||
IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 50 < 25 THEN
|
||||
gClock_500ms := TRUE ;
|
||||
ELSE
|
||||
gClock_500ms := FALSE ;
|
||||
END_IF
|
||||
|
||||
(*IF TRUNC (UDINT_TO_REAL (gCPU_Counts.cpuCntLoDW) / 1000000) MOD 10 < 5 THEN
|
||||
gClock_1s := TRUE ;
|
||||
ELSE
|
||||
gClock_1s := FALSE ;
|
||||
END_IF
|
||||
*)
|
||||
gClock_2s := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/10000000) MOD 2) ;
|
||||
|
||||
IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/10000000) MOD 10 < 5 THEN
|
||||
gClock_10s := TRUE ;
|
||||
ELSE
|
||||
gClock_10s := FALSE ;
|
||||
END_IF
|
||||
|
||||
gClock_20s := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000000) MOD 2) ;
|
||||
|
||||
IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000000) MOD 6 < 3 THEN
|
||||
gClock_60s := TRUE ;
|
||||
ELSE
|
||||
gClock_60s := FALSE ;
|
||||
END_IF
|
||||
mONS(CLK:=gClock_60s) ;
|
||||
|
||||
IF mONS.Q THEN
|
||||
mInc := mInc + 1 ;
|
||||
IF mInc>3 AND mInc<6 THEN
|
||||
gClock_120s := TRUE ;
|
||||
ELSIF mInc>6 THEN
|
||||
gClock_120s := FALSE ;
|
||||
mInc := 0 ;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
END_PROGRAM
|
|
@ -0,0 +1,29 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := Clock_Variables *)
|
||||
(* @PATH := '' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
gClock_20ms : BOOL;
|
||||
gClock_40ms : BOOL;
|
||||
gClock_50ms : BOOL;
|
||||
gClock_60ms : BOOL;
|
||||
gClock_100ms : BOOL;
|
||||
gClock_200ms : BOOL;
|
||||
gClock_500ms : BOOL;
|
||||
gClock_1s : BOOL;
|
||||
gClock_2s : BOOL;
|
||||
gClock_10s : BOOL;
|
||||
gClock_20s : BOOL;
|
||||
gClock_60s : BOOL;
|
||||
gClock_120s : BOOL;
|
||||
|
||||
gMinInSeconds : UINT ;
|
||||
gTime_sec : REAL;
|
||||
END_VAR
|
||||
|
||||
(* @OBJECT_END := Clock_Variables *)
|
||||
(* @CONNECTIONS := Clock_Variables
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,24 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION CO2EqPress : REAL
|
||||
VAR_INPUT
|
||||
i_CO2Vol : REAL ;
|
||||
i_Temp : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
mAbsTemp : REAL ;
|
||||
mAux : REAL ;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(***************************************************************************************************************************)
|
||||
(* The following Formula is supplied by Coca Cola Company, used in QC Labs *)
|
||||
(***************************************************************************************************************************)
|
||||
|
||||
mAbsTemp := i_Temp + 273.16 ;
|
||||
IF (0.03275 * mAbsTemp - 7.9567)<>0 AND (0.000261 * mAbsTemp + mAux)<>0 THEN
|
||||
mAux :=(0.01898 - 0.0000476 * mAbsTemp) / (0.03275 * mAbsTemp - 7.9567) * mAbsTemp ;
|
||||
CO2EqPress := (i_CO2Vol - mAux) * 1.0332 / (0.000261 * mAbsTemp + mAux) ;
|
||||
END_IF
|
||||
|
||||
END_FUNCTION
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION CO2InjPressure : REAL
|
||||
VAR_INPUT
|
||||
i_Temp : REAL ;
|
||||
i_Dens : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(*CO2InjPressure := 488.5966 * i_Dens - 0.00765 * i_Temp ;*)
|
||||
CO2InjPressure := 5191.739 * i_Dens * i_Dens + 231.0227 * i_Dens + 0.146326 * i_Temp ;
|
||||
|
||||
|
||||
END_FUNCTION
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION CO2_Solubility : REAL
|
||||
VAR_INPUT
|
||||
i_Temp : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
mT_Cub : REAL ;
|
||||
mT_Quad : REAL ;
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(* This function calculates the CO2 absorption for a complete saturation *)
|
||||
mT_Cub := EXPT(i_Temp, 3) ;
|
||||
mT_Quad := EXPT(i_Temp, 2) ;
|
||||
IF gCO2_Density<>0 THEN
|
||||
CO2_Solubility := (-1.41118E-06 * mT_Cub + 0.000202893 * mT_Quad -0.011685848 * i_Temp + 0.331474668) / gCO2_Density * 10 ;
|
||||
END_IF
|
||||
END_FUNCTION
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
(* @PATH := '\/TASK0_VOID' *)
|
||||
(* @SYMFILEFLAGS := '4096' *)
|
||||
FUNCTION ConvertReal : MFM_Real_Struct
|
||||
VAR_INPUT
|
||||
mIn_ValueFromMFM : ARRAY[0..4] OF BYTE;
|
||||
END_VAR
|
||||
VAR
|
||||
i : INT;
|
||||
p : UDINT;
|
||||
mPoint : POINTER TO BYTE;
|
||||
mTemp : REAL;
|
||||
mTempReal : MFM_Real_Struct ;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
mPoint := ADR(mTemp);
|
||||
FOR i := 3 TO 0 BY -1
|
||||
DO
|
||||
mPoint^ := mIn_ValueFromMFM[i] ;
|
||||
p := mPoint ;
|
||||
p := p + 1 ;
|
||||
mPoint := p ;
|
||||
END_FOR
|
||||
|
||||
ConvertReal.Analog_Value := mTemp;
|
||||
ConvertReal.Value_State := mIn_ValueFromMFM[4] ;
|
||||
|
||||
END_FUNCTION
|
|
@ -0,0 +1,24 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
aFUNCTION CVQ_0_6_Perc : REAL
|
||||
VAR_INPUT
|
||||
i_Temp : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
a : REAL ;
|
||||
b : REAL ;
|
||||
c : REAL ;
|
||||
d : REAL ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(* CVQ Valve in 0 - 6 bar range. Min Actuator Temperature 91°C; max Actuator temperature 110°C *)
|
||||
(* 110 - 91 = 19°C *)
|
||||
|
||||
a := 0.000429997 ;
|
||||
b := -0.014260836 ;
|
||||
c := 1.362579549 ;
|
||||
d := 93.71557018 ;
|
||||
CVQ_0_6_Perc := LIMIT(0, ((EXPT(i_Temp,3) * a + EXPT(i_Temp,2) * b + i_Temp * c + d) - 91) / 19 * 100.0, 100) ;
|
||||
END_PROGRAM
|
|
@ -0,0 +1,24 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION CVQ_1p7_8_Perc : REAL
|
||||
VAR_INPUT
|
||||
i_Temp : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
a : REAL ;
|
||||
b : REAL ;
|
||||
c : REAL ;
|
||||
d : REAL ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(* CVQ Valve in 1.7 - 8 bar range. Min Actuator Temperature 83°C; max Actuator temperature 110°C *)
|
||||
(* 110 - 83 = 27°C *)
|
||||
|
||||
a := 0.000176883 ;
|
||||
b := -0.000322 ;
|
||||
c := 1.4005362 ;
|
||||
d := 80.987085 ;
|
||||
CVQ_1p7_8_Perc := LIMIT(0, ((EXPT(i_Temp,3) * a + EXPT(i_Temp,2) * b + i_Temp * c + d) - 83) / 27 * 100.0, 100) ;
|
||||
END_FUNCTION
|
|
@ -0,0 +1,25 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := Data_from_CIP *)
|
||||
(* @PATH := '\/CIP_SYSTEM' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
VAR_GLOBAL
|
||||
|
||||
gPB_IN_PRG_CIP_MODE AT%IX256.0:BOOL;
|
||||
gPB_IN_PRG_CIP_RUNNING AT%IX256.1:BOOL;
|
||||
gPB_IN_PRG_CIP_COMPLETED AT%IX256.2:BOOL;
|
||||
gPB_IN_PRG_CIP_DRAIN AT%IX256.3:BOOL;
|
||||
gPB_IN_PRG_CIP_RINSE AT%IX256.4:BOOL;
|
||||
|
||||
gPB_IN_COM_TST_MASTER AT%IX257.7:BOOL;
|
||||
|
||||
|
||||
gPB_IN_PRG_SYRUP_OK AT%IX260.0:BOOL;
|
||||
gPB_IN_PRG_WATER_OK AT%IX260.1:BOOL;
|
||||
|
||||
END_VAR
|
||||
(* @OBJECT_END := Data_from_CIP *)
|
||||
(* @CONNECTIONS := Data_from_CIP
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,23 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := Data_to_CIP *)
|
||||
(* @PATH := '\/CIP_SYSTEM' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
VAR_GLOBAL
|
||||
|
||||
gPB_OUT_PRG_CIP_REQUEST AT%QX256.0:BOOL;
|
||||
gPB_OUT_PRG_CIP_RINSE_DRAIN_END AT%QX256.1:BOOL;
|
||||
gPB_OUT_PRG_CIP_RINSE_CYCLE_ENDED AT%QX256.2:BOOL;
|
||||
|
||||
gPB_OUT_COM_TST_MASTER AT%QX257.7:BOOL;
|
||||
|
||||
|
||||
gPB_OUT_PRG_SYRUP_REQ AT%QX260.0:BOOL;
|
||||
gPB_OUT_PRG_WATER_REQ AT%QX260.1:BOOL;
|
||||
|
||||
END_VAR
|
||||
(* @OBJECT_END := Data_to_CIP *)
|
||||
(* @CONNECTIONS := Data_to_CIP
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION DeairCO2TempComp : REAL
|
||||
VAR_INPUT
|
||||
i_Temp : REAL ;
|
||||
i_CO2Off : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
DeairCO2TempComp := (15.0 - i_Temp ) * 0.01 + i_CO2Off ;
|
||||
|
||||
END_FUNCTION
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION DeaireationValve : REAL
|
||||
VAR_INPUT
|
||||
in_DeaireationFlow : REAL ;
|
||||
in_InletPressure : REAL ;
|
||||
in_FlowCoefficient : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
mAux : REAL;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(* Regime Sonico P2 < P1/2 *)
|
||||
(* OV = Flow / 14.3 * kv * P1 *)
|
||||
mAux := in_FlowCoefficient * 14.3 * (in_InletPressure + 1.0) ;
|
||||
|
||||
IF mAux <> 0 THEN
|
||||
DeaireationValve := LIMIT(gDeaireationValveOV_Min, in_DeaireationFlow / mAux, 100.0) ; (* La valvola è stata tarata per cominciare ad aprire al 5% *)
|
||||
END_IF
|
||||
END_FUNCTION
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,25 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION_BLOCK Delay
|
||||
VAR_INPUT
|
||||
i_Value : REAL ;
|
||||
i_Sample : UINT ;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
i_out : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
mVarArray : ARRAY[0..5] OF REAL ;
|
||||
i : INT ;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF i_Sample<=5 THEN
|
||||
FOR i:=i_Sample TO 1BY -1 DO
|
||||
mVarArray[i] := mVarArray[i - 1] ;
|
||||
END_FOR
|
||||
mVarArray[0] := i_Value ;
|
||||
END_IF
|
||||
i_out := mVarArray[i_Sample] ;
|
||||
|
||||
END_FUNCTION_BLOCK
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION DeltaP : REAL
|
||||
VAR_INPUT
|
||||
i_Flow : REAL ;
|
||||
i_K : REAL ;
|
||||
i_Valve : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF i_Valve<>0 THEN
|
||||
DeltaP := i_Flow * i_K * i_Flow * i_K / i_Valve / i_Valve ;
|
||||
END_IF
|
||||
END_FUNCTION
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,22 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION_BLOCK Derive
|
||||
VAR_INPUT
|
||||
i_Signal : REAL ;
|
||||
i_Gain : REAL ;
|
||||
i_Cycle : REAL ;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
o_Derive : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
mSaveValue : REAL ;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF i_Cycle<>0 THEN
|
||||
o_Derive := i_Gain * (i_Signal - mSaveValue) / i_Cycle ;
|
||||
END_IF
|
||||
mSaveValue := i_Signal ;
|
||||
|
||||
END_FUNCTION_BLOCK
|
|
@ -0,0 +1,16 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := DeviceNet_Variables *)
|
||||
(* @PATH := '' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
VAR_GLOBAL
|
||||
gDeviceNetBlendFillRecArr AT%IW4100 : ARRAY[0..19]OF WORD;
|
||||
gDeviceNetBlendFillSendArr AT%QW4100 : ARRAY[0..19]OF WORD;
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @OBJECT_END := DeviceNet_Variables *)
|
||||
(* @CONNECTIONS := DeviceNet_Variables
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection\/FillingHead' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM Dword_To_Bytes
|
||||
VAR_INPUT
|
||||
i_Dword : DWORD ;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
o_Bytes_0 : BYTE ;
|
||||
o_Bytes_1 : BYTE ;
|
||||
o_Bytes_2 : BYTE ;
|
||||
o_Bytes_3 : BYTE ;
|
||||
END_VAR
|
||||
VAR
|
||||
mAuxShl : DWORD ;
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
mAuxShl := i_Dword ;
|
||||
o_Bytes_0 := DWORD_TO_BYTE(i_Dword) ;
|
||||
o_Bytes_1 := DWORD_TO_BYTE(SHL(mAuxShl, 8)) ;
|
||||
o_Bytes_2 := DWORD_TO_BYTE(SHL(mAuxShl, 8)) ;
|
||||
o_Bytes_3 := DWORD_TO_BYTE(SHL(mAuxShl, 8)) ;
|
||||
END_PROGRAM
|
|
@ -0,0 +1,558 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/CIP' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM Exec_Simple_CIP
|
||||
VAR_INPUT
|
||||
Start : BOOL ;
|
||||
Hold : BOOL ;
|
||||
StepUp : BOOL ;
|
||||
StepDown : BOOL ;
|
||||
Inizialize : BOOL ;
|
||||
Clock : BOOL ;
|
||||
END_VAR
|
||||
VAR
|
||||
mSteppingUp : BOOL ;
|
||||
mSteppingDown : BOOL ;
|
||||
mStepTimeValue : UINT ;
|
||||
mWordOut0 : ARRAY [0..15] OF BOOL ; (* Temporary Word Out0 To Valves *)
|
||||
mWordOut1 : ARRAY [0..15] OF BOOL ; (* Temporary Word Out1 To Valves *)
|
||||
mWordOut2 : ARRAY [0..15] OF BOOL ; (* Temporary Word Out2 To Valves *)
|
||||
mWordOut3 : ARRAY [0..15] OF BOOL ; (* Temporary Word Out3 To Valves *)
|
||||
mWaitEventReqWordTemp : WORD ; (* *)
|
||||
mWaitEventReqDWord : DWORD ; (* Waiting Conditions Word From Simple Program - Request - *)
|
||||
mWaitEventStatusDWord : DWORD ; (* Waiting Conditions Word From Simple Program *)
|
||||
mWaitAnyCond : BOOL ; (* WOR of the 2 Conditions Word *)
|
||||
mClock_ONS : R_TRIG ;
|
||||
mStepUp_ONS : R_TRIG ;
|
||||
mStepDown_ONS : R_TRIG ;
|
||||
mInizialize_ONS : R_TRIG ;
|
||||
mCycleCount : UINT ;
|
||||
|
||||
mMemCopyResult : UDINT ;
|
||||
mDummy : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
mInizialize_ONS(CLK:=Inizialize) ;
|
||||
mStepUp_ONS(CLK:=StepUp AND NOT gCIP_Completed) ;
|
||||
mStepDown_ONS(CLK:=StepDown AND NOT gCIP_Inizialized) ;
|
||||
mClock_ONS(CLK:=Clock) ;
|
||||
IF gCIP_ProgramLoaded THEN
|
||||
Exec_Simple_CIP.CopyCIPProgram ;
|
||||
END_IF
|
||||
IF mInizialize_ONS.Q THEN
|
||||
Exec_Simple_CIP.CIP_Prog_Inizialize ;
|
||||
ELSE
|
||||
IF gActualSimpleNum = 0 THEN
|
||||
gActualSimpleNum := 1 ;
|
||||
END_IF
|
||||
IF gActualSimpleNum>gCIPMaxSimpleNum THEN
|
||||
gActualSimpleNum := gCIPMaxSimpleNum ;
|
||||
END_IF
|
||||
|
||||
IF gActualStepNum = 0 THEN
|
||||
gActualStepNum := 1 ;
|
||||
END_IF
|
||||
IF mStepUp_ONS.Q THEN
|
||||
Exec_Simple_CIP.CIP_Prog_StepUp ;
|
||||
END_IF
|
||||
IF mStepDown_ONS.Q THEN
|
||||
Exec_Simple_CIP.CIP_Prog_StepDown ;
|
||||
END_IF
|
||||
mStepTimeValue := gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_StepTime ;
|
||||
mCycleCount := 0 ;
|
||||
WHILE mStepTimeValue = 0 AND NOT gCIP_Completed AND NOT gCIP_Inizialized AND gActualStepNum<=gCIPMaxStepNum AND NOT (mCycleCount>gCIPMaxSimpleNum*gCIPMaxStepNum) DO
|
||||
mCycleCount := mCycleCount + 1 ;
|
||||
IF mStepUp_ONS.Q OR (gCIP_Run_Running AND mStepTimeValue = 0) THEN
|
||||
mSteppingUp := TRUE ;
|
||||
END_IF
|
||||
IF mStepDown_ONS.Q THEN
|
||||
mSteppingDown := TRUE ;
|
||||
END_IF
|
||||
IF mSteppingUp THEN
|
||||
Exec_Simple_CIP.CIP_Prog_StepUp ;
|
||||
ELSIF NOT (mSteppingUp OR mSteppingDown) THEN
|
||||
EXIT ;
|
||||
END_IF
|
||||
IF mSteppingDown THEN
|
||||
Exec_Simple_CIP.CIP_Prog_StepDown ;
|
||||
ELSIF NOT (mSteppingUp OR mSteppingDown) THEN
|
||||
EXIT ;
|
||||
END_IF
|
||||
mStepTimeValue := gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_StepTime ;
|
||||
END_WHILE
|
||||
mSteppingUp := FALSE ;
|
||||
mSteppingDown := FALSE ;
|
||||
IF mStepDown_ONS.Q THEN
|
||||
IF gStepActualTime=0 THEN
|
||||
gCIPTotalElapsedTime := gCIPTotalElapsedTime - mStepTimeValue ;
|
||||
ELSE
|
||||
gCIPTotalElapsedTime := gCIPTotalElapsedTime - gStepActualTime ;
|
||||
END_IF
|
||||
gStepActualTime := 0 ;
|
||||
END_IF
|
||||
IF Start THEN
|
||||
Exec_Simple_CIP.Exec_Step ;
|
||||
END_IF
|
||||
END_IF
|
||||
gH_Blender_CIP_LinkName := gActual_LinkProgName ;
|
||||
IF gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleCode>0 THEN
|
||||
gH_Blender_CIP_SimpleName := gActual_ArrSimpleProgName[gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleCode] ;
|
||||
END_IF
|
||||
gH_Blender_CIP_StepTime := LIMIT(0, ABS(mStepTimeValue - gStepActualTime), mStepTimeValue) ;
|
||||
gH_Blender_CIP_TotalTime := LIMIT(0, ABS(gCIPTotalTime - gCIPTotalElapsedTime), gCIPTotalTime) ;
|
||||
gH_Blender_CIP_StepNum := gActualStepNum ;
|
||||
IF gCIPTotalTime>0 THEN
|
||||
gH_Blender_CIP_LinkProgPerc := UDINT_TO_REAL(gCIPTotalElapsedTime) / UDINT_TO_REAL(gCIPTotalTime) * 100 ;
|
||||
END_IF
|
||||
IF mStepTimeValue>0 THEN
|
||||
gH_Blender_CIP_SimpleProgPerc := UINT_TO_REAL(gStepActualTime) / UINT_TO_REAL(mStepTimeValue) * 100 ;
|
||||
END_IF
|
||||
gH_Blender_CIP_PV_HighCond := gIn_C1_Conductivity_Caustic ;
|
||||
gH_Blender_CIP_PV_LowCond := gIn_C2_Conductivity_Water ;
|
||||
gH_Blender_CIPHeaterTempPV := gCIPHeaterTemp_PV ;
|
||||
gH_Blender_CIPReturnTempPV := gCIPReturnTemp_PV ;
|
||||
END_PROGRAM
|
||||
ACTION CIP_Prog_Completed:
|
||||
gCIP_Completed := TRUE ;
|
||||
mWaitAnyCond := FALSE ;
|
||||
|
||||
mWordOut0 := _Word_To_BoolArray(0) ;
|
||||
mWordOut1 := mWordOut0 ;
|
||||
mWordOut2 := mWordOut0 ;
|
||||
mWordOut3 := mWordOut0 ;
|
||||
|
||||
mWaitEventReqDWord := 0 ;
|
||||
mWaitEventStatusDWord := 0 ;
|
||||
END_ACTION
|
||||
|
||||
ACTION CIP_Prog_Inizialize:
|
||||
_LD_BODY
|
||||
_NETWORKS : 1
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 7
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
1
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gActualSimpleNum
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
1
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gActualStepNum
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
FALSE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCIP_Completed
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
FALSE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCIP_WaitAnyCond
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gStepActualTime
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TRUE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCIP_Inizialized
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCIPTotalElapsedTime
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION CIP_Prog_StepDown:
|
||||
IF gActualSimpleNum >= 1 THEN
|
||||
IF gActualStepNum > 1 THEN
|
||||
IF gStepActualTime<=0 THEN
|
||||
gActualStepNum := gActualStepNum - 1 ;
|
||||
END_IF
|
||||
ELSIF gActualSimpleNum>1 THEN
|
||||
gActualSimpleNum := gActualSimpleNum - 1 ;
|
||||
gActualStepNum := gCIPMaxStepNum ;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF gActualSimpleNum=1 AND gActualStepNum=1 THEN
|
||||
gCIP_Inizialized := TRUE ;
|
||||
ELSE
|
||||
gCIP_Inizialized := FALSE ;
|
||||
END_IF
|
||||
|
||||
IF gCIP_Completed THEN
|
||||
gCIP_Completed := FALSE ;
|
||||
END_IF
|
||||
END_ACTION
|
||||
|
||||
ACTION CIP_Prog_StepUp:
|
||||
IF gActualSimpleNum<gCIPMaxSimpleNum THEN
|
||||
IF gActualStepNum<gCIPMaxStepNum THEN
|
||||
gActualStepNum := gActualStepNum + 1 ;
|
||||
ELSIF gActualStepNum = gCIPMaxStepNum THEN
|
||||
gActualSimpleNum := gActualSimpleNum + 1 ;
|
||||
gActualStepNum := 1 ;
|
||||
END_IF
|
||||
ELSIF gActualSimpleNum=gCIPMaxSimpleNum THEN
|
||||
IF gActualStepNum<gCIPMaxStepNum THEN
|
||||
gActualStepNum := gActualStepNum + 1 ;
|
||||
ELSIF gActualStepNum = gCIPMaxStepNum THEN
|
||||
IF mStepTimeValue=0 OR (mStepTimeValue<=gStepActualTime) THEN
|
||||
Exec_Simple_CIP.CIP_Prog_Completed ;
|
||||
END_IF
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF gCIP_Inizialized THEN
|
||||
gCIP_Inizialized := FALSE ;
|
||||
END_IF
|
||||
IF mStepTimeValue>0 AND gH_Blender_CIP_ProgStepUp THEN
|
||||
gCIPTotalElapsedTime := gCIPTotalElapsedTime + LIMIT(0, (mStepTimeValue - gStepActualTime), mStepTimeValue) ;
|
||||
END_IF
|
||||
gStepActualTime := 0 ;
|
||||
END_ACTION
|
||||
|
||||
ACTION CopyCIPProgram:
|
||||
_LD_BODY
|
||||
_NETWORKS : 3
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTION
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gCIP_Run_Prog
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADR
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gActualCIP_LinkProgram
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADR
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gActualCIP_LinkProgram
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SIZEOF
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MEMCPY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mMemCopyResult
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gCIP_ProgramLoaded
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gCIP_Completed
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_NEGATIV
|
||||
_SET
|
||||
gCIP_Completed
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gCIP_ProgramLoaded
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_NEGATIV
|
||||
_SET
|
||||
gCIP_ProgramLoaded
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION Exec_Step:
|
||||
IF mClock_ONS.Q THEN (* One Second Clock *)
|
||||
IF mStepTimeValue>gStepActualTime THEN
|
||||
gCIP_Simple_Exec := gCIP_Run_Prog[gActualSimpleNum] ;
|
||||
|
||||
mWordOut0 := _Word_To_BoolArray(gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_OutWord_0) ;
|
||||
mWordOut1 := _Word_To_BoolArray(gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_OutWord_1) ;
|
||||
mWordOut2 := _Word_To_BoolArray(gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_OutWord_2) ;
|
||||
mWordOut3 := _Word_To_BoolArray(gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_OutWord_3) ;
|
||||
|
||||
mWaitEventReqWordTemp:= gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_ControlWord1 ;
|
||||
mWaitEventReqDWord := mWaitEventReqDWord AND mWaitEventReqWordTemp ;
|
||||
mWaitEventReqDWord := SHL(mWaitEventReqDWord,16) ;
|
||||
mWaitEventReqWordTemp := gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_ControlWord0 ;
|
||||
mWaitEventReqDWord := mWaitEventReqDWord OR mWaitEventReqWordTemp ;
|
||||
|
||||
gCIP_WaitEventReq_Array := _DWord_To_BoolArray(mWaitEventReqDWord) ;
|
||||
mWaitEventStatusDWord := _BoolArray_To_DWord(gCIP_WaitEventStatus_Array) ;
|
||||
|
||||
(* mWaitEventStateWord1 := _BoolArray_To_Word(gCIP_WaitEventState_Array1) ;*)
|
||||
|
||||
IF (mWaitEventReqDWord<>0) AND (mWaitEventReqDWord XOR mWaitEventStatusDWord)<>0 THEN
|
||||
gCIP_WaitAnyCond := TRUE ;
|
||||
ELSE
|
||||
gCIP_WaitAnyCond := FALSE ;
|
||||
END_IF
|
||||
|
||||
gCIP_SPHigh_Cond := gCIP_Run_Prog[gActualSimpleNum].CIP_SetPoint_HighCond ;
|
||||
gCIP_SPLow_Cond := gCIP_Run_Prog[gActualSimpleNum].CIP_SetPoint_LowCond ;
|
||||
gCIP_SPTemperature := gCIP_Run_Prog[gActualSimpleNum].CIP_SetPoint_Temp ;
|
||||
|
||||
IF NOT Hold AND NOT gCIP_Completed THEN
|
||||
gStepActualTime := gStepActualTime + 1 ;
|
||||
gCIPTotalElapsedTime := gCIPTotalElapsedTime + 1 ;
|
||||
END_IF
|
||||
ELSE
|
||||
gStepActualTime := 1 ;
|
||||
CIP_Prog_StepUp ;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
(***********************************************************************************************************)
|
||||
(* Transfer the X in the Simple program i-th Step to the Sp Sustain Memory *)
|
||||
(***********************************************************************************************************)
|
||||
gSp_CIP_Temp_En := mWordOut0[0] ; (* CIP Enable PID Control Temperature *)
|
||||
gSp_EV01 := mWordOut0[1] ; (* EV01 Deair Tank Water Level Control Valve *)
|
||||
gSp_EV02 := mWordOut0[2] ; (* EV02 Deair Tank Water Manual Valve *)
|
||||
gSp_EV03 := mWordOut0[3] ; (* EV03 Syrup Tank Syrup Level Control Valve *)
|
||||
gSp_EV04 := mWordOut0[4] ; (* EV04 Syrup Tank Syrup Manual Valve *)
|
||||
gSp_CIP_CO2_Inj := mWordOut0[5] ; (* Enable CO2 Injection Uring CIP *)
|
||||
gSp_EV14 := mWordOut0[6] ; (* EV14 Deair Tank Drain Valve *)
|
||||
gSp_EV15 := mWordOut0[7] ; (* EV15 Product Tank Drain Valve *)
|
||||
gSp_EV16 := mWordOut0[8] ; (* EV16 Syrup Tank Drain Valve *)
|
||||
(*gSp_EV17 := NOT mWordOut0[9] ; (* EV17 Deair + Product Tank SprayBall Valve *)
|
||||
(*gSp_EV61 := NOT mWordOut0[10] ; (* EV61 Syrup Tank SprayBall Valve *)
|
||||
gSp_EV23 := mWordOut0[11] ; (* EV23 Serpentine Drain Valve *)
|
||||
gSp_EV24 := NOT mWordOut0[12] ; (* EV24 Syrup Tank Recirc Valve *)
|
||||
gSp_EV31 := mWordOut0[13] ; (* EV31 Venturi Suction Valve *)
|
||||
gSp_EV32 := mWordOut0[14] ; (* EV32 Venturi Washing Valve *)
|
||||
gSp_EV33 := mWordOut0[15] ; (* EV33 Sanitizier Inlet Valve 1 - Caustic - *)
|
||||
gSp_EV34 := mWordOut1[0] ; (* EV34 Sanitizier Inlet Valve 2 *)
|
||||
|
||||
gSp_EV35 := mWordOut1[1] ; (* EV35 Sanitizier Inlet Valve 3 *)
|
||||
gSp_EV36 := mWordOut1[2] ; (* EV36 Plant Recirc Valve *)
|
||||
gSp_EV37 := mWordOut1[3] ; (* EV37 Plant Drain Valve *)
|
||||
gSp_EV38 := mWordOut1[4] ; (* EV38 Plant Caustic Recovery Valve *)
|
||||
gSp_CIPRunning := mWordOut1[5] ;
|
||||
gSp_CIPDrainRequest := mWordOut1[6] ;
|
||||
gSp_CIPHotPhase := mWordOut1[7] ;
|
||||
mWordOut1[8] ;
|
||||
mWordOut1[9] ;
|
||||
gSp_P1 := mWordOut1[10] ; (* P1 Water Pump Run In CIP to get Prod Tank 100% level *)
|
||||
gSp_SyrRoomPump := mWordOut1[11] ; (* Syrup Room Pump Run In CIP *)
|
||||
mWordOut1[12] ;
|
||||
mWordOut1[13] ;
|
||||
mWordOut1[14] ;
|
||||
mWordOut1[15] ;
|
||||
mWordOut2[0] ;
|
||||
|
||||
mWordOut2[1] ;
|
||||
mWordOut2[2] ;
|
||||
mWordOut2[3] ;
|
||||
mWordOut2[4] ;
|
||||
mWordOut2[5] ;
|
||||
mWordOut2[6] ;
|
||||
mWordOut2[7] ;
|
||||
mWordOut2[8] ;
|
||||
mWordOut2[9] ;
|
||||
mWordOut2[10] ;
|
||||
mWordOut2[11] ;
|
||||
mWordOut2[12] ;
|
||||
mWordOut2[13] ;
|
||||
mWordOut2[14] ;
|
||||
mWordOut2[15] ;
|
||||
mWordOut3[0] ;
|
||||
|
||||
mWordOut3[1] ;
|
||||
mWordOut3[2] ;
|
||||
mWordOut3[3] ;
|
||||
mWordOut3[4] ;
|
||||
mWordOut3[5] ;
|
||||
mWordOut3[6] ;
|
||||
mWordOut3[7] ;
|
||||
mWordOut3[8] ;
|
||||
mWordOut3[9] ;
|
||||
mWordOut3[10] ;
|
||||
mWordOut3[11] ;
|
||||
mWordOut3[12] ;
|
||||
mWordOut3[13] ;
|
||||
mWordOut3[14] ;
|
||||
mWordOut3[15] ;
|
||||
|
||||
END_ACTION
|
||||
|
|
@ -0,0 +1,773 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure\/System Run Out' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM FastRinse
|
||||
VAR
|
||||
mFastRinseTP : TP ;
|
||||
mAuxONS : R_TRIG ;
|
||||
mStepNum : INT ;
|
||||
mFastRinseMove : _StepMove ;
|
||||
mAuxStep : INT ;
|
||||
mTimer : TIME ;
|
||||
mProcSelected : BOOL ;
|
||||
|
||||
mDummy : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 11
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gProdPipeRunOut_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gSyrRunOut_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFastRinse_Qualifier
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 5
|
||||
_LD_CONTACT
|
||||
gProdPipeRunOut_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderAlarm
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mFastRinseTP
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#1s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TP
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_LD_CONTACT
|
||||
gFastRinse_Done
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFastRinse_Qualifier
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFastRinse_Request
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 4
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastRinse_Qualifier
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gProdPipeRunOut_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mAuxONS
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
R_TRIG
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gEmergencyPressed
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_FastChangeOverEnabled
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gSystemRunOut_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gSystemRunOutInit
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gSystemRunOut_Reset
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFastRinse_Reset
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Running
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderRun_Running
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_SystemRunOutEnabled
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFastRinse_Wait
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gFastRinse_Reset
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
FastRinse._FastRinseReset
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_FastChangeSequenceNum
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
9
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
EQ
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFastRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mProcSelected
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 2
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProcSelected
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_FastChangeProcValue
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFastRinseStep0Time
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mTimer
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SUB
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TIME_TO_REAL
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
1000
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
DIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SEL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_FastChangeProcValue
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProcSelected
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_FastChangeWait1
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TRUE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SEL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_FastChangeWait1
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastRinse_Request
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFastRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFastRinse_Reset
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFastRinse_Done
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFastRinse_Latch
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFastRinse_Wait
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFastRinse_Running
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gFastRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
FastRinse._FastRinseSequencer
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gFastRinse_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_FastRinseDone
|
||||
|
||||
END_PROGRAM
|
||||
ACTION _FastRinseReset:
|
||||
_LD_BODY
|
||||
_NETWORKS : 1
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 2
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mAuxStep
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mStepNum
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_NEGATIV
|
||||
_SET
|
||||
gFastRinse_Done
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION _FastRinseSequencer:
|
||||
CASE mStepNum OF
|
||||
0: FastRinse_Step_0 ;
|
||||
|
||||
1: FastRinse_Step_1 ;
|
||||
|
||||
2: FastRinse_Step_2 ;
|
||||
|
||||
ELSE
|
||||
;
|
||||
END_CASE
|
||||
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION FastRinse_Step_0:
|
||||
_LD_BODY
|
||||
_NETWORKS : 2
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_SET
|
||||
gSp_EV15
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
mFastRinseMove
|
||||
_BOX_EXPR : 6
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mStepNum
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
1
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFastRinseStep0Time
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TRUE
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TRUE
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFastRinse_Wait
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_StepMove
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mTimer
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mStepNum
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION FastRinse_Step_1:
|
||||
_LD_BODY
|
||||
_NETWORKS : 2
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_SET
|
||||
gRinseCloseVM1
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
mFastRinseMove
|
||||
_BOX_EXPR : 6
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mStepNum
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#3s
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TRUE
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TRUE
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFastRinse_Wait
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_StepMove
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mTimer
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mStepNum
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION FastRinse_Step_2:
|
||||
_LD_BODY
|
||||
_NETWORKS : 1
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 2
|
||||
_OUTPUT
|
||||
_NEGATIV
|
||||
_SET
|
||||
gRinseCloseVM1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_SET
|
||||
gFastRinse_Done
|
||||
|
||||
END_ACTION
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '4096' *)
|
||||
FUNCTION_BLOCK FB41_PIDController
|
||||
VAR_INPUT
|
||||
in_SP : REAL; (* SP *)
|
||||
in_PV : REAL; (* PV *)
|
||||
MAN : REAL;
|
||||
GAIN : REAL;
|
||||
TI : REAL;
|
||||
TD : REAL;
|
||||
DEADB_W : REAL ;
|
||||
LMN_HLM : REAL;
|
||||
LMN_LLM : REAL;
|
||||
LMN_FAC : REAL;
|
||||
LMN_OFF : REAL;
|
||||
CYCLE : REAL ;
|
||||
I_ITLVAL : REAL;
|
||||
DISV : REAL;
|
||||
MAN_ON : BOOL;
|
||||
I_SEL : BOOL;
|
||||
P_SEL : BOOL;
|
||||
D_SEL : BOOL;
|
||||
INT_HOLD : BOOL;
|
||||
I_ITL_ON : BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
LMN : REAL;
|
||||
LMN_P : REAL;
|
||||
LMN_I : REAL;
|
||||
LMN_D : REAL;
|
||||
High_Limit : BOOL;
|
||||
Low_Limit : BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
mIntegral : Integral ; (* FB Integral Instance *)
|
||||
mIntegralOut : REAL; (* Integral Value *)
|
||||
mOld_error : REAL ;
|
||||
Error : REAL ;
|
||||
mProportional : REAL ;
|
||||
mDerivative : REAL ;
|
||||
Gain_error : REAL; (*Error Value * Gain*)
|
||||
Total_result : REAL; (*Total result of PID Block*)
|
||||
INT_Block : BOOL;
|
||||
LMN_alarm : BOOL ; (*Limit output alarm *)
|
||||
mAuxONS : R_TRIG ;
|
||||
mManEn : BOOL ;
|
||||
mManONS : F_TRIG ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(* SP - PV *)
|
||||
Error := in_SP - in_PV ;
|
||||
|
||||
(* Multiply GAIN *)
|
||||
IF ABS(Error) >= DEADB_W THEN (* Dead Band Implementation *)
|
||||
Gain_error := Error * GAIN ;
|
||||
ELSE
|
||||
Gain_error := 0.0 ;
|
||||
END_IF
|
||||
|
||||
(* Freeze Integral Calculation *)
|
||||
INT_Block := INT_HOLD OR MAN_ON OR LMN_alarm ;
|
||||
|
||||
(* Integral calculation *)
|
||||
IF I_SEL AND TI>0 THEN
|
||||
IF I_ITL_ON THEN
|
||||
mIntegralOut := I_ITLVAL;
|
||||
ELSE
|
||||
IF NOT INT_Block THEN
|
||||
IF (( Gain_error>=0 ) AND NOT High_Limit) OR (( Gain_error<=0 ) AND NOT Low_Limit) THEN
|
||||
(*mIntegral := mIntegral + Gain_error * CYCLE / TI;*)
|
||||
mIntegral.i_NewValue := Gain_error / TI ;
|
||||
mIntegral.i_IntCycle := CYCLE ;
|
||||
mIntegral(Out_Integral:=mIntegralOut) ;
|
||||
END_IF
|
||||
END_IF
|
||||
END_IF
|
||||
ELSE
|
||||
mIntegralOut := 0.0 ;
|
||||
END_IF
|
||||
LMN_I := mIntegralOut ;
|
||||
|
||||
(* Derivative calculation *)
|
||||
IF ( D_SEL AND TD >0 ) THEN
|
||||
mDerivative := ( Gain_error - mOld_error ) * TD / 10 ;
|
||||
ELSE
|
||||
mDerivative := 0.0 ;
|
||||
END_IF
|
||||
mOld_error := Gain_error ;
|
||||
LMN_D := mDerivative ;
|
||||
|
||||
(* Proportional contribute *)
|
||||
IF P_SEL THEN
|
||||
mProportional := Gain_error ;
|
||||
ELSE
|
||||
mProportional := 0 ;
|
||||
END_IF
|
||||
LMN_P := mProportional ;
|
||||
|
||||
(* Total result P + I + D + DISV *)
|
||||
Total_result := mProportional + mIntegralOut + mDerivative + DISV ;
|
||||
|
||||
mManONS(CLK:=MAN_ON) ;
|
||||
|
||||
(* Manual control *)
|
||||
IF MAN_ON THEN
|
||||
Total_result := MAN ;
|
||||
IF NOT I_ITL_ON AND mManONS.Q THEN
|
||||
mIntegralOut := LMN - LMN_P - DISV ; (* - Bumpless - Inizilize the Integral Component when the PID is setted in auto again *)
|
||||
mIntegral(Out_Integral:=mIntegralOut) ;
|
||||
mDerivative := 0.0 ;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
(* High Low limit for total result *)
|
||||
High_Limit := FALSE ;
|
||||
Low_Limit := FALSE ;
|
||||
|
||||
IF Total_result > LMN_HLM THEN
|
||||
High_Limit := TRUE ;
|
||||
Total_result := LMN_HLM;
|
||||
END_IF
|
||||
|
||||
IF Total_result < LMN_LLM THEN
|
||||
Low_Limit := TRUE ;
|
||||
Total_result := LMN_LLM;
|
||||
END_IF
|
||||
|
||||
LMN := ( Total_result * LMN_FAC ) + LMN_OFF;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
END_FUNCTION_BLOCK
|
|
@ -0,0 +1,27 @@
|
|||
(* @PATH := '\/Danfoss FC' *)
|
||||
TYPE FC_Control_Word
|
||||
STRUCT
|
||||
B00_RefValue_LSB : BOOL ; (* Choose between the four reference values, which are pre-programmed in par.3-10 *)
|
||||
B01_RefValue_MSB : BOOL ;
|
||||
B02_Brake : BOOL ; (* Bit 02 = 0 leads to DC braking and stop.
|
||||
Bit 02 = 1 leads to ramping. *)
|
||||
B03_Coast : BOOL ; (* Bit 03 = 0 causes the frequency converter to immediately "let go" of the motor, so that it coasts to a standstill.
|
||||
Bit 03 = 1 enables the frequency converter to start the motor if the other starting conditions have been fulfilled. *)
|
||||
B04_QuickStop : BOOL ; (* Bit 04 = 0 causes a stop, in which the motor speed is ramped down to stop via par. 3-81. *)
|
||||
B05_HoldOutputFrequency : BOOL ; (* Bit 05 = 0 causes the present output frequency (in Hz) to freeze. *)
|
||||
B06_RampStop : BOOL ; (* Bit 06 = 0 causes a stop, in which the motor speed is ramped down to stop via the selected ramp down parameter.
|
||||
Bit 06 = 1 permits the frequency converter to start the motor, if the other starting conditions have been fulfilled. *)
|
||||
B07_Reset : BOOL ; (* Reset of a trip is activated on the signal’s leading edge, i.e. when changing from logic "0" to logic "1". *)
|
||||
B08_Jog : BOOL ; (* Bit 08 = 1 causes the output frequency to be determined by par. 3-19. *)
|
||||
B09_RampSelection : BOOL ; (* Bit 09 = 0 means that ramp 1 is active (parameters 3-40 to 3-47).
|
||||
Bit 09 = 1 means that ramp 2 (par. 3-50 to 3-57) is active.*)
|
||||
B10_DataValid : BOOL ; (* Bit 10 = 0 causes the control word to be ignored,
|
||||
Bit 10 = 1 causes the control word to be used. *)
|
||||
B11_Relay01Active : BOOL ; (* Bit 11 = 1 Relay 01 activated, provided Control word bit 11 has been chosen in par. 5-40.*)
|
||||
B12_Relay04Active : BOOL ; (* Bit 12 = 1 Relay 04 activated, provided Control word bit 12 has been chosen in par. 5-40.*)
|
||||
B13_SetUp_LSB : BOOL ; (* Choose between the four menu set-ups, only possible when Multi-Set-ups is selected in par. 0-10. *)
|
||||
B14_SetUp_MSB : BOOL ;
|
||||
B15_Reverse : BOOL ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,26 @@
|
|||
(* @PATH := '\/Danfoss FC' *)
|
||||
TYPE FC_Status_Word :
|
||||
STRUCT
|
||||
B00_ControlReady : BOOL ; (* Bit 00 =0 The frequency converter as tripped *)
|
||||
B01_DriveReady : BOOL ; (* Bit 01 =1 The frequency converter is ready for operation, but there is an active coasting command via the digital inputs or via serial communication *)
|
||||
B02_Coasting : BOOL ; (* Bit 02 =1 The frequency converter can start the motor when a start command is given *)
|
||||
B03_Trip : BOOL ; (* Bit 03 =1 The frequency converter is tripped and that a reset signal is required to re-establish operation *)
|
||||
B04_Error : BOOL ; (* Bit 04 = 1 there is a frequency converter error but no trip *)
|
||||
B05_Reserved : BOOL ; (* *)
|
||||
B06_Triplock : BOOL ; (* Bit 06 = 1 The frequency converter is tripped, and locked *)
|
||||
B07_Warning : BOOL ; (* Bit 07 = 1 a warning has occurred *)
|
||||
B08_Speed_OK : BOOL ; (* Bit 08 = 0 The motor is running, but that the present speed is different from the preset speed reference.
|
||||
It might, for example, be the case while the speed is being ramped up/down during start/stop *)
|
||||
B09_BusControl : BOOL ; (* Bit 09 = 1 means that it is possible to control the frequency converter via the fieldbus/ serial communication *)
|
||||
B10_FrequencyLimit_OK : BOOL ; (* Bit 10 = 0 if the output frequency has reached the value in par. 4-11 Motor speed low limit or par.4-13 Motor speed high limit
|
||||
Bit 10 = 1 means that the output frequency is within the defined limits *)
|
||||
B11_InOperation : BOOL ; (* Bit 11 = 1 The frequency converter has a start signal or that the output frequency is greater than 0 Hz *)
|
||||
B12_Drive_OK : BOOL ; (* Bit 12 = 1 The inverter has stopped because of over temperature, but that the unit has not tripped and will resume operation once the over temperature stops *)
|
||||
B13_Voltage_OK : BOOL ; (* Bit 13 = 1 The DC voltage in the frequency converter’s intermediate circuit is too low or too high *)
|
||||
B14_Torque_OK : BOOL ; (* Bit 14 = 0 The motor current is lower than the torque limit selected in par. 4-16 Torque limit motor mode or par. 4-17 Torque limit generator mode.
|
||||
Bit 14 = 1 The torque limit in par. 4-16 and 4-17 has been exceeded *)
|
||||
B15_Timer_OK : BOOL ; (* Bit 15 = 0 The timers for motor thermal protection and VLT thermal protection, respectively, have not exceeded 100%.
|
||||
Bit 15 = 1 One of the timers has exceeded 100% *)
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION FeedForward : REAL (* If Function returns -1 means Error *)
|
||||
VAR_INPUT
|
||||
i_Flow : REAL ; (* Liquid Flow in l/min *)
|
||||
i_KFF : REAL ; (* Adjusting parameter *)
|
||||
i_Delta_P : REAL ; (* Delta Pressure: Friction Losses Across the Valve *)
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF i_Delta_P >0 THEN
|
||||
FeedForward := LIMIT(0, i_Flow * i_KFF / SQRT(i_Delta_P), 100) ;
|
||||
ELSE
|
||||
FeedForward := -1 ;
|
||||
END_IF
|
||||
|
||||
END_FUNCTION
|
|
@ -0,0 +1,56 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := FillerHead *)
|
||||
(* @PATH := '\/Filler_Head_PID_Data' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
gHead_PID_Cycle : REAL ;
|
||||
gFillingValveHead_PV : REAL ; (* Filling Valve Head Set Point [mmH2O] *)
|
||||
gSensor_Head_PV : REAL ; (* Differential Pressure Process Value [mmH2O] *)
|
||||
gProd_Tank_Height : REAL ; (* Product Tank Liquid Height from Soil [mm] *)
|
||||
gDiffSensor_Height : REAL ; (* Sensor Height from Soil [mm] *)
|
||||
gPID_Head_Max_Value : REAL ; (* Max Head [mm] *)
|
||||
gHead_PID_Max_Freq : REAL ; (* Max Filling Head PID Max Freq [Hz] *)
|
||||
gHead_PID_Manual_Value : REAL ;
|
||||
gFillerCentrifugalHead : REAL ; (* Centrifugal Head [mm] *)
|
||||
gTotalPressLoss : REAL ; (* P3 Pump + Pipe + Filler Collector + Filling Pipes Pressure Loss [mm] *)
|
||||
gHeadDinamicComp : REAL ;
|
||||
gStartFillingExtraHead : REAL ; (* Head Pressure variation due to start filling *)
|
||||
gStopFillingExtraHead : REAL ; (* Head Pressure variation due to stop filling *)
|
||||
gFiller_Speed : REAL ; (* Filler Speed [Bott/h] *)
|
||||
gFiller_Temperature : REAL ; (* Filler Temperature [°C] *)
|
||||
gProd_Flow : REAL ; (* Product Flow in l/min*)
|
||||
gProd_FlowEstimated : REAL ; (* Estimated Product Flow in l/min*)
|
||||
gProd_FlowEstimatedSlw : REAL ; (* Estimated Product Flow in l/min*)
|
||||
gFillingTime : REAL ;
|
||||
|
||||
g_MAN_Head : BOOL ; (* 1 = Manual 0 = Automatic *)
|
||||
g_Head_PID_Enable : BOOL ; (* 1 = Enable Filling Valve Head PID *)
|
||||
g_Head_CIP_Rinse : BOOL ; (* 1 = CIP or Rinse *)
|
||||
g_Head_Drain : BOOL ; (* 1 = Drain *)
|
||||
|
||||
gOut_Freq_Head_PID : REAL ; (* uscita PID in frequenza ( 0 .. 100 Hz ) *)
|
||||
g_Max_Head : BOOL ; (* 1 = massimo Battente superatoo *)
|
||||
g_Min_Head : BOOL ; (* 1= Battente sotto il minimo *)
|
||||
g_Head_OK : BOOL ; (* 1= Battente serbatoio OK *)
|
||||
|
||||
gP3_Frequency : REAL ;
|
||||
|
||||
gHeadFillStat_MeanValue : REAL ;
|
||||
gHeadFillStat_Variance : REAL ;
|
||||
gHeadFilStat_DevStd : REAL ;
|
||||
gHeadPIDCtrlOk : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL CONSTANT
|
||||
gEstimatedFlowEnable : BOOL := TRUE ;
|
||||
gProd_HeadPIDMax_Freq : REAL := 50.0 ; (* Head Filling PID Max Frequency during regulation in production *)
|
||||
gMax_P3_Freq : REAL := 60.0 ; (* Head Filling PID Max Frequency in Manual *)
|
||||
gMin_Head_Value : REAL := 0.0 ; (* Min Head [mm] *)
|
||||
gDiffSensor_MaxValue : REAL := 5000.0 ;
|
||||
END_VAR
|
||||
(* @OBJECT_END := FillerHead *)
|
||||
(* @CONNECTIONS := FillerHead
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,30 @@
|
|||
(* @PATH := '\/Signals Inteface' *)
|
||||
TYPE FillerReceiveStruct :
|
||||
STRUCT
|
||||
CIP_Request : BOOL ;
|
||||
CIP_DrainCompleted : BOOL ;
|
||||
ProductionRequest : BOOL ;
|
||||
ProductRequest : BOOL ;
|
||||
LastContainerFilled : BOOL ;
|
||||
CIP_CycleEnded : BOOL ;
|
||||
CIP_ChangeReady : BOOL ;
|
||||
FastRinseReady : BOOL ;
|
||||
OpenProductDrainPipe : BOOL ;
|
||||
FastRinseWaterRequest : BOOL ;
|
||||
SpareBit1_2 : BOOL ;
|
||||
SpareBit1_3 : BOOL ;
|
||||
SpareBit1_4 : BOOL ;
|
||||
SpareBit1_5 : BOOL ;
|
||||
SpareBit1_6 : BOOL ;
|
||||
Rinse_Ended : BOOL ;
|
||||
SpareByte2 : BYTE ;
|
||||
SpareByte3 : BYTE ;
|
||||
SpareByte4 : BYTE ;
|
||||
SpareByte5 : BYTE ;
|
||||
SpareByte6 : BYTE ;
|
||||
SpareByte7 : BYTE ;
|
||||
SpareByte8 : BYTE ;
|
||||
SpareByte9 : BYTE ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,684 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure\/System Run Out' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM FillerRinse
|
||||
VAR
|
||||
mFillerRinseTP : TP ;
|
||||
mAuxONS : R_TRIG ;
|
||||
mStepNum : INT ;
|
||||
mFillerRinseMove : _StepMove ;
|
||||
mAuxStep : INT ;
|
||||
mTimer : TIME ;
|
||||
mProcSelected : BOOL ;
|
||||
|
||||
mDummy : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 12
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gProdPipeRunOut_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFillerRinse_Qualifier
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 5
|
||||
_LD_CONTACT
|
||||
gProdPipeRunOut_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderAlarm
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mFillerRinseTP
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#1s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TP
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Done
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Qualifier
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFillerRinse_Request
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 4
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Qualifier
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gProdPipeRunOut_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mAuxONS
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
R_TRIG
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gEmergencyPressed
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_FastChangeOverEnabled
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gSystemRunOut_Reset
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gSystemRunOutInit
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gSystemRunOut_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFillerRinse_Reset
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gIn_Flr_WaterRinseRequest
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFromFillerFastRinseCompleted
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFillerRinse_Wait
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Reset
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
FillerRinse._FillerRinseReset
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_FastChangeSequenceNum
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
14
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
EQ
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFillerRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mProcSelected
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 2
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProcSelected
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_FastChangeProcValue
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFillerRinseStep0Time
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mTimer
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SUB
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TIME_TO_REAL
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
1000
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
DIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SEL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_FastChangeProcValue
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProcSelected
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_FastChangeWait1
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gIn_Flr_FastRinseCompleted
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SEL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_FastChangeWait1
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Request
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Reset
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Done
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFillerRinse_Latch
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Wait
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFillerRinse_Running
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 2
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_FillerRinseRun
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_Status048
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
FillerRinse._FillerRinseSequencer
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_FillerRinseDone
|
||||
|
||||
END_PROGRAM
|
||||
ACTION _FillerRinseReset:
|
||||
_LD_BODY
|
||||
_NETWORKS : 1
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 2
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mAuxStep
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mStepNum
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_NEGATIV
|
||||
_SET
|
||||
gFillerRinse_Done
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION _FillerRinseSequencer:
|
||||
CASE mStepNum OF
|
||||
0: FillerRinse_Step_0 ;
|
||||
|
||||
1: FillerRinse_Step_1 ;
|
||||
|
||||
ELSE
|
||||
;
|
||||
END_CASE
|
||||
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION FillerRinse_Step_0:
|
||||
_LD_BODY
|
||||
_NETWORKS : 1
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
mFillerRinseMove
|
||||
_BOX_EXPR : 6
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mStepNum
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
1
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFillerRinseStep0Time
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFromFillerFastRinseCompleted
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TRUE
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFillerRinse_Wait
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_StepMove
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mTimer
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mStepNum
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION FillerRinse_Step_1:
|
||||
_LD_BODY
|
||||
_NETWORKS : 1
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_SET
|
||||
gFillerRinse_Done
|
||||
|
||||
END_ACTION
|
||||
|
|
@ -0,0 +1,713 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM FillerRinseTank_Ctrl
|
||||
VAR
|
||||
mFillerTankRinseLoadedSR : SR ;
|
||||
mDrainFillerRinseTankTime : TOF ;
|
||||
mEmptyFillerRinseTankTON : TON ;
|
||||
mWaitToRunPumpTON : TON ;
|
||||
mWaitToRunPump : BOOL ;
|
||||
|
||||
mDummy : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 12
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gIn_FillerRinseTankMaxLevel
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_FillerRinseTankMaxLvl
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gIn_FillerRinseTankMinLevel
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_FillerRinseTankMinLvl
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gIn_FillerRinseTankMinLevel
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRun_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mWaitToRunPumpTON
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#30s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TON
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mWaitToRunPump
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gIn_FillerRinseTankMinLevel
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mEmptyFillerRinseTankTON
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#40s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TON
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFillerRinseTankEmpty
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
mFillerTankRinseLoadedSR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_SystemRunOutEnabled
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gIn_FillerRinseTankMinLevel
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gIn_FillerRinseTankMaxLevel
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gOut_OpenEV72RinseTankDrain
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
gIn_FillerRinseTankMaxLevel
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
gIn_FillerRinseTankMinLevel
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
gH_EV72_Auto
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_EV72_Manual
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
gIn_FillerRinseTankMaxLevel
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
OR
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SR
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFillerTankRinseLoaded
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 8
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gIn_FillerRinseTankMinLevel
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gH_SystemRunOutEnabled
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFillerTankRinseLoaded
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Running
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderProdMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mDrainFillerRinseTankTime
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#40s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TOF
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_LD_CONTACT
|
||||
gOut_StartRinseTankPump
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFillerRinseTankDrain
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 4
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gAlwaysOff
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gAlwaysOff
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gIn_Flr_OpenEV69ProdPipeDrain
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gH_CIP_BlenderDrainRun
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOut_OpenEV69ProdPipeDrain2
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 6
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_FillerRinseTank
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
mWaitToRunPump
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFillerRinseTankEmpty
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFillerRinseTankDrain
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRun_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gIn_Flr_WaterRinseRequest
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gOut_Flr_WaterRinseReady
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOut_OpenEV66FlrTankOut
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gH_SystemRunOutEnabled
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gIn_FillerRinseTankMaxLevel
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Latch
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gIn_FillerRinseTankMinLevel
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Done
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOut_OpenEV68InletWater
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gH_CIP_ProdTankFloodRun
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_CIP_DeairTankFloodRun
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_CIP_SyrTankFloodRun
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderRun_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gH_CIP_BlenderDrainRun
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gIn_FillerRinseTankMaxLevel
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOut_OpenEV71RinseTankSprayBall
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 3
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFillerRinse_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFillerRinseTankDrain
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gH_CIP_BlenderDrainRun
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOut_OpenEV72RinseTankDrain
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 5
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_FastChangeOverEnabled
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_FillerRinseTank
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_Simulation
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gSp_P5
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gOut_OpenEV66FlrTankOut
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRun_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gOut_OpenEV66FlrTankOut
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gOut_OpenEV66FlrTankOut
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gIn_FillerRinseTankMinLevel
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gOut_StartRinseTankPump
|
||||
|
||||
END_PROGRAM
|
|
@ -0,0 +1,29 @@
|
|||
(* @PATH := '\/Signals Inteface' *)
|
||||
TYPE FillerSendStruct :
|
||||
STRUCT
|
||||
CIP_Mode : BOOL ;
|
||||
CIP_Running : BOOL ;
|
||||
CIP_Completed : BOOL ;
|
||||
CIP_DrainRequest : BOOL ;
|
||||
Rinse_Mode : BOOL ;
|
||||
Production_Mode : BOOL ;
|
||||
ProductAvailable : BOOL ;
|
||||
FillerRunOut : BOOL ;
|
||||
ProductCompleted : BOOL ;
|
||||
ChangeSanitize : BOOL ;
|
||||
FastRinseRequest : BOOL ;
|
||||
WaterRinseReady : BOOL ;
|
||||
CausticSanitizeRunning : BOOL ;
|
||||
MinimumProductLevel : BOOL ;
|
||||
SpareBit1_6 : BOOL ;
|
||||
AliveBit : BOOL ;
|
||||
FillerRunOutAmount : INT ;
|
||||
FillerNextRecipe : BYTE ;
|
||||
SpareByte5 : BYTE ;
|
||||
SpareByte6 : BYTE ;
|
||||
SpareByte7 : BYTE ;
|
||||
SpareByte8 : BYTE ;
|
||||
SpareByte9 : BYTE ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
(* @END_DECLARATION := '0' *)
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,26 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection\/FillingHead' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION FillingTime : REAL
|
||||
VAR_INPUT
|
||||
i_FillingValveHead : REAL ; (* in mmH2O *)
|
||||
i_BottleSize : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
a : REAL ;
|
||||
b : REAL ;
|
||||
c : REAL ;
|
||||
d : REAL ;
|
||||
mFillingSpeed : REAL ; (* in mL/sec *)
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
a := 1.2522E-7 ;
|
||||
b := -3.8E-4 ;
|
||||
c := 4.4505E-1 ;
|
||||
d := 0.0 ;
|
||||
mFillingSpeed := a * EXPT(i_FillingValveHead, 3) + b * EXPT(i_FillingValveHead, 2) + c * i_FillingValveHead +d ;
|
||||
IF mFillingSpeed<>0 THEN
|
||||
FillingTime := i_BottleSize / (mFillingSpeed/1000) ;
|
||||
END_IF
|
||||
END_FUNCTION
|
|
@ -0,0 +1,971 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM FirstProduction
|
||||
VAR
|
||||
mFirstProdONS : R_TRIG ;
|
||||
mFirstProdTP : TP ;
|
||||
mFirstProdTP1 : TP ;
|
||||
mAuxONS : R_TRIG ;
|
||||
mAuxTP : TP ;
|
||||
mTimeDone : TON ;
|
||||
|
||||
mSwitchLevel : REAL ;
|
||||
mSyrupCount : REAL ;
|
||||
mSyrupCountInit : REAL ;
|
||||
mFirstProdSR : SR ;
|
||||
mFirstProdCountDone : BOOL ;
|
||||
mInitialSyrupOk : BOOL ;
|
||||
mDelaySyrOk : TON ;
|
||||
|
||||
mDummy : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 17
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gBlenderProdMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderSuppliesOk
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFirstProd_Qualifier
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
Exceptionally the Request Bit is Latched in order TO save it FOR the next Production switching.
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gFirstProd_Request
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gProdPipeRunOut_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Done
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 5
|
||||
_LD_CONTACT
|
||||
gH_CMD_FirstProduction
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Latch
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mFirstProdTP
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#1s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TP
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFastRinse_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderAlarm
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mFirstProdTP1
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#1s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TP
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFirstProd_Request
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gFirstProd_Qualifier
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinse_DoneONS
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gFastChangeOverActivated
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Request
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mFirstProdONS
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
R_TRIG
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFirstProd_Reset
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gFirstProd_Reset
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
FirstProduction.Reset
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
Waits UNTIL Production is Selected
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 5
|
||||
_LD_CONTACT
|
||||
gBlenderProdMode
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderProdMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRun_Running
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gAirLowPress_Fault
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gCO2LowPress_Fault
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFirstProd_Wait
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFirstProd_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mFirstProdSR
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gFirstProd_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SR
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFirstProdLatched
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFirstProd_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_SET
|
||||
gFirstProdStop
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFirstProdStop
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderLevelTarget
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_Simulation
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gWorkshopTest
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_NEGATIV
|
||||
_SET
|
||||
gFirstProdStop
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gSyrLineMFMPrep_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gPV_SyrDensOk
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFirstProdLatched
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_SyrupTotalizerLt
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mSyrupCountInit
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
During Fisrt Production the SyrupRunOutLiters Parameters is multiplied BY 1.3 (30% more syrup) AND used
|
||||
TO state when all the Low Brix Syrup is ran Out.
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gPV_SyrDensOk
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFirstProdLatched
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gSyrupTotal
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gActualSyrupDens
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
DIV
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mSyrupCountInit
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SUB
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_ProcessSetup_SyrupRunOutLiters
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
1.0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MUL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
GT
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mFirstProdCountDone
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFirstProd_Request
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Reset
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Done
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 3
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_FirstProdRun
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_Status006
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFirstProd_Latch
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFirstProd_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Wait
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFirstProd_Running
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFirstProd_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mAuxTP
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#1s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TP
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
???
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
FirstProduction.ResetTotalizers
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mDummy
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gAlwaysOff
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_FUNCTIONBLOCK
|
||||
_FBD_PROGRAM
|
||||
_BOX_EXPR : 0
|
||||
_ENABLED
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
FirstProduction.SwitchLevel
|
||||
_OUTPUTS : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
mDelaySyrOk
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gActualRecipe_Syrup_Brix
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gMeterSyrBrix
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gActualRecipe_Syrup_Brix_Fact
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MUL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SUB
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ABS
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gActualRecipe_SP_MaxDeltaBrix
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0.8
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MUL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
LT
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#1s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TON
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mInitialSyrupOk
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
First production stops when product tank level gets MAX Lvel (80%) OR when the Syrup Brix Error is minimum.
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFirstProd_Latch
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderStopLevel
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gBlenderLevelTarget
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
mInitialSyrupOk
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gSyrupRoomEn
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mTimeDone
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#10s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TON
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gFirstProd_Reset
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gFirstProd_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gFirstProd_Done
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gFirstProd_Done
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gH_FirstProductionDone
|
||||
|
||||
END_PROGRAM
|
||||
ACTION Reset:
|
||||
mFirstProdCountDone := FALSE ;
|
||||
gFirstProdLatched := FALSE ;
|
||||
gFirstProd_Done := FALSE ;
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION ResetTotalizers:
|
||||
_LD_BODY
|
||||
_NETWORKS : 1
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 4
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gWaterVFMResetTot
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gSyrupMFMResetTot
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCO2MFMResetTot
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProductMFMResetTot
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION SwitchLevel:
|
||||
IF gActualRecipe_SP_Tank_Press>0 THEN
|
||||
mSwitchLevel :=(1 - gCO2EqPressure / gActualRecipe_SP_Tank_Press) * 100 ;
|
||||
END_IF
|
||||
END_ACTION
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection\/FillingHead' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION Flow_To_Press_Loss : REAL
|
||||
|
||||
VAR_INPUT
|
||||
i_Flow : REAL ; (* Product Flow in l/min *)
|
||||
i_K_Loss : REAL ; (* Pressure Loss Constant: pump + pipe + filler collector *)
|
||||
END_VAR
|
||||
|
||||
VAR
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(* Pressure Loss along Pipe in mmH2O
|
||||
|
||||
Head [ mmH2O] = i_Flow ^ 2 i_K_Loss
|
||||
|
||||
SAE131==> i_K_Loss = 9.420000e-003
|
||||
*)
|
||||
|
||||
(******* Pompa INOXPA Modello ______ Motore 4 Poli 1450 RPM ********* *)
|
||||
|
||||
(*KP_Carico :=0.158;*)
|
||||
|
||||
Flow_To_Press_Loss := EXPT(i_Flow, 2) * i_K_Loss ;
|
||||
END_FUNCTION
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection\/FillingHead' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION Freq_To_mmH2O : REAL
|
||||
VAR_INPUT
|
||||
i_Freq : REAL ;
|
||||
i_K_freq : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
Freq_To_mmH2O := EXPT(i_Freq, 2) * i_K_freq ;
|
||||
END_FUNCTION
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION FrictionLoss : REAL (* Return the Friction Losses for a concetrate cause *)
|
||||
VAR_INPUT
|
||||
i_Flow : REAL ;
|
||||
i_K : REAL ;
|
||||
i_Dens : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(*FrictionLoss := EXPT(i_Flow * i_K*i_Dens, 2) ;*)
|
||||
FrictionLoss := (i_Flow * i_K * i_Flow * i_K )* i_Dens ;
|
||||
|
||||
END_FUNCTION
|
|
@ -0,0 +1,350 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM GetProdBrixCO2_FromAnalogInput
|
||||
VAR
|
||||
mEnabled : BOOL ;
|
||||
mProdBrix : Peripherial ;
|
||||
mProdCO2 : Peripherial ;
|
||||
mProdTemp : Peripherial ;
|
||||
mError : BOOL ;
|
||||
mDummy : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 6
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_BrixMeter
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gH_Blender_OPT_MeterType
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
3
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
EQ
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mEnabled
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTION
|
||||
_BOX_EXPR : 5
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AI_ProductBrix
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
20.0
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
-0.04
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gAnalogMaxValue
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ReadAnalogIn
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mProdBrix
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTION
|
||||
_BOX_EXPR : 5
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AI_ProductCO2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
10.0
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
-0.02
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gAnalogMaxValue
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ReadAnalogIn
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mProdCO2
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_FUNCTION
|
||||
_BOX_EXPR : 5
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AI_PoductTemp
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
100.0
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0.0
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gAnalogMaxValue
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ReadAnalogIn
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mProdTemp
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
mEnabled
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 3
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProdBrix.Error
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProdBrix.Value
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SEL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProductBrix
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProdCO2.Error
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProdCO2.Value
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SEL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProductCO2
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProdTemp.Error
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProdTemp.Value
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
SEL
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProductTemp
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mEnabled
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProdBrix.Value
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
8
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
GT
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
mProdBrix.Error
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_SET
|
||||
gProductMeterOk
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_PROGRAM
|
|
@ -0,0 +1,133 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM GetProdO2_FromAnalogInput
|
||||
VAR
|
||||
mProdO2 : Peripherial ;
|
||||
mProdO2Flted : LowPassFilter ;
|
||||
mInError : BOOL ;
|
||||
|
||||
mDummy : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 2
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_Simulation
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 2
|
||||
_ASSIGN
|
||||
_FUNCTION
|
||||
_BOX_EXPR : 5
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
AI_ProductO2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
12.0
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gAnalogMaxValue
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ReadAnalogIn
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mProdO2
|
||||
_ASSIGN
|
||||
_FUNCTIONBLOCK
|
||||
mProdO2Flted
|
||||
_BOX_EXPR : 3
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProdO2.Value
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
5
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TRUE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
LowPassFilter
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProductO2Conc
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
mProdO2.Error
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mInError
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_PROGRAM
|
|
@ -0,0 +1,99 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := Global_Alarms *)
|
||||
(* @PATH := '' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
(****************************************************************************************************************************)
|
||||
(* FAULT ALARM *)
|
||||
(****************************************************************************************************************************)
|
||||
gWaterPump_P1_Fault : BOOL ;
|
||||
gWaterPump_P5_Fault : BOOL ;
|
||||
gSyrupPump_P2_Fault : BOOL ;
|
||||
gProductPump_P3_Fault : BOOL ;
|
||||
gVacuumPump_P4_Fault : BOOL ;
|
||||
gRinseTankPump_P5_Fault : BOOL ;
|
||||
gRecircPump_P6_Fault : BOOL ;
|
||||
gWaterVFM_EPD : BOOL ; (* Water Flowmeter Empty *)
|
||||
gSyrupMFM_EPD : BOOL ; (* Syrup Flowmeter Empty *)
|
||||
gCO2MFM_EPD : BOOL ; (* CO2 Flowmeter Empty *)
|
||||
gProductVFM_EPD : BOOL ; (* Water Flowmeter Empty *)
|
||||
gWaterVFM_Fault : BOOL ; (* Water Flowmeter Fault *)
|
||||
gSyrupMFM_Fault : BOOL ; (* Syrup Flowmeter Fault *)
|
||||
gCO2MFM_Fault : BOOL ; (* CO2 Flowmeter Fault *)
|
||||
gProductVFM_Fault : BOOL ; (* Water Flowmeter Fault *)
|
||||
gWaterValvePos_Fault : BOOL ; (* Water Modulating Valve Position Fault *)
|
||||
gSyrupValvePos_Fault : BOOL ; (* Syrup Modulating Valve Position Fault *)
|
||||
gCarboCO2ValvePos_Fault : BOOL ; (* CO2 Modulating Valve Position Fault *)
|
||||
gProdTankPressure_Fault : BOOL ; (* Product Tank Pressurization TimeOut Fault *)
|
||||
gVacuumTimeOut_Fault : BOOL ; (* Vacuum TimeOut Fault *)
|
||||
gNotARecipe_Fault : BOOL ; (* Invalid Recipe Type Selection *)
|
||||
gWaterFlowTooLow : BOOL ; (* Water Flow Too Low *)
|
||||
gWaterSpeedTooLow : BOOL ; (* Water Speed in Serpentine Critical < 1m/s *)
|
||||
gBlendErrorHighSyr_Fault : BOOL ;
|
||||
gBlendErrorLowSyr_Fault : BOOL ;
|
||||
gCarboCO2Error_HighCO2_Fault : BOOL ;
|
||||
gCarboCO2Error_LowCO2_Fault : BOOL ;
|
||||
gProductBrixTooHigh : BOOL ;
|
||||
gProductBrixTooLow : BOOL ;
|
||||
gProductCO2TooHigh : BOOL ;
|
||||
gProductCO2TooLow : BOOL ;
|
||||
gProductCondTooHigh : BOOL ;
|
||||
gProductCondTooLow : BOOL ;
|
||||
gDensimeterCalError : BOOL ;
|
||||
gCIPTransferProgTimeOut_Fault : BOOL ;
|
||||
gmPDS1000_Error_Fault : BOOL ;
|
||||
gmPDS1000_NoOscillation : BOOL ;
|
||||
gmPDS2000_Error_Fault : BOOL ;
|
||||
gMaselli_Error_Fault : BOOL ;
|
||||
gMaselliUC05_Error_Fault : BOOL ;
|
||||
gMaselliUC05_Communication_Fault : BOOL ;
|
||||
gMaselliUR22_Error_Fault : BOOL ;
|
||||
gMaselliUR22_Communication_Fault : BOOL ;
|
||||
gCIPRecircFlowMissing_Fault : BOOL ;
|
||||
gCIPCommFault : BOOL ;
|
||||
gFillerCommFault : BOOL ;
|
||||
|
||||
gFlrCO2ValveEV46Pos_Fault : BOOL ;
|
||||
gProdValveEV62Pos_Fault : BOOL ;
|
||||
gWaterInletValveEV73Pos_Fault : BOOL ;
|
||||
gCIPInletValveEV74Pos_Fault : BOOL ;
|
||||
gDiffSensor_Analog_Fault : BOOL ;
|
||||
gProdTankPressureValveFault : BOOL ;
|
||||
gDeaireationValveFault : BOOL ;
|
||||
|
||||
gSyrTankHighLvl_Fault : BOOL ;
|
||||
|
||||
(****************************************************************************************************************************)
|
||||
(* SUPPLIES ALARM *)
|
||||
(****************************************************************************************************************************)
|
||||
gAirLowPress_Fault : BOOL ;
|
||||
gCO2LowPress_Fault : BOOL ;
|
||||
gDeairTankLowLvl_Fault : BOOL ;
|
||||
gSyrTankLowLvl_Fault : BOOL ;
|
||||
gSyrRoomPump_Fault : BOOL ;
|
||||
gSyrBrixOutSpec_Fault : BOOL ; (* Syrup Brix Out Of Specification *)
|
||||
gSyrupDensityOutSpec_Fault : BOOL ; (* Syrup Density Out Of Specification *)
|
||||
gWaterTempTooHigh : BOOL ;
|
||||
gProdTempTooHigh : BOOL ;
|
||||
gSyrRoomWaterPump_Fault : BOOL ;
|
||||
gAmmoniaCompressor_Fault : BOOL;
|
||||
gInjectionPressAI_Fault : BOOL;
|
||||
|
||||
(****************************************************************************************************************************)
|
||||
(* EXTERNAL ALARM *)
|
||||
(****************************************************************************************************************************)
|
||||
|
||||
(**********************************************************************************************************************)
|
||||
(* OPERATOR ALARMS *)
|
||||
(**********************************************************************************************************************)
|
||||
gManualSyrupDrainValve : BOOL ;
|
||||
gManualWaterDrainValve : BOOL ;
|
||||
gSyrupLineNotSelected : BOOL ;
|
||||
END_VAR
|
||||
|
||||
(* @OBJECT_END := Global_Alarms *)
|
||||
(* @CONNECTIONS := Global_Alarms
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,354 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := Global_Variables_IN_OUT *)
|
||||
(* @PATH := '' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
(*************************************************************************)
|
||||
(* DIGITAL INPUT *)
|
||||
(*************************************************************************)
|
||||
DI_AuxVoltage_On AT %IX0.0 : BOOL; (* N10_I00_154U12 *)
|
||||
DI_Reset_Horn_Btn AT %IX0.1 : BOOL; (* N10_I01_154U12 *)
|
||||
DI_Filler_Emergency (* AT %IX0.1 *) : BOOL;
|
||||
DI_Reset_Btn AT %IX0.2 : BOOL; (* N10_I02_154U12 *)
|
||||
DI_Blender_Stop_Btn AT %IX0.3 : BOOL; (* N10_I03_154U12 *)
|
||||
DI_Blender_Start_Btn AT %IX0.4 : BOOL; (* N10_I04_154U12 *)
|
||||
DI_PowerSuppliesOk AT %IX0.5 : BOOL; (* N10_I05_154U12 *)
|
||||
DI_Min_Deair_Level AT %IX0.6 : BOOL; (* N10_I06_154U12 *)
|
||||
DI_Min_Syrup_Level (* AT %IX0.7 *) : BOOL; (* N10_I07_154U12 *)
|
||||
DI_LinkByte0 AT %IB0 : BYTE ;
|
||||
|
||||
DI_ProdTankEmpty AT %IX1.0 : BOOL; (* N10_I30_154U12 *)
|
||||
DI_Max_Temperature_Alarm (* AT %IX1.0 *) : BOOL ;
|
||||
DI_DeairVacuumOk (* AT %IX1.1 *) : BOOL; (* N10_I10_154U12 *)
|
||||
DI_Min_Deair2_Level (* AT %IX1.2 *) : BOOL; (* N10_I06_154U12 *)
|
||||
DI_Water_Pump2_Ovrld (* AT %IX1.3 *) : BOOL; (* N10_I20_154U12 *)
|
||||
DI_Water_Pump2_Contactor (* AT %IX1.4 *) : BOOL; (* N10_I20_154U12 *)
|
||||
DI_FillerRinseTankMaxLevel (* AT %IX1.0 *) : BOOL; (* N10_I10_154U12 *)
|
||||
DI_FillerRinseTankMinLevel (* AT %IX1.1 *) : BOOL; (* N10_I10_154U12 *)
|
||||
DI_FillerRinseTank_Pump_Ovrld (* AT %IX1.3 *) : BOOL; (* N10_I10_154U12 *)
|
||||
DI_FillerRinseTank_Pump_Contactor (* AT %IX1.4 *) : BOOL; (* N10_I10_154U12 *)
|
||||
DI_Water_Pump_SoftStart_Ovrld AT %IX1.3 : BOOL; (* N10_I20_154U12 *)
|
||||
DI_Emergency_Pressed (* AT %IX1.3 *) : BOOL;
|
||||
DI_Aux_Protection (* AT %IX1.4 *) : BOOL;
|
||||
DI_BatteryNotReady AT %IX1.4 : BOOL ;
|
||||
DI_VM1_Water_Valve_Closed AT %IX1.5 : BOOL; (* N10_I13_154U12 *)
|
||||
DI_VM2_Syrup_Valve_Closed AT %IX1.6 : BOOL; (* N10_I16_154U12 *)
|
||||
DI_VM3_CO2_Valve_Closed AT %IX1.7 : BOOL; (* N10_I17_154U12 *)
|
||||
DI_LinkByte1 AT %IB1 : BYTE ;
|
||||
|
||||
DI_Water_Pump_Ovrld AT %IX2.0 : BOOL; (* N10_I20_154U12 *)
|
||||
DI_Water_Pump_Contactor AT %IX2.1 : BOOL; (* N10_I20_154U12 *)
|
||||
DI_Syrup_Pump_Ovrld AT %IX2.2 : BOOL; (* N10_I20_154U12 *)
|
||||
DI_Syrup_Pump_Contactor AT %IX2.3 : BOOL; (* N10_I20_154U12 *)
|
||||
DI_Product_Pump_Ovrld AT %IX2.4 : BOOL; (* N10_I20_154U12 *)
|
||||
DI_Product_Pump_Contactor AT %IX2.5 : BOOL; (* N10_I20_154U12 *)
|
||||
DI_Product_Pump_VFC_Ready (* AT %IX2.6 *) : BOOL; (* N10_I20_154U12 *)
|
||||
DI_LinkByte2 AT %IB2 : BYTE ;
|
||||
|
||||
DI_CIP_Sensor_1 (* AT %IX3.0 *) : BOOL; (* N10_I30_154U12 *)
|
||||
DI_CIP_Sensor_2 (* AT %IX3.1 *) : BOOL; (* N10_I30_154U12 *)
|
||||
DI_WaterPipeCIP_Sensor (* AT %IX3.2 *) : BOOL; (* N10_I30_154U12 *)
|
||||
DI_Prod_Sensor_1 (* AT %IX3.3 *) : BOOL; (* N10_I30_154U12 *)
|
||||
DI_Prod_Sensor_2 (* AT %IX3.4 *) : BOOL; (* N10_I30_154U12 *)
|
||||
|
||||
DI_EV62_ProductOutlet_Open (* AT %IX3.0 *) : BOOL;
|
||||
DI_EV62_ProductOutlet_Close (* AT %IX3.1 *) : BOOL;
|
||||
DI_EV46_FillerCO2Valve_Open (* AT %IX3.2 *) : BOOL;
|
||||
DI_EV46_FillerCO2Valve_Close (* AT %IX3.3 *) : BOOL;
|
||||
DI_Recycle_Pump_Ovrld (* AT %IX3.4 *) : BOOL; (* N10_I30_154U12 *)
|
||||
DI_Recycle_Pump_Contactor (* AT %IX3.5 *) : BOOL; (* N10_I30_154U12 *)
|
||||
DI_Vacuum_Pump_Ovrld (* AT %IX2.6 *) : BOOL; (* N10_I20_154U12 *)
|
||||
DI_Vacuum_Pump_Contactor (* AT %IX2.7 *) : BOOL; (* N10_I20_154U12 *)
|
||||
DI_LinkByte3 AT %IB3 : BYTE ;
|
||||
|
||||
DI_Flr_FastRinseReady (* AT %IX5.5 *) : BOOL; (* N10_I90_154U32 *)
|
||||
DI_Flr_OpenProductDrainEV69 (* AT %IX5.6 *) : BOOL; (* N10_I91_154U32 *)
|
||||
DI_Flr_FastChangeWaterRequest (* AT %IX6.0 *) : BOOL; (* N10_I93_154U32 *)
|
||||
DI_Flr_Spare36 (* AT %IX4.3 *) : BOOL; (* N10_I43_154U22 *)
|
||||
DI_Flr_Spare37 (* AT %IX4.4 *) : BOOL; (* N10_I44_154U22 *)
|
||||
DI_SyrRoom_WaterPump_Ready (* AT %IX4.5 *) : BOOL := TRUE; (* N10_I45_154U22 *)
|
||||
DI_SyrRoom_SelectLine1 (* AT %IX4.6 *) : BOOL; (* N10_I46_154U22 *)
|
||||
DI_SyrRoom_SelectLine2 (* AT %IX4.7 *) : BOOL; (* N10_I47_154U22 *)
|
||||
DI_EV74_CIPInlet_Open (* AT %IX4.4 *) : BOOL;
|
||||
DI_EV74_CIPInlet_Close (* AT %IX4.5 *) : BOOL;
|
||||
DI_EV73_WaterInlet_Open (* AT %IX4.6 *) : BOOL;
|
||||
DI_EV73_WaterInlet_Close (* AT %IX4.7 *) : BOOL;
|
||||
DI_LinkByte4 AT %IB4 : BYTE ;
|
||||
|
||||
DI_UV_Lamp_Ready (* AT %IX5.2 *) : BOOL;
|
||||
DI_UV_Lamp_TempHigh (* AT %IX5.3 *) : BOOL;
|
||||
DI_SyrRoom_Pump_Ready AT %IX5.0 : BOOL; (* N10_I50_154U22 *)
|
||||
DI_Ammonia_CompressorReady (* AT %IX5.4 *) : BOOL := TRUE; (* N10_I50_154U22 *)
|
||||
DI_Flr_Product_Request (* AT %IX5.1 *) : BOOL; (* N10_I51_154U22 *)
|
||||
DI_Flr_Ready_to_Production (* AT %IX5.2 *) : BOOL; (* N10_I52_154U22 *)
|
||||
DI_Flr_Ready_to_CIP (* AT %IX5.3 *) : BOOL; (* N10_I53_154U22 *)
|
||||
DI_Flr_Start_ReturnPump (* AT %IX5.4 *) : BOOL; (* N10_I53_154U22 *)
|
||||
DI_Flr_CIP_RinseDrainCompleted (* AT %IX5.4 *) : BOOL; (* N10_I54_154U22 *)
|
||||
DI_AmmoniaHighLevel_Water (* AT %IX6.4 *) : BOOL; (* N10_I50_154U22 *)
|
||||
DI_Flr_FastChangeLastContainerFilled (* AT %IX6.1 *) : BOOL; (* N10_I94_154U32 *)
|
||||
DI_AmmoniaHighLevel_Product (* AT %IX6.5 *) : BOOL; (* N10_I50_154U22 *)
|
||||
DI_Flr_CIP_RinseCycleEnded (* AT %IX5.7 *) : BOOL; (* N10_I53_154U22 *)
|
||||
DI_AmmoniaLowPressure_Water (* AT %IX6.6 *) : BOOL; (* N10_I50_154U22 *)
|
||||
DI_Flr_CIP_ChangeReady (* AT %IX5.7 *) : BOOL; (* N10_I53_154U22 *)
|
||||
DI_AmmoniaLowPressure_Product (* AT %IX6.7 *) : BOOL; (* N10_I50_154U22 *)
|
||||
DI_LinkByte5 AT %IB5 : BYTE ;
|
||||
|
||||
DI_CIP_DrainRequest AT %IX6.2 : BOOL; (* N10_I60_154U22 *)
|
||||
DI_CIP_TankFilling (* AT %IX6.1 *) : BOOL; (* N10_I60_154U22 *)
|
||||
DI_CIP_RinseMode AT %IX6.1 : BOOL; (* N10_I60_154U22 *)
|
||||
DI_CIP_CIPFault (* AT %IX5.7 *) : BOOL; (* N10_I60_154U22 *)
|
||||
DI_CIP_Running (* AT %IX6.1 *) : BOOL; (* N10_I60_154U22 *)
|
||||
DI_CIP_ChangeSanitize (* AT %IX6.2 *) : BOOL; (* N10_I64_154U22 *)
|
||||
DI_CIP_CIPCompleted AT %IX6.3 : BOOL; (* N10_I65_154U22 *)
|
||||
DI_CIP_CIPMode AT %IX6.0 : BOOL; (* N10_I66_154U22 *)
|
||||
DI_CIP_CausticSanitizeRunning (* AT %IX6.5 *) : BOOL; (* N10_I60_154U22 *)
|
||||
DI_LinkByte6 AT %IB6 : BYTE ;
|
||||
|
||||
DI_CO2_InletPress_OK (* AT %IX7.0 *) : BOOL := TRUE ; (* N10_I70_154U22 *)
|
||||
DI_Air_InletPress_OK AT %IX7.1 : BOOL; (* N10_I70_154U22 *)
|
||||
DI_Syrup_Line_Drain_Sensor AT %IX7.2 : BOOL; (* N10_I70_154U22 *)
|
||||
DI_CIP_ReturnFlowOk (* AT %IX7.3 *) : BOOL; (* N10_I70_154U22 *)
|
||||
DI_O2TransdClean (* AT %IX7.4 *) : BOOL; (* N10_I70_154U22 *)
|
||||
DI_Water_Manual_Valve_Open (* AT %IX7.5 *) : BOOL := TRUE ; (* N10_I70_154U22 *)
|
||||
DI_LinkByte7 AT %IB7 : BYTE ;
|
||||
|
||||
DI_PowerCoupler1Power (* AT %IX300.0 *) : BOOL; (* N10_I500_154U10/1 *)
|
||||
DI_PowerCoupler1Short (* AT %IX300.1 *) : BOOL; (* N10_I501_154U10/1 *)
|
||||
DI_PowerCoupler2Power (* AT %IX300.2 *) : BOOL; (* N10_I502_154U10/1 *)
|
||||
DI_PowerCoupler2Short (* AT %IX300.3 *) : BOOL; (* N10_I503_154U10/1 *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* DIGITAL OUTPUT *)
|
||||
(*************************************************************************)
|
||||
DO_UVLamp_Enable (* AT %QX0.1 *) : BOOL;
|
||||
DO_SyrupInletValve_Enable AT %QX0.0 : BOOL; (* N10_O03_154U32 *)
|
||||
DO_RecyclePumpRun (* AT %QX6.7 *) : BOOL; (* N10_O01_154U32 *)
|
||||
DO_Vacuum_Pump_Run (* AT %QX3.7 *) : BOOL; (* N10_O77_154U42 *)
|
||||
DO_Water_Pump2_Run (* AT %QX0.1 *) : BOOL; (* N10_O01_154U32 *)
|
||||
DO_RecorderON (* AT %QX1.7 *) : BOOL; (* N10_O02_154U32 *)
|
||||
DO_HoldBrixMeter AT %QX0.3 : BOOL; (* N10_O03_154U32 *)
|
||||
DO_BrixMeterON (* AT %QX0.4 *) : BOOL; (* N10_O03_154U32 *)
|
||||
DO_HoldO2Meter (* AT %QX0.2 *) : BOOL; (* N10_O03_154U32 *)
|
||||
DO_EV03_Syrup_Lvl_Ctrl_Valve (* AT %QX19.6 *) : BOOL; (* N10_O05_154U32 *)
|
||||
DO_EV04_Syrup_FillUp_Valve (* AT %QX19.7 *) : BOOL; (* N10_O04_154U32 *)
|
||||
DO_LinkByte0 AT %QB0 : BYTE ;
|
||||
|
||||
DO_SyrupRoomPump_Run AT %QX1.0 : BOOL; (* N10_O10_154U32 *)
|
||||
DO_SyrupRoomWaterReq AT %QX1.1 : BOOL; (* N10_O12_154U32 *)
|
||||
DO_CIP_CIPRequest AT %QX2.0 : BOOL; (* N10_O13_154U32 *)
|
||||
DO_CIP_DrainCompleted AT %QX2.1 : BOOL ;
|
||||
DO_CIP_CycleEnded (* AT %QX2.1 *) : BOOL ;
|
||||
DO_CIP_ChangeReady (* AT %QX2.2 *) : BOOL; (* N10_O13_154U32 *)
|
||||
DO_CIP_WaterPipe_Ready (* AT %QX1.6 *) : BOOL ;
|
||||
DO_AmmoniaWaterColdRequest (* AT %QX1.4 *) : BOOL; (* N10_O150_154U34 *)
|
||||
DO_AmmoniaProductColdRequest (* AT %QX1.5 *) : BOOL; (* N10_O151_154U34 *)
|
||||
DO_AmmoniaWaterColdControl (* AT %QX1.6 *) : BOOL; (* N10_O142_154U32 *)
|
||||
DO_AmmoniaProductColdControl (* AT %QX1.7 *) : BOOL; (* N10_O143_154U32 *)
|
||||
DO_Ammonia_ByPassHotGas (* AT %QX1.5 *) : BOOL; (* N10_O151_154U34 *)
|
||||
DO_Ammonia_CompressorRun (* AT %QX1.6 *) : BOOL; (* N10_O151_154U34 *)
|
||||
DO_UV_Lamp_ONOFF (* AT %QX1.6 *) : BOOL;
|
||||
DO_LinkByte1 AT %QB1 : BYTE ;
|
||||
|
||||
DO_Flr_ProductionMode (* AT %QX4.0 *) : BOOL; (* N10_O12_154U32 *)
|
||||
DO_Flr_ProductAvailable (* AT %QX4.1 *) : BOOL; (* N10_O13_154U32 *)
|
||||
DO_Flr_CIP_Mode (* AT %QX4.2 *) : BOOL; (* N10_O14_154U32 *)
|
||||
DO_Flr_CIP_StartReturnPump (* AT %QX2.3 *) : BOOL; (* N10_O14_154U32 *)
|
||||
DO_Flr_CIP_Run (* AT %QX1.3 *) : BOOL; (* N10_O14_154U32 *)
|
||||
DO_Flr_CIP_Cmpltd (* AT %QX4.5 *) : BOOL; (* N10_O17_154U32 *)
|
||||
DO_Flr_CIP_Drain (* AT %QX4.4 *) : BOOL; (* N10_O15_154U32 *)
|
||||
DO_Flr_RinseReq (* AT %QX4.3 *) : BOOL; (* N10_O14_154U32 *)
|
||||
DO_Flr_FillerRunOutRequest (* AT %QX5.2 *) : BOOL; (* N10_O217_154U47 *)
|
||||
DO_LinkByte2 AT %QB2 : BYTE;
|
||||
|
||||
DO_ToBrixMeter_CIP (* AT %QX3.0 *) : BOOL; (* N10_O30_154U32 *)
|
||||
DO_Flr_ProductCompleted (* AT %QX5.1 *) : BOOL; (* N10_O216_154U47 *)
|
||||
DO_Flr_ChangeSanitize (* AT %QX3.1 *) : BOOL; (* N10_O216_154U47 *)
|
||||
DO_Flr_FastRinseRequest (* AT %QX4.7 *) : BOOL; (* N10_O214_154U47 *)
|
||||
DO_Flr_WaterRinseReady (* AT %QX5.0 *) : BOOL; (* N10_O215_154U47 *)
|
||||
DO_Flr_BottleStop (* AT %QX4.6 *) : BOOL; (* N10_O20_154U32 *)
|
||||
DO_LinkByte3 AT %QB3 : BYTE;
|
||||
|
||||
DO_LinkByte4 AT %QB4 : BYTE ;
|
||||
DO_LinkByte5 AT %QB5 : BYTE ;
|
||||
|
||||
DO_EV31_CIPVenturi_Valve (* AT %QX17.7 *) : BOOL; (* N10_O200_154U42 *)
|
||||
DO_EV32_CIPWashVenturi_Valve (* AT %QX18.0 *) : BOOL; (* N10_O201_154U42 *)
|
||||
DO_EV33_CIPCaustic_Valve (* AT %QX18.1 *) : BOOL; (* N10_O202_154U42 *)
|
||||
DO_EV34_CIPAcid_Valve (* AT %QX18.2 *) : BOOL; (* N10_O200_154U42 *)
|
||||
DO_EV35_CIPDet_Valve (* AT %QX18.3 *) : BOOL; (* N10_O201_154U42 *)
|
||||
DO_EV36_CIPRecirc_Valve (* AT %QX18.4 *) : BOOL; (* N10_O202_154U42 *)
|
||||
DO_EV37_CIPDrain_Valve (* AT %QX18.5 *) : BOOL; (* N10_O203_154U42 *)
|
||||
DO_EV38_CIPHeater_Valve (* AT %QX6.7 *) : BOOL; (* N10_O204_154U42 *)
|
||||
DO_LinkByte6 AT %QB6 : BYTE ;
|
||||
|
||||
DO_EV39_FlatWaterByPass_Valve (* AT %QX8.4 *) : BOOL; (* N10_O204_154U42 *)
|
||||
DO_EV40_FlatWaterByPass_Valve (* AT %QX8.5 *) : BOOL; (* N10_O204_154U42 *)
|
||||
DO_EV44_ProductPipeDrain2 (* AT %QX5.3 *) : BOOL; (* N10_O203_154U42 *)
|
||||
DO_EV45_ProductChillerDrain AT %QX17.7 : BOOL; (* N10_O204_154U42 *)
|
||||
|
||||
DO_Horn AT %QX3.0 : BOOL; (* N10_O70_154U42 *)
|
||||
DO_Blender_Run_Lamp AT %QX3.1 : BOOL; (* N10_O71_154U42 *)
|
||||
DO_Alarm_Lamp AT %QX3.2 : BOOL; (* N10_O72_154U42 *)
|
||||
DO_RotorAlarm_Lamp AT %QX3.3 : BOOL; (* N10_O73_154U42 *)
|
||||
DO_Water_Pump_Run AT %QX3.4 : BOOL; (* N10_O74_154U42 *)
|
||||
DO_Syrup_Pump_Run AT %QX3.5 : BOOL; (* N10_O75_154U42 *)
|
||||
DO_Product_Pump_Run AT %QX3.6 : BOOL; (* N10_O76_154U42 *)
|
||||
DO_Product_Pump_VFC_Run (* AT %QX7.7*) : BOOL; (* N10_O77_154U42 *)
|
||||
DO_LinkByte7 AT %QB7 : BYTE ;
|
||||
|
||||
DO_FillerRinsePump (* AT %QX7.0 *) : BOOL; (* N10_O143_154U46 *)
|
||||
|
||||
DO_EV48_Deair_Inlet_Valve (* AT %QX8.0 *) : BOOL;
|
||||
DO_EV49_Deair_Bypass_Valve (* AT %QX8.1 *) : BOOL;
|
||||
DO_EV50_Deair_Bypass_Valve (* AT %QX8.2 *) : BOOL;
|
||||
DO_FillerNextRecipe_0 (* AT %QX2.0 *) : BOOL; (* N10_O225_154U47/2 *)
|
||||
DO_FillerNextRecipe_1 (* AT %QX2.1 *) : BOOL; (* N10_O226_154U47/2 *)
|
||||
DO_FillerNextRecipe_2 (* AT %QX2.2 *) : BOOL; (* N10_O227_154U47/2 *)
|
||||
DO_FillerNextRecipe_3 (* AT %QX2.3 *) : BOOL; (* N10_O228_154U47/2 *)
|
||||
DO_FillerNextRecipe_4 (* AT %QX2.4 *) : BOOL; (* N10_O230_154U47/3 *)
|
||||
DO_FillerNextRecipe_5 (* AT %QX2.5 *) : BOOL; (* N10_O231_154U47/3 *)
|
||||
DO_FillerNextRecipe_6 (* AT %QX2.6 *) : BOOL; (* N10_O232_154U47/3 *)
|
||||
DO_FillerNextRecipe_7 (* AT %QX2.7 *) : BOOL; (* N10_O233_154U47/3 *)
|
||||
DO_LinkByte8 AT %QB8 : BYTE ;
|
||||
|
||||
DO_EV51_ByPassPolpe (* AT %QX9.1 *) : BOOL; (* N10_O150_154U36 *)
|
||||
DO_EV52_ByPassPolpe (* AT %QX9.0 *) : BOOL; (* N10_O150_154U36 *)
|
||||
DO_EV63_SyrupLineInletWater (* AT %QX9.4 *) : BOOL; (* N10_O190_154U30 *)
|
||||
DO_EV64_SyrupLineInletSyrup1 (* AT %QX9.5 *) : BOOL; (* N10_O190_154U30 *)
|
||||
DO_EV65_SyrupLineInletSyrup2 (* AT %QX9.6 *) : BOOL; (* N10_O190_154U30 *)
|
||||
DO_EV66_FillerRinseWater (* AT %QX9.7 *) : BOOL; (* N10_O152_154U36 *)
|
||||
DO_LinkByte9 AT %QB9 : BYTE ;
|
||||
|
||||
DO_HoldSyrupMeter (* AT %QX10.0 *) : BOOL; (* N10_O170_154U38 *)
|
||||
DO_EV67_SyrupLineDrain (* AT %QX10.0 *) : BOOL; (* N10_O153_154U36 *)
|
||||
DO_EV68_FillerRinseTankInletWater (* AT %QX2.4 *) : BOOL; (* N10_O154_154U37 *)
|
||||
DO_EV71_Filler_ProductPipeDrain (* AT %QX10.2 *) : BOOL; (* N10_O156_154U37 *)
|
||||
DO_EV71_FillerRinseTankSprayBall (* AT %QX2.6 *) : BOOL; (* N10_O156_154U37 *)
|
||||
DO_EV72_FillerRinseTankDrain (* AT %QX2.7 *) : BOOL; (* N10_O157_154U37 *)
|
||||
DO_LinkByte10 AT %QB10 : BYTE ;
|
||||
|
||||
DO_Yellow_Lamp (* AT %QX6.2 *) : BOOL; (* N10_O140_154U32 *)
|
||||
DO_Green_Lamp (* AT %QX6.3 *) : BOOL; (* N10_O141_154U32 *)
|
||||
DO_Red_Lamp (* AT %QX6.1 *) : BOOL; (* N10_O142_154U32 *)
|
||||
DO_Blu_Lamp (* AT %QX6.4 *) : BOOL; (* N10_O142_154U32 *)
|
||||
DO_White_Lamp (* AT %QX6.5 *) : BOOL; (* N10_O142_154U32 *)
|
||||
DO_Thermic_Protection (* AT %QX6.6 *) : BOOL; (* N10_O142_154U32 *)
|
||||
DO_EV02_Deair2_FillUp_Valve (* AT %QX11.4 *) : BOOL; (* N10_O06_154U32 *)
|
||||
DO_EV01_Deair2_Lvl_Ctrl_Valve (* AT %QX11.5 *) : BOOL; (* N10_O07_154U32 *)
|
||||
DO_LinkByte11 AT %QB11 : BYTE ;
|
||||
|
||||
DO_EV01_Deair_Lvl_Ctrl_Valve AT %QX19.0 : BOOL; (* N10_O07_154U32 *)
|
||||
DO_EV02_Deair_FillUp_Valve AT %QX19.1 : BOOL; (* N10_O06_154U32 *)
|
||||
DO_EV11_BlowOff_Valve AT %QX16.0 : BOOL; (* N10_O180_154U38 *)
|
||||
DO_EV12_Deair_Reflux_Valve (* AT %QX16.1 *) : BOOL; (* N10_O181_154U38 *)
|
||||
DO_EV13_Prod_Recirc_Valve AT %QX16.1 : BOOL; (* N10_O182_154U38 *)
|
||||
DO_EV14_DeairDrain_Valve AT %QX16.2 : BOOL; (* N10_O183_154U38 *)
|
||||
DO_EV14_P1_DeairDrain_Valve (* AT %QX4.4 *) : BOOL; (* N10_O183_154U38 *)
|
||||
DO_EV15_ProductTank_Drain_Valve AT %QX16.3 : BOOL; (* N10_O184_154U39 *)
|
||||
DO_EV16_SyrupTank_Drain_Valve AT %QX16.4 : BOOL; (* N10_O185_154U39 *)
|
||||
DO_EV17_BufferTankSprayBall_Valve AT %QX16.5 : BOOL; (* N10_O186_154U39 *)
|
||||
DO_EV18_DeairOverfill_Valve AT %QX16.6 : BOOL; (* N10_O187_154U39 *)
|
||||
DO_EV16_P1_SyrupTank_Drain_Valve (* AT %QX4.7*) : BOOL; (* N10_O185_154U39 *)
|
||||
DO_EV21_ProdTankOverfill_Valve AT %QX16.7 : BOOL; (* N10_O190_154U42 *)
|
||||
DO_EV17_P1_Syrup_Valve (* AT %QX5.1*) : BOOL; (* N10_O186_154U39 *)
|
||||
DO_EV22_WaterPumpPrime_Valve AT %QX17.0 : BOOL; (* N10_O191_154U42 *)
|
||||
DO_EV23_SerpentineDrain_valve AT %QX17.1 : BOOL; (* N10_O192_154U42 *)
|
||||
DO_EV24_SyrupRecirc_Valve AT %QX17.2 : BOOL; (* N10_O193_154U42 *)
|
||||
DO_EV25_VaccumPumpWater_Valve (* AT %QX17.3 *) : BOOL; (* N10_O194_154U42 *)
|
||||
DO_EV26_CO2InjShutOff_Valve AT %QX17.3 : BOOL; (* N10_O195_154U42 *)
|
||||
DO_EV27_DeairSprayBall_Valve AT %QX17.4 : BOOL; (* N10_O196_154U42 *)
|
||||
DO_EV23_P1_DeairConnection_valve (* AT %QX5.6 *) : BOOL; (* N10_O192_154U42 *)
|
||||
DO_EV28_DeairStartCO2Inj_Valve AT %QX17.5 : BOOL; (* N10_O197_154U42 *)
|
||||
DO_EV41_CO2Inlet_Valve (* AT %QX18.6 *) : BOOL; (* N10_O200_154U42 *)
|
||||
DO_EV42_N2Inlet_Valve (* AT %QX18.7 *) : BOOL; (* N10_O201_154U42 *)
|
||||
DO_EV43_DeairVacu_Valve (* AT %QX18.2 *) : BOOL; (* N10_O202_154U42 *)
|
||||
DO_EV44_SyrupLineDrain AT %QX17.6 : BOOL; (* N10_O193_154U42 *)
|
||||
DO_EV46_FillerCO2Valve (* AT %QX17.4 *) : BOOL; (* N10_O151_154U36 *)
|
||||
DO_EV61_SyrupTankSprayBall AT %QX18.0 : BOOL; (* N10_O150_154U36 *)
|
||||
DO_EV62_ProductOutlet AT %QX18.1 : BOOL; (* N10_O151_154U36 *)
|
||||
DO_EV69_Blender_ProductPipeDrain AT %QX18.2 : BOOL; (* N10_O155_154U37 *)
|
||||
DO_EV73_WaterInlet_Valve (* AT %QX18.7 *) : BOOL; (* N10_O200_154U42 *)
|
||||
DO_EV74_CIPInlet_Valve (* AT %QX19.0 *) : BOOL; (* N10_O201_154U42 *)
|
||||
DO_EV75_SyrupInlet_Valve (* AT %QX19.1 *) : BOOL; (* N10_O201_154U42 *)
|
||||
DO_EV76_SyrupBypass_Valve (* AT %QX19.2 *) : BOOL; (* N10_O201_154U42 *)
|
||||
DO_EV77_SyrupBypass_Valve (* AT %QX19.3 *) : BOOL; (* N10_O201_154U42 *)
|
||||
DO_EV78_ProductShutOff_Valve (* AT %QX19.4 *) : BOOL; (* N10_O201_154U42 *)
|
||||
DO_EV80_Prod_Recirc_WoChiller_Valve (* AT %QX19.4 *) : BOOL; (* N10_O201_154U42 *)
|
||||
DO_EV81_Prod_Recirc_Chiller_Valve AT %QX18.3 : BOOL; (* N10_O201_154U42 *)
|
||||
|
||||
DO_LinkByte16 AT %QB16 : BYTE ;
|
||||
DO_LinkByte17 AT %QB17 : BYTE ;
|
||||
DO_LinkByte18 AT %QB18 : BYTE ;
|
||||
DO_LinkByte19 AT %QB19 : BYTE ;
|
||||
DO_LinkByte20 AT %QB20 : BYTE ;
|
||||
DO_LinkByte21 AT %QB21 : BYTE ;
|
||||
|
||||
(*************************************************************************)
|
||||
(* ANALOG INPUT *)
|
||||
(*************************************************************************)
|
||||
|
||||
AI_ProductTankLevel AT %IW100 : WORD; (* N10_IW100_154U52 *)
|
||||
AI_ProductTankPressure AT %IW102 : WORD; (* N10_IW102_154U52 *)
|
||||
AI_CIPHeaterTemperature (* AT %IW110 *) : WORD; (* N10_IW104_154U52 *)
|
||||
AI_CIPReturnTemperature (* AT %IW116 *) : WORD; (* N10_IW126_154U52 *)
|
||||
AI_ProductTemperature AT %IW108 : WORD; (* N10_IW116_154U52 *)
|
||||
AI_ProductConductivity (* AT %IW108 *) : WORD; (* N10_IW108_154U52 *)
|
||||
AI_CIPWaterCond (* AT %IW108 *) : WORD; (* N10_IW108_154U52 *)
|
||||
AI_ProductO2 (* AT %IW110 *) : WORD; (* N10_IW112_154U52 *)
|
||||
AI_CIPCausticCond (* AT %IW110 *) : WORD; (* N10_IW104_154U52 *)
|
||||
AI_DeairWaterTemperature AT %IW112 : WORD; (* N10_IW110_154U52 *)
|
||||
AI_DeaireatorPressure (* AT %IW116 *) : WORD; (* N10_IW116_154U52 *)
|
||||
AI_WaterTemperature (* AT %IW106 *) : WORD; (* N10_IW106_154U52 *)
|
||||
AI_Spare7 (* AT %IW118 *) : WORD; (* N10_IW118_154U52 *)
|
||||
AI_FillerLevel (* AT %IW120 *) : WORD; (* N10_IW120_154U52 *)
|
||||
AI_Spare11 (* AT %IW122 *) : WORD; (* N10_IW122_154U52 *)
|
||||
AI_P3_PVFreq (* AT %IW104 *) : WORD ;
|
||||
AI_DifferentialTransducer (* AT %IW108 *) : INT ;
|
||||
AI_SyrupTankLevel AT %IW110 : WORD; (* N10_IW116_154U52 *)
|
||||
AI_InjectionPressure AT %IW114 : WORD ;
|
||||
AI_ProdTankPressureValve_VEP1 AT %IW106 : INT; (* N10_IW116_154U52 *)
|
||||
AI_DeaireationValve_VEP4 AT %IW104 : INT ;
|
||||
|
||||
(*************************************************************************)
|
||||
(* ANALOG INPUT *)
|
||||
(*************************************************************************)
|
||||
AI_ProductBrix (* AT %IW360 *) : WORD; (* N10_IW360_154U52 *)
|
||||
AI_ProductCO2 (* AT %IW362 *) : WORD; (* N10_IW362_154U52 *)
|
||||
AI_PoductTemp (* AT %IW364 *) : WORD; (* N10_IW364_154U52 *)
|
||||
AI_PrecSpare3 (* AT %IW366 *) : WORD; (* N10_IW366_154U52 *)
|
||||
AI_PrecSpare4 (* AT %IW368 *) : WORD; (* N10_IW368_154U52 *)
|
||||
AI_PrecSpare5 (* AT %IW370 *) : WORD; (* N10_IW370_154U52 *)
|
||||
AI_PrecSpare6 (* AT %IW372 *) : WORD; (* N10_IW372_154U52 *)
|
||||
AI_PrecSpare7 (* AT %IW374 *) : WORD; (* N10_IW374_154U52 *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* ANALOG OUTPUT *)
|
||||
(*************************************************************************)
|
||||
|
||||
AO_WaterCtrlValve_VM1 AT %QW100 : WORD ; (* N10_OW100_154U62 *)
|
||||
AO_SyrupCtrlValve_VM2 AT %QW102 : WORD ; (* N10_OW102_154U62 *)
|
||||
AO_CarboCO2CtrlValve_VM3 AT %QW104 : WORD ; (* N10_OW104_154U62 *)
|
||||
AO_ProdTankPressureValve_VEP1 AT %QW106 : WORD ; (* N10_OW106_154U62 *)
|
||||
|
||||
AO_SyrupInletValve_VEP3 AT %QW112 : WORD ; (* N10_OW102_154U62 *)
|
||||
AO_ProductRunOutAmount (* AT %QW108 *) : WORD ; (* N10_OW108_154U72 *)
|
||||
AO_WaterTempCtrlValve (* AT %QW116 *) : WORD ; (* N10_OW108_154U72 *)
|
||||
AO_ProdPumpFreq (* AT %QW110 *) : WORD ; (* N10_OW110_154U72 *)
|
||||
AO_ProdTempCtrlValve AT %QW110 : WORD ; (* N10_OW110_154U72 *)
|
||||
AO_CIPTempCtrlValve (* AT %QW110 *) : WORD ; (* N10_OW112_154U72 *)
|
||||
AO_ToFillerEqPress (* AT %QW114 *) : WORD ; (* N10_OW114_154U72 *)
|
||||
AO_InjectionPressure AT %QW114 : WORD ;
|
||||
AO_DeaireationValve_VEP4 AT %QW108 : WORD ;
|
||||
AO_CIPWaterCond (* AT %QW116 *) : WORD; (* N10_IW108_154U52 *)
|
||||
AO_CIPCausticCond (* AT %QW120 *) : WORD; (* N10_IW104_154U52 *)
|
||||
AO_CIPReturnTemperature (* AT %QW118 *) : WORD; (* N10_IW126_154U52 *)
|
||||
|
||||
AO_Spare8 (* AT %QW116 *) : WORD ; (* N10_OW116_154U82 *)
|
||||
AO_Spare9 (* AT %QW118 *) : WORD ; (* N10_OW118_154U82 *)
|
||||
END_VAR
|
||||
(* @OBJECT_END := Global_Variables_IN_OUT *)
|
||||
(* @CONNECTIONS := Global_Variables_IN_OUT
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,322 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := HMI_Alarms *)
|
||||
(* @PATH := '\/HMI_Variable' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
(**********************************************************************************************************************)
|
||||
(* FAULT ALARMS *)
|
||||
(**********************************************************************************************************************)
|
||||
gH_Alarm001 :BOOL; (* Auxiliary Not Engaged *)
|
||||
gH_Alarm002 :BOOL; (* Not a Recipe: invalid Recipe Type Selection *)
|
||||
gH_Alarm003 :BOOL; (* Error during Densimeter Calibration *)
|
||||
gH_Alarm004 :BOOL; (* Filler Communication Fault *)
|
||||
gH_Alarm005 :BOOL; (* *)
|
||||
gH_Alarm006 :BOOL; (* CIP Communication Fault *)
|
||||
gH_Alarm007 :BOOL; (* Differential Pressure Transducer Fault *)
|
||||
gH_Alarm008 :BOOL; (* Syrup tank flooded *)
|
||||
gH_Alarm009 :BOOL; (* *)
|
||||
gH_Alarm010 :BOOL; (* Profibus Valves Base Node12 Fault *)
|
||||
gH_Alarm011 :BOOL; (* Profibus Valves Base Node13 Fault *)
|
||||
gH_Alarm012 :BOOL; (* Profibus Low Conductimeter Node 15 Fault *)
|
||||
gH_Alarm013 :BOOL; (* Profibus High Conductimeter Node 16 Fault *)
|
||||
gH_Alarm014 :BOOL; (* Pressure Control Valve Position Fault *)
|
||||
gH_Alarm015 :BOOL; (* Deareation Control Valve Position Fault *)
|
||||
gH_Alarm016 :BOOL; (* Water Inlet Valve EV73 Position Fault *)
|
||||
gH_Alarm017 :BOOL; (* CIP Inlet Valve EV74 Position Fault *)
|
||||
gH_Alarm018 :BOOL; (* Product Outlet Valve EV62 Position Fault *)
|
||||
gH_Alarm019 :BOOL; (* Filler Pressure Valve EV46 Position Fault *)
|
||||
gH_Alarm020 :BOOL; (* Product Brix Too High *)
|
||||
gH_Alarm021 :BOOL; (* Product Brix Too Low *)
|
||||
gH_Alarm022 :BOOL; (* Product CO2 Too High *)
|
||||
gH_Alarm023 :BOOL; (* Product CO2 Too Low *)
|
||||
gH_Alarm024 :BOOL; (* *)
|
||||
gH_Alarm025 :BOOL; (* Product Pump P3 VFC Fault - Fault Alarm *)
|
||||
gH_Alarm026 :BOOL; (* ByPass Pump P6 Fault - Fault Alarm *)
|
||||
gH_Alarm027 :BOOL; (* mPDS1000 Error Fault *)
|
||||
gH_Alarm028 :BOOL; (* Densimeter Tubes Not Oscillating *)
|
||||
gH_Alarm029 :BOOL; (* Water Pump P5 Fault - Fault Alarm - *)
|
||||
gH_Alarm030 :BOOL; (* Water Pump P1 Fault - Fault Alarm - *)
|
||||
gH_Alarm031 :BOOL; (* Syrup Pump P2 Fault - Fault Alarm - *)
|
||||
gH_Alarm032 :BOOL; (* Product Pump P3 Fault - Fault Alarm - *)
|
||||
gH_Alarm033 :BOOL; (* Vacuum Pump P4 Fault - Fault Alarm - *)
|
||||
gH_Alarm034 :BOOL; (* Tank Rinse Pump P5 Fault - Fault Alarm - *)
|
||||
gH_Alarm035 :BOOL; (* Water FlowMeter General Fault - Fault Alarm - *)
|
||||
gH_Alarm036 :BOOL; (* Syrup FlowMeter General Fault - Fault Alarm - *)
|
||||
gH_Alarm037 :BOOL; (* Carbo CO2 FlowMeter Fault - Fault Alarm - *)
|
||||
gH_Alarm038 :BOOL; (* Water Control Valve Position Fault - Fault Alarm - *)
|
||||
gH_Alarm039 :BOOL; (* Syrup Control Valve Position Fault - Fault Alarm - *)
|
||||
gH_Alarm040 :BOOL; (* Carbo CO2 Control Valve Position Fault - Fault Alarm - *)
|
||||
gH_Alarm041 :BOOL; (* Product Tank Pressure Fault - Fault Alarm - *)
|
||||
gH_Alarm042 :BOOL; (* Blend Error Fault: High Syrup - Fault Alarm - *)
|
||||
gH_Alarm043 :BOOL; (* Blend Error Fault: Low Syrup - Fault Alarm - *)
|
||||
gH_Alarm044 :BOOL; (* CarboCO2 Error Fault: Low CO2 - Fault Alarm - *)
|
||||
gH_Alarm045 :BOOL; (* CarboCO2 Error Fault: High CO2 - Fault Alarm - *)
|
||||
gH_Alarm046 :BOOL; (* Vacuum TimeOut - Fault Alarm - *)
|
||||
gH_Alarm047 :BOOL; (* CIP Transfer Time Out - Fault Alarm - *)
|
||||
gH_Alarm048 :BOOL; (* CIP No Recirculation Flow - Fault Alarm - *)
|
||||
gH_Alarm049 :BOOL; (* *)
|
||||
gH_Alarm050 :BOOL; (* Profibus Master Node 1 Crash *)
|
||||
gH_Alarm051 :BOOL; (* Profibus ET200 Node 10 Fault *)
|
||||
gH_Alarm052 :BOOL; (* Profibus Water MFM Node 20 Fault *)
|
||||
gH_Alarm053 :BOOL; (* Profibus Syrup MFM Node 21 Fault *)
|
||||
gH_Alarm054 :BOOL; (* Profibus CO2 MFM Node 22 Fault *)
|
||||
gH_Alarm055 :BOOL; (* Profibus Product Pump VFC Node Fault *)
|
||||
gH_Alarm056 :BOOL; (* *)
|
||||
gH_Alarm057 :BOOL; (* UPS Battery not ready - NON FERMA LA MACHINA *)
|
||||
gH_Alarm058 :BOOL; (* Profibus Adapter mPDS Error Fault *)
|
||||
gH_Alarm059 :BOOL; (* mPDS2000 Error Fault *)
|
||||
(*********************************************************************************************************************)
|
||||
(* SUPPLIES ALARMS *)
|
||||
(*********************************************************************************************************************)
|
||||
gH_Alarm060 :BOOL; (* Low Infeed Air Pressure Fault - Supplies Alarm - *)
|
||||
gH_Alarm061 :BOOL; (* Low Infeed CO2 Pressure Fault - Supplies Alarm - *)
|
||||
gH_Alarm062 :BOOL; (* Deaireator Water Low Level - Supplies Alarm - *)
|
||||
gH_Alarm063 :BOOL; (* Syrup Tank Low Level - Supplies Alarm - *)
|
||||
gH_Alarm064 :BOOL; (* Syrup Room Pump Fault - Supplies Alarm - *)
|
||||
gH_Alarm065 :BOOL; (* Syrup Brix Out Of Standard - Supplies Alarm - *)
|
||||
gH_Alarm066 :BOOL; (* Chiller Ammonia Pressure Too Low - Supplies Alarm - *)
|
||||
gH_Alarm067 :BOOL; (* Water Temperature Too High *)
|
||||
gH_Alarm068 :BOOL; (* Product Temperature Too High *)
|
||||
gH_Alarm069 :BOOL; (* Syrup Room Water Pump Fault - Supplie Alarm - *)
|
||||
gH_Alarm070 :BOOL; (* Syrup Density Out Of Standard - Supplies Alarm - *)
|
||||
gH_Alarm071 :BOOL; (* *)
|
||||
gH_Alarm072 :BOOL; (* Ammonia compressors not running - Supplies Alarm *)
|
||||
gH_Alarm073 :BOOL; (* *)
|
||||
gH_Alarm074 :BOOL; (* *)
|
||||
gH_Alarm075 :BOOL; (* *)
|
||||
gH_Alarm076 :BOOL; (* *)
|
||||
gH_Alarm077 :BOOL; (* *)
|
||||
gH_Alarm078 :BOOL; (* *)
|
||||
gH_Alarm079 :BOOL; (* *)
|
||||
gH_Alarm080 :BOOL; (* *)
|
||||
gH_Alarm081 :BOOL; (* *)
|
||||
gH_Alarm082 :BOOL; (* *)
|
||||
gH_Alarm083 :BOOL; (* *)
|
||||
gH_Alarm084 :BOOL; (* *)
|
||||
gH_Alarm085 :BOOL; (* *)
|
||||
gH_Alarm086 :BOOL; (* *)
|
||||
gH_Alarm087 :BOOL; (* *)
|
||||
gH_Alarm088 :BOOL; (* *)
|
||||
gH_Alarm089 :BOOL; (* *)
|
||||
(**********************************************************************************************************************)
|
||||
(* EXTERNAL ALARMS *)
|
||||
(**********************************************************************************************************************)
|
||||
gH_Alarm090 :BOOL; (* CIP Fault *)
|
||||
gH_Alarm091 :BOOL; (* *)
|
||||
gH_Alarm092 :BOOL; (* *)
|
||||
gH_Alarm093 :BOOL; (* *)
|
||||
gH_Alarm094 :BOOL; (* *)
|
||||
gH_Alarm095 :BOOL; (* *)
|
||||
gH_Alarm096 :BOOL; (* *)
|
||||
gH_Alarm097 :BOOL; (* *)
|
||||
gH_Alarm098 :BOOL; (* *)
|
||||
gH_Alarm099 :BOOL; (* *)
|
||||
gH_Alarm100 :BOOL; (* *)
|
||||
gH_Alarm101 :BOOL; (* *)
|
||||
gH_Alarm102 :BOOL; (* *)
|
||||
gH_Alarm103 :BOOL; (* *)
|
||||
gH_Alarm104 :BOOL; (* *)
|
||||
gH_Alarm105 :BOOL; (* *)
|
||||
gH_Alarm106 :BOOL; (* *)
|
||||
gH_Alarm107 :BOOL; (* *)
|
||||
gH_Alarm108 :BOOL; (* *)
|
||||
gH_Alarm109 :BOOL; (* *)
|
||||
gH_Alarm110 :BOOL; (* *)
|
||||
gH_Alarm111 :BOOL; (* *)
|
||||
gH_Alarm112 :BOOL; (* *)
|
||||
gH_Alarm113 :BOOL; (* *)
|
||||
gH_Alarm114 :BOOL; (* *)
|
||||
gH_Alarm115 :BOOL; (* *)
|
||||
gH_Alarm116 :BOOL; (* *)
|
||||
gH_Alarm117 :BOOL; (* *)
|
||||
gH_Alarm118 :BOOL; (* *)
|
||||
gH_Alarm119 :BOOL; (* *)
|
||||
(**********************************************************************************************************************)
|
||||
(* OPERATOR ALARMS *)
|
||||
(**********************************************************************************************************************)
|
||||
gH_Alarm120 :BOOL; (* Water Manual Valve Open *)
|
||||
gH_Alarm121 :BOOL; (* Syrup Line Manual Drain Valve Open *)
|
||||
gH_Alarm122 :BOOL; (* Syrup Line Not Selected *)
|
||||
gH_Alarm123 :BOOL; (* *)
|
||||
gH_Alarm124 :BOOL; (* *)
|
||||
gH_Alarm125 :BOOL; (* *)
|
||||
gH_Alarm126 :BOOL; (* *)
|
||||
gH_Alarm127 :BOOL; (* *)
|
||||
gH_Alarm128 :BOOL; (* *)
|
||||
gH_Alarm129 :BOOL; (* *)
|
||||
gH_Alarm130 :BOOL; (* Manifold not ready for Prod *)
|
||||
gH_Alarm131 :BOOL; (* Manifold not ready for CIP *)
|
||||
gH_Alarm132 :BOOL; (* *)
|
||||
gH_Alarm133 :BOOL; (* *)
|
||||
gH_Alarm134 :BOOL; (* *)
|
||||
gH_Alarm135 :BOOL; (* *)
|
||||
gH_Alarm136 :BOOL; (* *)
|
||||
gH_Alarm137 :BOOL; (* *)
|
||||
gH_Alarm138 :BOOL; (* *)
|
||||
gH_Alarm139 :BOOL; (* *)
|
||||
gH_Alarm140 :BOOL; (* *)
|
||||
gH_Alarm141 :BOOL; (* *)
|
||||
gH_Alarm142 :BOOL; (* *)
|
||||
gH_Alarm143 :BOOL; (* *)
|
||||
gH_Alarm144 :BOOL; (* *)
|
||||
gH_Alarm145 :BOOL; (* *)
|
||||
gH_Alarm146 :BOOL; (* *)
|
||||
gH_Alarm147 :BOOL; (* *)
|
||||
gH_Alarm148 :BOOL; (* *)
|
||||
gH_Alarm149 :BOOL; (* *)
|
||||
gH_Alarm150 :BOOL; (* *)
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL
|
||||
gH_Message000 AT%MB300:BOOL; (* *)
|
||||
gH_Message001 AT%MB301:BOOL; (* *)
|
||||
gH_Message002 AT%MB302:BOOL; (* *)
|
||||
gH_Message003 AT%MB303:BOOL; (* Manual Activated *)
|
||||
gH_Message004 AT%MB304:BOOL; (* *)
|
||||
gH_Message005 AT%MB305:BOOL; (* *)
|
||||
gH_Message006 AT%MB306:BOOL; (* *)
|
||||
gH_Message007 AT%MB307:BOOL; (* *)
|
||||
gH_Message008 AT%MB308:BOOL; (* Opeartor Run Syrup Prep *)
|
||||
gH_Message009 AT%MB309:BOOL; (* Operator Start Deaireator *)
|
||||
gH_Message010 AT%MB310:BOOL; (* *)
|
||||
gH_Message011 AT%MB311:BOOL; (* *)
|
||||
gH_Message012 AT%MB312:BOOL; (* Water Flow Too Low *)
|
||||
gH_Message013 AT%MB313:BOOL; (* Water Stream Critical Speed *)
|
||||
gH_Message014 AT%MB314:BOOL; (* *)
|
||||
gH_Message015 AT%MB315:BOOL; (* *)
|
||||
gH_Message016 AT%MB316:BOOL; (* *)
|
||||
gH_Message017 AT%MB317:BOOL; (* CO2 inlet line pressure not stable *)
|
||||
gH_Message018 AT%MB318:BOOL; (* Product Brix Low *)
|
||||
gH_Message019 AT%MB319:BOOL; (* Product Brix High *)
|
||||
gH_Message020 AT%MB320:BOOL; (* Product CO2 Vol Low *)
|
||||
gH_Message021 AT%MB321:BOOL; (* Product CO2 Vol High *)
|
||||
gH_Message022 AT%MB322:BOOL; (* *)
|
||||
gH_Message023 AT%MB323:BOOL; (* *)
|
||||
gH_Message024 AT%MB324:BOOL; (* *)
|
||||
gH_Message025 AT%MB325:BOOL; (* *)
|
||||
gH_Message026 AT%MB326:BOOL; (* *)
|
||||
gH_Message027 AT%MB327:BOOL; (* Start Maselli pump *)
|
||||
gH_Message028 AT%MB328:BOOL; (* Maselli Lamp Failure *)
|
||||
gH_Message029 AT%MB329:BOOL; (* *)
|
||||
gH_Message030 AT%MB330:BOOL; (* Wait Filler CIP Signal *)
|
||||
gH_Message031 AT%MB331:BOOL; (* Wait Filler Product Request Signal *)
|
||||
gH_Message032 AT%MB332:BOOL; (* Wait Filler Rinse Completed Signal *)
|
||||
gH_Message033 AT%MB333:BOOL; (* Local CIP Wait Temperature *)
|
||||
gH_Message034 AT%MB334:BOOL; (* Local CIP Wait High Conductivity *)
|
||||
gH_Message035 AT%MB335:BOOL; (* Local CIP Wait Low Conductivity *)
|
||||
gH_Message036 AT%MB336:BOOL; (* Local CIP Wait Drain Completed *)
|
||||
gH_Message037 AT%MB337:BOOL; (* Local CIP Wait CIP cycle ended *)
|
||||
gH_Message038 AT%MB338:BOOL; (* Local CIP Wait Change ready *)
|
||||
gH_Message039 AT%MB339:BOOL; (* *)
|
||||
gH_Message040 AT%MB340:BOOL; (* *)
|
||||
gH_Message041 AT%MB341:BOOL; (* *)
|
||||
gH_Message042 AT%MB342:BOOL; (* *)
|
||||
gH_Message043 AT%MB343:BOOL; (* *)
|
||||
gH_Message044 AT%MB344:BOOL; (* *)
|
||||
gH_Message045 AT%MB345:BOOL; (* *)
|
||||
gH_Message046 AT%MB346:BOOL; (* *)
|
||||
gH_Message047 AT%MB347:BOOL; (* *)
|
||||
gH_Message048 AT%MB348:BOOL; (* *)
|
||||
gH_Message049 AT%MB349:BOOL; (* *)
|
||||
gH_Message050 AT%MB350:BOOL; (* Chiler Ammonia level too high *)
|
||||
gH_Message051 AT%MB351:BOOL; (* Product near to freezing temperature *)
|
||||
gH_Message052 AT%MB352:BOOL; (* Product temperature too high *)
|
||||
gH_Message053 AT%MB353:BOOL; (* Water near to freezing temperature *)
|
||||
gH_Message054 AT%MB354:BOOL; (* Water temperature to high *)
|
||||
gH_Message055 AT%MB355:BOOL; (* Check Oil in Modulating Valve *)
|
||||
gH_Message056 AT%MB356:BOOL; (* Check Oil in water pump motor *)
|
||||
gH_Message057 AT%MB357:BOOL; (* Profibus Product PH Node 18 Fault *)
|
||||
gH_Message058 AT%MB358:BOOL; (* Profibus Product ConductiveMeter Node 19 Fault *)
|
||||
gH_Message059 AT%MB359:BOOL; (* Product High Conductivity *)
|
||||
gH_Message060 AT%MB360:BOOL; (* Product Low Conductivity *)
|
||||
gH_Message061 AT%MB361:BOOL; (* Blend Fill System Start Up To Do *)
|
||||
gH_Message062 AT%MB362:BOOL; (* Wait filler ready to start up *)
|
||||
gH_Message063 AT%MB363:BOOL; (* Wait filler flushing completed *)
|
||||
gH_Message064 AT%MB364:BOOL; (* Wait filler loading completed *)
|
||||
gH_Message065 AT%MB365:BOOL; (* Profibus Product VFM Node 17 Fault *)
|
||||
gH_Message066 AT%MB366:BOOL; (* *)
|
||||
gH_Message067 AT%MB367:BOOL; (* *)
|
||||
gH_Message068 AT%MB368:BOOL; (* *)
|
||||
gH_Message069 AT%MB369:BOOL; (* *)
|
||||
gH_Message070 AT%MB370:BOOL; (* *)
|
||||
|
||||
gH_Status000 AT%MB600:BOOL; (* *)
|
||||
gH_Status001 AT%MB601:BOOL; (* Waiting Product Tank Pressure *)
|
||||
gH_Status002 AT%MB602:BOOL; (* Start Up Deaireator Running *)
|
||||
gH_Status003 AT%MB603:BOOL; (* Syrup Prep Running *)
|
||||
gH_Status004 AT%MB604:BOOL; (* Syrup Autocorrection Running *)
|
||||
gH_Status005 AT%MB605:BOOL; (* Syrup Run Out Running *)
|
||||
gH_Status006 AT%MB606:BOOL; (* First Product Running *)
|
||||
gH_Status007 AT%MB607:BOOL; (* Waiting Vacuum *)
|
||||
gH_Status008 AT%MB608:BOOL; (* Max Syrup Brix Autocorrection Acheaved - NOT USED*)
|
||||
gH_Status009 AT%MB609:BOOL; (* Product Brix Tracking Hold *)
|
||||
gH_Status010 AT%MB610:BOOL; (* Product Brix Tracking *)
|
||||
gH_Status011 AT%MB611:BOOL; (* Product CO2 Tracking *)
|
||||
gH_Status012 AT%MB600:BOOL; (* *)
|
||||
gH_Status013 AT%MB600:BOOL; (* *)
|
||||
gH_Status014 AT%MB614:BOOL; (* Warm Rinse Running *)
|
||||
gH_Status015 AT%MB615:BOOL; (* Cold Rinse Running *)
|
||||
gH_Status016 AT%MB616:BOOL; (* *)
|
||||
gH_Status017 AT%MB617:BOOL; (* *)
|
||||
gH_Status018 AT%MB618:BOOL; (* *)
|
||||
gH_Status019 AT%MB619:BOOL; (* *)
|
||||
gH_Status020 AT%MB620:BOOL; (* *)
|
||||
gH_Status021 AT%MB621:BOOL; (* *)
|
||||
gH_Status022 AT%MB622:BOOL; (* CIP Drain Activated *)
|
||||
gH_Status023 AT%MB623:BOOL; (* Water Line Carbonating Running *)
|
||||
gH_Status024 AT%MB624:BOOL; (* *)
|
||||
gH_Status025 AT%MB625:BOOL; (* Product Tank Drain Active *)
|
||||
gH_Status026 AT%MB626:BOOL; (* Rinse Drain Active *)
|
||||
gH_Status027 AT%MB627:BOOL; (* *)
|
||||
gH_Status028 AT%MB628:BOOL; (* *)
|
||||
gH_Status029 AT%MB629:BOOL; (* *)
|
||||
gH_Status030 AT%MB630:BOOL; (* *)
|
||||
gH_Status031 AT%MB631:BOOL; (* *)
|
||||
gH_Status032 AT%MB632:BOOL; (* *)
|
||||
gH_Status033 AT%MB633:BOOL; (* *)
|
||||
gH_Status034 AT%MB634:BOOL; (* *)
|
||||
gH_Status035 AT%MB635:BOOL; (* *)
|
||||
gH_Status036 AT%MB636:BOOL; (* *)
|
||||
gH_Status037 AT%MB637:BOOL; (* Local CIP Hold *)
|
||||
gH_Status038 AT%MB638:BOOL; (* Local CIP Completed *)
|
||||
gH_Status039 AT%MB639:BOOL; (* System Run Out Running *)
|
||||
gH_Status040 AT%MB640:BOOL; (* *)
|
||||
gH_Status041 AT%MB641:BOOL; (* *)
|
||||
gH_Status042 AT%MB642:BOOL; (* *)
|
||||
gH_Status043 AT%MB643:BOOL; (* *)
|
||||
gH_Status044 AT%MB644:BOOL; (* Product Tank Run Out Running *)
|
||||
gH_Status045 AT%MB645:BOOL; (* Product Pipe Run Out Running *)
|
||||
gH_Status046 AT%MB646:BOOL; (* *)
|
||||
gH_Status047 AT%MB647:BOOL; (* Product Pipe Draining *)
|
||||
gH_Status048 AT%MB648:BOOL; (* Filler Rinse Running *)
|
||||
gH_Status049 AT%MB649:BOOL; (* *)
|
||||
gH_Status050 AT%MB650:BOOL; (* *)
|
||||
gH_Status051 AT%MB651:BOOL; (* *)
|
||||
gH_Status052 AT%MB652:BOOL; (* *)
|
||||
gH_Status053 AT%MB653:BOOL; (* *)
|
||||
gH_Status054 AT%MB654:BOOL; (* *)
|
||||
gH_Status055 AT%MB655:BOOL; (* *)
|
||||
gH_Status056 AT%MB656:BOOL; (* *)
|
||||
gH_Status057 AT%MB657:BOOL; (* *)
|
||||
gH_Status058 AT%MB658:BOOL; (* *)
|
||||
gH_Status059 AT%MB659:BOOL; (* *)
|
||||
gH_Status060 AT%MB660:BOOL; (* *)
|
||||
gH_Status061 AT%MB661:BOOL; (* Blend Fill System Buffer Tank Loading *)
|
||||
gH_Status062 AT%MB662:BOOL; (* Blend Fill System Pressurization Running *)
|
||||
gH_Status063 AT%MB663:BOOL; (* Blend Fill System Product Filler Load *)
|
||||
gH_Status064 AT%MB664:BOOL; (* Blend Fill System Product Filler Send *)
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL
|
||||
gH_Message AT %MB300 : ARRAY [0..70] OF BOOL;
|
||||
gH_Message_code :INT;
|
||||
|
||||
gH_Status AT %MB600 : ARRAY [0..70] OF BOOL;
|
||||
gH_Status_code : INT ;
|
||||
END_VAR
|
||||
(* @OBJECT_END := HMI_Alarms *)
|
||||
(* @CONNECTIONS := HMI_Alarms
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,269 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := HMI_Blender_Parameters *)
|
||||
(* @PATH := '\/HMI_Variable' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL PERSISTENT
|
||||
(*************************************************************************)
|
||||
(* PROCESSOR OPTIONS *)
|
||||
(*************************************************************************)
|
||||
gH_Blender_OPT_ModelNum : UINT ; (* *)
|
||||
gH_Blender_OPT_CO2_Offset : REAL ; (* *)
|
||||
gH_Blender_OPT_MaxSyrDeltaBrix : REAL ; (* *)
|
||||
|
||||
gH_Blender_OPT_BrixMeter : BOOL ; (* *)
|
||||
gH_Blender_OPT_MeterType : UINT ; (* 1: Maselli 2: AntoonPaar 3: 4-20mA 4: UC05 UR22 *)
|
||||
gH_Blender_OPT_MeterReceiveOnly : BOOL ; (* *)
|
||||
gH_Blender_OPT_SyrBrixMeter : BOOL ; (* *)
|
||||
gH_Blender_OPT_SyrupLevel : BOOL ; (* 0: Digital 1: Analogical *)
|
||||
|
||||
gH_Blender_OPT_FastChangeOverEnabled : BOOL ; (* *)
|
||||
gH_Blender_OPT_FillerRinseTank : BOOL ; (* *)
|
||||
gH_Blender_OPT_BlendFillSystem : BOOL ; (* *)
|
||||
gH_Blender_OPT_TrackFillerSpeed : BOOL ; (* *)
|
||||
gH_Blender_OPT_SignalExchange : UINT ; (* 0: Hardware 1: Ethernet 2: DeviceNet *)
|
||||
|
||||
gH_Blender_OPT_CoolerPresent : BOOL ; (* *)
|
||||
gH_Blender_OPT_CoolerControl : UINT ; (* 0: External 1: Only Water 2: Only Product 3: Water+Product -Separated Control- 4: Water+Product -Single Control- *)
|
||||
gH_Blender_OPT_CoolerType : UINT ; (* 0: Glycol 1: Ammonia *)
|
||||
|
||||
gH_Blender_OPT_LocalCIP : BOOL ; (* *)
|
||||
gH_Blender_OPT_Conductimeter : BOOL ; (* *)
|
||||
gH_Blender_OPT_Conductimeter_Profibus : BOOL ; (* *)
|
||||
gH_Blender_OPT_CIPSignalExchange : BOOL ; (* *)
|
||||
|
||||
gH_Blender_OPT_RemoteInjection : BOOL ; (* *)
|
||||
gH_Blender_OPT_CarboPresent : BOOL ;
|
||||
gH_Blender_OPT_InjectionPress_Ctrl : BOOL ; (* 0: Manual 1: Automatic ----- Injection pressure control and deareation valve *)
|
||||
gH_Blender_OPT_VacuumPump : BOOL ; (* *)
|
||||
|
||||
gH_Blender_OPT_DoubleDeair : BOOL ; (* *)
|
||||
gH_Blender_OPT_ByPassDeair : BOOL ; (* EV48 EV49 EV50 *)
|
||||
gH_Blender_OPT_Deaireation : BOOL ; (* 0: SAG 1:SAE/SAF *)
|
||||
gH_Blender_OPT_StillWaterByPass : BOOL ; (* EV39 EV40 *)
|
||||
gH_Blender_OPT_Flowtronic : BOOL ; (* 0: Not Present 1: Present *)
|
||||
|
||||
gH_Blender_OPT_Inverter : BOOL ; (* *)
|
||||
gH_Blender_OPT_DivertPanel : UINT ; (* *)
|
||||
gH_Blender_OPT_Promass : UINT ; (* *)
|
||||
gH_Blender_OPT_WaterPromass : BOOL ; (* *)
|
||||
gH_Blender_OPT_ProductConductimeter : BOOL ; (* *)
|
||||
gH_Blender_OPT_ProductPulp : BOOL ; (* *)
|
||||
gH_Blender_OPT_PLCDataAcq : BOOL ; (* *)
|
||||
gH_Blender_OPT_CO2_N2_Injection : BOOL ; (* *)
|
||||
gH_Blender_OPT_UPS_Siemens : BOOL ; (* *)
|
||||
gH_Blender_OPT_UVLamp : BOOL ; (* *)
|
||||
gH_Blender_OPT_RunOut_Water : BOOL ; (* 0: Water Not Present - 1: Water Present *)
|
||||
|
||||
gH_Blender_OPT_Simulation : BOOL ; (* *)
|
||||
|
||||
|
||||
(*************************************************************************)
|
||||
(* ACTUAL RECIPE PARAMETERS *)
|
||||
(*************************************************************************)
|
||||
gH_A_Recipe_Name : STRING ;
|
||||
gH_A_Recipe_SyrupBrix : REAL ; (* *)
|
||||
gH_A_Recipe_SyrupDensity : REAL ; (* *)
|
||||
gH_A_Recipe_SyrupFactor : REAL ; (* *)
|
||||
gH_A_Recipe_ProductBrix : REAL ; (* *)
|
||||
gH_A_Recipe_ProductionRate : REAL ; (* *)
|
||||
gH_A_Recipe_Ratio : REAL ; (* *)
|
||||
gH_A_Recipe_ProdBrixOffset : REAL ; (* *)
|
||||
gH_A_Recipe_CO2Vols : REAL ; (* *)
|
||||
gH_A_Recipe_CO2Fact : REAL ; (* *)
|
||||
gH_A_Recipe_CO2 : BOOL ; (* *)
|
||||
gH_A_Recipe_ProdTankPress : REAL ; (* *)
|
||||
gH_A_Recipe_SP_ProdTemp : REAL ; (* *)
|
||||
gH_A_Recipe_EnProdTemp : BOOL ; (* *)
|
||||
gH_A_Recipe_PrdTankMinLevel : REAL ; (* *)
|
||||
gH_A_Recipe_Type : INT ; (* *)
|
||||
gH_A_Recipe_WaterValveSave : REAL ; (* *)
|
||||
gH_A_Recipe_SyrupValveSave : REAL ; (* *)
|
||||
gH_A_Recipe_CarboCO2ValveSave : REAL ; (* *)
|
||||
gH_A_Recipe_ProdMeterRecipeNum : INT ; (* *)
|
||||
gH_A_Recipe_ProdMeterHighBrix : REAL ; (* *)
|
||||
gH_A_Recipe_ProdMeterLowBrix : REAL ; (* *)
|
||||
gH_A_Recipe_ProdMeterHighCO2 : REAL ; (* *)
|
||||
gH_A_Recipe_ProdMeterLowCO2 : REAL ; (* *)
|
||||
gH_A_Recipe_ProdMeter_ZeroCO2 : REAL;
|
||||
gH_A_Recipe_ProdMeter_ZeroBrix : REAL;
|
||||
|
||||
gH_A_Recipe_ProdHighCond : REAL ; (* *)
|
||||
gH_A_Recipe_ProdLowCond : REAL ; (* *)
|
||||
gH_A_Recipe_WaterSelection : BYTE ; (* *)
|
||||
gH_A_Recipe_EnDeaireation : BOOL ; (* *)
|
||||
|
||||
gH_A_Recipe_FillerNextRecipeNum : BYTE ; (* *)
|
||||
gH_A_Recipe_BottleSize : REAL; (* *)
|
||||
gH_A_Recipe_BottleShape : SINT ; (* *)
|
||||
gH_A_Recipe_FillingValveHead_SP : REAL ;
|
||||
|
||||
gH_A_Recipe_Transfer : BOOL ;
|
||||
|
||||
gH_mPDS1000_SyrupFactor : REAL ; (* *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* NEXT RECIPE PARAMETERS *)
|
||||
(*************************************************************************)
|
||||
gH_N_Recipe_Name : STRING ;
|
||||
gH_N_Recipe_SyrupBrix : REAL ; (* *)
|
||||
gH_N_Recipe_SyrupDensity : REAL ; (* *)
|
||||
gH_N_Recipe_SyrupFactor : REAL ; (* *)
|
||||
gH_N_Recipe_ProductBrix : REAL ; (* *)
|
||||
gH_N_Recipe_ProductionRate : REAL ; (* *)
|
||||
gH_N_Recipe_Ratio : REAL ; (* *)
|
||||
gH_N_Recipe_ProdBrixOffset : REAL ; (* *)
|
||||
gH_N_Recipe_CO2Vols : REAL ; (* *)
|
||||
gH_N_Recipe_CO2Fact : REAL ; (* *)
|
||||
gH_N_Recipe_CO2 : BOOL ; (* *)
|
||||
gH_N_Recipe_ProdTankPress : REAL ; (* *)
|
||||
gH_N_Recipe_SP_ProdTemp : REAL ; (* *)
|
||||
gH_N_Recipe_EnProdTemp : BOOL ; (* *)
|
||||
gH_N_Recipe_PrdTankMinLevel : REAL ; (* *)
|
||||
gH_N_Recipe_Type : INT ; (* *)
|
||||
gH_N_Recipe_WaterValveSave : REAL ; (* *)
|
||||
gH_N_Recipe_SyrupValveSave : REAL ; (* *)
|
||||
gH_N_Recipe_CarboCO2ValveSave : REAL ; (* *)
|
||||
gH_N_Recipe_ProdMeterRecipeNum : INT ; (* *)
|
||||
gH_N_Recipe_ProdMeterHighBrix : REAL ; (* *)
|
||||
gH_N_Recipe_ProdMeterLowBrix : REAL ; (* *)
|
||||
gH_N_Recipe_ProdMeterHighCO2 : REAL ; (* *)
|
||||
gH_N_Recipe_ProdMeterLowCO2 : REAL ; (* *)
|
||||
gH_N_Recipe_ProdMeter_ZeroCO2 : REAL;
|
||||
gH_N_Recipe_ProdMeter_ZeroBrix : REAL;
|
||||
|
||||
gH_N_Recipe_ProdHighCond : REAL ; (* *)
|
||||
gH_N_Recipe_ProdLowCond : REAL ; (* *)
|
||||
gH_N_Recipe_WaterSelection : BYTE ; (* *)
|
||||
gH_N_Recipe_EnDeaireation : BOOL ; (* *)
|
||||
|
||||
gH_N_Recipe_FillerNextRecipeNum : BYTE ; (* *)
|
||||
gH_N_Recipe_BottleSize : REAL; (* *)
|
||||
gH_N_Recipe_BottleShape : SINT ; (* *)
|
||||
gH_N_Recipe_FillingValveHead_SP : REAL ;
|
||||
|
||||
gH_N_Recipe_Transfer : BOOL ;
|
||||
(*************************************************************************)
|
||||
(* ANALOG VALUES - READ/WRITE *)
|
||||
(*************************************************************************)
|
||||
gH_ProcessSetup_WaterPumpPressure : REAL ; (* Water Pump Maximum Pressure *)
|
||||
gH_ProcessSetup_SyrupPumpPressure : REAL ; (* Syrup Pump Maximum Pressure *)
|
||||
gH_ProcessSetup_KWaterLoss : REAL ; (* Friction Loss Constant in Serpentine *)
|
||||
gH_ProcessSetup_KSyrupLoss : REAL ; (* Friction Loss Constant in Syrup Pipe *)
|
||||
gH_ProcessSetup_KProdLoss : REAL ; (* Pressure Loss Factor *)
|
||||
gH_ProcessSetup_KProdPump : REAL ; (* Frequency Overpressure Pump P3 Constant [Hz/mm] *)
|
||||
gH_ProcessSetup_MinProduction : REAL ; (* Minimum Production Set Point - L/min - *)
|
||||
gH_ProcessSetup_SyrupLinePressure : REAL ; (* Syrup Line pressure at VEP2 valve *)
|
||||
|
||||
gH_ProcessSetup_CIPWaterValveOV : REAL ; (* Water Valve Opening During CIP *)
|
||||
gH_ProcessSetup_CIPSyrupValveOV : REAL ; (* Syrup Valve Opening During CIP *)
|
||||
gH_ProcessSetup_CIPProdTankMinLevel : REAL ; (* Product Tank Minimum Level In CIP *)
|
||||
gH_ProcessSetup_CIPProdTankMaxLevel : REAL ; (* Product Tank Maximum Level In CIP *)
|
||||
gH_ProcessSetup_CIPProdPumpFreq : REAL ; (* CIP frequency Value [Hz] *)
|
||||
gH_ProcessSetup_CIPSyrTankMinLevel : REAL ; (* Syrup Tank Minimum Level In CIP *)
|
||||
gH_ProcessSetup_CIPSyrTankMaxLevel : REAL ; (* Syrup Tank Maximum Level In CIP *)
|
||||
|
||||
gH_ProcessSetup_RinseWaterValveOV : REAL ; (* Water Valve Opening During Rinse *)
|
||||
gH_ProcessSetup_RinseSyrupValveOV : REAL ; (* Syrup Valve Opening During Rinse *)
|
||||
gH_ProcessSetup_RinseProdTankPress : REAL ; (* Product Tank Pressure In Rinse *)
|
||||
gH_ProcessSetup_RinseProdPumpFreq : REAL ; (* Rinse frequency Value [Hz] *)
|
||||
|
||||
gH_ProcessSetup_KRecBlendError : REAL ; (* Blend Error Recovery CONSTANT *)
|
||||
gH_ProcessSetup_KRecCarboCO2Error : REAL ; (* Carbonation Error Recovery Constant *)
|
||||
gH_ProcessSetup_MaxBlendError : REAL ; (* Blend Error Maximum Value *)
|
||||
gH_ProcessSetup_MaxCarboCO2Error : REAL ; (* Carbonation Error Maximum Value *)
|
||||
gH_ProcessSetup_StartUpBrixExtraWater : REAL ; (* *)
|
||||
gH_ProcessSetup_StartUpCO2ExtraWater : REAL ; (* *)
|
||||
gH_ProcessSetup_StartUpProdPumpFreq : REAL ; (* Start Up frequency Value [Hz] *)
|
||||
|
||||
gH_ProcessSetup_SyrupRoomTank : INT ;
|
||||
gH_ProcessSetup_SyrupRunOutLiters : REAL ; (* *)
|
||||
|
||||
gH_ProcessSetup_BPWaterPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TIWaterPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TDWaterPID : REAL ; (* *)
|
||||
gH_ProcessSetup_FFWaterPID : REAL ; (* *)
|
||||
|
||||
gH_ProcessSetup_BPSyrupPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TISyrupPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TDSyrupPID : REAL ; (* *)
|
||||
gH_ProcessSetup_FFSyrupPID : REAL ; (* *)
|
||||
|
||||
gH_ProcessSetup_BPCarboCO2PID : REAL ; (* *)
|
||||
gH_ProcessSetup_TICarboCO2PID : REAL ; (* *)
|
||||
gH_ProcessSetup_TDCarboCO2PID : REAL ; (* *)
|
||||
gH_ProcessSetup_FFCarboCO2PID : REAL ; (* *)
|
||||
|
||||
gH_ProcessSetup_BPCIPTempPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TICIPTempPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TDCIPTempPID : REAL ; (* *)
|
||||
gH_ProcessSetup_FFCIPTempPID : REAL ; (* *)
|
||||
|
||||
gH_ProcessSetup_BPProdTempPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TIProdTempPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TDProdTempPID : REAL ; (* *)
|
||||
gH_ProcessSetup_FFProdTempPID : REAL ; (* *)
|
||||
|
||||
gH_ProcessSetup_BPWaterTempPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TIWaterTempPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TDWaterTempPID : REAL ; (* *)
|
||||
gH_ProcessSetup_FFWaterTempPID : REAL ; (* *)
|
||||
|
||||
gH_ProcessSetup_BPSyrupLevelPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TISyrupLevelPID : REAL ; (* *)
|
||||
gH_ProcessSetup_TDSyrupLevelPID : REAL ; (* *)
|
||||
gH_ProcessSetup_FFSyrupLevelPID : REAL ; (* *)
|
||||
|
||||
gH_ProcessSetup_KpCO2PressPID : REAL ; (* *)
|
||||
gH_ProcessSetup_DeadBandCO2PressPID : REAL ; (* *)
|
||||
gH_ProcessSetup_InjCO2Press_Offset : REAL ; (* *)
|
||||
gH_ProcessSetup_InjCO2Press_MinFlow : UINT ; (* *)
|
||||
gH_ProcessSetup_InjCO2Press_MaxFlow : UINT ; (* *)
|
||||
gH_ProcessSetup_CarboCO2Pressure : REAL ; (* CO2 Pressure Infeed Line *)
|
||||
gH_ProcessSetup_N2MinPressure : REAL ; (* N2 Minimum Pressure Infeed Line *)
|
||||
|
||||
gH_ProcessSetup_BPFillingValvePID : REAL ; (* *)
|
||||
gH_ProcessSetup_TIFillingValvePID : REAL ; (* *)
|
||||
gH_ProcessSetup_TDFillingValvePID : REAL ; (* *)
|
||||
gH_ProcessSetup_FFFillingValvePID : REAL ; (* Not USED *)
|
||||
|
||||
gH_ProcessSetup_DiffSensor_Height : REAL := 1035.0 ; (* Sensor Height from Soil [mm] *)
|
||||
gH_ProcessSetup_DiffSensor_DeltaHeight : REAL := 0.0 ; (* Sensor Plates Height Difference [mm] *)
|
||||
gH_ProcessSetup_DiffSensor_Offset : REAL := 27.0 ; (* Sensor Offset Read with zero pressure (all valves open) in [mm] *)
|
||||
|
||||
gH_ProcessSetup_FillingValveHeight : REAL := 1540.0 ; (* Filling Valve Height from soil [mm] *)
|
||||
gH_ProcessSetup_FillerDiameter : REAL := 4960.0 ; (* Filler Carousel Diameter [mm] *)
|
||||
gH_ProcessSetup_FillingValveNum : INT := 130 ; (* Filling Valves Number *)
|
||||
gH_ProcessSetup_FillerProdPipeDN : REAL := 100.0 ;
|
||||
gH_ProcessSetup_FillerProdPipeMass : REAL := 190 ;
|
||||
gH_ProcessSetup_FillingTime : REAL ;
|
||||
|
||||
gH_ProcessSetup_ProdTankHeight_0 : REAL := 990.0 ; (* Level at 0% Tank Level Height in mm *)
|
||||
gH_ProcessSetup_ProdTankLevelPerc_2 : REAL := 53.88 ; (* Second level percentage *)
|
||||
gH_ProcessSetup_ProdTankHeight_2 : REAL := 1995.0 ; (* Second level Height in mm *)
|
||||
|
||||
gH_ProcessSetup_DeaireationFactor : REAL := 0.75 ; (* DeareationFlow/WaterFlow *)
|
||||
gH_ProcessSetup_DeaireationKVValve : REAL := 0.3 ; (* DeareationFlow/(DeareationValveOpening*14.3*P1) *)
|
||||
|
||||
|
||||
gH_FirstProdExtraBrix : REAL ; (*Start up *)
|
||||
gH_FirstProdDietExtraSyr : REAL ; (*Start up *)
|
||||
gH_FirstProdExtraCO2Fact : REAL ; (*Start up *)
|
||||
|
||||
gH_ProdTankDrainStep0Time : TIME ; (* Step 0 Product Tank Drain Time *)
|
||||
gH_ProdTankDrainStep1Time : TIME ; (* Step 1 Product Tank Drain Time *)
|
||||
gH_ProdPipeRunOutStep0Time : TIME ; (* Step 0 Product Pipe Run Out Time *)
|
||||
|
||||
gH_H2OOpenInProdPipeRunOut : REAL ;
|
||||
gH_SyrupValveProdPipeRunOut : REAL ;
|
||||
|
||||
gH_ProdPipeRunOutProdAmount : REAL ; (* Water amount used to push product through product pipe + serpentine - in Liters *)
|
||||
gH_ProdTankRunOutChillerAmount : REAL ; (* Water amount used to push product through product chiller - in Liters *)
|
||||
|
||||
gH_SwitchOff_DensityOk : BOOL;
|
||||
END_VAR
|
||||
(* @OBJECT_END := HMI_Blender_Parameters *)
|
||||
(* @CONNECTIONS := HMI_Blender_Parameters
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,97 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := HMI_IO_Showing *)
|
||||
(* @PATH := '\/HMI_Variable' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
(*************************************************************************)
|
||||
(* FILLER I/O SIGNALS - PRODUCTION *)
|
||||
(*************************************************************************)
|
||||
gH_Filler_Production_DI0 : BOOL; (* *)
|
||||
gH_Filler_Production_DI1 : BOOL; (* *)
|
||||
gH_Filler_Production_DI2 : BOOL; (* *)
|
||||
gH_Filler_Production_DI3 : BOOL; (* *)
|
||||
gH_Filler_Production_DI4 : BOOL; (* *)
|
||||
gH_Filler_Production_DI5 : BOOL; (* *)
|
||||
gH_Filler_Production_DI6 : BOOL; (* *)
|
||||
gH_Filler_Production_DI7 : BOOL; (* *)
|
||||
|
||||
gH_Filler_Production_DO0 : BOOL; (* *)
|
||||
gH_Filler_Production_DO1 : BOOL; (* *)
|
||||
gH_Filler_Production_DO2 : BOOL; (* *)
|
||||
gH_Filler_Production_DO3 : BOOL; (* *)
|
||||
gH_Filler_Production_DO4 : BOOL; (* *)
|
||||
gH_Filler_Production_DO5 : BOOL; (* *)
|
||||
gH_Filler_Production_DO6 : BOOL; (* *)
|
||||
gH_Filler_Production_DO7 : BOOL; (* *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* FILLER I/O SIGNALS - CIP *)
|
||||
(*************************************************************************)
|
||||
gH_Filler_CIP_DI0 : BOOL; (* *)
|
||||
gH_Filler_CIP_DI1 : BOOL; (* *)
|
||||
gH_Filler_CIP_DI2 : BOOL; (* *)
|
||||
gH_Filler_CIP_DI3 : BOOL; (* *)
|
||||
gH_Filler_CIP_DI4 : BOOL; (* *)
|
||||
gH_Filler_CIP_DI5 : BOOL; (* *)
|
||||
gH_Filler_CIP_DI6 : BOOL; (* *)
|
||||
gH_Filler_CIP_DI7 : BOOL; (* *)
|
||||
|
||||
gH_Filler_CIP_DO0 : BOOL; (* *)
|
||||
gH_Filler_CIP_DO1 : BOOL; (* *)
|
||||
gH_Filler_CIP_DO2 : BOOL; (* *)
|
||||
gH_Filler_CIP_DO3 : BOOL; (* *)
|
||||
gH_Filler_CIP_DO4 : BOOL; (* *)
|
||||
gH_Filler_CIP_DO5 : BOOL; (* *)
|
||||
gH_Filler_CIP_DO6 : BOOL; (* *)
|
||||
gH_Filler_CIP_DO7 : BOOL; (* *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* Syrup Room I/O SIGNALS *)
|
||||
(*************************************************************************)
|
||||
gH_Syrup_Room_DI0 : BOOL; (* *)
|
||||
gH_Syrup_Room_DI1 : BOOL; (* *)
|
||||
gH_Syrup_Room_DI2 : BOOL; (* *)
|
||||
gH_Syrup_Room_DI3 : BOOL; (* *)
|
||||
gH_Syrup_Room_DI4 : BOOL; (* *)
|
||||
gH_Syrup_Room_DI5 : BOOL; (* *)
|
||||
gH_Syrup_Room_DI6 : BOOL; (* *)
|
||||
gH_Syrup_Room_DI7 : BOOL; (* *)
|
||||
|
||||
gH_Syrup_Room_DO0 : BOOL; (* *)
|
||||
gH_Syrup_Room_DO1 : BOOL; (* *)
|
||||
gH_Syrup_Room_DO2 : BOOL; (* *)
|
||||
gH_Syrup_Room_DO3 : BOOL; (* *)
|
||||
gH_Syrup_Room_DO4 : BOOL; (* *)
|
||||
gH_Syrup_Room_DO5 : BOOL; (* *)
|
||||
gH_Syrup_Room_DO6 : BOOL; (* *)
|
||||
gH_Syrup_Room_DO7 : BOOL; (* *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* CIP Room I/O SIGNALS *)
|
||||
(*************************************************************************)
|
||||
gH_CIP_Room_DI0 : BOOL; (* *)
|
||||
gH_CIP_Room_DI1 : BOOL; (* *)
|
||||
gH_CIP_Room_DI2 : BOOL; (* *)
|
||||
gH_CIP_Room_DI3 : BOOL; (* *)
|
||||
gH_CIP_Room_DI4 : BOOL; (* *)
|
||||
gH_CIP_Room_DI5 : BOOL; (* *)
|
||||
gH_CIP_Room_DI6 : BOOL; (* *)
|
||||
gH_CIP_Room_DI7 : BOOL; (* *)
|
||||
|
||||
gH_CIP_Room_DO0 : BOOL; (* *)
|
||||
gH_CIP_Room_DO1 : BOOL; (* *)
|
||||
gH_CIP_Room_DO2 : BOOL; (* *)
|
||||
gH_CIP_Room_DO3 : BOOL; (* *)
|
||||
gH_CIP_Room_DO4 : BOOL; (* *)
|
||||
gH_CIP_Room_DO5 : BOOL; (* *)
|
||||
gH_CIP_Room_DO6 : BOOL; (* *)
|
||||
gH_CIP_Room_DO7 : BOOL; (* *)
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @OBJECT_END := HMI_IO_Showing *)
|
||||
(* @CONNECTIONS := HMI_IO_Showing
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,44 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := HMI_Local_CIP_Variables *)
|
||||
(* @PATH := '\/HMI_Variable' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
(*************************************************************************)
|
||||
(* CIP COMMANDS *)
|
||||
(*************************************************************************)
|
||||
gH_Blender_CIP_ProgStart : BOOL ; (* *)
|
||||
gH_Blender_CIP_ProgStop : BOOL ; (* *)
|
||||
gH_Blender_CIP_ProgPause : BOOL ; (* *)
|
||||
gH_Blender_CIP_ProgStepUp : BOOL ; (* *)
|
||||
gH_Blender_CIP_ProgStepDown : BOOL ; (* *)
|
||||
gH_Blender_CIP_ProgInizialize : BOOL ; (* *)
|
||||
|
||||
gH_Blender_CIP_Running : BOOL ; (* *)
|
||||
gH_Blender_CIP_RunPause : BOOL ; (* *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* CIP WORDS *)
|
||||
(*************************************************************************)
|
||||
gH_Blender_CIP_LinkName : STRING(32) ;(* From HMI Link Program Name *)
|
||||
gH_Blender_CIP_SimpleName : STRING(32) ;(* To/From HMI Actual Running Simple Program *)
|
||||
gH_Blender_CIP_StepTime : UINT ;
|
||||
gH_Blender_CIP_StepNum : UINT ;
|
||||
gH_Blender_CIP_TotalTime : UDINT ;
|
||||
|
||||
gH_Blender_CIP_LinkProgPerc : REAL ; (* *)
|
||||
gH_Blender_CIP_SimpleProgPerc : REAL ; (* *)
|
||||
gH_Blender_CIP_PV_HighCond : REAL ; (* From HMI CIP Target High Conductivity *)
|
||||
gH_Blender_CIP_PV_LowCond : REAL ; (* From HMI CIP Low Conductivity Threshold *)
|
||||
gH_Blender_CIPHeaterTempPV : REAL ;
|
||||
gH_Blender_CIPReturnTempPV : REAL ;
|
||||
gH_Blender_CIP_SP_Temp : REAL ; (* From HMI CIP Target Temperature *)
|
||||
gH_Blender_CIP_SP_HighCond : REAL ; (* From HMI CIP Target High Conductivity *)
|
||||
gH_Blender_CIP_SP_LowCond : REAL ; (* From HMI CIP Low Conductivity Threshold *)
|
||||
END_VAR
|
||||
|
||||
(* @OBJECT_END := HMI_Local_CIP_Variables *)
|
||||
(* @CONNECTIONS := HMI_Local_CIP_Variables
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,65 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := HMI_Service *)
|
||||
(* @PATH := '\/HMI_Variable' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
(*************************************************************************)
|
||||
(* SERVICE STATUS *)
|
||||
(*************************************************************************)
|
||||
gH_WaterPipeSpeed : REAL ;
|
||||
gH_WaterVFMSpeed : REAL ;
|
||||
gH_EstimateDeairCO2 : REAL ;
|
||||
gH_EstimateFillerCO2Loss : REAL ;
|
||||
gH_InletWaterO2 : REAL ;
|
||||
gH_DeairWaterO2 : REAL := 1.0 ;
|
||||
gH_DeairNominalCO2Flow : REAL ;
|
||||
gH_InletSyrupO2 : REAL ;
|
||||
gH_EstimateProductO2 : REAL ;
|
||||
gH_PIDH2OPropOut : REAL ;
|
||||
gH_PIDH2OIntOut : REAL ;
|
||||
gH_PIDH2ODerOut : REAL ;
|
||||
gH_PIDSyrPropOut : REAL ;
|
||||
gH_PIDSyrIntOut : REAL ;
|
||||
gH_PIDSyrDerOut : REAL ;
|
||||
gH_PIDCarboCO2PropOut : REAL ;
|
||||
gH_PIDCarboCO2IntOut : REAL ;
|
||||
gH_PIDCarboCO2DerOut : REAL ;
|
||||
gH_EstimateFillerFlow : REAL ;
|
||||
|
||||
gH_SyrupProductAvailable : REAL ;
|
||||
gH_PrdTankProductAvailable : REAL ;
|
||||
gH_PrdPipeProductAvailable : REAL ;
|
||||
gH_FillerProductAvailable : REAL ;
|
||||
gH_TotalProductAvailable : REAL ;
|
||||
|
||||
gH_FillerStopContainer : BOOL ;
|
||||
gH_DepallStop : BOOL ;
|
||||
|
||||
|
||||
(*************************************************************************)
|
||||
(* WORKSHOP TEST *)
|
||||
(*************************************************************************)
|
||||
gH_WorkshopTest : BOOL ;
|
||||
|
||||
gH_SIMCipMode : BOOL ;
|
||||
gH_SIMCipRunning : BOOL ;
|
||||
gH_SIMCipChangeSanitize : BOOL ;
|
||||
gH_SIMCipDrainRequest : BOOL ;
|
||||
gH_SIMCipCompleted : BOOL ;
|
||||
gH_SIMCipCausticSanitizeRun : BOOL ;
|
||||
|
||||
gH_SIMFillerEV46Enable : BOOL ;
|
||||
gH_SIMFillerEV62Enable : BOOL ;
|
||||
gH_SIMFillerProdReady : BOOL ;
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL PERSISTENT
|
||||
gH_TotalEmptyContainer : REAL ;
|
||||
END_VAR
|
||||
|
||||
(* @OBJECT_END := HMI_Service *)
|
||||
(* @CONNECTIONS := HMI_Service
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,291 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := HMI_Variables_Cmd *)
|
||||
(* @PATH := '\/HMI_Variable' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
(*************************************************************************)
|
||||
(* COMMANDS FROM HMI *)
|
||||
(*************************************************************************)
|
||||
gH_CMD_SyrupMFM_Prep : BOOL ; (* Syrup Tank & MFM StartUp Sequence Request *)
|
||||
gH_CMD_SyrupTank_Prep : BOOL ; (* Syrup Line & Tank & MFM StartUp Sequence Request *)
|
||||
gH_CMD_Deair_StartUp : BOOL ; (* Deairator StartUp Sequence Request *)
|
||||
gH_CMD_FirstProduction : BOOL ; (* First Production Request *)
|
||||
gH_CMD_PrdBrixTrackingReq : BOOL ; (* Product Brix Tracking Request *)
|
||||
gH_CMD_SyrAutoReq : BOOL ; (* Syrup Autocorrection Request *)
|
||||
gH_CMD_SyrDensimeterCal : BOOL ; (* Syrup Densimeter Calibration *)
|
||||
gH_CMD_SyrRunOutReq : BOOL ; (* Syrup Run Out Request *)
|
||||
gH_CMD_ProdTankDrainReq : BOOL ; (* Product Tank Drain Request *)
|
||||
gH_CMD_ProdTankRunOutReq : BOOL ; (* Product Tank Run Out Request *)
|
||||
gH_CMD_ProdTankPressReq : BOOL ; (* Product Tank Pressure Request *)
|
||||
gH_CMD_ColdRinseReq : BOOL ; (* Blender Cold Rinse Request *)
|
||||
gH_CMD_WarmRinseReq : BOOL ; (* Blender Warm Rinse Request *)
|
||||
gH_CMD_BlenderMaintenance : BOOL ; (* Blender in Manteinance to configure mod valve *)
|
||||
|
||||
gH_CMD_ProdBrixRecoveryReq : BOOL ;
|
||||
|
||||
gH_CMD_CIP_TotalDrainReq : BOOL ;
|
||||
gH_CMD_CIP_PrdTankFloodReq : BOOL ;
|
||||
gH_CMD_CIP_DeairTankFloodReq : BOOL ;
|
||||
gH_CMD_CIP_SyrTankFloodReq : BOOL ;
|
||||
|
||||
(*************************************************************************)
|
||||
(* System Run Out *)
|
||||
(*************************************************************************)
|
||||
gH_CMD_SystemRunOutEnable : BOOL ;
|
||||
gH_CMD_StartSystemRunOut : BOOL ;
|
||||
gH_CMD_SyrLinePrepReq : BOOL ;
|
||||
gH_CMD_SyrLineRinseReq : BOOL ;
|
||||
|
||||
gH_CMD_ProdPipeRunOutReq : BOOL ;
|
||||
gH_CMD_ProdPipeDrainReq : BOOL ;
|
||||
gH_CMD_ProdPipeRinseReq : BOOL ;
|
||||
gH_CMD_SyrTankDrainReq : BOOL ;
|
||||
gH_CMD_SyrTankRinseReq : BOOL ;
|
||||
|
||||
gH_FastChangeSequenceNum : INT ;
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL PERSISTENT
|
||||
gH_CMD_Filler1Slctd : BOOL ;
|
||||
gH_CMD_Filler2Slctd : BOOL ;
|
||||
|
||||
gH_CMD_SwapSyrupLine : BOOL ;
|
||||
gH_CMD_SyrLine1Slctd : BOOL ;
|
||||
gH_CMD_SyrLine2Slctd : BOOL ;
|
||||
gH_CMD_EnableNextRecipe : BOOL ;
|
||||
|
||||
(*************************************************************************)
|
||||
(* RECIPE UPDATES *)
|
||||
(*************************************************************************)
|
||||
gH_SyrFactUpdate : BOOL ;
|
||||
gH_ValvesUpdate : BOOL ;
|
||||
|
||||
(*************************************************************************)
|
||||
(* ON - OFF VALVES *)
|
||||
(*************************************************************************)
|
||||
gH_EV01_Auto : BOOL; (* *)
|
||||
gH_EV02_Auto : BOOL; (* *)
|
||||
gH_EV01_1_Auto : BOOL; (* *)
|
||||
gH_EV02_1_Auto : BOOL; (* *)
|
||||
gH_EV03_Auto : BOOL; (* *)
|
||||
gH_EV04_Auto : BOOL; (* *)
|
||||
gH_EV01_Manual : BOOL; (* *)
|
||||
gH_EV02_Manual : BOOL; (* *)
|
||||
gH_EV01_1_Manual : BOOL; (* *)
|
||||
gH_EV02_1_Manual : BOOL; (* *)
|
||||
gH_EV03_Manual : BOOL; (* *)
|
||||
gH_EV04_Manual : BOOL; (* *)
|
||||
|
||||
gH_EV11_Auto : BOOL; (* *)
|
||||
gH_EV12_Auto : BOOL; (* *)
|
||||
gH_EV13_Auto : BOOL; (* *)
|
||||
gH_EV14_Auto : BOOL; (* *)
|
||||
gH_EV14_1_Auto : BOOL; (* *)
|
||||
gH_EV15_Auto : BOOL; (* *)
|
||||
gH_EV16_Auto : BOOL; (* *)
|
||||
gH_EV16_1_Auto : BOOL; (* *)
|
||||
gH_EV17_Auto : BOOL; (* *)
|
||||
gH_EV18_Auto : BOOL; (* *)
|
||||
gH_EV11_Manual : BOOL; (* *)
|
||||
gH_EV12_Manual : BOOL; (* *)
|
||||
gH_EV13_Manual : BOOL; (* *)
|
||||
gH_EV14_Manual : BOOL; (* *)
|
||||
gH_EV14_1_Manual : BOOL; (* *)
|
||||
gH_EV15_Manual : BOOL; (* *)
|
||||
gH_EV16_Manual : BOOL; (* *)
|
||||
gH_EV16_1_Manual : BOOL; (* *)
|
||||
gH_EV17_Manual : BOOL; (* *)
|
||||
gH_EV18_Manual : BOOL; (* *)
|
||||
|
||||
gH_EV21_Auto : BOOL; (* *)
|
||||
gH_EV22_Auto : BOOL; (* *)
|
||||
gH_EV23_Auto : BOOL; (* *)
|
||||
gH_EV23_1_Auto : BOOL; (* *)
|
||||
gH_EV24_Auto : BOOL; (* *)
|
||||
gH_EV25_Auto : BOOL; (* *)
|
||||
gH_EV26_Auto : BOOL; (* *)
|
||||
gH_EV27_Auto : BOOL; (* *)
|
||||
gH_EV28_Auto : BOOL; (* *)
|
||||
gH_EV21_Manual : BOOL; (* *)
|
||||
gH_EV22_Manual : BOOL; (* *)
|
||||
gH_EV23_Manual : BOOL; (* *)
|
||||
gH_EV23_1_Manual : BOOL; (* *)
|
||||
gH_EV24_Manual : BOOL; (* *)
|
||||
gH_EV25_Manual : BOOL; (* *)
|
||||
gH_EV26_Manual : BOOL; (* *)
|
||||
gH_EV27_Manual : BOOL; (* *)
|
||||
gH_EV28_Manual : BOOL; (* *)
|
||||
|
||||
gH_EV31_Auto : BOOL; (* *)
|
||||
gH_EV32_Auto : BOOL; (* *)
|
||||
gH_EV33_Auto : BOOL; (* *)
|
||||
gH_EV34_Auto : BOOL; (* *)
|
||||
gH_EV35_Auto : BOOL; (* *)
|
||||
gH_EV36_Auto : BOOL; (* *)
|
||||
gH_EV37_Auto : BOOL; (* *)
|
||||
gH_EV38_Auto : BOOL; (* *)
|
||||
gH_EV39_Auto : BOOL; (* *)
|
||||
gH_EV31_Manual : BOOL; (* *)
|
||||
gH_EV32_Manual : BOOL; (* *)
|
||||
gH_EV33_Manual : BOOL; (* *)
|
||||
gH_EV34_Manual : BOOL; (* *)
|
||||
gH_EV35_Manual : BOOL; (* *)
|
||||
gH_EV36_Manual : BOOL; (* *)
|
||||
gH_EV37_Manual : BOOL; (* *)
|
||||
gH_EV38_Manual : BOOL; (* *)
|
||||
gH_EV39_Manual : BOOL; (* *)
|
||||
|
||||
gH_EV40_Auto : BOOL; (* *)
|
||||
gH_EV41_Auto : BOOL; (* *)
|
||||
gH_EV42_Auto : BOOL; (* *)
|
||||
gH_EV43_Auto : BOOL; (* *)
|
||||
gH_EV44_Auto : BOOL; (* *)
|
||||
gH_EV45_Auto : BOOL; (* *)
|
||||
gH_EV46_Auto : BOOL; (* *)
|
||||
gH_EV47_Auto : BOOL; (* *)
|
||||
gH_EV48_Auto : BOOL; (* *)
|
||||
gH_EV49_Auto : BOOL; (* *)
|
||||
gH_EV40_Manual : BOOL; (* *)
|
||||
gH_EV41_Manual : BOOL; (* *)
|
||||
gH_EV42_Manual : BOOL; (* *)
|
||||
gH_EV43_Manual : BOOL; (* *)
|
||||
gH_EV44_Manual : BOOL; (* *)
|
||||
gH_EV45_Manual : BOOL; (* *)
|
||||
gH_EV46_Manual : BOOL; (* *)
|
||||
gH_EV47_Manual : BOOL; (* *)
|
||||
gH_EV48_Manual : BOOL; (* *)
|
||||
gH_EV49_Manual : BOOL; (* *)
|
||||
|
||||
gH_EV50_Auto : BOOL; (* *)
|
||||
gH_EV51_Auto : BOOL; (* *)
|
||||
gH_EV52_Auto : BOOL; (* *)
|
||||
gH_EV53_Auto : BOOL; (* *)
|
||||
gH_EV54_Auto : BOOL; (* *)
|
||||
gH_EV55_Auto : BOOL; (* *)
|
||||
gH_EV56_Auto : BOOL; (* *)
|
||||
gH_EV57_Auto : BOOL; (* *)
|
||||
gH_EV58_Auto : BOOL; (* *)
|
||||
gH_EV59_Auto : BOOL; (* *)
|
||||
gH_EV50_Manual : BOOL; (* *)
|
||||
gH_EV51_Manual : BOOL; (* *)
|
||||
gH_EV52_Manual : BOOL; (* *)
|
||||
gH_EV53_Manual : BOOL; (* *)
|
||||
gH_EV54_Manual : BOOL; (* *)
|
||||
gH_EV55_Manual : BOOL; (* *)
|
||||
gH_EV56_Manual : BOOL; (* *)
|
||||
gH_EV57_Manual : BOOL; (* *)
|
||||
gH_EV58_Manual : BOOL; (* *)
|
||||
gH_EV59_Manual : BOOL; (* *)
|
||||
|
||||
gH_EV61_Auto : BOOL; (* *)
|
||||
gH_EV62_Auto : BOOL; (* *)
|
||||
gH_EV63_Auto : BOOL; (* *)
|
||||
gH_EV64_Auto : BOOL; (* *)
|
||||
gH_EV65_Auto : BOOL; (* *)
|
||||
gH_EV66_Auto : BOOL; (* *)
|
||||
gH_EV67_Auto : BOOL; (* *)
|
||||
gH_EV68_Auto : BOOL; (* *)
|
||||
gH_EV69_Auto : BOOL; (* *)
|
||||
gH_EV61_Manual : BOOL; (* *)
|
||||
gH_EV62_Manual : BOOL; (* *)
|
||||
gH_EV63_Manual : BOOL; (* *)
|
||||
gH_EV64_Manual : BOOL; (* *)
|
||||
gH_EV65_Manual : BOOL; (* *)
|
||||
gH_EV66_Manual : BOOL; (* *)
|
||||
gH_EV67_Manual : BOOL; (* *)
|
||||
gH_EV68_Manual : BOOL; (* *)
|
||||
gH_EV69_Manual : BOOL; (* *)
|
||||
|
||||
gH_EV71_Auto : BOOL; (* *)
|
||||
gH_EV72_Auto : BOOL; (* *)
|
||||
gH_EV73_Auto : BOOL; (* *)
|
||||
gH_EV74_Auto : BOOL; (* *)
|
||||
gH_EV75_Auto : BOOL; (* *)
|
||||
gH_EV76_Auto : BOOL; (* *)
|
||||
gH_EV77_Auto : BOOL; (* *)
|
||||
gH_EV78_Auto : BOOL; (* *)
|
||||
gH_EV79_Auto : BOOL; (* *)
|
||||
gH_EV80_Auto : BOOL; (* *)
|
||||
gH_EV81_Auto : BOOL; (* *)
|
||||
gH_EV83_Auto : BOOL; (* *)
|
||||
gH_EV84_Auto : BOOL; (* *)
|
||||
gH_EV89_Auto : BOOL; (* *)
|
||||
gH_EV71_Manual : BOOL; (* *)
|
||||
gH_EV72_Manual : BOOL; (* *)
|
||||
gH_EV73_Manual : BOOL; (* *)
|
||||
gH_EV74_Manual : BOOL; (* *)
|
||||
gH_EV75_Manual : BOOL; (* *)
|
||||
gH_EV76_Manual : BOOL; (* *)
|
||||
gH_EV77_Manual : BOOL; (* *)
|
||||
gH_EV78_Manual : BOOL; (* *)
|
||||
gH_EV79_Manual : BOOL; (* *)
|
||||
gH_EV80_Manual : BOOL; (* *)
|
||||
gH_EV81_Manual : BOOL; (* *)
|
||||
gH_EV83_Manual : BOOL; (* *)
|
||||
gH_EV84_Manual : BOOL; (* *)
|
||||
gH_EV89_Manual : BOOL; (* *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* MODULATING VALVES *)
|
||||
(*************************************************************************)
|
||||
gH_WaterValve_Auto : BOOL ; (* *)
|
||||
gH_WaterValve_Manual : REAL ; (* *)
|
||||
|
||||
gH_SyrupValve_Auto : BOOL ; (* *)
|
||||
gH_SyrupValve_Manual : REAL ; (* *)
|
||||
|
||||
gH_CO2CarboValve_Auto : BOOL ; (* *)
|
||||
gH_CO2CarboValve_Manual : REAL ; (* *)
|
||||
|
||||
gH_CO2PressValve_Auto : BOOL ; (* *)
|
||||
gH_CO2PressValve_Manual : REAL ; (* *)
|
||||
|
||||
gH_SyrupLevelValve_Auto : BOOL ; (* *)
|
||||
gH_SyrupLevelValve_Manual : REAL ; (* *)
|
||||
|
||||
gH_VEP_DeaireationValve_Auto : BOOL ; (* *)
|
||||
gH_VEP_DeaireationValve_Manual : REAL ; (* *)
|
||||
|
||||
gH_WaterTempValve_Man_Out_ON : BOOL ; (* Manual OUT Active *)
|
||||
gH_WaterTempValve_Man_SP_ON : BOOL ; (* Manual SP Active *)
|
||||
gH_WaterTempValve_Out_Man_Value : REAL ; (* Manual OUT control Value *)
|
||||
gH_WaterTempValve_SP_Man_Value : REAL ; (* Manual SP control Value *)
|
||||
|
||||
gH_ProdTempValve_Man_Out_ON : BOOL ; (* Manual OUT Active *)
|
||||
gH_ProdTempValve_Man_SP_ON : BOOL ; (* Manual SP Active *)
|
||||
gH_ProdTempValve_Out_Man_Value : REAL ; (* Manual OUT control Value *)
|
||||
gH_ProdTempValve_SP_Man_Value : REAL ; (* Manual SP control Value *)
|
||||
|
||||
gH_CIPTempValve_Man_Out_ON : BOOL ; (* Manual OUT Active *)
|
||||
gH_CIPTempValve_Man_SP_ON : BOOL ; (* Manual SP Active *)
|
||||
gH_CIPTempValve_Out_Man_Value : REAL ; (* Manual OUT control Value *)
|
||||
gH_CIPTempValve_SP_Man_Value : REAL ; (* Manual SP control Value *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* PUMPS *)
|
||||
(*************************************************************************)
|
||||
gH_P1_WaterPump_Auto : BOOL ; (* *)
|
||||
gH_P2_SyrupPump_Auto : BOOL ; (* *)
|
||||
gH_P3_ProductPump_Auto : BOOL ; (* *)
|
||||
gH_P4_VacuumPump_Auto : BOOL ; (* *)
|
||||
gH_P5_WaterPump_Auto : BOOL ; (* *)
|
||||
gH_P5_RinseTankPump_Auto : BOOL ; (* *)
|
||||
gH_P6_RecircPump_Auto : BOOL ; (* *)
|
||||
gH_P5_WaterPump_Manual : BOOL ; (* *)
|
||||
gH_P1_WaterPump_Manual : BOOL ; (* *)
|
||||
gH_P2_SyrupPump_Manual : BOOL ; (* *)
|
||||
gH_P3_ProductPump_Manual : BOOL ; (* *)
|
||||
gH_P3_ProductPumpFC_Manual : REAL ; (* *)
|
||||
gH_P4_VacuumPump_Manual : BOOL ; (* *)
|
||||
gH_P5_RinseTankPump_Manual : BOOL ; (* *)
|
||||
gH_P6_RecircPump_Manual : BOOL ; (* *)
|
||||
gH_SyrupRoomPump_Auto : BOOL ; (* *)
|
||||
gH_SyrupRoomPump_Manual : BOOL ; (* *)
|
||||
END_VAR
|
||||
|
||||
(* @OBJECT_END := HMI_Variables_Cmd *)
|
||||
(* @CONNECTIONS := HMI_Variables_Cmd
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,353 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := HMI_Variables_Status *)
|
||||
(* @PATH := '\/HMI_Variable' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
(*************************************************************************)
|
||||
(* ON - OFF VALVES *)
|
||||
(*************************************************************************)
|
||||
gH_EV01_Status : BOOL; (* *)
|
||||
gH_EV02_Status : BOOL; (* *)
|
||||
gH_EV01_1_Status : BOOL; (* *)
|
||||
gH_EV02_1_Status : BOOL; (* *)
|
||||
gH_EV03_Status : BOOL; (* *)
|
||||
gH_EV04_Status : BOOL; (* *)
|
||||
|
||||
gH_EV11_Status : BOOL; (* *)
|
||||
gH_EV12_Status : BOOL; (* *)
|
||||
gH_EV13_Status : BOOL; (* *)
|
||||
gH_EV14_Status : BOOL; (* *)
|
||||
gH_EV14_1_Status : BOOL; (* *)
|
||||
gH_EV15_Status : BOOL; (* *)
|
||||
gH_EV16_Status : BOOL; (* *)
|
||||
gH_EV16_1_Status : BOOL; (* *)
|
||||
gH_EV17_Status : BOOL; (* *)
|
||||
gH_EV18_Status : BOOL; (* *)
|
||||
|
||||
gH_EV21_Status : BOOL; (* *)
|
||||
gH_EV22_Status : BOOL; (* *)
|
||||
gH_EV23_Status : BOOL; (* *)
|
||||
gH_EV23_1_Status : BOOL; (* *)
|
||||
gH_EV24_Status : BOOL; (* *)
|
||||
gH_EV25_Status : BOOL; (* *)
|
||||
gH_EV26_Status : BOOL; (* *)
|
||||
gH_EV27_Status : BOOL; (* *)
|
||||
gH_EV28_Status : BOOL; (* *)
|
||||
|
||||
gH_EV31_Status : BOOL; (* *)
|
||||
gH_EV32_Status : BOOL; (* *)
|
||||
gH_EV33_Status : BOOL; (* *)
|
||||
gH_EV34_Status : BOOL; (* *)
|
||||
gH_EV35_Status : BOOL; (* *)
|
||||
gH_EV36_Status : BOOL; (* *)
|
||||
gH_EV37_Status : BOOL; (* *)
|
||||
gH_EV38_Status : BOOL; (* *)
|
||||
gH_EV39_Status : BOOL; (* *)
|
||||
|
||||
gH_EV40_Status : BOOL; (* *)
|
||||
gH_EV41_Status : BOOL; (* *)
|
||||
gH_EV42_Status : BOOL; (* *)
|
||||
gH_EV43_Status : BOOL; (* *)
|
||||
gH_EV44_Status : BOOL; (* *)
|
||||
gH_EV45_Status : BOOL; (* *)
|
||||
gH_EV46_Status : BOOL; (* *)
|
||||
gH_EV47_Status : BOOL; (* *)
|
||||
gH_EV48_Status : BOOL; (* *)
|
||||
gH_EV49_Status : BOOL; (* *)
|
||||
|
||||
gH_EV50_Status : BOOL; (* *)
|
||||
gH_EV51_Status : BOOL; (* *)
|
||||
gH_EV52_Status : BOOL; (* *)
|
||||
gH_EV53_Status : BOOL; (* *)
|
||||
gH_EV54_Status : BOOL; (* *)
|
||||
gH_EV55_Status : BOOL; (* *)
|
||||
gH_EV56_Status : BOOL; (* *)
|
||||
gH_EV57_Status : BOOL; (* *)
|
||||
gH_EV58_Status : BOOL; (* *)
|
||||
gH_EV59_Status : BOOL; (* *)
|
||||
|
||||
gH_EV61_Status : BOOL; (* *)
|
||||
gH_EV62_Status : BOOL; (* *)
|
||||
gH_EV63_Status : BOOL; (* *)
|
||||
gH_EV64_Status : BOOL; (* *)
|
||||
gH_EV65_Status : BOOL; (* *)
|
||||
gH_EV66_Status : BOOL; (* *)
|
||||
gH_EV67_Status : BOOL; (* *)
|
||||
gH_EV68_Status : BOOL; (* *)
|
||||
gH_EV69_Status : BOOL; (* *)
|
||||
|
||||
gH_EV71_Status : BOOL; (* *)
|
||||
gH_EV72_Status : BOOL; (* *)
|
||||
gH_EV73_Status : BOOL; (* *)
|
||||
gH_EV74_Status : BOOL; (* *)
|
||||
gH_EV75_Status : BOOL; (* *)
|
||||
gH_EV76_Status : BOOL; (* *)
|
||||
gH_EV77_Status : BOOL; (* *)
|
||||
gH_EV78_Status : BOOL; (* *)
|
||||
gH_EV79_Status : BOOL; (* *)
|
||||
gH_EV80_Status : BOOL; (* *)
|
||||
gH_EV81_Status : BOOL; (* *)
|
||||
gH_EV83_Status : BOOL; (* *)
|
||||
gH_EV84_Status : BOOL; (* *)
|
||||
gH_EV89_Status : BOOL; (* *)
|
||||
|
||||
gH_ManualActive : BOOL ; (* Something is in manual *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* PROCEDURES *)
|
||||
(*************************************************************************)
|
||||
gH_DeairStartUpRun : BOOL ; (* Deaerator StartUp Running *)
|
||||
gH_SyrTankPrepRun : BOOL ; (* Syrup Tank Prep Running *)
|
||||
gH_SyrMFMPrepRun : BOOL ; (* Syrup Tank Prep Running *)
|
||||
gH_FirstProdRun : BOOL ; (* First Production Running *)
|
||||
gH_SyrBrixAutoRun : BOOL ; (* Syrup Brix Autocorrection Running *)
|
||||
gH_SyrDensimeterCalRun : BOOL ; (* Syrup densimeter Calibration Running *)
|
||||
gH_SyrDensimeterCalShow : BOOL ; (* Syrup densimeter Calibration Show *)
|
||||
gH_SyrRunOutRun : BOOL ; (* Syrup Run Out Running *)
|
||||
gH_ProdTankRunOutRun : BOOL ; (* Product Tank Run Out Running *)
|
||||
gH_PrdBrixTrackingRun : BOOL ; (* Product Brix Tracking procedure Running *)
|
||||
gH_PrdTankDrainRun : BOOL ; (* Product Tank Drain Running *)
|
||||
gH_PrdTankPressRun : BOOL ; (* Product Tank Pressure Running *)
|
||||
gH_ColdRinseRun : BOOL ; (* Blender Cold Rinse Running *)
|
||||
gH_WarmRinseRun : BOOL ; (* Blender Warm Rinse Running *)
|
||||
gH_CIP_BlenderDrainRun : BOOL ; (* Blender total Drain In CIP Running *)
|
||||
gH_CIP_ProdTankFloodRun : BOOL ; (* CIP Product Tank Flood Running *)
|
||||
gH_CIP_DeairTankFloodRun : BOOL ; (* CIP Deaerator Tank Flood Running *)
|
||||
gH_CIP_SyrTankFloodRun : BOOL ; (* CIP Syrup Tank Flood Running *)
|
||||
gH_ProdBrixRecoveryRun : BOOL ;
|
||||
|
||||
gH_BlenderStateNum : INT ; (* 3 Syrup MFM preparation
|
||||
5 Deaireator start up
|
||||
7 Carbo water line
|
||||
8 Product tank run out
|
||||
9 Blend Fill System start up
|
||||
10 Product tank drain
|
||||
12 Product pipe run out
|
||||
16 Syrup line preparation
|
||||
18 Rinse
|
||||
19 CIP *)
|
||||
|
||||
gH_BlendFillSysStartUpRun : BOOL ;
|
||||
gH_BlendFillSysPressRun : BOOL ;
|
||||
gH_BlendFillSysProdLoadRun : BOOL ;
|
||||
gH_BlendFillSysProdSendRun : BOOL ;
|
||||
|
||||
(*************************************************************************)
|
||||
(* METERS *)
|
||||
(*************************************************************************)
|
||||
gH_WaterFlowmeter_Fault : BOOL ; (* *)
|
||||
gH_SyrupFlowmeter_Fault : BOOL ; (* *)
|
||||
gH_CO2Flowmeter_Fault : BOOL ; (* *)
|
||||
|
||||
gH_mPDS1000_Fault : BOOL ;
|
||||
gH_ProductMeter_Fault : BOOL ;
|
||||
gH_mPDS1000_Run : BOOL ;
|
||||
gH_ProductMeter_Run : BOOL ;
|
||||
|
||||
(*************************************************************************)
|
||||
(* System Run Out *)
|
||||
(*************************************************************************)
|
||||
gH_SystemRunOutAsk : BOOL ;
|
||||
gH_SystemRunOutEnabled : BOOL ;
|
||||
gH_SystemRunOutRunning : BOOL ;
|
||||
gH_CarboWaterLineRun : BOOL ;
|
||||
gH_ProductPipeRunOutRun : BOOL ;
|
||||
gH_ProductPipeDrainRun : BOOL ;
|
||||
|
||||
gH_SyrupTankPrepDone : BOOL ;
|
||||
gH_CarboWaterLineDone : BOOL ;
|
||||
gH_SyrupRunOutDone : BOOL ;
|
||||
gH_ProductTankRunOutDone : BOOL ;
|
||||
gH_ProductPipeRunOutDone : BOOL ;
|
||||
gH_ProductPipeDrainDone : BOOL ;
|
||||
gH_FastRinseDone : BOOL ;
|
||||
gH_FillerRinseDone : BOOL ;
|
||||
gH_FirstProductionDone : BOOL ;
|
||||
|
||||
gH_StopDepall : BOOL ;
|
||||
gH_FillerBottleBlock : BOOL ;
|
||||
gH_FillerRinseRun : BOOL ;
|
||||
gH_FillerRinseTankMinLvl : BOOL ;
|
||||
gH_FillerRinseTankMaxLvl : BOOL ;
|
||||
gH_ProductTankMinLvl : BOOL ;
|
||||
|
||||
gH_FastChangeWait1 : BOOL ;
|
||||
gH_FastChangeWait2 : BOOL ;
|
||||
gH_FastChangeProcValue : REAL ;
|
||||
|
||||
(*************************************************************************)
|
||||
(* SYSTEM *)
|
||||
(*************************************************************************)
|
||||
gH_HMIShutdownRequest : BOOL ; (* *)
|
||||
|
||||
gH_Blender_Running : BOOL ; (* *)
|
||||
gH_Blender_Powered : BOOL ; (* *)
|
||||
gH_CIPReturnFlowOk : BOOL ;
|
||||
gH_ProdTankMinLevel : BOOL ;
|
||||
gH_ProdTankLevelOk : BOOL ; (* Product Tank Minimum Recipe Level Acheaved *)
|
||||
gH_ProdTankMaxLevel : BOOL ; (* Product Tank Maximum Level Acheaved *)
|
||||
gH_DeairTankMinLevel : BOOL ; (* *)
|
||||
gH_DeairTank2MinLevel : BOOL ; (* *)
|
||||
gH_SyrupTankMinLevel : BOOL ; (* *)
|
||||
gH_Blender_All_Auto : BOOL ; (* Everything in Auto *)
|
||||
|
||||
gH_BlendingMaintHour : UINT ;
|
||||
|
||||
(*************************************************************************)
|
||||
(* PUMPS *)
|
||||
(*************************************************************************)
|
||||
gH_P1_WaterPump_Status : BOOL ; (* *)
|
||||
gH_P5_WaterPump_Status : BOOL ; (* *)
|
||||
gH_P2_SyrupPump_Status : BOOL ; (* *)
|
||||
gH_P3_ProductPump_Status : BOOL ; (* *)
|
||||
gH_P4_VacuumPump_Status : BOOL ; (* *)
|
||||
gH_P5_RinseTankPump_Status : BOOL ; (* *)
|
||||
gH_P6_RecircPump_Status : BOOL ; (* *)
|
||||
gH_SyrupRoomPump_Status : BOOL ; (* *)
|
||||
gH_SyrupRoomWaterPump_Status : BOOL ; (* *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* PROFIBUS *)
|
||||
(*************************************************************************)
|
||||
gH_FC3102_DP_Error : BOOL ; (* *)
|
||||
gH_FC3102_DP_State : INT ; (* *)
|
||||
gH_ProductPumpVFC_DP_Error : BOOL ; (* *)
|
||||
gH_ProductPumpVFC_DP_State : INT ; (* *)
|
||||
gH_ET200_DP_Error : BOOL ; (* *)
|
||||
gH_ET200_DP_State : INT ; (* *)
|
||||
gH_ProdPH_DP_Error : BOOL ; (* *)
|
||||
gH_ProdPH_DP_State : INT ; (* *)
|
||||
gH_ProdCond_DP_Error : BOOL ; (* *)
|
||||
gH_ProdCond_DP_State : INT ; (* *)
|
||||
gH_Water_VFM_DP_Error : BOOL ; (* *)
|
||||
gH_Water_VFM_DP_State : INT ; (* *)
|
||||
gH_Syrup_MFM_DP_Error : BOOL ; (* *)
|
||||
gH_Syrup_MFM_DP_State : INT ; (* *)
|
||||
gH_CarboCO2_MFM_DP_Error : BOOL ; (* *)
|
||||
gH_CarboCO2_MFM_DP_State : INT ; (* *)
|
||||
gH_ValvesBase_Node12_DP_Error : BOOL ; (* *)
|
||||
gH_ValvesBase_Node12_DP_State : INT ; (* *)
|
||||
gH_ValvesBase_Node13_DP_Error : BOOL ; (* *)
|
||||
gH_ValvesBase_Node13_DP_State : INT ; (* *)
|
||||
gH_Product_VFM_DP_Error : BOOL ; (* *)
|
||||
gH_Product_VFM_DP_State : INT ; (* *)
|
||||
gH_LowCond_DP_Node15_Error : BOOL ; (* *)
|
||||
gH_LowCond_DP_Node15_State : INT ; (* *)
|
||||
gH_HighCond_DP_Node16_Error : BOOL ; (* *)
|
||||
gH_HighCond_DP_Node16_State : INT ; (* *)
|
||||
gH_PAmPDS_DP_Error : BOOL ; (* *)
|
||||
gH_PAmPDS_DP_State : INT ; (* *)
|
||||
|
||||
(*************************************************************************)
|
||||
(* ANALOG VALUES - READ *)
|
||||
(*************************************************************************)
|
||||
gH_WaterDeairTemperature : REAL ; (* *)
|
||||
gH_ProductTankPressurePV : REAL ; (* Product Tank Pressure Process Value *)
|
||||
gH_ProductTankPressureSP : REAL ; (* Product Tank Pressure Set Point *)
|
||||
gH_ProductTankLevel : REAL ; (* *)
|
||||
gH_SyrupTankLevel : REAL ; (* *)
|
||||
gH_ProductBrix : REAL ; (* *)
|
||||
gH_ProductCO2 : REAL ; (* *)
|
||||
gH_ProductO2Conc : REAL ; (* *)
|
||||
gH_ProductConductivity : REAL ; (* *)
|
||||
gH_BrixMeterRecipeNum : INT ;
|
||||
gH_ProductTemperature : REAL ; (* *)
|
||||
gH_ProductTemperaturePt100 : REAL ; (* *)
|
||||
gH_WaterLineTemperature : REAL ; (* *)
|
||||
gH_WaterTarget : REAL ; (* *)
|
||||
gH_SyrupTarget : REAL ; (* *)
|
||||
gH_CO2Target : REAL ; (* *)
|
||||
gH_WaterFlowRate : REAL ; (* *)
|
||||
gH_SyrupFlowRate : REAL ; (* *)
|
||||
gH_CO2FlowRate : REAL ; (* *)
|
||||
gH_BlenderProd : REAL ; (* Blender Production L/min *)
|
||||
gH_EstFillerProd : REAL ; (* Estimated Filler Production L/min *)
|
||||
gH_WaterTotalizer : REAL ; (* *)
|
||||
gH_SyrupBrix : REAL ; (* *)
|
||||
gH_SyrupDensity : REAL ; (* *)
|
||||
gH_SyrupTemperature : REAL ; (* *)
|
||||
gH_SyrupTotalizerKg : REAL ; (* *)
|
||||
gH_SyrupTotalizerLt : REAL ; (* *)
|
||||
gH_CO2Temperature : REAL ; (* *)
|
||||
gH_CO2Density : REAL ; (* *)
|
||||
gH_CO2Totalizer : REAL ; (* *)
|
||||
gH_ActualCO2 : REAL ; (* *)
|
||||
gH_CO2InjPressure : REAL ; (* *)
|
||||
gH_CO2InjPressureSP : REAL ;
|
||||
gH_ProductTotalizer : REAL ; (* *)
|
||||
gH_DeairPressure : REAL ; (* *)
|
||||
|
||||
gH_mPDS1000_Brix : REAL ;
|
||||
gH_mPDS1000_Dens : REAL ;
|
||||
gH_mPDS1000_Temp : REAL ;
|
||||
gH_ActualSyrupBrix : REAL ;
|
||||
gH_ActualSyrupDens : REAL ;
|
||||
gH_ActualSyrupTemp : REAL ;
|
||||
gH_WaterPercentage : REAL ;
|
||||
gH_SyrupPercentage : REAL ;
|
||||
gH_ActualRatio : REAL ;
|
||||
gH_SyrupBrixCorrection : REAL ;
|
||||
gH_ProductBrixCorrection : REAL ;
|
||||
|
||||
gH_BlendError : REAL ; (* *)
|
||||
gH_CarboError : REAL ; (* *)
|
||||
|
||||
gH_MaxBlendError : REAL ;
|
||||
gH_MaxCarboCO2Error : REAL ;
|
||||
|
||||
gH_ProductFlow : REAL ;
|
||||
gH_ProductTankHeight : REAL ;
|
||||
gH_P3_Frequency : REAL ;
|
||||
gH_P3_FrequencyFFOut : REAL ;
|
||||
gH_FillingValveHead : REAL ;
|
||||
gH_DiffSensorPressure : REAL ;
|
||||
gH_FillingValve1Pressure : REAL ;
|
||||
|
||||
(*************************************************************************)
|
||||
(* MODULATING VALVES *)
|
||||
(*************************************************************************)
|
||||
gH_WaterValveOV : REAL; (* *)
|
||||
gH_WaterValveFFOut : REAL ; (* *)
|
||||
|
||||
gH_SyrupValveOV : REAL ; (* *)
|
||||
gH_SyrupValveFFOut : REAL ; (* *)
|
||||
|
||||
gH_CO2CarboValveOV : REAL ; (* *)
|
||||
gH_CarboCO2ValveFFOut : REAL ; (* *)
|
||||
|
||||
gH_SyrupLevelValveOV : REAL ; (* *)
|
||||
gH_SyrupLevelValveFFOut : REAL ; (* *)
|
||||
|
||||
gH_CO2PressValveOV : REAL ; (* *)
|
||||
|
||||
gH_WaterTempValve_OV : REAL ;
|
||||
gH_WaterTempValve_SP : REAL ; (* *)
|
||||
gH_WaterTempValve_PV : REAL ; (* *)
|
||||
|
||||
gH_ProdTempValve_OV : REAL ; (* *)
|
||||
gH_ProdTempValve_SP : REAL ; (* *)
|
||||
gH_ProdTempValve_PV : REAL ; (* *)
|
||||
|
||||
gH_CIPTempValve_OV : REAL ; (* *)
|
||||
gH_CIPTempValve_SP : REAL ; (* *)
|
||||
gH_CIPTempValve_PV : REAL ; (* *)
|
||||
|
||||
gH_VEP_DeaireationValveOV : REAL ; (* *)
|
||||
gH_VEP_DeairFlowPV : REAL ; (* *)
|
||||
END_VAR
|
||||
|
||||
VAR_GLOBAL PERSISTENT
|
||||
(*************************************************************************)
|
||||
(* PROCESSOR STATES *)
|
||||
(*************************************************************************)
|
||||
gH_Blender_Prod_CIP : BOOL ; (* 1 = production, 0 = CIP *)
|
||||
gH_Blender_Rinse : BOOL ; (* *)
|
||||
gH_SyrupRunOutCount : REAL ;
|
||||
END_VAR
|
||||
|
||||
(* @OBJECT_END := HMI_Variables_Status *)
|
||||
(* @CONNECTIONS := HMI_Variables_Status
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,49 @@
|
|||
(* @PATH := '\/CIP Structure' *)
|
||||
TYPE Input_CIP_Signals :
|
||||
STRUCT
|
||||
CIP_Ready : BOOL ;
|
||||
Drain_Request : BOOL ;
|
||||
Rinse_Request : BOOL ;
|
||||
CIP_Completed : BOOL ;
|
||||
Spare4 : BOOL ;
|
||||
Spare5 : BOOL ;
|
||||
Spare6 : BOOL ;
|
||||
Spare7 : BOOL ;
|
||||
Spare8 : BOOL ;
|
||||
Spare9 : BOOL ;
|
||||
Spare10 : BOOL ;
|
||||
Spare11 : BOOL ;
|
||||
Spare12 : BOOL ;
|
||||
Spare13 : BOOL ;
|
||||
Spare14 : BOOL ;
|
||||
Spare15 : BOOL ;
|
||||
Spare16 : BOOL ;
|
||||
Spare17 : BOOL ;
|
||||
Spare18 : BOOL ;
|
||||
Spare19 : BOOL ;
|
||||
Spare20 : BOOL ;
|
||||
Spare21 : BOOL ;
|
||||
Spare22 : BOOL ;
|
||||
Spare23 : BOOL ;
|
||||
Spare24 : BOOL ;
|
||||
Spare25 : BOOL ;
|
||||
Spare26 : BOOL ;
|
||||
Spare27 : BOOL ;
|
||||
Spare28 : BOOL ;
|
||||
Spare29 : BOOL ;
|
||||
Spare30 : BOOL ;
|
||||
Spare31 : BOOL ;
|
||||
|
||||
Spare_Word0 : WORD ;
|
||||
Spare_Word1 : WORD ;
|
||||
Spare_Word2 : WORD ;
|
||||
Spare_Word3 : WORD ;
|
||||
|
||||
Spare_Real0 : REAL ;
|
||||
Spare_Real1 : REAL ;
|
||||
Spare_Real2 : REAL ;
|
||||
Spare_Real3 : REAL ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,15 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := Input_Signal *)
|
||||
(* @PATH := '' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
Omegat : REAL;
|
||||
Ramp_Sgn : REAL;
|
||||
END_VAR
|
||||
|
||||
(* @OBJECT_END := Input_Signal *)
|
||||
(* @CONNECTIONS := Input_Signal
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '4096' *)
|
||||
FUNCTION_BLOCK Integral
|
||||
VAR_INPUT
|
||||
i_NewValue : REAL;
|
||||
i_IntCycle : REAL ;
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
Out_Integral : REAL;
|
||||
END_VAR
|
||||
VAR
|
||||
mOldValue : REAL;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(* Trapezoidal Integral Method *)
|
||||
Out_Integral := Out_Integral + ( mOldValue + (i_NewValue - mOldValue ) * 0.5 ) * i_IntCycle;
|
||||
mOldValue := i_NewValue;
|
||||
|
||||
END_FUNCTION_BLOCK
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,54 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION_BLOCK LowPassFilter
|
||||
VAR_INPUT
|
||||
i_Value : REAL ; (* Istant Value to Filter *)
|
||||
i_Num : UINT ; (* Number of sample to Average - 0 = No filter - *)
|
||||
i_Enable : BOOL ; (* Enable the filter *)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
FilterOut : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
mDataArray : ARRAY [0..49] OF REAL ;
|
||||
i : INT ;
|
||||
j : INT ;
|
||||
mArrayPtr : INT ; (* Actual array index during array charge *)
|
||||
mTemp : REAL ;
|
||||
END_VAR
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF i_Enable THEN
|
||||
IF i_Num >0 THEN
|
||||
IF i_Num > 49 THEN
|
||||
i_Num := 49 ; (* Limit the number of samples *)
|
||||
END_IF
|
||||
IF mArrayPtr <= i_Num THEN (* Charging the Array *)
|
||||
FOR j:=mArrayPtr TO 1 BY -1 DO
|
||||
mDataArray[j] := mDataArray[j - 1] ; (* Right Shifting *)
|
||||
END_FOR
|
||||
mDataArray[0] := i_Value ;
|
||||
mTemp := 0.0 ;
|
||||
FOR i:=0 TO mArrayPtr DO
|
||||
mTemp := mTemp + mDataArray[i] ; (* Dinamic Averaging *)
|
||||
END_FOR
|
||||
IF (mArrayPtr + 1)<>0 THEN
|
||||
FilterOut := mTemp / (mArrayPtr + 1) ;
|
||||
END_IF
|
||||
mArrayPtr := mArrayPtr + 1 ;
|
||||
IF mArrayPtr > i_Num THEN
|
||||
mArrayPtr := i_Num ;
|
||||
END_IF
|
||||
END_IF
|
||||
ELSE
|
||||
FilterOut := i_Value ;
|
||||
END_IF
|
||||
ELSE
|
||||
FOR i:=0 TO mArrayPtr DO
|
||||
mDataArray[i] := 0 ; (* Right Shifting *)
|
||||
END_FOR
|
||||
mArrayPtr := 0 ;
|
||||
FilterOut := i_Value ;
|
||||
END_IF
|
||||
|
||||
END_FUNCTION_BLOCK
|
|
@ -0,0 +1,66 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION_BLOCK LowPassFilterOpt
|
||||
VAR_INPUT
|
||||
i_Value : REAL ; (* Istant Value to Filter *)
|
||||
i_Num : UINT ; (* Number of sample to Average - 0 = No filter - *)
|
||||
i_Enable : BOOL ; (* Enable the filter *)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
FilterOut : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
mDataArray : ARRAY [0..49] OF REAL ;
|
||||
mArrayLoaded : BOOL ;
|
||||
mArrayCleaned : BOOL ;
|
||||
i : UINT ;
|
||||
mArrayPtr : UINT ; (* Actual array index during array charge *)
|
||||
mLastValue : REAL ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF i_Enable THEN
|
||||
IF i_Num>0 THEN
|
||||
mArrayCleaned := FALSE ;
|
||||
IF i_Num > 49 THEN
|
||||
i_Num := 49 ; (* Limit the number of samples *)
|
||||
END_IF
|
||||
IF NOT mArrayLoaded THEN
|
||||
IF mArrayPtr < i_Num THEN (* Charging the Array *)
|
||||
mDataArray[mArrayPtr] := i_Value ;
|
||||
FilterOut := (FilterOut * mArrayPtr + i_Value) / (mArrayPtr + 1) ;
|
||||
mArrayPtr := mArrayPtr + 1 ;
|
||||
ELSE
|
||||
mArrayLoaded := TRUE ;
|
||||
mArrayPtr := i_Num - 1 ;
|
||||
END_IF
|
||||
END_IF
|
||||
IF mArrayLoaded THEN
|
||||
mLastValue := mDataArray[mArrayPtr] ;
|
||||
mDataArray[mArrayPtr] := i_Value ;
|
||||
IF mArrayPtr=0 THEN
|
||||
mArrayPtr := i_Num - 1 ;
|
||||
ELSE
|
||||
mArrayPtr := mArrayPtr - 1 ;
|
||||
END_IF
|
||||
(* Mean Value Calculation *)
|
||||
FilterOut := FilterOut + ((i_Value - mLastValue) / i_Num) ;
|
||||
END_IF
|
||||
ELSE
|
||||
mArrayLoaded := FALSE ;
|
||||
FilterOut := i_Value ;
|
||||
mArrayPtr := 0 ;
|
||||
END_IF
|
||||
ELSE
|
||||
IF NOT mArrayCleaned THEN
|
||||
FOR i:=0 TO 49 DO
|
||||
mDataArray[i] := 0 ;
|
||||
mArrayCleaned := TRUE ;
|
||||
END_FOR
|
||||
END_IF
|
||||
mArrayLoaded := FALSE ;
|
||||
FilterOut := i_Value ;
|
||||
mArrayPtr := 0 ;
|
||||
END_IF
|
||||
END_FUNCTION_BLOCK
|
|
@ -0,0 +1,61 @@
|
|||
(* @GLOBAL_VARIABLE_LIST := Maselli *)
|
||||
(* @PATH := '\/Product_Syrup_Meters' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
VAR_GLOBAL
|
||||
(*************************************************************************************)
|
||||
(* OUTPUT TO Maselli *)
|
||||
(*************************************************************************************)
|
||||
gMaselliOptoEnabled AT%MB2010 : BOOL ;
|
||||
gMaselliReset AT%MB2011 : BOOL ;
|
||||
gMaselliSetNewRec AT%MB2012 : BOOL ;
|
||||
gMaselliNumRecipe AT%MB2013 : INT ;
|
||||
gMaselliUC05_Enabled AT%MB2015 : BOOL ;
|
||||
gMaselliUC05_ZeroCO2 AT%MB2016 : REAL;
|
||||
gMaselliUR22_Enabled AT%MB2020 : BOOL ;
|
||||
gMaselliUR22_RecipeType AT%MB2021 : REAL; (* 0: Regular, 2: Diet - per ora non usato*)
|
||||
gMaselliUR22_ZeroBrix AT%MB2025 : REAL;
|
||||
|
||||
(*************************************************************************************)
|
||||
(* INPUT FROM Maselli Opto *)
|
||||
(*************************************************************************************)
|
||||
gMaselli_Block : MaselliOpto_Type ;
|
||||
gMaselliStatus : WORD ;
|
||||
gMaselliStatusArray AT%MB500 : ARRAY[0..15] OF BOOL ;
|
||||
gMaselliProdFlag2 AT%MB500 : BOOL ;
|
||||
gMaselliProdFlag1 AT%MB501 : BOOL ;
|
||||
gMaselliDerivativeAction AT%MB502 : BOOL ;
|
||||
gMaselliIntegralAction AT%MB503 : BOOL ;
|
||||
gMaselliCO2Regulation AT%MB504 : BOOL ;
|
||||
gMaselliCO2CntrFunct AT%MB505 : BOOL ;
|
||||
gMaselliLineStopped AT%MB506 : BOOL ;
|
||||
gMaselliTempRegulation AT%MB507 : BOOL ;
|
||||
gMaselliBrixRegulation AT%MB508 : BOOL ;
|
||||
gMaselliWinding AT%MB509 : BOOL ;
|
||||
gMaselliBxCntrFunct AT%MB510 : BOOL ;
|
||||
gMaselliLampFailure AT%MB511 : BOOL ;
|
||||
gMaselliCO2Alarm AT%MB512 : BOOL ;
|
||||
gMaselliBrixAlarm AT%MB513 : BOOL ;
|
||||
gMaselliCO2CycleRun AT%MB514 : BOOL ;
|
||||
gMaselliPumpOn AT%MB515 : BOOL ;
|
||||
|
||||
gMaselliError : BOOL ;
|
||||
gMaselliErrorCode : DWORD ;
|
||||
|
||||
(*************************************************************************************)
|
||||
(* INPUT FROM Maselli UC05 *)
|
||||
(*************************************************************************************)
|
||||
gMaselliUC05_Block : MaselliUC05_Type ;
|
||||
|
||||
(*************************************************************************************)
|
||||
(* INPUT FROM Maselli UR22 *)
|
||||
(*************************************************************************************)
|
||||
gMaselliUR22_Block : MaselliUR22_Type ;
|
||||
END_VAR
|
||||
|
||||
(* @OBJECT_END := Maselli *)
|
||||
(* @CONNECTIONS := Maselli
|
||||
FILENAME : ''
|
||||
FILETIME : 0
|
||||
EXPORT : 0
|
||||
NUMOFCONNECTIONS : 0
|
||||
*)
|
|
@ -0,0 +1,31 @@
|
|||
(* @PATH := '\/Product Syrup Meters' *)
|
||||
TYPE MaselliOpto_Type :
|
||||
STRUCT
|
||||
(************** Next Structure Length is 72 Bytes**************************)
|
||||
DataBusy : BOOL ;
|
||||
CmdExec : BOOL ;
|
||||
ComError : BOOL ;
|
||||
Dummy : BOOL ;
|
||||
ErrorCode : DWORD ;
|
||||
|
||||
Status : WORD ;
|
||||
ProdRecipeNum : INT ;
|
||||
ProdBrix : REAL ;
|
||||
ProdTemp : REAL ;
|
||||
ProdBrix_Tg : REAL ;
|
||||
ProdBrix_LowAlrm : REAL ;
|
||||
ProdBrix_HighAlrm: REAL ;
|
||||
ProdCO2 : REAL ;
|
||||
CO2Press : REAL ;
|
||||
CO2Temp : REAL ;
|
||||
ProdCO2_Tg : REAL ;
|
||||
ProdCO2_LowAlrm: REAL ;
|
||||
ProdCO2_HighAlrm: REAL ;
|
||||
ProdBrix_Comp : REAL ;
|
||||
ProdBrix_NoComp: REAL ;
|
||||
LinePress : REAL ;
|
||||
LineTemp : REAL ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,25 @@
|
|||
(* @PATH := '\/Product Syrup Meters' *)
|
||||
TYPE MaselliUC05_Type :
|
||||
STRUCT
|
||||
DataBusy : BOOL ; (* Set whenever the driver has sended the ? Command - Reset When Ready *)
|
||||
CmdExec : BOOL ; (* Notifies that the driver is executing a specific command *)
|
||||
ComError : BOOL ; (* Driver Error *)
|
||||
Dummy : BOOL ;
|
||||
|
||||
ErrorCode : DWORD ; (* Error Code *)
|
||||
|
||||
CO2_Value : REAL ;
|
||||
CO2_Zero : REAL ;
|
||||
CO2_Span : REAL ;
|
||||
CO2_Damping : REAL ;
|
||||
CO2_NumCurve : REAL ;
|
||||
CO2_Temp : REAL ;
|
||||
CO2_LineTemp : REAL ;
|
||||
CO2_Press : REAL ;
|
||||
CO2_LinePress : REAL ;
|
||||
CO2_BitCW : WORD ;
|
||||
CO2_CicleTime : REAL ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,28 @@
|
|||
(* @PATH := '\/Product Syrup Meters' *)
|
||||
TYPE MaselliUR22_Type :
|
||||
STRUCT
|
||||
DataBusy : BOOL ; (* Set whenever the driver has sended the ? Command - Reset When Ready *)
|
||||
CmdExec : BOOL ; (* Notifies that the driver is executing a specific command *)
|
||||
ComError : BOOL ; (* Driver Error *)
|
||||
Dummy : BOOL ;
|
||||
|
||||
ErrorCode : DWORD ; (* Error Code *)
|
||||
|
||||
Brix_Value : REAL ;
|
||||
Brix_Zero : REAL ;
|
||||
Brix_Span : REAL ;
|
||||
Brix_Damping : REAL ;
|
||||
Brix_STD_Value : REAL ;
|
||||
Brix_STD_PV : REAL ;
|
||||
Brix_STD_Range : REAL ;
|
||||
Brix_STD_Factor : REAL ;
|
||||
Brix_Temp : REAL ;
|
||||
Brix_Press : REAL ;
|
||||
Prisma_Temp : REAL ;
|
||||
Derivative : REAL ;
|
||||
Humidity : REAL ;
|
||||
BitCW : WORD ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,23 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION MaxCarboCO2_Vol : REAL
|
||||
VAR_INPUT
|
||||
i_Temp : REAL ;
|
||||
i_Press : REAL ;
|
||||
END_VAR
|
||||
VAR
|
||||
mAbsTemp : REAL ;
|
||||
mAux : REAL ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF i_Temp<=0 THEN i_Temp:= 12.0 ; END_IF
|
||||
mAbsTemp := i_Temp + gZeroAbsolute ;
|
||||
IF (0.03275 * mAbsTemp - 7.9567)<>0 AND i_Press <>0 AND (0.000261 + mAux * (1 + 1.0332 / i_Press))<>0 THEN
|
||||
mAux := (0.01898 - 0.0000476 * mAbsTemp) / (0.03275 * mAbsTemp - 7.9567) ;
|
||||
MaxCarboCO2_Vol := i_Press * mAbsTemp / 1.0332 * (0.000261 + mAux * (1 + 1.0332 / i_Press)) ;
|
||||
ELSE
|
||||
MaxCarboCO2_Vol := -1 ;
|
||||
END_IF
|
||||
END_FUNCTION
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION_BLOCK MessageScroll
|
||||
VAR_INPUT
|
||||
msg_array : ARRAY [0..70] OF BOOL;
|
||||
scroll_sec : INT;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
msg_code: INT;
|
||||
END_VAR
|
||||
VAR
|
||||
mONS: R_TRIG ;
|
||||
msg_ptr: POINTER TO BYTE;
|
||||
i_sec: INT;
|
||||
i_msg: INT;
|
||||
msg_active: BOOL;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
mONS(CLK:=gClock_1s) ;
|
||||
IF i_msg < SIZEOF(msg_array) THEN
|
||||
msg_ptr := ADR (msg_array[i_msg]) ;
|
||||
IF msg_ptr^ = 1 THEN
|
||||
msg_active := TRUE;
|
||||
msg_code := i_msg ;
|
||||
IF mONS.Q THEN
|
||||
IF i_sec <= scroll_sec THEN
|
||||
i_sec := i_sec + 1;
|
||||
ELSE
|
||||
i_sec := 0;
|
||||
i_msg := i_msg + 1;
|
||||
END_IF
|
||||
END_IF
|
||||
ELSE
|
||||
i_msg := i_msg + 1;
|
||||
i_sec := 0;
|
||||
END_IF
|
||||
ELSE
|
||||
i_msg := 0 ;
|
||||
msg_active := FALSE;
|
||||
msg_code := i_msg ;
|
||||
END_IF
|
||||
END_FUNCTION_BLOCK
|
|
@ -0,0 +1,7 @@
|
|||
(* @PATH := '' *)
|
||||
TYPE Message_Scroll :
|
||||
STRUCT
|
||||
gH_Message : ARRAY [0..70] OF BOOL;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,663 @@
|
|||
|
||||
(* @PATH := '\/TASK0_VOID' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM MFMAnalog_Values
|
||||
VAR
|
||||
mCarboCO2DeltaPSim : REAL ;
|
||||
mTemp : MFM_Real_Struct ;
|
||||
mAuxONS : F_TRIG ;
|
||||
mBlendStopONS : BOOL ;
|
||||
mBlendStopDly : TOF ;
|
||||
mAuxTP : TP ;
|
||||
|
||||
mH2OValveSlew : SlewLimit ;
|
||||
mH2OFlowFlted : LowPassFilter ;
|
||||
mSyrValveSlew : SlewLimit ;
|
||||
mSyrFlowFlted : LowPassFilter ;
|
||||
mCarboCO2ValveSlew : SlewLimit ;
|
||||
mCarboCO2FlowFlted : LowPassFilter ;
|
||||
mWaterFlowTmp : REAL ;
|
||||
mSyrupFlowTmp : REAL ;
|
||||
mCarboCO2FlowTmp : REAL ;
|
||||
mCO2InjPressure : REAL ;
|
||||
mWaterFlowDld : Delay ;
|
||||
mSyrupFlowDld : Delay ;
|
||||
mCarboCO2FlowDld : Delay ;
|
||||
mWaterVFMError : LREAL ;
|
||||
mWaterDRand : FW_DRand ;
|
||||
mCO2WaterEffectDRand : FW_DRand ;
|
||||
mCO2WaterCoupling : REAL ;
|
||||
mSyrupMFMError : LREAL ;
|
||||
mSyrupDRand : FW_DRand ;
|
||||
mCO2MFMError : LREAL ;
|
||||
mCO2DRand : FW_DRand ;
|
||||
mH2OTotFlted : LowPassFilter ;
|
||||
mSyrupTotFlted : LowPassFilter ;
|
||||
mSyrupDensFlted : LowPassFilter ;
|
||||
mSyrupBrixFlted : LowPassFilter ;
|
||||
mSyrupTempFlted : LowPassFilter ;
|
||||
mCarboCO2TotFlted : LowPassFilter ;
|
||||
mCarboCO2TempFlted : LowPassFilter ;
|
||||
mCarboCO2DensFlted : LowPassFilter ;
|
||||
mCO2InjPressFlted : LowPassFilter ;
|
||||
mProdFlowFlt : LowPassFilter ;
|
||||
mCO2DensSim : REAL ;
|
||||
mDummy : BOOL ;
|
||||
mProdFlowFlted : LowPassFilter;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF NOT gH_Blender_OPT_Simulation THEN
|
||||
IF gH_Blender_OPT_Conductimeter_Profibus THEN
|
||||
mTemp := ConvertReal(gLowCond_Node15 ) ;
|
||||
gLowCond_Conductivity := mTemp.Analog_Value ;
|
||||
gLowCond_Conductivity_State := mTemp.Value_State ;
|
||||
gIn_C2_Conductivity_Water := 1000*gLowCond_Conductivity;
|
||||
|
||||
mTemp := ConvertReal(gLowCondTemp_Node15 ) ;
|
||||
gLowCond_Temperature := mTemp.Analog_Value ;
|
||||
gLowCond_Temperature_State := mTemp.Value_State ;
|
||||
gCIPReturnTemp_PV:=gLowCond_Temperature;
|
||||
|
||||
mTemp := ConvertReal(gHighCond_Node16 ) ;
|
||||
gHighCond_Conductivity := mTemp.Analog_Value ;
|
||||
gHighCond_Conductivity_State := mTemp.Value_State ;
|
||||
gIn_C1_Conductivity_Caustic := 1*gHighCond_Conductivity;
|
||||
|
||||
mTemp := ConvertReal(gHighCondTemp_Node16 ) ;
|
||||
gHighCond_Temperature := mTemp.Analog_Value ;
|
||||
gHighCond_Temperature_State := mTemp.Value_State ;
|
||||
gCIPHeaterTemp_PV:=gHighCond_Temperature;
|
||||
END_IF
|
||||
mTemp := ConvertReal( gProductFlow_Node17 ) ;
|
||||
gVFM_ProductFlow := mTemp.Analog_Value ; (* Product Flowrate Reading From FM Node17 *)
|
||||
gVFM_ProductFlow_State := mTemp.Value_State ; (* Product Flowrate Error Code *)
|
||||
|
||||
mTemp := ConvertReal( gProductTotalizer1_Node17 ) ;
|
||||
gVFM_ProductTotalizer := mTemp.Analog_Value ; (* Product Totalizer Reading From FM Node17 *)
|
||||
gVFM_ProductTotalizer_State := mTemp.Value_State ; (* Product Totalizer Error Code *)
|
||||
|
||||
mTemp := ConvertReal(gProdPH_Node18 ) ;
|
||||
gProdPH_PHValue := mTemp.Analog_Value ;
|
||||
gProdPH_PHValue_State := mTemp.Value_State ;
|
||||
|
||||
mTemp := ConvertReal(gTempProdPH_Node18 ) ;
|
||||
gProdPH_Temperature := mTemp.Analog_Value ;
|
||||
gProdPH_Temperature_State := mTemp.Value_State ;
|
||||
|
||||
mTemp := ConvertReal(gProdCond_Node19 ) ;
|
||||
gProdCond_Conductivity := mTemp.Analog_Value ;
|
||||
gProdCond_Conductivity_State := mTemp.Value_State ;
|
||||
gProductConductivity := 1000*gProdCond_Conductivity;
|
||||
|
||||
mTemp := ConvertReal(gTempProdCond_Node19 ) ;
|
||||
gProdCond_Temperature := mTemp.Analog_Value ;
|
||||
gProdCond_Temperature_State := mTemp.Value_State ;
|
||||
|
||||
mTemp := ConvertReal( gWaterFlow_Node20 ) ;
|
||||
gMFM_WaterFlow := mTemp.Analog_Value ; (* Water Flowrate Reading From VFM Node20 *)
|
||||
gMFM_WaterFlow_State := mTemp.Value_State ; (* Water Flowrate Error Code *)
|
||||
|
||||
mTemp := ConvertReal( gWaterTotalizer1_Node20 ) ;
|
||||
gMFM_WaterTotalizer := mTemp.Analog_Value ; (* Water Totalizer Reading From VFM Node20 *)
|
||||
gMFM_WaterTotalizer_State := mTemp.Value_State ; (* Water Totalizer Error Code *)
|
||||
|
||||
mTemp := ConvertReal( gSyrMassFlow_Node21 ) ;
|
||||
gMFM_Syrup1Flow := mTemp.Analog_Value ; (* Syrup Flowrate Reading From MFM Node21 *)
|
||||
gMFM_Syrup1Flow_State := mTemp.Value_State ; (* Syrup Flowrate Error Code *)
|
||||
|
||||
mTemp := ConvertReal( gSyrTemperature_Node21 ) ;
|
||||
gMFM_TemperatureSyrup1 := mTemp.Analog_Value ; (* Syrup Temperature Reading From MFM Node21 *)
|
||||
IF gMFM_TemperatureSyrup1>200 THEN
|
||||
gMFM_TemperatureSyrup1 := gMFM_TemperatureSyrup1 - gZeroAbsolute ;
|
||||
END_IF
|
||||
gMFM_TemperatureSyrup1_State := mTemp.Value_State ;(* Syrup Temperature Error Code *)
|
||||
|
||||
mTemp := ConvertReal(gSyrTotalizer1_Node21 ) ;
|
||||
gMFM_Syrup1Totalizer := mTemp.Analog_Value ;
|
||||
gMFM_Syrup1Totalizer_State := mTemp.Value_State ;
|
||||
|
||||
mTemp := ConvertReal( gSyrDensity_Node21 ) ;
|
||||
gMFM_Syrup1Density := mTemp.Analog_Value + gH2O_Density_Off ;
|
||||
gMFM_Syrup1Density_State := mTemp.Value_State ;
|
||||
|
||||
mTemp := ConvertReal( gSyrBrix_Node21 ) ;
|
||||
IF gWorkshopTest THEN
|
||||
gMFM_Syrup1Brix := gTestSyrBrix ;
|
||||
ELSE
|
||||
gMFM_Syrup1Brix := mTemp.Analog_Value ;
|
||||
END_IF
|
||||
gMFM_Syrup1Brix_State := mTemp.Value_State ;
|
||||
|
||||
mTemp := ConvertReal( gCO2MassFlow_Node22 ) ;
|
||||
gMFM_CO2Flow := mTemp.Analog_Value ;
|
||||
gMFM_CO2Flow_State := mTemp.Value_State ;
|
||||
|
||||
mTemp := ConvertReal( gCO2Temperature_Node22 ) ;
|
||||
gMFM_CO2Temperature := mTemp.Analog_Value ;
|
||||
IF gMFM_CO2Temperature>200 THEN
|
||||
gMFM_CO2Temperature := gMFM_CO2Temperature - gZeroAbsolute ;
|
||||
END_IF
|
||||
gMFM_CO2Temperature_State := mTemp.Value_State ;
|
||||
|
||||
mTemp := ConvertReal( gCO2Density_Node22 ) ;
|
||||
gMFM_CO2Density := mTemp.Analog_Value ;
|
||||
gMFM_CO2Density_State := mTemp.Value_State ;
|
||||
|
||||
mTemp := ConvertReal( gCO2Totalizer1_Node22 ) ;
|
||||
gMFM_CO2Totalizer := mTemp.Analog_Value ;
|
||||
gMFM_CO2Totalizer_State := mTemp.Value_State ;
|
||||
|
||||
mCO2InjPressure := CO2InjPressure(i_Temp:=gMFM_CO2Temperature ,i_Dens:=gMFM_CO2Density) ;
|
||||
ELSE (* Simulation *)
|
||||
IF gBlenderProdMode THEN
|
||||
(* Calculates the flow across the water valve *)
|
||||
mH2OValveSlew(i_InValue:=gR_Out_H2O_PID, i_SlewMax:=15,i_Cycle:=gTask0Cycle_Time, out:=gH2OValveSlewOut) ;
|
||||
IF (gCarboWaterLine_Running OR gDeairStartUp_Running) AND gH_EV22_Status THEN
|
||||
gH2OValveSlewOut := 4 ;
|
||||
END_IF
|
||||
mCarboCO2DeltaPSim := DeltaP(i_Flow:=gCarboCO2FlowSim, i_K:= gCarboCO2ValveCv, i_Valve:=gCarboCO2ValveSlewOut) ;
|
||||
mWaterFlowTmp := ValveFlow(i_DeltaP:=gWaterValveDeltaP-0.02*mCarboCO2DeltaPSim ,i_ValveOp:=gH2OValveSlewOut ,i_KFF:=0.055, i_Dens:=gH2O_Density ) + mWaterVFMError + mCO2WaterCoupling ;
|
||||
mH2OFlowFlted(i_Value:=mWaterFlowTmp,i_Num:=10 ,i_Enable:=TRUE) ;
|
||||
|
||||
mWaterFlowDld(i_Value:=mH2OFlowFlted.FilterOut ,i_Sample:=2 ) ;
|
||||
mCO2WaterEffectDRand(nSeed:=0) ;
|
||||
IF (gCarboStillProduct OR gH_Blender_OPT_DoubleDeair) AND gWaterPipe_Vel>0 AND gBlenderStableFlow AND gAlwaysOff THEN
|
||||
mCO2WaterCoupling := mCO2WaterEffectDRand.fRndNum * (1 / EXPT(gWaterPipe_Vel,3)) * mWaterFlowDld.i_out * 0.02 ;
|
||||
ELSE
|
||||
mCO2WaterCoupling := 0.0 ;
|
||||
END_IF
|
||||
mWaterDRand(nSeed:=0) ;
|
||||
mWaterVFMError := mWaterDRand.fRndNum * gWaterVFMCalcError ;
|
||||
gWaterFlowSim := mWaterFlowDld.i_out ;
|
||||
|
||||
mSyrValveSlew(i_InValue:=gR_Out_SYR_PID, i_SlewMax:=20,i_Cycle:=gTask0Cycle_Time, out:=gSyrValveSlewOut) ;
|
||||
mSyrupFlowTmp := ValveFlow(i_DeltaP:=gSyrupValveDeltaP ,i_ValveOp:=gSyrValveSlewOut ,i_KFF:=0.35, i_Dens:=gActualRecipe_SyrDens) + mSyrupMFMError ;
|
||||
mSyrFlowFlted(i_Value:=mSyrupFlowTmp,i_Num:=10 ,i_Enable:=TRUE) ;
|
||||
mSyrupFlowDld(i_Value:=mSyrFlowFlted.FilterOut ,i_Sample:=5) ;
|
||||
mSyrupDRand(nSeed:=0) ;
|
||||
mSyrupMFMError := mSyrupDRand.fRndNum * gSyrupMFMCalcError ;
|
||||
gSyrupFlowSim := mSyrupFlowDld.i_out ;
|
||||
|
||||
mCarboCO2ValveSlew(i_InValue:=gR_Out_CO2_PID, i_SlewMax:=20,i_Cycle:=gTask0Cycle_Time, out:=gCarboCO2ValveSlewOut) ;
|
||||
mCarboCO2FlowTmp := ValveFlow(i_DeltaP:=gCarboCO2ValveDeltaP ,i_ValveOp:=gCarboCO2ValveSlewOut ,i_KFF:=0.34, i_Dens:=gCO2_Density / 1000) + mCO2MFMError ;
|
||||
mCarboCO2FlowFlted(i_Value:=mCarboCO2FlowTmp ,i_Num:=10 ,i_Enable:=TRUE) ;
|
||||
mCarboCO2FlowDld(i_Value:=mCarboCO2FlowFlted.FilterOut ,i_Sample:=3) ;
|
||||
mCO2DRand(nSeed:=0) ;
|
||||
mCO2MFMError := mCO2DRand.fRndNum * gCO2MFMCalcError ;
|
||||
gCarboCO2FlowSim := mCarboCO2FlowDld.i_out ;
|
||||
|
||||
gMFM_WaterFlow := gWaterFlowSim ;
|
||||
gMFM_Syrup1Flow := gSyrupFlowSim ;
|
||||
gMFM_CO2Flow := gCarboCO2FlowSim ;
|
||||
|
||||
mCO2DensSim := 0.028 + 0.0015 * SIN(Omegat) ;
|
||||
mCO2InjPressure := CO2InjPressure(i_Temp:=20 ,i_Dens:=mCO2DensSim) ;
|
||||
|
||||
gMFM_Syrup1Brix := gTestSyrBrix ;
|
||||
gMFM_Syrup1Density := SyrupDensity(i_SyrupBrix:=gTestSyrBrix) ;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
mCO2InjPressFlted(i_Value:=mCO2InjPressure,i_Num:=8 ,i_Enable:=TRUE) ;
|
||||
gCO2InjPressureCalc := LIMIT(10, mCO2InjPressFlted.FilterOut, 20) * 1.0 ;
|
||||
|
||||
mProdFlowFlted(i_Value:=gVFM_ProductFlow,i_Num:=8 ,i_Enable:=TRUE) ;
|
||||
gProd_Flow_Meas := mProdFlowFlted.FilterOut ;
|
||||
|
||||
IF gBlenderProdMode THEN
|
||||
mH2OFlowFlted(i_Value:=gMFM_WaterFlow,i_Num:=6 ,i_Enable:=gBlenderFlowFltEn) ;
|
||||
gH2O_Flow_Meas := mH2OFlowFlted.FilterOut ;
|
||||
mSyrFlowFlted(i_Value:=gMFM_Syrup1Flow,i_Num:=6 ,i_Enable:=gBlenderFlowFltEn) ;
|
||||
gSYR_Flow_Meas := mSyrFlowFlted.FilterOut ;
|
||||
mCarboCO2FlowFlted(i_Value:=gMFM_CO2Flow,i_Num:=6 ,i_Enable:=gBlenderFlowFltEn) ;
|
||||
MFMAnalog_Values.Totalizers ;
|
||||
ELSE
|
||||
mH2OFlowFlted(i_Value:=gMFM_WaterFlow,i_Num:=10 ,i_Enable:=gBlenderFlowFltEn) ;
|
||||
gH2O_Flow_Meas := mH2OFlowFlted.FilterOut ;
|
||||
mSyrFlowFlted(i_Value:=gMFM_Syrup1Flow,i_Num:=0 ,i_Enable:=gBlenderFlowFltEn) ;
|
||||
gSYR_Flow_Meas := mSyrFlowFlted.FilterOut ;
|
||||
mCarboCO2FlowFlted(i_Value:=gMFM_CO2Flow,i_Num:=0 ,i_Enable:=gBlenderFlowFltEn) ;
|
||||
END_IF
|
||||
|
||||
IF gCO2_Density<>0 THEN
|
||||
gCO2_Flow_Meas := mCarboCO2FlowFlted.FilterOut / gCO2_Density ;
|
||||
END_IF
|
||||
|
||||
IF gActualSyrupDens > 0 THEN
|
||||
gSYR_Vol_Flow_Meas := gSYR_Flow_Meas / gActualSyrupDens ;
|
||||
ELSE
|
||||
gSYR_Vol_Flow_Meas := gSYR_Flow_Meas ;
|
||||
END_IF
|
||||
mProdFlowFlt(i_Value:=gH2O_Flow_Meas + gSYR_Vol_Flow_Meas,i_Num:=18, i_Enable:=gBlenderFlowFltEn) ;
|
||||
gActual_Prod_Flow := mProdFlowFlt.FilterOut ;
|
||||
|
||||
MFMAnalog_Values.ResetTotalizers();
|
||||
END_PROGRAM
|
||||
ACTION ResetTotalizers:
|
||||
_LD_BODY
|
||||
_NETWORKS : 1
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gSLIMResetCounter
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 1
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 1
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
MOVE
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 8
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gWaterTotal
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gSyrupTotal
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCO2Total
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProductVFMTotal
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCO2TempTot
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gSyrupTempTot
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gWaterTempTot
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProductVFMTempTot
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_ACTION
|
||||
|
||||
ACTION Totalizers:
|
||||
_LD_BODY
|
||||
_NETWORKS : 4
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mBlendStopDly
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#2s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TOF
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_FUNCTIONBLOCK
|
||||
mAuxONS
|
||||
_BOX_EXPR : 1
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
F_TRIG
|
||||
_OUTPUTS : 0
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
mBlendStopONS
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
mBlendStopONS
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 4
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gMFM_WaterTotalizer
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gWaterTempTot
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADD
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gWaterTempTot
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gMFM_Syrup1Totalizer
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gSyrupTempTot
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADD
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gSyrupTempTot
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gMFM_CO2Totalizer
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
1000
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
DIV
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gCO2TempTot
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADD
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCO2TempTot
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gVFM_ProductTotalizer
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gProductVFMTempTot
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADD
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProductVFMTempTot
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gAlwaysOff
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
mBlendStopONS
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRun_Running
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mAuxTP
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#1s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
tp
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_SET
|
||||
gBlendResetTotalizer
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 4
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gMFM_WaterTotalizer
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gWaterTempTot
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADD
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gWaterTotal
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gMFM_Syrup1Totalizer
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gSyrupTempTot
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADD
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gSyrupTotal
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gMFM_CO2Totalizer
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
1000
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
DIV
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gCO2TempTot
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADD
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCO2Total
|
||||
_ASSIGN
|
||||
_OPERATOR
|
||||
_BOX_EXPR : 2
|
||||
_ENABLED
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gVFM_ProductTotalizer
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
gProductVFMTempTot
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
ADD
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gProductVFMTotal
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 0
|
||||
|
||||
END_ACTION
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
(* @PATH := '\/MFM Value' *)
|
||||
TYPE MFM_Real_Struct :
|
||||
STRUCT
|
||||
Analog_Value : REAL ;
|
||||
Value_State : BYTE ;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
(* @END_DECLARATION := '0' *)
|
|
@ -0,0 +1,27 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection\/FillingHead' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION mmH2O_TO_Freq : REAL
|
||||
VAR_INPUT
|
||||
i_Head : REAL ; (* Request Head in mmH2O *)
|
||||
i_K_Pump : REAL ; (* Freq to Head Pump Factor *)
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
(* Calculates the pump frequency to get an input head
|
||||
|
||||
Freq = Pump Frequency [Hz]
|
||||
K_mBar = Freq to Head Pump Constant
|
||||
|
||||
(* Head [ mBar] = Freq^2 * K_Pump *)
|
||||
|
||||
(******* Pompa INOXPA Modello ______ Motore 4 Poli 960 RPM ********* *)
|
||||
|
||||
IF i_K_Pump<>0 THEN
|
||||
mmH2O_TO_Freq := SQRT ( i_Head / i_K_Pump );
|
||||
END_IF
|
||||
mmH2O_TO_Freq := LIMIT(0, mmH2O_TO_Freq, 100.0) ;
|
||||
END_FUNCTION
|
|
@ -0,0 +1,358 @@
|
|||
|
||||
(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *)
|
||||
(* @SYMFILEFLAGS := '59392' *)
|
||||
PROGRAM ModValveFault
|
||||
VAR
|
||||
mFaultOpenVM1Tmr : TON ;
|
||||
mFaultOpenVM2Tmr : TON ;
|
||||
mFaultOpenVM3Tmr : TON ;
|
||||
mFaultCloseVM1Tmr : TON ;
|
||||
mFaultCloseVM2Tmr : TON ;
|
||||
mFaultCloseVM3Tmr : TON ;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
EN_Out : BOOL ;
|
||||
END_VAR
|
||||
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
_LD_BODY
|
||||
_NETWORKS : 3
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 3
|
||||
_LD_CONTACT
|
||||
gInWaterValveClosed
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_FUNCTIONBLOCK
|
||||
mFaultOpenVM1Tmr
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#5s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TON
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 9
|
||||
_LD_CONTACT
|
||||
gInWaterValveClosed
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_CMD_BlenderMaintenance
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_Simulation
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gProdTankRunOut_Latch
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gProdPipeRunOut_Latch
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mFaultCloseVM1Tmr
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#5s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TON
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gWaterValvePos_Fault
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 4
|
||||
_LD_CONTACT
|
||||
gInSyrupValveClosed
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gWaterRecipe
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mFaultOpenVM2Tmr
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#5s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TON
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 10
|
||||
_LD_CONTACT
|
||||
gInSyrupValveClosed
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gWaterRecipe
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_CMD_BlenderMaintenance
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_Simulation
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gProdTankRunOut_Latch
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gProdPipeRunOut_Latch
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mFaultCloseVM2Tmr
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#5s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TON
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gSyrupValvePos_Fault
|
||||
_NETWORK
|
||||
|
||||
_COMMENT
|
||||
|
||||
_END_COMMENT
|
||||
_LD_ASSIGN
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 5
|
||||
_LD_CONTACT
|
||||
gInCarboCO2ValveClosed
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gCarboStillProduct
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_DoubleDeair
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gWorkshopTest
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mFaultOpenVM3Tmr
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#5s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TON
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_AND
|
||||
_LD_OPERATOR : 9
|
||||
_LD_CONTACT
|
||||
gInCarboCO2ValveClosed
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderBlending
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_OR
|
||||
_LD_OPERATOR : 2
|
||||
_LD_CONTACT
|
||||
gCarboStillProduct
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_DoubleDeair
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_LD_CONTACT
|
||||
gBlenderRinseMode
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gBlenderCIPMode
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_CMD_BlenderMaintenance
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gCarboWaterLine_Latch
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_LD_CONTACT
|
||||
gH_Blender_OPT_Simulation
|
||||
_EXPRESSION
|
||||
_NEGATIV
|
||||
_FUNCTIONBLOCK
|
||||
mFaultCloseVM3Tmr
|
||||
_BOX_EXPR : 2
|
||||
_EMPTY
|
||||
_OPERAND
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
t#5s
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
TON
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
_EMPTY
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
_EXPRESSION
|
||||
_POSITIV
|
||||
|
||||
|
||||
ENABLELIST : 0
|
||||
ENABLELIST_END
|
||||
_OUTPUTS : 1
|
||||
_OUTPUT
|
||||
_POSITIV
|
||||
_NO_SET
|
||||
gCarboCO2ValvePos_Fault
|
||||
|
||||
END_PROGRAM
|
|
@ -0,0 +1,27 @@
|
|||
|
||||
(* @PATH := '\/Functions_Collection' *)
|
||||
(* @SYMFILEFLAGS := '0' *)
|
||||
FUNCTION MoveArray : BOOL
|
||||
VAR_INPUT
|
||||
i_InArrayPtr : DWORD ;
|
||||
i_OutArrayPtr : DWORD ;
|
||||
i_UpBound : INT ;
|
||||
END_VAR
|
||||
VAR
|
||||
i : INT ;
|
||||
mInArrayPointer : POINTER TO BOOL ;
|
||||
mOutArrayPointer : POINTER TO BOOL ;
|
||||
END_VAR
|
||||
|
||||
(* @END_DECLARATION := '0' *)
|
||||
IF i_UpBound>0 AND i_UpBound<=191 THEN
|
||||
FOR i:=0 TO i_UpBound DO
|
||||
mInArrayPointer := i_InArrayPtr + i ;
|
||||
mOutArrayPointer := i_OutArrayPtr + i ;
|
||||
mOutArrayPointer^ := mInArrayPointer^ ;
|
||||
END_FOR;
|
||||
MoveArray := TRUE ;
|
||||
ELSE
|
||||
MoveArray := FALSE ;
|
||||
END_IF
|
||||
END_FUNCTION
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue