Page 1 of 1

Updaterequest: Virtual01_20160818_1_0.rap

Posted: 31 Jul 2018, 13:13
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

Re: Updaterequest: Virtual01_20160818_1_0.rap

Posted: 31 Jul 2018, 19:21
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...

Re: Updaterequest: Virtual01_20160818_1_0.rap

Posted: 02 Aug 2019, 09:15
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

Re: Updaterequest: Virtual01_20160818_1_0.rap

Posted: 07 Aug 2019, 09:11
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

Re: Updaterequest: Virtual01_20160818_1_0.rap

Posted: 07 Aug 2019, 11:07
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

Re: Updaterequest: Virtual01_20160818_1_0.rap

Posted: 07 Aug 2019, 11:42
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

Re: Updaterequest: Virtual01_20160818_1_0.rap

Posted: 09 Aug 2019, 15:21
by RevPiModIO
Hi Frank!

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

Gruß, Sven