Tutorial scada

download Tutorial scada

of 57

description

in this tutorial you find scada system

Transcript of Tutorial scada

  • Ecava Sdn. Bhd.

    IntegraXor HMI/SCADA

    Version 3.70

    Tutorial for Beginners

    Document number: IGX-TUB-37

    Document date: 15 January 2008

    Last revision date: 27 September 2011

    Version: 3.70.4173 or later

    Prepared by:

    Wong Foot Yow

    http://www.integraxor.com

    Copyright Ecava Sdn Bhd 2011. Page 1 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    ContentsContentsContentsContents

    Introduction...........................................................................................................................4Product..............................................................................................................................................4Purpose.............................................................................................................................................4Dependencies....................................................................................................................................5Industrial Automation Basics...........................................................................................................6

    Basic Knowledge..................................................................................................................7Programmable Logic Controllers (PLC)..........................................................................................7Data & Communications..................................................................................................................7PLC & IntegraXor............................................................................................................................8

    Project Overview................................................................................................................10Candy Factory.................................................................................................................................10New Project....................................................................................................................................10Project Management.......................................................................................................................12Running the Project........................................................................................................................13Sample Projects..............................................................................................................................15

    Device Configuration..........................................................................................................163 Steps.............................................................................................................................................16Supported Devices..........................................................................................................................23

    Graphical Animation...........................................................................................................24Inkscape SAGE...............................................................................................................................24Get Tag & Set Tag..........................................................................................................................27Web Buttons...................................................................................................................................30Slider Movement............................................................................................................................31Visibility (Opacity).........................................................................................................................33More Animations............................................................................................................................35

    Server-side Scripting..........................................................................................................36Javascript........................................................................................................................................36My First Javascript.........................................................................................................................36

    Client-side Scripting............................................................................................................40Many side scripting.........................................................................................................................40Inkscape SAGE Script....................................................................................................................41More scripts....................................................................................................................................42

    HTML..................................................................................................................................43HTML Basics..................................................................................................................................43My First HTML..............................................................................................................................43Project HTML.................................................................................................................................45Calling HTML from SVG..............................................................................................................46More HTML...................................................................................................................................47

    Alarms................................................................................................................................48Alarm Management........................................................................................................................48

    Copyright Ecava Sdn Bhd 2011. Page 2 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Alarm Configuration.......................................................................................................................48Trending.............................................................................................................................50

    Process Trending............................................................................................................................50Trend Configuration.......................................................................................................................50

    Database & More................................................................................................................54Database Management....................................................................................................................54Microsoft Access............................................................................................................................54Microsoft SQL Server.....................................................................................................................55Other Databases..............................................................................................................................56End of Tutorial................................................................................................................................56

    Conclusion..........................................................................................................................57Future of Industrial Automation.....................................................................................................57Contact Us......................................................................................................................................57

    Copyright Ecava Sdn Bhd 2011. Page 3 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    IntroductionTHE INTERNET HAS BEEN THE MOST FUNDAMENTAL CHANGE DURING MY LIFETIME AND

    FOR HUNDREDS OF YEARS. SOMEONE THE OTHER DAY SAID, IT'S THE BIGGEST THING

    SINCE GUTENBERG, AND THEN SOMEONE ELSE SAID NO, IT 'S THE BIGGEST THING SINCE

    THE INVENTION OF W RITING. - RUPERT MURDOCH

    Product

    IntegraXor is a web-based SCADA software with features such as SVG graphic

    visualization & animation, real time device connectivity with Modbus, OPC and majorprotocols, alarm functions, ODBC database logging, trending and reporting. It is designed

    from ground up using web technologies to create a complete tool for building sophisticated

    and intelligent real-time systems.

    Purpose

    The purpose of this document is to give instruction to the reader on how to get started with

    IntegraXor. Various tools in IntegraXor will be explored to create a simulated candy

    factory. The examples here are meant to give initial guidance to the reader on how to use

    IntegraXor and to assist the reader to quickly create and implement projects based on theirown requirement.

    Copyright Ecava Sdn Bhd 2011. Page 4 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Dependencies

    Before we begin, we need to ensure we have the following software installed.

    1) IntegraXor software2) Adobe SVG Viewer3) Inkscape SAGE

    If you do not have all of the above, please go to http://www.integraxor.com to download

    and install. IntegraXor runs on Windows platform (Microsoft Windows XP and above orMicrosoft Windows Server 2003 and above) and the front-end/viewer uses a web browser(Microsoft Internet Explorer 8.0 and above, Mozilla Firefox 3.5 and above, or GoogleChrome 3.0 and above). IntegraXor's development tools are free. You can install anddevelop as many projects as you want. Licensing is for run-time systems only.

    Also, as a truly web based product, IntegraXor utilizes HTML and Javascript as the

    programming language. If you are not familiar with any one of the script, do not worry. We

    will show you the basics. Have confidence that many people know these 2 programming

    languages and help is widely available on the Internet.

    Copyright Ecava Sdn Bhd 2011. Page 5 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Industrial Automation Basics

    If you have used a HMI/SCADA software or a PLC before, you may skip the next chapter.

    If you are new to Industrial Automation, you will need some basic knowledge of industrial

    automation, communication protocols and concept of tags/points which you will find in the

    next chapter.

    Copyright Ecava Sdn Bhd 2011. Page 6 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Basic KnowledgeProgrammable Logic Controllers (PLC)A programmable logic controller (PLC) is a microprocessor based device used forautomation processes, such as control of machinery on factory assembly line, or control of

    boxing machines and conveyor lines. A key feature of a PLC is the facility for input/output

    (I/O) which connect to sensors and actuators. Through these I/Os, a PLC can read limitswitches, analog process variables (such as temperature and pressure), and the positionsof complex positioning systems. A PLC can operate electric motors, magnetic relays or

    solenoids, pneumatic or hydraulic cylinders or analog outputs.

    They are one of the most versatile and common device used for industrial automation.

    They monitor the inputs, solve logic of a user program and control the outputs.

    Data & Communications

    A PLC has a wealth of information inside. Information such as math calculations or input

    state of a device are stored in PLC's data area. Data areas are internal memory registers

    of a PLC, each with it's own memory address. These data are accessible from external

    systems via communication ports built in a PLC. Usually, a PLC will have a 9-Pin serial

    RS232 port with Modbus included as one of the communications protocols. Optionally,

    they may have Ethernet ports or various filed buses such DeviceNet or Profibus. Example:

    Copyright Ecava Sdn Bhd 2011. Page 7 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    the running state of a motor is available to the PLC via input 1. Depending on the make of

    the PLCs, this input 1 may be addressed by the Modbus address 10001.

    PLC & IntegraXor

    IntegraXor is a tool to develop HMI/SCADA applications. IntegraXor has the

    communication drivers to exchange data directly with a PLC via it's communication port. In

    the above example, in order to get the motor running state data into IntegraXor, we need

    to create the port, the PLC and then a digital tag with corresponding tag address 10001.

    IntegraXor will poll the PLC via the communication port and update the tag with the real-

    time information.

    Apart from PLCs, IntegraXor can also communicate with various other devices such as

    robots and drives that has the supported communication protocol and port.

    Diagram 2.1 : IntegraXor basic network architecture

    Copyright Ecava Sdn Bhd 2011. Page 8 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    IntegraXor also has tools to draw graphical user interface for the user. Example: A simple

    tank can be represented by a rectangle and animated with the rising and falling of the tank

    level. Alarms can be configured using IntegraXor for early detection and warning.

    Database logging, trends and many other tools are also available in IntegraXor. The

    flexibility of IntegraXor and the use of web technologies allows limitless possibilities for

    your automation system on a global level.

    Here's a screen shot of an application developed with IntegraXor.

    Diagram 2.2 : IntegraXor screen-shot

    Copyright Ecava Sdn Bhd 2011. Page 9 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Project OverviewCandy Factory

    In this tutorial, we will create a new IntegraXor project and develop an application tomonitor and control a simple candy factory.

    New ProjectClick Start > All Programs > Ecava > IntegraXor Editor. This will open IntegraXor's ProjectEditor where you will configure the server side of the application.

    With the Project Editor (PE), click File > New Project.

    Diagram 3.1 : Creating a new project with Project Editor

    Copyright Ecava Sdn Bhd 2011. Page 10 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Name our project, 'candy'. You may create it in any directory. For this tutorial, we willcreate a new directory called My Projects in My Documents as the location of our Candyproject.

    Diagram 3.2 : Candy project

    Copyright Ecava Sdn Bhd 2011. Page 11 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Project ManagementIn the project install location, a new folder called Candy will be created. You will find theproject file, Candy.igx file here along with several other files and directories. This Candyfolder will be your project folder. You may copy this folder to do backups or to distribute theproject.

    The left pane shows that within the Candy project, there are several folders (nodes) suchas General, Timer, IO, Database and User. These nodes contain the configuration of the

    project. Do not be alarmed if you cannot find the tags tab. They can be found by clickingon the devices (eg. MbusDevice) configured under ports (eg. COM1, ETH01) within theIO node.

    Clicking on an item on the left pane will automatically open the corresponding tab on the

    middle pane. The tab will remain open until you close them by clicking on the 'X' on the far

    right. Click on the General tab, check to ensure that our new project name is configured inthe Project ID entry. Enter Candy Project in the Title to show this heading in the front-end.

    Copyright Ecava Sdn Bhd 2011. Page 12 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 3.3 : Candy project General properties

    Running the ProjectFrom the Project Editor, click on 'Run'. IntegraXor server will run first. IntegraXor serverprovides a window into the processes running behind IntegraXor. A great place to check if

    everything is working fine.

    Copyright Ecava Sdn Bhd 2011. Page 13 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 3.4 : IntegraXor server

    Then, Internet Explorer will open with the following website address:

    http://localhost:7131/Candy/index.html. You might have noticed that this is configured in

    the post-launch under the General tab as "index.html".

    IntegraXor has a built-in web-server that delivers web pages such as index.html. It uses

    port 7131. Go ahead and view your project over the intranet and internet. Ensure toreplace localhost with your appropriate IP address.

    Copyright Ecava Sdn Bhd 2011. Page 14 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 3.5 : IntegraXor project on Internet Explorer

    Sample ProjectsOur website has a sample project available for download. Visit http://www.integraxor.comto download. The sample project contain screens from real life applications anddemonstrate how IntegraXor can be used. Unzip the downloaded sample project. Rightclick on the igx file. Select Edit to run the Project Editor or select Run to start the Project.We will add more sample projects when they are available.

    Copyright Ecava Sdn Bhd 2011. Page 15 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Device Configuration3 Steps

    Before we can do animation, we need to know where our data is coming from. IntegraXor

    gets data from devices by polling it through communication ports. This configuration is

    divided into 3 simple steps. We do not have an actual PLC for this tutorial. However, let's

    say we have a PLC controlling the whole candy factory. This PLC, with Modbus device

    address 1, is connected to the computer via a Serial RS232 port (COM2).

    Step 1: Create a Port

    By default, COM1, ETH01 and OPC ports have been created. At Project Editor, click onIO node to open the IO tab. All three ports will be listed and the tick marks show that they

    are enabled. You can unchecked an item to disable it. Disabled items are gray-ed out.

    Here, we will create a new serial RS232 port called COM2 in the next available line. Give

    your port a recognizable name (COM2) in the Name entry, a description (Serial Port 2)and enter COM2 in the Address entry. Save your changes.

    Copyright Ecava Sdn Bhd 2011. Page 16 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 3.6 : New port

    Step 2: Create a Device

    Click on 'COM2' node in the left pane, the COM2 tab will open allowing the configuration of

    devices for this port. On a new line, give the new device a name, say PLC_A. We will use

    Modbus RTU as the communication protocol and assign SEC01 (every one second) as thepolling frequency. Enter the following configuration for PLC01 device. Save changes.

    Copyright Ecava Sdn Bhd 2011. Page 17 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Parameter ValueName PLC_ADescription PLC at Process AreaAddress 1PathTimer SEC01Driver Modbus

    After selecting Modbus, click on the PLC_A entry and the detailed right pane will be

    shown. Here, the Modbus settings can be changed from the default. Details of this setting

    can be found in our User Guide (available online at our website).

    Diagram 3.7 : New device

    Copyright Ecava Sdn Bhd 2011. Page 18 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Step 3: Create Tags

    In the last step, expand COM2 in the left pane by clicking on the (+) beside COM2 andclick on expanded 'PLC_A' to open the tags tab. In the middle tab, you can add tags that

    will be mapped to the data areas in the PLC.

    Memory addresses are different for each make of PLC. Typical Modbus address ranges

    and the corresponding IntegraXor tag setting are as follows:

    Description Modbus Address IntegraXor Address Tag Attribute Coils Status (Digital Output) 00000-09999 0-9999 Input Tag (False) Inputs Status (Digital Input) 10000-19999 0-9999 Input Tag (True) Input Register (Analog Input) 30000-39999 0-9999 Input Tag (True) Holding registers (Analog Output) 40000-49999 0-9999 Input Tag (False)

    Copyright Ecava Sdn Bhd 2011. Page 19 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 3.8 : Tags configuration

    For Modbus, Batch allows a group of tags with contiguous addresses to be polled in a

    cycle instead of individual polling. This will speed up communication especially if the

    addresses are fragmented. Example: Batch 1 for addresses 1,2,3 and Batch 2 for

    addresses 23,24,25. Details of this setting can be found in our User Guide.

    The above steps provide an initial guide to configure your own devices. Check the User

    Guide for supported protocols and details on how to configure them.

    Copyright Ecava Sdn Bhd 2011. Page 20 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Since we will not be using an actual PLC for this project, we will be using virtual tags as areplacement. Virtual tags are internal tags that are not tied to any physical I/O. You can

    use these tags as variables to contain data. These virtual tags do not count to the final

    licensed I/O count so you can create as many virtual tags as you want.

    Click on 'IO' node and unchecked the Enable check box to disable COM2 port. IntegraXor

    will not poll devices configured in this port if this check box is disabled. Save your changes.

    Under 'IO', click on '[Virtual]' node to open the virtual tags tab. Create the following tags

    which will be used in the following tutorial:

    Tag Name Data Type Persist level_chocolate real32 mdb level_syrup real32 mdb level_vanilla real32 mdb level_strawberry real32 mdb

    Some tags have been created. Click on the entry to modify the configuration of the tag.

    The other settings can remain as default.

    Copyright Ecava Sdn Bhd 2011. Page 21 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 3.9 : Virtual tags

    Run your project with the above changes. In IntegraXor server, the Watch windowprovides real-time values of all the configured tags as well as system tags. Ensure the

    Watch window is open clicking on View > Watch Window. In the Watch window, locate one

    of the above tags in the Watch window for example 'level_syrup'. Double click on the value

    to set a new value, say 10.5. If the project stops, this value will be saved to database if

    Persist is configured. You can also add the tag to the favorite watch list (click on ) tomonitor the value or create your own watch list.

    Copyright Ecava Sdn Bhd 2011. Page 22 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 3.10 : Watch tags

    Supported Devices

    IntegraXor version 3.7 supports any device that runs on Modbus Serial (RTU or ASCII),Modbus TCP/IP, OPC, GE Fanuc's SNP, Omron's FINS and Mitsubishi Melsec-Q. We will

    continue to add native drivers to IntegraXor as we believe communication to devices forms

    an integral part of a SCADA system and it should not be dependent on third party software

    such as OPC servers. If the developer can choose to use native drivers instead of

    purchasing another OPC server software for device communication, the developer can

    reduce overall cost of the project.

    Copyright Ecava Sdn Bhd 2011. Page 23 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Graphical AnimationInkscape SAGE

    Under 'Screen' node of the Project Editor, click on 'overview.svg' to launch Inkscape SAGEand edit this graphic file. As an alternative, you can use Windows Explorer, go to My

    Documents > My Projects > Candy. Right click on overview.svg and select Inkscape.Inkscape SAGE is the tool for drawing graphics and configuring animation based on your

    tags.

    Select and delete all existing items in overview.svg. In Inkscape, select the Rectangle tool

    on the left (square icon). Drag to create a rectangle in overview.svg. Click on Select tool(arrow icon) to return to selection mode.

    Diagram 4.1 : Inkscape SAGE draw rectangle

    Copyright Ecava Sdn Bhd 2011. Page 24 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    This rectangle will be used to animate a tank's fill level in your candy factory. You can

    change the color and border style of your tank level by selecting menu Object > Fill andStroke (or hit CTRL+SHIFT+F)...

    Next, right click on the tank and select Object Properties (or hit CTRL+SHIFT+O). Select'Bar' animation, enter app.currentTime.second in Tag field. This tag called

    app.currentTime.second is an internal tag which contains the time value of seconds. Enter

    0 in the Min field and 59 in the Max field. Click OK. Save overview.svg.

    Diagram 4.2 : Object Properties Bar animation

    Copyright Ecava Sdn Bhd 2011. Page 25 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Check IntegraXor Server to make sure project is running. Return to Internet Explorer, hitF5 to refresh. You will see the level of your tank changing every second. Congratulations!

    You have successfully created a basic graphic animation screen in IntegraXor.

    You can draw another rectangle to show the outline of the tank. However, this new objectlies on top of our animated tank object. You can either set the Opacity (Visibility) to 50% inthe Fill and Stroke of the tank outline object or send the object lower below the animatedtank object by selecting menu Object > Lower (or hit Page Down).

    Select the Gradient tool on the left (or hit CTRL+F1), click and drag across the tank outlineobject to create a gradient. Use edit gradients in the Fill and Stroke to customize additionalstops or offsets to create a 3D effect. Change the thickness and style of the object's outline/ stroke in 'Stroke Paint' and 'Stroke Style' tabs of the Fill and Stroke.

    Now, create 4 tanks for chocolate, strawberry, vanilla and syrup. Use the tags you created

    earlier and configure Bar animation for each tank with Min 0 and Max 100.

    Copyright Ecava Sdn Bhd 2011. Page 26 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Get Tag & Set Tag

    Apart from graphic visualization of the level, we also need some text visualization. The

    Text tool is easy to find. On the left, select the Text tool with a Capital A as an icon. Click

    on an empty area in overview.svg and key in 'Vanilla'. Now, you can label the rest of your

    tanks.

    Diagram 4.3 : Adding text

    Copyright Ecava Sdn Bhd 2011. Page 27 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    We also need to display the tank level in figures. Create another text box and enter #.## as

    text. Right click and select Object Properties. Select 'Get' animation and enter level_vanillain the tag field. Click OK.

    Diagram 4.4 : Get tag

    Copyright Ecava Sdn Bhd 2011. Page 28 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Select 'Set' animation and enter level_vanilla. Save overview.svg and refresh your Internet

    Explorer. Try to click on the text and change the value. Tip: #.## formats the display of

    your data. Click on the text to edit. Add another # to the back #.###, you will see 3 decimal

    places..

    Diagram 4.5 : Set tag

    Alternatively, you can use the 'Pop-up' or 'Open' animation to prompt for input or even

    open a new HTML page.

    Copyright Ecava Sdn Bhd 2011. Page 29 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Web Buttons

    Buttons are used widely in automation. Start, Stop, Run, Open and Close are some of the

    more common uses of a button. Here, we would like to create a button to top-up our tank

    to 100. Draw a rectangle. Right click and select Object Properties. Select 'Set' animationand enter level_vanilla. In the Source field, enter 100. Use the text tool to name your

    button, 'Top-up'. Save the drawing and refresh Internet Explorer. Click on the button to set

    it to 100.

    Diagram 4.6 : Button action

    Copyright Ecava Sdn Bhd 2011. Page 30 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Tip: There are numerous tutorials on the Internet on how to draw Web 2.0 buttons with

    Inkscape. 3D, gel and shadow effects make the overall look of your graphics more

    pleasing. Do a search for inkscape button tutorial.

    Slider Movement

    For a straight line linear movement between 2 points, you can use the slider animation.

    First, create an object. Here we will draw a piece of candy using the Spiral tool and Beziercurves/straight line tool. See diagram below. Press shift and click on both objects. Selectmenu Object > Group (or hit CTRL+G).

    Diagram 4.7 : Group objects

    Copyright Ecava Sdn Bhd 2011. Page 31 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Next, right click on the grouped object and select Object Properties. In the Slider tab, enterapp.currentTime.second in the tag field, Min 0 and Max 59. Click OK.

    Diagram 4.8 : Slider animation

    Click on the grouped object, hit ALT+D. A clone object will be created right on top of theoriginal. Click on top (clone) object and place it at the Max destination. This piece of candywill travel from the original position to the Max position based on seconds time. Save the

    drawing and refresh your Internet Explorer.

    Copyright Ecava Sdn Bhd 2011. Page 32 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 4.9 : Clone object

    Tip: If you modify the original object, all cloned objects will be automatically modified aswell. However, ungroup action (CTRL+U) will remove all group animation. In order to keepthe group animation, right click on the group and select Enter Group. Now, you can select

    the individual items for modification.

    Visibility (Opacity)Another way to make an object move is to make it appear in the path of the movement.Let's try this out by making a mixing tank. First, draw a tank. Then, we create 4 sets of

    graphics with the agitator arms in 4 different positions like this.

    Copyright Ecava Sdn Bhd 2011. Page 33 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 4.10 : Stirrer movement by opacity

    Next, return to Project Editor and create the following virtual tags.

    Tag name Data type agitator_posA boolean agitator_posB boolean agitator_posC boolean agitator_posD boolean

    Return to overview.svg, right click on the first set of agitator arms and select ObjectProperties. Select Opacity animation and enter agitator_posA in the tag field. Maximum set

    to 1 and minimum set to 0. Do the same with the other 3 set of graphics with tags

    agitator_posB, agitator_posC and agitator_posD. Next, hold down the Shift key and click

    Copyright Ecava Sdn Bhd 2011. Page 34 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    on all 4 set of agitator graphics. This selects all 4 sets together. Alternatively, you can click

    and drag your mouse across all 4 graphics. With all 4 sets selected, go the Objects menuand select 'Align and Distribute' (or hit CTRL+SHIFT+A). Align all 4 horizontally andvertically. This action overlaps the 4 graphics exactly on top of each other. The effect we

    want is agitator position A to appear first then disappear. As soon as agitator position A

    disappears, agitator position B appears and repeated for agitator position C and D. In

    order to do this, we need the tags to alternately set to 1. We will do this with a script.

    Proceed to the next chapter.

    Diagram 4.11 : Alignment of objects

    More Animations

    Try the Rotate and Color animations. Draw an object and use app.currentTime.second astag. You will be able to see the animation every second. Refer to IntegraXor's User Guide

    for the complete listing of available animations.

    Copyright Ecava Sdn Bhd 2011. Page 35 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Server-side ScriptingJavascript

    The most popular scripting language for the web is Javascript. It is easy to find Javascript

    support and examples on the Internet. It is also a very easy, flexible and powerful

    language to learn. In this section of the tutorial, you will be creating your first Javascript for

    IntegraXor.

    My First Javascript

    Open Notepad in Start > Programs > Accessories. Copy the following into your notepad.

    //agitator rotation animationvar ctr = getTag( 'agitator_pos');if (ctr < 4) { ctr++;} else {ctr = 1;}setTag( 'agitator_pos', ctr);

    switch (ctr) { case 1: setTag( 'agitator_posA', 1); setTag( 'agitator_posB', 0); setTag( 'agitator_posC', 0); setTag( 'agitator_posD', 0); break; case 2: setTag( 'agitator_posA', 0); setTag( 'agitator_posB', 1); setTag( 'agitator_posC', 0); setTag( 'agitator_posD', 0); break; case 3: setTag( 'agitator_posA', 0); setTag( 'agitator_posB', 0); setTag( 'agitator_posC', 1); setTag( 'agitator_posD', 0); break; case 4: setTag( 'agitator_posA', 0); setTag( 'agitator_posB', 0); setTag( 'agitator_posC', 0); setTag( 'agitator_posD', 1); break;}

    Copyright Ecava Sdn Bhd 2011. Page 36 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Save this script as agitator.js in your project's script folder (My Documents > My Projects >candy > scripts). Extension js denotes that this is a Javascript file.

    We will briefly explain the script. The first line in this Javascript is a remark. This is done by

    adding // in at the beginning of a line. Anything in the line after this // will not be executed

    and considered as a remark. The script then gets the value of tag agitator_pos and stores

    the value in a variable. Next, we add this value by 1. By calling this script every second, we

    will have changing values of 1,2,3 and 4 every second. The next part of the script sets the

    tag value of agitator_posA to 1 if value of agitator_pos is 1. The tag value of agitator_posB

    to 1 if the value of agitator_pos is 2. Similar for C and D.

    Now, we need to run this script every second. In the Project Editor, click on 'Script' node toopen the Script tab. Enter the following in the next available line and save.

    Parameter ValueName agitatorDescription turning agitator bladeFile Name scripts/agitator.jsTrigger By TimerTimer SEC01

    Copyright Ecava Sdn Bhd 2011. Page 37 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 5.1 : New script configuration

    After save, a new item (agitator) will appear under 'Script' node. Click on it to open thisscript in a new tab. Here you can modify the script directly.

    Copyright Ecava Sdn Bhd 2011. Page 38 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 5.2 : Agitator script editing

    Finally, we restart the project by going to IntegraXor server. Select Tools > Restart Project.Refresh your Internet Explorer. Your candy factory is now mixing a batch of candy.

    Copyright Ecava Sdn Bhd 2011. Page 39 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Client-side ScriptingMany side scripting

    The web defines server-side scripts as programs that are performed by the server in a

    client-server networking. Common operations such as scaling and logging are generally

    done at server-side. An advantage is that this lightens the work of clients.

    The client-side scripts are generally referred to programs running at the client's side, the

    web browser. User input may be different or environmental conditions are different such as

    the time of day. An advantage is that this reduces unnecessary load on the server.

    An important point to note is that client-side scripts will only run when activated at the web

    browser. For scripts that are required to run with or without an open web browser, it is best

    they are configured at the server-side in Project Editor.

    Copyright Ecava Sdn Bhd 2011. Page 40 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Inkscape SAGE Script

    While server-side scripts are configured at the Project Editor, client-side scripts are done atInkscape SAGE and HTML. Here, we will show you a simple script to top-up all tanks with

    a click of a button.

    Using Inkscape SAGE, add a button in overview.svg using the Rectangle tool. Label it as

    'Top-up all'. Right click the button and select Object Properties. Select Script, 'mouseup'event and copy & paste the following script into the script field.

    setTag('level_chocolate',100);setTag('level_vanilla',100);setTag('level_strawberry',100);setTag('level_syrup',100);alert("Top-up Complete.");

    Save overview.svg, refresh Internet Explorer and test your script. The script will run when

    you release the click of the mouse (called 'mouseup').

    Copyright Ecava Sdn Bhd 2011. Page 41 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 6.1 : Inkscape SAGE Script

    More scripts

    In addition to the extensive Javascript resource on the Internet, you can refer to

    IntegraXor's User Guide for a complete listing of IntegraXor specific commands such as

    getTag and setTag.

    Copyright Ecava Sdn Bhd 2011. Page 42 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    HTMLHTML Basics

    HTML describes how a web browser should view a document. Writing a HTML file starts

    by composing the text you want to display, then inserting any tags you want in the right

    places. Do not confuse this tag with the data tags that you created in IntegraXor. HTML

    tags begin with a < character and end with a > character. Tags tell a browser to do

    something special, like show an image, make a link to another web page or show text in

    italic. Learning HTML is also very easy.

    My First HTML

    Copy and paste the following into notepad. Then, save as hello.html.

    Hello, world

    Hello, world.

    Run hello.html in Internet Explorer. In the above example, the ,

    and are called container tags. All displayed text, images,

    hyperlinks, SVG and so on are contained between and tags.

    Copyright Ecava Sdn Bhd 2011. Page 43 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 7.1 : First HTML

    Unlike the above example, IntegraXor cannot run by directly opening the html file in

    Internet Explorer. IntegraXor's web page must connect to the IntegraXor server via port

    7131 to get the data for display. Therefore, we have http://localhost:7131/candy/index.html

    as the web page address.

    Now, take a look at your project's index.html. You can open it with notepad or Wordpad.We have created this html as a template for easy configuration by the developer using the

    Project Editor. No modification is required at this html. At the Project Editor, click on theScreen tab on the left pane to open the Screen configuration which contain the contents to

    display. Here you can modify the web page (html) by changing the Name and Path values.

    Copyright Ecava Sdn Bhd 2011. Page 44 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Project HTMLIn this tutorial, we will add one more menu tab on your web page that loads a new svg file

    called newadd.svg to monitor the new section of our factory. First, use Inkscape SAGE to

    create a new svg and save as newadd.svg. Then add new menu named 'New Page' with

    newadd.svg in its Path.

    Diagram 7.2 : Add new screen

    This creates a new menu tab called New Page on your web page. Clicking on the tab

    loads newadd.svg. Save the Screen configuration and refresh your Internet Explorer. Try

    click on 'New Page' menu tab. Click on 'Overview' to return.

    Copyright Ecava Sdn Bhd 2011. Page 45 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Calling HTML from SVG

    Try this. Create a new button in overview.svg. Label it as 'Go to Packaging'. Right click and

    select Object Properties. Select Open animation and enter newadd.svg in the source field.In the Source Type drop down, select URL. In the Dest. Type drop down, select Current

    Window. Save overview.svg and refresh. Test your button.

    Diagram 7.3 : Open Animation

    Copyright Ecava Sdn Bhd 2011. Page 46 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Get Data with HTML

    Here is another useful HTML basic script. Copy and paste the following into notepad.

    Then, save as basictag.html at the main project folder.

    0

    function gettag(){var tag1 = getTag("app.currentTime.second");var text=document.getElementById("text");text.innerHTML = tag1;setTimeout(gettag, 1000);}

    While Candy project is running, open http://localhost:7131/Candy/basictag.html in InternetExplorer. This is an example of getting and displaying IntegraXor tag data without using

    SVG graphics.

    More HTML

    Seen a nice web page and wonder whether you can do the same for your HMI/SCADA

    system? The answer is YES. You can configure your HMI/SCADA system to play videos,

    view camera feeds, view pdf and autocad files and even do email. The possibilities are

    limitless.

    Copyright Ecava Sdn Bhd 2011. Page 47 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    AlarmsAlarm Management

    Alarms are useful to inform the user that a condition has exceeded the design limit.

    Configuration of alarms are done in Project Editor. The template project has an alarm pagewith all the standard features included.

    Alarm Configuration

    Alarm configuration begins with the tag. Here, we will monitor the level_vanilla value. If our

    level_vanilla goes below 20, we want to generate an alarm. We will compose a message

    to alert the user of the condition. Our alarm message will be Vanilla tank level LOW.

    In Project Editor, select Process group under Alarm tab. Add a new alarm and enter thefollowing:

    Name va_loMessage Vanilla tank level LOWLog To mdbTag Name level_vanillaTrigger By Compare ValueCondition Tag < L1Limit 1 20

    Copyright Ecava Sdn Bhd 2011. Page 48 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 8.1 : Alarm Configuration

    Go ahead and add the alarms for the other tanks as well. Restart the project. Test thealarm by varying the value of level_vanilla. Try to click on an alarm to acknowledge.

    Diagram 8.2 : Alarm Viewer

    Copyright Ecava Sdn Bhd 2011. Page 49 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    TrendingProcess Trending

    A trend chart displays the direction changes of a value over time. Not every SCADA

    application will require trending. Here, we will configure a simple trend chart to monitor a

    new tag which we will create. The template project has an trend page with all the standardfeatures included.

    Trend Configuration

    We will begin by creating 2 tags to trend. Create the following tags in Project Editor.

    Name Data type Log package_output int16 mdb package_defect int16 mdb

    We will need these values to be changing. Again, we use the seconds time to simulate

    this. Copy the following script and paste it at the end of your agitator.js.

    var myt = getTag( 'app.currentTime.second');setTag( 'package_output', myt);setTag( 'package_defect', 60-myt);

    Next, go to your project folder and edit plot.htm with notepad. Within the Javascript, youwill find the var setting for the trend chart as shown below.

    Copyright Ecava Sdn Bhd 2011. Page 50 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    var pen = [ { name: 'Temperature', enabled: true, unit: 'C', min: 0, max: 100, pens: [ { name: 'Temp Cook', tag: 'temperature_cook', format: '#.##' }, { name: 'Temp Air', enabled: false, tag: 'temperature_air', format: '#.##' } ] }, { name: 'Pressure', enabled: true, unit: 'bar', min: 0, max: 100, pens: [ { name: 'Press Cook', tag: 'pressure_cook', format: '#.###' } ] }, { name: 'Weight', enabled: true, unit: 'kg', min: 0, max: 100, pens: [ { name: 'Weight Cook', tag: 'weight_cook', format: '###' } ] }, { name: 'Miscellaneous', enabled: true, unit: '-', min: -10, max: 70, pens: [ {

    Copyright Ecava Sdn Bhd 2011. Page 51 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    name: 'Time in Second', tag: 'app.currentTime.second', format: '0' }, { name: 'Time in Minute', tag: 'app.currentTime.minute', format: '0' }, { name: 'Time in Hour', tag: 'app.currentTime.hour', format: '0' }, { name: 'Time in Day', tag: 'app.currentTime.day', format: '0' } ] },];

    Currently, the project's trend is configured with temperature, pressure and weight. We willreplace this trend with a trend of both our tags. Replace the above script with the script

    below:

    var pen = [{

    name: 'Production',enabled: true,unit: 'Units',min: 0,max: 80,pens: [

    {name: 'Package Output',tag: 'package_output',format: '###'

    },

    {name: 'Package Defects',tag: 'package_defect',format: '###'

    }]

    }];

    Save plot.htm and restart your project. Click on Trend tab to view your trend chart.

    Copyright Ecava Sdn Bhd 2011. Page 52 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    You will find that data changes every 5 seconds. This is because the database mdb has

    been configured to log every 5 seconds. You can scroll to view historical trends. Use the

    zoom function to zoom in and out. You can also click on the start time and end time to

    manually change the range.

    Diagram 9.1 : Trending

    Copyright Ecava Sdn Bhd 2011. Page 53 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Database & MoreDatabase Management

    IntegraXor uses ODBC to log data. This ensures compatibility to a wide range of

    databases from free Open Source databases to the large commercial databases such as

    Oracle and Microsoft's SQL Server.

    Microsoft Access

    By default, the template project has been configured to log to an Access database calleddblog.mdb. In Project Editor, select Database tab. There's one configuration called mdbwhich connects to the dblog.mdb in the project folder. It is configured to log every 5seconds.

    In other sections of Project Editor, you might find a Log field. Example: In our Alarmconfiguration, we have selected the alarm to log to mdb.

    In our Tag configuration, if we select Log mdb, we will log the data every 5 seconds to

    the dblog.mdb. Go ahead and select mdb in the Log field for the level tags.

    Copyright Ecava Sdn Bhd 2011. Page 54 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Diagram 10.1 : Log Tag data to database

    Run the project and vary the level data once in awhile. If you have Microsoft Access, youcan open the dblog.mdb and view the contents of 'log' table to verify that your data has

    successfully been logged. If you have OpenOffice, you can also connect to this database

    and view the contents.

    Microsoft SQL Server

    For those who are familiar with Microsoft SQL Server or can get the assistance of a

    database administrator, you can try to log IntegraXor's data to this database. First, create

    a new database for IntegraXor in your SQL Server. Go to Program Files > Ecava >

    IntegraXor 3.7 > sql. Use the appropriate SQL script files to create tables for IntegraXor

    logging.

    Copyright Ecava Sdn Bhd 2011. Page 55 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    In Project Editor, an MS SQL Server Express connection named 'dblog' has beenconfigured as an example. Alternatively, you can create your own ODBC and enter the

    connection string details in Project Editor.

    Other Databases

    Similar to Microsoft SQL Server, other databases can also be configured for logging. We

    will continue to add sql scripts for various databases. Check with us if you need assistance

    with any database.

    End of Tutorial

    This is the end of our tutorial. We will leave the user to explore the Security feature on

    his/her own. Tip: Refer to our User Guide for details.

    We are also working on further improvement to the product as well as adding more

    features and modules. Check with us from time to time to find out about these

    improvements. We also welcome suggestions on how to improve the product further.

    Copyright Ecava Sdn Bhd 2011. Page 56 of 57 Revision: 2.2

  • Ecava Sdn. Bhd.

    Conclusion INFORMATION TECHNOLOGY AND BUSINESS ARE BECOMING INEXTRICABLY INTERW OVEN.

    I DON'T THINK ANYBODY CAN TALK MEANINGFULLY ABOUT ONE W ITHOUT THE TALKING

    ABOUT THE OTHER. - BILL GATES

    Future of Industrial Automation

    Companies must keep innovating to compete in this globalized world. Industrial automation

    can no longer continue to play the role of guardians of machinery, production and safety.

    Automation systems must easily adapt to changes just like how the PLC have beendesigned for program and reprogram for high adaptability.

    A website on the Internet changes very quickly to the current business needs and

    requirements. Similarly, a HMI/SCADA system must also be able to adapt quickly to the

    same needs. With IntegraXor, we hope to bring the HMI/SCADA technology closer to this

    goal.

    Contact Us

    We welcome any comments or suggestions. Email us at:

    [email protected]

    Copyright Ecava Sdn Bhd 2011. Page 57 of 57 Revision: 2.2