5804 lines
146 KiB
Markdown
5804 lines
146 KiB
Markdown
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()
|
|
```
|
|
"""
|
|
...
|
|
|