In diesem Kapitel findest Du eine tabellarische Auflistung alle Attribute, die Du zum Erstellen einer RAP-Datei benötigst.
Wie Du diese Datei erstellst, in PiCtory einbinden kannst und worauf Du dabei achten solltest, erfährst Du hier.
ID | Kurzbezeichnung | Erläuterung / Beispiel | Typ | notwendig /optional |
A | id | Hersteller-interne ID des Moduls / Geräts | String | notwendig |
B | version | Module / Geräte können in verschiedenen Versionen vorliegen (alle Versionen haben dieselbe ID, unterscheiden sich jedoch in der Versionsnummer) | String | notwendig |
C | comment | Interner Kommentar, z.B. zur Erläuterung des Dateiinhalts | String-Array | optional |
D | screencomment | Vorbelegter Kommentar zum Gerätetyp, der in der Geräte-Informationstabelle der Applikation in der Kommentarspalte angezeigt wird; kann dort vom Anwender je Gerät geändert werden | String | notwendig |
E | size | Breite der Baugruppe; kann z.B. verwendet werden um zu ermitteln ob noch genug Platz auf der Hutschiene vorhanden ist | String | optional |
F | devicetype | Positionierungstyp des Geräts; bestimmt an welcher Position ein Gerät eingefügt werden kann (bitte in Großbuchstaben eingeben)
BASE Basisgerät; muss als erstes positioniert werden LEFT Gerät kann nur LINKS vom Basisgerät positioniert werden RIGHT Gerät kann nur RECHTS vom Basisgerät positioniert werden LEFT_EDGE Gerät muss als als LINKES Abschlussgerät positioniert werden RIGHT_EDGE Gerät muss als RECHTES Abschlussgerät positioniert werden LEFT_RIGHT Gerät kann LINKS oder RECHTS vom Basisgerät positioniert werden RIGHT_LEFT Gerät kann LINKS oder RECHTS vom Basisgerät positioniert werden VIRTUAL Virtuelles Gerät – wir automatisches nach rechts in den virtuellen Gerätebereich plaziert |
String | notwendig |
G | producttype | Gerätenummer der KUNBUS Produktlinie | Num | notwendig |
E | input / output / memory | Eigentliche Arbeitsdaten (‚Attribute‘) des Geräts, die während seines Betriebs modifiziert werden; eine Datendeklaration besteht aus nachfolgend (E.1 bis E.x) beschriebenen Teilwerten. Sowohl input, output als auch memory-Array muss in Datei vorhanden sein – kann jedoch ggf. leer sein ([]) | Objekt-Array | notwendig |
E.1 | name | Name des Wertes WICHTIG: sind Blanks im Namen enthalten werden diese beim Einlesen der Datei durch Unterstriche ersetzt! Blanks deshalb möglichst vermeiden. |
String | notwendig |
E.2 | type | DIN61131 Datentyp; z.B. BOOL, BYTE, WORD; in Großbuchstaben | String | notwendig |
E.3 | range | Gültigkeitsbereich des Werteeingabe; hieraus werden, je nach Typ, Plausibilitätsprüfungen oder vorgegebene Dropdown-Listen erzeugt. Jeder ‚range‘ Eintrag besteht aus zwei Unter-Einträgen nach diesem Muster:
“range”:{ Verfügbare type/values Kombinationen, siehe E.3.1 bis E.3.3 |
Objekt | notwendig |
E.3.1 | Rangetyp 01: loop |
Erzeugt ein Dropdown-Feld aus den im ‚values‘ Array definierten Schleifenwerten, z.B. “values”: [0,10,1.5]
Erzeugt ein Dropdown-Feld mit Werten von 0 bis 10 in Schrittweite 1.5 (also: 0, 1.5, 3, 4.5, 6 … etc.) |
– | – |
E.3.2 | Rangetyp 02: tooltip_loop |
Erzeugt ein normales Texteingabe-Feld, das bei Berührung mit der Maus den gültigen Wertebereich in einem Tooltip anzeigt; der Wertebereich wird nach Eingabe überprüft und erzeugt bei Falscheingabe eine Fehlermeldung | – | – |
E.3.3 | Rangetyp 03:
list |
Erzeugt ein Drop-Feld aus den im ‚values‘ Array definierten Werte-Konstanten:
“values”: [ Die Einträge vor dem „|“ Symbol werden als lesbarer Text im Dropdown Feld angezeigt, die Einträge hinter dem „|“ Symbol werden als eigentlicher Arbeitswert exportiert |
– | – |
F | default | Vorgegebener Standardwert des Attributs; wichtig: bitte darauf achten, dass er innerhalb des bei ‚range / values‘ definierten Wertebereichs liegt! Bei ‚list‘ Rangetyp muss hier der Wert HINTER dem ‚|‘ Trennzeichen angegenben werden! | String | notwendig |
G | unit | Textstring, der die Einheit des Attributwerts beschreibt; erscheint in ‚Unit‘ Spalte der Editiertabelle; wird hier nichts angegeben wird als Einheit der Datentyp angezeigt. | String | optional |
H | tags | Beliebige beschreibende Text-Tags des Attributs; es müssen jedoch mindestens der Attributbereich (‚input / output / memory‘) und der ‚type‘ des Attributs (bool, byte, word etc.) mit Komma getrennt angegeben werden!
Hinweis: Bereich und Typ des Attributs werden in den Tags redundant zur einfacheren und performanteren Verarbeitung der RAP Datei abgelegt. SIE DÜRFEN NICHT IM WIDERSPRUCH ZUR DEN TECHNISCHEN Bereich/Typ ANGABEN SEIN! |
String | notwendig |
I | edit | Edit-Modus des Attributs; bestimmt welcher Teil vom Anwender erfasst bzw. geändert werden kann; gültig sind hier die Werte von 0-4
weder Name noch Wert des Attributs editierbar Werte-Zeile wird in der Edit-Tabelle nicht dargestellt (für konstante, nicht änderbare Werte, die dem Anwender nicht angezeigt werden sollen) |
String | notwendig |
J | order | Sortierfolge, d.h. relative Position in der Editiertabellen-Anzeige; hier können beleibige numerische Werte mit Lücken eingegeben werden, die dann zu einer aufsteigenden Sortierung führen, z.B. 10, 20, 25, 99 etc. HINWEIS: bitte Werte nicht doppelt verwenden, da die Sortierung sonst zu nicht vorhersagbaren Ergebnissen führt | Num. | notwendig |
K | offset | Speicher-Offset des Attributs; erstes Attribut des Geräts beginnt bei ‚0‘; um eine korrekte fortlaufende Belegung der Offsets zu gewähleisten bitte je nach Wertetyp (‚type‘-eintrag, z.B. BYTE) den entsprechende Offset-Abstand zum nächsten Attribut eingeben, Beispiel:
“name”: “Input01”, Input01 belegt als WORD-Wert die Bytes 0 und 1; der Offset von Input02 beginnt deshalb bei Byte 2 … etc. |
Num. | notwendig |
L | multi | Integer Wert von 1 bis n; erzeugt aus dem Attribut die gewünschte Zahl an multiplen Attributen (primär zur Einsparung redundanter Erfassungen bei vielen gleichartigen oder zusammengehörigen Werten); an den Namen des Attributs wird eine laufende Nummer angehängt, Beispiel:
“name”: “Input01”, … erzeugt Attribute Input01_1 bis Input01_3 WICHTIG: Ist kein multi Wert enthalten wird als Standard der Wert 1 angenommen ist bei BOOL Werten kein ‚multi‘ Wert definiert wir beim Einlesen von RAP-Dateien intern der multi-Wert automatisch fix auf ‚8‘ gesetzt, um sie auf Byte-Grenzen zu setzen. Ein in der Datei vorhandener ‚multi‘ Wert überschreibt diesen Automatismus – hier ist darauf zu achten, grundsätzlich nur Vielfache von ‚8‘ zu definieren! |
Num. | optional |
M | active | true oder false; definiert ob ein Attributwert beim Einlesen der RAP-Datei überhaupt berücksichtigt wird, oder nicht. Hierdurch können Attributwerte zum Beispiel für Testzwecke komplett deaktiviert werden. | Bool | optional |
N | export | true oder false; bestimmt, ob der Attributwert in der ‚Export‘ Spalte der Editiertabelle standardmässig zum Exportieren markiert ist, oder nicht. | Bool | optional |
O | colorEdit | Hex-Farbwert zwischen #000000 und #ffffff; legt eine individuelle Hintergrundfarbe für das editierbare Eingabefeld fest; ist dieser Wert nicht vorhanden wird der Standardwert aus der config.json Datei verwendet („colors“:{colorEdit … | Hex-Farbwert | optional |
P | colorReadOnly | Hex-Farbwert zwischen #000000 und #ffffff; legt eine individuelle Hintergrundfarbe für ein NICHT editierbares (read only) Eingabefeld fest; ist dieser Wert nicht vorhanden wird der Standardwert aus der config.json Datei verwendet („colors“:{colorReadOnly … | Hex-Farbwert | optional |
Q | colorTextEdit | Hex-Farbwert zwischen #000000 und #ffffff; legt eine individuelle Textfarbe für das editierbare Eingabefeld fest; ist dieser Wert nicht vorhanden wird der Standardwert aus der config.json Datei verwendet („colors“:{colorTextEdit … | Hex-Farbwert | optional |
R | colorTextReadOnly | Hex-Farbwert zwischen #000000 und #ffffff; legt eine individuelle Textfarbe für ein NICHT editierbares (read only) Eingabefeld fest; ist dieser Wert nicht vorhanden wird der Standardwert aus der config.json Datei verwendet („colors“:{colorTextReadOnly … | Hex-Farbwert | optional |
S | Varianten-spezifisch | Um eine Varianten-Hierarchie (siehe 4.) zu erfassen sind folgende zusätzlichen Einträge UNTERHALB eines Input / Output Eintrags notwendig:
“variants”: [ Die Varianten „id“ wird in zukünftigen Versionen von ‚PiCtory‘ zur Varianten-Auswahl angezeigt. Hier sollte ein sprechender Text eingetragen werden, der EINDEUTIG sein muss. „isDefault“ gibt die nach dem Einlesen der RAP-Datei in ‚PiCtory‘ voreingestellte Variante an. Bitte hier auf ggf. definierte ‚rules‘ achten und diese beim Setzen von ‚isDefault‘ berücksichtigen. ‚PiCtory‘ wendet die ‚rules‘ aktuell nur bei manueller Änderung der Variante durch den Anwender an und kann Widersprüche bei ‚isDefault‘ Einträge nicht selbst auflösen! Innerhalb des „data“ Arrays erfolgt dann wieder die ‚normale‘ Erfassung der einzelnen Input / Output Attribute, wie sie auch ohne Varianten durchgeführt würde. BITTE BEACHTEN: durch die Verwendung von Varianten ändert sich der Typ eines Input / Output-Eintrags von Array zu Objekt (eckige klammer zu geschweifter Klammer), d.h. von “input”: [ … zu “input”: { … |
Array | optional |
T | lang | Um eine Internationalisierung der Werte-Anzeige zu ermöglichen werden die Namen (Labels) der Arbeitswerte ggf. als Zeiger auf die entsprechenden nationalen Bezeichnungen verwendet. Beginnt ein Label-Eintrag mit dem Präfix: ‚lang_‘ wird er als Zeiger interpretiert. Ohne dieses Präfix wird der Wert wie gegeben in die Anzeige übernommen.
Beispiel: Internationalisierungs-Bereich “lang”:{ Rendering im Werteeditor bei Deutscher Spracheinstellung: Eingang: 8 |
Objekt | optional |
rules
|
Enthält die RAP Datei Varianten sowohl für Input- als auch für Output-Einträge kann durch Angabe von ‚rules‘ eine logische Verknüpfung zwischen Input und Output Varianten hergestellt werden. Diese bewirkt, dass ‚PiCtory‘ z.B. automatisch die verknüpften Varianten ‚synchronisiert‘ (nachzieht), sobald eine Variante ausgewählt wird. Beispiel:
“rules”: { In diesem Beispiel sind die 0.te Input und die 0.te Output-Variante, sowie die 1.te Input und die 1.te Output-Variante verknüft. Ändert der Anwender also den Input auf Variante 1 stellt ‚PiCtory‘ automatisch auch den Output auf Variante 1 um. Wird Output anschliessend auf 0 zurück gestellt, springt auch Input auf 0 zurück. |
Objekt | optional | |
include | Zur Integration von Datendefinitionen, die von externen Konfigurationstools erzeugt wurden, kann der Inhalt eines input, output und memory Blocks auch zur Laufzeit (Zeitpunkt an dem ‚PiCtory‘ eine RAP-Datei einliest) aus einer externen Datei eingelesen werden. Ein entsprechender Block muss dann z.B. so kodiert werden:
“input”: Folgendes ist hier zu beachten: Der Inhalt der Include-Datei muss im JSON-Format vorliegen; er ERSETZT den „input“ Objekt-Block {} komplett, d.h. er wird NICHT nur IN den Objekt-Block an die Stelle des „include“-Eintrags eingefügt. Dies bedeutet, dass die include-Datei für einen normalen (nicht-Varianten) Inhalt die eckigen Klammern des Arrays enthalten muss, Beispiel: [ Und im Fall einer Varianten-Definition entsprechend so aussehen muss: { |