在codesys中编写textlist

时间:2015-10-01 01:48:56

标签: codesys

如何在运行时动态地在CODESYS中编写文本列表?

我使用文本列表作为源来显示在组合框(下拉列表框)中

提前致谢

1 个答案:

答案 0 :(得分:0)

首先,您需要使用ComponentManager获取文本列表工厂来创建实例:

    const Guid TextListFactoryGuid = new Guid("{7a60005b-e690-45b3-8aca-cd15950a3e73}");
    var textListFactory = (IObjectFactory)ComponentManager.Singleton.CreateInstance(TextListFactoryGuid);

然后,创建一个测试列表对象本身的实例:

    var textListObject = (ITextListObject)textListFactory.Create();

需要将文本列表对象添加到对象管理器中:

    SystemInstances.ObjectManager.AddObject(
            SystemInstances.Engine.Projects.PrimaryProject.Handle,
            parentGuid,
            Guid.NewGuid(),
            textListObject,
            textListName,
            -1);

最后,既然您已拥有ITextListObject,就可以为iditem添加字符串:

    textListObject.AddEmptyRow();
    var textListElement = textListObject.GetTextListRowAt(textListObject.Count - 1);
    textListElement.ID = id;
    textListElement.Default = item;

希望这就是你所追求的目标