TOP
SSV Software Systems Register  Register
Log in to check your private messages  Log in to check your private messages
Startseite FAQ Search Mitglieder Profile  Log in 
SSV Support-Forum
OPC UA Starterkit …

 
Post new topic   Reply to topic    SSV-Forum Forum Index >>> IGW/936(-L)
<<< Previous topic - Next topic >>>  
Display posts from previous:   
Author Message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 05.11.2017, 17:24    Post subject: OPC UA Starterkit … Reply with quote

Hallo Forum.

Zum Lieferumfang des OPC UA-Starterkits gehören die folgenden Komponenten. Beachten Sie vor dem Einsatz des Starterkits unbedingt die beigefügte Dokumentation.

1x vorkonfiguriertes IGW/936 mit voreingestellten IP-Adressen für LAN1 und LAN2

1x IO/5640

1x RS485-Kabelverbindung zwischen IGW/936 und IO/5640

1x IoT-Entwicklerbaukasten mit Arduino Uno (vorkonfiguriert als Modbus-basierter Smart Sensor)

2x Ethernet-LAN-Kabel

1x 24V-Netzteil für das IGW/936 und die IO/5640

1x 9V-Steckernetzteil für den Arduino Uno

1x USB-Stick mit Benutzerhandbüchern, Beschreibungen und Code-Beispielen

1x gedruckte Bedienungsanleitungen für die ersten Schritte der Inbetriebnahme

Zusätzlich wird ein PC benötigt mit einer LAN-Schnittstelle benötigt. Des Weiteren muss dieser PC mindestens die folgenden Voraussetzungen erfüllen:

1. Es muss ein HTML5-standardkonformer Webbrowser (z. B. Chrome oder Firefox) auf dem PC zur Verfügung stehen.

2. Die LAN-Verbindung zwischen PC und IGW/936 sollte möglichst durch keine aktive Firewall geschützt sein. Falls doch eine Firewall existiert, müssen neben dem TCP-Port 80 (HTTP) auch die TCP-Ports 1880 (Node-RED-UI) und 4840 (OPC UA) freigeschaltet werden.

3. Auf dem PC muss die lizenzkostenfrei Software UaExpert als OPC UA-Client erforderlich. Diesen OPC UA-Client können Sie aus dem Internet unter https://www.unified-automation.com/downloads/opc-ua-clients.html laden und installieren.

4. Machen Sie sich bitte mit dem Inhalt des Dokuments http://www.ssv-embedded.de/doks/manuals/fs_igw936_node-red_de.pdf und der Anleitung unter http://www.ssv-comm.de/forum/viewtopic.php?t=1332 vertraut, um Node-RED auf dem IGW/936 bedienen zu können. Alle hier beschriebenen Übungen erfordern den sicheren Umgang mit Node-RED.

5. Machen Sie sich mit dem Inhalt des Hardware Reference Manual zur IO/5640 unter http://www.ssv-embedded.de/doks/manuals/hr_io5640_en.pdf vertraut.

6. Für die hier beschriebenen Übungen mit dem OPC UA-Starterkit sind theoretische Grundkenntnisse zum Modbus- und OPC UA-Protokoll erforderlich.

VG KDW


Last edited by kdw on 11.11.2017, 19:18; edited 2 times in total
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 05.11.2017, 17:30    Post subject: Die erste Übung ... Reply with quote

Hallo Forum.

Der Arduino Uno des IoT-Entwicklerbaukastens ist im OPC UA-Starterkit als Modbus-basierter Smart Sensor vorkonfiguriert. Per Ethernet-LAN ist dieser Smart Sensor über die voreingestellt IP-Adresse 192.168.1.127 als Modbus-Slave ansprechbar.

Der auf dem Arduino Uno vorinstallierte Code sorgt dafür, dass ein 16-bit-Modbus-Register unter der Adresse 0 zur Verfügung steht, in das periodisch der aktuelle Spannungswert am Analogeingang 0 eingelesen wird.

Code:
void loop()
{
  Mb.Run();
  Mb.R[0] = analogRead(0);
  delay(10);
}


Wird an den Arduino-Analogeingang der Ausgang eines LM35-Temperatursensors angeschlossen, enthält das Modbus-Register das digitalisierte Äquivalent der gemessenen Temperatur.

1. Schritt: Stellen Sie die folgenden LAN-Kabelverbindungen her und weisen Sie Ihrem PC die statische IP-Adresse 192.168.0.1 zu.



2. Schritt: Erzeugen Sie auf dem IGW/936 einen Node-RED Flow mit jeweils einem Modbus-Master als Input Node, einem Function Node zum Umrechnen des 16-bit-Modbus-Registerwerts in eine Temperatur und einen Debug Node zur Ergebnisausgabe.



