PyTool Modbus TCP

резреж+
рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░рд┐рдПрдХрд╛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ
рд╕рд╛рдордЧреНрд░реАрдХреЛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди
рд╕рдмреИрдЬрдирд╛
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ
рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдлреЛрдЯреЛ

рдпреЛ рдПрдкрдХрд╛ рдмрд╛рд░реЗрдорд╛

PyTool Modbus TCP Modbus TCP рд╡рд┐рдХрд╛рд╕, рдбрд┐рдмрдЧрд┐рдВрдЧ рд░ рдЕрдиреБрдЧрдордирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдЙрддреНрддрдо рдЙрдкрдХрд░рдг рд╣реЛред
рдпрд╕рд▓реЗ рдкрд╛рдЗрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рдЬреБрди рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдмреИрднрдиреНрджрд╛ рдареВрд▓реЛ рд▓рдЪрд┐рд▓реЛрдкрди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

Modbus TCP рдЙрдкрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдХрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд╖рдорддрд╛ рдпреЛрдЧреНрдп рдЫ?
рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХрд▓ рдИрдиреНрдЬрд┐рдирд┐рдпрд░рд╣рд░реВрд▓реЗ рдПрдиреНрдбреНрд░реЛрдЗрдб рдлреЛрди рд╡рд╛ рдЯреНрдпрд╛рдмреНрд▓реЗрдЯ рдЬрд╕реНрддреИ рд╣рд╛рдд, рдбрд┐рдмреНрдм рдЧрд░реНрди рд╡рд╛ рдХреНрд╖реЗрддреНрд░, рдХрд╛рд░рдЦрд╛рдирд╛ рд╡рд╛ рд▓реНрдпрд╛рдмрдорд╛ Modbus TCP рд╕рдВрдЪрд╛рд░ рдореЛрдирд┐рдЯрд░ рдЧрд░реНрди рдЯреНрдпрд╛рдмреНрд▓реЗрдЯрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╣рд╛рддреИрд▓реЗ рдлреЗрд▓рд╛ рдкрд╛рд░реНрджрдЫред
рддрд░ рд▓рдЧрднрдЧ рд╕рдмреИ Modbus TCP рд╕рдВрдЪрд╛рд░ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЖрдлреНрдиреИ рдбрд╛рдЯрд╛ рдврд╛рдБрдЪрд╛ рднрдпреЛред
рд╣реЗрдХреНрд╕ рдбрд╛рдЯрд╛рдХреЛ рд╕рдореБрджреНрд░рдорд╛ рдЦреЛрдЬреА рдЧрд░реНрджреИ рдЬрд╕реНрддреИ "режреи рдП b рдмреА ca рд╕реАрдП .... ff000803" рд░ рдХреЗ рд╣реБрдБрджреИрдЫ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдХреЛрд╕рд┐рд╕ рдЧрд░реНрдиреБ рдХреБрдиреИ рд░рдорд╛рдИрд▓реЛ рдЫреИрдиред
рддреНрдпрд╣рд┐ рд╣реЛ рдЬрд╣рд╛рдБ PyTool Modbus TCP рдорджреНрджрдд рдЧрд░реНрди рдЖрдЙрдБрдЫред
рдХрд╕реНрдЯрдо рдкрд╛рдЗрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреЗ рдХреНрд╖рдорддрд╛рдХреЛ рд╕рд╛рде, рдкрд╛рдЗрдЯреБрд▓ рдореЛрдбрдмрд╕ рдЯреАрд╕реАрдкреАрд▓реЗ рдХреБрдиреИ рдкрдирд┐ рдкреНрд░рд╛рдкреНрдд рдбрд╛рдЯрд╛ рдкрдвреНрди рд╡рд╛ рдкрдвреНрди, рдпрд╕рд▓рд╛рдИ рддрдкрд╛рдЗрдБрд▓реЗ рдЪрд╛рд╣реЗрдХреЛ рддрд░рд┐рдХрд╛рдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди, рд░ рдЖрд╡рд╢реНрдпрдХ рднрдПрдХреЛ рдмреЗрд▓рд╛рдорд╛ рдкрдирд┐ рдХрд╛рд░реНрдп рдЧрд░реНрди рд╕рдХреНрджрдЫред

