The ADISRA SmartView consists of three main components.
First, let’s take a look at the image below and then understand how they work internally.
The ADISRA SmartView Engineering tool is used by the application developer to create the entire application and it requires an engineering license to do so. At any point this application can be built or executed. Both of these actions require an entire build of the application since the output of this build will be used by the Runtime and the Viewer.
But what actually happens when you build an application?
The output of the build are several DLL files which will be generated in the project folder. The DLLs must be valid DLLs or else the build will fail and an error will appear in the engineering logs. If there are errors in a button for example, you will still be able to run the application and start the RunTime and the Viewer, but that button will not work.
As soon as the DLLs are generated, they will be used by the Runtime and the Viewer. Those auto generated DLLs are basically C# classes that will represent a Graphics screen, a trigger or maybe a service.
The ADISRA SmartView Runtime is a server and essential to any application. It is possible to have an application executing without any Viewers, but never without the Runtime. The Runtime holds all the Tags, Services, Triggers, Driver’s communication, Database Communication, Alarms, Function Libraries and Security System.
It is also possible to create redundant servers, which means two servers located in diferente machines will be kept synchronized.
The Runtime is installed in the client’s machine and it requires a Runtime license to be executed. In order to execute the Runtime, it only requires a shortcut that will basically start the Runtime executable (the client does not need to open the engineering to start the Runtime).
As soon as it is executed, it opens a port to receive connection from the following clients.
- Remote Viewer
- Web Browser
- Data Watcher
The ADISRA SmartView Viewer as mentioned above is a client of the Runtime server. It is not essential to the execution of an application, but it is the graphical representation of the application. A great example is the ability to allow users to interact with the machine (Human Machine Interface) by sending commands or receiving data.
It can be executed in any remote machine and connect to the Runtime server.
As soon as the connection is made, the Runtime server transfers the graphic screens to be opened by the Viewers so the user does not need to download the project before executing it. As mentioned before, the Runtime holds many modules such as the Tags, Services, Triggers, etc… but the Viewers will also hold some executions locally. Since the graphic screens are transferred for each Viewer connection, it will executed locally. A screen script (i.e. On Open) will be executed locally on that Viewer and will not affect other Viewers. This fact is important to keep in mind in case an animation is created. If an animation needs to be animated to all the Viewers at the same time, the animation logic must be in the Runtime; it could be a service changing a tag’s values. However, if the animation must be local for each viewer, this animation must not use tags, but screen objects and screen scripts.