Добавление обработки мощности от ум и заполнение сцены

This commit is contained in:
Maxim
2025-08-25 11:52:28 +03:00
parent 488f7cb8b3
commit a2c7f5185f
8 changed files with 282 additions and 205 deletions

View File

@@ -13,7 +13,7 @@ const constants_k: Dictionary = {
'ADDR_UG_LITERA_3': 0x10A,
'TEMP_THRESHOLD': 40,
'POWER_THRESHOLD': 40,
'TIMER_DELAY': 5.0,
'TIMER_DELAY': 0.50,
'RAY_DOU_NUM': 0x3,
'ATT_UM_1': 0x0,
'ATT_UM_6': 0x7,
@@ -97,11 +97,6 @@ func _ready() -> void:
func on_state_mashine() -> void:
control_prd_k.state_control_machine()
$um1535_A10.value0 = [10, 20, 30, 40, 50, 60]
$um1535_A11.value0 = [60, 50, 40, 30, 20, 10]
$um1535_A12.set_value0_by_index(5, 100)
$um1535_A13.set_value0_by_index(2, 0)
$um1535_A13.value1 = -20
func initialize_connections() -> void:
@@ -174,7 +169,25 @@ func on_mode_changed(in_tree: bool) -> void:
mashine_timer.start()
func on_control_result(result_dic: Dictionary) -> void:
func power_fill(pow_dic: Dictionary) -> void:
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
for i_powapm in power_amplifier:
var powamp_meta: String = i_powapm.get_meta('um')
var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE
if pow_dic:
if not pow_dic.has(powamp_meta):
break
if pow_dic[powamp_meta].size() < 6:
status = STATE_VAL.ERROR
else:
i_powapm.value0 = pow_dic[powamp_meta]
for i_p in pow_dic[powamp_meta]:
if i_p < constants_k.POWER_THRESHOLD:
status = STATE_VAL.ERROR
i_powapm.state = status
func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
mashine_timer.stop()
block_kasseta_y5_prd_config_k = control_prd_k.block_kasseta_y5_config
var nodes_y5: Array = get_tree().get_nodes_in_group('y-5')
@@ -183,7 +196,7 @@ func on_control_result(result_dic: Dictionary) -> void:
if block_kasseta_y5_prd_config_k.has(meta_y5):
if block_kasseta_y5_prd_config_k['yau07'] == false:
node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE
return
break
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_k[meta_y5] else STATE_VAL.ERROR
block_ip_config_k = control_prd_k.block_ip_config
@@ -212,6 +225,8 @@ func on_control_result(result_dic: Dictionary) -> void:
$kasseta_fs_kd/ref_A7.state = STATE_VAL.GOOD if dkm.dkm_7 else STATE_VAL.ERROR
$dou7_A8.state = STATE_VAL.GOOD if result_dic.dou_7 else STATE_VAL.ERROR
power_fill(power_dic)
var result = true
for device in result_dic.values():
if not device:
@@ -220,7 +235,7 @@ func on_control_result(result_dic: Dictionary) -> void:
var name_prd = control_prd_k.self_name
if result:
$control_result.text = 'Прибор ПРД-%s исправен' % name_prd
$control_result.add_theme_color_override('font_color', Color.AQUAMARINE)
$control_result.add_theme_color_override('font_color', Color.GREEN)
else:
$control_result.text = 'Прибор ПРД-%s неисправен' % name_prd
$control_result.add_theme_color_override('font_color', Color.CRIMSON)
$control_result.add_theme_color_override('font_color', Color.RED)

View File

@@ -1,11 +1,10 @@
[gd_scene load_steps=16 format=3 uid="uid://m5s87q7m66lj"]
[gd_scene load_steps=15 format=3 uid="uid://m5s87q7m66lj"]
[ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="1_8dmgr"]
[ext_resource type="Script" uid="uid://cwvikiygf8b1m" path="res://scenes/pribor-prd-k/pribor-prd-k.gd" id="1_tpdyp"]
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="2_14h25"]
[ext_resource type="PackedScene" uid="uid://cm5jd4gjrrpba" path="res://scenes/контроль/кассета-у-5-к.tscn" id="2_tb85r"]
[ext_resource type="PackedScene" uid="uid://bcyxqni7gxvtq" path="res://scenes/контроль/блок-в.tscn" id="5_c7lv8"]
[ext_resource type="PackedScene" uid="uid://bkxblfoj7ejv0" path="res://scenes/контроль/блок-а.tscn" id="6_fmhtx"]
[ext_resource type="PackedScene" uid="uid://bmagw8nd0ulhj" path="res://scenes/pribor-prd-k/kasseta-fs-kd.tscn" id="7_ia27q"]
[ext_resource type="Script" uid="uid://crpedygm3gohi" path="res://scenes/контроль/кассета.gd" id="7_xpa2n"]
[ext_resource type="PackedScene" uid="uid://dq31j24gv5vi4" path="res://scenes/контроль/кассета-п-2.tscn" id="8_6fdp7"]
@@ -120,10 +119,12 @@ offset_left = 485.0
offset_top = 242.0
offset_right = 652.0
offset_bottom = 337.0
value0 = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
fname = "УМ1535Б"
rname = "A10"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_1"
[node name="um1535_A11" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
@@ -135,6 +136,7 @@ fname = "УМ1535Б"
rname = "A11"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_2"
[node name="um1535_A12" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
@@ -146,6 +148,7 @@ fname = "УМ1535Б"
rname = "A12"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_3"
[node name="um1535_A13" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
@@ -157,6 +160,7 @@ fname = "УМ1535Б"
rname = "A13"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_4"
[node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
@@ -168,6 +172,7 @@ fname = "УМ1535Б"
rname = "A14"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_5"
[node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
@@ -179,17 +184,19 @@ fname = "УМ1535Б"
rname = "A15"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_6"
[node name="utm80_A9" parent="." groups=["power_amplifier"] instance=ExtResource("6_fmhtx")]
[node name="utm80_A9" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
offset_left = 485.0
offset_top = 812.0
offset_right = 652.0
offset_bottom = 907.0
value_name0 = "°C"
value_name1 = "P, %"
fname = "УТМ80"
rname = "A9"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_7"
[node name="rm1620m_A16" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
@@ -201,6 +208,7 @@ fname = "РМ16-20М"
rname = "A16"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_8"
[node name="rm1620m_A17" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
@@ -212,6 +220,7 @@ fname = "РМ16-20М"
rname = "A17"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_9"
[node name="rm1620m_A18" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
@@ -223,6 +232,7 @@ fname = "РМ16-20М"
rname = "A18"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_10"
[node name="rm1620m_A19" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
@@ -234,6 +244,7 @@ fname = "РМ16-20М"
rname = "A19"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_11"
[node name="rm1620m_A20" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
@@ -245,6 +256,7 @@ fname = "РМ16-20М"
rname = "A20"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_12"
[node name="rm1620m_A21" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")]
layout_mode = 0
@@ -256,6 +268,7 @@ fname = "РМ16-20М"
rname = "A21"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_13"
[node name="kasseta_fs_kd" parent="." instance=ExtResource("7_ia27q")]
layout_mode = 0

View File

@@ -12,7 +12,7 @@ const constants_n = {
'ADDR_UG_LITERA_3': 0x10A,
'TEMP_THRESHOLD': 70,
'POWER_THRESHOLD': 40,
'TIMER_DELAY': 5.0,
'TIMER_DELAY': 0.10,
'RAY_DOU_NUM': 0x3,
'ATT_UM_2': 0x7,
'ATT_UM_3': 0x7,
@@ -163,7 +163,22 @@ func on_mode_changed(in_tree: bool) -> void:
mashine_timer.start()
func on_control_result(result_dic: Dictionary) -> void:
func power_fill(pow_dic: Dictionary) -> void:
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
for i_powapm in power_amplifier:
var powamp_meta: String = i_powapm.get_meta('um')
var status = STATE_VAL.GOOD
if pow_dic[powamp_meta].size() < 6:
status = STATE_VAL.ERROR
else:
i_powapm.value0 = pow_dic[powamp_meta]
for i_p in pow_dic[powamp_meta]:
if i_p < constants_n.POWER_THRESHOLD:
status = STATE_VAL.ERROR
i_powapm.state = status
func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
mashine_timer.stop()
block_kasseta_y5_prd_config_n = control_prd_n.block_kasseta_y5_config
var nodes_y5: Array = get_tree().get_nodes_in_group('y-5')
@@ -172,7 +187,7 @@ func on_control_result(result_dic: Dictionary) -> void:
if block_kasseta_y5_prd_config_n.has(meta_y5):
if block_kasseta_y5_prd_config_n['yau07'] == false:
node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE
return
break
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_n[meta_y5] else STATE_VAL.ERROR
block_ip_config_n = control_prd_n.block_ip_config
@@ -199,6 +214,8 @@ func on_control_result(result_dic: Dictionary) -> void:
$kasseta_FS_ND/ref_A3.state = STATE_VAL.GOOD if dkm.dkm_3 else STATE_VAL.ERROR
$dou3_A6.state = STATE_VAL.GOOD if result_dic.dou_3 else STATE_VAL.ERROR
power_fill(power_dic)
var result = true
for device in result_dic.values():
if not device:
@@ -207,7 +224,7 @@ func on_control_result(result_dic: Dictionary) -> void:
var name_prd = control_prd_n.self_name
if result:
$control_result.text = 'Прибор ПРД-%s исправен' % name_prd
$control_result.add_theme_color_override('font_color', Color.AQUAMARINE)
$control_result.add_theme_color_override('font_color', Color.GREEN)
else:
$control_result.text = 'Прибор ПРД-%s неисправен' % name_prd
$control_result.add_theme_color_override('font_color', Color.CRIMSON)
$control_result.add_theme_color_override('font_color', Color.RED)

View File

@@ -5,8 +5,8 @@
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="3_meukj"]
[ext_resource type="PackedScene" uid="uid://bk1655p4e8y4u" path="res://scenes/контроль/кассета-у-5-нв.tscn" id="4_xkifg"]
[ext_resource type="Script" uid="uid://crpedygm3gohi" path="res://scenes/контроль/кассета.gd" id="6_b5wvk"]
[ext_resource type="PackedScene" uid="uid://bcyxqni7gxvtq" path="res://scenes/контроль/блок-в.tscn" id="7_bnnv3"]
[ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="7_eoqf2"]
[ext_resource type="PackedScene" uid="uid://bkxblfoj7ejv0" path="res://scenes/контроль/блок-а.tscn" id="8_sia5h"]
[ext_resource type="Texture2D" uid="uid://belwchvdktrw0" path="res://data/эмс-бланк.png" id="9_k1x0o"]
[ext_resource type="Texture2D" uid="uid://bwddxs24es81u" path="res://data/эмс-бланк-пост.png" id="10_7dcjd"]
[ext_resource type="Texture2D" uid="uid://pfoscstbm025" path="res://data/эмс-бланк-перем.png" id="11_ius1v"]
@@ -223,161 +223,149 @@ text = "Кассета П-1"
horizontal_alignment = 1
vertical_alignment = 1
[node name="um1535_A7" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A7" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 485.0
offset_top = 242.0
offset_right = 652.0
offset_bottom = 337.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
fname = "УМ1535Б"
rname = "A7"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_1"
[node name="um1535_A8" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A8" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 485.0
offset_top = 337.0
offset_right = 652.0
offset_bottom = 432.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A8"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_2"
[node name="um1535_A9" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A9" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 485.0
offset_top = 432.0
offset_right = 652.0
offset_bottom = 527.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A9"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_3"
[node name="um1535_A10" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A10" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 485.0
offset_top = 527.0
offset_right = 652.0
offset_bottom = 622.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A10"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_4"
[node name="um1535_A11" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A11" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 485.0
offset_top = 622.0
offset_right = 652.0
offset_bottom = 717.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A11"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_5"
[node name="um1535_A12" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A12" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 485.0
offset_top = 717.0
offset_right = 652.0
offset_bottom = 812.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A12"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_6"
[node name="um1535_A13" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A13" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 8.0
offset_top = 242.0
offset_right = 175.0
offset_bottom = 337.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A13"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_7"
[node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 8.0
offset_top = 337.0
offset_right = 175.0
offset_bottom = 432.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A14"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_8"
[node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 8.0
offset_top = 432.0
offset_right = 175.0
offset_bottom = 527.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A15"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_9"
[node name="um1535_A16" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A16" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 8.0
offset_top = 527.0
offset_right = 175.0
offset_bottom = 622.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A16"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_10"
[node name="um1535_A17" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A17" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 8.0
offset_top = 622.0
offset_right = 175.0
offset_bottom = 717.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A17"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_11"
[node name="um1535_A18" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")]
[node name="um1535_A18" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 8.0
offset_top = 717.0
offset_right = 175.0
offset_bottom = 812.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A18"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_12"
[node name="Monitoring_panel" type="Panel" parent="."]
visible = false

View File

@@ -161,7 +161,22 @@ func on_mode_changed(in_tree: bool) -> void:
mashine_timer.start()
func on_control_result(result_dic: Dictionary) -> void:
func power_fill(pow_dic: Dictionary) -> void:
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
for i_powapm in power_amplifier:
var powamp_meta: String = i_powapm.get_meta('um')
var status = STATE_VAL.GOOD
if pow_dic[powamp_meta].size() < 6:
status = STATE_VAL.ERROR
else:
i_powapm.value0 = pow_dic[powamp_meta]
for i_p in pow_dic[powamp_meta]:
if i_p < constants_v.POWER_THRESHOLD:
status = STATE_VAL.ERROR
i_powapm.state = status
func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
mashine_timer.stop()
block_kasseta_y5_prd_config_v = control_prd_v.block_kasseta_y5_config
var nodes_y5: Array = get_tree().get_nodes_in_group('y-5')
@@ -170,7 +185,7 @@ func on_control_result(result_dic: Dictionary) -> void:
if block_kasseta_y5_prd_config_v.has(meta_y5):
if block_kasseta_y5_prd_config_v['yau07'] == false:
node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE
return
break
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_v[meta_y5] else STATE_VAL.ERROR
block_ip_config_v = control_prd_v.block_ip_config
@@ -197,6 +212,8 @@ func on_control_result(result_dic: Dictionary) -> void:
$kasseta_FS_VD/ref_A6.state = STATE_VAL.GOOD if dkm.dkm_5 else STATE_VAL.ERROR
$dou5_A6.state = STATE_VAL.GOOD if result_dic.dou_5 else STATE_VAL.ERROR
power_fill(power_dic)
var result = true
for device in result_dic.values():
if not device:
@@ -205,7 +222,7 @@ func on_control_result(result_dic: Dictionary) -> void:
var name_prd = control_prd_v.self_name
if result:
$control_result.text = 'Прибор ПРД-%s исправен' % name_prd
$control_result.add_theme_color_override('font_color', Color.AQUAMARINE)
$control_result.add_theme_color_override('font_color', Color.GREEN)
else:
$control_result.text = 'Прибор ПРД-%s неисправен' % name_prd
$control_result.add_theme_color_override('font_color', Color.CRIMSON)
$control_result.add_theme_color_override('font_color', Color.RED)

View File

@@ -7,7 +7,7 @@
[ext_resource type="PackedScene" uid="uid://cd5sue1e8iyrv" path="res://scenes/pribor-prd-n/kasseta-fs-nd.tscn" id="5_nhd2k"]
[ext_resource type="Script" uid="uid://crpedygm3gohi" path="res://scenes/контроль/кассета.gd" id="6_os4mt"]
[ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="7_38u2b"]
[ext_resource type="PackedScene" uid="uid://bkxblfoj7ejv0" path="res://scenes/контроль/блок-а.tscn" id="7_e22c6"]
[ext_resource type="PackedScene" uid="uid://bcyxqni7gxvtq" path="res://scenes/контроль/блок-в.tscn" id="8_4e87c"]
[ext_resource type="Texture2D" uid="uid://belwchvdktrw0" path="res://data/эмс-бланк.png" id="10_4e87c"]
[ext_resource type="Texture2D" uid="uid://bwddxs24es81u" path="res://data/эмс-бланк-пост.png" id="11_g8fvp"]
[ext_resource type="Texture2D" uid="uid://pfoscstbm025" path="res://data/эмс-бланк-перем.png" id="12_gsby4"]
@@ -172,163 +172,149 @@ text = "Кассета П-1В"
horizontal_alignment = 1
vertical_alignment = 1
[node name="um1535_A7" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A7" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 485.0
offset_top = 242.0
offset_right = 652.0
offset_bottom = 337.0
step0 = 1.0
step1 = 1.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
fname = "УМ1535Б"
rname = "A7"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_1"
[node name="um1535_A8" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A8" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 485.0
offset_top = 337.0
offset_right = 652.0
offset_bottom = 432.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A8"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_2"
[node name="um1535_A9" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A9" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 485.0
offset_top = 432.0
offset_right = 652.0
offset_bottom = 527.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A9"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_3"
[node name="um1535_A10" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A10" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 485.0
offset_top = 527.0
offset_right = 652.0
offset_bottom = 622.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A10"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_4"
[node name="um1535_A11" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A11" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 485.0
offset_top = 622.0
offset_right = 652.0
offset_bottom = 717.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A11"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_5"
[node name="um1535_A12" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A12" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 485.0
offset_top = 717.0
offset_right = 652.0
offset_bottom = 812.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A12"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_6"
[node name="um1535_A13" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A13" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 8.0
offset_top = 242.0
offset_right = 175.0
offset_bottom = 337.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A13"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_7"
[node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 8.0
offset_top = 337.0
offset_right = 175.0
offset_bottom = 432.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A14"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_8"
[node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 8.0
offset_top = 432.0
offset_right = 175.0
offset_bottom = 527.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A15"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_9"
[node name="um1535_A16" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A16" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 8.0
offset_top = 527.0
offset_right = 175.0
offset_bottom = 622.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A16"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_10"
[node name="um1535_A17" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A17" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 8.0
offset_top = 622.0
offset_right = 175.0
offset_bottom = 717.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A17"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_11"
[node name="um1535_A18" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")]
[node name="um1535_A18" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")]
layout_mode = 0
offset_left = 8.0
offset_top = 717.0
offset_right = 175.0
offset_bottom = 812.0
value_name0 = "°C"
value_name1 = "P, %"
name_min_size0 = Vector2i(35, 20)
name_min_size1 = Vector2i(35, 20)
fname = "УМ1535А"
rname = "A18"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_12"
[node name="Monitoring_panel" type="Panel" parent="."]
visible = false

View File

@@ -175,7 +175,6 @@ func _enter_tree_defered():
var items: Array = get_level_nodes()
var count: int = min(items.size(), value0.size())
for i in count:
items[i].value = value0[i]
items[i].min_value = min_value0
items[i].max_value = max_value0
items[i].step = step0
@@ -349,10 +348,9 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
tooltip_text = "
Текущее: 20.00
Текущее: 0.00
Диапазон: 0.00…100.00"
mouse_filter = 0
value = 20.0
fill_mode = 3
nine_patch_stretch = true
stretch_margin_left = 8
@@ -369,10 +367,9 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
tooltip_text = "
Текущее: 30.00
Текущее: 0.00
Диапазон: 0.00…100.00"
mouse_filter = 0
value = 30.0
fill_mode = 3
nine_patch_stretch = true
stretch_margin_left = 8
@@ -389,10 +386,9 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
tooltip_text = "
Текущее: 40.00
Текущее: 0.00
Диапазон: 0.00…100.00"
mouse_filter = 0
value = 40.0
fill_mode = 3
nine_patch_stretch = true
stretch_margin_left = 8
@@ -409,10 +405,9 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
tooltip_text = "
Текущее: 50.00
Текущее: 0.00
Диапазон: 0.00…100.00"
mouse_filter = 0
value = 50.0
fill_mode = 3
nine_patch_stretch = true
stretch_margin_left = 8
@@ -429,10 +424,9 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
tooltip_text = "
Текущее: 60.00
Текущее: 0.00
Диапазон: 0.00…100.00"
mouse_filter = 0
value = 60.0
fill_mode = 3
nine_patch_stretch = true
stretch_margin_left = 8
@@ -449,10 +443,9 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
tooltip_text = "
Текущее: 70.00
Текущее: 0.00
Диапазон: 0.00…100.00"
mouse_filter = 0
value = 70.0
fill_mode = 3
nine_patch_stretch = true
stretch_margin_left = 8

View File

@@ -70,7 +70,7 @@ class TestPRD extends Node:
var control_label: Label
var control_timer: Timer = Timer.new()
var ems_6666_timer: Timer = Timer.new()
signal control_is_over(control_results)
signal control_is_over(control_results, power_result)
## Инициализация аргуметнов
@@ -107,7 +107,7 @@ class TestPRD extends Node:
var status: PackedByteArray = unit_pribor.status
block_kasseta_y5_config = check_block_kasseta_y5(status, block_kasseta_y5_config)
block_ip_config = check_block_ip(status, block_ip_config)
check_temperature_um(status, power_amplify)
#check_temperature_um(status, power_amplify)
_process_dkm_status(status)
if current_litera != 0:
var tek_litera: Dictionary = power_result[current_litera]
@@ -208,11 +208,13 @@ class TestPRD extends Node:
func _handle_init_state() -> void:
control_label.text = 'Выполняется инициализация ФС-%s' % current_litera
if current_litera in [1, 2, 3, 4, 5, 6, 7]:
state = STATE_MASHINE.FS_TURN_ON
#state = STATE_MASHINE.STOP_CONTROL
#state = STATE_MASHINE.FS_TURN_ON
state = STATE_MASHINE.STOP_CONTROL
else:
control_results = on_control_result(block_ip_config, block_dkm_config, block_fs_config, control_results)
emit_signal('control_is_over', control_results)
var send_power_pack = prep_power(power_result, self_name)
emit_signal('control_is_over', control_results, send_power_pack)
state = STATE_MASHINE.AWAIT
@@ -443,39 +445,39 @@ class TestPRD extends Node:
## Проверка температур УМ от УКП
static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> void:
const Constants: Dictionary = {
'CONST_MIN_TEMP': -25,
'MAXIMUM_CODE_ADC': 3796,
'MINIMUM_CODE_AD': 2660,
'TEMPERATURE_UKP_1': 47,
'TEMPERATURE_UKP_2': 79,
}
const TEMP: float = 115.0 / (Constants.MAXIMUM_CODE_ADC - Constants.MINIMUM_CODE_AD)
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 6:
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)
power_amplifier[i_temp].value0 = tmp_1
if power_amplifier.size() > 12: # Темпуратура от УМ литеры 1
temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * 7)
tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3)
power_amplifier[6].value0 = tmp_1
if ukp2_online:
for i_temp in 6:
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)
if power_amplifier.size() > 12:
power_amplifier[i_temp+7].value0 = tmp_2
else:
power_amplifier[i_temp+6].value0 = tmp_2
#static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> void:
#const Constants: Dictionary = {
#'CONST_MIN_TEMP': -25,
#'MAXIMUM_CODE_ADC': 3796,
#'MINIMUM_CODE_AD': 2660,
#'TEMPERATURE_UKP_1': 47,
#'TEMPERATURE_UKP_2': 79,
#}
#const TEMP: float = 115.0 / (Constants.MAXIMUM_CODE_ADC - Constants.MINIMUM_CODE_AD)
#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 6:
#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)
#power_amplifier[i_temp].value1 = tmp_1
#
#if power_amplifier.size() > 12: # Темпуратура от УМ литеры 1
#temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * 7)
#tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3)
#power_amplifier[6].value1 = tmp_1
#
#if ukp2_online:
#for i_temp in 6:
#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)
#if power_amplifier.size() > 12:
#power_amplifier[i_temp+7].value1 = tmp_2
#else:
#power_amplifier[i_temp+6].value1 = tmp_2
## Проверка ДКМ
@@ -645,13 +647,59 @@ class TestPRD extends Node:
print_debug('dou_%s: false' % litera)
all_dou_ok = false
print([litera, ray_dic])
control_dic[dou] = all_dou_ok
return control_dic
static func get_minimum_pow(pow_dic: Dictionary, cur_litera: int)-> Dictionary:
var minimum_value_dic: Dictionary
static func prep_power(power_dic: Dictionary, prd_name: String)-> Dictionary:
const RAY_KEYS := ["RAY_m5", "RAY_5", "RAY_15", "RAY_25", "RAY_35", "RAY_45"]
var prep_pow_dic: Dictionary = {}
return minimum_value_dic
var arr_litera: Array[int]
match prd_name:
'', '', '', '':
arr_litera = [2, 3]
'', '', '', '':
arr_litera = [4, 5]
'', '', '', '':
arr_litera = [6, 7, 1]
if not arr_litera:
print_debug('Ошибка в prd_name')
return prep_pow_dic
var um_names: Array[Array] = []
if arr_litera.size() != 3:
um_names = [
['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'],
['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12']
]
else:
um_names = [
['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'],
['um_8', 'um_9', 'um_10', 'um_11', 'um_12', 'um_13'],
['um_7'] # Особый случай для третьего элемента
]
for litera_index in arr_litera.size():
var litera: int = arr_litera[litera_index]
var litera_data: Dictionary = power_dic.get(litera, {})
var um_data: Array[Array] = [[], [], [], [], [], []]
for i in range(RAY_KEYS.size()):
var ray_key: String = RAY_KEYS[i]
var ray_array: Array = litera_data.get(ray_key, [])
if ray_array.size() == 1:
var single_value = ray_array[0]
for j in range(6):
um_data[j].append(single_value)
else:
for j in range(6):
um_data[j].append(ray_array[j] if j < ray_array.size() else 0)
var current_um_names: Array = um_names[litera_index]
for um_index in range(current_um_names.size()):
prep_pow_dic[current_um_names[um_index]] = um_data[um_index]
return prep_pow_dic