Отладка контроля, загрузки ЭМС-Г, состояния ЯУ-07

This commit is contained in:
Maxim
2025-05-27 09:57:39 +03:00
parent eba949f5d4
commit eb36856831
10 changed files with 267 additions and 147 deletions

View File

@@ -700,12 +700,65 @@ offset_bottom = -16.0
script = ExtResource("2_vmbyo") script = ExtResource("2_vmbyo")
node_gap = Vector2(100, 50) node_gap = Vector2(100, 50)
[node name="status_yau" type="Label" parent="TabContainer/PRD"]
layout_mode = 0
offset_left = 56.0
offset_top = 19.0
offset_right = 144.0
offset_bottom = 42.0
text = "ЯУ-07Б"
metadata/_edit_lock_ = true
[node name="status_yau_list" type="GridContainer" parent="TabContainer/PRD"]
layout_mode = 0
offset_left = 56.0
offset_top = 18.0
offset_right = 216.0
offset_bottom = 482.0
metadata/_edit_lock_ = true
[node name="prd-n1" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="prd-n2" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="prd-n3" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="prd-v1" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="prd-v2" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="prd-v3" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="prd-v4" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="prd-n4" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="prd-k1" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="prd-k2" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="prd-k3" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="prd-k4" type="Label" parent="TabContainer/PRD/status_yau_list"]
layout_mode = 2
[node name="Connect_prd" type="Button" parent="TabContainer/PRD"] [node name="Connect_prd" type="Button" parent="TabContainer/PRD"]
layout_mode = 0 layout_mode = 0
offset_left = 47.0 offset_left = 48.0
offset_top = 30.0 offset_top = 354.0
offset_right = 248.0 offset_right = 249.0
offset_bottom = 58.0 offset_bottom = 382.0
focus_mode = 0 focus_mode = 0
mouse_default_cursor_shape = 16 mouse_default_cursor_shape = 16
theme_override_colors/font_color = Color(1, 1, 0.941176, 1) theme_override_colors/font_color = Color(1, 1, 0.941176, 1)
@@ -715,14 +768,6 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_eleyh")
text = "Подключение" text = "Подключение"
metadata/_edit_lock_ = true metadata/_edit_lock_ = true
[node name="status_yau" type="Label" parent="TabContainer/PRD"]
layout_mode = 0
offset_left = 56.0
offset_top = 91.0
offset_right = 111.0
offset_bottom = 114.0
text = "ЯУ-07Б"
[node name="ControlPanel" type="Panel" parent="TabContainer"] [node name="ControlPanel" type="Panel" parent="TabContainer"]
visible = false visible = false
layout_mode = 2 layout_mode = 2

View File

@@ -9,7 +9,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="bin/testPRD-2.0.exe" export_path="bin/testPRD.exe"
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
encrypt_pck=false encrypt_pck=false
@@ -19,7 +19,7 @@ script_export_mode=2
[preset.0.options] [preset.0.options]
custom_template/debug="" custom_template/debug=""
custom_template/release="D:/ТПО/PRD_MP550/src/windows.template_release.exe" custom_template/release="M:/gitea/windows.template_release.exe"
debug/export_console_wrapper=0 debug/export_console_wrapper=0
binary_format/embed_pck=true binary_format/embed_pck=true
texture_format/s3tc_bptc=true texture_format/s3tc_bptc=true
@@ -32,8 +32,8 @@ codesign/digest_algorithm=1
codesign/description="" codesign/description=""
codesign/custom_options=PackedStringArray() codesign/custom_options=PackedStringArray()
application/modify_resources=true application/modify_resources=true
application/icon="" application/icon="res://icon.svg"
application/console_wrapper_icon="" application/console_wrapper_icon="res://icon.svg"
application/icon_interpolation=4 application/icon_interpolation=4
application/file_version="" application/file_version=""
application/product_version="" application/product_version=""

View File

@@ -1,15 +0,0 @@
@echo off
setlocal enabledelayedexpansion
for /l %%i in (2,1,100) do (
set "ip=10.1.2.%%i"
ping -n 1 !ip! > nul
if !errorlevel! equ 0 (
echo !ip! is reachable
) else (
echo !ip! is not reachable
)
)
endlocal
pause

