Download User Guide - Ecava IntegraXor 4.1
Transcript
User Guide - Ecava IntegraXor 4.1 User Guide - Ecava IntegraXor 4.1 © ! " # # $%& & ' ( &&& % ! & ) )* ( ( % +* , &* * & * & ( % % & % & &+ && - & ./ - &./ & & 0 & %& 1 & ( % Table of Contents 2&$%& $ & $ 4 &" 5-0 ' '0& $+"5 6$% 7 4 !+% 4 5$%&- 4 5 4 0& 4 4 $8- 4 9 2 4 : 0 4 2 4 ; 6 4 < "& 4 9 =% 9 > 9 0 " 9 ?8@, 9 4 @&=& 9 9 02 9 : 9 "&A( 9 ; 0 9 < > 9 7, : $+"5 : 5"& : "& : !"& : 4 "& : 9 8"& : : 8"& : #"& : ; 0"& : < "& : B&"& : "& : "& : 0,"& ; ; 9 4 9 : : ; 4 44 49 4; 99 99 9 9; 9; 9< 9< : : :; :< 4 9 : ; ; ; ;9 ;: ; ;< < < 6 5 D $H 4 : 4 "& # # &# #0> ; ; # ; 6% ; ; 4 "% < && < && < > < > 0 % "2" < 4 $&&> < 9 8 0 % "2" 22 > @$ C7 % 4 % 9 @> : $:;D9D-4 ># >@(+# @(+#% >&# 4 &#% '>& !+' >-' 5& 4 60& 9 0 : E+( 2 E+( $+ ; E+( F&G F($ $+"5 ' =D 4 > $, < <9 <: ; 4 4 : 4 : ; 4 4 4 4 49 4< 4< 9 9 9 9 9 9 9 9 ; < ; ; Documentation Information 0 6 5 ( $H AI 4 4: 0 & >% E( * ;* H* A* J ;* J :4 % & > %% ( & ( % & * & % % ( % ' & &* % * & & ( , 2= %& ( ( & % ( I--((( , &-- % & %& & % $H % * ' = % & I--((( , &- & + % % %& 0 + % %% & Chapter 1. Introduction $H "2" E E & @ ( & %% 0 & & D , & ( % (- && !(- & - & " 5 & % &+ ( ' % % & 0 & % & % % ( % % ' 1.1. Support " % %% $H & D% %, = 3* %( K $H =& D I--((( , &-%&- K $H "2" 2 @(+ .!/ D I--((( , &-- K & K 8 . & / K 0 . & / #&& % $H ( & ( && 0 L,L J LL & " & & + ) M (+)* )M ) 1.2. System Requirements + % $H %& N & D " $H $M & ' % ( 3 % M % 8 ( ( & ' & & && N(* ' % ? A! % ( ( + & " & M , + = * & % L G* L * L G & L GO* L O* L GO " & (* M ( P I--((( , &-- DD(DDDD Q % & % % & % 2 &, & ( ( "( ( & % ( ( * & & ( ( & & ( ( 0 % P I--((( , &-- (DDD%DD%&D DQ ( ( % = ( ( & 1.2. System Requirements 2& % "2" ' & ( & 0 (-' ! $H & 3 % +D .( D (/ ( ( & (+ & 1.3. Installation # ( ' !( % 3& G #& 2& K $H E( H* A E( K > E !( .( 3 ( A5 / 3 % ( >G =D %, 9R* 5 & R* >% $ , ;R .( " A5 A( / D && " A5 A( ( I--( &---&-(-(- ,- --A5A( , K ' & $H % $ & +D * * &* * $ 3 ( , N0>7 ? % K $+ "5 % && & ( ( $H ( I--((( , &-( & "5 % "& 5 $H "2" ( %% &* ( " %( & % && 3& ' ( 4 ( 9 & $ S T U ::5NG 2+ 9>! % #& R >! % 2& >& 5! 1.3. Installation 0 %& I--((( , &-( & $ "2" 3 "& 3 % "& %& &-(+ & % ( & & N(* ( & ( 3 2 %( ( % % $H 8 ( $H ( ( ( (+ > % &* & %( & % & ( $H % % & 1.3. Installation & % %( " % $H = * 2 @ =&(+ & E( %& G $% M & $H * + 0+ > >$H H & % E( $M & , % N( ( & ( ( %& " M && % %& E( & & & * + )$) 4 1.3.1. Incomplete Download Error = 1.3.1. Incomplete Download Error $H % % 0 + % % & ( % ( !( % (( % + 9 1.3.1. Incomplete Download Error )2 ) % % ( : 1.3.1. Incomplete Download Error )2 ) & % & ( 1.4. System Architecture $& & ( I ) & %& I) 6 = 2( > P I--((( %(& -( &Q % % & ( " & ( &I)" % & ) $ E( * ( & % % E( 6 & >$ + 0 %& & ( & >$ = * G & P I--((( DG -( &Q 0 %& % E( - E( & %* $H 1.4. System Architecture $H ' % ' %* +D % % .L ,/ N0>7 J A5 0 ' & + % % .L ,/* % + MM 8 L , ( & % % % +D* & % > " +D % % ( 0 % % & N0>7* A5 J % ( & % %D ! ' %* % % % && )) % %* )&) % '* % & )) % 8 )&) % ; 1.4. System Architecture & % %D & ? + ( %* % ( 8 $H %& ' %* % % ' % ( % @(+ $ ( $H & * % & E 0+ " ,& ( + + I "http://localhost:7131/projectID/"* ( "projectID" % ( ' = & * 6#7 & "localhost" ( $ $H = * % $H & ( $ % < :; & 6#7 "http://192.168.1.1:7131/projectID/" < 1.4. System Architecture " & ' ( 6#7 0 ' % & ( " L , > ' & & Chapter 2. Getting Started /Tutorial $H E "2" & 0 +D "2" & ( 3 ( E %D ( ( " +( % ( ( % % & N(* & % && ( & %% E ( ' * ' & ( * M 3 ( > 0* 5 A(* "& A( # A( " ' & % % & % %( %* (* + % % L , ( % ' % 2 + L , % ' $H & # + MM ( ' % % " && & N0>7 A5 %* > " "2" 2= % % ( P I--((( , &-(- %Q ( .>!/ 2.1. Project Editor ' % %& % ' ' %& & &* ' ( 0 ' ( " (( % %& % % 2.1. Project Editor ' % (+ 0 (+ ( '* + =D@( ' " & ' & ( 0 ' & ( ' $2 ( ( ( ' % & ( 8 & ( 8F ( ' & ( ' !( ( ( ' & ( % % ( + # ( 2.1. Project Editor ( ' " (( (( % " & ( 0 % %3 % >* 0 % ( % % & % 2.1. Project Editor ' ( % &G ( 0 > = > 0 0 % % % 4 " % (+ & ( * + D & = * $ , & ( % ' @ ' $2 ( & ( ' & 2.1. Project Editor ( ' 0& % ( ' 0 % + 3 0& % 2 7 % * 7 * 0 %& % & &+ % (+ = * ( * ( ( % % % 2 %* 2 % % 0 0 ( * 2 0 8 & & 2 * ' G* 2 & % 0 & D% ( 8> 0N 8 2 D% % > " 2 D% % > N(* & & & ( M && 0 ( ( A 2 ( & ( $-8 0 0 & + * 0 2* 2 " % & ( ./ "2" $ & V 0 & 2 && . / "% % ( ./ = + , * 0 ( * & 9 2.1.1. Auto-Complete for Tag Entry ( 0 ' 2 % % & * @ (+ D 3 & &* >% " ( ( ' % $% & * % , 82! & 0 % %% && 0 % & && & ( "& ' : 0 ? 0 % ( + 3 $ * & ( ? A! % ( $ 2.2. Project Template 2.1.1. Auto-Complete for Tag Entry " % D&* % % %( % D (+ ,& ( MM ( ( ( % ( MM 2.2. Project Template ' & ( ( @( ' G ' 0 ' & % & % & N>$-"2" & 8 %& % % *.igx 0 & ( * D + M&M* MM* MM M&M " M&M & ( & % D 3 $H 0& % $H & ( & ( 2 &, & % ( %% % & & 7 7 % $H % % I N* ! = & ( % ,* ( +* ( = & 0 3 & ' & %* , %& ' N ! 0 ) ) & % &* ' &* & &* & & 0 &&G $ M (+* - ( + ' !( ,&I 2.3. Inkscape SAGE > & " ,& ( & & & % )5 ) "% )5 ) +* & % ) ) ) ) ( * ( % % & MIM " % % ' % % I A5* 2= N0>-N0>7 % $ * , . / % % & MIM & 3 = 0 )%) & % &- = & % & & & "& A( "& A( % % & ( (* +( + & $ % % & % 2 = D * % >% " ) &) % 3+ 0 & % ( 2.3. Inkscape SAGE $+ (% J D A5 & &&* % , "2" & $+ 2 % (% % ( * M % 0 M N & $+ % * & 8 % & I--&' % %-$@F"->"@6"7- &- 0 + + N > D $+ > $, % % "2" & "2" "& 5 * "5 ; 2.3. Inkscape SAGE $+ $+ % ( &* %( % ( ( ( "2" & , < 2.3. Inkscape SAGE N % @& ( ( * & * 3& % & % 0 G % * $H ( % && & 2.3. Inkscape SAGE 2& 2.3. Inkscape SAGE "& N(* M & 3 % * % "& + M %RR0M 4 + MGM %( M9M 9 + MGM %( MM 2.3. Inkscape SAGE : + MM # !" + MM ; #$" + MM + %& % ( * %& % ( < % & + MM & + , ( ' ( )) + MM > %& E+ ( $+ 4 Chapter 3. Server User Interface 0 $H % %( % , 0 % % &' * & 0 % & (( 0+ E( .R %R0/ ( ( + % ( E( ( & ( N& (( 0+ E( .R %R/ % & %& % +* % * ( % % $-8 7* E E( .R %RE/ ( & % & $H & % 9 = * D % % % &G 0 ( ( ' " ' ' - * &* % + 0+ - % + % ( % 0 % +* + % * 0+ # ( : 3.1. Licensing 0 ( % % 0 & & % 0 E (( 6 % % ( ( * + + = 0* ( 0 % &G % & " + % +* ( '* (* ( (M % M ( $H & , % ( 3.1. Licensing $H && %( $ ( % % & & % ( , & " & ( & M ,* ' , # ( & % & G %& % 3.1. Licensing @ ( , & 0 % % *.ilr ' &* % * U, & 0 %( G % *.ila %( + ' ( % & 6 & 3 % G + % & % ( ( % $ + %& &* N* )7 ) " + ( ( ; 3.1. Licensing 7 %& " & % 6 & + ( + %& % 0 ) &) * G % ( & " % ( & & & ( & &* ( & 8 % * # % L + )#3 ) * $M && + % *.ilr & *.ila ' % % @ & ' % " & & % & ' & 0 ' $ 2 & % ' & * ( +* 0 % ' $ 2 M&M & + M'M M&M ( ( ' " ' $2 %% * ( % ( 0 E #& < 3.1. Licensing & % && (* %& %% $ % 7"@ E"@ ( * ( % & 0 $-8 & ( & % $-8 ( % M 3* % @ $-8 & ( $-8 * D & % & $-8 0 & % $-8 ( , ( @ -&&-& , & & 2& " ( % &I )9: $-8 ) 8 " G % * & 7 E( & G + M" G M !( G % 0 % ' % & $ &* & ( -% , 3 $M % % 3.1. Licensing * & & % * % ' - * ( & 8 & G * %& ( Chapter 4. Back End Configuration " +D + % $H ' # + L , % ( E( , MM % (+* ' ( & E( , 4.1. General Information/Convention K " & %( + & ' + %% K > % % &* @&* 2 J +, 0 & %% % &./ + K ! % % &* ( K % , % & % & * 3 K #&+ % ( * -- K 0 ( & & (+ ,& + @& & ( ( 3 &* D& >* & * * & & J * & 4.1.1. Sequence of Configuration " & % 3* %( 3 4.2. General K 0$># D 0& % &* % + " 0& & % ( & % &* + * * >$@* >$@9* N# % K 8#0 D " & & &&* & % &D & ( , 2 $-8 % K 2"0"!" D 2 % 0* "& & K "7"#> D "& % % ./ K 86060* #$0* 6# D 0 + % 3* & & , &+ 4.2. General 5 % ' %& ' $2 % & % % ' $ ( ( +* $ & ' $2 ' + ( * ( 2 " 4 4.3. Timer ' ( D& % !" ' & + ( % % D " & ( , % @& ( 0 %( ( & % ( ( ' & "<BROWSER>" "<HOMEPAGE>index.html" & ( ++ & % = $ , ++ & ( %( && I "C:\Program Files\Internet Explorer\iexplore.exe" -k "<HOMEPAGE>index.ht ,& ( ( % =%, 0 && , ( %& ( "D:\PortApps\PortableApps\FirefoxPortable\FirefoxPortable.exe" "<HOMEPAG D " & ( , % G $% & & * & && 4.3. Timer 0& % &* & + ( 0& 0 ( % &* M$M ( % %( M M 0 % % 0& & ' 6,-7, &* ( && , & % & & 8 & % & && = * )) & ( &+ & & " ,& )*) & ( &+ & " 3 & 2 " 0 $- $ @& & W = > 2 2 % E+ : N > 9< 9 4.4. IO /Port 9< # & ( % ( ' 4.4. IO /Port " & ( N>$-"2" % && ( , % & , " && * * , * % $ % " & % %& 2 " # = * % * )8>) " % * $ * % & * &* )< :; I9) % > 0-$ * ) ) % 8 4.5. Device 8 & N>$-"2" & % 2 ( % - % ./ " 7* #06 * & && : 4.5. Device 2 %& * & " 3 & % % 2 " # @& * $ 2 > $ * $ 2 8 &I M#7, 8 M 0 & % + & A % % (+ & & = * % & )7)* % ( % 0 & % %& 0 (( $% + ( + & " % P7Q $ D * D $G* D 2* D 2 # * 9 D E * 8 D 6+( 4.6. Tag " % P7Q ! 0-= P7Q $ 2 .&/ P7Q , - $G - 2 - 2 - # E - 6+( > % % = * & %% % = & 7 $* ( 4.6. Tag 0 && & % && & $ ( N>$ & && "2" & ( % * $8 D$8 $8 ( , * D$8 + & & && 0 %& 2 0 ( * 0 & % 3& 0 % % % && ;* :* * & ( M % % 7 * & && : & % % * & && % & :4 " 3 & * & + * * 0 &+ ? & , ( % 0 , 0 % % (+ & % ( * : ( & 2 " % :- - -% :4- ;- ;-!W0 :-E8#2 -2E8#2 ; 4.6. Tag 7 7 % ! ! & % + % % ( % & $ & + & + * % * % ( &+ & 0 && % && > & && * ( ( @ ( $-8 * & %& 8 ( % * &G % & + % " 2 % & > 2 " @ % & ( , + 8 2 % 8 J 5 = @ 8 * M % + > 7 $2 % 2 0+ 0 & $ 2 E &* +D % % % 3 # 7 ( * ' ) (+ %) , * - (+ ' ./// ( / ' ()+ % ) 0+ E 7 ( * ' ) + %) , * - (+ ' .///, / ' ()+ % ) 0+ # 7 1( 2 ( ) ( 2, ( ' 1+ E 7 3 2 ) ( 2, ( ' 1+ $ , % & ( -0 ) ) ( , 24 ) , ( ' + ( ) 0 ((( ' ( ( 0.001+ ( , 0 54 5, ' 9 / 5 * $ + 32, ' 6 + 0 + ) 0 )-' , ' ($ / $KFac) * 3600 * $MFac, ' MFac 7 KFac ) 8 7 9: '+ 8 , ; & ( -0 ) ( ( , ) , ( ( (+ ( ) 0 ( ' ( ( 1000+ ( , 0 5 54 , ' 5 / 9 * ($ - 32), ' 6 + 6 & ( N J 7( & Math.max( LIM_LO, Math.min( LIM_HI, $))1 ( LIM_LO J LIM_HI < 4.6.1. Tag Expression 2% 2% G %+ && N(* % # ./ ( ( * % ( # 2 $ 2 % 0 & 0 % & ( ( * & ( ( , & * && # ( ( ( 2% ( " % &% (( ( $ 0 % #D8 $ > * , J , 8@ 0 &* $ * ! ( 8@* $ #* $-= ( 8@ 8 (* & 8== @ % $ 0 & , $-8 E $% * ( % ( ( %& E &* ( % ( & & $8 . / ( % " MOM ( & % ( & M 4.6.1. Tag Expression = 3&* & & = * 0.001* % + & 1000 6 ( G & ( & ( & , ( X & ( ( %& % " ,& * 0.001 ( $*(0.001)* 1000 ( $*(1000) 0+ ( + , &* & ( % 4 4.6.1. Tag Expression , % - 0 & $*0+ % % " % & $+0 6 & & + Y Y=* & (9/5)*$+32 $ ,* ($-32)*5/9 8 , 6 + = %( + %3 * & ($/$KFac)*3600*$MFac* ( MFac J KFac % > = J FD= " 7 ( ,&* % ( % 819 10°C* 4095 60°C* , ((60-10)*($-819)/(4095-819))+10* , (($-10)*(4095-819)/(60-10))+819 6 & %D% + ( N J 7( & Math.max( LIM_LO, Math.min( LIM_HI, $)) 8 ,1 ( LIM_LO J LIM_HI = * Math.max(0,Math.min(100,$)) ( %& G , = + % ,* , & %% % ($>LIM_HI?LIM_HI:$)<LIM_LO?LIM_LO:$ $M && %& ( P I-- &G -D6--E-?-#%-8-!(O8Q ( , ( , & 0 7! >! : * , $&1 $&65536 . / 8 * * $ , ( $0+$b0*1+$b1*2+$b2*4+$b3*8+$b4*16+$b5*32+$b6*64+$b7*128+$b8*256+$b9*512+$bA*1024+$bB* 4 4.7. Database +$bF*32768 ( b0...b9 & bA...bF : & ( , & %& 8 ,* & $ & % % & % ? M %& ( 6 :4 :4 ( ( , 4.7. Database 2 ( , & % $ 82! C7 = >% C7 9 , * ( % % 4 5! % " 3 & % 0 "& 2 " & " 0 (+ ,& % >% C7 9 , $ * 2"0"!" & &% (G = % &O'* & & ( )2"0"!"Z&O') @ % * & ( * * Provider=MSDASQL.1; Extended Properties="DRIVER=SQL Native Client; SERVER=<COMPUTER_NAME>SQLEXPRESS; DATABASE=my_job; trusted_connection=yes"; 4 4.7. Database + ( P Q 2 7+ ( 0 > % % (I I--((( &- 2 82! % = * >C7 82! ( %& I--((( &3 &-(--- "( 82! % % % 8 & :4 7 2% ( %3 ( 2% ( %3 ( %& 3 4 4.8. User '" & 2% ( ( + = * % < & ( % < ! =$=8 * < ( 0 "( %, M M & (+ = $ = 8 * ( % 4.8. User ( " >& ( . / ' 0 + % * * ( 3 & 3 %& + %& ( (( % $H * , , E 3 O( * % ! ( % % * % G ./ > ( 0 & +* & % % ./ 6 $ 0 & & %% $ %) & & $ 0 & %& $ & $ * % & 6 E & * ( & 6 + & . / ( . / 8F $% & ( * ( ( & (( % ( & 6 + (( % % % & " & 2 " " ( 44 4.8.1. Web Access Information *+ , 22D>>DWWWW %& DD<<<< % D, + % % &,&& & & & , & & % +* ( ( 4.8.1. Web Access Information 0 * ( 6#7 %( %&I http://ip_address:7131/PROJECT_ID/login?* ( PROJECT_ID ' & $ + N00 % $6 % $% $6 ,* ( % 0 $6 %& %(I IgUser: {name:'xxxx', level:xxx} $ ? eval() % ? ' & 8 * ( ( & ( & % $H % 3 3 ( , 3 !( ( ( ( (( $ ,* ( 6#7 %( %&I http://ip_address:7131/PROJECT_ID/logout?* ( PROJECT_ID ' & 0 $ %& & ! N00 %%* ( + $H * (* ( & 4.9. Alarm # ( % % & 3 ' "& % * & ( %% & @& @& % &* ( & > & 5 & ,& % "& 0 &* N(* 8 $ G " 0 + 2 ( ( & 0 + ( & $ % .8>/ .70/ * >-& 49 4.9. Alarm " 0 0 " & & "" ,% 0 I & & & I ZZI 3 [\I 3 [I \I [ZI 3 \ZI 3 & &/ .& 0 & ( & 0 & * & 2 % & &+ & + "& " 2 " & @& % & 4: 4.9.1. Additional Information for Deadband 8 % * > & $% & * & + ( % I var var var var S1 S2 S3 S4 = = = = getTag getTag getTag getTag ( ( ( ( 'SIM1_Lek'); 'SIM1_Breuk'); 'SIM1_Service'); 'SIM1_Loopim'); //turning on anyone of the tag will trigger the event. setTag( 'SIM1_Alarm', S1 | S2 | S3 | S4); " % &% M 0 , $SIM1_Lek | $SIM1_Breuk | $SIM1_Service | SIM1_Loopim 4.9.1. Additional Information for Deadband 2 % %+ % $% + % & &* & & & + & %% & 0 & ( * & %% ( ( & 4 4.9.2. Alarm Scripting = * % & ;* * & ( ; N(* & ( %% ( % ;* & %% ( % ( 8 & % ; 2 & * ( & ( % & & & ( % & %& 8 * & ( LL % M % = * + ( 4.9.2. Alarm Scripting $H ( & ( & & & = ( ( %& % app.alarm[Group.Name].enable % & %& % app.alarm[Group.Name].status - " J +( 4 " J +( $ J +( $ 0 ( & 8# ( app.alarm[Group].status 0 0 & % + % % ( & 4.10. Script > % . / , ( ( N(* & & & M ( ( 8* & & ( ( ( ( 0 %& %& & %% ( 8 % ? %* $H & ( %( % % , 0( & && % getTag('tagname') setTag('tagname', data) & ( MOM M6M = +* ( &+ %& & & 2 2 % . 2 ? % "" /% > % &* % % % "" 2 & )0 !)* & % & 0& * $-8 "H "H % 4; 4.10.1. Additional Functions "H ( "H % ( E( 8 6 & app.startup * 6 & & 4.10.1. Additional Functions $H & ( %( % & &% && (+* & % && ( * <*, " 0 * ( 0@& * 2 % 0 * <*" 0 * 2=" , % % &* 27"W & 0&./ $./ & (+ & **, 2=>, 1%< 1?"* % ( ./ ( + &+ & 0 & , ( & + & &* & . &* 27"W/ & % 0 & #$@0# & ( % &* % ( % % & * ( % % 0 % % * % * 0 % ( & % 6 getTag( 'same_tag') % %& & 6 & & %& ' ( 6 " var max = getTag( 'Tag001'); for (var i=0; i<max; i++) { //do something } 4.10.2. Advanced Scripting = * %& %( 3I POST /run?script=script_name;param1=value1;param2=value2 " & + ( & 0 0 M0M* %& + 4< 4.10.3. Database Functions 0./ & ( M & & % setTag( 'tag', data, option); E option ?8@ ' time & ? Date() " & & %( var opt = { "time" : new Date( 2020, //yyyy 0, //M; 0: Jan, 1: Feb... 1, //D 1, //h 2, //m 3, //s 456//msec ) }; setTag( "myTag", 123.45, opt); 4.10.3. Database Functions -" ( %& C7 3 ( string !( & getSql([string] sql, [object] option) [object] option format: { dbgroup: 'xx', // [string] database name created in database table, // default to all database if not supplied. offset: 0, // [integer] skip the first stated number of result, default to no offset limit: -1, // [integer] limit to return stated number of result, default to no limit skip: 0, // [integer] skip certain number of rows between results, default to no s outfmt: 'xx' // [string] output format, valid values are csv/csvh/json/xml, default to } & I var result = getSql( "select * {dbgroup:"dblog",offset:2,limit:3,skip:2,outfmt:"json"}); from log", 5 % ,& % & @ * 9 ; * # & 8%% 8%% 1 . + 4 + 9 1 @ : + + ; 1 A < + 9 4.10.4. Debugging Functions + # 4 -" ( %& C7 3 ( !( & setSql([string] sql, [object] option) [object] option format: { dbgroup: 'xx' // [string] database name created in database table, // default to all database if not supplied. } & I setSql( {dbgroup:"mdb"}); "insert into alarm values (cell1, cell2...)", 4.10.4. Debugging Functions > % % * & % 0 % 3 & + 2 * %& ( E( ( 0+ E( ( " E( ( " & 0& E( 2 %& + , E( 9 4.10.5. ActiveX Scripting !( & & % % % $ & %( var a = getTag( "tagA") || 1; //default value 1 var b = getTag( "tagB") || 2; //default value 2 var c = getTag( "tagC"); //no default value if (c > 1000) { a = 1; b = 2; } a = a + 1; setTag( "tagA", a); b = b + 2; setTag( "tagB", b); c = a + b; setTag( "tagC", c); debugTag( "tagC"); //this is a sample use of debugTag(). //debuging function will be executed in debug mode only debugString( "Script is successfully executed."); //keep this as last line. 4.10.5. ActiveX Scripting E "H * ( >% E( 0 P I--& &% &-D--+];A ;9]< ,Q* & % % ? P I--& &% &-D-- ,<;.A ;9/ ,Q @ +D * % & % (- .&&/ = * % & ' P I--& &% &-D--G,%(;];A ;9]< ,Q % A % & ( , , & %& ( !( , %& >2@ ( ( ( , & & * ( * ( ( % * +* %& $8 N( & ( & var WshShell = new ActiveXObject("WScript.Shell"); var oExec = WshShell.Exec("calc"); while (oExec.Status == 0) { WScript.Sleep(100); } " && 28 % + (I var obj = new ActiveXObject("WScript.Shell"); obj.Run("c:\\doswork.bat"); 6 & %& ( % * ( & % , C7 & & A* & &G ( & ( , 9 4.10.5. ActiveX Scripting //compose your sql for desired data var sql = "select time_stamp, tag_name, nvalue from log"; //assign to a string var csv = "time_stamp,tag_name,nvalue\n" + getSql(sql, {dbgroup: 'mdb',outfmt: 'csv'} //File System Object operation var fso, tf; fso = new ActiveXObject("Scripting.FileSystemObject"); tf = fso.CreateTextFile("c:\\testfile.txt", true); tf.Write ( csv); tf.Close(); debugString( "File is saved."); " "H ( & & & 9 94 Chapter 5. Front End Configuration $H ( * % N0>7 0 % ( , &% % ( " $H % 3 && % & % 8 ( ( %& % M % % % , & 3 " ( * ( ,& + " %& " +( 3 ( N>$-"2" &M % N(* +( 3* % & ( & + ( >* ( % ' % & N>$-"2" > &* ,& ! N0>7 %& ( * & ( & +( % N0>7 & % && 3 ( * % % 0 & % , N0>7 &+ % % % , + @ RR P I--D % Q ( (+ ( " P I--((( &Q ( & + ( % 5.1. Menu "% && A5-N0> %& * + & + @( &-& + $ & -( % @( %& % & %& & >* % & ( ( ( ( & 99 5.1. Menu & ' 7 % "2" & % " ( D &&* ( 3+ 9: 5.2. Scripting and Tag Access > & & 0 ( && * E( , A5 N0>7 , & % 5.2. Scripting and Tag Access ,1 & ( ? &* & (+ ( A!* M $ ? ( " (* + ? * RR* ^ & * ? ' D+ ( %& & %& * * & & %% ( & @( & & % &% % ( % %& % 0 %& ,1 * %( N0>7 * & N0>7 && ( <script type="text/javascript" src="./system/scripts/igrX.js"></script> var 'tagname', data) ( data = getTag( 'tagname') setTag( ( .% / +* % M 9 5.3. JSON Syntax ( % * ( M 0 ' % ( * % %& ( (* % 6#7 ) - -) ) -) 5.3. JSON Syntax $H % ?8@ .? 8' @/ P I--((( ' Q %& , %& ( I )$ ( D %& $ % & ( $ % & ) +( * & & &&G & % ?8@ %& {'param1': data1, 'param2': data2, 'paramN': dataN} " * M & %& * ' , ( ( ( " & ( ( * & & & && & & % % %&* %( %&I [data1, data2, data3]* % % &@ %&* ( , + +I {'param1': data1, 'param2': data2, 'paramN': [dataN1, dataN2, dataNM]} ? + && * % % * & ( % 3 3 = {'param1': 'this is string', 'param2': 123.45} & ! ( & & ( && " 3 & & * (* , & ] &%& ? "* & + J 5.4. Number Formating ! & %& A5 N0>7 % & & + .^/* G ./* && .*/ . / %& & >* $H & %& %,* D & & G & %& " * * 4 & !( & ,& % %& & 9; 5.5. Tabulate Data , . 49: 49: #.## 1234567.12 49: 49: #,###.####1,234,567.1235 49 #.## .12 0.### 0.1 49: ;< # ###,## 1 234 567,89 49: ;< #.###,## 1.234.567,89 49: ;< #,####.## 123,4567.89 49: ;< #,## 1234567,89 49: ;< #'###.## 1'234'567.89 & ( ( 2&* & % & = * 49: ;< "#,### " ( 1,234,568 5.5. Tabulate Data N0>7 , 2 ( N0>7 ( & %% 6+ N>$-"2"* & % & ( %% G % , " M N0>7 * % ( % @ % N0>7 * + 0 "* %( I <script type="text/javascript" src="./system/scripts/igrX.js"></script> 0 ( * & $2 % {attr:'get', tag:'tagname'} E & ( &* M && % ( @D!+ * 0 ( %& ' , % ( % ( ( 5.6. Printing N0>7 (+ ' + # % & N>$-"2" &* %% 6+ N>$-"2" &* $H ( ( 8 % N0>7 M ((* & 3& + & N>$-"2" &* % & 3 D + # >% , 9< 5.7. Alarm Viewer @ * ( + , " & ( N0>7 & % $ E( & ( ( , ( & + N(* ( ( % $ E( ' $H D % print('url', DELAY, 'nu') ( , @ %& * ( (+ > 7 5.7. Alarm Viewer "& A( (+ ' ( & % * & 3 & % "& A( N0>7 ' ( &% & + "& A( M& &M ( '* ' % ' & !( %D M % % 0 * -+ ( " &* (-( ( " +( &* -& ( @D +( & "& A( "& A( &G % + var opt = { "mode": "alarm", "row-per-page": 30, "audio": "media/ding.wav", "column": { "time_stamp": true, "tag_name": false, : 5.7. Alarm Viewer "group_name": true, "description": false, "message": true, "nvalue": true, "old_nvalue": true, "inactive_timestamp": true, "ack_timestamp": true, "ack_user": false } }; $ %* & ( % &* * )&)* )%)* )) "& & & & & ( +( % = & & & &* , . * &- &/ " & ( , )(DD) % & % &-( & ( 0 & &G % !) 0 & % & % & 0& & &O& 0 & ( && % & 0 O& 0 % & 5 O& 5 % 2 2 % & > & "& & A A & % & 7& O % & & % % $ 0&& O&& 0&& % "+( 0&& +O&& 0&& % & +(& 6 "+( +O 6 ( +( & 0 &- % %* index.html % & &* % 0 & % * %( <header> &G <style type="text/css"> .alarm-table .active { background-color: blue; } .alarm-table .inactive { background-color: pink; } .alarm-table .active-ack { background-color: brown; } .alarm-table .inactive-ack { background-color: purple; : 5.7.1. Audit } </style> 6 ( & ( % . + %/ & & 0 ( & & ( % %% var opt = { "mode": "alarm", "row-per-page": 30, "column": { "time_stamp": true, "tag_name": false, "group_name": true, "description": false, "message": true, "nvalue": true, "old_nvalue": true, "inactive_timestamp": true, "ack_timestamp": true, "ack_user": false }, "filter": { "group_name": "Generator" } }; 5.7.1. Audit "* +( * D& % & ( 0 &* ?8@ % ( %& ( (I var opt = { "mode": "audit", "row-per-page": 30, "column": { "time_stamp": true, "tag_name": false, "group_name": true, "description": false, "message": true, "nvalue": true, "old_nvalue": true, "inactive_timestamp": true, "ack_timestamp": true, "ack_user": false } }; " & & & ( $ & &* ( ( ( % $ &* ( ( 5.8. Trending : 5.8. Trending 5 0 3 "% %* % & % : 5.8. Trending 0 ' % (" ( N0>7 % ( 2$A !( & % ( <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" media="screen" href="system/styles/igrX.css"/> </head> <body> <div class='trend' id='placeholder'></div> </body> <script type="text/javascript" src="system/scripts/igrX.js"></script> <script type="text/javascript"> var pen = [ { name: 'Temperature', enabled: true, unit: 'Celsius', min: 0, max: 100, pens: [ { name: 'Temperature Cook', tag: 'temperature_cook' } ] } ]; var opt = { lograte: 5000, backgroundColor: 'white' }; var plot = new trend( '#placeholder', { :4 5.8. Trending 'pen_setting': pen, 'option': opt }); </script> </html> 0 ( & 3I 2$A 0 % ( 2$A ' ( $2 ) ) var plot = new trend( "#placeholder", { "pen_setting": pen, "option" : option }); ?8@ ' % '* pen_setting (Array) option (JSON) $ O* 3 % % " & % O % % 0& (I var pen = [ { name: "Temperature", enabled: true, unit: "°C", min: 0, max: 100, pens: [ { name: "Temp A", tag: "temp_a", }, { name: "Temp B", tag: "temp_b", }, { name: "Temp C", tag: "temp_c", } ] }, { name: "Pressure", enabled: true, unit: "kPa Abs", min: 0, max: 10, pens: [ { tag: "press_a", } ] } ]; // // // // // (String) (Boolean) (String) (Number) (Number) // (String) // (String) // (String) // (String) // (String) // (String) // // // // // (String) (Boolean) (String) (Number) (Number) // (String) & O & & % = &* 3 % & :9 5.8. Trending . % @& % &* 0& ! 0 (./ - .%/ & 2% % % 6 % &* @& >&& % & & @& >,&& % & 0 & % A % ( + G % % & % G % " & " % ?8@ '* ( % ?8@ ' % % . % & 7 % 2% % % 0 % ! 0 (- $% %* ( %& & ' 8 ( !( ,&I var option = { lograte: 5000, backgroundColor: "white" }; . % , @& @& % HD, 2% % % @& @& % WD, 2% % % ! 0 ( % 2% % % % @& % & % & 2% : ./ % % 0& ! % 2% % % @& 7 % & & % 2% 2% )) % % 2% & % ( 0 % & 2% )) % % + ! 0 ( & + %& 3* && & % 0 :: 5.8. Trending . % %& 2% % % % +& @& 2% ( & & ( & $% & ( * ( ( 2% , % % + !+D % 2% ( % % %7 #% % 2% + % % " ( * ( ( &,&&-&&& % >,&&-&&& % &* ( % ( (( ( & + >,&& &&& % & , 6 + % " ( ( % 0 % % I !+&+ " !+&+ ( + ( & & % ( & * ( ( E + % * +&+ ( . / 6 +&+ + . / ! + * % ( & @ & ! %& %I 7% * 7% 5* -* # 5* # * B& * B& 8 * % & & + -& & % & " +-&+ ( & % $% -& -& * ( & 6&* + % % G& : 5.9. Multilingual support " +* -& ( & 8 ( + )) & & & " ? G ' % % 0 % ,* " " 0&&./ + & 8' %&* ( & )) 6@$H %& % & ( & )) 6@$H %& % & 0&./ + &* % & & 0&./ ( & ( ( & var new_time = { "bgn": 1270000000000, "end": 1271000000000 }; plot.setTimeStamp(new_time); plot.realTime(false); " & 2$A $2 classname % 0 & % 28>* * )^) $2 ) ) & classname %* ".placeholder" % & % trend() % 5.9. Multilingual support 6 % , lang.txt % ( ' % D /lang % 0 , % 60=D; %& :; 5.10. Logical Expression > % ( % 5.10. Logical Expression 7 , %D %* .X/ % % & $H & & & % % & 0& & & A @& ( * & + + * & " ,& & ( & , % %D ( %% ( %% %& = '* + 0 % & * & , + I $tagname * 100 = * ' 3& ( G & ( I ($tag_bool)? $tag_int: 0 " % , % ( GI $tag||1.01325 :< 5.10. Logical Expression , % &M ( ( ">-> 2 , * & ( ( & %D %& * ( , % ( , % , %D ( %& 6 Chapter 6. Inkscape SAGE ! "2" & % $* #* ! .7/* >&* 0, .2/* 8 .N- (/ > "2" & !( "2" & % ( $+R"5 P I--% -'-D-Q > & $ #D& $ "2" 2& P I--((( , &-& &VZQ ! "2" "& >& "5 ."2" "& 5 / &% % % $+ "% & ( * , + & & 0 ' 8 ' '* + + 8' "* ' 0#7 R N$=0 R 8 8' (( 6.1. Get Animation # + ' 6.1. Get Animation 5 & & ( ./ A5 * & 0 5 &* A5 8' & , ( 5 & 8' $% &* 6 %& %& A5 , ' & %& .,& @& =& / 6.1.1. Inkscape Text Alignment 5 "& = ( & % ' 8 M0M % ! M"&M J M0M % % 0, "& % & % 6.1.1. Inkscape Text Alignment 0, & P I--&' % %-$@F"->"@6"7- &-0,D=& &^0,D=&D?%Q %* J ( $+ % 0* ( ( ( , & + 0,* =; ( , "* , 0, J = R %R0 ( , ! ( , ( & ( , " , ( ( (* % , ( 6.2. Set Animation & , & % , ( %* J % & 2 , & "5D5 &* & & ( $+ D & ( , & 6.2. Set Animation & & ( ( .(/ + A5 8'* & & ,* & ( A5 8' 4 6.3. Bar Animation "& = ( & % ' 0 & I 0 ( $8 $H ( ( (* ( & ( & % & & %& 0 ( & % I 2 A $% 0 2* ( ( $% 0 A* ( * ( % ( ( $% 0 . %/* & ( & , % & 6.3. Bar Animation ! & & ( 'M ( & &&& &,&& * % 0 %% ( &,&& &&& ( % 9 6.4. Color Animation ! "& = ( & % ' 0 & I * & &, 0 ( $8 $H ( ( * ( & &&& &, &,&& ' ( G + 8F ,* & % @ * 0 %* % ' ( ' 0 & ,* H>7 + % & 6.4. Color Animation & % & &* & ( & % ( + M"M & * + ) +) " % + : 6.4. Color Animation (( ( & % @ % & D + )> ) )> () + "% * ( & !( & % % % M * E * ( ( ( * ( ( @ & ( + % % % ( ( % = ,&* % * ( ( 0 +* MM % = * + %% * + + M-M* M^==-M 0 + %%* * % * M(-M ( + ( ( * M( --M ( + 3 6.4. Color Animation "& $% % * ( ( (( R %RE "' (( M7M MA5M ; 6.5. Opacity Animation & ( = & & &* ' + 0 , $ % % & = * % % ( J % % * , ( 1 < $tag && $tag < 10 " & 1 ( & * % % % J % * % , ( $tag <= 1 || 10 <= $tag $M ( & < 6.5. Opacity Animation 6.5. Opacity Animation 8 & & % ' 0 I 0* > >, 6 ( 3 $HM > &, ( & % '* ( & ( &+ ' &, ( &+ ' 8 "& & &* ( % * % % ' ( * &, & % = ,&* % & % &, * ( ( % I ; 6.6. Open Animation 8 & && %% 0 &+ &,&& & &&& 6.6. Open Animation 8 & ( ( ( + ' A5 6 ( + ( ( ' 8 "& 0 0 % ( + 0 & & 6#7 % ( * $HM ( 6#7 - % % ( ; 6.7. Rotate Animation %0 0 & & ( & 6#7 . ( /* $HM E 6#7 * & ( 6#7* ( 6#7 ' + E 0"5 * & ( $H * & ( , 6#7 6 ( 6#7 0 %* ( % ) %0 0 & & ( ( 6 ( ( %& % - ( "2"* ( (( < 3( ( ( ( ((* ( 4 3( ( %& 1 2 31 2 $2 $"$ 0 0 % (( % % ( (( H W % % ((* ( ( % G % (( 6.7. Rotate Animation & &* & & ( ' % &,&& &&&* % * %& % :_ ; 6.7. Rotate Animation # "& 0 , % ( % % ' % ' 0 % * & % !( + ( ( % ; 6.7. Rotate Animation E ' % .% +/ 8 +* ' % * .R / &* D , % $ % ' % ,&I ;4 6.8. Tooltip Animation " ' ( (* & % ( & &, E * ( & E * ' ( % - , :* ;_ "D+( &&& &,&& 6.8. Tooltip Animation 0 "& ( & ( & & ' 6 % 9 ( %% & 0, G % G %* % , ;9 6.9. Slider Animation 0 "& 6.9. Slider Animation & & ( % ' * & ( ;: 6.10. Zoom Animation "& 0 * 3 * &&& &,&& % + )D) +, % % * * && 0 * % ' + \ \ * & "70R2 " ( % ' 6 3 & * ( % ' ( % * 'M ( % 2 &* ' ( & * ( ( ( % &,&& &&& % $% )D) +* ( + ' 6.10. Zoom Animation ; 6.10. Zoom Animation B& & ( G& % ( + B& "& ,& G& & 6 ( ' G& & ( "& & % ( G&* 'M & 0 % % 6 G& ' ( + + & $% + ' G& '* ( + % G& ;; 6.11. Script Animation 5 G&D G&D + G& % % 6.11. Script Animation & ( + ' 0 % ? 6 ( & * "& ,& & 0 ,& & & $ & % % * (( ;< 6.12. Pop up Animation alert("Result: " + (getTag('tag1') + getTag('tag2'))); " & ,& * ( ' % 6 % & & setTag( 'tag_bool', !getTag('tag_bool')); 6.12. Pop up Animation & ( (( ( (* ( % D% & . &/ < 6.13. Text Animation "& ,& & & * % ( & . &/ ( ( 8 & % & ; & & 3 & (( 6 ( & & % & . &/ % %( 3 &+ .V/ = * %( % M &M & MM ( % M (MI popup.htm?string=helloworld $ ,&* ( % 6#7 & 0 %* %& 3 &+ .V/ % & ' 6.13. Text Animation 0, & ( , ( 0 ( % M & & , % 0, "& %(* & * % % % , < 6.14. Clone Animation 0, "& & 5 &* 8' & 0, 0, "& 0 & ( 0, "& 0 ( 8' 6.14. Clone Animation & ( ' ( + 3 & 0 % ( & & ' &* * * % ' & & %% 0 % & % ' ( 8' 0 &* & % %% % < 6.14. Clone Animation = ,&* & &* ( &* I pump_1_state, pump_1_reading, pump_2_state & pump_2_reading 0 %% ( & & E &* pump_%n_state and pump_%n_reading "% & & (* ( 0#7R5 0 & ' @(* & ' 0#7R2 % ' & * ( A n A 1 % & ( pump_1_state & pump_1_reading & = &* & & &+ A 2 "& 0 & % % & &* % 3 A % " ( % ( ' = ,&* tag_%n_%s_%d ( < <4 Chapter 7. Report $H & ( & % % ( 0 & 3 , D , & N0>7 * + & * % & % = * - &* - & % $H D <9 7.1. Snapshot Report " % & 7.1. Snapshot Report 7 = N0>7 % H>7 &* (* M HN0>7 & " N0>7 & & ( ( = * [\ & %( [-\ % * [\ " + + + [-\ G + [ -\ ( M N0>7 & % + F&B 2 7+ % + * + & " = %* ( D % & % $ $ M &+ &&* ( %& , % D " + && % $ & 56$ &* & - & <: 7.1.1. Creating Layout > "& # " " 7.1.1. Creating Layout !( & % & N0>7 % @ D D1 56$ <!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>IntegraXor Snapshot Report</title> <link rel="stylesheet" type="text/css" href="system/styles/igrX.css" /> </head> <body> <div id="idButtons" class="paragraph"></div> <h1>High Plant Production Report</h1> <table width="60%"> <tr> <th>Item</th><th>Description</th><th>Quantity</th> </tr> <tr> <td>1</td> <td>Part A</td> <td></td> </tr> <tr> <td>2</td> <td>Part B</td> <td></td> </tr> <tr> <td>3</td> <td>Part C</td> <td></td> < 7.1.2. Link to Datasource </tr> <tr> <td>4</td> <td>Part D</td> <td></td> </tr> </table> <script type="text/javascript" src="./system/scripts/igrX.js"></script> <script type="text/javascript"> var rpt = igrx.report(); </script> </body> </html> ( M N0>7 & % + F&B 8 ( %& 0 %& && & 7.1.2. Link to Datasource 8 * & % ( 0 % ( * ?8@ & , + I data-igrx="{attr:'get',tag:'tagname'}" !( & % + <!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <; 7.1.3. Archiving Report <title>IntegraXor Report</title> <link rel="stylesheet" type="text/css" href="system/styles/igrX.css" /> </head> <body> <div id="idButtons" class="paragraph"></div> <h1>High Plant Production Report</h1> <table width="60%"> <tr> <th>Item</th><th>Description</th><th>Quantity</th> </tr> <tr> <td>1</td> <td>Part A</td> <td data-igrx="{attr:'get',tag:'part_a'}"></td> </tr> <tr> <td>2</td> <td>Part B</td> <td data-igrx="{attr:'get',tag:'part_b'}"></td> </tr> <tr> <td>3</td> <td>Part C</td> <td data-igrx="{attr:'get',tag:'part_c'}"></td> </tr> <tr> <td>4</td> <td>Part D</td> <td data-igrx="{attr:'get',tag:'part_d'}"></td> </tr> </table> <script type="text/javascript" src="./system/scripts/igrX.js"></script> <script type="text/javascript"> var rpt = igrx.report(); </script> </body> </html> 7.1.3. Archiving Report 0 % % & % "& & :& 0 :& % $% M % * & :& $ &* % MOM* MOM* MOM* MOM MOM % :& " ( % & 2 , % + && & G & ( * && %& %( 9 &* & % ,& $ & ( & ( & 9 * ( & :II9* << 7.1.3. Archiving Report 2 % % 5 % ( &G & ( 2% (+ ( " & % # % " + %* , # + " 7 % ( . < @& % " & 2 2 % 7.2. Statement Report . ' & N0>7 % " & , 2 # % * ( & ( % & ! % % % 8 = ' , * ( , < ( % & % , 7.2. Statement Report 0 (% & ( & ( & && ,& % & + * + & ( * & N(* % &* & & % & 7.2.1. Layout Configuration 7.2.1. Layout Configuration 0 & * , & * ( ( ( ( !( ( % % <!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>IntegraXor Report</title> <link rel="stylesheet" type="text/css" href="system/styles/igrX.css" /> </head> <body> <div id="idButtons" class="paragraph"></div> <h1>High Plant Production Report</h1> <table width="60%"> <tr> <th>Item</th><th>Description</th><th>Quantity</th> </tr> <tr> <td>1</td> <td>Part A</td> <td data-igrx="{attr:'get',tag:'part_a'}">0.00</td> </tr> <tr> <td>2</td> <td>Part B</td> <td data-igrx="{attr:'get',tag:'part_b'}">0.00</td> </tr> <tr> <td>3</td> <td>Part C</td> <td data-igrx="{attr:'get',tag:'part_c'}">0.00</td> </tr> <tr> <td>4</td> <td>Part D</td> <td data-igrx="{attr:'get',tag:'part_d'}">0.00</td> </tr> </table> <h1>Production Log</h1> <table width="60%"> <tr> <th width="28%">Description</th> <th width="18%">Density</th> <th width="18%">Pressure</th> <th width="18%">Level</th> <th width="18%">Weight</th> </tr> <tr> <td>Time/Unit</td> <td>(kg/m3)</td> <td>(bar g)</td> <td>(m)</td> <td>(kg)</td> </tr> <tr> <td></td> <td>0.00</td> <td>0.00</td> <td>0.00</td> <td>0.00</td> </tr> <tr> <td>Summary</td> <td>Avg</td> 7.2.2. Link to Datasource <td>Max</td> <td>Min</td> <td>Sum</td> </tr> <tr> <td></td> <td>0.00</td> <td>0.00</td> <td>0.00</td> <td>0.00</td> </tr> </table> <script type="text/javascript" src="./system/scripts/igrX.js"></script> <script type="text/javascript"> var rpt = igrx.report(); </script> </body> </html> 8 ( %& 7.2.2. Link to Datasource 8 * & % ( 0 % ( % ( ( * , + I data-igrx="{attr:'log',tag:'tagname'}" !( & % + 7.2.2. Link to Datasource <!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>IntegraXor Report</title> <link rel="stylesheet" type="text/css" href="system/styles/igrX.css" /> </head> <body> <div id="idButtons" class="paragraph"></div> <h1>High Plant Production Report</h1> <table width="60%"> <tr> <th>Item</th><th>Description</th><th>Quantity</th> </tr> <tr> <td>1</td> <td>Part A</td> <td data-igrx="{attr:'get',tag:'part_a'}">0.00</td> </tr> <tr> <td>2</td> <td>Part B</td> <td data-igrx="{attr:'get',tag:'part_b'}">0.00</td> </tr> <tr> <td>3</td> <td>Part C</td> <td data-igrx="{attr:'get',tag:'part_c'}">0.00</td> </tr> <tr> <td>4</td> <td>Part D</td> <td data-igrx="{attr:'get',tag:'part_d'}">0.00</td> </tr> </table> <h1>Production Log</h1> <table width="60%"> <tr> <th width="28%">Description</th> <th width="18%">Density</th> <th width="18%">Pressure</th> <th width="18%">Level</th> <th width="18%">Weight</th> </tr> <tr> <td>Time/Unit</td> <td>(kg/m3)</td> <td>(bar g)</td> <td>(m)</td> <td>(kg)</td> </tr> <tr> <td data-igrx="{attr:'log',tag:'app.currentTime'}"></td> <td data-igrx="{attr:'log',tag:'part_a'}">0.00</td> <td data-igrx="{attr:'log',tag:'part_b'}">0.00</td> <td data-igrx="{attr:'log',tag:'part_c'}">0.00</td> <td data-igrx="{attr:'log',tag:'part_d'}">0.00</td> </tr> <tr> <td>Summary</td> <td>Avg</td> <td>Max</td> <td>Min</td> <td>Sum</td> </tr> <tr> <td></td> 4 7.2.2. Link to Datasource <td>0.00</td> <td>0.00</td> <td>0.00</td> <td>0.00</td> </tr> </table> <script type="text/javascript" src="./system/scripts/igrX.js"></script> <script type="text/javascript"> var rpt = igrx.report(); </script> </body> </html> $M && && ( % & " D % + ./* &,&& .&,/* &&& .&/ J && .&/ ./ , + !( & % && ( % ( && , <!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>IntegraXor Report</title> <link rel="stylesheet" type="text/css" href="system/styles/igrX.css" /> </head> <body> <div id="idButtons" class="paragraph"></div> <h1>High Plant Production Report</h1> <table width="60%"> <tr> <th>Item</th><th>Description</th><th>Quantity</th> </tr> <tr> <td>1</td> <td>Part A</td> <td data-igrx="{attr:'get',tag:'part_a'}">0.00</td> </tr> <tr> <td>2</td> <td>Part B</td> <td data-igrx="{attr:'get',tag:'part_b'}">0.00</td> </tr> <tr> <td>3</td> <td>Part C</td> <td data-igrx="{attr:'get',tag:'part_c'}">0.00</td> </tr> <tr> <td>4</td> <td>Part D</td> <td data-igrx="{attr:'get',tag:'part_d'}">0.00</td> </tr> </table> <h1>Production Log</h1> <table width="60%"> <tr> <th width="28%">Description</th> <th width="18%">Density</th> <th width="18%">Pressure</th> <th width="18%">Level</th> <th width="18%">Weight</th> </tr> <tr> <td>Time/Unit</td> 9 7.2.3. Archiving Report <td>(kg/m3)</td> <td>(bar g)</td> <td>(m)</td> <td>(kg)</td> </tr> <tr> <td data-igrx="{attr:'log',tag:'app.currentTime'}"></td> <td data-igrx="{attr:'log',tag:'part_a'}">0.00</td> <td data-igrx="{attr:'log',tag:'part_b'}">0.00</td> <td data-igrx="{attr:'log',tag:'part_c'}">0.00</td> <td data-igrx="{attr:'log',tag:'part_d'}">0.00</td> </tr> <tr> <td>Summary</td> <td>Avg</td> <td>Max</td> <td>Min</td> <td>Sum</td> </tr> <tr> <td></td> <td data-igrx="{attr:'avg',tag:'part_a'}">0.00</td> <td data-igrx="{attr:'max',tag:'part_b'}">0.00</td> <td data-igrx="{attr:'min',tag:'part_c'}">0.00</td> <td data-igrx="{attr:'sum',tag:'part_d'}">0.00</td> </tr> </table> <script type="text/javascript" src="./system/scripts/igrX.js"></script> <script type="text/javascript"> var rpt = igrx.report(); </script> </body> </html> 7.2.3. Archiving Report & * & 3 & % & 8 % * & % : 7.3. Report Toolbar Menu & & " & ( % 7.3. Report Toolbar Menu 7.3. Report Toolbar Menu # & ( & <div id="idButtons" class="paragraph"></div>* & % ( ( 0 & % % && * * 8* * * , 2 # 0 ( "& " # 0 % &* *J 8 # 0 % * , & E + D& &* ( ( &&* & & ( " ( + D& & 8 8 & E 8 + D& & " , % * & % ( 8 * + ( & ( ( & % & + % D& & + & + D& & ; 7.3. Report Toolbar Menu E +* , * & , E , +* " , + " ( * + , N0>7 %* && A H>7 % , & 2 2 &* ( ( E 2 +* ( ( & & & D& & % < Chapter 8. Security $H "2" & , * * J )2) & & * )) && * % "+( % &* * , 0 & # * J % " & E * 2 # J E 0 %& ( * % % % - &,&& % % * &,&& & % * & % % " & & &* ( & .( ( & &+ + / % ( & % "2" & = * , ( & * ( & ( & * ( ( ( %& % & % >* ( %* ( & ( ( ( ( " #-" 8.1. Security Role $H "2" #D! " .#!"/* & % ( = * & % * * 0 J 8 0 % % * % * " % 8.2. User Configuration # % & & 3* & * & & ! ( ( * ( % + & +* - & + 3& 0 & & " #-" ( &,&& &,&& ( 0 7 % 0 % % &,&& ( & &,&& ( % $% &* ( N(* % ( ( & * & ( % & E &,&& ( ( & % ( & E & * ( ( & % @& % E &* ( % & * && % & & % & M 0 &% && * * M &- =& # )7) $ ( & )#) , 8.2. User Configuration "& & 3& ( %% % 6M , $ 6 %* "2" (* , &,&& $% % ./* %& & 8.3. Protection 6 % 8 * 3& @ & && = &* 7 $ % % % * % * 192.168.1.* & ( %& $ ( 192.168.1 > $ ( && 0 & % ( * ( % M * 0 & ( ( %& = * & & & ( ( 8 & %& & + & %& %% &* ( & %& J %% + & %& &* & ( & %& % $ " 7 "2" + %& +( * % "2" & $ = * "2" & ( & (* % (+ ( & % $ + < :; L " % & & % $ * & + $ %& ( '" 0 7 6 + % 8.3. Protection * * 0 % % %(* & ./ % 0 % ( % .( / " & %% % ( &* & ( % , " 8.4. Additional Security Configuration J ( %% % % ( % * (* && ( %& N(* ( %+ && % >& % % 8.4. Additional Security Configuration 4 8.4. Additional Security Configuration 5 %, % ( 0 , & ( & %% ( * &,&& & ' 7 " % 0 % , E > & ( ( & & $% MN M M * % & * ( M &% = ,&* M"M ( "& ( ( ( ( 9 E ( MM &* ( ( & % M"M N(* ( M"&M &* ( & ( * ( ( % % & ( M"M 0 % E & ( % & % ( & E M"&M & * ( & ( , && & ( +(& % E M&M & * % 3 & $% % ( % * 3 ( 0 ( & E &* E & 8 E 7 ( ( "& ( & & * $ * % 9 : Chapter 9. Communication && & && $M % (+ = * && * 3 D %& && (* ( 0 ( & ( ( ( & % 0 $H %( % % & , & && 9.1. Setting Communication Port = %& + % * ( M + , @( & 3 ( 8> 6! D & 8> 8> ( & 0 % 8> % * N 0& %& E( & ` " ` && + 8> % % 9.1. Setting Communication Port 8> % ; 9.1. Setting Communication Port !& % ( MM @ & % M & N 0& && ( , N 0& % %& % 8 ( & & & 0 && %( %( && ( = * 8 % %& + + 3 && & &' & ( "2" & %& & % , & % * ! #* 2 G* J ! <: ; 0-$ + ( & & + " ( % & % % & +( % % % * & &' & !% && * % & % % , "( ( ( % " (* D M 4 $% && %( & &&* M < 9.2. Port Monitor & ( % =* 56$* + $8 0+* + $% M & &&* ,& &+ , $8 0+ E( " , $% & &D * + 0+ & &* + # 0+ $8 " $8 $8 + & + && 9.2. Port Monitor $H & ( D > $ && ( & && %% % & 9.2. Port Monitor > ( %% % 0 > ((- ( & & ((* % E % & ( ' 6 > %(* & % && * ' & 9.3. Modbus Troubleshooting for SCADA & 9.3. Modbus Troubleshooting for SCADA 8 % && * M > % > + 6+ & % >* & % +( % && && 0 ( & % & $ > & && * &+ % ( & 0 & % & & % ( %& %% % % & 6 ( + N # .:/ 8 ./* ( & % & & + & % & ( & % 0 & & D& &* & ( & 1 !4%% 8( > #06 "$$ && & #06 & & "$$ M & % 8 "$$ & ( ( && . / M % && . &&/ & 0 (+ 0 G % & ; % #06 % "$$ 8!" 0 % > > , + & (+ > (+ && > ( * & ( M )>D ) (+ @& > 7 ./ & & 0 > ( ( 3 ( D 0 % & (+ ( & ( & * M & ( & && + #-4-4;9 > 0-$ (+ & > % & > (+ % #4;9 J #4 (+ %* % # &D (+ <( % > &D ./ (+ " > & ( $2 % %* % M @& M % @ $2 2 $2* $2* 2 "* " > 9.3. Modbus Troubleshooting for SCADA " & & @ "* ( (( & ( 2 " # & " 2 " , & %% %& * (* % & <<< % 8%% % R D $ 7 &&* %, & % %% 4, % 8 #* , % $ #* , % 8 , % $ N( & "2" & ( & = ( : * 4 ( 3 .* % / "2" 7+( ( 9 * ( "2" ( 3 .R/ (( 0 & %, > 0 D % %,* % * * 4 0 M %, (M ( D " * + 4 0 & & &% & % & ' 0 % %& >* 8 .,/* $ .,/* N # .4,/ J $ # .,/ ! 8 .+ / J $ .+ / %D & $ # J 8D # : $ % $ $ # M ( * * 8 8 # M ( E +* M && & % & $ & % %& % * + % .%/ ./* ( 8 # E % % 3* & + > 7 ( + & &* & & ' 3 ( + % 6 & % M & J & % % .%:4/ .:4/* + M &% >* & &% + 0& & ; % 13 1; 8 && #-E * ' # 8 0 & % 9.4. Interpreting Communication Message & @& $ # .,/ $ .,/ && # 8 3( = % * D ( % ( .:/ . .;/ % & / > && % % ( & .:/ 2%% %% &&D * ( 7 ! 0 & % %& % "R! !R" ( " ! : " % % * &D , "R!RR2* !R"R2R* R2R"R! 2RR!R" & % % % %% %& * % & ( & >& % ( ( > && ( D # ! 8&G !+- &G* ( ' % $ %* & > D 3 M! 8&GM % ' > & . + / && 0 % % & & & = * 4* 4* 4* 4 ( & N(* D .,/ 4 .4,/ 9.4. Interpreting Communication Message 4 E % * ( & ( % I )= @&.8>/ ) ( )@&) % & & 3 = & ( + %3 % & 9.4. Interpreting Communication Message & ( % E % %* Success & ( I ) @& .8>/ )* ( @& % & & N(* % +* * ( & D& & * * ( & Failed & ( + % Success & & ( $% ( %* & %& ( % I Illegal data value: Implied length is incorrect 0 ( & & % %* M %& && & % & N(* * %% 0 R* D 9 9.5. OPC Troubleshooting for SCADA & % %& & & ( ( % 9.5. OPC Troubleshooting for SCADA 8 % % "2" (M & & $H ( & % % 28> N(* & 8 - & + % & 8 - % M & % ( % P I--((( , &----&-O& Q % & - & ( , : Chapter 10. Device Driver $Date:: 2011-01-25 #$ 0 % % &' 0 ( % $-8 % & %% 0 ' % * %( 2 0 M & % % * ( & (+ $-8 % % * 2 0 10.1. Modbus > & % && $H > % J * #-4;9-4 J 0$ $ % % % % ( 10.1.1. Port & Device && 10.1.1. Port & Device E ( & % )8>)* )8>)* 3 &* 2 ( & % % & 8 * > 0-$ ( $ ( & + )< :; I9) @ )I9) & % >* & & > 8 && * % & % % $%& % & & ( & + % ; 10.1.1. Port & Device < 10.1.2. Tag > : (( )) "' %( +( % && ( "2" : 3 ' @& % ( -& : (( ) A@ ( 0 % = 7 & + 7M % * % % ( + ( & & $ * % : (( ) BC ( 0 % = 7 & M :4 % 4 * % % & 4 $ * % 4 : @ ' .B " & & ( 0 ( : . ' D " 0 ( : C ' A@ " 0 & % & % G* M & % && % * %& ( @& )4) )4) : D ' BC " 0 ( :4 :4 ( ' + % %% 10.1.2. Tag 0 4 % > 7* N # .4,/* $ # .,/* 8 .,/ J $ .,/* ( N # J $ # : ( 8 J $ ! = J 7 :4 & N $ # 0 % % $ # .,/ $ .,/ ( $ 0 % 0 )0)* D M setTag() % 10.2. EtherNet Industrial Protocol @-$T ( #+( "& <<* 82A" ( ( @-$ (+ 0-$* & % ( $ 0( & % # J 0 & & ( 7 %( !& % &## % !887 10.3. SQL driver for database integration !& % &## % $@0 ; $@0 : 2$@0 7$@0 :4 #"7 @-$ + > && % 0 % & % ( & N( D > @-$ % G ./ ( &+ ( & & @-$ & % & " & % = ( $-8 %& 0 & & ( & 0* #7,9 % % $-8 7 % @-$ "2" 0 $ % #D8 10.3. SQL driver for database integration C7 2 && ( ,-" 2 & ( & $ + ( % C7 2 82! 10.3.2. Tag 10.3.1. Port & Device 6 C7 2 %(* % % $ ( % C7 0 %% %& ( % 2 = * & %( % >C7 I "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=igxlog;User=root;Option=3";Initial Catalog=igxlog" 0 " % % * % 3 % % % % C7 @ % % 10.3.2. Tag & + * " % % % 3 ( 10.3.2. Tag % , % ( 0 & ( 2 & 0 & ( %( & A & % 0 , % & %( %( %& $ ( C7 &* & % +* & & (+ %% I database_table_name/function_name:data_column_name[sql_where_condition ]@time_stamp_column_name 0 & % , % & database_table_name data_column_name % ,* , function_name:* ( & %& & + min:* max:* avg: J count: @ count: ( & % ( % % % & " & ( 3 + sql_where_condition ( %& & C7 &* % ( order by & ( ( 0 % , time_stamp_column_name* ( , & & $H & & 0 &* ( "& 0+ 0 0+* , & & ( % "2" & & $ ( D%& (D %%* & & & , % ( !( & , ( J ( % %% ( %% log1/read_fr_column[tag_name='tag' order desc];log2/write_to_column[data is not NULL] by time_stamp ' % & + 6 & , * J %& % + ( P Q % , " , ( & 10.4. Profinet C7 , & ! ( M % % , ( %D% + % %&* & %& % & & 10.4. Profinet #8=$@0T % #8=$!6 J #8=$@0 $ .$/ % & #8=$@0T 0-$ $0 * * %%* D& * & % ( $ 0( & % 6 J @& #8=$@0T & % & " & % = ( $-8 %& 0 & & ( & & D 0* 0$" % 4 10.4. Profinet % $-8 0$" % #8=$@0 $H 9 10.5. SNMP " ( %& ,& * & & ( 7 %( !& % " % ! ! - $@0 ; $ - E : 2$ - 2( 6$ ; 6$ : 62$ # 0 $ 0 % #D8 10.5. SNMP @> .& @(+ >& / $ & (+ 0 % ( $ & 0 % & : 0 @> * # * && * 0&D* @> 0-$%& & % @> 0 0 & % ( % % >$! .>& $%& !/ % % @> $H 0 % @> 0 & % ( 8$2 : 10.6. IEC60870-5-101/104 .8' $%/ % % @> $H " ( %& ,& * & & ( @> %( % " % !$0 :4 :4 5 $@05# $ $" 8!?0 $2@0$=$# 800 0#$@5 83 0& 0+ 6 0 $ 0 % #D8 10.6.1. Port & Device 10.6. IEC60870-5-101/104 $ :;D9D P$Q % ( & &* && % * * && % ( & 0 & & ( $ :;D9D $ :;D9D9 D % ( 20 2 0 % & % + DD* * & $ :;D9D4 .$ 4/ , % $ ( * (+* + & (+ 0 0-$ % (+ 7"@ .7 " @(+/ ( %% % .$2@* H 9* =& / E"@ .E " @(+/ " % $ 4 & % $ ( & % % 0 ( + % * ( % % . D DD / 0 % % $4 % & & % %% % (+ G && 10.6.1. Port & Device E ( & % )8>)* )8>)* 3 &* 2 ( & % % & 8 * $4 ( $ ( & + )< :; ) 8 && * % & % % $%& % & & ( & + % ; 10.6.1. Port & Device $ : 4 ) 2 7 % % & : 4 (( 2 7 % && : 4 (( && % "26 < 10.6.2. Tag : 20 (( 2 7 % + : % $ 3 ( : 8 (( 2 7 % & : 24 0 8 &1 = & 10.6.2. Tag 0 9 % $:;* 2 .2/* ./* > A .>/* 2 && .2/ && ./ ( > A : * * 2 && && ! 2 ; 0 % % 2 * > A ( $ 0 % 0 )0)* D M setTag() % $ 0 % 4 Chapter 11. Multiple Redundancy $H % * @(+ 7 # & 7 # ! % & * ( & & % & % 8 * @(+ 7 # D % ( & 7 # ( 3 & 8 * @(+ 7 # ( % % & &* ( & % % = * % * % % * $-8 ( 11.1. Multiple Network Redundancy > @(+ # -(+ J %% ( $ && && 0 (+ ( ( & $H @(+ ( &% % && (+ ' * ( % & & ( 8 ( , & %& %% ( M % & % 0 & ( % M %& - " % $ %* ( 0 & %& & % $H ( 8 % * ( %& & 4 11.2. Network Redundancy Configuration " @(+ & + 0 % 3 & ( % & (+ + 0 D3 % % & & && * %% * ( & @ & % &* %%a 0 % ( & & && ( %% * %% + #4;9 &, ( # $HM % 11.2. Network Redundancy Configuration % -(+ % %(* & [n] % & % & & 0 & & ( & * % DeviceA[1]* 3 DeviceA[2] % 0 % & %% && * & ( + % % & & ( & 8 % & &* + % & ( & 8 & % $H ( 4 11.3. Multiple System Redundancy 2PQ ( ( % 2PQ* " & ( & +* $-8 % ( & % 11.3. Multiple System Redundancy $H & * % & 0 $ % %D ( $% & %* ( + & 0 ( + .( & / & & ( & & & ( G* G* $-8 +* +* + 2 G 0 G 0 &* * * * * * 0 & 0 G % 4 11.3. Multiple System Redundancy 0 G 0 G E * & 0 G $-8 $-8* 8 + E * & $-8* + $% & (* ( + ( + & + $ " (+ % ( && % @(+ 44 11.4. System Redundancy Configuration " (+ % ( & % J C7 6 % ( ( # &- 11.4. System Redundancy Configuration & @(+ & % # M && * % ( & (M % 2 G G @& G &* * ( "2" ' 0 G G 0 & G ( %% % @7! @7! " @(+ 7 ! .@7!/ % @7! & % $ @7! $ $ 3 ( @7! $ % 49 11.4. System Redundancy Configuration 5 % % 2 > # % * % & $ % < @& % 2 " %& (( 7 % $ && % 10 0 #+ & % % 0 ( ( & & ( & & 0 ( %& * 0 & 3 % 8 + & ( & % % (+ ( & % D& , 82! " % & % G + %( % & * G % =3 2% ( %3 %& @& ( + & 4& ( && % 6 # 0 2% ( & % & % 2 =$=8 .= $ = 8/ # 2% ( ./ ( & ./ + 8 & # * + E 7 % & ( % & % 4: 11.4. System Redundancy Configuration % ( # + 8 C7 P I--((( 3 -Q % 6 % > C7 ( ( & % G 4 4; Chapter 12. Project Management $H % ' % % ' + ( ' % ( % &* %, % ' & $* % % & (+ !+ ' & % % * & % % & ' % ( (M & & N>$-"2" & N(* ( % ' " ( ' % ( % % G ( ' 0 % & )) )I`& =)* )> 2&`> ') % ' E( , %& ( = A( + % E ( * + #% =9 @ % ' % * & % ' G * ( % & @ (+ , % ( " % % 12.1. Backing up project !+ $H ' & ' % = % % &&* 4< 12.2. Migrating/upgrading project & % % ( % A % & G ( & & % G* G % & % & && % %& + G G = G & % & GO GO % & $M && ' & & & N( M 3 % ' L , L ' % & + & % & 0 , % , % ( +( % ( = * project.zip & project.zip_ 7+(* & & & #& L & % % %G 12.2. Migrating/upgrading project E ( % $H * & % ' ( & 6 % + , ' % & & ( ' ( $H " ( & % %& ( ' , ' $M index.html* alarm.htm user.htm %& ( ' , ' $ & * & plot.htm %& 4* & % & & % ( ' % $H ( & D & % ( % 0 ( &% ' %& 4 * + ( "H ( % % setTag() ( settag()* getTag() ( gettag() 12.3. Group development %& & ' ( $% ' 3 &* ' & (+ & ,-& & (+ "* & & ' 12.4. Updating Template ' & G % % ' % $ & ( $H * % )I`& =``$H 4 )* & @( & ( %& & & ( ( ( & + % $ ( &G ( &* & &% * & ( ' & G template.zip ' ( &G template.zip % , ' 12.5. Suggested Supporting Tools ? + ( '* $H ' & % , % % N0>7 * 8 % % & %* & , % ( & % , % = * & ( ' % ( E> P I--(& Q % %%* " #+ 9 12.6. Working with Database P I--((( & % &-+Q % , E( H & !( % %& , 6 % %& $H* ( & ( + & * & E %( % % 0, 0 & % , , + )0,) ( ( I--((( , , )@RR) I--D % ( % I--((( &- # " % & + - % (+ % )A@) % I-- # 56$ ( & 0 % & I-- & $% % ( & % ( & * & , & && % & % & & )E>) ( I--(& $ E( H* , % +( % % & & + )" #+) ( ( I--((( & % &-+ )0 # ( & 0 % ( & * ( ( G ( ) I--((( , &-%-' & + ),) + ,* #5!* N0>7* >WF NA % ' I--((( ( &-, & '" 0 M ( % & & - $H 12.6. Working with Database ! %* >% " % % ( ' ( M ' " 3& "2" 0 % 0* "&* 0 # " $% & >% " 3* $H 82!D& >% C7* 8* >C7 C7 >% C7 , % % ( 5! &* ( %% & $ % && ( * &% ( 6 >& 0 &G % 3& ( $ ( I--((( &% &-,-20 ( , * +* ( ) ) " & % % % (I I--((( &- && %( 9 12.6. Working with Database , >% , & " C7 Provider=MSDASQL.1; Extended Properties="DRIVER=SQL Native Client; SERVER=<COMPUTER_NAME>SQLEXPRESS; DATABASE=my_job; trusted_connection=yes"; C7 Driver={PostgreSQL}; Server=IPaddress; Port=5432; Database=myDataBase; Uid=myUsername; Pwd=myPassword; >C7 Driver={MySQL ODBC 5.1 Driver}; Server=localhost; Database=myDataBase; User=myUsername; Password=myPassword; Option=3; ! ( 82! 2 9* & ! ( ( & % & 9 12.7. Working with Inkscape + ( P Q 2 7+ ( 0 "% * , C7 ( % > C7 P I--((( , &---&3 3Q* >C7 P I--((( , &---&3 3Q* C7 P I--((( , &--- 3Q 8 P I--((( , &--- 3Q 12.7. Working with Inkscape + N D $+ > & % % ( " ( ( %* &&G + % && + % 0 + I--+ --+4: &* ( & % N D F > #% 9 12.7.1. Multiple Layer > A5 ,& %& I-- 0 & & % + 8 && ' ( % I--&' % %-$@F"->"@6"7- &-! & 12.7.1. Multiple Layer $ ( % + $ ' ( & + ( $ %& % (+ + ( ( (+ % ( & % , % ( &* , & ( ( G& 7 > % !& 12.7.2. Resize and Background @ $H D% % ( ( ( ( && G % ((* & " M ( % & G * M & ( %% G % & %% 94 12.7.2. Resize and Background 2& 99 12.7.3. Complicated Shape % ( + ( ( ( N(* % + ( ( , G* % ( ( ( ( G " % & ( ( (( G & ( &&* & & M % $ , + & & ( 2 ( ( % * + ( & ( 12.7.3. Complicated Shape 0( & % ( $+ # E % % & & V = & & & ( % !G J 7* (* 6 8 J 2%% 8 ( 0 % &* M + % R J R > $ & * ( )&) )) * & & ! % 9: 12.7.3. Complicated Shape 8 > !( & % 8 ( & & & + ( " & & & ( 9 12.7.3. Complicated Shape 2( % & & 9; 12.7.3. Complicated Shape N ( + MRM %& 6 2( % ( & 9< 12.7.3. Complicated Shape 4 N ( ( + & .D/ %& 2%% : 12.7.3. Complicated Shape 9 0 % & : 0 , ( % & : 12.7.3. Complicated Shape 2 2%% ( %% & : 12.7.4. Gradient Effect ; & * ( & & & & 12.7.4. Gradient Effect 5 %% & * &+ ' & $ & "2" + % ' ( %% 0 + %% " "2" & & ( + !( 3+ & & ( ( + ( & + " & + ( %% : 12.7.4. Gradient Effect 2( ( + + G & & ( & + :4 12.7.4. Gradient Effect R 2 % ( ( & & % ' 0& & % & 0 & , ' , ' + N ( ( ' ( & & %& 4 N % & R > %& 2%% 8 2 + :9 12.7.4. Gradient Effect % % ' * % 3 9 E + ' * MM 5 * & ' %& & $% ( %% %* ( ' ( & :: 12.7.4. Gradient Effect : > ' + * ( ( * + & R 2 & + : 12.7.4. Gradient Effect ; = * + + I + M+M & % M!+M 0 G ( :; 12.7.4. Gradient Effect < N & + & %& &G + & 3 ( ( + % ( 2 & 3 ( &* G ( & :< 12.7.4. Gradient Effect = G &+ - % + ( & + MM & ( %% 12.7.4. Gradient Effect R 2 & * M M % G 0 5 ( + % ( %% 4 > ( * + % %% 12.8. Working with Kompozer 9 2( ( * + % : = * M# 5M % %% " ' G & + 12.8. Working with Kompozer & % A 0 % = F&B P I-- &--&-OQ % ( % 12.8. Working with Kompozer 6 , % 12.8. Working with Kompozer " 4 Chapter 13. Known Issues 0 & +( * %, & %& % 4 4: ! ( %% ' * % ( , + % & 0 ( &% ( & % %, 13.1. Inkscape SAGE 0 ( ( % , A5* ( & + * ( , , %( ( M ,M & ( , % , ( 6% , &' , ( E( % & % ( & , % &' ( $+ ( % , & &* ( , %& + J 0 9 13.1. Inkscape SAGE "A % $ ( + % , : 13.1. Inkscape SAGE =%, ( + , 5 & ( + , 13.1.1. Miscellaneous '" " * $+ & ( P I--(+ + -(+-, -#O@- 4;^F(O$Q " & % * R %3 (+ 13.1.1. Miscellaneous "5 M +D .`/ ( $% +D + P"Q ( 0 (+ * P"Q & + P8FQ # $& !( % & P I--((( , &--(D(DDDD( DGDD&DDQ + L ' L ( & & & ( & + + % % * ' G ( M % D E ( A5 % ( + D %* & + % D& ( 0 &* & % &* & ( " (+ ( && A5 ' &* & % 13.2. Project Editor J ( & ( % 3 ( % % * 8 ( ( & & E+ % % % ( + ( & % 0, 0, ( & ( E( 87 %& ( * # J 7= = +( 2-!+ ( ( & + +( =D" ( ( % & 0 (+ 87 6,-8H %& = @RR % && >``87 N0>7 + & % 0- N0>7-0, D ( & = (+* & & . 4 / 6 % ' % (+ ' %3 * D .R=4 RE/ ; 13.3. Front-end 6 %& & & 6 ' menu.js ' ( ) & '* + )* & & menu.js %& & ' 13.3. Front-end "& " A5 & & M&M $+ "5 ( % ( & +( & " = %%D " A5 & & )%&)* ( A5 && ( % & %& ( %%D & A % M%&M & "5 D 2 % ' & % 5 & % ( "& % 5 ' =%, D =%, & %&* (* ( & ( =%, ( ( $% M % &+ * & ( %& " R=9 % %% % 8 ( ( P I-- &G &-D6-+-N(]]] ] Q 2 &* ( % I http://localhost:7131/job/page.htm?YYMMDD-hhmm -0 E 0 +( D + ( && & & % , & D 5 & $ & P I-- &- &-(-<94:4V ZQ 5 & D 7 - 5 & && ( * < 13.4. Miscellaneous % & ( 0 +( P I-- &-- &&--VZ94<Q % 5 & !( ( 0 ( & G (M & & A5 & ( P I--((( , &--(D(DDDD( DGDD&DDQ A5 & 8 ( ( +* EW$EW5 (M 13.4. Miscellaneous # D 6 ; # N0>7 + J1* J1 & & & Index A & %* 49 * 4 * 4; & * 9 * : * ./* ; (( * ; * < * ; * ;< * 4 * ;: 0,* <* < * ;9 G&* ; "& , &* * ; C && * : * : * % ' * 3* D %* 4 * 9 2& * 9 %* : * @-$* $:;D9D-4* ; &* %* 4 @>* : C7* F %D & (* : ,* :< & * 9< * 99 * :; & %&* 9; * 9< * : G %* 4 I + * : * 9 * ; * 94 * 9: "5* G J +* 94 * * 9 L J G* M > %* : &* 4 * N @(+ # %* 4 $* 4 O 8& D = %* : 8 %* : 28> * : P %* : ; ' +* 4< &* 9 ' * &* R # $* 4 # $* <9 3&* S * 9 "H * 9 %* 4< * 4< %* 4; %* 9 %* 9 ?8@* 9; * 4 * * %* %* 9 # %* 49 $* 4 T %* ; -,* 4 & * ' %* 4< * 9 & %* 9 * 9 0 A N0>7 * %% * * ; U 6#7 * 49 %* 44