Какой параметр я должен назначить внутри своей переменной, чтобы я мог запустить его из моего основного?
Я новичок в C# и Tia Openness, и у меня есть проблема. Я не знаю, какой параметр входит в мой ImportSingleTextList(); это пример от Siemens, но никогда не упоминается, как его вызвать в основном. Это мой код .
private static void ImportSingleTextList(HmiTarget hmitarget)
{
TextListComposition textListsComposition = hmitarget.TextLists;
IList<TextList> importedTextLists = textListsComposition.Import(new FileInfo(@"D:\SamplesImport\myTextList.xml"), ImportOptions.Override);
}
2 ответа
Я думаю, вам нужно точно изучить свой HmiTarget. Это класс, тогда вы должны создать его первый экземпляр; какой конструктор у этого класса - с параметрами или без? Нажмите на HmiTarget и посмотрите, какой ввод он ожидает.
Я предполагаю, что у вашего класса есть какой-то перечисляемый hmitarget.TextLists, который вы также должны заполнить или получить.
Предположительно у вас есть экземпляр Project. Вы должны перейти от Project->Device->DeviceItem(->DeviceItem), пока не найдете DeviceItem, который может предоставить службу SoftwareContainer. Может случиться так, что все такие DeviceItem находятся на первом уровне ниже Device; Я не проверял. Во всяком случае, вот метод, который я написал, который ищет первый и второй уровни DeviceItem:
public static HmiTarget GetHmiTarget(Device hmiDevice)
{
//search first level of DeviceItems
foreach (DeviceItem di in hmiDevice.DeviceItems)
{
SoftwareContainer container =
di.GetService<SoftwareContainer>();
if (container != null)
{
HmiTarget hmi = container.Software as HmiTarget;
if (hmi != null)
return hmi;
}
//search second level of DeviceItems
foreach (DeviceItem devItem in di.DeviceItems)
{
SoftwareContainer subContainer = devItem.GetService<SoftwareContainer>();
if(subContainer != null)
{
HmiTarget hmi = subContainer.Software as HmiTarget;
if (hmi != null)
return hmi;
}
}
}
return null; //nothing was found at the first or second levels
}
чтобы получить устройство, вы можете использовать PROJECT.Devices.Find(NAME), где PROJECT — ваш экземпляр проекта портала TIA, а NAME — строковое имя вашего устройства HMI.