我必须在变量中分配什么参数才能从 Main 启动它?
What parameter i have to assign inside my variable so i can start it from my Main?
我是 C# 和 Tia Openness 的新手,遇到了问题。我不知道我的 ImportSingleTextList(); 里面有什么参数。它是西门子的一个例子,但从来没有提到如何在 main 中调用它。 That is my code.
private static void ImportSingleTextList(HmiTarget hmitarget)
{
TextListComposition textListsComposition = hmitarget.TextLists;
IList<TextList> importedTextLists = textListsComposition.Import(new FileInfo(@"D:\SamplesImport\myTextList.xml"), ImportOptions.Override);
}
我猜你必须仔细查看你的 HmiTarget。是class,那么你应该实例化它的第一个实例;这个 class 有什么构造函数——带参数还是不带参数?单击 HmiTarget 并查看它期望的输入。
我猜你 class 有某种可枚举的 hmitarget.TextLists 你必须填写或获取。
想必您有一个 Project 实例。您必须从 Project->Device->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 portal 项目实例,NAME 是您的 HMI 设备的字符串名称。
我是 C# 和 Tia Openness 的新手,遇到了问题。我不知道我的 ImportSingleTextList(); 里面有什么参数。它是西门子的一个例子,但从来没有提到如何在 main 中调用它。 That is my code.
private static void ImportSingleTextList(HmiTarget hmitarget)
{
TextListComposition textListsComposition = hmitarget.TextLists;
IList<TextList> importedTextLists = textListsComposition.Import(new FileInfo(@"D:\SamplesImport\myTextList.xml"), ImportOptions.Override);
}
我猜你必须仔细查看你的 HmiTarget。是class,那么你应该实例化它的第一个实例;这个 class 有什么构造函数——带参数还是不带参数?单击 HmiTarget 并查看它期望的输入。
我猜你 class 有某种可枚举的 hmitarget.TextLists 你必须填写或获取。
想必您有一个 Project 实例。您必须从 Project->Device->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 portal 项目实例,NAME 是您的 HMI 设备的字符串名称。