Esempio n. 1
0
        public AssemblyStation Create(string name, Directory directory)
        {
            var settings = new CreateObjectSettings()
            {
                ParentNodeId     = directory.NodeId,
                ReferenceTypeId  = UnifiedAutomation.UaBase.ReferenceTypeIds.Organizes,
                RequestedNodeId  = new NodeId(name, _nodeManager.InstanceNamespaceIndex),
                BrowseName       = new QualifiedName(name, _nodeManager.InstanceNamespaceIndex),
                TypeDefinitionId = new NodeId(PolslMacrocourse.DcsLab.ObjectTypes.AssemblyStationType, _nodeManager.TypeNamespaceIndex)
            };
            var node = _nodeManager.CreateObject(_nodeManager.Server.DefaultRequestContext, settings);


            var station = new AssemblyStation(node, _nodeManager);

            var setters = makeSetters(station);
            var getters = makeGetters(station);

            foreach (var variableName in variables)
            {
                _nodeManager.SetVariableConfiguration(
                    node.NodeId,
                    new QualifiedName(variableName, _nodeManager.TypeNamespaceIndex),
                    NodeHandleType.ExternalPolled,
                    new Tuple <Func <object>, Action <object> >(getters[variableName], setters[variableName])
                    );
            }

            return(station);
        }
Esempio n. 2
0
 private Dictionary <string, Func <object> > makeGetters(AssemblyStation station)
 {
     return(new Dictionary <string, Func <object> >()
     {
         { "ST_INPUT", () => station.StInput },
         { "ST_OUTPUT", () => station.StOutput },
         { "CYCLE_TIME", () => station.CycleTime },
         { "ALARM", () => station.Alarm },
         { "BLOCKED", () => station.Blocked },
         { "EMPTY", () => station.Empty },
         { "EXCLUDED", () => station.Excluded },
         { "INTERVENTION", () => station.Intervention },
         { "RUN", () => station.Run },
         { "TIMEOUT", () => station.Timeout },
     });
 }
Esempio n. 3
0
 private Dictionary <string, Action <object> > makeSetters(AssemblyStation station)
 {
     return(new Dictionary <string, Action <object> >()
     {
         { "ST_INPUT", v => station.StInput = (bool)v },
         { "ST_OUTPUT", v => station.StOutput = (bool)v },
         { "CYCLE_TIME", v => station.CycleTime = (byte)v },
         { "ALARM", v => station.Alarm = (bool)v },
         { "BLOCKED", v => station.Blocked = (bool)v },
         { "EMPTY", v => station.Empty = (bool)v },
         { "EXCLUDED", v => station.Excluded = (bool)v },
         { "INTERVENTION", v => station.Intervention = (bool)v },
         { "RUN", v => station.Run = (bool)v },
         { "TIMEOUT", v => station.Timeout = (bool)v },
     });
 }