Das hier folgende Listing zeigt den JavaScript-Code zur Umrechnung eines 16-bit-ADC-Ausgangswerts in eine Temperatur und die Aufbereitung der entsprechenden Message innerhalb von Node-RED.

Code:
var t = parseFloat(msg.payload * 0.49);
t = t.toFixed(1);
msg.payload = t.toString();
return msg;


Bitte beachten: Bei der Umwandlung wird der 16-bit-ADC-Ausgangswert mit dem Koeffizienten 0.49 multipliziert. Dieser Koeffizient entspricht den Daten eines LM35-Temperatursensors im Zusammenhang mit der Auflösung des Arduino Uno-Analog-to-Digital-Wandlers bei einer Referenzspannung von 5 VDC.

Wenn Sie verhindern wollen, dass im Ausgabe-Fensterbereich der Node-RED-Benutzeroberfläche laufend der gleiche Temperaturwert angezeigt wird, können Sie in der Konfiguration des Modbus-Master-Nodes die Option „Block unless value changes“ einschalten.



Danach wird nur noch dann ein neuer Temperaturwert ausgegeben, wenn sich dieser von der vorherigen Ausgabe unterscheidet.

VG KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 12.11.2017, 13:18    Post subject: Die zweite Übung ... Reply with quote

Hallo Forum.

Nachdem hoffentlich die die erste Übung ohne nennenswerte Schwierigkeiten geklappt hat, geht es mit dem Modbus-Zugriff auf die IO/5640-Baugruppe weiter.

1. Schritt: Stellen Sie die folgenden LAN-Kabelverbindungen her und weisen Sie Ihrem PC die statische IP-Adresse 192.168.0.1 zu. Stellen Sie eine RS485-Kabelverbindung zwischen IGW/936 und IO/5640 her. Benutzen Sie dafür die mitgelieferten IGW/936- und IO/5640-Stecker mit der Vorverdrahtung, an die auch das 24V-Netzteil angeschlossen ist.



2. Schritt: Importieren Sie die JSON-Datei igw936-io5640-flow.json vom USB-Stick in die Zwischenablage Ihres PCs und von dort aus in das Node-RED des IGW/936. Dadurch entstehen unter Node-RED sechs weitere Flows.



IO/5640 Digital In: Flow für die fünf digitalen Eingänge DI1 – DI5 einer IO/5640.

IO/5640 Digital Out: Flow für die sechs digitalen Ausgänge DO1 – DO6 einer IO/5640.

IO/5640 Analog: Flow für die insgesamt acht analogen Eingänge (vier 0 – 10V-Spannungseingänge AI1U – AI4U, vier 4 – 20mA-Stromeingänge AI1I – AI4I) einer IO/5640.

IO/5640 Delta Time: Flow zur Zeitdifferenzmessung (Delta Time, z. B. Messung der Zeitspanne für die Wegstrecke eines linearen Antriebs) mit den digitalen Eingangssignalpaaren DI1/DI2 und DI3/DI4.

IO/5640 Info: Flow zum Auslesen der Softwareversions- und Geräteinformationen einer IO/5640.

IO/5640 LED: Flow zum Schalten der beiden programmierbaren Leuchtdioden (LEDs) einer IO/5640.

3. Schritt: Überprüfen Sie die Modbus-Adressierung der neu importierten Flows und die an der I//5640 eingestellte Modbus-RTU-Adresse.



Die Modbus-RTU-Device-Adresse einer IO/5640 wird über den Drehschalter (Rotary Switch) in der Gerätefrontplatte eingestellt. Das Festlegen der Modbus-Master-Parameter (z. B. Settings für die RS485-Verbindung, Device Adresse) für die Instanzen zu mbmaster.rtu@/dev/ttyR1:8E1,1 erfolgt in den jeweiligen Node-RED-Modbus-Master-Konfigurationen. Es reicht aus, wenn die Einstellungen zu mbmaster.rtu@/dev/ttyR1:8E1,1 in einem einzigen Master überprüft und ggf. angepasst werden. Nach einem Node-RED-Deploy werden diese Einstellungen in alle RTU-Master der sechs neu importierten Flows übernommen.

4. Schritt: Untersuchen Sie die verschiedenen Modbus-Adressierungs- bzw. Zugriffsmöglichkeiten, die in den neu importierten Flows zum Einsatz kommen. Beachten Sie bitte, dass die Adresse eines Modbus-Registers jeweils mit einer bestimmten Funktion korrespondiert. Unter der Adresse 0 kann der Modbus Input Node per Modbus-Funktion 01 – Coils den aktuellen Zustand des Ausgangs DO1 lesen. Wird auf die gleiche Modbus-Adresse per Modbus Output Node und der Modbus-Funktion 05 – Write Coils zugegriffen, lässt sich der DO1-Ausgang wahlweise in den Zustand 0 oder 1 schalten.



