Написание текстового списка в codesys

Как мне написать текстовый список в CODESYS динамически во время выполнения?

Я использую текстовый список в качестве источника для отображения в поле со списком (раскрывающийся список)

заранее спасибо


person user1271454    schedule 01.10.2015    source источник
comment
Вы решили проблему? Я использую строку и вставляю , перехватываю элементы... Его монитор определяет это как новый индекс. Но максимальное строковое значение равно 255. Есть проблема. Любое предложение?   -  person Klasik    schedule 22.10.2015


Ответы (1)


Во-первых, вам нужно получить фабрику текстовых списков, используя 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, вы можете добавить к нему строки id и item:

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

Надеюсь, это то, что вам нужно

person David Setty    schedule 30.10.2015