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"
}
}
}
Gruß, Sven