In den anderen IO/5640-Beispielen dieser Übung wird ebenfalls auf ein Modbus-Register mit der Adresse 0 zugegriffen. Unter dem Tab IO/5640 Digital In wird mit Hilfe der Funktion 02 – Discrete Inputs das Register des digitalen Eingangs DI1 ausgelesen. Unter der gleichen Adresse ist mit der Funktion 03 – Holding Register (siehe Tab IO/5640 Info) auch die Software-Versionsnummer der IO/5640-Firmware auslesbar.

VG KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 12.11.2017, 22:13    Post subject: Die dritte Übung ... Reply with quote

Hallo Forum.

Über die erste und zweite Übung haben wir per IGW/936 und Node-RED den Zugriff auf die Daten von zwei externen I/O-Baugruppen (Arduino Uno als Smart Sensor, IO/5640). Beide I/O-Baugruppen sind per Modbus in Node-RED eingebunden.

In der dritten Übung wird deutlich, wie einfach man für die I/O-Baugruppen auf dem IGW/936 einen OPC UA-Server implementieren kann. Dadurch kann ein beliebiger OPC UA-Client auf die Daten einer I/O-Baugruppe zugreifen.

1. Schritt: Stellen Sie (analog zur ersten Übung) die folgenden LAN-Kabelverbindungen her und weisen Sie Ihrem PC die statische IP-Adresse 192.168.0.1 zu.



2. Schritt: Erweitern Sie in der Node-RED-Benutzeroberfläche des IGW/936 den Node-RED Flow aus der ersten Übung (Modbus-Zugriff auf einen Smart Sensor) um einen OPC UA-Server Node. Verbinden Sie den Ausgang des ToTemperature Function Node mit dem Eingang des OPC UA-Servers.



3. Schritt: Konfigurieren Sie den OPC UA-Server so, dass diese Serverinstanz über die IP-Adresse 192.168.0.126 und den TCP-Port 4840 für einen OPC UA-Client erreichbar ist. Die Konfigurationseinstellungen für den OPC UA-Server bestehen aus zwei Dialogen (siehe die hier folgende Abbildung).



Bitte beachten: In ersten Teil des Dialogs (oberer Teil der Abbildung) wird für dieses Beispiel lediglich der Server-TCP-Port ausgewählt (4840). Beenden Sie diesen Dialog durch das Betätigen der Update-Schaltfläche. Im zweiten Teil des Dialogs (unterer Teil der Abbildung) muss ein Pfadname (Node path) für die Temperaturvariable spezifiziert werden. Über diesen Namen steht die Temperatur des Arduino Uno-basierten Smart Sensors im OPC UA-Adressraum des IGW/936 zur Verfügung. Als Node type ist im zweiten Teil des Dialogs Float auszuwählen, da der Temperaturwert am Ausgang des ToTemperature Function Node als Fließkommazahl zur Verfügung steht.

4. Schritt: Starten Sie den gesamten Flow über die Node-RED-Deploy-Schaltfläche. Danach kann über die Adresse opc.tcp://192.168.0.126:4840 per OPC UA-Client auf den OPC UA-Server zugegriffen werden, um SSV/temperature zu visualisieren.



Bitte beachten: Als OPC UA-Client für den PC wird in der Abbildung die Software UaExpert genutzt. Beachten Sie bitte weiterhin, dass sich bei jeder Temperaturänderung am Smart Sensor jeweils ein neuer Value und Source Timestamp im Ausgabebereich des OPC UA-Clients ergibt.

VG KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 30.01.2018, 18:19    Post subject: Modbus PCAP Capture … Reply with quote

Hallo Forum.

Wenn Sie auf dem IGW/936 die PCAP Capture App installieren, können Sie sich z. B. den Modbus-LAN-Verkehr zwischen IGW/936 und Arduino nachträglich mit Wireshark anschauen:



Siehe hierzu auch: http://www.ssv-comm.de/forum/viewtopic.php?t=1417

VG KDW
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    SSV-Forum Forum Index >>> IGW/936(-L) All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

SSV Software Systems GmbH

Dünenweg 5
30419 Hannover

Fon: +49(0)511  ·  40 000-0
Fax: +49(0)511  ·  40 000-40

sales@ssv-embedded.de


Impressum    ·    Datenschutz    ·    AGB

© 2023 SSV SOFTWARE SYSTEMS GmbH. Alle Rechte vorbehalten.

ISO 9001:2015