surferb said:
What is "Faceplate support"?
I don't know why animated pipes comes up so often as such a challenging feature. Simply break down the problem to sets of pipes that share the same animation conditions. All you do is base the animation (color) on an expression that takes each factor into account. This is REALLY EASY if you can use the upstream pipes (other object states). That way equations are simple and you can make changes locally that don't screw everything up. If every pipe has to be directly based on all of its dependencies then you get knarly equations where an upstream change forces you to change lots of little objects, which is painful and error prone.
Faceplate in this context = a generic screen that can be connected to a tag or tags in the PLC that are assigned at runtime - very useful for device popups etc. WinCC (the original, not flex) does not have this and is still widely used. My company that I have just joined has implemented a system but it requires considerable background C and VB code, which is ugly, confusing for maintenance programmers and easy to break.
Regarding your second point, you have answered yourself. Writing equations for every segment of pipe in a project (even simple ones) takes a long time to do something that is obvious based on simple inspection of the elements and their running status. Not to mention that for systems with multiple source/destionations, several pumping stages or multiple diverts your "really easy" equations can quickly require a large testing matrix to evaluate - you can't just take for granted the logic will be correct. Objects that just do this function without further adjustment allow you to add a functionality that is very useful for processs visualisation with no added development time.
Other things I've thought of:
1. Recipe lists that can show a filtered view at runtime which can be invoked on a screen in context (i.e. show all AR670 parameters). Most recipe objects I have seen show always show a full list and you have to identify the objects you want to modify using a standard string at the start of the comment.
2. Auto-assign. Let's say you want to create a screen which shows you input fields for the 10 parameters contained in a data block in the PLC. I'd like to be able to place 10 generic input objects on a screen, block-select them, select the first tag in the PLC and have a wizard assign the following input fields to the following tags, formatting as required, or using a standard selection field. For environments like Step 7 that support structs, you could use a wizard that auto-creates standard objects for an entire struct.
3. More checking and validation tools! This cannot be emphasized enough. Ideally I'd like to be able to see a list output that shows the connected tag for each screen object next to it's identifying string, the tag type (float, bool etc) and have highlights for potential problems (i.e. no range set for input). Clients haaaaate it when you have screen objects that don't work or, worse, don't work the way they should.