from typing import List from typing import Optional from enum import Enum # this file is auto - generated def open_portal(portal_mode: Optional[Enums.PortalMode] = None, version: Optional[str] = None) -> Portal: """ Open a new TIA Portal instance Version-string in format major.minor e.g. \"18.0\" *Returns* → `Portal` TIA Portal instance | Parameters | Type | Description | | --- | --- | --- |c:\Users\migue\miniconda3\envs\tia_scripting\Lib\site-packages\siemens_tiaportal_scripting.pyi c:\Users\migue\miniconda3\envs\tia_scripting\Lib\site-packages\siemens_tia_scripting.pyi | portal_mode | Enums.PortalMode | With or without user-interface | | version | str | Version string of TIA Portal to be used in format major.minor e.g. 18.0, (Latest installed TIA Portal version by default) | Example usage ```python portal = siemens_tia_scripting.open_portal(portal_mode = siemens_tia_scripting.Enums.PortalMode.WithGraphicalUserInterface, version = "18.0") ``` """ ... def attach_portal(portal_mode: Optional[Enums.PortalMode] = None, version: Optional[str] = None) -> Portal: """ Attach to running TIA Portal instance Version-string in format major.minor e.g. \"18.0\" *Returns* → `Portal` TIA Portal instance | Parameters | Type | Description | | --- | --- | --- | | portal_mode | Enums.PortalMode | With or without user-interface | | version | str | Version string of TIA Portal to be used in format major.minor e.g. 18.0, (Latest installed TIA Portal version by default) | ```python portal = siemens_tia_scripting.attach_portal(portal_mode = Enums.PortalMode.WithGraphicalUserInterface, version = "18.0") ``` """ ... def open_attach_project(project_file_path: str, portal_mode: Optional[Enums.PortalMode] = None) -> Project: """ Attach to running TIA Portal instance with already open project Or opens the project with a new instance of fitting TIA Portal version *Returns* → `Project` TIA Project instance | Parameters | Type | Description | | --- | --- | --- | | project_file_path | str | Full path of the project file | | portal_mode | Enums.PortalMode | With or without user-interface | ```python project = siemens_tia_scripting.open_attach_project(project_file_path = "C:\\ws\\testproj\\testproj.ap17", portal_mode = siemens_tia_scripting.Enums.PortalMode.WithGraphicalUserInterface) ``` """ ... def get_installed_bundles() -> List[ProductBundle]: """ Get a list of installed TIA Portal bundles *Returns* → `List[ProductBundle]` List of installed bundles ```python product_bundles = siemens_tia_scripting.get_installed_bundles() ``` """ ... def get_installed_products() -> List[Product]: """ Get a list of installed TIA Portal products *Returns* → `List[Product]` List of installed products ```python products = siemens_tia_scripting.get_installed_products() ``` """ ... def set_umac_credentials(user_name: str, user_password: str, user_type: Enums.UmacUserMode): """ Set UMAC Credentials which will be used for protected libraries or projects | Parameters | Type | Description | | --- | --- | --- | | user_name | str | User name | | user_password | str | Password of the user | | user_type | Enums.UmacUserMode | Project or global user | ```python siemens_tia_scripting.set_umac_credentials(user_name = "admin", user_password = "Password123", user_type = Enums.UmacUserMode.Project) ``` """ ... def set_logging(path: str, console: bool): """ Set logging output path or console (stdout) output | Parameters | Type | Description | | --- | --- | --- | | path | str | Fullpath of the log file | | console | bool | (optional) True for Enable console output, False to disable the standard output to console window | ```python siemens_tia_scripting.set_logging(path = "c:\\ws\\tiascripting.log", console = False) ``` """ ... class Enums: class PortalMode: WithGraphicalUserInterface: int WithoutGraphicalUserInterface: int AnyUserInterface: int class UmacUserMode: Project: int Global: int class ExportFormats: SimaticML: int ExternalSource: int SimaticSD: int class ExportOptions: WithDefaults: int Nan: int WithReadOnly: int class ApplicationTest: def get_name() -> str: """ Get the name of the Test Suite application test *Return* → `str` Name of the application test ```python name = app_test.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the Test Suite application test Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property of the Application Test | ```python property_value = app_test.get_property(name = "Property") ``` """ ... def export(target_directory_path: str): """ Export the Test Suite application test The folder "Application tests" will be automatically created on the `target_directory_path`, if not already exists. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | ```python app_test.export(target_directory_path = "C:\\ws\\export") ``` """ ... def set_scope(plc_name: str, instance_name: Optional[str] = None, execution_mode: Optional[int] = None): """ Set the scope of the Test Suite application test | Parameters | Type | Description | | --- | --- | --- | | plc_name | str | Name of the PLC to be used | | instance_name | str | PLCSIM Instance name (only V19 and higher) | | execution_mode | integer (enum) | (only V19 and higher) [1: 'SystemManagedPLCSIMInstance', 2: 'ExternallyManagedPLCSIMInstance'] | ```python app_test.set_scope(plc_name = "PLC_1") ``` """ ... class ExternalSource: def get_name() -> str: """ Get the name of the PLC object *Returns* → `str` Name of the PLC object ```python name = plc_object.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def block_gen(): """ Generate the blocks from the external source ```python ext_source.block_gen() ``` """ ... def delete(): """ Delete the object ```python tiap_object.delete() ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class ForceTable: def get_name() -> str: """ Get the name of the PLC object *Returns* → `str` Name of the PLC object ```python name = plc_object.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: Enums.ExportOptions, export_format: Optional[Enums.ExportFormats] = None, keep_folder_structure: Optional[bool] = None ): """ Export the PLC object If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | Enums.ExportOptions | Export options | | export_format | Enums.ExportFormats | Export format, by default SimaticML | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python plc_object.export(target_directory_path = "C:\\ws\\export", export_options = Enums.ExportOptions.WithDefaults) ``` """ ... def is_consistent() -> bool: """ Check if the force table is consistent *Returns* → `bool` True if consistent ```python value = force_table.is_consistent() ``` """ ... def show_in_editor(): """ Open the PLC object in the editor ```python plc_object.show_in_editor() ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class GlobalLibrary: def get_name() -> str: """ Get the name of the global library *Returns* → `str` Name of the global library ```python name = global_lib.get_name() ``` """ ... def save(): """ Save the global library ```python global_lib.save() ``` """ ... def get_author() -> str: """ Get author of the global library *Returns* → `str` Name of the author ```python author = global_lib.get_author() ``` """ ... def get_path() -> str: """ Get the path of the global library *Returns* → `str` Full path of the library ```python path = global_lib.get_path() ``` """ ... def get_library_type_folder() -> LibraryTypeFolder: """ Get the folder containing library types & library type folders *Returns* → `LibraryTypeFolder` Library type folder ```python library_type = global_lib.get_library_type_folder() ``` """ ... def is_modified() -> bool: """ Check if the global library was modified *Returns* → `bool` State if library was modified ```python state = global_lib.is_modified() ``` """ ... def is_read_only() -> bool: """ Check if the global library is readonly *Returns* → `bool` State if global library is readonly ```python state = global_lib.is_read_only() ``` """ ... def update_library(update_mode: int, delete_mode: int, conflict_mode: int, typename: Optional[str] = None, library_name: Optional[str] = None ): """ Update target library with type(s) from source | Parameters | Type | Description | | --- | --- | --- | | type_name | str | This option should be used when a specific type has to be updated | | library_name | str | This option should be used when a specific global library has to be updated | | update_mode | integer (enum) | [1: 'ForceSetAnyUpdatedVersionAsDefault', 2: 'NoDefaultVersionChange', 3: 'SetOnlyHigherUpdatedVersionAsDefault'] | | delete_mode | integer (enum) | [0: 'AutomaticallyDelete', 1: 'DoNotDelete'] | | conflict_mode | integer (enum) | [1: 'CancelIfStructureConflicts', 2: 'RetainStructure', 3: 'UpdateStructure'] | ```python global_lib.update_library(update_mode = 1, delete_mode = 1, conflict_mode = 3) ``` """ ... def update_project(update_mode: int, delete_mode: int, conflict_mode: int): """ Update current project with type(s) from global library | Parameters | Type | Description | | --- | --- | --- | | update_mode | integer (enum) | [1: 'ForceSetAnyUpdatedVersionAsDefault', 2: 'NoDefaultVersionChange', 3: 'SetOnlyHigherUpdatedVersionAsDefault'] | | delete_mode | integer (enum) | [0: 'AutomaticallyDelete', 1: 'DoNotDelete'] | | conflict_mode | integer (enum) | [1: 'CancelIfStructureConflicts', 2: 'RetainStructure', 3: 'UpdateStructure'] | ```python global_lib.update_project(update_mode = 1, delete_mode = 1, conflict_mode = 3) ``` """ ... def archive(target_directory_path: str, archive_name: str, delete_existing_archive: bool): """ Archive the TIA Portal library | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path where archive should be placed | | archive_name | str | Name of the archive file | | delete_existing_archive | bool | Set if the output file should be deleted first | ```python global_lib.archive(target_directory_path = "C:\\ws\\newfolder", archive_name = "testglobalib" , delete_existing_archive = True) ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class GlobalLibraryInfo: def get_name() -> str: """ Get the name of the global library info *Returns* → `str` Name of the global library info ```python name = global_lib_info.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class Hmi: def get_name() -> str: """ Get the name of the HMI *Returns* → `str` Name of the HMI ```python hmi_name = hmi.get_name() ``` """ ... def open_device_editor(): """ Open the editor of the HMI-device in TIA Portal ```python hmi.open_device_editor() ``` """ ... def compile_hardware() -> bool: """ Compile the hardware of the HMI *Returns* → `bool` Result of the compile Returns true if compile has errors, otherwise returns false ```python result = hmi.compile_hardware() ``` """ ... def compile_software() -> bool: """ Compile the software of the HMI *Returns* → `bool` Result of the compile Returns true if compile has errors, otherwise returns false ```python result = hmi.compile_software() ``` """ ... def upgrade_hardware(full_upgrade: bool): """ Update hardware of the HMI If `full_upgrade` is set to True, all devices will be changed to the newest available order number (Device type) and firmware: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FK0**0**-0AB0 **V1.8**. With full upgrade: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FL0**3**-0AB0 **V3.0**. | Parameters | Type | Description | | --- | --- | --- | | full_upgrade | bool | Set if for full upgrade (latest order number and firmware version) | ```python hmi.upgrade_hardware(full_upgrade = True) ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class LibraryType: def get_name() -> str: """ Get the name of the library type *Returns* → `str` Name of the type ```python name = lib_type.get_name() ``` """ ... def get_author() -> str: """ Get the author of the library type *Returns* → `str` Author of the type ```python author = lib_type.get_author() ``` """ ... def get_guid() -> str: """ Get the guid of the library type *Returns* → `str` Guid of the type ```python guid = lib_type.get_guid() ``` """ ... def get_versions() -> List[LibraryTypeVersion]: """ Get the versions of the library type *Returns* → `List[LibraryTypeVersion]` Versions of the type ```python versions = lib_type.get_versions() ``` """ ... def find_version(version: str) -> LibraryTypeVersion: """ Find the version of the library type *Returns* → `LibraryTypeVersion` Version des Bibliothekstyp ```python typeversion = lib_type.find_version(version = "1.0.0") ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class LibraryTypeFolder: def get_name() -> str: """ Get the name of the folder *Returns* → `str` Name of the folder ```python name = lib_folder.get_name() ``` """ ... def get_folders() -> List[LibraryTypeFolder]: """ Get the library type folders *Returns* → `List[LibraryTypeFolder]` List of folders ```python folders = lib_folder.get_folders() ``` """ ... def get_types() -> List[LibraryType]: """ Get the library types of the folder *Returns* → `List[LibraryType]` List of types ```python types = lib_folder.get_types() ``` """ ... def find_library_type(library_type_name: str) -> LibraryType: """ Find the library type by name *Returns* → `LibraryType` Library type | Parameters | Type | Description | | --- | --- | --- | | library_type_name | str | Name of the library type | ```python type = lib_folder.find_library_type(library_type_name = "MyType") ``` """ ... def find_folder(folder_name: str) -> LibraryTypeFolder: """ Find the library type folder from the subfolders *Returns* → `LibraryTypeFolder` Library type folder | Parameters | Type | Description | | --- | --- | --- | | folder_name | str | Name of the subfolder | ```python folder = lib_folder.find_folder(folder_name = "MyFolder") ``` """ ... class LibraryTypeVersion: def get_author() -> str: """ Get the author of the library type version *Returns* → `str` Author ```python author = projectlib.get_author() ``` """ ... def get_guid() -> str: """ Get the GUID of the library type version *Returns* → `str` GUID ```python guid = lib_type_version.get_guid() ``` """ ... def get_version_number() -> str: """ Get the version number of the library type version *Returns* → `str` version number ```python version_number = lib_type_version.get_version_number() ``` """ ... def get_modified_date() -> str: """ Get the modification date of the library type version *Returns* → `str` Modification date ```python date = lib_type_version.get_modified_date() ``` """ ... def get_state() -> str: """ Get the state of the library type version *Returns* → `str` State of the library type version ```python state = lib_type_version.get_state() ``` """ ... def get_type_object() -> LibraryType: """ Get the type of the library type version *Returns* → `LibraryType` Library type object ```python lib_type = lib_type_version.get_type_object() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class NamedValueType: def get_name() -> str: """ Get the name of the Named value data type *Returns* → `str` Name of the NVT ```python name = nvt.get_name() ``` """ ... def get_namespace() -> str: """ Get the name of the Named value data type namespace *Returns* → `str` Name of the namespace ```python name = nvt.get_namespace() ``` """ ... def export(target_directory_path: str, keep_folder_structure: Optional[bool] = None): """ Export the Named value data type If `keep_folder_structure` is set to true, all group names are represented hierarchically with folders. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python nvt.export(target_directory_path = "C:\\ws\\export") ``` """ ... class Plc: def get_name() -> str: """ Get the name of the PLC *Returns* → `str` Name of the PLC ```python plc_name = plc.get_name() ``` """ ... def open_device_editor(): """ Open the editor of the PLC-device in TIA Portal ```python plc.open_device_editor() ``` """ ... def get_online_state() -> str: """ Get the current online state of the PLC *Returns* → `str` Online state ```python plc.get_online_state() ``` """ ... def go_offline(): """ Go offline with the PLC ```python plc.go_offline() ``` """ ... def go_online(mode: str, pci_interface: str, ip_address: str) -> str: """ Go online with the PLC *Returns* → `str` Online status | Parameters | Type | Description | | --- | --- | --- | | mode | str | Configuration mode | | pci_interface | str | PC Interface name | | ip_address | str | IP address | ```python plc.go_online(mode = "PN/IE", pci_interface = "PLCSIM", ip_address = "192.168.0.10") ``` """ ... def download(mode: str, pci_interface: str, ip_address: str) -> str: """ Download the PLC *Returns* → `str` Result of the download | Parameters | Type | Description | | --- | --- | --- | | mode | str | Configuration mode | | pci_interface | str | PC Interface name | | ip_address | str | IP address | ```python result = plc.download(mode = "PN/IE", pci_interface = "PLCSIM", ip_address = "192.168.0.10") ``` """ ... def download_to_memory_card(download_directory: str) -> str: """ Download the PLC-configuration to memory card *Returns* → `str` Result of the download | Parameters | Type | Description | | --- | --- | --- | | download_directory | str | Download directory | ```python result = plc.download_to_memory_card(download_directory = "E:\\") ``` """ ... def get_plc_tag_tables() -> List[PlcTagTable]: """ Get the list of the PLC Tag Tables *Returns* → `List[PlcTagTable]` List of the PLC Tag tables | Parameters | Type | Description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python plc_tag_tables = plc.get_plc_tag_tables(folder_path = "group1/group2") ``` """ ... def update_module_description() -> bool: """ Update the module description of the PLC *Returns* → `bool` Result state ```python result = plc.update_module_description() ``` """ ... def compile_hardware() -> bool: """ Compile the hardware of the PLC *Returns* → `bool` Result of the compile Returns true if compile has errors, otherwise returns false ```python result = plc.compile_hardware() ``` """ ... def compile_software() -> bool: """ Compile the software of the PLC *Returns* → `bool` Result of the compile Returns true if compile has errors, otherwise returns false ```python result = plc.compile_software() ``` """ ... def upgrade_hardware(full_upgrade: bool): """ Upgrade the hardware the PLC If `full_upgrade` is set to True, all devices will be changed to the newest available order number (Device type) and firmware: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FK0**0**-0AB0 **V1.8**. With full upgrade: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FL0**3**-0AB0 **V3.0**. | Parameters | Type | Description | | --- | --- | --- | | full_upgrade | bool | Set if for full upgrade (latest order number and firmware version) | ```python plc.upgrade_hardware(full_upgrade = True) ``` """ ... def compare_to_online() -> bool: """ Compare actual PLC state to the online state *Returns* → `bool` Result of the compare Returns false if folders are Identical, otherwise returns true ```python result = plc.compare_to_online() ``` """ ... def get_program_blocks() -> List[ProgramBlock]: """ Get the list of program blocks *Returns* → `List[ProgramBlock]` List of the program blocks | Parameters | Type | Description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python blocks = plc.get_program_blocks(folder_path = "group1/group2") ``` """ ... def get_system_blocks() -> List[SystemBlock]: """ Get the list of system blocks *Returns* → `List[SystemBlock]` List of the system blocks ```python blocks = plc.get_system_blocks() ``` """ ... def get_user_data_types() -> List[UserDataType]: """ Get the list of PLC data types *Returns* → `List[UserDataType]` List of the PLC data types | Parameters | Type | Description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python udts = plc.get_user_data_types(folder_path = "group1/group2") ``` """ ... def get_external_sources() -> List[ExternalSource]: """ Get the list of external source files *Returns* → `List[ExternalSource]` List of the external source files of the PLC | Parameters | Type | Description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python ext_sources = plc.get_external_sources() ``` """ ... def get_force_tables() -> List[ForceTable]: """ Get the list of force tables *Returns* → `List[ForceTable]` List of the force tables of the PLC ```python tables = plc.get_force_tables() ``` """ ... def get_watch_tables() -> List[WatchTable]: """ Get the list of watch tables *Returns* → `List[WatchTable]` List of the watch tables of the PLC | Parameters | Type | Description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python tables = plc.get_watch_tables() ``` """ ... def get_technology_objects() -> List[TechnologyObject]: """ Get the list of technology objects *Returns* → `List[TechnologyObject]` List of the technology objects of the PLC | Parameters | Type | Description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python tos = plc.get_technology_objects() ``` """ ... def get_software_units() -> List[SoftwareUnit]: """ Get the list of software units *Returns* → `List[SoftwareUnit]` List of the software units ```python software_units = plc.get_software_units() ``` """ ... def get_safety_administration() -> SafetyAdministration: """ Get Safety administration of the PLC *Returns* → `SafetyAdministration` Safety Administration of the PLC ```python sa = plc.get_safety_administration() ``` """ ... def import_blocks(import_root_directory: str): """ Import program blocks from a directory to the PLC | Parameters | Type | Description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_blocks(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\Program blocks") ``` """ ... def import_plc_tags(import_root_directory: str): """ Import tags from a directory to the PLC | Parameters | Type | Description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_plc_tags(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\PLC tags") ``` """ ... def import_data_types(import_root_directory: str): """ Import user data types from a directory to the PLC | Parameters | Type | Description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_data_types(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\PLC data types") ``` """ ... def import_technology_objects(import_root_directory: str): """ Import technology objects from a directory to the PLC | Parameters | Type | Description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_technology_objects(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\Technology objects") ``` """ ... def import_watch_tables(import_root_directory: str): """ Import watch tables from a directory to the PLC | Parameters | Type | Description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_watch_tables(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\Watch and force tables") ``` """ ... def import_software_units(import_root_directory: str): """ Import software units from a directory to the PLC | Parameters | Type | Description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_software_units(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\Software Units") ``` """ ... def safety_print(print_file: str) -> bool: """ Create a safety printout of the PLC and print it to a file If the file already exists, it is overwritten. *Returns* → `bool` Returns true on success | Parameters | Type | Description | | --- | --- | --- | | print_file | str | Full path of the printout file | ```python plc.safety_print(print_file = "C:\\ws\\safetyprint\\F_PLC_Printout.pdf") ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class PlcTag: def get_name() -> str: """ Get the name of the PLC object *Returns* → `str` Name of the PLC object ```python name = plc_object.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: Enums.ExportOptions, export_format: Optional[Enums.ExportFormats] = None, keep_folder_structure: Optional[bool] = None ): """ Export the PLC object If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | Enums.ExportOptions | Export options | | export_format | Enums.ExportFormats | Export format, by default SimaticML | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python plc_object.export(target_directory_path = "C:\\ws\\export", export_options = Enums.ExportOptions.WithDefaults) ``` """ ... def delete(): """ Delete the object ```python tiap_object.delete() ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class PlcTagTable: def get_name() -> str: """ Get the name of the PLC object *Returns* → `str` Name of the PLC object ```python name = plc_object.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: Enums.ExportOptions, export_format: Optional[Enums.ExportFormats] = None, keep_folder_structure: Optional[bool] = None ): """ Export the PLC object If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | Enums.ExportOptions | Export options | | export_format | Enums.ExportFormats | Export format, by default SimaticML | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python plc_object.export(target_directory_path = "C:\\ws\\export", export_options = Enums.ExportOptions.WithDefaults) ``` """ ... def get_plc_tags() -> List[PlcTag]: """ Get the list of PLC tags *Returns* → `List[PlcTag]` List of the PLC tags ```python plctags = table.get_plc_tags() ``` """ ... def get_user_constants() -> List[UserConstant]: """ Get the list of the user constants *Returns* → `List[UserConstant]` List of the PLC constants ```python constants = table.get_user_constants() ``` """ ... def export_cross_references(target_directory_path: str, filter: int): """ Export cross references of the PLC tag table filter → integer - [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | filter | integer (enum) | [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | ```python table.export_cross_references(target_directory_path = "C:\\ws\\exportcrossreferences", filter = 2) ``` """ ... def show_in_editor(): """ Open the PLC object in the editor ```python plc_object.show_in_editor() ``` """ ... def delete(): """ Delete the object ```python tiap_object.delete() ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class Portal: def get_process_id() -> int: """ Get the TIA Portal process ID *Returns* → `int` TIA Portal process id ```python id = portal.get_process_id() ``` """ ... def open_project(project_file_path: str, server_project_view: Optional[bool] = None ) -> Project: """ Open a TIA Portal project or local session - optional in server view *Returns* → `Project` TIA Portal project | Parameters | Type | Description | | --- | --- | --- | | project_file_path | str | Full path of the project file | | server_project_view | str | Default: false. If parameter set to true, open in server project view | ```python project = portal.open_project(project_file_path = "C:\\ws\\testproj\\testproj.ap17") ``` """ ... def open_project_with_copy(project_file_path: str, target_directory_path: str, delete_existing_project: bool) -> Project: """ Open a TIA Portal project or local session in separate folder *Returns* → `Project` TIA Portal project | Parameters | Type | Description | | --- | --- | --- | | project_file_path | str | Full path of the project file | | target_directory_path | str | Temporary path where the project should be copied before opened | | delete_existing_project | bool | Defines if the temporary project should be deleted | ```python project = portal.open_project_with_copy(project_file_path = "C:\\ws\\testproj\\testproj.ap17", target_directory_path = "C:\\ws\\temp" , delete_existing_project = True) ``` """ ... def retrieve_archive(target_directory_path: str, archive_file_path: str, delete_existing_project: bool) -> Project: """ Retrieve a TIA Portal project archive *Returns* → `Project` TIA Portal project | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Temporary path where project should be copied before opened | | archive_file_path | str | Full path of the archived project file | | delete_existing_project | bool | Defines if the temporary project should be deleted | ```python project = portal.retrieve_archive(archive_file_path = "C:\\ws\\testproj\\testproj.zap17", target_directory_path = "C:\\ws\\temp" , delete_existing_project = True) ``` """ ... def create_project(target_directory_path: str, project_name: str, delete_existing_project: bool) -> Project: """ Create a new TIA Portal project *Returns* → `Project` TIA Portal project | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Temporary path where project should be copied before opened | | project_name | str | Name of the new project | | delete_existing_project | bool | Defines if the temporary project should be deleted | ```python project = portal.create_project(target_directory_path = "C:\\ws\\temp" , project_name = "MyNewProject" delete_existing_project = True) ``` """ ... def get_project() -> Project: """ Get opened TIA Portal project of the current TIA Portal instance *Returns* → `Project` TIA Portal project ```python project = portal.get_project() ``` """ ... def get_global_library(library_name: str) -> GlobalLibrary: """ Get global library by name *Returns* → `GlobalLibrary` Global Library | Parameters | Type | Description | | --- | --- | --- | | library_name | str | Name of the global library | ```python global_lib = portal.get_global_library(library_name = "GlobalLib1") ``` """ ... def open_global_library(library_path: str) -> GlobalLibrary: """ Open global library by path *Returns* → `GlobalLibrary` Global Library | Parameters | Type | Description | | --- | --- | --- | | library_path | str | Full path of the global library | ```python global_lib = portal.open_global_library(library_path = "C:\\ws\\testlib\\testlib.al17") ``` """ ... def open_global_library_with_copy(target_directory_path: str, library_path: str, delete_existing_project: bool) -> GlobalLibrary: """ Open global library from a copy *Returns* → `GlobalLibrary` Global Library | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Temporary path where the library should be copied before opened | | library_path | str | Full path of the global library | | delete_existing_project | bool | Defines if the temporary project should be deleted | ```python global_lib = portal.open_global_library_with_copy(target_directory_path = "C:\\ws\\temp", library_path = "C:\\ws\\testlib\\testlib.al17", delete_existing_project = True) ``` """ ... def retrieve_archive_library(target_directory_path: str, archive_file_path: str, delete_existing_project: bool) -> GlobalLibrary: """ Retrieve a TIA Portal library archive *Returns* → `GlobalLibrary` Global Library | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Temporary path where library should be copied before opened | | archive_file_path | str | Full path of the archived library file | | delete_existing_project | bool | Defines if the temporary project should be deleted | ```python global_lib = portal.retrieve_archive_library(target_directory_path = "C:\\ws\\temp", archive_file_path = "C:\\ws\\testproj\\testlib.zal17", delete_existing_project = True) ``` """ ... def close_portal(): """ Close the TIA Portal instance ```python portal.close_portal() ``` """ ... def close_global_library(global_library_name: str): """ Close the global library instance | Parameters | Type | Description | | --- | --- | --- | | global_library_name | str | Name of the global library | ```python portal.close_global_library(global_library_name = "GlobalLib1") ``` """ ... def get_project_servers() -> List[ProjectServer]: """ Get a list of TIA Project-Servers found by host-filter *Returns* → `List[ProjectServer]` List of TIA Project-Servers | Parameters | Type | Description | | --- | --- | --- | | host_filter | str | Host of the TIA Project-Servers | ```python portal.get_project_servers(host_filter = "CompanyServer") ``` """ ... def get_project_server(url: str) -> ProjectServer: """ Get the TIA Project-Server found by URL *Returns* → `ProjectServer` TIA Project-Server | Parameters | Type | Description | | --- | --- | --- | | url | str | URL of the TIA Project-Server | ```python portal.get_project_server(url = "https://project.server.net:8735/") ``` """ ... def detach(): """ Detach from the TIA Portal instance ```python portal.detach() ``` """ ... class Product: def get_name() -> str: """ Get the name of the TIA Portal product *Returns* → `str` Name of the TIA Portal product ```python product_name = product.get_name() ``` """ ... def get_release() -> str: """ Get the release of the TIA Portal product *Returns* → `str` Release tag of the TIA Portal product ```python product_release = product.get_release() ``` """ ... def get_version() -> str: """ Get the version of the TIA Portal product *Returns* → `str` Version of the TIA Portal product ```python product_version = product.get_version() ``` """ ... class ProductBundle: def get_title() -> str: """ Get the title of the TIA Portal Bundle *Returns* → `str` Title of the Siemens bundle ```python bundle_title = bundle.get_title() ``` """ ... def get_release() -> str: """ Get the release of the TIA Portal Bundle *Returns* → `str` Release of the Siemens bundle ```python bundle_release = bundle.get_release() ``` """ ... def get_products() -> List[Product]: """ Get the list of products of the TIA Portal Bundle *Returns* → `List[Product]` List of Siemens products ```python bundle_products = bundle.get_products() ``` """ ... class ProgramBlock: def get_name() -> str: """ Get the name of the PLC object *Returns* → `str` Name of the PLC object ```python name = plc_object.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: Enums.ExportOptions, export_format: Optional[Enums.ExportFormats] = None, keep_folder_structure: Optional[bool] = None ): """ Export the PLC object If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | Enums.ExportOptions | Export options | | export_format | Enums.ExportFormats | Export format, by default SimaticML | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python plc_object.export(target_directory_path = "C:\\ws\\export", export_options = Enums.ExportOptions.WithDefaults) ``` """ ... def compile(): """ Compile the program block ```python programblock.compile() ``` """ ... def is_consistent() -> bool: """ Check if the program block is consistent *Returns* → `bool` True if consistent ```python value = programblock.is_consistent() ``` """ ... def export_cross_references(target_directory_path: str, filter: int): """ Export cross references of the program block filter → integer - [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | filter | integer (enum) | [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | ```python programblock.export_cross_references(target_directory_path = "C:\\ws\\exportcrossreferences", filter = 2) ``` """ ... def show_in_editor(): """ Open the PLC object in the editor ```python plc_object.show_in_editor() ``` """ ... def get_type_version_guid() -> str: """ Get the GUID of the type version *Returns* → `str` GUID ```python guid = plc_object.get_type_version_guid() ``` """ ... def get_type_guid() -> str: """ Get the GUID of the type *Returns* → `str` GUID ```python guid = plc_object.get_type_guid() ``` """ ... def delete(): """ Delete the object ```python tiap_object.delete() ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class Project: def get_portal() -> Portal: """ Get the TIA Portal instance from the current project ```python portal = project.get_portal() ``` """ ... def save(): """ Save the TIA Portal project ```python project.save() ``` """ ... def close(): """ Close the TIA Portal project ```python project.close() ``` """ ... def set_simulation_support(value: bool): """ Set the simulation support for the TIA Portal project | Parameters | Type | Description | | --- | --- | --- | | value | bool | Set the value of the simulation support | ```python project.set_simulation_support(value = True) ``` """ ... def archive(target_directory_path: str, archive_name: str, delete_existing_archive: bool) -> str: """ Archive the TIA Portal project *Returns* → `str` Full path of the new archive | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path where archive should be placed | | archive_name | str | name of the archive file | | delete_existing_archive | bool | Set if the output file should be deleted first | ```python archive_fullpath = project.archive(target_directory_path = "C:\\ws\\newfolder", archive_name = "testproj" , delete_existing_archive = True) ``` """ ... def save_as(target_directory_path: str, project_name: str) -> str: """ Save the TIA Portal project under another path and name *Returns* → `str` Full path of the saved project | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path where project should be saved | | project_name | str | Name of the project name | ```python project_file_path = project.save_as(target_directory_path = "C:\\ws\\newfolder", project_name = "testproj") ``` """ ... def export_cax_data(export_file_path: str, log_file_path: str) -> bool: """ Export the CAx data of the TIA Portal project *Returns* → `bool` Result state of the export | Parameters | Type | Description | | --- | --- | --- | | export_file_path | str | Full path of the export file | | log_file_path | str | Full path of the log file | ```python result = project.export_cax_data(export_file_path = "C:\\ws\\exportfolder\\exportCAX.aml", log_file_path = "C:\\ws\\exportfolder\\exportCAX.log") ``` """ ... def import_cax_data(import_file_path: str, log_file_path: str) -> bool: """ Import CAx data to the TIA Portal project *Returns* → `bool` Result state of the import | Parameters | Type | Description | | --- | --- | --- | | import_file_path | str | Fullpath of the import file | | log_file_path | str | Fullpath of the log file | ```python result = project.import_cax_data(import_file_path = "C:\\ws\\importfolder\\importCAX.aml", log_file_path = "C:\\ws\\importfolder\\importCAX.log") ``` """ ... def open_topology_editor(): """ Open the topology editor in TIA Portal for the TIA Portal project ```python project.open_topology_editor() ``` """ ... def open_network_editor(): """ Open the network editor in TIA Portal for the TIA Portal project ```python project.open_network_editor() ``` """ ... def get_plcs() -> List[Plc]: """ Get a list of PLCs in the TIA Portal project *Returns* → `List[Plc]` All PLC's as list ```python plcs = project.get_plcs() for plc in plcs: ... ``` """ ... def get_hmis() -> List[Hmi]: """ Get a list of HMIs in the TIA Portal project *Returns* → `List[Hmi]` All HMI's as list ```python hmis = project.get_hmis() for hmi in hmis: ... ``` """ ... def get_application_tests() -> List[ApplicationTest]: """ Get a list of Test Suite application tests in the TIA Portal project Needs Test Suite installed and licensed. *Returns* → `List[ApplicationTest]` All Application tests as list ```python tests = project.get_application_tests() ``` """ ... def get_system_tests() -> List[SystemTest]: """ Get a list of Test Suite system tests in the TIA Portal project Needs Test Suite installed and licensed. *Returns* → `List[SystemTest]` All System tests as list ```python tests = project.get_system_tests() ``` """ ... def get_rule_sets() -> List[RuleSet]: """ Get a list of Test Suite Styleguide rule sets in the TIA Portal project Needs Test Suite installed and licensed. *Returns* → `List[RuleSet]` All Rule sets as list ```python rule_sets = project.get_rule_sets() ``` """ ... def get_project_library() -> ProjectLibrary: """ Get the project library *Returns* → `ProjectLibrary` Project library ```python project_lib = project.get_project_library() ``` """ ... def web_block_generate(): """ Generate Web block DBs according the user define pages Web server must activated. ```python project.web_block_generate() ``` """ ... def upgrade_hardware(full_upgrade: bool): """ Upgrade the devices to the latest order number and firmware version If `full_upgrade` is set to True, all devices will be changed to the newest available order number (Device type) and firmware: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FK0**0**-0AB0 **V1.8**. With full upgrade: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FL0**3**-0AB0 **V3.0**. | Parameters | Type | Description | | --- | --- | --- | | full_upgrade | bool | Set if for full upgrade (latest order number and firmware version) | ```python project.upgrade_hardware(full_upgrade = True) ``` """ ... def sivarc_generate(): """ Start SiVArc-generation SiVArc must be installed and licensed. ```python project.sivarc_generate() ``` """ ... def update_module_description(): """ Update the module description of all devices in the project ```python project.update_module_description() ``` """ ... def set_virtual_plc_support(value: bool): """ Set virtual PLC support in the project Available only in V19 or higher | Parameters | Type | Description | | --- | --- | --- | | value | bool | Set the value of the virtual support | ```python project.set_virtual_plc_support(value = "True") ``` """ ... def import_umac_config(import_file_path: str) -> int: """ Import UMAC and UMC Configuration to the TIA Portal project | Parameters | Type | Description | | --- | --- | --- | | import_file_path | str | Full path of the import file | | secret | str | Secret for the encryption (optional if passwords encrypted) | | secret_env_name | str | Name of the environment variable where Secret is stored (optional if passwords encrypted) | ```python project.import_umac_config(import_file_path = "C:\\ws\\importfolder\\importUMAC.json", secret_env_name = "MYSECRETENV") ``` """ ... def export_umac_config(export_file_path: str): """ Export UMAC and UMC configuration from the TIA Portal project If export file already exists, it will be overwritten | Parameters | Type | Description | | --- | --- | --- | | export_file_path | str | Full path of the export file | ```python project.export_umac_config(export_file_path = "C:\\ws\\exportfolder\\exportUMAC.json") ``` """ ... def encrypt_umac_config(umac_file_path: str, secret: str, secret_env_name: str) -> str: """ Encrypt UMAC and UMC configuration from the TIA Portal project with provided secret | Parameters | Type | Description | | --- | --- | --- | | umac_file_path | str | Full path of the umac config file | | secret | str | Secret for the encryption | | secret_env_name | str | Name of the environment variable where secret value is stored | ```python project.encrypt_umac_config(umac_file_path = "C:\\ws\\exportfolder\\exportUMAC.json", secret = "mySecret") ``` """ ... def import_password_policy(import_file_path: str): """ Import Password Policies to the TIA Portal project | Parameters | Type | Description | | --- | --- | --- | | import_file_path | str | Full path of the import file | ```python project.import_password_policy(import_file_path = "C:\\ws\\importfolder\\PWPolicy.json") ``` """ ... def export_password_policy(export_file_path: str): """ Export Password Policies from the TIA Portal project If export file already exists, it will be overwritten | Parameters | Type | Description | | --- | --- | --- | | export_file_path | str | Full path of the import file | ```python project.export_password_policy(export_file_path = "C:\\ws\\exportfolder\\exportPWPolicy.json") ``` """ ... def delete(): """ Delete the TIA Portal project ```python project.delete() ``` """ ... def start_transaction(undo_text: str, dialog_text: str): """ Start exclusive access and new transaction | Parameters | Type | Description | | --- | --- | --- | | undo_text | str | Text on the Undo button | | dialog_text | str | Text on the dialog during the transaction | ```python project.start_transaction(undo_text = "MyUndoDescription", dialog_text = "MyExclusiveAccess") ``` """ ... def end_transaction(rollback: Optional[bool] = None): """ End transaction and exclusive access | Parameters | Type | Description | | --- | --- | --- | | rollback | bool | Set if changes during transaction should be rolled back (default: false) | ```python project.end_transaction() ``` """ ... def update_transaction(dialog_text: str): """ Update transaction of the running exclusive access | Parameters | Type | Description | | --- | --- | --- | | dialog_text | str | Text on the dialog during the transaction | ```python project.update_transaction(dialog_text = "MyNewExclusiveAccess") ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class ProjectLibrary: def get_type_folder() -> LibraryTypeFolder: """ Get the folder containing library types & library type folders *Returns* → `LibraryTypeFolder` Library type folder ```python typefolder = projectlib.get_type_folder() ``` """ ... class ProjectServer: def get_host() -> str: """ Get the host of the TIA Project-Server *Returns* → `str` Host ```python host = server_project.get_host() ``` """ ... def get_port() -> int: """ Get the port of the TIA Project-Server *Returns* → `int` Port number ```python port = server_project.get_port() ``` """ ... def get_server_name() -> str: """ Get the server name of the TIA Project-Server *Returns* → `str` Server name ```python name = server_project.get_server_name() ``` """ ... def print_info(): """ Show information of the TIA Project-Server ```python server_project.print_info() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class RuleSet: def get_name() -> str: """ Get the name of the Test Suite style guide rule set *Return* → `str` Name of the rule set ```python name = rule.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the Test Suite style guide rule set Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property of the rule set | ```python property_value = rule.get_property(name = "Property") ``` """ ... def export(target_directory_path: str): """ Export the Test Suite style guide rule set The folder "Style guide" will be automatically created on the `target_directory_path`, if not already exists. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | ```python rule.export(target_directory_path = "C:\\ws\\export") ``` """ ... class SafetyAdministration: def is_logged_on() -> bool: """ Check if user is logged in to Safety administration offline program *Returns* → `bool` Status of login ```python status = safety_admin.is_logged_on() ``` """ ... def is_password_set() -> bool: """ Check if the safety administration has a password set for the safety offline program *Returns* → `bool` Status if password is set ```python status = safety_admin.is_password_set() ``` """ ... def get_offline_serial_number() -> str: """ Get the offline serial number *Returns* → `str` Offline serial number ```python value = safety_admin.get_offline_serial_number() ``` """ ... def export_config(target_directory_path: str): """ Export the safety administration configuration The folder "SafetyAdministration" will be automaticcally created on the `target_directory_path`, if not already exists. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | ```python safety_admin.export_config(target_directory_path = "C:\\ws\\export") ``` """ ... def import_config(import_root_directory: str): """ Import the safety administration configuration | Parameters | Type | Description | | --- | --- | --- | | import_root_directory | str | Folder path for the import | ```python safety_admin.import_config(import_root_directory = "C:\\ws\\exported\\SafetyAdministration") ``` """ ... class SoftwareUnit: def get_name() -> str: """ Get the name of the software unit *Return* → `str` Name of the software unit * ```python name = software_unit.get_name() ``` """ ... def compile(): """ Compile the software unit ```python software_unit.compile() ``` """ ... def export_configuration(target_directory_path: str): """ Export the software unit configuration | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | ```python software_unit.export_configuration(target_directory_path = "C:\\ws\\export") ``` """ ... def get_plc_tag_tables() -> List[PlcTagTable]: """ Get the list of the PLC tag tables *Returns* → `List[PlcTagTable]` List of the PLC tag tables of the software unit ```python pcl_tag_tables = software_unit.get_plc_tag_tables() ``` """ ... def get_program_blocks() -> List[ProgramBlock]: """ Get the list of the program blocks *Returns* → `List[ProgramBlock]` List of the program blocks of the software unit ```python blocks = software_unit.get_program_blocks() ``` """ ... def get_system_blocks() -> List[SystemBlock]: """ Get the list of the system blocks *Returns* → `List[SystemBlock]` List of the system blocks of the software unit ```python blocks = software_unit.get_system_blocks() ``` """ ... def get_user_data_types() -> List[UserDataType]: """ Get the list of the user data types *Returns* → `List[UserDataType]` List of the user data types of the software unit ```python udts = software_unit.get_user_data_types() ``` """ ... def get_external_sources() -> List[ExternalSource]: """ Get the list of the external sources *Returns* → `List[ExternalSource]` List of the external sources of the software unit ```python ext_sources = software_unit.get_external_sources() ``` """ ... def get_named_value_types() -> List[NamedValueType]: """ Get the list of the named value types *Returns* → `List[NamedValueType]` List of the named value types of the software unit ```python nvts = software_unit.get_named_value_types() ``` """ ... def export_cross_references(target_directory_path: str, filter: int): """ Export cross references of the software unit object filter → integer - [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | filter | integer (enum) | [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | ```python software_unit.export_cross_references(target_directory_path = "C:\\ws\\exportcrossreferences", filter = 2) ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class SystemBlock: def get_name() -> str: """ Get the name of the PLC object *Returns* → `str` Name of the PLC object ```python name = plc_object.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: Enums.ExportOptions, export_format: Optional[Enums.ExportFormats] = None, keep_folder_structure: Optional[bool] = None ): """ Export the PLC object If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | Enums.ExportOptions | Export options | | export_format | Enums.ExportFormats | Export format, by default SimaticML | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python plc_object.export(target_directory_path = "C:\\ws\\export", export_options = Enums.ExportOptions.WithDefaults) ``` """ ... def compile(): """ Compile the system block ```python systemblock.compile() ``` """ ... def is_consistent() -> bool: """ Check if the system block is consistent *Returns* → `bool` True if consistent ```python value = systemblock.is_consistent() ``` """ ... def export_cross_references(target_directory_path: str, filter: int): """ Export cross references of the system block filter → integer - [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | filter | integer (enum) | [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | ```python systemblock.export_cross_references(target_directory_path = "C:\\ws\\exportcrossreferences", filter = 2) ``` """ ... def show_in_editor(): """ Open the PLC object in the editor ```python plc_object.show_in_editor() ``` """ ... def delete(): """ Delete the object ```python tiap_object.delete() ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class SystemTest: def get_name() -> str: """ Get the name of the Test Suite system test *Returns* → `str` Name of the system test ```python name = sys_test.get_name() ``` """ ... def export(target_directory_path: str): """ Export the Test Suite system test The folder "System tests" will be automatically created on the `target_directory_path`, if not already exists. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | ```python sys_test.export(target_directory_path = "C:\\ws\\export") ``` """ ... def set_scope(opcua_server_address: str, opcua_server_interface_type: int, opcua_server_interface_folder_path: Optional[str] = None): """ Set the scope of the Test Suite system test | Parameters | Type | Description | | --- | --- | --- | | opcua_server_address | str | OPC UA server adress e.g. opc.tcp://server.port/path | | opcua_server_interface_type | integer (enum) | [1: 'UserDefined', 2: 'StandardSIMATIC'] | | opcua_server_interface_folder_path | str | Folder path to interface files | ```python sys_test.set_scope(opcua_server_address = "opc.tcp://server.port/path", opcua_server_interface_type = 1 ) ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class TechnologyObject: def get_name() -> str: """ Get the name of the PLC object *Returns* → `str` Name of the PLC object ```python name = plc_object.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: Enums.ExportOptions, export_format: Optional[Enums.ExportFormats] = None, keep_folder_structure: Optional[bool] = None ): """ Export the PLC object If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | Enums.ExportOptions | Export options | | export_format | Enums.ExportFormats | Export format, by default SimaticML | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python plc_object.export(target_directory_path = "C:\\ws\\export", export_options = Enums.ExportOptions.WithDefaults) ``` """ ... def compile(): """ Compile the technology object ```python to.compile() ``` """ ... def is_consistent() -> bool: """ Check if the technology object is consistent *Returns* → `bool` True if consistent ```python value = to.is_consistent() ``` """ ... def delete(): """ Delete the object ```python tiap_object.delete() ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class UserConstant: def get_name() -> str: """ Get the name of the PLC object *Returns* → `str` Name of the PLC object ```python name = plc_object.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: Enums.ExportOptions, export_format: Optional[Enums.ExportFormats] = None, keep_folder_structure: Optional[bool] = None ): """ Export the PLC object If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | Enums.ExportOptions | Export options | | export_format | Enums.ExportFormats | Export format, by default SimaticML | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python plc_object.export(target_directory_path = "C:\\ws\\export", export_options = Enums.ExportOptions.WithDefaults) ``` """ ... def delete(): """ Delete the object ```python tiap_object.delete() ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class UserDataType: def get_name() -> str: """ Get the name of the PLC object *Returns* → `str` Name of the PLC object ```python name = plc_object.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: Enums.ExportOptions, export_format: Optional[Enums.ExportFormats] = None, keep_folder_structure: Optional[bool] = None ): """ Export the PLC object If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | Enums.ExportOptions | Export options | | export_format | Enums.ExportFormats | Export format, by default SimaticML | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python plc_object.export(target_directory_path = "C:\\ws\\export", export_options = Enums.ExportOptions.WithDefaults) ``` """ ... def compile(): """ Compile the PLC data type ```python udt.compile() ``` """ ... def is_consistent() -> bool: """ Check if the PLC data type is consistent *Returns* → `bool` True if consistent ```python value = udt.is_consistent() ``` """ ... def export_cross_references(target_directory_path: str, filter: int): """ Export the cross references of the PLC data type filter → integer - [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | filter | integer (enum) | [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | ```python udt.export_cross_references(target_directory_path = "C:\\ws\\exportcrossreferences", filter = 2) ``` """ ... def get_type_version_guid() -> str: """ Get the GUID of the type version *Returns* → `str` GUID ```python guid = plc_object.get_type_version_guid() ``` """ ... def get_type_guid() -> str: """ Get the GUID of the type *Returns* → `str` GUID ```python guid = plc_object.get_type_guid() ``` """ ... def delete(): """ Delete the object ```python tiap_object.delete() ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... class WatchTable: def get_name() -> str: """ Get the name of the PLC object *Returns* → `str` Name of the PLC object ```python name = plc_object.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the object Properties which are not string will be converted to string if possible. *Returns* → `str` Value of the property as string | Parameters | Type | Description | | --- | --- | --- | | name | str | Property name of the object | ```python property_value = tiap_object.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: Enums.ExportOptions, export_format: Optional[Enums.ExportFormats] = None, keep_folder_structure: Optional[bool] = None ): """ Export the PLC object If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | Parameters | Type | Description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | Enums.ExportOptions | Export options | | export_format | Enums.ExportFormats | Export format, by default SimaticML | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python plc_object.export(target_directory_path = "C:\\ws\\export", export_options = Enums.ExportOptions.WithDefaults) ``` """ ... def is_consistent() -> bool: """ Check if the watch table is consistent *Returns* → `bool` True if consistent ```python value = watch_table.is_consistent() ``` """ ... def show_in_editor(): """ Open the PLC object in the editor ```python plc_object.show_in_editor() ``` """ ... def delete(): """ Delete the object ```python tiap_object.delete() ``` """ ... def get_properties() -> List[str]: """ Get all properties of the object *Returns* → `List[str]` Names of the attributes ```python properties = tiap_object.get_properties() ``` """ ... from typing import List # this file is auto - generated class ApplicationTest: def get_name() -> str: """ Get the name of the application test *Return* -> 'str' Name of the application test ```python name = app_test.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the application test Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the Application Test | ```python property_value = app_test.get_property(name = "Name") ``` """ ... def export(target_directory_path: str): """ Export the application test The folder "Application tests" will be automaticcally created on the `target_directory_path`, if not already exists. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | ```python app_test.export(target_directory_path = "C:\\ws\\export") ``` """ ... def set_scope(plc_name: str, instance_name: str, execution_mode: int): """ Set the scope of the application test | parameters | type | description | | --- | --- | --- | | plc_name | str | Target PLC Name | | instance_name | str | PLCSIM Instance name (only V19 and higher) | | execution_mode | integer (enum) | (only V19 and higher) [1: 'SystemManagedPLCSIMInstance', 2: 'ExternallyManagedPLCSIMInstance'] | ```python app_test.set_scope(plc_name = "PLC_1") ``` """ ... class ExternalSource: def get_name() -> str: """ Get the name of the external source *Returns* -> `str` Name of the external source ```python name = ext_source.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the external source Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the external source | ```python property_value = ext_source.get_property(name = "Name") ``` """ ... def block_gen(): """ Generate the blocks from the external source ```python ext_source.block_gen() ``` """ ... class ForceTable: def get_name() -> str: """ Get the name of the force table *Returns* -> `str` Name of the force table ```python name = force_table.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the force table Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the Force table | ```python property_value = force_table.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: int): """ Exports the force table exportoptions -> integer - [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] The folder "Watch and force tables" will be automatically created on the `target_directory_path`, if not already exists. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | integer (enum) | [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] | ```python force_table.export(target_directory_path = "C:\\ws\\export", export_options = 1) ``` """ ... def is_consistent() -> bool: """ Check if the force table is consistent *Returns* -> `bool` True if consistent ```python value = force_table.is_consistent() ``` """ ... def open_portal( show_gui: bool, version: str) -> Portal: """ Open a new TIA Portal instance show_gui can be True or False version string in format major.minor e.g. \"18.0\" *Returns* -> `Portal` TIA Portal instance | parameters | type | description | | --- | --- | --- | | show gui | bool | Set if user-interface should be displayed (False by default) | | version | str | Version string of TIA Portal to be used in format major.minor e.g. 18.0, (Latest installed TIA Portal version by default) | Example usage ```python portal = siemens_tiaportal_scripting.open_tiaportal(show_gui = True, version = "18.0") ``` """ ... def attach_portal( show_gui: bool, version: str) -> Portal: """ Attach to running TIA Portal instance showgui can be True or False version string in format major.minor e.g. \"18.0\" *Returns* -> `Portal` TIA Portal instance | parameters | type | description | | --- | --- | --- | | show gui | bool | Set if user-interface should be displayed (False by default) | | version | str | Version string of TIA Portal to be used in format major.minor e.g. 18.0, (Latest installed TIA Portal version by default) | ```python portal = siemens_tiaportal_scripting.attach_to_portal(show_gui = True, version = "18.0") ``` """ ... def open_attach_project(project_file_path: str, show_gui: bool) -> Project: """ Attach to running TIA Portal instance with already open project or opens project with a new instance of latest available TIA Portal version *Returns* -> `Project` TIA Project instance | parameters | type | description | | --- | --- | --- | | project_file_path | str | Full path of the project file | | show_gui | bool | Set if user-interface should be displayed (False by default) | ```python project = siemens_tiaportal_scripting.open_attach_project(project_file_path = "C:\\ws\\testproj\\testproj.ap17") ``` """ ... def get_installed_bundles() -> List[ProductBundle]: """ Return a list of installed TIA Portal bundles *Returns* -> `List[ProductBundle]` List list of installed bundles ```python prodocuts_bundles = siemens_tiaportal_scripting.get_installed_bundles() ``` """ ... def get_installed_products() -> List[Product]: """ Return a list of installed TIA Portal products *Returns* -> `List[Product]` List list of installed products ```python prodocuts = siemens_tiaportal_scripting.get_installed_products() ``` """ ... def set_umac_credentials(user_name: str, user_password: str, user_type: int): """ Set UMAC Credentials which will be used for any protected library or project | parameters | type | description | | --- | --- | --- | | user_name | str | User name | | user_password | str | Password of the user | | user_type | integer (enum) | [1: 'Project', 2: 'Global'] | ```python siemens_tiaportal_scripting.set_umac_credentials(user_name = "admin", user_password = "Password123", user_type = 1) ``` """ ... class GlobalLibrary: def get_name() -> str: """ Get the name of the global library *Returns* -> `str` Name of the global library ```python name = global_lib.get_name() ``` """ ... def save(): """ Save the global library ```python global_lib.save() ``` """ ... def get_author() -> str: """ Get author of the global library *Returns* -> `str` Name of the author ```python author = global_lib.get_author() ``` """ ... def get_path() -> str: """ Get the path of the global library *Returns* -> `str` Full path of the library ```python path = global_lib.get_path() ``` """ ... def get_modified_state() -> bool: """ Check if the global library was modified *Returns* -> `bool` State if library was modified ```python state = global_lib.get_modified_state() ``` """ ... def get_read_only_state() -> bool: """ Check if the global library is readonly *Returns* -> `bool` State if global library is readonly ```python state = global_lib.get_read_only_state() ``` """ ... def get_library_type_folder() -> LibraryTypeFolder: """ Get the folder containing library types & library type folders *Returns* -> `LibraryTypeFolder` Library type folder ```python library_type = global_lib.get_library_type_folder() ``` """ ... def update_library( typename: str, library_name: str, update_mode: int, delete_mode: int, conflict_mode: int): """ Update target library with type(s) from source type_name -> string - This option should be used when a specific type has to be updated. library_name -> string - This option should be used when a specific global library has to be updated. update_mode -> integer - [1: 'ForceSetAnyUpdatedVersionAsDefault', 2: 'NoDefaultVersionChange', 3: 'SetOnlyHigherUpdatedVersionAsDefault'] delete_mode -> integer - [0: 'AutomaticallyDelete', 1: 'DoNotDelete'] conflict_mode -> integer - [1: 'CancelIfStructureConflicts', 2: 'RetainStructure', 3: 'UpdateStructure'] | parameters | type | description | | --- | --- | --- | | type_name | str | This option should be used when a specific type has to be updated | | library_name | str | This option should be used when a specific global library has to be updated | | update_mode | integer (enum) | [1: 'ForceSetAnyUpdatedVersionAsDefault', 2: 'NoDefaultVersionChange', 3: 'SetOnlyHigherUpdatedVersionAsDefault'] | | delete_mode | integer (enum) | [0: 'AutomaticallyDelete', 1: 'DoNotDelete'] | | conflict_mode | integer (enum) | [1: 'CancelIfStructureConflicts', 2: 'RetainStructure', 3: 'UpdateStructure'] | ```python global_lib.update_library(update_mode = 1, delete_mode = 1, conflict_mode = 3) ``` """ ... def update_project(updatemode: int, deletemode: int, conflictmode: int): """ Update current project with type(s) from global library update_mode -> integer - [1: 'ForceSetAnyUpdatedVersionAsDefault', 2: 'NoDefaultVersionChange', 3: 'SetOnlyHigherUpdatedVersionAsDefault'] delete_mode -> integer - [0: 'AutomaticallyDelete', 1: 'DoNotDelete'] conflict_mode -> integer - [1: 'CancelIfStructureConflicts', 2: 'RetainStructure', 3: 'UpdateStructure'] | parameters | type | description | | --- | --- | --- | | type_name | str | This option should be used when a specific type has to be updated | | library_name | str | This option should be used when a specific global library has to be updated | | update_mode | integer (enum) | [1: 'ForceSetAnyUpdatedVersionAsDefault', 2: 'NoDefaultVersionChange', 3: 'SetOnlyHigherUpdatedVersionAsDefault'] | | delete_mode | integer (enum) | [0: 'AutomaticallyDelete', 1: 'DoNotDelete'] | | conflict_mode | integer (enum) | [1: 'CancelIfStructureConflicts', 2: 'RetainStructure', 3: 'UpdateStructure'] | ```python global_lib.update_project(update_mode = 1, delete_mode = 1, conflict_mode = 3) ``` """ ... def compile_project( log_level: str) -> List[str]: """ Compile the TIA Portal project and return the compiler results *Returns* -> `List[str]` Compiler results | parameters | type | description | | --- | --- | --- | | log_level | str | This option should be used when a specific type has to be updated | ```python global_lib.compile_project( log_level = "Error") ``` """ ... def archive(target_directory_path: str, archive_name: str, delete_existing_archive: bool): """ Archive the TIA Portal library | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path where archive should be placed | | archive_name | str | Name of the archive file | | delete_existing_archive | bool | Set if the output file should be deleted first | ```python global_lib.archive(target_directory_path = "C:\\ws\\newfolder", archive_name = "testglobalib" , delete_existing_archive = True) ``` """ ... class GlobalLibraryInfo: def get_name() -> str: """ Get the name of the global library info *Returns* -> `str` Name of the global library info ```python name = global_lib_info.get_name() ``` """ ... class Hmi: def get_name() -> str: """ Get the name of the HMI *Returns* -> `str` Name of the HMI ```python hmi_name = hmi.get_name() ``` """ ... def open_device_editor(): """ Open the editor of the HMI-device in TIA Portal ```python hmi.open_device_editor() ``` """ ... def compile_hardware() -> bool: """ Compile the hardware of the HMI *Returns* -> `bool` Result of the compile returns true if compile has errors, otherwise returns false ```python result = hmi.compile_hardware() ``` """ ... def compile_software() -> bool: """ Compile the software of the HMI *Returns* -> `bool` Result of the compare returns true if compile has errors, otherwise returns false ```python result = hmi.compile_software() ``` """ ... def upgrade_hardware(full_upgrade: bool): """ Update hardware of the HMI If `full_upgrade` is set to True, all devices will be changed to the newest available order number (Device type) and firmware: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FK0**0**-0AB0 **V1.8**. With full upgrade: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FL0**3**-0AB0 **V3.0**. | parameters | type | description | | --- | --- | --- | | full_upgrade | bool | Set if for full upgrade (latest order number and firmware version) | ```python hmi.upgrade_hardware(full_upgrade = True) ``` """ ... class LibraryType: def get_name() -> str: """ Get the name of the library type *Returns* -> `str` Name of the type ```python name = lib_type.get_name() ``` """ ... class LibraryTypeFolder: def get_name() -> str: """ Get the name of the folder *Returns* -> `str` Name of the folder ```python name = lib_folder.get_name() ``` """ ... class LibraryTypeVersion: def get_author() -> str: """ Get the author of the library type version *Returns* -> `str` Author ```python author = projectlib.get_author() ``` """ ... def get_guid() -> str: """ Get GUID of the library type version *Returns* -> `str` GUID ```python guid = lib_type_version.get_guid() ``` """ ... def get_version_number() -> str: """ Get version number of the library type version *Returns* -> `str` version number ```python version_number = lib_type_version.get_version_number() ``` """ ... def get_modified_date() -> str: """ Get the modification date of the library type version *Returns* -> `str` Modified date ```python date = lib_type_version.get_modified_date() ``` """ ... def get_state() -> str: """ Get the state of the library type version *Returns* -> `str` State of the library type version ```python state = lib_type_version.get_state() ``` """ ... def get_type_object() -> LibraryType: """ Get the type of the library type version *Returns* -> `LibraryType` Library type object ```python lib_type = lib_type_version.get_type_object() ``` """ ... class NamedValueType: def get_name() -> str: """ Get the name of the named value type *Returns* -> 'str' Name of the named value type ```python name = nvt.get_name() ``` """ ... def get_namespace() -> str: """ Get the name of the named value type namespace *Returns* -> 'str' Name of the namespace ```python name = nvt.get_namespace() ``` """ ... def export(target_directory_path: str, keep_folder_structure: bool): """ Export the named value type type If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python nvt.export(target_directory_path = "C:\\ws\\export") ``` """ ... class Plc: def get_name() -> str: """ Get the name of the PLC *Returns* -> `str` Name of the PLC ```python plc_name = plc.get_name() ``` """ ... def open_device_editor(): """ Open the editor of the PLC-device in TIA Portal ```python plc.open_device_editor() ``` """ ... def get_online_status() -> str: """ Get the current online status of the PLC *Returns* -> `str` Online status ```python plc.get_online_status() ``` """ ... def go_offline(): """ Go offline with the PLC ```python plc.go_offline() ``` """ ... def go_online(mode: str, pci_interface: str, ip_address: str) -> str: """ Go online with the PLC *Returns* -> `str` Online status | parameters | type | description | | --- | --- | --- | | mode | str | Configuration mode | | pci_interface | str | PC Interface name | | ip_address | str | IP adress | ```python plc.go_online(mode = "PN/IE", pci_interface = "PLCSIM", ip_address = "192.168.0.10") ``` """ ... def download(mode: str, pci_interface: str, ip_address: str) -> str: """ Download the PLC *Returns* -> `str` Result of the download | parameters | type | description | | --- | --- | --- | | mode | str | Configuration mode | | pci_interface | str | PC Interface name | | ip_address | str | IP adress | ```python result = plc.download(mode = "PN/IE", pci_interface = "PLCSIM", ip_address = "192.168.0.10") ``` """ ... def download_to_memory_card(download_directory: str) -> str: """ Download the PLC to memory card *Returns* -> `str` Result of the download | parameters | type | description | | --- | --- | --- | | download_directory | str | Download directory | ```python result = plc.download_to_memory_card(download_directory = "E:\\") ``` """ ... def get_plc_tag_tables( folder_path: str) -> List[PlcTagTable]: """ Get the list of the PLC Tag Tables *Returns* -> `List[PlcTagTable]` List of the PLC Tag tables | parameters | type | description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python pcl_tag_tables = plc.get_plc_tag_tables(folder_path = "group1/group2") ``` """ ... def update_module_description() -> bool: """ Update the module description of the PLC *Returns* -> `bool` Result state ```python result = plc.update_module_description() ``` """ ... def compile_hardware() -> bool: """ Compile the hardware of the PLC *Returns* -> `bool` Result of the compile returns true if compile has errors, otherwise returns false ```python result = plc.compile_hardware() ``` """ ... def compile_software() -> bool: """ Compile the software of the PLC *Returns* -> `bool` Result of the compile returns true if compile has errors, otherwise returns false ```python result = plc.compile_software() ``` """ ... def compare_to_online() -> bool: """ Compare actual PLC state to the online state *Returns* -> `bool` Result of the compare returns false if folders are Identical, otherwise returns true ```python result = plc.compare_to_online() ``` """ ... def upgrade_hardware(full_upgrade: bool): """ Upgrade the hardware the PLC If `full_upgrade` is set to True, all devices will be changed to the newest available order number (Device type) and firmware: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FK0**0**-0AB0 **V1.8**. With full upgrade: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FL0**3**-0AB0 **V3.0**. | parameters | type | description | | --- | --- | --- | | full_upgrade | bool | Set if for full upgrade (latest order number and firmware version) | ```python plc.upgrade_hardware(full_upgrade = True) ``` """ ... def get_program_blocks( folder_path: str) -> List[ProgramBlock]: """ Get the list of program blocks *Returns* -> `List[ProgramBlock]` List of the program blocks | parameters | type | description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python blocks = plc.get_program_blocks(folder_path = "group1/group2") ``` """ ... def get_system_blocks() -> List[SystemBlock]: """ Get the list of system blocks *Returns* -> `List[SystemBlock]` List of the system blocks ```python blocks = plc.get_system_blocks() ``` """ ... def get_user_data_types( folder_path: str) -> List[UserDataType]: """ Get the list of user data types *Returns* -> `List[UserDataType]` List of the user data types | parameters | type | description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python udts = plc.get_user_data_types(folder_path = "group1/group2") ``` """ ... def get_external_sources( folder_path: str) -> List[ExternalSource]: """ Get the list of external source files *Returns* -> `List[ExternalSource]` List of the external sources of the plc | parameters | type | description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python ext_sources = plc.get_external_sources() ``` """ ... def get_force_tables() -> List[ForceTable]: """ Get the list of force tables *Returns* -> `List[ForceTable]` List of the force tables of the plc ```python tables = plc.get_force_tables() ``` """ ... def get_watch_tables( folder_path: str) -> List[WatchTable]: """ Get the list of watch tables *Returns* -> `List[WatchTable]` List of the watch tables of the plc | parameters | type | description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python tables = plc.get_watch_tables() ``` """ ... def get_technology_objects( folder_path: str) -> List[TechnologyObject]: """ Get the list of technology objects *Returns* -> `List[TechnologyObject]` List of the technology objects of the plc | parameters | type | description | | --- | --- | --- | | folder_path | str | The group path of the item | ```python tos = plc.get_technology_objects() ``` """ ... def get_software_units() -> List[SoftwareUnit]: """ Get the list of software units *Returns* -> `List[SoftwareUnit]` List of the software units ```python softwareunits = plc.get_software_units() ``` """ ... def get_safety_administration() -> SafetyAdministration: """ Get safety administration of the PLC *Returns* -> `SafetyAdministration` Safety Administration of the PLC ```python sa = plc.get_safety_administration() ``` """ ... def import_blocks(import_root_directory: str): """ Import program blocks from the directory to the PLC | parameters | type | description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_blocks(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\Program blocks") ``` """ ... def import_plc_tags(import_root_directory: str): """ Import tags from the directory to the PLC | parameters | type | description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_plc_tags(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\PLC tags") ``` """ ... def import_data_types(import_root_directory: str): """ Import user data types from the directory to the PLC | parameters | type | description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_data_types(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\PLC data types") ``` """ ... def import_technology_objects(import_root_directory: str): """ Import technology objects from the directory to the PLC | parameters | type | description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_technology_objects(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\Technology objects") ``` """ ... def import_watch_tables(import_root_directory: str): """ Import watch tables from the directory to the plc | parameters | type | description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_watch_tables(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\Watch and force tables") ``` """ ... def import_software_units(import_root_directory: str): """ Import software units from the directory to the PLC | parameters | type | description | | --- | --- | --- | | import_root_directory | str | Directory of the import folder | ```python plc.import_software_units(import_root_directory = "C:\\ws\\importfolder\\PLC_1\\Software Units") ``` """ ... def safety_print(print_file: str) -> bool: """ Create a safety printout of the PLC and prints it to a file if the file already exists, it is overridden. *Returns* -> `bool` Returns true on success | parameters | type | description | | --- | --- | --- | | print_file | str | Full path of the printout file | ```python plc.safety_print(print_file = "C:\\ws\\safetyprint\\F_PLC_Printout.pdf") ``` """ ... class PlcTag: def get_name() -> str: """ Get the name of the PLC tag *Returns* -> 'str' Name of the plc tag ```python name = plc_tag.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the PLC tag Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the PLC Tag | ```python property_value = plc_tag.get_property(name = "DataTypeName") ``` """ ... def export(target_directory_path: str, export_options: int, keep_folder_structure: bool): """ Export the PLC tag exportoptions -> integer - [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | integer (enum) | [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python plc_tag.export(target_directory_path = "C:\\ws\\export", export_options = 1) ``` """ ... class PlcTagTable: def get_name() -> str: """ Get the name of the PLC tag table *Return* -> 'str' Name of the plc tag table ```python name = table.get_name() ``` """ ... def export(target_directory_path: str, export_options: int, keep_folder_structure: bool): """ Export the PLC tag table exportoptions -> integer - [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | integer (enum) | [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python table.export(target_directory_path = "C:\\ws\\export", export_options = 1) ``` """ ... def get_plc_tags() -> List[PlcTag]: """ Get the list of PLC tags *Returns* -> `List[PlcTag]` List of the PLC tags ```python plctags = table.get_plc_tags() ``` """ ... def get_property(name: str) -> str: """ Get the property of the PLC tag table Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the PLC tag table | ```python property_value = table.get_property(name = "CreationDate") ``` """ ... def get_user_constants() -> List[UserConstant]: """ Get the list of the user constants *Returns* -> `List[UserConstant]` List of the PLC constants ```python constants = table.get_user_constants() ``` """ ... def export_cross_references(target_directory_path: str, filter: int): """ Export cross references of the PLC tag table filter -> integer - [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | filter | integer (enum) | [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | ```python table.export_cross_references(target_directory_path = "C:\\ws\\exportcrossreferences", filter = 2) ``` """ ... class Portal: def get_process_id() -> int: """ Get the TIA Portal process ID *Returns* -> `int` TIA Portal process id ```python id = portal.get_process_id() ``` """ ... def get_server_project_names(server_alias: str) -> List[str]: """ Get all the project names from the selected project server *Returns* -> `List[str]` Names of the projectnames | parameters | type | description | | --- | --- | --- | | server_alias| str | Server alias | ```python project_names = portal.get_server_project_names(server_alias) ``` """ ... def create_local_session(server_name: str, project_name: str, session_name: str, session_directory: str, exclusive: bool) -> str: """ Opens a TIA Portal local session and retuns the project Warning: only ungrouped server projects are supported or can be retrieved. *Returns* -> str TIA Portal project local session fullpath | parameters | type | description | | --- | --- | --- | | server_name| str | Server Name | | project_name | str | Name of the project | | session_name | str | Name of the session | | session_directory | str | Local path of the session directory | | exclusive | bool | Default: true Opens exclusive session | ```python local_session_project_path = portal.create_local_session(server_name = "Local Project Server", project_name = "MyServerProject", session_name ="myLocalSession", session_directory = "C:\\ws\\sessionDir", exclusive = False ) ``` """ ... def open_project(project_file_path: str, server_project_view: bool) -> Project: """ Open a TIA Portal project, local session or a server view *Returns* -> `Project` TIA Portal project | parameters | type | description | | --- | --- | --- | | project_file_path | str | Full path of the project file | | server_project_view | str | Default: false. If server project and set to true openns in server project view | ```python project = portal.open_project(project_file_path = "C:\\ws\\testproj\\testproj.ap17") ``` """ ... def open_project_with_copy(project_file_path: str, target_directory_path: str, delete_existing_project: bool) -> Project: """ Open a TIA Portal project or local session *Returns* -> `Project` TIA Portal project | parameters | type | description | | --- | --- | --- | | project_file_path | str | Full path of the project file | | target_directory_path | str | Temporary path where the project should be copied before opened | | delete_existing_project | bool | Defines if the temporary project should be deleted | ```python project = portal.open_project_with_copy(project_file_path = "C:\\ws\\testproj\\testproj.ap17", target_directory_path = "C:\\ws\\temp" , delete_existing_project = True) ``` """ ... def retrieve_archive(target_directory_path: str, archive_file_path: str, delete_existing_project: bool) -> Project: """ Retrieve a TIA Portal project archive *Returns* -> `Project` TIA Portal project | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Temporary path where project should be copied before opened | | archive_file_path | str | Full path of the archived project file | | delete_existing_project | bool | Defines if the temporary project should be deleted | ```python project = portal.retrieve_archive(archive_file_path = "C:\\ws\\testproj\\testproj.zap17", target_directory_path = "C:\\ws\\temp" , delete_existing_project = True) ``` """ ... def create_project(target_directory_path: str, project_name: str, delete_existing_project: bool) -> Project: """ Create a new TIA Portal project *Returns* -> `Project` TIA Portal project | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Temporary path where project should be copied before opened | | project_name | str | Name of the new project | | delete_existing_project | bool | Defines if the temporary project should be deleted | ```python project = portal.create_project(target_directory_path = "C:\\ws\\temp" , project_name = "MyNewProject" delete_existing_project = True) ``` """ ... def get_project() -> Project: """ Get opened TIA Portal project of the current TIA Portal instance *Returns* -> `Project` TIA Portal project ```python project = portal.get_project() ``` """ ... def get_global_library_infos() -> List[GlobalLibraryInfo]: """ Get a list of global library infos of the current TIA Portal instance *Returns* -> `List[GlobalLibraryInfo]` List of the global library information ```python global_lib_infos = portal.get_global_library_infos() for info in global_lib_infos: ... ``` """ ... def open_global_library(library_name: str) -> GlobalLibrary: """ Open global library *Returns* -> `GlobalLibrary` Global Library | parameters | type | description | | --- | --- | --- | | library_name | str | Name of the global library | ```python global_lib = portal.open_global_library(library_name = "GlobalLib1") ``` """ ... def open_global_library_by_path(library_path: str) -> GlobalLibrary: """ Open user global library Only user global libraries can be opened *Returns* -> `GlobalLibrary` Global Library | parameters | type | description | | --- | --- | --- | | library_path | str | Full path of the global library | ```python global_lib = portal.open_global_library_by_path(library_path = "C:\\ws\\testlib\\testlib.al17") ``` """ ... def open_global_library_with_copy(target_directory_path: str, library_path: str, delete_existing_project: bool) -> GlobalLibrary: """ Open user global library *Returns* -> `GlobalLibrary` Global Library | parameters | type | description | | --- | --- | --- | | target_directorypath | str | Temporary path where the library should be copied before opened | | library_path | str | Full path of the global library | | delete_existing_project | bool | Defines if the temporary project should be deleted | ```python global_lib = portal.open_global_library_with_copy(target_directorypath = "C:\\ws\\temp", library_path = "C:\\ws\\testlib\\testlib.al17", , delete_existing_project = True) ``` """ ... def retrieve_archive_library(target_directory_path: str, archive_file_path: str, delete_existing_project: bool) -> GlobalLibrary: """ Retrieve a TIA Portal library archive *Returns* -> `GlobalLibrary` Global Library | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Temporary path where library should be copied before opened | | archive_file_path | str | Full path of the archived library file | | delete_existing_project | bool | Defines if the temporary project should be deleted | ```python global_lib = portal.retrieve_archive_library(archive_filepath = "C:\\ws\\testproj\\testlib.zal17", target_directorypath = "C:\\ws\\temp" , delete_existing_project = True) ``` """ ... def close_portal(): """ Close the TIA Portal instance ```python portal.close_portal() ``` """ ... def close_local_session(): """ Close the TIA Portal local session ```python portal.close_localsession() ``` """ ... def close_commit_local_session(comment: str) -> int: """ Close and commit changes of the local session *Returns* -> `int` Revision number | parameters | type | description | | --- | --- | --- | | comment | str | Comment provided by user | ```python rev_number = portal.close_and_commit_local_session(comment = "Some example changes") ``` """ ... def delete_local_session(): """ Delete the local session ```python portal.delete_local_session() ``` """ ... def close_global_library(global_library_name: str): """ Close the global library instance | parameters | type | description | | --- | --- | --- | | global_library_name | str | Name of the global library | ```python portal.close_global_library(global_library_name = "GlobalLib1") ``` """ ... def show_online_finger_prints(mode: str, pc_interface: str, ip_address: str): """ Close the global library instance | parameters | type | description | | --- | --- | --- | | mode | str | Configuration mode | | pci_interface | str | PC Interface name | | ip_address | str | IP adress | ```python portal.show_online_finger_prints(mode = "PN/IE", pci_interface = "PLCSIM", ip_address = "192.168.0.10") ``` """ ... def get_project_server_infos( host_filter: str) -> List[ProjectServer]: """ Get list of the Project servers *Returns* -> `List[ProjectServer]` List of project server information object | parameters | type | description | | --- | --- | --- | | host_filter | str | Name of the global library | ```python portal.get_project_server_infos() ``` """ ... def get_project_server_info(url: str) -> ProjectServer: """ Get the Project server information found by URL *Returns* -> `ProjectServer` Project server information object | parameters | type | description | | --- | --- | --- | | url | str | URL of the server | ```python portal.get_project_server_info(url = "https://denbgm67021srv.ad001.siemens.net:8735/") ``` """ ... def set_upgrader_log(project_name: str): """ Set name of the current executed upgrade process instance (Only for TIA Portal Project Upgrader) (Only for Tia Portal Project Upgrader) | parameters | type | description | | --- | --- | --- | | project_name | str | name of the project | """ ... class Product: def get_name() -> str: """ Get the name of the TIA Portal product *Returns* -> `str` Name of the siemens product ```python product_name = product.get_name() ``` """ ... def get_release() -> str: """ Get the release of the TIA Portal product *Returns* -> `str` Release tag of the siemens product ```python product_release = product.get_release() ``` """ ... def get_version() -> str: """ Get the version of the TIA Portal product *Returns* -> `str` Version of the siemens product ```python product_version = product.get_version() ``` """ ... class ProductBundle: def get_title() -> str: """ Get the title of the TIA Portal Bundle *Returns* -> `str` Title of the siemens bundle ```python bundle_title = bundle.get_title() ``` """ ... def get_release() -> str: """ Get the release of the TIA Portal Bundle *Returns* -> `str` Release of the siemens bundle ```python bundle_release = bundle.get_release() ``` """ ... def get_products() -> List[Product]: """ Get the list of products of the TIA Portal Bundle *Returns* -> `List[Product]` List of siemens products ```python bundle_products = bundle.get_products() ``` """ ... class ProgramBlock: def get_name() -> str: """ Get the name of the program block *Returns* -> `str` Name of the program block ```python name = programblock.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the program block Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the program block | ```python property_value = programblock.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: int, keep_folder_structure: bool): """ Export the program block exportoptions -> integer - [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | integer (enum) | [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python programblock.export(target_directory_path = "C:\\ws\\export", export_options = 1) ``` """ ... def is_consistent() -> bool: """ Check if the program block is consistent *Returns* -> `bool` True if consistent ```python value = programblock.is_consistent() ``` """ ... def compile(): """ Compile the program block ```python programblock.compile() ``` """ ... def can_generate_source() -> bool: """ Check if the program block is able to be generated as source *Returns* -> `bool` True if can generate source ```python value = programblock.can_generate_source() ``` """ ... def generate_source(target_directory_path: str, keep_folder_structure: bool): """ Generate the external source of the program block If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python programblock.generate_source(target_directory_path = "C:\\ws\\exportfolder") ``` """ ... def export_cross_references(target_directory_path: str, filter: int): """ Export cross references of the program block filter -> integer - [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | filter | integer (enum) | [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | ```python programblock.export_cross_references(target_directory_path = "C:\\ws\\exportcrossreferences", filter = 2) ``` """ ... class Project: def get_portal() -> Portal: """ Get the TIA Portal instance from the current project ```python portal = project.get_portal() ``` """ ... def save(): """ Save the TIA Portal project ```python project.save() ``` """ ... def close(): """ Close the TIA Portal project ```python project.close() ``` """ ... def set_simulation_support(value: bool): """ Set the simulation support for the TIA Portal project | parameters | type | description | | --- | --- | --- | | value | bool | Set the value of the simulation support | ```python project.set_simulation_support(value = True) ``` """ ... def archive(target_directory_path: str, archive_name: str, delete_existing_archive: bool) -> str: """ Archive the TIA Portal project *Returns* -> `str` Full path of the new archive | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path where archive should be placed | | archive_name | str | name of the archive file | | delete_existing_archive | bool | Set if the output file should be deleted first | ```python archive_fullpath = project.archive(target_directory_path = "C:\\ws\\newfolder", archive_name = "testproj" , delete_existing_archive = True) ``` """ ... def save_as(target_directory_path: str, project_name: str) -> str: """ Save the TIA Portal project under another path and name *Returns* -> `str` Full path of the saved project | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path where project should be saved | | project_name | str | Name of the project name | ```python project_file_path = project.save_as(target_directory_path = "C:\\ws\\newfolder", project_name = "testproj") ``` """ ... def export_cax_data(export_file_path: str, log_file_path: str) -> bool: """ Export the CAx data of the TIA Portal project *Returns* -> `bool` Result state of the export | parameters | type | description | | --- | --- | --- | | export_file_path | str | Full path of the export file | | log_file_path | str | Full path of the log file | ```python result = project.export_cax_data(export_file_path = "C:\\ws\\exportfolder\\exportCAX.aml", log_file_path = "C:\\ws\\exportfolder\\exportCAX.log") ``` """ ... def import_cax_data(import_file_path: str, log_file_path: str) -> bool: """ Import CAx data to the TIA Portal project *Returns* -> `bool` Result state of the import | parameters | type | description | | --- | --- | --- | | import_file_path | str | Fullpath of the import file | | log_file_path | str | Fullpath of the log file | ```python result = project.import_cax_data(import_file_path = "C:\\ws\\importfolder\\importCAX.aml", log_file_path = "C:\\ws\\importfolder\\importCAX.log") ``` """ ... def open_topology_editor(): """ Open the topology editor in TIA Portal for the TIA Portal project ```python project.open_topology_editor() ``` """ ... def open_network_editor(): """ Open the network editor in TIA Portal for the TIA Portal project ```python project.open_network_editor() ``` """ ... def get_plcs() -> List[Plc]: """ Get a list of PLCs in the TIA Portal project *Returns* -> `List[Plc]` All PLC's as list ```python plcs = project.get_plcs() for plc in plcs: ... ``` """ ... def get_hmis() -> List[Hmi]: """ Get a list of HMIs in the TIA Portal project *Returns* -> `List[Hmi]` All HMI's as list ```python hmis = project.get_hmis() for hmi in hmis: ... ``` """ ... def get_application_tests() -> List[ApplicationTest]: """ Get a list of Test Suite application tests in the TIA Portal project Test Suite is required. *Returns* -> `List[ApplicationTest]` All Application tests as list ```python tests = project.get_application_tests() ``` """ ... def get_system_tests() -> List[SystemTest]: """ Get a list of Test Suite system tests in the TIA Portal project Test Suite is required. *Returns* -> `List[SystemTest]` All System tests as list ```python tests = project.get_system_tests() ``` """ ... def get_rule_sets() -> List[RuleSet]: """ Get a list of Test Suite rule sets in the TIA Portal project Test Suite is required. *Returns* -> `List[RuleSet]` All Rule sets as list ```python rulesets = project.get_rule_sets() ``` """ ... def get_project_library() -> ProjectLibrary: """ Get the project library *Returns* -> `ProjectLibrary` Project library ```python project_lib = project.get_project_library() ``` """ ... def web_block_generate(): """ Web block DB generate according the user define pages (Web server must activated) ```python project.web_block_generate() ``` """ ... def upgrade_hardware(full_upgrade: bool): """ Upgrade the devices to the latest order number and firmware version If `full_upgrade` is set to True, all devices will be changed to the newest available order number (Device type) and firmware: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FK0**0**-0AB0 **V1.8**. With full upgrade: from CPU1511F 6ES7 511-1FK0**0**-0AB0 **V1.7** to 6ES7 511-1FL0**3**-0AB0 **V3.0**. | parameters | type | description | | --- | --- | --- | | full_upgrade | bool | Set if for full upgrade (latest order number and firmware version) | ```python project.upgrade_hardware(full_upgrade = True) ``` """ ... def sivarc_generate(): """ Generate SiVArc functions (needs SiVArc installed and licensed) Needs SiVArc installed and licensed. ```python project.sivarc_generate() ``` """ ... def update_module_description(): """ Update the module description of all devices in the project ```python project.update_module_description() ``` """ ... def set_virtual_plc_support(value: bool): """ Set virtual PLC support in the project Available only in V19 or higher | parameters | type | description | | --- | --- | --- | | value | bool | Set the value of the virtual support | ```python project.set_virtual_plc_support(value = "True") ``` """ ... def import_umac_config(import_file_path: str): """ Import UMAC and UMC Configuration to the TIA Portal project | parameters | type | description | | --- | --- | --- | | import_file_path | str | Full path of the import file | ```python project.import_umac_config(import_file_path = "C:\\ws\\importfolder\\importUMAC.json") ``` """ ... def export_umac_config(export_file_path: str): """ Export UMAC and UMC configuration from the TIA Portal project if export file already exists, it will be overwritten | parameters | type | description | | --- | --- | --- | | export_file_path | str | Full path of the import file | ```python project.export_umac_config(export_file_path = "C:\\ws\\exportfolder\\exportUMAC.json") ``` """ ... class ProjectLibrary: def get_type_folder() -> LibraryTypeFolder: """ Get the folder containing library types & library type folders *Returns* -> `LibraryTypeFolder` Library type folder ```python typefolder = projectlib.get_type_folder() ``` """ ... class ProjectServer: def get_host() -> str: """ Get the host of the Project-Server *Returns* -> `str` Host ```python name = server_project.get_host() ``` """ ... def get_port() -> int: """ Get the port of the Project-Server *Returns* -> `int` Port number ```python name = server_project.get_port() ``` """ ... def get_server_name() -> str: """ Get the server name of the Project-Server *Returns* -> `str` Server name ```python name = server_project.get_server_name() ``` """ ... def print_info(): """ Show information of the Project-Server ```python name = server_project.print_info() ``` """ ... class RuleSet: def get_name() -> str: """ Get the name of the rule set *Return* -> 'str' Name of the rule set ```python name = rule.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the rule set Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the Rule set | ```python property_value = rule.get_property(name = "Name") ``` """ ... def export(target_directory_path: str): """ Export the rule set The folder "Style guide" will be automaticcally created on the `target_directory_path`, if not already exists. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | ```python rule.export(target_directory_path = "C:\\ws\\export") ``` """ ... class SafetyAdministration: def is_logged_on() -> bool: """ Check if the safety administration is logged on to safety offline program *Returns* -> `bool` Status of login ```python status = safety_admin.is_logged_on() ``` """ ... def is_password_set() -> bool: """ Check if the safety administration has a password set for the safety offline program *Returns* -> `bool` Status if password is set ```python status = safety_admin.is_password_set() ``` """ ... def get_offline_serial_number() -> str: """ Get the offline serial number *Returns* -> `str` Offline serial number ```python value = safety_admin.get_offline_serial_number() ``` """ ... def export_config(target_directory_path: str): """ Export the safety administration configuration The folder "SafetyAdministration" will be automaticcally created on the `target_directory_path`, if not already exists. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | ```python safety_admin.export_config(target_directory_path = "C:\\ws\\export") ``` """ ... def import_config(import_root_directory: str): """ Import the safety administration configuration | parameters | type | description | | --- | --- | --- | | import_root_directory | str | Folder path for the import | ```python safety_admin.import_config(import_root_directory = "C:\\ws\\exported\\SafetyAdministration") ``` """ ... class SoftwareUnit: def get_name() -> str: """ Get the name of the software unit *Return* -> 'str' Name of the software unit ```python name = software_unit.get_name() ``` """ ... def export_configuration(target_directory_path: str): """ Export the software unit configuration | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | ```python software_unit.export_configuration(target_directory_path = "C:\\ws\\export") ``` """ ... def get_plc_tag_tables() -> List[PlcTagTable]: """ Get the list of the PLC tag tables *Returns* -> `List[PlcTagTable]` List of the PLC tag tables of the software unit ```python pcl_tag_tables = software_unit.get_plc_tag_tables() ``` """ ... def get_program_blocks() -> List[ProgramBlock]: """ Get the list of the program blocks *Returns* -> `List[ProgramBlock]` List of the program blocks of the software unit ```python blocks = software_unit.get_program_blocks() ``` """ ... def get_system_blocks() -> List[SystemBlock]: """ Get the list of the system blocks *Returns* -> `List[SystemBlock]` List of the system blocks of the software unit ```python blocks = software_unit.get_system_blocks() ``` """ ... def get_user_data_types() -> List[UserDataType]: """ Get the list of the user data types *Returns* -> `List[UserDataType]` List of the user data types of the software unit ```python udts = software_unit.get_user_data_types() ``` """ ... def get_external_sources() -> List[ExternalSource]: """ Get the list of the external sources *Returns* -> `List[ExternalSource]` List of the external sources of the software unit ```python ext_sources = software_unit.get_external_sources() ``` """ ... def get_named_value_types() -> List[NamedValueType]: """ Get the list of the named value types *Returns* -> `List[NamedValueType]` List of the named value types of the software unit ```python nvts = software_unit.get_named_value_types() ``` """ ... def export_cross_references(target_directory_path: str, filter: int): """ Export cross references of the software unit object filter -> integer - [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | filter | integer (enum) | [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | ```python software_unit.export_cross_references(target_directory_path = "C:\\ws\\exportcrossreferences", filter = 2) ``` """ ... class SystemBlock: def get_name() -> str: """ Get the name of the system block *Returns* -> `str` Name of the system block ```python name = systemblock.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the system block Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the system block | ```python property_value = systemblock.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: int): """ Export the system block exportoptions -> integer - [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] The folder "System blocks" will be automatically created on the `target_directory_path`, if not already exists. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | integer (enum) | [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] | ```python systemblock.export(target_directory_path = "C:\\ws\\export", export_options = 1) ``` """ ... def is_consistent() -> bool: """ Check if the system block is consistent *Returns* -> `bool` True if consistent ```python value = systemblock.is_consistent() ``` """ ... def compile(): """ Compile the system block ```python systemblock.compile() ``` """ ... def export_cross_references(target_directory_path: str, filter: int): """ Export cross references of the system block filter -> integer - [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | filter | integer (enum) | [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | ```python systemblock.export_cross_references(target_directory_path = "C:\\ws\\exportcrossreferences", filter = 2) ``` """ ... class SystemTest: def get_name() -> str: """ Get the name of the system test *Returns* -> 'str' Name of the system test ```python name = sys_test.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the system test Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the system test | ```python property_value = sys_test.get_property(name = "Name") ``` """ ... def export(target_directory_path: str): """ Export the system test The folder "System tests" will be automaticcally created on the `target_directory_path`, if not already exists. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | ```python sys_test.export(target_directory_path = "C:\\ws\\export") ``` """ ... def set_scope(opcua_server_address: str, opcua_server_interface_type: int, opcua_server_interface_folder_path: str): """ Set the scope of the system test | parameters | type | description | | --- | --- | --- | | opcua_server_address | str | OPC UA server adress e.g. opc.tcp://server.port/path | | opcua_server_interface_type | integer (enum) | [1: 'UserDefined', 2: 'StandardSIMATIC'] | | opcua_server_interface_folder_path | str | Folder path to interface files | ```python sys_test.set_scope(opcua_server_address = "opc.tcp://server.port/path", opcua_server_interface_type = 1 ) ``` """ ... class TechnologyObject: def get_name() -> str: """ Get the name of the technology object *Returns* -> 'str' Name of the technology object ```python name = to.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the technology object Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the technology obejct | ```python property_value = to.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: int, keep_folder_structure: bool): """ Export the technology object exportoptions -> integer - [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] Only V19 and higher: If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | integer (enum) | [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python to.export(target_directory_path = "C:\\ws\\export", export_options = 1) ``` """ ... def is_consistent() -> bool: """ Check if the technology object is consistent *Returns* -> `bool` True if consistent ```python value = to.is_consistent() ``` """ ... def compile(): """ Compile the technology object ```python to.compile() ``` """ ... class UserConstant: def get_name() -> str: """ Get the name of the user constant *Returns* -> 'str' Name of the user constant ```python name = user_constant.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the user constant Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the user Constant | ```python property_value = user_constant.get_property(name = "Name") ``` """ ... def export(targetdirectorypath: str, exportoptions: int, keep_folder_structure: bool): """ Export the user constant exportoptions -> integer - [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | integer (enum) | [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python user_constant.export(target_directory_path = "C:\\ws\\export", export_options = 1) ``` """ ... class UserDataType: def get_name() -> str: """ Get the name of the user data type *Returns* -> 'str' Name of the user data type ```python name = udt.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the user data type Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the user data type | ```python property_value = udt.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, exportoptions: int, keep_folder_structure: bool): """ Export the user data type exportoptions -> integer - [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | integer (enum) | [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python udt.export(target_directory_path = "C:\\ws\\export", export_options = 1) ``` """ ... def is_consistent() -> bool: """ Check if the user data type is consistent *Returns* -> `bool` True if consistent ```python value = udt.is_consistent() ``` """ ... def compile(): """ Compile the user data type ```python udt.compile() ``` """ ... def generate_source(target_directory_path: str, keep_folder_structure: bool): """ Generate the external source of the user data type If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python udt.generate_source(target_directory_path = "C:\\ws\\exportfolder") ``` """ ... def export_cross_references(target_directory_path: str, filter: int): """ Export the cross references of the user data type filter -> integer - [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | filter | integer (enum) | [1: 'AllObjects', 2: 'ObjectsWithReferences', 3: 'ObjectsWithoutReferences', 4: 'UnusedObjects'] | ```python udt.export_cross_references(target_directory_path = "C:\\ws\\exportcrossreferences", filter = 2) ``` """ ... class WatchTable: def get_name() -> str: """ Get the name of the watch table *Returns* -> 'str' Name of the watch table ```python name = watch_table.get_name() ``` """ ... def get_property(name: str) -> str: """ Get the property of the watch table Properties which are not string will be converted to string if possible. *Returns* -> `str` Value of the property as string | parameters | type | description | | --- | --- | --- | | name | str | Property name of the watch table | ```python property_value = watch_table.get_property(name = "CreationDate") ``` """ ... def export(target_directory_path: str, export_options: int, keep_folder_structure: bool): """ Export the watch table exportoptions -> integer - [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] If `keep_folder_structure` is set to True, all group names are represented hierarchically with folders. | parameters | type | description | | --- | --- | --- | | target_directory_path | str | Folder path for the export | | export_options | integer (enum) | [1: 'WithDefaults', 2: 'None', 3: 'WithReadOnly'] | | keep_folder_structure | bool | True: All group names are represented hierarchically with folders | ```python watch_table.export(target_directory_path = "C:\\ws\\export", export_options = 1) ``` """ ... def is_consistent() -> bool: """ Check if the watch table is consistent *Returns* -> `bool` True if consistent ```python value = watch_table.is_consistent() ``` """ ...