Пример #1
0
        private void UpdateSymbols(ConnectionState state)
        {
            if (state == TwinCAT.ConnectionState.Connected)
            {
                var loader = SymbolLoaderFactory.Create(Client, new SymbolLoaderSettings(SymbolsLoadMode.VirtualTree));
                TreeViewSymbols = loader.Symbols;

                var loader2 = SymbolLoaderFactory.Create(Client, new SymbolLoaderSettings(SymbolsLoadMode.Flat));
                FlatViewSymbols = loader2.Symbols;
            }
            else
            {
                TreeViewSymbols = null;
            }
        }
Пример #2
0
        private static void WriteSymbolTree(ReadOnlySymbolCollection symbolLoaderSymbols, AdsConnection connection)
        {
            Console.WriteLine("\t");
            foreach (var symbolLoaderSymbol in symbolLoaderSymbols)
            {
                Console.Write(symbolLoaderSymbol.InstancePath);

                // var symbolInfo = client.ReadSymbolInfo(symbolLoaderSymbol.InstancePath);
                // var symbolInfor = new symbolin
                try
                {
                    if (symbolLoaderSymbol is ISymbol info)
                    {
                        if (info.Category == DataTypeCategory.Primitive)
                        {
                            SymbolCollection coll = new SymbolCollection()
                            {
                                symbolLoaderSymbol
                            };
                            SumSymbolRead readCommand = new SumSymbolRead(connection, coll);
                            object[]      values      = readCommand.Read();
                            Console.Write(": " + values.FirstOrDefault());
                        }
                        else
                        {
                            Console.Write(": " + info.Category);
                        }
                    }
                    else
                    {
                        Console.Write(": -");
                    }
                }
                catch (Exception e)
                {
                    var type   = symbolLoaderSymbol.DataType.GetType();
                    var symbol = connection.ReadSymbol(symbolLoaderSymbol.InstanceName, symbolLoaderSymbol.DataType.GetType(), true);
                    Console.Write("Exception: " + e);
                }

                Console.WriteLine(string.Empty);
                if (symbolLoaderSymbol.SubSymbols.Any())
                {
                    Console.WriteLine("__________subs to " + symbolLoaderSymbol.InstancePath);
                    WriteSymbolTree(symbolLoaderSymbol.SubSymbols, connection);
                }
            }
        }