Updaterequest: Virtual01_20160818_1_0.rap

Verbesserungsvorschläge zum Revolution Pi? Immer her damit!
Post Reply
User avatar
RevPiModIO
KUNBUS
Posts: 322
Joined: 20 Jan 2017, 08:44
Answers: 0
Contact:

Updaterequest: Virtual01_20160818_1_0.rap

Post by RevPiModIO »

Hallo Kunbus!

Ich möchte hier ein Update der RAP-Datei einreichen für das Virtuelle Device. Es implementiert eine neue Input/Output Vairante.

Neue Variante "003" | 64 (sowohl Input als auch Output):
48 BOOLs
10 BYTEs
04 WORDs
02 DWORDs

Ich denke, dass diese Anpassung den Umgang mit den virtuellen Devices stark vereinfacht, da man in piCtory bereits verschiedene Variablentypen für die IOs hat und diese auch benennen kann. Damit sind sie auch in logiCAD exportierbar und in RevPiModIO direkt verwendbar.

Warum diese Aufteilung? Hat sich bei uns so ergeben, da wir viel mit virtuellen Devices arbeiten und mit Visualisierungen und RevPiModIO über virtuelle Devices mit der eigentlichen Steuerung über das Netzwerk kommunizieren. Wir haben mit dieser Aufteilung je 48 Statusbits, 10 Zahlenwerte von 0-255, 4 Zahlenwerte von 0-65535, 2 Zahlenwerte von 0-4294967295.

Codeänderung: Bei Output Variante "001" wurde order von 3 auf 10 geändert und bei Outputvariante "002" von 4 auf 10. Sonst wurden die kompletten Varianten "003" hinzugefügt. Die Änderung der "order" war wichtig, da piCtory sonst die IOs durcheinander würfelt, vermutlich wegen der Länge des jeweils Letzen unserer neuen Variante.

Code: Select all

{
        "id": "Virtual Device",
        "version": "1.0",
        "comment": [
                "",
                "",
                ""
        ],
        "screencomment": "Virtual Device to reserve space in process image for user applications", 
        "size": "1",
        "devicetype": "VIRTUAL",
        "producttype": 32768,
        "input": {
        "variants": [
            {
                "id": "001",
                                "isDefault": true,
                "data": [
                                        {
                                                "name": "Input",
                                                "type": "BYTE",
                                                "offset": 0,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,255,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "input, byte",
                                                "edit": "3",
                                                "order": 1,
                                                "multi": 32,
                                                "description": "Input Byte",
                                                "export": false
                                        }
                                ]
                        },
                        {
                "id": "002",
                                "isDefault": false,
                "data": [
                                        {
                                                "name": "Input",
                                                "type": "WORD",
                                                "offset": 0,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,65535,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "input, word",
                                                "edit": "3",
                                                "order": 2,
                                                "multi": 16,
                                                "description": "Input Word",
                                                "export": false
                                        }
                                ]
                        },
                        {
                "id": "003",
                                "isDefault": false,
                "data": [
                                        {
                                                "name": "InBit",
                                                "type": "BOOL",
                                                "offset": 0,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,1,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "input, bool",
                                                "edit": "3",
                                                "order": 1,
                                                "multi": 48,
                                                "description": "Input Bit",
                                                "export": false
                                        },
                                        {
                                                "name": "InByte",
                                                "type": "BYTE",
                                                "offset": 6,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,255,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "input, byte",
                                                "edit": "3",
                                                "order": 2,
                                                "multi": 10,
                                                "description": "Input Byte",
                                                "export": false
                                        },
                                        {
                                                "name": "InWord",
                                                "type": "WORD",
                                                "offset": 16,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,65535,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "input, word",
                                                "edit": "3",
                                                "order": 3,
                                                "multi": 4,
                                                "description": "Input Word",
                                                "export": false
                                        },
                                        {
                                                "name": "InDword",
                                                "type": "DWORD",
                                                "offset": 24,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,4294967295,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "input, dword",
                                                "edit": "3",
                                                "order": 5,
                                                "multi": 2,
                                                "description": "Input DWord",
                                                "export": false
                                        }
                                ]
                        }
                ]
        },
        "output": {
        "variants": [
            {
                "id": "001",
                                "isDefault": true,
                "data": [
                                        {
                                                "name": "Output",
                                                "type": "BYTE",
                                                "offset": 32,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,255,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "output, byte",
                                                "edit": "3",
                                                "order": 10,
                                                "multi": 32,
                                                "description": "Output Byte",
                                                "export": false
                                        }
                                ]
                        },
                        {
                "id": "002",
                                "isDefault": false,
                "data": [
                                        {
                                                "name": "Output",
                                                "type": "WORD",
                                                "offset": 32,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,65535,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "output, word",
                                                "edit": "3",
                                                "order": 10,
                                                "multi": 16,
                                                "description": "Output Word",
                                                "export": false
                                        }
                                ]
                        },
                        {
                "id": "003",
                                "isDefault": false,
                "data": [
                                        {
                                                "name": "OutBit",
                                                "type": "BOOL",
                                                "offset": 32,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,1,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "output, bool",
                                                "edit": "3",
                                                "order": 10,
                                                "multi": 48,
                                                "description": "Output Bit",
                                                "export": false
                                        },
                                        {
                                                "name": "OutByte",
                                                "type": "BYTE",
                                                "offset": 38,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,255,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "output, byte",
                                                "edit": "3",
                                                "order": 11,
                                                "multi": 10,
                                                "description": "Output Byte",
                                                "export": false
                                        },
                                        {
                                                "name": "OutWord",
                                                "type": "WORD",
                                                "offset": 48,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,65535,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "output, word",
                                                "edit": "3",
                                                "order": 12,
                                                "multi": 4,
                                                "description": "Output Word",
                                                "export": false
                                        },
                                        {
                                                "name": "OutDWord",
                                                "type": "DWORD",
                                                "offset": 56,
                                                "range": 
                                                        {
                                                        "type": "tooltip_loop",
                                                        "values": [0,4294967295,1]
                                                },
                                                "default": "0",
                                                "unit": "",
                                                "tags": "output, dword",
                                                "edit": "3",
                                                "order": 14,
                                                "multi": 2,
                                                "description": "Output DWord",
                                                "export": false
                                        }
                                ]
                        }
                ]
        },
        "memory": [],
        "lang": {
                "de": {
                        "INPUT": "Eingang",
                        "OUTPUT": "Ausgang"
                },
                "en": {
                        "INPUT": "Input",
                        "OUTPUT": "Output"
                }
        }
}
Was haltet ihr davon? Würden uns freuen, wenn das Update in einer der nächsten piCtory Updates enthalten wäre.

