Skapa egna objekt
Egna objekt skapas genom en uppsättning bilder som namnges enligt den objektspecifikation som symbolbiblioteket beskriver i lib.conf (se lib.conf). Objekt definieras under gruppen Objekt i lib.conf och definieras enligt följande:
Exempel:
Följande exempel beskriver en kompressor med tillstånden på, av och larm med rotation 0, 90°, 180° och 270°.
"Compressor": {Unique ID
"Description": "Compressor",Description of object
"ImageBase": "compressor",Name base for image (if left empty, ID is used)
"ImageType": "gif",Image type (jpg, png, gif, svg)
"States": [
{"State": "off", "criteria": "V=0|CMD=0"},
{"State": "on", "criteria": "V=1|CMD=1"},
{"State": "al", "criteria": "AL=1|FAULT=1"}],States with attached criteria
"Rotations": [0,90,180,270],Rotations
"ObjectFilter": ""Used to generate objects based on prefix
},
Den här konfigurationen behöver följande bilder i symbols-katalogen för att fungera: compressor_off.gif, compressor_on.gif, compressor_al.gif,
compressor_off_90.gif, compressor_on_90.gif, compressor_al_90.gif,
kompressor_off_180.gif, kompressor_on_180.gif, kompressor_al_180.gif,
kompressor_off_270.gif, kompressor_on_270.gif, kompressor_al_270.gif,
Information
Kriterierna för tillstånden definieras av booleska uttryck. Termerna kan grupperas med parenteser och sedan utvärderas. Följande jämförelser kan användas: <, >, <=, >=, <>, =, & (and),|(or).
Om ingen matchning kan göras mot något av tillstånden för objektet och kriterierna, används alltid den översta punkten i listan.
Om något tillstånd uppfylls längre ner i listan har detta företräde framför alla tidigare uppfyllda tillstånd.
Om objektet är av typen svg kan flera tillstånd vara aktiva samtidigt.
Kriteriet kan även innehålla villkor för larmstatus genom att använda .AlarmState=CONDITION, där STATE ersätts av något av följande: OK, OK_NACK, ALARM, ALARM_NACK eller BLOCKED
Objektfunktioner
Objektfunktioner används för att definiera hur taggar ska visas på en sida definiera innehållet i inställningsdialoger. Objektfunktioner används också för att definiera olika typer av kommandon som kan utföras från inställningsdialogerna, t.ex. manuell manövrering av en pump eller ventil. Funktioner definieras under Funktioner i lib.conf och kan vara av följande typer:
| Funktion: | Beskrivning: |
| Digital | Anger vilka suffix som är digitala signaler. |
| Värde | Anger vilket suffix som ska visas i bilden. |
| Börvärde | Anger vilka suffix som är ändringsbara för nivå 1 (BASIC) kan även anges via Access. |
| Inmatning | Anger vilka suffix som är ändringsbara för nivå 2 (ADVANCED). |
| Välj | Flervalsfunktion som visas som knappar, t.ex. handkontroller. |
| Rullgardinsmeny | Flervalsfunktion som visas som en flervalslista, t.ex. driftlägen. |
| Schema | Anger vilka suffix som används för scheman. |
| Portlet | Gör att du kan bädda in en portlet i sidofältet. |
| Valfritt | Valfritt om inställningen ska vara synlig, och ger möjlighet att köra ett skript efter att alla värden har skrivits. Se informationsrutan nedan. |
Exempel:
Följande exempel beskriver en funktion för en Hand-0-Auto omkopplare.
"F11": {Unique ID
"Description":"Manual Mode H/0/A",Description of function
"Type": "Select",Function type
"Action": "From:M=1,MCMD=0|To:M=1,MCMD=1|Auto:M=0,MCMD=0",Description of how the function should work
"Level": "Manual mode",Text shown in popup
"Access": 3Access-level for the function
},
Information
Level har olika funktioner beroende på vilken typ av funktion det gäller. För Värdetyp anger level vilken nivå ett värde ska visas på (1 högst upp, 2 längst ner), För Välj och Dropdown anger Nivå den text som visas i inställningsrutan. Börvärde och Ingång hämtar sina texter från tagglistan.
Tips!
För att införa en fördröjning i ett händelseförlopp för en åtgärd används d=delay där fördröjningen anges i millisekunder.
Exempel:
Följande exempel sätter taggen MCMD till 1, väntar 2 sekunder och sätter sedan taggen till 0 när man klickar på knappen Växla.
...
"ACTION": " Växla:MCMD=1,d=2000,MCMD=0"
...
Tips!
ANROPADE SKRIPT kan också köras från en Action. Detta görs genom att skriva:
Script#script namn(parametrar).
Skriptnamn kan läsas från SYSTEMINSTÄLLNINGAR/SKRIPT/ANROPADE SKRIPT
Parametrar är inte obligatoriska men är ett bra sätt att skicka information till skriptet.
Parametrar skrivs i formen par1=värde,par2=värde där par1 och par2 blir variabler med inställda värden i skriptet.
Om PREFIX anges som värde för en parameter, ersätts detta med prefixet för det aktuella objektet.
Suffix kan anges som ett värde för en parameter och sedan ersättas med det aktuella värdet för taggen. Detta görs genom att värdet inleds med _ (t.ex. _PV)
Exempel:
Följande exempel anropar skriptet sum med två parametrar x=3 och y=_PV, när knappen Beräkna klickas. Detta förutsätter att det finns ett skript som heter sum och som använder två parametrar, varav den ena är talet 3 och den andra är en objekttagg som slutar på _PV. Mer information om skript finns i kapitlet"Anropa skript".
...
"ACTION": "Beräkna:script#sum(x=3, y=_PV)"
...
Schedule-typ
För typen Schedule kan Action anges på tre olika vis. Detta för att kunna erbjuda olika typer av tidkanallösningar.
Alternativ 1:
För att länka ett lokalt schema med på- och av-tider separerade i olika taggar, använd Action CT#| CF# där CT och CF kan ersättas med andra taggsuffix om så önskas. # kommer att ersättas med siffror i Web Port enligt 1.2.. 7 för måndag, tisdag.. Sunday och 8 och 9 för helgdagar och helgdagar. Om flera on/off-set önskas, använd 11,12..17 för on/off nummer 2 och 21,22..27 för nummer 3 och så vidare.
Alternativ 2:
Om en tagg använder /day, anges åtgärd enligt CV# där CV kan ersättas med andra taggändelser om så önskas. # ersätts med siffror i Web Port enligt 1.2.. 7 för måndag, tisdag.. Söndag och 8 och 9 för helgdagar och helgdagar.
Alternativ 3:
Ett schema kan också anslutas till den mer avancerade schemalösningen i Web Port. Detta görs genom att ange Åtgärd WEBPORT. För att sedan koppla ett sidobjekt till ett schema sätts fältet Text (objektnamn) till samma namn som schemat, och funktionen markeras i objektinställningarna.
Observera!
Om alternativ 3 används kommer inga andra fält eller funktioner att visas i sidomenyn för objektet i visningsläge.
Information
Valfritt ger ett inmatningsfält för inställningar, liknande INPUT. Skillnaden är att inmatningsfältet endast visas om funktionen Valfri är vald.
Exempel: "Action": "SP10" , inställningen för SP10 visas endast om funktionen är aktiverad.
Optional ger också möjlighet att ställa in Level till RunOnSave vilket kommer att köra ett skript som konfigurerats i Action.
Exempel:
"Action": "script#RunOnSave(prefix=PREFIX)",
"Level": "RunOnSave",
Portlet-typ
Portlet-typen gör att en portlet kan bäddas in i popup-dialogrutan. Detta kan användas för att ge mer detaljerad information, bädda in en karta eller liknande. Nedan visas ett exempel på hur detta kan göras
Exempel:
" LIBOBJECT ": {
"Description": "Lib object",
"Type": "Portlet",
"Action": "portlet-lib_LIBOBJECT:OBJECT=property-svg_Sensor,POSX=20,POSY=20,PREFIX = PREFIX",
"Level": "",
"Access": 3
},
Action anger sökvägen till den portlet som ska bäddas in och eventuella parametrar. Sökvägen anges enligt [library name]_[object-id]:[parameters].
I exemplet ovan är biblioteksnamnet portlet-lib, objekt-ID LIBOBJECT och parametrarna OBJECT, POSX, POSY och PREFIX.
Följande nyckelord kan användas för att ersätta sid- eller objektinformationen:
| Nyckelord | Nyckelord Beskrivning |
| PREFIX | Ersätts med objektets prefix |
| LNG | Ersatt med longitud för sidan |
| LAT | Ersatt med latitud för sidan |
| _SUFFIX | Ersätts med värdet på den tagg som suffixet anger, till exempel _PV |
Indicators
Indikatorer visas ovanför objekt och kan användas för att uppmärksamma användaren på speciella förhållanden. I det medföljande symbolbiblioteket används indikatorer för att visa en blinkande hand på objekt som inte är i automatiskt läge. Indikatorer definieras på samma sätt som objekt. Exempel på hur dessa indikeras finns i kapitlen"Skapa egna objekt" och"lib.conf". Indikatorer definieras under gruppen Indicators i lib.conf.
style.css
Med style.css kan du påverka hur dina svg-symboler ser ut i olika tillstånd. Du kan också skapa en unik grafisk standard för dina rubriker, texter och taggar för varje symbol. Varje bibliotek har sin egen style.css. När du skapar stilar i denna fil är det viktigt att du namnger "sökvägarna" till klasserna korrekt.
Exempel 1
Här är ett exempel på hur en "sökväg" till en klass kan se ut:.fastighet-svg.Fan.on .ind_on {
fill: #23d879;
}
.fastighet-svg är namnet på biblioteket
.fan är namnet (ID) på symbolen
.on är i detta fall ett tillstånd
.ind_on är den klass som satts på det specifika elementet i svg-bilden. I det här exemplet byter vi färg på elementet när tillståndet är "on".
En annan sak du kan göra med style.css är att ställa in unika textstilar för ditt symbolbibliotek. Om du vill skapa en generisk stil för alla symbolbibliotek bör du istället lägga till stilen i /assets/theme/style.css.
I dessa filer finns exempelklasser som visar hur man ändrar textstilarna. Nedan följer ytterligare ett exempel:
Exempel 2
.fastighet-svg.WpCompV2 .wpCompText .NAME
{
font-weight:bold;
}
I detta exempel ändrar vi rubriken på alla symboler till fet.
Här är en lista över standardklasser:
| Klass | Beskrivning |
| .fastighet-svg.WpCompV2 .wpCompText .NAME | stil för rubrik |
| .fastighet-svg.WpCompV2 .wpCompTag | stil för beskrivning och taggvärde |
| .fastighet-svg.WpCompV2 .wpCompTag .wpCompDescription | stil för beskrivning av värde |
| .fastighet-svg.WpCompV2 .wpCompTag .wpCompTagValue | stil för värde |
| .fastighet-svg.WpCompV2 .wpCompSelectBox | stil för rutan som innehåller symbolen och alla dess texter |
| .fastighet-svg.WpCompV2 .wpCompImage | stil runt symbolen |
Virtuella komponenter
Det finns möjligheter att komma åt samma inställningar som för ett objekt utan att skapa själva objektet, genom att använda virtuella komponenter. Det kan t.ex. användas för inställningsfönster i rapporter eller portlets.
Den skapas genom att i javascript anropa ShowSideInfo("/page/objectsettings", { id: oid, lf1: xxx, lf2: yyy, lib: libid, pageid:pid });
Där oid är objektets taggprefix, t.ex. VS01_GT11 lfX (valfri parameter) ger möjlighet att välja funktioner som knappar för manuell manövrering, t.ex. "F13".
pid är den sida som det virtuella objektet ska knytas till eller använd "menuid" till objektet
Om det finns ett objekt på en sida med samma prefix hämtas funktionen från samma symbolbibliotek. Om det inte finns något objekt som anger om funktionen ska hämtas från ett annat bibliotek används parametern lib (valfri).
Exempel:
ShowSideInfo("/page/objectsettings", { id: 'VS01_GT11', lf1: 'F12', lf2: 'F13', lib: 'fastighet-svg', pageid:'LB01_WPP' });
Eller:
ShowSideInfo("/page/objectsettings", {
id: oid,
lf: 'F12',
pageid: menuid,
lib: 'fastighet-svg'
});
}
Metadata
Det finns möjlighet att lägga till mer information till ett objekt genom att skapa datastrukturer i portlets. I dessa fall används inställningarna för en portlet för att definiera vilken data och på vilket sätt den ska matas in eller väljas.
Kopplingen görs sedan via tagglistan genom att använda en prefix+suffix-struktur på samma sätt som andra taggar. META1-5 är fördefinierade i fastighet-svg som giltiga suffix för taggar, men kan anpassas efter behov. För att koppla en portlet till en tagg, välj datatypen PORTLET. Spara taggen och öppna den igen för redigering. Istället för adress visas nu en rullgardinslista där tillgängliga Portlets i systemet kan väljas. Observera att beskrivning är obligatorisk för att metadata ska visas på anslutna sidobjekt. Sidobjekt som har metadata kopplat till sig kommer att visa dessa som kollapsade grupper där rubriken kommer att sättas som beskrivningen av metataggen.