Wetterstation an VIPA 312SC anschließen

Zuviel Werbung?
-> Hier kostenlos registrieren
bor vollmi, das hätte ich nicht gedacht...

werde mich dann mal an paar freie Tage mit XML beschäftigen. Reicht mir dafür meine passive IP Schnittstelle der Vipa oder wird eine aktive zum erhalten der XML-Protokolle aus dem Internet verlangt? (Vipa 312SC)

Wohl nicht... Mit der Schnittstelle kannst du nur eine PG Verbindung benutzen aber von der SPS nichts aktiv aufbauen...
 
Hab dir mal ein Beispiel Prg gemacht, mit dem du die Wetterdaten von Google auch auf dein 312SC CPU über Ethernet bekommen könntest. Ist ein CSharp Programm das du starten musst, die Daten werten dann in deine SPS geschrieben.

Die Tags sind im Moment hardcodiert, das solltest du aber ändern können (Quelltext liegt bei!). Die Wetterdaten lese Ich mit einer Klasse von http://dotnetbase.de/topic/91-wetterdaten-uber-die-google-api-beziehen/ aus.

Das Programm zuerst mal mit /config starten, dann kannst du die Verbindung konfigurieren...

im Endeffekt müsstest du die beiden Abschnitte zwischen Anfang anpassung und Ende Anpassung bearbeiten.

Konnte das Programm leider auch noch nicht testen (erst am Montag), sollte aber laufen!

Das Programm könnte man z.B. im Taskplaner alle 24h ausführen lassen.

Code:
using System;
using System.Collections.Generic;
using System.Diagnostics;

using System.Text;
using DotNetSiemensPLCToolBoxLibrary.Communication;
using DotNetSiemensPLCToolBoxLibrary.DataTypes;

namespace CommandWhenBitSet
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length>0)
            {
                if (args[0]=="/config" || args[0]=="-config" || args[0]=="--config")
                {
                    Configuration.ShowConfiguration("CommandWhenBitSetConn", true);
                }
            }
            else
            {
                try
                {
                    PLCConnection myConn = new PLCConnection("WeatherTool");
                    myConn.Connect();
                    
                    dotnetBase.weatherAgent myWeatherAgent=new dotnetBase.weatherAgent("74254-Germany");
                    
                    
                    List<PLCTag> tags=new List<PLCTag>();
                    PLCTag tag;
                    
                    //Anfang Anpassung
                    
                    tag = new PLCTag("DB99.DBD4");
                    tag.LibNoDaveDataType = TagDataType.Float;
                    tag.Value = myWeatherAgent.currentConditions.temperatureCelsius;
                    tags.Add(tag);
                    
                    
                    tag = new PLCTag("DB99.DBD8");
                    tag.LibNoDaveDataType = TagDataType.Float;
                    tag.Value = myWeatherAgent.currentConditions.temperatureFahrenheit;
                    tags.Add(tag);
                    
                    tag = new PLCTag("P#DB99.DBX12.0 Byte 30");  //Die Luftfeutigkeit ist ein String!
                    tag.LibNoDaveDataType = TagDataType.String;
                    tag.Value = myWeatherAgent.currentConditions.Humidity;
                    tags.Add(tag);
                    //Ende Anpassung...
                    
                    myConn.WriteValues(tags);
                    
                    
                }
                catch(Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
    }
}

Download hier entfernt, neue Version weiter unten!
 
Zuletzt bearbeitet:
oh wie geil :)
Erzähl mal morgen davon, ob es klappt.
Wenn ja, dann erklär mir mal bitte den Quellcode, womit ich den öffnen bzw. eingeben muss. Hab schon ein paar Dinge probiert, aber wen man sich damit gar nicht auskennt, ist es um so schwerer...
 
oh wie geil :)
Erzähl mal morgen davon, ob es klappt.
Wenn ja, dann erklär mir mal bitte den Quellcode, womit ich den öffnen bzw. eingeben muss. Hab schon ein paar Dinge probiert, aber wen man sich damit gar nicht auskennt, ist es um so schwerer...

Also du kannst dir z.B. SharpDevelop runterladen und es damit öffnen (damit hab Ichs auch compiliert!)
Ne Exe liegt doch bei (im bin/Debug Ordner!), du kannst es also auch testen, aber die DBs sind halt fix im Programm codiert!

DB99.DBD4 -> Temp in Celsius
DB99.DBD8 -> Temp in Fahrenheit
P#DB99.DBX12.0 Byte 30 -> String mit Feuchtigkeit
 
Zuviel Werbung?
-> Hier kostenlos registrieren
nicht unbedingt... z.B. SharpDevelop

Die frage ob Programmierkenntnisse notwendig sind, kam so rüber als könnte er mit Step7 nicht Programmieren. Und wenn das jemand nicht kann, stellt sich die frage ob er überhaupt Step7 hat oder ob er erst noch am eruieren ist ob S7 seine Bedürfnisse erfüllen könnte.

