Я пытаюсь получить список всех экранов проекта (а в будущем и тегов, связанных с этими экранами). Экраны присутствуют на устройствах, показанных на прилагаемом скриншоте. Я пробовал запускать разные версии кода, но мне так и не удалось получить список экранов. Буду очень признателен за любую помощь.
Вот мой код:
import clr
clr.AddReference('C:\\Program Files\\Siemens\\Automation\\Portal V15_1\\PublicAPI\\V15.1\\Siemens.Engineering.dll')
import Siemens.Engineering as tia
import Siemens.Engineering.Hmi as tia_hmi
def connect_to_tia_portal():
processes = list(tia.TiaPortal.GetProcesses())
if processes:
print("Attaching to an existing TIA Portal instance...")
return processes[0].Attach()
print("No running TIA Portal instance found. Starting a new instance...")
return tia.TiaPortal(tia.TiaPortalMode.WithUserInterface)
print('Trying to connect to an open TIA Portal instance...')
try:
mytia = connect_to_tia_portal()
print('Connected to an open TIA Portal instance.')
except Exception as e:
print(f"Failed to connect: {e}")
quit()
if mytia.Projects.Count == 0:
print("No open projects found in TIA Portal.")
quit()
myproject = mytia.Projects[0]
print(f"Connected to project: {myproject.Name}")
screens = []
for device in myproject.Devices:
print(f"Searching in device: {device.Name}")
for item in device.DeviceItems:
if isinstance(item, tia_hmi.HmiTarget):
hmi_target = item.GetService(tia_hmi.HmiTagService)
for screen in hmi_target.HmiScreens:
screens.append(screen.Name)
print(f"Screen found: {screen.Name}")
if screens:
print(f"\nTotal screens found: {len(screens)}")
else:
print("No screens found in the project.")
print("Press any key to quit")
input()
quit()
Снимок экрана
Вывод:
Trying to connect to an open TIA Portal instance...
Attaching to an existing TIA Portal instance...
Connected to an open TIA Portal instance.
Connected to project: uspk_81_04_07_06_V2
Searching in device: ARMKTU
Searching in device: ARMBUR
Searching in device: S71500/ET200MP station_1
No screens found in the project.
Press any key to quit
Я пробовал разные подходы, но результат был примерно следующий:
Searching in device: ARMBUR
Error retrieving HMI Software in SIMATIC PC station: SoftwareContainer
Error retrieving HMI Software in HMI_RT_2: SoftwareContainer
Error retrieving HMI Software in IE general_1: SoftwareContainer
Подробнее здесь: https://stackoverflow.com/questions/792 ... mi-screens
Экраны HMI TIA Openness 15.1 ⇐ Python
Программы на Python
1732609594
Anonymous
Я пытаюсь получить список всех экранов проекта (а в будущем и тегов, связанных с этими экранами). Экраны присутствуют на устройствах, показанных на прилагаемом скриншоте. Я пробовал запускать разные версии кода, но мне так и не удалось получить список экранов. Буду очень признателен за любую помощь.
Вот мой код:
import clr
clr.AddReference('C:\\Program Files\\Siemens\\Automation\\Portal V15_1\\PublicAPI\\V15.1\\Siemens.Engineering.dll')
import Siemens.Engineering as tia
import Siemens.Engineering.Hmi as tia_hmi
def connect_to_tia_portal():
processes = list(tia.TiaPortal.GetProcesses())
if processes:
print("Attaching to an existing TIA Portal instance...")
return processes[0].Attach()
print("No running TIA Portal instance found. Starting a new instance...")
return tia.TiaPortal(tia.TiaPortalMode.WithUserInterface)
print('Trying to connect to an open TIA Portal instance...')
try:
mytia = connect_to_tia_portal()
print('Connected to an open TIA Portal instance.')
except Exception as e:
print(f"Failed to connect: {e}")
quit()
if mytia.Projects.Count == 0:
print("No open projects found in TIA Portal.")
quit()
myproject = mytia.Projects[0]
print(f"Connected to project: {myproject.Name}")
screens = []
for device in myproject.Devices:
print(f"Searching in device: {device.Name}")
for item in device.DeviceItems:
if isinstance(item, tia_hmi.HmiTarget):
hmi_target = item.GetService(tia_hmi.HmiTagService)
for screen in hmi_target.HmiScreens:
screens.append(screen.Name)
print(f"Screen found: {screen.Name}")
if screens:
print(f"\nTotal screens found: {len(screens)}")
else:
print("No screens found in the project.")
print("Press any key to quit")
input()
quit()
Снимок экрана
Вывод:
Trying to connect to an open TIA Portal instance...
Attaching to an existing TIA Portal instance...
Connected to an open TIA Portal instance.
Connected to project: uspk_81_04_07_06_V2
Searching in device: ARMKTU
Searching in device: ARMBUR
Searching in device: S71500/ET200MP station_1
No screens found in the project.
Press any key to quit
Я пробовал разные подходы, но результат был примерно следующий:
Searching in device: ARMBUR
Error retrieving HMI Software in SIMATIC PC station: SoftwareContainer
Error retrieving HMI Software in HMI_RT_2: SoftwareContainer
Error retrieving HMI Software in IE general_1: SoftwareContainer
Подробнее здесь: [url]https://stackoverflow.com/questions/79225245/tia-openness-15-1-hmi-screens[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия