I think most people who've used TwinSAFE with Control Plus will admit that using a TwinSAFE IO in the TwinCAT PLC is a bit of a hassle, and requires some extra effort.
I was trying to find ways to make this less painful and found I can add DigitalInput Channels to an FSOE Module and link the Safety Inputs like normal Digital Inputs. The Safety Inputs are then usable in Control Plus without mapping Inputs in TwinSAFE. This doesn't work for outputs, but it feels easier and less convoluted to me.
It seems to work, but does anyone know of a reason why this would be a bad idea?
As an example the EL1904 FSOES Safety Module could get the following addition. (I think having the Parameter allows it to be a compatible change with existing projects.)
<Parameters>
<ParameterValue name="Input Linking Type" hierarchy="" refId="CFF8565D-0626-48B3-9344-87FEA4E40905" varType="STRING" textDe="Linking Type" textEn="Linking Type" initialValue="SafetyPLC" variable="FALSE" >
<Values>
<Value textDe="Safety PLC" textEn="Safety PLC" value="SafetyPLC"/>
<Value textDe="Local (and/or Safety PLC)" textEn="Local (and/or Safety PLC)" value="Local"/>
</Values>
</ParameterValue>
</Parameters>
<Channels>
<Channel name="Channel 1">
<Types>
<Type name="DigitalInput" />
</Types>
<Condition refLink="CFF8565D-0626-48B3-9344-87FEA4E40905" comparator="EqualTo" value="Local"/>
</Channel>
<Channel name="Channel 2">
<Types>
<Type name="DigitalInput" />
</Types>
<Condition refLink="CFF8565D-0626-48B3-9344-87FEA4E40905" comparator="EqualTo" value="Local"/>
</Channel>
<Channel name="Channel 3">
<Types>
<Type name="DigitalInput" />
</Types>
<Condition refLink="CFF8565D-0626-48B3-9344-87FEA4E40905" comparator="EqualTo" value="Local"/>
</Channel>
<Channel name="Channel 4">
<Types>
<Type name="DigitalInput" />
</Types>
<Condition refLink="CFF8565D-0626-48B3-9344-87FEA4E40905" comparator="EqualTo" value="Local"/>
</Channel>
</Channels>
<IoLinks>
<BinIoLink channelName="Channel 1" tcIoName="TxPDO^FSOE^InputChannel1"/>
<BinIoLink channelName="Channel 2" tcIoName="TxPDO^FSOE^InputChannel2"/>
<BinIoLink channelName="Channel 3" tcIoName="TxPDO^FSOE^InputChannel3"/>
<BinIoLink channelName="Channel 4" tcIoName="TxPDO^FSOE^InputChannel4"/>
</IoLinks>