Developer Portal Community

    Showing results for 
    Search instead for 
    Did you mean: 

    How to realize 3 positions with two cylinders

    How to realize 3 positions with two cylinders

    Established Member

    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? 



    5 REPLIES 5

    Long-established Member

    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.

    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?

    Community Moderator
    Community Moderator

    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.

    Established Member

    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?