There are two solutions:
An easy solution would be to add one BasMove for each set of sensors. Depending on the active type number you can use only one of the BasMoves in your application code. Also in the HMI you can hide the BasMoves except the one that is relevant for the current type number, see explanation/pictures in this forum post: https://community.developer.bosch.com/t5/Control-plus/How-to-realize-3-positions-with-two-cylinders/m-p/73555/highlight/true#M738 Disadvantage of this solution is that you probably have to deativate the IoStableCheck (which is checking that sensors/outputs do not change its state without running command).
Don't use the parameters in Control plus Studio / OES, but set the ParCfgIo parameters manually in your appliction code - depending of the current type number. Parameters will only be applied when the UnitState of the BasMove changes from DISABLED to OPERATIONAL. That means, everytime you want to change to IO parameters (e.g. after PLC startup and changeover), you have to set UnitStateReq:=DISABLED, then set the ParCfgIo parameters, then set UnitStateReq:=BACKBONE_CONTROLLED (= OPERATIONAL) again. Disadvantage of this solution: You have to create your own HMI views for the BasMove using the visibility property to show only the IOs in the view that are relevant for the current type number. You cannot use the automatic generated HMI. I didn't test this solution, but it should work.
Solution 1 is easier for debugging, that's why I would prefer this solution.
... View more