我必须在变量中指定什么参数,以便从Main开始



我是C#和Tia开放的新手,有一个问题。我不知道ImportSingleTextList((;中有什么参数;。这是西门子的一个例子,但从未提及如何将其称为"主"。这是我的密码。

private static void ImportSingleTextList(HmiTarget hmitarget)
{
TextListComposition textListsComposition = hmitarget.TextLists;
IList<TextList> importedTextLists = textListsComposition.Import(new FileInfo(@"D:SamplesImportmyTextList.xml"), ImportOptions.Override);
}

我想你必须准确地查看你的HmiTarget。如果它是一个类,那么您应该实例化它的第一个实例;这个类有什么构造函数——带参数还是不带参数?单击HmiTarget并查看它期望的输入
我猜你的类有某种可枚举的hmitact。您必须填写或获取的文本列表。

假设您有一个Project实例。您必须从Project向下钻取->设备->DeviceItem(->DeviceItem(,直到找到可以提供SoftwareContainer服务的DeviceItem。可能所有这样的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设备的字符串名称。

最新更新