I would like to filter out some set of signals (e.g. Digital Input) from a profinet device using signal Filter enum IOFilterTypes. But I am not getting the correct signal from the correct unit.
SignalCollection Signals = MainController.IOSystem.GetSignals(IOFilterTypes.Digital).Where(o => o.Type == SignalType.DigitalInput) as SignalCollection;
Should be able to use linq to filter these out. Not sure if it works with a collection, you may have to parse through signals individually. Alternatively use the code below.
SignalCollection Signals = MainController.IOSystem.GetSignals(IOFilterTypes.All);
foreach(Signal signal in Signals)
{
if (signal.Type == SignalType.DigitalInput)
{
// Do something here to inputs
}
}
Hello,
I think you have to use a binary OR (|) instead of a binary AND (&) to be able to use several filter settings.
var Signals = MainController.IOSystem.GetSignals(**IOFilterTypes.Digital | IOFilterTypes.Input**);
Best regards
Micly
