TIA Problem: Analogwertverarbeitung mittels TIA

cabir

Level-1
Beiträge
14
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich hoffe ihr könnt mir helfen. Ich bin ziemlich neu, was SPS angeht. Mein Wissensstand ist vergleichbar mit einem Azubi. Daher bitte um Verständnis, wenn ich blöde Fragen stelle.
Ich möchte mit einem Sensor (4-20mA) von einem Tank den Füllstand erfassen. Und diesen Wert möchte ich in Prozent visualisieren.
Ich habe zur Verfügung CPU 314. Nachdem ich viel gesucht habe, wie ich das ganze realisieren soll, musste ich feststellen, das ich den Baustein Norm_X gar nicht zur Verfügung habe. Kann das an CPU liegen?
Wenn ja;

- Wie gehe ich weiter?

- was ist der Unterschied zwischen Normieren und Skalieren?
- Was muss ich als erstes machen? Normieren und Skalieren oder umgekehrt?

vielen Dank
 
Servus,

Norm_X und Scale_X sind nur auf den S7 1200 und 1500 verfügbar.

S7 300 haben dafür einen anderen Baustein den FC105 Scale zum Analogwert einlesen und umrechnen in Prozessgröße und den FC106 Unscale um eine Prozessgröße an einen AQ zu übergeben.

Du findest den FC105 und FC106 unter "Einfache Anweisungen--> Umwandler--> Scale und Unscale

Du musst den Scale Baustein benutzen.


PS: Hast du eine S7 314C-2PN/DP oder hast du eine 314 mit Analogkarte ?

MFG Piit


Gesendet von iPhone mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Pitt..

Ich habe als Hardware folgendes zur Verfügung
CPU 314 6ES7 314-1AG14-0AB0
AI 6ES7 331-1KF02-0AB0
AO 6ES7 332-5HF00-0AB0

Scale:

Was gebe ich denn am Hi_Lim und Lo_Lim ein? 0 bis 100% oder 0 bis 27648?
 
Zuletzt bearbeitet:
Okay, dan füge deinen Scale baustein in ein freies netzwerk ein und beschalte Ihn so:

IN : Dein PEW an dem dein Analogsensor angeschlossen ist

LO_LIM: 0 (für 0%)
HI_LIM: 100 (für 100%)

Out: Dein Prozesswert z.b. MD100 (Typ Real)

Und den Fehlerausgang (glaube Ret_Val) beschaltest du einfach mal mit einem MW.

LG Piit


Gesendet von iPhone mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo noch mal...
ich habe dazu noch eine frage..
Ich habe zu viele Merker (MW,MD´s usw..) verwendet, sodass es keine freie Merker mehr zur Verfügung stehen. Wie kann ich das Problem lösen?
Datenbank anlegen? Wenn ja, wie kann ich die verwendeten Merker ersetzten?
Muss ich an jede Stelle die einzelne Merker ersetzen oder kann man das an einer Stelle machen und wird dann überall mit geändert?
Wenn ich das über eine Datenbank mache, muss ich dabei auf irgendwas achten?

lg
 
Zuletzt bearbeitet:
also erstmal sind DBs keine Datenbank sondern Datenbausteine.
Und nein, Du musst nicht alle Merker ersetzen. Du laesst das bestehende Programm so und legst einfach zusaetzlich benötigte Variablen in nen DB.
fertig.
 
Falls du doch etwas ersetzt, dann am besten die Sachen wo du Wörter bzw Doppelwörter verwendest. Geht schneller als einzelne Merker. ;)
Das kannst du dann über "suchen und ersetzen" machen. Dann kannst du die Variablen gleich überall im Programm tauschen wenn sie mehrfach verwendet werden.

Gegenfrage: Du hast tatsächlich 256 Bytes an Merkern verbraucht? :eek:
Was hast du denn da programmiert?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst alles noch schön in einen FC verpacken. Du legst dir einen FC z.b. Analogwerte an und rufst in diesem deine FC105 und FC106 auf. Im deklarationsteil gibst du z.b. An

In:
pew_temp_wärmekessel (Int)
pew__druck_druckkessel
(Int)
immer_eins (Bool)
immer_null (Bool)

Out:
temp_wärmekessel (Real)
druck_druckkessel (Real)
fehler_temp_wärmekessel ( Dword)
fehler_druck_druckkessel
(Dword)

Und das ganze übergibst du dann an einen DB.

Es gäbe noch die Möglichkeit mit einem FB und alle Analogwerte und Fehlermeldungen im static bereich abzulegen und Global auf diese Variablen zuzugreifen jedoch würde Ich das möglichst vermeiden da ein IDB nur für den FB zugreifbar sein sollte (soweit zur theorie).

Gruß




Gesendet von iPhone mit Tapatalk
 
Das war doch nicht so schlimm wie ich es mir gedacht habe.. Vielen Dank. Ich habe das so gemacht, sowie pitt mir empfohlen hat, weil ich 14 Durchflüsse überwachen will.
Ich habe das ganze simuliert und funktioniert, nun wollte ich das Programm in CPU laden. Aber ich bekomme die Meldung: Erreichbare Teilnehmer (0140:000511) Systemfehler.
Die Verbindung soll über MPI erfolgen..
 
Du kannst alles noch schön in einen FC verpacken. Du legst dir einen FC z.b. Analogwerte an und rufst in diesem deine FC105 und FC106 auf. Im deklarationsteil gibst du z.b. An

In:
pew_temp_wärmekessel (Int)
pew__druck_druckkessel
(Int)
immer_eins (Bool)
immer_null (Bool)

Out:
temp_wärmekessel (Real)
druck_druckkessel (Real)
fehler_temp_wärmekessel ( Dword)
fehler_druck_druckkessel
(Dword)

Und das ganze übergibst du dann an einen DB.

Es gäbe noch die Möglichkeit mit einem FB und alle Analogwerte und Fehlermeldungen im static bereich abzulegen und Global auf diese Variablen zuzugreifen jedoch würde Ich das möglichst vermeiden da ein IDB nur für den FB zugreifbar sein sollte (soweit zur theorie).

Gruß

PEWs an Bausteineingaenge anzulegen sollte man im TIA tunlichst unterlassen. Fuer die 314 geht das vielleicht hoffentlich noch. Aber bei der 1500er wird im Fehlerfall der komplette Baustein nicht mehr bearbeitet... nur der Vollstaendigkeit halber...
Gruss
 
Zurück
Oben