04-04-2023 10:22 AM
I have a use case like this.
There are two cylinders mounted one by one(C1, C2), they are used to get 3 positions(S1, S2, S3), but these sensors are not installed in cylinders, they are installed out of these cylinders with fixed positions, and these positions can be got by following operation(just an example):
C1 in work position & C2 in work position = S1
C1 in base position & C2 in base position = S2
C1 in work position & C2 in base position = S3
Then I have following options to realize it:
1, use two BasMoveStantdard objects, but the problem is one cylinder can't get right sensor signals, e.g. if C1 in base position, C2 can't get work position.
2, use one BasMove3Positions object, but the problem is for this object, it has 3 output with 3 input, that mean 1 output will get 1 position, this is not suitable for my case, I can use some flags to do converstion in PLC program, but is there any better solution?
3, and if I want to use it as an internal element in another objects, I can't use the option 2, any other solutions for it?
Solved! Go to Solution.
04-04-2023 01:32 PM - edited 04-05-2023 03:21 PM
If the BasMove3Position does not work,
I think I would create a CommandHandler with the commands BAS, MID, WRK
and under this CommandHandler I would use 3 BasMoveFelxible K301_BAS , K301_MID and K301_WRK.
In each instance, I would always configure all valves and switch them so , that the correct position is reached
and configure the sensors accordingly.
In the command sequences of the CommandHandler, I would then only start the WRK position of the respective instance.
And I would hide the underlaying BasMoveFlexible in the HMI, so that there is only one element to control the 3 positions.
04-06-2023 02:58 AM
That looks like a good idea, and any other suggestion if I want to use it in one functional object which contain it as a internal element?
04-06-2023 08:59 AM
Thorsten_Brach's solution should be usable as an InternalElement as well. Functional objects can have more than one level of internal elements. In this case, you need to forward the Port parametes twice, from each level to the next one.
04-11-2023 02:49 AM - edited 04-11-2023 02:50 AM
for your suggestion, should I create a new object for this handler and then put it as internal element in another object or don't create new object and just put it as internal element in object directly, if I can put it as internal element in object directly, how should I do? if there any examples?