Child Projects

Movicon allows you to structure projects by decentralizing  resources in other projects (child) with dynamic relationships, giving you the possibility to distribute your projects.

Movicon has a powerful and innovative feature, which allows you to face new challenges in planning supervision systems. "Child Projects" are normal Movicon projects which, even when planned to function independently, are linked to parent projects creating a "Parent-Child" relationship where the Parent project is provided with all the resources of the Child project as if they were its own.

 

One project can be associated with many Child projects which can then become Parent projects and have their own  Child projects. Therefore you can create a true and real dropdown family tree of projects.

 

Warning! Alarms from Child projects cannot be visualized in the Parent project because the Alarm Window in Parent projects is unable to displayed alarms from Child projects.  In addition, "Embedded Screen" or "Tab Group" objects can not be used in Parent project screens to display Child project Alarm windows.  In this case, Alarm Windows displayed as such in "Embedded Screen" or "Tab Group" objects will remain blank. To display alarms of a Child project you will need to open the open the Child project screen containing the Alarm Window.

 

This opens the way to many types of advantages. Let's look at the main ones:

 

 

Distributed Projects

Projects structured with Parent-Child relationships provide many advantages to companies working in teams. In respect to the traditional technologies, where many people work using and sharing tasks in the same project, Movicon offers the possibility to distribute work in different projects  independently where the Team Leader can have, in their own Parent Project, all the resources of the Child Projects of its collaborators, who can  also completely work  independently.

The Father Project is provided with all its children's resources internally, without  any resource name distinction or duplication, as the name difference is governed by the child project's path.  Therefore, for instance, a VAR0001 may co-exist in the parent project as well as in the child project because individualized by the project's name and path.

 

 

A traditional Project team structure diagram

 

 

A distributed project structure diagram of  Parent-Child project relationships

 

 

 

Distributed Run

The Father-Child Project relationship is very useful for modular systems or  machines  where, for instance, the plant is divided into zones which can also be independent from one to another. In a situation like this you can create more projects, one for each zone, and then integrate them into one Father project from which you can access the pages and the variables of the Child projects.

 

Example:

An automation line is composed of 3 independent machines. Each machine has its own project run locally on its PC. The machines are then integrated into a production line and linked to a main Supervision PC.

The big advantages Movicon gives you not only involve drastic development time reductions but also the chance to create a main supervision project such as the "Parent Project" and three "Child Projects" representing the three individual machines, which reside in local PCs.

In this way, the parent project can automatically be provided with all the individual variables of the various child projects, to produce general summary screen  layouts.  By using these general layout screens, residing in the parent project, you can then open the screens of each individual machine by simply opening the child project screens, which reside locally in the machines' PCs,  in the father project. Not only do you save time but you get the advantage of having any future modifications executed on the machines will automatically be executed in the main supervisor as well.

 

 

 

 

This figure illustrates an automation system composed of one Server project (Supervisor) being the "Parent Project" of three individual local machine projects  being the "Child Projects"

 

 

Client-Server with Child Projects

When needing to create a speedier Networking Client-Server system in which a <n> of identical Client projects are present and connected to the Server station, it is possible to exploit the techniques used for creating  Parent-Child projects to create Client projects distributed in any PC in net.  This comes with the advantage that any modifications to the Server project will be made immediately available in each one of the Client projects.   

In order to obtain this advantage simply create the Client project by means of using an empty 'Parent' project, which is a project without local project resources, and that the 'Child' project be the 'Server' project.   

In this case the "Child Project Options" must be configured specifying the IP address or the Name of the Server PC in the "Network Server" property only to automatically make the Child project a Networking project: the Child project resources (Drivers, Alarms, Data Logger/Recipes for example) wil be disabled while the Varialbes and the Window objects, Grid and Trend are connected in Network.

More specifically, the Child project may be a physical copy of the Server project in the Client PC (for example in cases where the LAN network is slow) or retrieved in net directly on the Server as  a Link (if the LAN nework is fast enough).  The later configuration permits not only the same identical Client project in any net PC but also to centralize the software in a way that the Client is always automatically updated for any Server project variation whenever it occurs.   

 

 

 

 

Client-Server structure with Parent (Client) - Child (Server) relationship

 

This architecture does not include the automatic startup in runtime mode of Child projects together with the Parent project startup in runtime mode as autonomous projects, therefore as module projects.  Therefore it is necessary to keep the "Run" and "Auto Run" options disabled in the Child project's "Impostazioni Opzione Progetto Figlio" properties.  In addition, only the IP Address or the Server project's name (supervisor)needs to be defined in the "Network Server" property.

 

Due to restrictions in using the System Variable for Networking projects (see "System Variables")for which it is not possible to exchange the variable's value between a Server and one or more Clients, it will not possible, for example, to use the "ActiveUserName" member to know the name of the user logged in the Client application.

However, it is possible to use the "SynopticCmdTarget" interface's "GetActiveUserObject" method within a screen's object to know the name of the currently logged in user. This method can also be used on the Server side as well. For example, if you place a "Text" object on screen, you can use its VB Script content and SymbolLoading() Event to update the Text object's "Title' with active user's name:

 

Public Sub SymbolLoading()

 If Not GetSynopticObject.GetActiveUserObject Is Nothing Then

  Title = GetSynopticObject.GetActiveUserObject.Name

 Else

   Title = ""

 End If

End Sub

 

 

 

When a local Client project user is logged in, this user will also be used by the Movicon Windows (but not by the Variables) for authentication towards the Server project.  If the Client user does not exist on the Server, a " 'ServerName' Network Server authentication failed" message will appear in the Movicon window.  Alternatively, the "Default Log On User' property in the Server Project's 'Networking' properties can be used whereby Movicon Windows' authentication will occur independently from the user logged in locally in Client.  Web Client sessions will be authicated iwht the Default User set in the Server.

 

 

       

 

See Also