рджреНрд░реБрдд рд╕реБрд░реВрдХреЛ рд▓рд╛рдЧрд┐ рддреНрдпрд╣рд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдЫрдиреНред рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХреЛрд╕рд┐рд╕ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдХреЗрд╡рд▓ рдПрдЙрдЯрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реЗрд░ рдЯрд╛рдБрд╕реНрдиреБрд╣реЛрд╕реНред

рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдЙрдкрдпреЛрдЧреА Modbus TCP рдирд┐рдпрдиреНрддреНрд░рдг рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкрдирд┐ рдЫред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдорд╛рдиреНрдп рдЧрд╛рдЗрдб
==================

* рдпрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдкрд╛рдЗрдерди рд╕рдВрд╕реНрдХрд░рдг 3..8 рд╣реЛред

* рдпреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдореНрдкрд╛рджрдХрдХреЛ рд░реВрдкрдорд╛ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫреИрди рдЬрдмрдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд╖реЗрддреНрд░рдорд╛ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
рдЙрддреНрддрдо рддрд░рд┐рдХрд╛ рднрдиреЗрдХреЛ рддрдкрд╛рдИрдВрдХреЛ рдордирдкрд░реНрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдореНрдкрд╛рджрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рддреНрдпрд╕рдкрдЫрд┐ рд▓рд┐рдкрд┐рд▓рд╛рдИ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реЗрд░ рдЯрд╛рдБрд╕реНрдиреБрд╣реЛрд╕реНред

* рд╕рдзреИрдВ рдИрдиреНрдбреЗрдиреНрдЯреЗрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ space рдЦрд╛рд▓реА рдард╛рдЙрдБрд╣рд░реВ рдЕрдиреМрдВрдареЛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд░реЛрдХреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

* рдорд╛рдирдХ рдкрд╛рдЗрдерди рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдкреНрд░рд╛рдп: рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЖрдпрд╛рдд рдЧрд░реНрди рдЙрдкрд▓рдмреНрдз рдЫрдиреНред

* рдпрджрд┐ рд▓реВрдк рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдареАрдХрд╕рдБрдЧ рд░реЛрдХреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдБрдзреИ `app.running_script` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

* Version app.version` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдЯреНрд░рд┐ get рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиред

* рд╕реНрдЯреНрд░рд┐рдкрдХреЛ рд░реВрдкрдорд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдлрд┐рд▓реНрдб рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди `app.get_output () Use рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдлрд┐рд▓реНрдбрдорд╛ рд╕реНрдЯреНрд░рд┐ asрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ display app.set_output (рд╡рд╕реНрддреБ) `рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

* рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдлрд┐рд▓реНрдбрдорд╛ рдкрд╛рда рдердкреНрди `app.set_output (app.get_output () + str (рд╡рд╕реНрддреБ)) a рдХреЛ рд▓рд╛рдЧрд┐ рд╕рд░реНрдЯрдХрдЯрдХреЛ рд░реВрдкрдорд╛` app.print_text (рд╡рд╕реНрддреБ) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

* рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдлрд┐рд▓реНрдб рдЦрд╛рд▓реА рдЧрд░реНрди `app.set_output (" ") for рдХреЛ рд▓рд╛рдЧрд┐ рд╕рд░реНрдЯрдХрдЯрдХреЛ рд░реВрдкрдорд╛` app.clear_text () Use рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

* рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдб режреж рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрди `app.fc01_read_coils (mbid, addr, num) Use рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
mbid (int): Modbus ID
addr (int): рдбрд╛рдЯрд╛ рдареЗрдЧрд╛рдирд╛
num (int): рдбрд╛рдЯрд╛рдХреЛ рд╕рдВрдЦреНрдпрд╛
рд░рд┐рдЯрд░реНрди (int рдХреЛ рд╕реВрдЪреА): рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЯрд╛ рд╕реВрдЪреА

* рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдб режреж рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрди read app.fc02_read_discrete_inputs (mbid, addr, num) Use рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
mbid (int): Modbus ID
addr (int): рдбрд╛рдЯрд╛ рдареЗрдЧрд╛рдирд╛
num (int): рдбрд╛рдЯрд╛рдХреЛ рд╕рдВрдЦреНрдпрд╛
рд░рд┐рдЯрд░реНрди (int рдХреЛ рд╕реВрдЪреА): рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЯрд╛ рд╕реВрдЪреА

* рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдб реж request рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрди `app.fc03_read_holding_register (mbid, addr, num) Use рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
mbid (int): Modbus ID
addr (int): рдбрд╛рдЯрд╛ рдареЗрдЧрд╛рдирд╛
num (int): рдбрд╛рдЯрд╛рдХреЛ рд╕рдВрдЦреНрдпрд╛
рд░рд┐рдЯрд░реНрди (int рдХреЛ рд╕реВрдЪреА): рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЯрд╛ рд╕реВрдЪреА

* рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдб реж request рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрди read app.fc04_read_input_register (mbid, addr, num) Use рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
mbid (int): Modbus ID
addr (int): рдбрд╛рдЯрд╛ рдареЗрдЧрд╛рдирд╛
num (int): рдбрд╛рдЯрд╛рдХреЛ рд╕рдВрдЦреНрдпрд╛
рд░рд┐рдЯрд░реНрди (int рдХреЛ рд╕реВрдЪреА): рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЯрд╛ рд╕реВрдЪреА

* рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдб реж request рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрди `app.fc05_write_single_coil (mbid, addr, val) Use рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
mbid (int): Modbus ID
addr (int): рдбрд╛рдЯрд╛ рдареЗрдЧрд╛рдирд╛
val (int): рдбрд╛рдЯрд╛ рдорд╛рди
рд░рд┐рдЯрд░реНрди (int): рдбрд╛рдЯрд╛ рдХреЛ рд╕рдВрдЦреНрдпрд╛ (рд╕рдзреИрдВ рез)

* рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдб реж request рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрди `app.fc06_writ_single_register (mbid, addr, val) Use рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
mbid (int): Modbus ID
addr (int): рдбрд╛рдЯрд╛ рдареЗрдЧрд╛рдирд╛
val (int): рдбрд╛рдЯрд╛ рдорд╛рди
рд░рд┐рдЯрд░реНрди (int): рдбрд╛рдЯрд╛ рдХреЛ рд╕рдВрдЦреНрдпрд╛ (рд╕рдзреИрдВ рез)

* рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдб рез request рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрди `app.fc15_writ_m Multiple_coils (mbid, addr, vals) Use рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
mbid (int): Modbus ID
addr (int): рдбрд╛рдЯрд╛ рдареЗрдЧрд╛рдирд╛
vals (int рдХреЛ рд╕реВрдЪреА): рдбрд╛рдЯрд╛ рдорд╛рди рд╕реВрдЪреА
рд░рд┐рдЯрд░реНрди (int): рдбрд╛рдЯрд╛рдХреЛ рд╕рдВрдЦреНрдпрд╛

* рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдб рез request рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрди _ app.fc16_writ_m Multiple_register (mbid, addr, vals) Use рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
mbid (int): Modbus ID
addr (int): рдбрд╛рдЯрд╛ рдареЗрдЧрд╛рдирд╛
vals (int рдХреЛ рд╕реВрдЪреА): рдбрд╛рдЯрд╛ рдорд╛рди рд╕реВрдЪреА
рд░рд┐рдЯрд░реНрди (int): рдбрд╛рдЯрд╛рдХреЛ рд╕рдВрдЦреНрдпрд╛

рдЕрдиреБрд░реЛрдз рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрди *ред App.msg_out` рд░ `app.msg_in` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

* рднрдгреНрдбрд╛рд░рдгрдорд╛ рд▓рдЧ рдлрд╛рдЗрд▓ рдмрдЪрдд рдЧрд░реНрди `app.log_file (рдкрд╛рда) Use рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рд▓рдЧ рдлрд╛рдЗрд▓ рдпрд╣рд╛рдБ рдЕрд╡рд╕реНрдерд┐рдд рдЫ [рднрдгреНрдбрд╛рд░рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛] / PyToolModbusTCP / log_ [UTC рдЯрд╛рдЗрдорд╕реНрдЯреНрдпрд╛рдореНрдк] .txtред
рдкрд╛рда (str): рдкрд╛рда рд╕рд╛рдордЧреНрд░реА
рдлрд┐рд░реНрддреА (str): рдкреВрд░реНрдг рдлрд╛рдИрд▓ рдкрде
рдорд╛ рдЕрдкрдбреЗрдЯ рдЧрд░рд┐рдПрдХреЛ
реирежреирез рдЬреБрд▓рд╛рдИ рем

