From d9350ebe32415cb843d2ba4f4c0e0f802cd28f52 Mon Sep 17 00:00:00 2001 From: Furrer Hans Date: Fri, 13 Dec 2024 16:56:10 +0100 Subject: [PATCH] Removed crazy ++++, deleted README_DE.md --- README.md | 2 +- README_DE.md | 181 --------------------------------------------------- 2 files changed, 1 insertion(+), 182 deletions(-) delete mode 100644 README_DE.md diff --git a/README.md b/README.md index 43cc663..45e22bd 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Rem: The folder [your-local-project-folder]/SampleCommunicator/src/main/resource - + diff --git a/README_DE.md b/README_DE.md deleted file mode 100644 index f56f5b0..0000000 --- a/README_DE.md +++ /dev/null @@ -1,181 +0,0 @@ -# SGr-JavaSamples - -SGr-JavaSamples stellt Beispielprojekte zur Verfügung, welche die Anwendung der SGr Communication Handler Library demonstrieren. Ziel ist es eine Testumgebung aufzusetzen, die es ermöglicht, SGr-Komponenten und unterschiedliche 'Products' (Wärmepumpe​, Ladestation​, Wechselrichter​, Batterie​, Stromzähler​ etc.) via SGr-Kommunikationsschnittelle zu verbinden. - -![SGr Architecture Overview](doc/img/SGr-Architecture-Overview.png "SGr Architecture Overview") - -## Komponenten - -### Komponente: Communicator -
Implementor:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Communicator Provider (3rd Party)

Communicator Provider (3rd Party)

Description:
- - - - - -
Implementer:Communicator Provider (3rd Party)
Beschreibung:Der 'Communicator' kommuniziert mit ein oder mehreren 'Products' über das SGr 'Generic Interface'. -
Verantwortlich: -

Der Communicator instanziiert für jedes Product einen Communication Handler dem eine Beschreibung der Produkteschnittstelle in XML übergeben wird.

-

Der Communicator lädt einen Device-Treiber für die Kommunikationsschnittstelle zum Product (z.B. Modbus RTU/TCP, REST...).

-

Der Communicator liest die Datenpunkte aus oder setzt sie (analysiert und/oder steuert)​.

-

SGrProjekt:SGrJavaSamples/SampleCommunicator
- -

- -### Komponente: Generic Interface - - - - - - -
Implementer:SGr Core Team
Beschreibung:Von SGr vorgegebene 'Product'-unabhängige Schnittstelle. -
Verantwortlich: -

Das Generic Interface wird vom Communicator benutzt, um mit den Product's im SGr Verbund zu kommunizieren.​

-

SGrProjekt:SmartgridReady/SGrSpecifications/SchemaDatabase/SGr/Generic
- -

- -### Komponente: Communication Handler - - - - - - - -
Implementer:SGr Core Team
Beschreibung:Ist die Kernkomponente der SGr Software und damit verantwortlich für die Verarbeitung und Umsetzung des SGr 'Generic Interface' auf das 'External Interface' des 'Product'.
- Wird vom 'Communicator' instanziiert und zur Kommunikation mit den angeschlossenen 'Product' benutzt. -
Verantwortlich: -

​Verantwortlichkeiten sind:
-- Lesen der XML-Device-Profile
-- Verarbeiten von Kommandos der generischen Schnittstelle
-- Umsetzen der Kommandos auf das External Interface des Product (gerätespezifische Schnittstelle)
-- Senden der Kommandos an das Product über den durch das Product vorgegebenen Transportservice -

-

Library:sgr-commhandler-2.0.0.jar
SGrProjekt:SmartgridReady/SGrJava/CommHandler
- -

- -### Komponente: XML (XML-Profile) - - - - - - -
Implementer:Anbieter des 'Product'
Beschreibung:​Das XML File beschreibt die 'Funktionsprofile', Datenpunkte und Attribute, welche über die SGr-Schnittstelle angesprochen werden können​. Weiter stellt das File allgemeine Informationen zum 'Product' zur Verfügung. -
Verantwortlich: -

​Bereitstellen von allgemeinen Daten zum Product.

-

Bereitstellen der zum mapping des SGr Generic Interface auf das External Interface notwendigen Daten.

SGrProjekt:SmartgridReady/SGrSpecifications/XMLInstances/ExtInterfaces
- -

