What are User Groups
User Groups are used when the same program parts are used multiple times. But, and this is important, they are not instances but always copies when they are used. If changes to a user group are made subsequently, these changes will not be automatically transferred to all previous copies. This means that User Groups should only be used multiple times, if the function has been clearly tested.
Example User Group EDM 1V00_
Since the existing EDM block is very special and therefore not suitable for every user, it is a good example for the application of User Groups.
Existing EDM Block
EDM means External Device Monitoring. For example, a valve or a relay is controlled and a feedback input is expected in a certain monitoring time. If the feedback input is to late, an error is output and the control is taken back. Only when the problem, that caused the error, is turned off, can the error be acknowledged successfully. Otherwise, it will come back immediately after a reset. This reset signal can be triggered, for example, via a functional input via a higher-level PLC and this is the main different to the existing EDM-Block.
User Group EDM Block with description
Each input and output of a user group should contain the name of the block so that it is always unique in a program. The names should also always end with an underscore _ because if a user group is used multiple times, a sequential number is still attached. This can be confusing if a name ends with a number (e.g., Input1 and Input2 will be Input11 and Input21 )
User Group EDM Block internal logic
In this example, no Terminal In and Terminal Out are used because the logic is relatively simple. This makes the compilation smaller by fewer objects. However, this is not always possible, because otherwise there are to many crossing lines and the code becomes confusing. The discrepance time can be configured inside the logic.
Example User Group TimeMonitoredInputs 1V00_
Normally the inputs can be configured time-monitored. In this case, however, the monitoring time is set to 3s. If a shorter monitoring time is required, this can also be realized via a User Group.
Configuration of inputs as time montored inputs
User Group TimeMonitoredInputs 1V00_ with description
User Group TimeMonitoredInputs 1V00_ internal logic
In this example, no Terminal In and Terminal Out are used because the logic is relatively simple. This makes the compilation smaller by fewer objects. However, this is not always possible, because otherwise there are too many crossing lines and the code becomes confusing. The discrepance time can be configured inside the logic.
Import of User Groups
The attached files can be imported via the Import Group function.
Import User Group
After the import you will find the imported group in the Library:
Imported Groups in the Library
Special Hints to User Groups
User Groups can be locked, i.e. no changes can be made without unlocking them first. If timers are used in a User Group and the cycle time is increased, for example, it may be that a subsequent compiling leads to an error. The timer are always a multiple of the cycle time the SAFEX, but these are not automatically adjusted. However, it is sufficient to click in and confirm with Enter and the times are correct again. This is also possible when the User Group is locked.
... View more