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; damit kann z. B. ermittelt werden, 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 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 – wird automatisch 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 der Werteeingabe; hieraus werden je nach Typ Plausibilitätsprüfungen oder vorgegebene Dropdown-Listen erzeugt. Jeder ‚range‘-Eintrag besteht aus zwei Untereinträ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 Texteingabefeld, 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 Dropdown-Feld aus den im ‚values‘ Array definierten Wertekonstanten:
“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 Rangetyp ‚list‘ muss hier der Wert HINTER dem ‚|‘-Trennzeichen angegeben werden! |
String | notwendig |
G | unit | Textstring, der die Einheit des Attributwerts beschreibt; erscheint in der Spalte ‚Unit‘ 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 STEHEN! |
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. Wertezeile 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 beliebige 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, wird 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 Variantenhierarchie (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 Variantenauswahl 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ägen 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 Werteanzeige 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 der Output anschliessend auf 0 zurück gestellt, springt auch der Input auf 0 zurück. |
Objekt | optional | |
include | Zur Integration von Datendefinitionen, die von externen Konfigurations-Tools 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: [ Im Fall einer Varianten-Definition muss sie entsprechend so aussehen: { |