- -### Komponente: Transport Layer (Transport Service) - - - - - - - - -
Implementer:- SGr Core Team
- 3rd Party Provider
Beschreibung:Der 'TransportService' bildet das Bindeglied zur physischen Kommunaktionsschnittstelle zum 'Product'. Das SGr Core Team stellt für Modbus die EasyModbus Library zur Verfügung. -
Verantwortlich: -

​Der SGr Transport Service unterstützt folgende Kommunikations-Technologien, um darauf aufbauend folgende Transport Servies anzubieten:
- - Modbus​, REST/JSON​, Sunspec​
- - Unterstützung geplant:​ OCPP 2.0​, IEC-61968-9​, IEC-608070-5-104

-

Library:easymodbus.jar
SGrProjekt:für Modbus:
SmartgridReady/SGrJavaDrivers/EasyModbus
- -

- -### Komponente: External Interface (EI) - - - -
Implementer:Hersteller des 'Product'
Beschreibung:Das 'External Interface' ist die vom 'Product' bereitgestellte Schnittstelle. -
Verantwortlich: -

Stellt das External Interface des Product zur Verfügung. Diese wird im XML-Profile zum Product beschrieben.

- -

- -### Komponente: Product - - - -
Implementer:Hersteller des 'Product'
Beschreibung:Das Product ist ein Device, das Eigenschaften, Datenpunkte und Ansteuerungsmöglichkeiten zur Verfügung​ stellt. -Z.B. Wärmepumpe​, Ladestation​, Wechselrichter​, Batterie​, Stromzähler​ -
Verantwortlich: -

... -

- -

- -## Anwendung der SGrJavaSamples - - -### Anforderungen / Prerequisites -- Gradle Version >= 8.7. Anm.: Wenn keine IDE mit Gradle-Integration verwendet wird, muss Gradle erst lokal installiert werden: https://gradle.org/install/ -- Java JDK Version >= Java 11 - -### Clone -- Klone dieses Repo auf das lokale Device: https://github.com/SmartgridReady/SGrJavaSamples.git - -### Build -- Go to the local SGrJavaSamples directory (...\SGrJavaSamples\SampleCommunicator) -- Run gradle 'build' target in your IDE or use the command line:
-```bash>gradle clean build``` - -

- -### Code-Beschreibung zum SampleCommunicator - -Step 1: -Use the DeviceBeschreibungLoader class to Load the device Beschreibung from an XML file. -

-```DeviceDescriptionLoader loader = new DeviceDescriptionLoader<>();```
-```SGrModbusDeviceBeschreibungType sgcpMeter = loader.load( XML_BASE_DIR,"SGr_04_0016_xxxx_ABBMeterV0.2.1.xml");``` -

- -Step2: -Load the suitable device driver to communicate with the device. The example below uses mocked driver for modbus RTU. -Change the driver to the real driver, suitable for your device. For example: -

-```GenDriverAPI4Modbus mbTCP = new GenDriverAPI4ModbusTCP("127.0.0.1", 502);```
-```GenDriverAPI4Modbus mbRTU = new GenDriverAPI4ModbusRTU("COM1");```
-```GenDriverAPI4Modbus mbRTUMock = new GenDriverAPI4ModbusRTUMock("COM1");``` -

- -Step 2: -Instantiate a modbus device. Provide the device description and the device driver instance to be used for the device.

-```SGrModbusDevice sgcpDevice = new SGrModbusDevice(sgcpMeter, mbRTUMock);``` -

- -Step 3: -Initialize the serial COM port or TCP connection used by the modbus transport service. -```sgcpDevice.connect();``` -

- -Step 4: Read the values from the device. -- "CurrentAC" is the name of the functional profile. -- "CurrentACL1", "CurrentACL2", "CurrentACL3" and "ActiveNetACN" are the names of the Datapoints that report the values corresponding to their names. - -Hint: You can only read values for functional profiles and datapoints that exist in the device description XML.
-```String val1 = sgcpDevice.getVal("VoltageAC", "VoltageL1");```
-```String val2 = sgcpDevice.getVal("VoltageAC", "VoltageL2");```
-```String val3 = sgcpDevice.getVal("VoltageAC", "VoltageL3");```

- -Step 5: Disconnect device. -```sgcpDevice.disconnect();``` -

- -Der komplette Beispielcode ist auf GitHub:
-https://github.com/SmartgridReady/SGrJavaSamples/blob/documentation/SampleCommunicator/src/main/java/ch/smartgridready/communicator/example/SampleCommunicator.java -

- -## Weiterführende Informationen / Kontakt - -Glossar: *ToDo Link* - -Webseite: https://smartgridready.ch/
-E-Mail: info@smartgridready.ch