04-04-2024 09:28 AM
Hello all,
I have some questions and suggestions about use of interfaces in CPS. Use a Interfaces is a successful history between Peripherals and Units. We can extend this functionality to make easy handling between Units and CmdHandlers too and increase the standardization level.
Question
1- It's is possible to define more than one interface in a Code Entity?
Suggestion add more functionalities on CPS to extend the use of Interfaces.
Could be interesant to have in CPS...
... possibly to declare an interface as a CodeEntity (not necessary to declare Methods and properties).
... a possibility to set interface implementations in CmdHandlers.
What are your opinions?
Best regards
04-04-2024 04:04 PM
You can define more than one interface by separating them with a pipe sign (|).
I don't think it would be a big benefit to declare interfaces in CpStudio. If that was possible, you would expect to link a dynamic number of interfaces at the implementing FB, which would be a technical problem. (The data layer we are using does not support lists of references to other data objects.) The way it is now is not very comfortable, because you can misspell interface names, but I would say it works well enough.
I understand the requirement to add own interfaces to the declaration of object-defined FB types. At the moment, the Interfaces property is editable for project-defined FBs but not for object-defined ones because every time when the object definition is reloaded, the Interfaces property is updated with the information from the object definition. If the user can add interfaces to object-defined types, CpStudio would need to remember which interfaces came from the object definition and handle them somehow separately. I don't say that's impossible, but it would be some implementation effort, so it would be interesting to know how useful this feature would actually be.