Ich für mich, finde es fragwürdig eine SPS mit einem PC so zu verbinden das die SPS nix mehr zu tun hat wenn der PC stirbt. Da könnte man die Steuerfunktion ja gleich auf dem PC machen und die SPS weglassen. Eine Paralellport Relaiskarte ist wesentlich billiger als ne SPS.

Allenfalls würde ich dazu eine EC31 oder ähnliches hernehmen, da ist das Grundgerät wenigstens So ausfallsicher das Windows normal nicht alleine stirbt.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Weather Tool

So hatte noch ein paar kleine Bugs drinn, nun gehts...

Die Tags kannst du nun im Config File bearbeiten!

Noch die AWL Quelle des DBs in den Ich schreibe...

Code:
DATA_BLOCK DB 97
TITLE =
VERSION : 0.1


  STRUCT 	
   CURRENT : STRUCT 	
    TEMPERATURE : REAL ;	
    TEXT : STRING  [20 ];	
    WIND : STRING  [20 ];	
    HUMIDITY : STRING  [20 ];	
   END_STRUCT ;	
   FORECASTS : ARRAY  [1 .. 3 ] OF STRUCT 	
    TEMPERATURE : REAL ;	
    TEXT : STRING  [20 ];	
    WIND : STRING  [20 ];	
    HUMIDITY : STRING  [20 ];	
   END_STRUCT ;	
  END_STRUCT ;	
BEGIN
END_DATA_BLOCK
 

Anhänge

  • WeatherTool.zip
    625,4 KB · Aufrufe: 19
Die Idee mit der Relaiskarte finde ich nicht schlecht. Eine SPS um eine handvoll Ausgänge anzusteuern ist vieleicht etwas übertrieben.

Um der SPS eine Daseinberechtigung zu geben, wäre vieleicht ein Temperaturfühler für die Heizung interessant, um den Garten im Winter nicht auf Dauerheizung zu stellen.
Ebenso wäre ein Feuchtigkeitsmesser bei der Bewässerung interessant. Nur weil Google Sonne vorhersagt, muss nicht unbedingt bewässert werden. Es kann noch vom letzten Bewässern nass genug sein.

Nur als Info:
Die Express Version des MS Developerstudios gibt es hier:
http://www.microsoft.com/germany/express/download/default.aspx

Microsoft bietet tatsächlich mal was Brauchbares gratis an.

Andere Entwicklungsumgebungen tun es natürlich auch.
 
Die Idee mit der Relaiskarte finde ich nicht schlecht. Eine SPS um eine handvoll Ausgänge anzusteuern ist vieleicht etwas übertrieben.

Um der SPS eine Daseinberechtigung zu geben, wäre vieleicht ein Temperaturfühler für die Heizung interessant, um den Garten im Winter nicht auf Dauerheizung zu stellen.
Ebenso wäre ein Feuchtigkeitsmesser bei der Bewässerung interessant. Nur weil Google Sonne vorhersagt, muss nicht unbedingt bewässert werden. Es kann noch vom letzten Bewässern nass genug sein.

Man könnte für Analogsignale auch den Gameport des PCs zweckentfremden. Es gab da schon einige Experimentplatinen.

http://www.hardwareecke.de/berichte/schnittstellen/gameport.php

Nützt einem natürlich nur was, wenn der PC überhaupt noch so etwas hat. Allerdings eine Solche Karte ist auch noch erheblich günstiger als eine AI Karte.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt auch fertige I/O-Karten für den PC als PCI- und USB-Lösung.
Z.B. http://www.portwell.com/products/IO.asp

Da für die Industrie gedacht, dürften sie aber nicht unbedingt billig sein. Vieleicht aber immernoch günstiger als eine SPS mit entsprechenden EA-Karten. Sofern man sowieso einen PC für die Wetterstation verwendet.
 
naja über die SPS sollte es schon laufen. Habe da ja schon einige Baugruppen. Der PC würde dann auch nicht ganz überflüssig werden. Neben der Weiterleitung der Wetterdaten vom Internet zur SPS, soll er auch noch gewisse Daten loggen und als Homeserver wirken. Dafür kommt warscheinlich eine Eee Box B202 in Frage. Verbrauch zwischen 13 und 20 Watt, meine ich irgendwo gelesen zu haben.

kann ich diesen Beitrag irgendwie löschen?
 
naja über die SPS sollte es schon laufen. Habe da ja schon einige Baugruppen. Der PC würde dann auch nicht ganz überflüssig werden. Neben der Weiterleitung der Wetterdaten vom Internet zur SPS, soll er auch noch gewisse Daten loggen und als Homeserver wirken. Dafür kommt warscheinlich eine Eee Box B202 (Intel Atom) in Frage. Verbrauch zwischen 13 und 20 Watt, meine ich irgendwo gelesen zu haben.
 
Zurück
Oben