Siemens PL C Sim API - PullRequest
       0

Siemens PL C Sim API

0 голосов
/ 25 марта 2020

Я работаю с Siemens PL C Инструмент моделирования. Я бы хотел немного автоматизировать.

У меня есть Visual Studio Community '19 и я выбрал WPF.

Задача, с которой я борюсь, это ...

Я беру список тегов

> STagInfo[] TagInfos { get; }

и помещаю его в список

private List<TagSim> LoadCollectionData()
{
    List<TagSim> myList = new List<TagSim>();
    STagInfo[] abc = PLC.TagInfos;
    foreach (STagInfo s in abc)
    {
        if (((s.Area).ToString() == "Input") & (s.DataType.ToString() == "Bool"))
        {
            myList.Add(new TagSim()
            {
                TagName = s.Name,
                TagArea = (s.Area).ToString(),
                TagType = s.DataType.ToString(),
                Status = PLC.ReadBool(s.Name)
            }) ;
        }

    }

    return myList;
}

и показываю в DataGrid

    <DataGrid.Columns>
        <DataGridTextColumn Header = "TagName" Binding = "{Binding TagName}" />
        <DataGridTextColumn Header = "TagArea" Binding = "{Binding TagArea}" />
        <DataGridTextColumn Header = "TagDataType" Binding = "{Binding TagType}" />
        <DataGridCheckBoxColumn Header = "Status" Binding = "{Binding Status}"/>
        <DataGridCheckBoxColumn Header = "Set" Binding = "{Binding Set}"/>
        <DataGridTextColumn Header = "Comment" Binding = "{Binding Comment}" />
    </DataGrid.Columns>
</DataGrid>

У меня вопрос ... Как обновить сетку данных, если теги изменяют значения? Когда в сетке данных изменяется «Set», мне нужно вызвать WriteBool («TagName», SetValue). Как я могу получить информацию, что ячейка в datagrid изменена? Является ли WPF и datagrid хорошим подходом?

С наилучшими пожеланиями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...