доработка мониторинга температур контроля
This commit is contained in:
@@ -31,7 +31,9 @@ var pribor_config: Dictionary
|
||||
var fs_parameters: Dictionary
|
||||
var block_ip_config: Dictionary
|
||||
var block_kasseta_y5_config: Dictionary
|
||||
var temperature_um: Dictionary
|
||||
var control_results: Dictionary
|
||||
var power_result: Dictionary
|
||||
var self_name: String
|
||||
var state: int = 0
|
||||
var current_litera: int
|
||||
@@ -39,8 +41,8 @@ var flag_write_isa: bool = false
|
||||
var flag_fs_status_ok: bool = false
|
||||
var flag_si_fs_input: bool = false
|
||||
var flag_si_fs_output: bool = false
|
||||
var flag_in_control: bool = false
|
||||
var unit_prd: Object
|
||||
var power_result: Dictionary
|
||||
var control_timer: Timer = Timer.new()
|
||||
var ems_6666_timer: Timer = Timer.new()
|
||||
var machine_timer: Timer = Timer.new()
|
||||
@@ -134,11 +136,12 @@ func _process(_delta: float) -> void:
|
||||
|
||||
## Пакеты от ЯУ-07
|
||||
func on_data_received(unit_pribor: Object) -> void:
|
||||
if not flag_in_control: return
|
||||
var status: PackedByteArray = unit_pribor.status
|
||||
socket_status_ems_g(status)
|
||||
block_kasseta_y5_config = check_block_kasseta_y5(status, block_kasseta_y5_config)
|
||||
block_ip_config = check_block_ip(status, block_ip_config)
|
||||
|
||||
temperature_um = check_temperature_um(status)
|
||||
if machine_timer.is_stopped():
|
||||
return
|
||||
|
||||
@@ -479,14 +482,14 @@ func setup_timer() -> void:
|
||||
|
||||
|
||||
func on_mode_changed(in_tree: bool) -> void:
|
||||
flag_in_control = in_tree
|
||||
if not in_tree: ## TODO: Дополнительная проверка если контроль идет, если нет, то смысла вызывать нет
|
||||
progress_value = 0
|
||||
machine_timer.stop()
|
||||
state = state_machine_enum.INIT
|
||||
_handle_fs_turn_off_state()
|
||||
#prd_v_module.cmd_array.append([unit_prd_v.CmdCode.WRITE_ISA, [constants_v.ADDR_UG_LITERA_1, ug_work_1, constants_v.ADDR_UG_LITERA_2, ug_work_2]])
|
||||
else:
|
||||
pass
|
||||
|
||||
|
||||
|
||||
func _process_dkm_status(status: PackedByteArray) -> void:
|
||||
@@ -611,13 +614,36 @@ static func check_block_kasseta_y5(status_prd: PackedByteArray, y5_config: Dicti
|
||||
|
||||
|
||||
## Мониторинг температуры
|
||||
static func check_temperature(status_prd: PackedByteArray, y5_config: Dictionary) -> Dictionary:
|
||||
y5_config.yau07 = true
|
||||
y5_config.ems = (status_prd[0] & 1) and ((status_prd[0] >> 4) & 1)
|
||||
y5_config.ug = (status_prd[0] >> 1) & 1
|
||||
y5_config.ukp1 = (status_prd[0] >> 2) & 1
|
||||
y5_config.ukp2 = (status_prd[0] >> 3) & 1
|
||||
return y5_config
|
||||
static func check_temperature_um(status_prd: PackedByteArray) -> Dictionary:
|
||||
const Constants: Dictionary = {
|
||||
'CONST_MIN_TEMP': -25,
|
||||
'MAXIMUM_CODE_ADC': 3796,
|
||||
'MINIMUM_CODE_AD': 2660,
|
||||
'TEMPERATURE_UKP_1': 47,
|
||||
'TEMPERATURE_UKP_2': 79,
|
||||
}
|
||||
const arr_um: Array = ['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6', 'um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12', 'um_13', 'um_14', 'um_15', 'um_16']
|
||||
const TEMP: float = 115.0 / (Constants.MAXIMUM_CODE_ADC - Constants.MINIMUM_CODE_AD)
|
||||
var return_dic_temp: Dictionary
|
||||
var ukp1_online: int = (status_prd[0] >> 2) & 1
|
||||
var ukp2_online = (status_prd[0] >> 3) & 1
|
||||
|
||||
if ukp1_online:
|
||||
var tmp_1: int
|
||||
var temperature_ukp_1: int
|
||||
for i_temp in 8:
|
||||
temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * i_temp)
|
||||
tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3)
|
||||
return_dic_temp[arr_um[i_temp]] = tmp_1
|
||||
|
||||
|
||||
if ukp2_online:
|
||||
for i_temp in 8:
|
||||
var temperature_ukp_2: int = status_prd.decode_u16(Constants.TEMPERATURE_UKP_2 + 2 * i_temp)
|
||||
var tmp_2: int = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * TEMP + 3)
|
||||
return_dic_temp[arr_um[i_temp+8]] = tmp_2
|
||||
|
||||
return return_dic_temp
|
||||
|
||||
|
||||
## Проверка ДКМ
|
||||
|
||||
Reference in New Issue
Block a user