Доработка. Обмен с Щ3, таймер переподключения. В контроле УФ добавлены источники питания, как индикатор неисправности прибора.
This commit is contained in:
@@ -38,17 +38,6 @@ text = "Контроль исправности устройства У-ЭП"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
self_modulate = Color(0.835294, 0.141176, 0.286275, 1)
|
||||
layout_mode = 0
|
||||
offset_left = 95.0
|
||||
offset_top = 1125.0
|
||||
offset_right = 625.0
|
||||
offset_bottom = 1144.0
|
||||
text = "** Позиционные обозначения требуют уточнения **"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="spt25_A1" parent="." instance=ExtResource("6_60xs3")]
|
||||
layout_mode = 0
|
||||
offset_left = 88.0
|
||||
|
||||
@@ -14,6 +14,7 @@ extends 'res://scenes/контроль/элемент-я.gd'
|
||||
@export var regs_holding_count: = 4 ## Количество регистров хранения
|
||||
@export var modbus_address: = 3 ## Адрес устройства на шине Modbus
|
||||
@export var request_period: = 1.0 ## Период отправки команд на шину Modbus
|
||||
@export var reconnect_period: = 5.0 ## Период переподключения
|
||||
|
||||
var regs_input: = {} ## Регистры входные
|
||||
var regs_holding: = {} ## Регистры хранения
|
||||
@@ -23,6 +24,7 @@ var input_stack: = [] ## Стек команд для чтения регис
|
||||
var read_step: = 0
|
||||
var switches_sync: = false
|
||||
var timer = Timer.new()
|
||||
var timer_reconnect = Timer.new()
|
||||
|
||||
|
||||
class StackItem:
|
||||
@@ -59,6 +61,14 @@ func _on_timeout(unit_sch3) -> void:
|
||||
read_step %= 2
|
||||
|
||||
|
||||
func _on_timeout_recconect(unit_sch3):
|
||||
var unit_key = settings.get_unit_key(unit_sch3.name)
|
||||
var mbc = network.mbcs[unit_key]
|
||||
mbc.try_reconnect()
|
||||
var mb_data = {'code': 'read_holding', 'data': [0, 4], 'unit': 0}
|
||||
mbc.send_to(mb_data)
|
||||
|
||||
|
||||
## Вызывается при изменении состояния выключателя[br]
|
||||
## [param val] - Состояние выключателя[br]
|
||||
## [param meta] - Адреса регистров и индексы битов назначенных выключателю[br]
|
||||
@@ -99,11 +109,14 @@ func _ready() -> void:
|
||||
timer.connect('timeout', _on_timeout.bind(unit_sch3))
|
||||
add_child(timer)
|
||||
timer.start(request_period)
|
||||
timer_reconnect.connect('timeout', _on_timeout_recconect.bind(unit_sch3))
|
||||
add_child(timer_reconnect)
|
||||
|
||||
|
||||
func on_command_fail(unit_sch3):
|
||||
unit_sch3.cmd_state = unit.Unit.CmdState.DONE
|
||||
timer.stop()
|
||||
timer_reconnect.start(reconnect_period)
|
||||
|
||||
|
||||
## Вызывается, когда состояния прибора Щ3 "на связи" изменяется[br]
|
||||
@@ -124,8 +137,10 @@ func on_line_changed(unit_sch3: sch_3.Sch3):
|
||||
$margin/vbox/grid1/state_freq.texture = textures[STATE_VAL.NONE]
|
||||
$margin/vbox/grid/state.texture = textures[STATE_VAL.NONE]
|
||||
else:
|
||||
timer_reconnect.stop()
|
||||
timer.start(request_period)
|
||||
|
||||
|
||||
## Вызывается по сигналу "приняты данные чтения регистров хранения"[br]
|
||||
## [param base_addr] - Начальный адрес регистров.[br]
|
||||
## [param data] - Массив значений прочитанных из регистров.
|
||||
|
||||
@@ -721,7 +721,7 @@ size_flags_vertical = 4
|
||||
tooltip_text = "Индикатор допуска входного напряжения"
|
||||
texture = ExtResource("2_ln52a")
|
||||
expand_mode = 1
|
||||
metadata/bits = [0, 0, 2, 0]
|
||||
metadata/bits = [0, 15, 4, 0]
|
||||
|
||||
[node name="lbl0" type="Label" parent="margin/vbox/grid1"]
|
||||
self_modulate = Color(1, 1, 1, 0.627451)
|
||||
|
||||
Reference in New Issue
Block a user