You have to see the whole thing from a different perspective. The no_assign attribute gives the developer of an FB the option of preventing the FB from being used in an unauthorized way.
This enables him to prevent erroneous program reactions whose cause would not be apparent to the user of the FB.
As an example, the CoDeSys documentation mentions the use of pointers. As each instance of an FB has its own copy of the local variables. However, if pointers are used, they can refer to the same memory location. As a result, all instances would read or write the same variable, which is not intended by the developer of the FB. This is why he uses the attribute no_assign.
... View more