[ TAG 152 ][20.09.2021] -Erfolgreich -IAP-20210601-20210722-1145

Ich beginne meine Worksession um [20.09.2021][1815]. Die Worksession beginnt mit der Frage, wo ich die [APL]-Liste integrieren?

Die ausführenden Mechanismen befinden sich im [PROCESS_ALOG_20210726_0110.py]-Modul.

Das [MKI_BSCL_1_20210819.py] bekommt eine Referenz auf das [PROCESS_ALOG_20210726_0110.py]-Modul zugewiesen. Die Zuweisung erfolgt in der [main.py].

[20.09.2021][1900] - Während der Entwicklungsarbeiten ist mir etwas aufgefallen, was ich vorher nicht erwartet habe. Im [PROCESS_ALOG_20210726_0110.py]-Modul habe ich an der [APL_INIT(alog_glb)]-Methode gearbeitet. Ich habe herausgefunden, dass dass das Starten des Managers unglaublich lang dauert. Ich habe bisher keine Zeitmessungen durchgeführt, jedoch beobachtete ich das die Durchführung der Zeilen mehrere Sekunden dauerten.

An diesem Punkt habe ich zwei Möglichkeiten. Ich verwerfe diese Vorgehensweise. Eine andere Möglichkeit besteht darin, die [APL_INIT(alog_glb)] am Programm-Start durchzuführen.

def APL_INIT(alog_glb):
print("PROCESS_ALOG_20210726_0110 - APL_INIT(alog_glb)")
if alog_glb.MNGR is None:
alog_glb.MNGR = Manager()
alog_glb.APL = alog_glb.MNGR.list()
print("PROCESS_ALOG_20210726_0110 - APL_INIT(alog_glb) - alog_glb.MNGR wurde initialisiert.")

[20.09.2021][2022] - Ich habe das Manager-Problem so gelöst, dass es beim Programmstart ausgeführt wird.

Wenn das ALOG-Prozess gestartet wird, dann wird [APL_INIT(alog_glb)] auch ausgeführt. Jedoch wird der Manger nicht gestartet, weil der Manager bereits beim Programm-Start ausgeführt wurde. So findet nur eine Überprüfung statt. Es kommt aber nicht zu einer Ausführung und somit zu wertvollen Zeitverlusten. Sollte es zu einen Fall kommen, dass der Manager nicht initialisiert wurde, dann wird der Manager vor dem ALOG-Prozess-Start initialisiert.

[20.09.2021][2044] - Ein weiterer Punkt, der mir heute aufgefallen ist, ist die Benutzung des [MKI-SHM]-Moduls im [MKI_MAIN].

def STAND_BY_EXEC():
global BSCL_0
# ...
LIST_EXEC(BSCL_0.BSCL_STAND_BY_EXEC_LIST)


def INIT_EXEC():
global BSCL_0
# ...
LIST_EXEC(BSCL_0.BSCL_INIT_EXEC_LIST)
Zu diesen Zeitpunkt müssen die EXEC-Methoden den [FLAG-1] im SYSTEM-Byte des [SHMM-MKI0-250821]-Moduls benutzen.
  • Zuweisungen:
    • INIT_EXEC()     -> FLAG_STATE_INIT(shm_mki0, True)
    • STAND_BY_EXEC() -> FLAG_STATE_STAND_BY(shm_mki0, True)
    • ... oder ...
    • STAND_BY_EXEC() -> FLAG_STATE_INIT(shm_mki0, False)
[20.09.2021][2137] - Ich habe mich entschieden die INIT und STAND_BY EXEC-Methoden nicht zu verändern. Meine Entscheidung besteht darin, die FLAG-Modifizierung nicht in [MKI_MAIN] sondern in [MKI_BSCL_0] vorzunehmen.

Im [MKI_MAIN] habe ich mich jedoch entschieden die LEVEL-1 Befelssequenzen kurz [BSCL_1] über FLAG-1 sperren bzw. zu entsperren. Die Liste mit LEVEL-1 Befehlssequenzen wird nur ausgeführt, wenn [FLAG-1] auf [1] gesetzt ist.

#--------------------
#MKI_MAIN_20210819.py
#--------------------
def EXEC():
global bsc_code_sequenz
global BSCL_0
global BSCL_1

LIST_EXEC(BSCL_0.BSCL_0_LIST, bsc_code_sequenz)
if GLOBALS_20210819.FLAG_STATE_INIT(shm_mki0):
LIST_EXEC(BSCL_1.BSCL_1_LIST, bsc_code_sequenz)
else:
print(f"> INI - SEQUENZ eingeben")
Somit wird die Überprüfung des [FLAG-1] im [MKI_BSCL_1] überflüssig. Die [BSCL_1_LIST] wird nur ausgeführt, wenn die Initialisierungssequenz eingegeben wurde.

def BSC_CNTRL_START_A_RECORD():
global alog
global alog_glb
print("mki_bscl_1_20210819 - BSC_CNTRL_START_A_RECORD")
if GLOBALS_20210819.FLAG_STATE_INIT(shm_mki0):
alog.START_PROCESS(alog_glb)
print(f"mki_bscl_1_20210819 - BSC_CNTRL_START_A_RECORD - {alog_glb.APL}")
else:
print(f"> INI - SEQUENZ eingeben")


def BSC_CNTRL_START_V_RECORD():
print("mki_bscl_1_20210819 - BSC_CNTRL_START_V_RECORD")


def BSC_CNTRL_STOP_RECORD():
global alog
global alog_glb
print("mki_bscl_1_20210819 - BSC_CNTRL_STOP_RECORD")
if GLOBALS_20210819.FLAG_STATE_INIT(shm_mki0):
alog.STOP_LAST_PROCESS(alog_glb)
print(f"mki_bscl_1_20210819 - BSC_CNTRL_STOP_RECORD - {alog_glb.APL}")
else:
print(f"> INI - SEQUENZ eingeben")


In der nächsten Worksession werde ich mich wahrscheinlich auf die Prozessausführung konzentrieren. Dazu werden folgende Module benötigt.
  • PROCESS_ALOG_20210726_0110.py
  • MKI_BSCL_1_20210819.py

Ich beende die heutige Worksession.

Hochachtungsvoll
Artem Kraft


Kommentare

Beliebte Posts aus diesem Blog

[ TAG 38 ][29.05.2021] - Erfolgreich - Freelancer-Portale

[ TAG 747 ][07.04.2023] -Erfolgreich -BNKTRS -Google Code -Objekt und Methodenliste

[ TAG 52 ][12.06.2021] - Erfolgreich - IAP-20210601-20210609-2325