Gruß, Sven
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41
Answers: 1

Re: Updaterequest: Virtual01_20160818_1_0.rap

Post by volker »

Danke Sven. Das macht sicher Sinn, mal mit aufzunehmen. Dauerhaft ist aber die einzig gute Lösung ein RAP-Editor, bei dem die Typen vom User verändert werden können. Wir sind dran und mal sehen, wann das Teil verfügbar sein wird...
Unser RevPi Motto: Don't just claim it - make it!
User avatar
RevPiModIO
KUNBUS
Posts: 322
Joined: 20 Jan 2017, 08:44
Answers: 0
Contact:

Re: Updaterequest: Virtual01_20160818_1_0.rap

Post by RevPiModIO »

Hi Kunbus!

Könnt ihr die Erweiterung von dem virtuellen Device nicht in der nächsten piCtory Version mit aufnehmen? Würde viel Arbeit sparen :D

Gruß, Sven
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
Frank
Posts: 65
Joined: 09 Jan 2017, 10:46
Answers: 0

Re: Updaterequest: Virtual01_20160818_1_0.rap

Post by Frank »

Hallo Sven!

Wir prüfen grade in welcher Form wir die von Euch vorgeschlagene - natürlich sinnvolle - Erweiterung des Virtual Device in die neue Release aufnehmen können; entweder als neues Device, oder als Ersatz für das bisherige 32 Byte Device. Das ist mehr eine Frage der 'Philosophie' - ich werde das heute mit den Kollegen besprechen.

Gruß
Frank
User avatar
RevPiModIO
KUNBUS
Posts: 322
Joined: 20 Jan 2017, 08:44
Answers: 0
Contact:

Re: Updaterequest: Virtual01_20160818_1_0.rap

Post by RevPiModIO »

Hi Frank!

Wir haben ja nur eine neue IO Variante integriert. Philosophisch ist es ganz klar als Erweiterung des bestehenden gedacht. Statt nur Bytes oder nur Wörter eben auch eine gemischte 2 x 32 Byte lange Variante auswählen zu können.

Gruß, Sven
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
Frank
Posts: 65
Joined: 09 Jan 2017, 10:46
Answers: 0

Re: Updaterequest: Virtual01_20160818_1_0.rap

Post by Frank »

Hallo Sven,

Eure Erweiterung wird in der nächsten Release jetzt als neues Device im Katalog Baum auftauchen: Virtual Device 32 Byte (Ext.)
Zur Erläuterung:
Wir wollen die Originalversion der RAP-Datei - trotz Abwärtskompatibilität Eurer Ergänzung - jetzt nicht einfach 'überbügeln', um keine zwei namentlich identischen RAP-Dateien im Feld zu haben, die verschiedene Inhalte haben. Das wäre jetzt für Eure Varianten-Ergänzung zwar nicht nötig gewesen - aber hier geht es mehr um das Prinzip ('Philosophie'), wie wir zukünftig mit Änderungen und Erweiterungen von RAP-Dateien umgehen wollen. In der Namenskonvention der RAP-Dateien ist ja eine Versionsführung schon enthalten - deshalb wollen wir die auch konsequent nutzen. Irgendwann in der Zukunft wird dann die 'alte' Version aus dem Katalog-Baum verschwinden - solange die alte RAP-Datei selber noch im RAP-Verzeichnis verbleibt ist die Kompatibilität zu vorhandenen .RSC-Projektdateien nach wie vor gesichert. Ähnlich wurde in der Vergangenheit ja auch schon mit den RevPiCore und ModbusRTUMaster RAP-Dateien verfahren, bei denen ebenfalls schon Änderungen vorgenommen wurden.
Ich hoffe das ist für euch ok so ...

Gruß
Frank
User avatar
RevPiModIO
KUNBUS
Posts: 322
Joined: 20 Jan 2017, 08:44
Answers: 0
Contact:

Re: Updaterequest: Virtual01_20160818_1_0.rap

Post by RevPiModIO »

Hi Frank!

Logo ist das okay! Vielen Dank für die Erweiterung!

Gruß, Sven
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
Post Reply