12
light_ind.tres Normal file
View File

@@ -0,0 +1,12 @@
[gd_resource type="GradientTexture2D" load_steps=2 format=3 uid="uid://5rgkuswg2rxb"]
[sub_resource type="Gradient" id="Gradient_baoy0"]
colors = PackedColorArray(1, 1, 1, 1, 0.393086, 0.393086, 0.393085, 1)
[resource]
gradient = SubResource("Gradient_baoy0")
width = 25
height = 25
fill = 1
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(1.125, 0)

BIN
pictures/masterc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://w4gxxselk0m5"
path="res://.godot/imported/masterc.png-cfb35c2a62d5719f54ba4d9673392bf8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://pictures/masterc.png"
dest_files=["res://.godot/imported/masterc.png-cfb35c2a62d5719f54ba4d9673392bf8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -14,6 +14,7 @@ config/name="ПРД_для_МП-550"
run/main_scene="res://PRD_MP550.tscn" run/main_scene="res://PRD_MP550.tscn"
config/features=PackedStringArray("4.3", "GL Compatibility") config/features=PackedStringArray("4.3", "GL Compatibility")
boot_splash/bg_color=Color(0.356863, 0.278431, 0.356863, 1) boot_splash/bg_color=Color(0.356863, 0.278431, 0.356863, 1)
boot_splash/image="res://pictures/masterc.png"
config/icon="res://icon.svg" config/icon="res://icon.svg"
[autoload] [autoload]
@@ -36,7 +37,7 @@ window/size/extend_to_title=true
[editor] [editor]
run/main_run_args="-- addr 3" run/main_run_args="-- addr 100"
[rendering] [rendering]

View File

@@ -26,6 +26,7 @@ var save_path = "res://saves/"
const need_port: Array = [0x122, 0x124, 0x126, 0x128, 0x12A] const need_port: Array = [0x122, 0x124, 0x126, 0x128, 0x12A]
var current_meta: Array = [Constants.META.MODUL_UM_1, Constants.META.MODUL_UM_2, Constants.META.MODUL_UM_3, Constants.META.MODUL_UM_28] var current_meta: Array = [Constants.META.MODUL_UM_1, Constants.META.MODUL_UM_2, Constants.META.MODUL_UM_3, Constants.META.MODUL_UM_28]
var modul_um: Array = [0, 0, 0, 0] var modul_um: Array = [0, 0, 0, 0]
var receive_yau_counter: Array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
func _ready() -> void: func _ready() -> void:
@@ -223,7 +224,7 @@ func _ready() -> void:
Network.connect('yau_receive', Callable(self, '_on_data_received')) Network.connect('yau_receive', Callable(self, '_on_data_received'))
Network.connect('yau_read_isa', Callable(self, '_on_read_isa')) Network.connect('yau_read_isa', Callable(self, '_on_read_isa'))
Network.connect('port_fs_opened', _on_port_changed.bind(Color.AQUAMARINE)) Network.connect('port_fs_opened', _on_port_changed.bind(Color.AQUAMARINE))
Network.connect('port_fs_closed', _on_port_changed.bind(Color.CRIMSON)) Network.connect('port_fs_closed', _on_port_changed.bind(Color.DARK_GRAY))
Network.connect('data_from_fs_1', _on_data_fs_1) Network.connect('data_from_fs_1', _on_data_fs_1)
Network.connect('data_from_fs_2', _on_data_fs_2) Network.connect('data_from_fs_2', _on_data_fs_2)
Network.connect('data_from_fs_3', _on_data_fs_3) Network.connect('data_from_fs_3', _on_data_fs_3)
@@ -321,16 +322,32 @@ func add_signs_scene():
node_select_yau_07b_2.get_node2(1, 4).add_item(key) node_select_yau_07b_2.get_node2(1, 4).add_item(key)
# Список статусов ячеек ЯУ-07б
func _on_yau_status(addr: String): func _on_yau_status(addr: String):
if addr != '': var count_packets_await: int = 10
for check in Constants.ADDRESSES: var status_yau_list = $TabContainer/PRD/status_yau_list.get_children()
if check[1] == addr: var status_label = $TabContainer/PRD/status_yau
$TabContainer/PRD/status_yau.modulate = Color.AQUAMARINE if addr.is_empty():
$TabContainer/PRD/status_yau.text = 'ЯУ-07Б: ' + check[0] # Сброс состояния, если адрес пуст (нет связи)
else: for label in status_yau_list:
$TabContainer/PRD/status_yau.modulate = Color.CRIMSON label.text = ''
$TabContainer/PRD/status_yau.text = 'ЯУ-07Б: нет связи' status_label.modulate = Color.CRIMSON
status_label.text = 'ЯУ-07Б: нет связи'
modul_um = [0, 0, 0, 0] modul_um = [0, 0, 0, 0]
return
status_label.text = '' # Убираем статус, если есть сигнал от ЯУ-07Б
# Обновляем счетчики
for i in Constants.ADDRESSES.size():
var address_match = (Constants.ADDRESSES[i][1] == addr)
receive_yau_counter[i] = 0 if address_match else (receive_yau_counter[i] + 1) & 0xFFF
# Обновляем статусы элементов
for i in status_yau_list.size():
var label = status_yau_list[i]
var address_info = Constants.ADDRESSES[i]
label.text = address_info[0]
label.modulate = Color.AQUAMARINE if receive_yau_counter[i] < count_packets_await else Color.DARK_GRAY # Если счетчик >= count_packets_await, помечаем серым, иначе — аквамарином
func _on_read_isa(unit_isa_ports: Dictionary) -> void: func _on_read_isa(unit_isa_ports: Dictionary) -> void:

View File

@@ -377,11 +377,11 @@ func _on_data_fs(fs_data:PackedByteArray, fs_name: String):
logger.info('✅ Состояние генератора ФС-1: Включен') logger.info('✅ Состояние генератора ФС-1: Включен')
elif fs_name == 'ФС-2': elif fs_name == 'ФС-2':
$Kasseta_FS/ref_A2.state = Constants.STATE_VAL.GOOD $Kasseta_FS/ref_A2.state = Constants.STATE_VAL.GOOD
logger.info('✅ Состояние генератора ФС-1: Включен') logger.info('✅ Состояние генератора ФС-2: Включен')
flag_fs_2_ready = true flag_fs_2_ready = true
elif fs_name == 'ФС-3': elif fs_name == 'ФС-3':
$Kasseta_FS/FS_PRD_K.state = Constants.STATE_VAL.GOOD $Kasseta_FS/FS_PRD_K.state = Constants.STATE_VAL.GOOD
logger.info('✅ Состояние генератора ФС-1: Включен') logger.info('✅ Состояние генератора ФС-3: Включен')
flag_fs_3_ready = true flag_fs_3_ready = true
else: else:
if fs_name == 'ФС-1': if fs_name == 'ФС-1':
@@ -443,7 +443,7 @@ func _on_yau_feedback_receive(_status_yau):
$soc_y5/ug.state = Constants.STATE_VAL.GOOD $soc_y5/ug.state = Constants.STATE_VAL.GOOD
else: else:
flag_ug = false flag_ug = false
$soc_y5/ug.state = Constants.STATE_VAL.ERROR $soc_y5/ug.state = Constants.STATE_VAL.NONE
## Флаг для проверки модуяции на высоком ## Флаг для проверки модуяции на высоком
if Network.unit.isa_ports.has(Constants.BASE_PORTS.EMS_G+8) and Network.unit.isa_ports.has(Constants.BASE_PORTS.EMS_G+2): if Network.unit.isa_ports.has(Constants.BASE_PORTS.EMS_G+8) and Network.unit.isa_ports.has(Constants.BASE_PORTS.EMS_G+2):
if Network.unit.isa_ports[Constants.BASE_PORTS.EMS_G+2] == Constants.META.MODUL_UM_2: if Network.unit.isa_ports[Constants.BASE_PORTS.EMS_G+2] == Constants.META.MODUL_UM_2:
@@ -492,6 +492,7 @@ func _on_start_super_control():
node.value1 = 0 node.value1 = 0
node.state = Constants.STATE_VAL.NONE node.state = Constants.STATE_VAL.NONE
var predel_temp: int = 200
## Temperature for ## Temperature for
for i_temperature in range(6): ## Температура от УКП for i_temperature in range(6): ## Температура от УКП
if len(Network.unit.status) > Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * i_temperature: if len(Network.unit.status) > Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * i_temperature:
@@ -499,13 +500,13 @@ func _on_start_super_control():
var temperature_ukp_2 = Network.unit.status.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * i_temperature) var temperature_ukp_2 = Network.unit.status.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * i_temperature)
var TMP_1 = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * Constants.TEMP + 3 var TMP_1 = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * Constants.TEMP + 3
var TMP_2 = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * Constants.TEMP + 3 var TMP_2 = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * Constants.TEMP + 3
if TMP_1 > 70: if TMP_1 > predel_temp:
um_cell_ind[i_temperature].value0 = TMP_1 um_cell_ind[i_temperature].value0 = TMP_1
um_cell_ind[i_temperature].state = Constants.STATE_VAL.ERROR um_cell_ind[i_temperature].state = Constants.STATE_VAL.ERROR
logger.warning('❌ Температура УМ %s = %d' % [um_cell_ind[i_temperature].fname, TMP_1]) logger.warning('❌ Температура УМ %s = %d' % [um_cell_ind[i_temperature].fname, TMP_1])
else: else:
um_cell_ind[i_temperature].value0 = TMP_1 um_cell_ind[i_temperature].value0 = TMP_1
if TMP_2 > 70: if TMP_2 > predel_temp:
um_cell_ind[i_temperature+6].value0 = TMP_2 um_cell_ind[i_temperature+6].value0 = TMP_2
um_cell_ind[i_temperature+6].state = Constants.STATE_VAL.ERROR um_cell_ind[i_temperature+6].state = Constants.STATE_VAL.ERROR
logger.warning('❌ Температура %s: %d' % [um_cell_ind[i_temperature+6].fname, TMP_2]) logger.warning('❌ Температура %s: %d' % [um_cell_ind[i_temperature+6].fname, TMP_2])
@@ -515,7 +516,7 @@ func _on_start_super_control():
if len(Network.unit.status) > Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * 7: if len(Network.unit.status) > Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * 7:
var temperature_litera_1 = Network.unit.status.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_1 + 2 * 7) var temperature_litera_1 = Network.unit.status.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_1 + 2 * 7)
var TEMPERATURE = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_litera_1) * Constants.TEMP + 3 var TEMPERATURE = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_litera_1) * Constants.TEMP + 3
if TEMPERATURE > 70: if TEMPERATURE > predel_temp:
um_cell_ind[12].value0 = TEMPERATURE um_cell_ind[12].value0 = TEMPERATURE
logger.warning('❌ Температура %s = %d' % [um_cell_ind[12].fname, TEMPERATURE]) logger.warning('❌ Температура %s = %d' % [um_cell_ind[12].fname, TEMPERATURE])
else: else:
@@ -533,6 +534,9 @@ func _on_start_super_control():
logger.error("❌ ЯУ-07Б: Нет связи") logger.error("❌ ЯУ-07Б: Нет связи")
if flag_continue_control: if flag_continue_control:
flag_fs_1_ready = false
flag_fs_2_ready = false
flag_fs_3_ready = false
if Network.unit_fs.online: if Network.unit_fs.online:
var fs_freq: Array var fs_freq: Array
var fs_att_1: float var fs_att_1: float
@@ -571,7 +575,7 @@ func _on_start_super_control():
func _status_cell(status): func _status_cell(status):
var status_board: int = status.decode_u8(Constants.DataIndices.STATUS_BOARD) var status_board: int = status.decode_u8(Constants.DataIndices.STATUS_BOARD)
var dry_contact: int = status.decode_u8(Constants.DataIndices.DRY_CONTACT) var dry_contact: int = status.decode_u8(Constants.DataIndices.DRY_CONTACT)
var err: bool = false
# status_board # status_board
for i in range(1, 5): for i in range(1, 5):
if ((status_board >> (i-1)) & 0x1) == 1: if ((status_board >> (i-1)) & 0x1) == 1:
@@ -580,8 +584,7 @@ func _status_cell(status):
else: else:
node_cell_ind[i].state = Constants.STATE_VAL.ERROR node_cell_ind[i].state = Constants.STATE_VAL.ERROR
logger.error("%s : Нет связи" % node_cell_ind[i].get('fname')) logger.error("%s : Нет связи" % node_cell_ind[i].get('fname'))
_on_contol_err() err = true
return
#dry_contact #dry_contact
if (node_cell_ind[2].state == Constants.STATE_VAL.GOOD): if (node_cell_ind[2].state == Constants.STATE_VAL.GOOD):
@@ -597,13 +600,18 @@ func _status_cell(status):
else: else:
node_cell_ind[i_node].state = Constants.STATE_VAL.ERROR node_cell_ind[i_node].state = Constants.STATE_VAL.ERROR
logger.error("%s : Нет связи" % node_cell_ind[i_node].get('fname')) logger.error("%s : Нет связи" % node_cell_ind[i_node].get('fname'))
err = true
if node_cell_ind[3].state == Constants.STATE_VAL.GOOD: if err:
_on_contol_err()
return
if node_cell_ind[2].state == Constants.STATE_VAL.GOOD:
var mask: int = 0x7 var mask: int = 0x7
prep_set_ug = 0 prep_set_ug = 0
var index_ray: int = Constants.RAY_DICT.find(' 25°') var index_ray: int = Constants.RAY_DICT.find(' 25°')
if Constants.CURRENT_MODE == Constants.MODE.PRD_B or Constants.CURRENT_MODE == Constants.MODE.PRD_K: if Constants.CURRENT_MODE == Constants.MODE.PRD_B or Constants.CURRENT_MODE == Constants.MODE.PRD_K:
index_ray = Constants.RAY_DICT.find(' 1') index_ray = Constants.RAY_DICT.find(' 3')
var index_att: int = Constants.ATT_DICT.find(' 10.5 dB') var index_att: int = Constants.ATT_DICT.find(' 10.5 dB')
## Регулировка положением луча 1 ## Регулировка положением луча 1
prep_set_ug = set_bits(prep_set_ug, index_ray, mask) prep_set_ug = set_bits(prep_set_ug, index_ray, mask)
@@ -638,112 +646,124 @@ func _on_fs_status(META:int):
if logger and flag_continue_control: if logger and flag_continue_control:
if META == Constants.META.CI_2_OT_FS or META == Constants.META.CI_4_OT_FS or META == Constants.META.CI_6_OT_FS: if META == Constants.META.CI_2_OT_FS or META == Constants.META.CI_4_OT_FS or META == Constants.META.CI_6_OT_FS:
logger.info('✅ СИ от ФС-1: Включен') logger.info('✅ СИ от ФС-1: Включен')
return
elif META == Constants.META.CI_3_OT_FS or META == Constants.META.CI_5_OT_FS or META == Constants.META.CI_7_OT_FS: elif META == Constants.META.CI_3_OT_FS or META == Constants.META.CI_5_OT_FS or META == Constants.META.CI_7_OT_FS:
logger.info('✅ СИ от ФС-2: Включен') logger.info('✅ СИ от ФС-2: Включен')
elif META == Constants.META.CI_1_OT_FS: elif META == Constants.META.CI_1_OT_FS:
logger.info('✅ СИ от ФС-3: Включен') logger.info('✅ СИ от ФС-3: Включен')
if flag_fs_1_ready and flag_fs_2_ready: if not flag_fs_1_ready:
if Constants.CURRENT_MODE == Constants.MODE.PRD_K: return
if not flag_fs_3_ready:
return
#dkm if not flag_fs_2_ready:
var dkm: int = Network.unit.status.decode_u8(Constants.DataIndices.DKM) return
if Constants.CURRENT_MODE == Constants.MODE.PRD_H: if Constants.CURRENT_MODE == Constants.MODE.PRD_K:
if (dkm >> 1) & 0x1 == 1: if not flag_fs_3_ready:
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено']) return
$soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
$soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
if (dkm >> 2) & 0x1 == 1:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
$soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
$soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
if (dkm >> 1) & 0x1 == 1 and (dkm >> 2) & 0x1 == 1: # Следующий шаг -> #dkm
flag_dkm = true var dkm: int = Network.unit.status.decode_u8(Constants.DataIndices.DKM)
else:
Network.set_fs_gen_status(true) ## отключен = true
Network.get_gen_state_1()
Network.set_fs_gen_status_2(true) ## отключен = true
Network.get_gen_state_2()
_on_contol_err()
elif Constants.CURRENT_MODE == Constants.MODE.PRD_B: if Constants.CURRENT_MODE == Constants.MODE.PRD_H:
if (dkm >> 3) & 0x1 == 1: if (dkm >> 1) & 0x1 == 1:
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено']) logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
$soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD $soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
else: else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи']) logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
$soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR $soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
if (dkm >> 4) & 0x1 == 1: if (dkm >> 2) & 0x1 == 1:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено']) logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
$soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD $soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
else: else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи']) logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
$soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR $soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
if (dkm >> 3) & 0x1 == 1 and (dkm >> 4) & 0x1 == 1: # Следующий шаг -> if (dkm >> 1) & 0x1 == 1 and (dkm >> 2) & 0x1 == 1: # Следующий шаг ->
flag_dkm = true flag_dkm = true
else: timer.stop()
Network.set_fs_gen_status(true) ## отключен = true else:
Network.get_gen_state_1() #flag_dkm = true
Network.set_fs_gen_status_2(true) ## отключен = true #timer.stop()
Network.get_gen_state_2() Network.set_fs_gen_status(true) ## отключен = true
_on_contol_err() Network.get_gen_state_1()
Network.set_fs_gen_status_2(true) ## отключен = true
Network.get_gen_state_2()
_on_contol_err()
elif Constants.CURRENT_MODE == Constants.MODE.PRD_K: elif Constants.CURRENT_MODE == Constants.MODE.PRD_B:
if (dkm >> 0) & 0x1 == 1: if 1 == 1:#if (dkm >> 3) & 0x1 == 1:
logger.info('%s: %s ' % [$Kasseta_FS/Block_FS_PRD_K.fname, 'Включено']) logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
$soc_DKM/DKM_1.state = Constants.STATE_VAL.GOOD $soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD
$Kasseta_FS/Block_FS_PRD_K.state = $soc_DKM/DKM_1.state $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
else: else:
logger.info('%s: %s ' % [$Kasseta_FS/Block_FS_PRD_K.fname, 'Нет связи']) logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
$soc_DKM/DKM_1.state = Constants.STATE_VAL.ERROR $soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR
$Kasseta_FS/Block_FS_PRD_K.state = $soc_DKM/DKM_1.state $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
if (dkm >> 5) & 0x1 == 1: if 1 == 1:#(dkm >> 4) & 0x1 == 1:
logger.info('%s: %s ' % [$Kasseta_FS/ref_A3.fname, 'Включено']) logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
$soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD $soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
else: else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи']) logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
$soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR $soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
if (dkm >> 6) & 0x1 == 1:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
$soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
$soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
if (dkm >> 5) & 0x1 and (dkm >> 6) & 0x1 and (dkm >> 0) & 0x1: # Следующий шаг -> if (dkm >> 3) & 0x1 == 1 and (dkm >> 4) & 0x1 == 1: # Следующий шаг ->
flag_dkm = true flag_dkm = true
timer.stop() timer.stop()
else: else:
Network.set_fs_gen_status(true) ## отключен = true #flag_dkm = true
Network.get_gen_state_1() #timer.stop()
Network.set_fs_gen_status_2(true) ## отключен = true Network.set_fs_gen_status(true) ## отключен = true
Network.get_gen_state_2() Network.get_gen_state_1()
Network.set_fs_gen_status_3(true) ## отключен = true Network.set_fs_gen_status_2(true) ## отключен = true
Network.get_gen_state_3() Network.get_gen_state_2()
_on_contol_err() _on_contol_err()
logger.info('🛈 ДКМ: %s ' % dkm)
elif Constants.CURRENT_MODE == Constants.MODE.PRD_K:
if (dkm >> 0) & 0x1 == 1:
logger.info('%s: %s ' % [$Kasseta_FS/Block_FS_PRD_K.fname, 'Включено'])
$soc_DKM/DKM_1.state = Constants.STATE_VAL.GOOD
$Kasseta_FS/Block_FS_PRD_K.state = $soc_DKM/DKM_1.state
else:
logger.info('%s: %s ' % [$Kasseta_FS/Block_FS_PRD_K.fname, 'Нет связи'])
$soc_DKM/DKM_1.state = Constants.STATE_VAL.ERROR
$Kasseta_FS/Block_FS_PRD_K.state = $soc_DKM/DKM_1.state
if (dkm >> 5) & 0x1 == 1:
logger.info('%s: %s ' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
$soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
$soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
if (dkm >> 6) & 0x1 == 1:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
$soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
$soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
if (dkm >> 5) & 0x1 and (dkm >> 6) & 0x1 and (dkm >> 0) & 0x1: # Следующий шаг ->
flag_dkm = true
timer.stop()
else:
Network.set_fs_gen_status(true) ## отключен = true
Network.get_gen_state_1()
Network.set_fs_gen_status_2(true) ## отключен = true
Network.get_gen_state_2()
Network.set_fs_gen_status_3(true) ## отключен = true
Network.get_gen_state_3()
_on_contol_err()
logger.info('🛈 ДКМ: %s ' % dkm)
func _on_modul_um(): func _on_modul_um():
@@ -847,12 +867,13 @@ func _status_prd():
status += 1 if (node_cell_ind[18].state == Constants.STATE_VAL.GOOD) else 0 status += 1 if (node_cell_ind[18].state == Constants.STATE_VAL.GOOD) else 0
var pribor_ispraven: bool = false var pribor_ispraven: bool = false
var min_dopusk: int = 40 var min_dopusk: int = 10
var status_need = count_cell-7 if Constants.CURRENT_MODE != Constants.MODE.PRD_K else count_cell+1 var status_need = count_cell-7 if Constants.CURRENT_MODE != Constants.MODE.PRD_K else count_cell+1
if (status == status_need): if (status == status_need):
pribor_ispraven = true pribor_ispraven = true
var count_um: int = 0 var count_um: int = 0
for i_pow in array_pow_1: for i_pow in array_pow_1:
if count_um == 6: if count_um == 6:
um_cell_ind[count_um+6].value1 = i_pow um_cell_ind[count_um+6].value1 = i_pow

View File

@@ -39,6 +39,11 @@ func _on_read_ems_g():
func _on_sync(): func _on_sync():
for index in 16:
for row in 16:
var chk_btn = node_select1.get_node2(index+2, row+3).get_child(1, false)
chk_btn.set_pressed_no_signal(false)
for index in 32: for index in 32:
var tmp_device_mode = Constants.EMS_G_PORT_DATA_HOLDER[index][0] var tmp_device_mode = Constants.EMS_G_PORT_DATA_HOLDER[index][0]
if tmp_device_mode > 46: if tmp_device_mode > 46:
@@ -50,7 +55,7 @@ func _on_sync():
for row in 16: for row in 16:
if (port0x124 & (1 << row)) != 0: if (port0x124 & (1 << row)) != 0:
var chk_btn = node_select1.get_node2(tmp_device_mode-45, row+3).get_child(1, false) var chk_btn = node_select1.get_node2(tmp_device_mode-45, row+3).get_child(1, false)
chk_btn.button_pressed =true chk_btn.set_pressed_no_signal(true)
if key == 0x128: if key == 0x128:
port0x128 = Constants.EMS_G_PORT_DATA_HOLDER[index][1][key] port0x128 = Constants.EMS_G_PORT_DATA_HOLDER[index][1][key]
var list = node_select1.get_node2(tmp_device_mode-45, 0) var list = node_select1.get_node2(tmp_device_mode-45, 0)