Как мне написать текстовый список в CODESYS динамически во время выполнения?
Я использую текстовый список в качестве источника для отображения в поле со списком (раскрывающийся список)
заранее спасибо
Как мне написать текстовый список в CODESYS динамически во время выполнения?
Я использую текстовый список в качестве источника для отображения в поле со списком (раскрывающийся список)
заранее спасибо
Во-первых, вам нужно получить фабрику текстовых списков, используя 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;
Надеюсь, это то, что вам нужно