рдбреЗрдЯрд╛рдХреЛ рд╕реБрд░рдХреНрд╖рд╛

рддрдкрд╛рдИрдВрдХреЛ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╛рдЦреНрдирдХрд╛ рдирд┐рдореНрддрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓рд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рддрдкрд╛рдИрдВрдХреЛ рдбреЗрдЯрд╛ рдХрд╕рд░реА рд╕рдЩреНрдХрд▓рди рддрдерд╛ рд╕реЗрдпрд░ рдЧрд░реНрдЫ рднрдиреНрдиреЗ рдХреБрд░рд╛ рдмреБрдЭреНрди рдЬрд░реБрд░реА рдЫред рдПрдкрдХреЛ рдкреНрд░рдпреЛрдЧрд╕рдореНрдмрдиреНрдзреА рдЬрд╛рдирдХрд╛рд░реА, рддрдкрд╛рдИрдВ рдмрд╕реЛрдмрд╛рд╕ рдЧрд░реНрдиреЗ рдХреНрд╖реЗрддреНрд░ рд░ рддрдкрд╛рдИрдВрдХреЛ рдЙрдореЗрд░рдХрд╛ рдЖрдзрд╛рд░рдорд╛ рдбреЗрдЯрд╛рдХреЛ рдЧреЛрдкрдиреАрдпрддрд╛ рд░ рд╕реБрд░рдХреНрд╖рд╛рд╕рдореНрдмрдиреНрдзреА рдЕрднреНрдпрд╛рд╕рд╣рд░реВ рдлрд░рдХ рд╣реБрди рд╕рдХреНрдЫрдиреНред рдпреЛ рдПрдкрдХрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдпреЛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдЧрд░реНрдиреБрднрдПрдХреЛ рд╣реЛ рд░ рдЙрд╣рд╛рдБ рд╕рдордпрдХреНрд░рдорд╕рдБрдЧреИ рдпреЛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрд╢реЛрдзрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рддреЗрд╕реНрд░реЛ рдкрдХреНрд╖рд╕рдБрдЧ рдХреБрдиреИ рдкрдирд┐ рдбреЗрдЯрд╛ рд╕реЗрдпрд░ рдЧрд░рд┐рдБрджреИрди
рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдбреЗрдЯрд╛ рд╕реЗрдпрд░ рдЧрд░рд┐рдиреЗ рдХреБрд░рд╛рдХрд╛ рдмрд╛рд░реЗрдорд╛ рдХрд╕рд░реА рдЬрд╛рдирдХрд╛рд░реА рдЧрд░рд╛рдЙрдБрдЫрдиреН рднрдиреНрдиреЗрдмрд╛рд░реЗрдорд╛ рдердк рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН
рдХреБрдиреИ рдкрдирд┐ рдбреЗрдЯрд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░рд┐рдПрдХреЛ рдЫреИрди
рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдбреЗрдЯрд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░рд┐рдиреЗ рдХреБрд░рд╛рдХрд╛ рдмрд╛рд░реЗрдорд╛ рдХрд╕рд░реА рдЬрд╛рдирдХрд╛рд░реА рдЧрд░рд╛рдЙрдБрдЫрдиреН рднрдиреНрдиреЗрдмрд╛рд░реЗрдорд╛ рдердк рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН

рдирдпрд╛рдБ рдХреЗ рдЫ

Version 0.4
Python version for the script is 3.8.
Now the script runs in Python global environment. Existing scripts should still work as before.
`app.version` is added for checking app version.

рдПрдкрд╕рдореНрдмрдиреНрдзреА рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛

рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХрд╛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА
Quan Lin
jacklinquan@gmail.com
190 Centre Dandenong Rd Cheltenham VIC 3192 Australia
undefined

Quan Lin рдХрд╛ рдердк рд╡рд╕реНрддреБрд╣рд░реВ

рдпрд╕реНрддреИ рдПрдкрд╣рд░реВ