# Temperaturüberwachung mit Anzeige auf TP177A



## SebastianM

Hallo zusammen!
Habe ein kleines Problem bezgl der Programmierung. Bin Anfänger... 

Meine Aufgabe:
Temperaturen erfassen (PT100) auswerten. Ist-, Warn- und Abschalttemperatur soll dann grafisch auf einem TP177A dargestellt werden.

Beispiel:
Betriebstemperatur  33°C - Die Anlage läuft
Warntemperatur      40°C - Eine Hupe etc soll ertönen
Abschalttemperatur 50°C - Die Anlage wird gestoppt

Das soll dann zur Übersicht grafisch dargestellt werden

Habe zur Verfügung

1 CPU 312
1 SM 323
1 SM 331
1 TP 177A
4 PT 100

Bitte um Hilfe!

Viele Dank im Voraus!!

MfG
Sebastian


----------



## AUDSUPERUSER

Lies Dir doch zum Anfang mal folgenden Tread durch

http://www.sps-forum.de/showthread.php?t=19098&page=2&highlight=pt100

Gruss
Audsuperuser


----------



## s.leuschke

Fang doch am besten erst mal an, das eigentliche Programm zu erstellen damit das schon mal läuft.
Wenn Du das hast, dan das TP17... ranhängen.


----------



## jabba

s.leuschke schrieb:


> Fang doch am besten erst mal an, das eigentliche Programm zu erstellen damit das schon mal läuft.
> Wenn Du das hast, dan das TP17... ranhängen.


 
Fang mal an die richtigen Fragen zu stellen,
bei so einer Frage bzw Aufgabenstellung hapert es meistens
(Tschuldigung SebastianM kann muss aber nicht zutreffen )

1. wie wird der PT100 angeschlossen
2. Wie und wo wird der Wert eingelesen
3. Wie kann man den Wert in Real scalieren
4. Wie kann man die Grenzwerte überwachen
...
Dann kommt das TP
.....

Also SebastianM sag mal was Du kannst und dann können wir einsteigen.
Du must schon etwas dazu beitragen, nur einfach Hilfe schreien, bei den Informationen ???


----------



## SebastianM

Also um ehrlich zu sein, weiß ich noch nicht mal wie ich den PT100 genau anzuschließen habe. Finde bezgl der Baugruppe keine genaue Beschreibung. Was auf der Siemens Website beschrieben ist passt nicht so... Der PT 100 soll  als 2 Leiter angeschlossen werden. 

@ jabba
Deine Fragen passen schon sehr gut.

Ich glaube ich bin mit dem Projekt, was mir zugewiesen wurde bisl überfordert 
Es schien mir Anfangs als recht einfach zu realisieren.

Viele Grüße
Sebastian


----------



## s.leuschke

Hallo Sebastian,
warum denn gleich das Handtuch werfen.

Was kannst Du schon machen.
Den PT100 kannst Du mit ner Analogen Eingangsbaugruppe einlesen und weiterverarbeiten.

Du bekommst hier natürlich schon Hilfe.
ABer ist es nicht gut auch für Dich, wenn man am Ende sagen kann,
jetzt hab ich´s verstanden ?

Du wirst sehen, wenn Du das Prinzip der SPS verstanden hast, macht das Arbeiten damit Spass. Natürlich braucht es seine Zeit, um ein alter Hase zu werdn.


----------



## s.leuschke

Aufgabe :
Betriebstemperatur 33°C - Die Anlage läuft
Warntemperatur 40°C - Eine Hupe etc soll ertönen
Abschalttemperatur 50°C - Die Anlage wird gestoppt


Hardware

1 CPU 312
1 SM 323
1 SM 331
1 TP 177A
4 PT 100

So könnstest Du jetzt anfangen.

Lösungsansätze:

Einfach über Vergleicher Ausgänge setzen.
Am Ende kann man das Ganze unbegrenzt aubauen evtl. mit Regler usw.

Gruss Sven


----------



## jabba

SebastianM schrieb:


> Also um ehrlich zu sein, weiß ich noch nicht mal wie ich den PT100 genau anzuschließen habe. Finde bezgl der Baugruppe keine genaue Beschreibung. Was auf der Siemens Website beschrieben ist passt nicht so... Der PT 100 soll als 2 Leiter angeschlossen werden.
> 
> @ jabba
> Deine Fragen passen schon sehr gut.
> 
> Ich glaube ich bin mit dem Projekt, was mir zugewiesen wurde bisl überfordert
> Es schien mir Anfangs als recht einfach zu realisieren.
> 
> Viele Grüße
> Sebastian


 
Ich sehe das auch wie s.leuschke,
vieleicht ist alles im Moment sehr komplex für Dich.
Zerlegen wir das ersteinmal in
1. Hardware, wie wird der PT100 angeschlossen
2. Wie wird die Hardware konfiguriert
3. Wie wird der PT100 eingelesen
4. Programm erstellen, Grenzen abfragen
5. Display Verbindung erstellen
6. Display Variablen erstellen
7. Display Kurven anlegen, und Grafik erzeugen.

Gib mal genau an welche CPU und vor allem welche 331 das ist.


----------



## s.leuschke

Ja kann mir vorstellen, dass im Moment alles sehr komplex ist.
Ich hatte bis jetzt schon viel mit Logo zu tun, und seit kurzem mit S7.
Da gibt es halt doch viele Zusammenhänge. Obwohl ich sagen muss, Logo ist auch nicht schlecht, bzw. in vieler Hinsicht einfacher. Aber lässt sich halt im Maschinenbau nur schwer einsetzen.


----------



## SebastianM

Vielen Dank erst mal für die super Hilfe und die Aufmunterung :-D

Habe eine 

- CPU 312 | 312-1AE13-0AB0 (finde ich nicht mal im Simatic Manager (evtl. zu alte Version?))

- SM  331 | 331-1KF01-0AB0

- SM  323 | 323-1BL00-0AA0

zur Verfügung.

Vielen Dank :s12:


----------



## s.leuschke

Das ist doch schon mal etwas,
mit der 312 er muss ich morgen mal schauen.
Hab auf meinen priv. Notebook wegen Vista kein Simatik installiert.
Wenn ich zu Hause wäre, könnte ich an meinen stationären PC auch nachschauen.
Vielleicht kommt man hier auch mit einen Update weiter.


----------



## jabba

SebastianM schrieb:


> Vielen Dank erst mal für die super Hilfe und die Aufmunterung :-D
> 
> Habe eine
> 
> - CPU 312 | 312-1AE13-0AB0 (finde ich nicht mal im Simatic Manager (evtl. zu alte Version?))
> 
> - SM 331 | 331-1KF01-0AB0
> 
> - SM 323 | 323-1BL00-0AA0
> 
> zur Verfügung.
> 
> Vielen Dank :s12:


 
Gib mal Deine Softwarestände an
hast Du PLCSIm zur Verfügung ?

Liegt dir das Handbuch S7_300RHB Baugruppen vor ?
Da ist der Anschluss eines PT100 beschrieben.

Du must schon noch ein wenig das Tempo vorgeben, nicht das wir uns einen Wolf schreiben und du weisst das schon.

Im Anhang der Anschlussplan.
Das Heisst , wenn der PT 100 an Kanal 1 soll
Pin 3 mit Pin 5 brücken, und Pin 3(5) und Pin4 an den PT100


----------



## s.leuschke

Hab grad nachgeschaut.
Auf meinen PC gibt es diese als V2.0 bzw. V2.6


----------



## SebastianM

Klasse eure schnellen Antworten!! :s1: 

Werd morgen früh mal nachschauen! und weiteres berichten

Grüße vom
SebastianM


----------



## SebastianM

Softwarestand
Version V5.3 + SP1
Ausgabe 5.3.10

PLCSIM habe ich leider nicht, hört sich aber laut Beschreibung sehr interessant an...
Auch das Handbuch habe ich noch nicht gefunden...

Also verdrahtet habe ich jetzt alles. 
Nur die Konfiguration und das Einlesen der Werte sind schon mein nä Problem.


----------



## s.leuschke

Ich weis jetzt nicht wie weit Deine Programmierkenntnisse gehen.
Aber so kannst Du vorgehen.

Lade Temp.Fühler
Umwandeln in Real

dann entsprechend vergleichen 
Temp = ...   dann Anlage läuft
Temp => als ...   dann Hupe
Temp => als ...   dann Anlage Stopp

Wenn Du das jetzt entsprechend noch verknüpfen tust ( Anlage Start-Stopp mit entsprechender Temp. ) bist Du schon fast am Ziel.


----------



## s.leuschke

Aber zwecks Deiner Hardware wirst Du um ein Hardwareupdate nicht herumkommen.


----------



## jabba

SebastianM schrieb:


> Softwarestand
> Version V5.3 + SP1
> Ausgabe 5.3.10
> 
> PLCSIM habe ich leider nicht, hört sich aber laut Beschreibung sehr interessant an...
> Auch das Handbuch habe ich noch nicht gefunden...
> 
> Also verdrahtet habe ich jetzt alles.
> Nur die Konfiguration und das Einlesen der Werte sind schon mein nä Problem.


 

Ich bin mir nicht sicher ab welchen Softwarestand das geht:
Öffnen den Hardwaremanager
Extras->HW-Updates installieren
Ansonsten nimm erst einmal die CPU die vorhanden ist.

Gehen wir mal davon aus, die 323 ist auf Platz 4 und die 331 auf Platz 5.
Dann haben die Digitalen E/A's die Adressen 0-1 und die Analogwerte PEW272- PEW288

Der PT100 an Kanal 1 hätte dann PEW272.

Im Programm kann Du den Zustand nicht direkt über Steuern/Variablen anzeigen, da dieser Bereich ausserhalb der Aktualisierung im Prozessabbild steht. 

Nach der Konfiguration solltest Du versuchen dies in die CPU zu laden, um erst mal zu prüfen, ob Deine Software dies ohne Update zulässt.


----------



## SebastianM

Ich versteh das nicht so ganz. Überall sieht man andere Werte.
Bei mir sieht der Code grad so aus....

L PEW 272
ITD
DTR
L 2.720823e+000    ?????????? ist sicher falsch 
*R
T   MD  20


Vielleicht sollt ich das doch jemand anderes machen lassen.
Habs mir doch etwas zu einfach vorgestellt.
(Hab leider nur "schulische Kenntnisse" aus der Ausbildung.

Aber vielen Dank für eure Hilfe

Gruß Sebastian


----------



## vierlagig

SebastianM schrieb:


> Code:
> 
> 
> L PEW 272
> ITD
> DTR
> L 2.720823e+000    ?????????? ist sicher falsch ;)
> *R
> T   MD  20



ohne das ganze topic gelesen zu haben: ja, das ist sicher falsch!

wenn es sich um ein strom oder spannungssignal handelt nimm



		Code:
	

*
      L     #in 
      ITD    
      DTR    
      T     #in_real 
      L     #hi_lim 
      L     #lo_lim 
      -R     
      L     #in_real 
      *R     
      L     2.764800e+004       //Skalierungsfaktor
      /R     
      L     #lo_lim 
      +R     
      T     #out

handelt es sich beim PEW 272 um einen Pt100-Widerstandswert nimm



		Code:
	

*
      L     PEW 272
      ITD    
      DTR
      L     1.000000e+001
      /R
      T     MD 10


----------



## SebastianM

Danke 

Aber komm leider noch nicht sehr weit.
Es handelt sich um 8 PT100 die eingelesen und verarbeitet werden sollen.
Wollt dann später bei best. Temperaturen Ausgänge schalten um Warnungen bzw eine Maschinenabschaltung zu realisieren.
(Bei uns brennts aufgrund überhitzter Walzen ab und zu 

Mag bisl dumm klingen, aber es fängt schon damit an in welche Bausteine was geschrieben wird... Wie es verarbeitet wird usw.

Hab mich damit wohl bisl übernommen...


----------



## vierlagig

SebastianM schrieb:


> Hab mich damit wohl bisl übernommen...



na? wer wird denn da die flinte ins korn werfen? hab mir grad im überfliegenden modus einen überblick verschafft, finde wir sollten das TP erstmal außen vor lassen und uns um die wesentlichen dinge kümmern...

ALSO:

deine hardware ist mittlerweile richtig konfiguriert und die systemdaten sind auch schon alle auf der CPU?

sehr schön, dann gilt es nun funktionsgruppen zu bilden ... 

wir machen einen baustein der dir die analogwerte in realwerte wandelt um damit dann besser weiterarbeiten zu können. dieser baustein wird dann für alle Pt100 eingesetzt, eben nur mit unterschiedlicher beschaltung ... dafür reicht ein FC

dann machen wir einen baustein mit drei schaltpunkten, also einem wert-eingang und drei schaltpunkt eingängen und eben auch drei schaltpunkte, also dreimal bool out ... FC oder FB, müssen wir uns noch überlegen ...

das sollte erstmal für den anfang reichen ...


----------



## SebastianM

Also habe ich jetzt im FC 1 stehen

L     PEW 272
      ITD    
      DTR
      L     1.000000e+001
      /R
      T     MD 10


L     PEW 274
      ITD    
      DTR
      L     1.000000e+001
      /R
      T     MD 20                      ///und so weiter für die einzelnen Eingänge?


Und zb im FC 2

L MD 10
L Vergleichswert????
>=D
=   M 10.1 (z.b.)

????????????????


----------



## vierlagig

wir sind auf dem richtigen weg ...

1. code im Forum bitte mit [code ] hier der code [/code ] posten (jeweils ohne space!)

2. wir wollen einen FC machen, der für alle Pt100 funktioniert, also machen wir einen neuen, sagen wir einen FC 10

aufmachen und dann legen wir uns erstmal eine IN-OUT-Struktur an ... da gibt es oben einen Fensterteil da steht Schnittstelle, IN, OUT, TEMP bla gedöns ... wenn du das nicht siehst, mal mit der Maus bis unter die Buttonleiste gehen, bis ein Doppelpfeil erscheint, anklicken, runterziehen...

wir wollen einen Analogwert skalieren, also brauchen wir einen IN. Name: Pt100, Datentyp ist WORD, Kommentar dazu: Widerstandsthermometer

(normalerweise würde ich jetzt hier noch einen Force und einen Offset-Wert und die Skalierungsgrenzen mit angeben, macht aber bei dieser einfachen Funktion keinen Sinn, wir wollen einfach nur mal sehen, wie ein Baustein erstellt wird, den wir immer wieder aufrufen können, ohne immer wieder die selbe struktur zu schreiben)

der skalierte Wert muß ja auch irgendwo hingeschrieben werden, als brauchen wir ein OUT, Name: Temperatur. Datentyp? Richtig! REAL ... Kommentar nicht vergessen, bei mir steht "skalierter Temperaturwert"

was du jetzt noch machen mußt ist voll super pipi einfach, das könnte mein Neffe, der ist grad 6 Monate geworden 

im Netzwerk 1 schreibst du jetzt das, was du schon in deinem FC1 stehen hast - nur anders!



		Code:
	

*
      L     #Pt100
      ITD   
      DTR   
      L     1.000000e+001
      /R    
      T     #Temperatur


Baustein und Netzwerkkommentare nicht vergessen, speichern, schließen.

jetz gehen wir mal in deinen FC1 zurück, da schmeißen wir die ganze Skalierung gnadenlos raus, sorry, was muß, das muß...

AWL oder KOP/FUP ... egal (ist die Übersicht links zu sehen? wenn nicht einfach mal Strg+K drücken) ... da gibt es einen Unterpunkt "FC Bausteine", da gucken wir mal was drinnen ist ... ah, der FC10, genau den brauchen wir jetzt, Doppelklick, schon sollte er im ersten Netzwerk erscheinen (bei Fehlermeldungen OK drücken, das Netzwerk anlegen und den Eingabebereich aktivieren)

da ist er, der FC10, an den IN "Pt100" schreibst du jetzt das PEW deines ersten Pt100, an den OUT "Temperatur" dein MD das du gern verwenden möchtest ... Strg+R (neues Netzwerk) ... FC10 im Baum doppelt klicken, mit dem zweiten Pt100 beschalten ... usw. usf.


----------



## SebastianM

Vielen Dank!

Und nu??


----------



## vierlagig

SebastianM schrieb:


> Vielen Dank!
> 
> Und nu??



Nu?? Nu machen wir einen Baustein FC11, ähnlicher Aufbau, für deine Schaltpunkte! IN wäre da einmal dein REAL "tempereatur", die drei Schaltpunkte als REAL und drei OUT Schaltpunkt 1, 2 und 3 ... mach mal nen FC und bau eine Hysterese ein, also Schaltpunkt 1 ist 1 wenn Temperatur < Temp-Schaltpunkt 1 -5 und > Temp-Schaltpunkt 1 + 5 ... Viel Spaß!


----------



## SebastianM

vierlagig schrieb:


> ... mach mal nen FC und bau eine Hysterese ein, also Schaltpunkt 1 ist 1 wenn Temperatur < Temp-Schaltpunkt 1 -5 und > Temp-Schaltpunkt 1 + 5 ... Viel Spaß!



da bin schon wieder überfordert glaub ich


----------



## vierlagig

SebastianM schrieb:


> da bin schon wieder überfordert glaub ich



wieso? wenn du deine überforderung in worte fassen würdest, könnte man dir besser helfen 

du meinst bestimmt, wie mach ich da jetz ne hysterese, ich hab bisher doch immer nur auf einen wert verglichen ...

ich glaub es war so < Betriebstemperatur = schaltpunkt 1 (alles i.o)

> betriebstemperatur und < schaltpunkt 2 temperatur = schaltpunkt 2

wenn dir das reicht, dann vergiss die hysterese ... is sowieso mehr was für nen FB, das machen wir dann ab post 50


----------



## SebastianM

Sollte es z.B so aussehen?



		Code:
	

NW1

L #Temperatur          // eingelesene Temperatur  
L #Betrieb                // innerhalb Betriebstemperatur
<=R
= "Alles i.O." (A1.0)    // Ausgang alles OK

NW2

L #Temperatur           // eingelesene Temperatur  
L #Hupe                   // Betriebstemperatur überschritten
>=R
= "Warnsignal" (A1.1)  // Hupe wird geschaltet

NW3

L #Temperatur           // eingelesene Temperatur  
L #Notabschaltung     // Abschalttemperatur überschritten
>=R
= "Anlage AUS" (A1.2)  // Anlage in NOT-AUS


Hast ja echt ne Geduld mit mir  Vielen Dank!!


----------



## vierlagig

fast! die " ersetzen wir durch # ... wir wollen ja lokal adressieren und nicht global ... ansonsten ist das schon sehr schick, sogar mit befehlskommentar - respekt! ... das ist jetzt dein FC11? den kannst du dann jetzt auch im FC1 aufrufen, anbieten würde sich, nach der Skalierung direkt die Auswertung aufzurufen


----------



## SebastianM

Ja das ist mein FC11

Hmm

Also in der IN-OUT Struktur im OUT müssten die #xxx doch stehen??
Sind aber bei mir rot unterlegt!?



		Code:
	

NW1

L #Temperatur          // eingelesene Temperatur  
L #Betrieb             // innerhalb Betriebstemperatur
<=R
= #Betrieb_1"           // Alles OK

NW2

L #Temperatur           // eingelesene Temperatur  
L #Hupe                 // Betriebstemperatur überschritten
>=R
= #Hupe_1               // Hupe wird geschaltet

NW3

L #Temperatur           // eingelesene Temperatur  
L #Notabschaltung       // Abschalttemperatur überschritten
>=R
= #Notabschaltung_1       // Anlage in NOT-AUS

IN-OUT Struktur

IN
Temperatur
Betrieb
Hupe
Notabschaltung

OUT
Betrieb_1
Hupe_1
Notabschaltung_1

Alles als Datentyp Real!?


----------



## vierlagig

SebastianM schrieb:


> Alles als Datentyp Real!?



nee ... ein =, R, S, U, O weist uns doch immer auf eine Bitverknüpfung, also eine BOOL-Variable hin ... die Ausgänge sind alle BOOL

(das eine " im ersten vergleich ist sicher ein Flüchtigkeitsfehler)


----------



## SebastianM

vierlagig schrieb:


> nee ... ein =, R, S, U, O weist uns doch immer auf eine Bitverknüpfung, also eine BOOL-Variable hin ... die Ausgänge sind alle BOOL
> 
> (das eine " im ersten vergleich ist sicher ein Flüchtigkeitsfehler)



Das war ein Flüchtigkeitsfehler 

Gut soweit hätte ichs auch.

Im FC 1 neues NW und dann



		Code:
	

CALL FC11
   Temperatur        :=
   Betrieb              :=
   Hupe                 :=
   Notabschaltung   :=
   Betrieb_1           :=
   Hupe_1              :=
   Notabschaltung_1:=


Alles bis auf   CALL FC11   in rot

Komm mir langsam blöd vor hier :|


----------



## vierlagig

nun gilt es den baustein zu beschalten ... bei temperatur kommt der skalierte temperaturwert dran, dann die schaltpunkte als festwerte und die ausgänge, ich würd sie vorerst auf merker legen ... und das für deine acht messungen


----------



## SebastianM

vierlagig schrieb:


> bei temperatur kommt der skalierte temperaturwert dran


 also zb MD10



vierlagig schrieb:


> dann die schaltpunkte als festwerte



Wie hab ich das anzugeben??




vierlagig schrieb:


> und die ausgänge, ich würd sie vorerst auf merker legen ... und das für deine acht messungen



Also das, was ich eben schon machen wollte?  

z.B.

Betrieb = M 10.1
Hupe = M 10.2
Notabschaltung = M10.3


----------



## vierlagig

SebastianM schrieb:


> also zb MD10



ja, z.b. MD10 für das erste Pt100 - Temperatursignal, MD14 für das zweite usw. ...



SebastianM schrieb:


> Wie hab ich das anzugeben??



z.b. 30.00 ... wandelt der editor automatisch in 3.000000e+001





SebastianM schrieb:


> Also das, was ich eben schon machen wollte?
> 
> z.B.
> 
> Betrieb = M 10.1
> Hupe = M 10.2
> Notabschaltung = M10.3



genau, wobei ich für betrieb, hupe und notabschaltung jeweils ein eigenes byte benutzen würde, also z.b. betrieb M20.0 bis M20.7, hupe M21.0 bis 21.7 ... dir fällt sicher auf, dass das genau 8 sind ...


----------



## SebastianM

Vielen vielen Dank!

Muss mal eben zu ner Anlage, die steht


----------



## vierlagig

der nächste schritt wäre ein FC12, der macht uns die Auswertung der einzelnen Betriebs-/Störbytes

hab da mal was vorbereitet:



		Code:
	

*
      L     #in
      L     W#16#FF
      UW    
      L     255
      <I    
      =     #status

zwei tipps: #in ist als BYTE definiert und dein meldebyte sprechen wir mit MB an (das aber dann erst beim aufruf) ... an status dann die grüne lampe für betrieb, die hupe für "na aber - zu warm" und die abschaltung ... also dreimal aufrufen ... ich denke mal im FC1 ist das angebracht, auch wenn ich gerade mit dem gedanken liebäugle einen FC3 dafür anzulegen  ... dann bräuchten wir aber auch einen FC2 für die auswertungen, also den FC11 ... das wäre mal wirklich übersichtlich, vorrausgesetzt es existieren Symbole!


----------



## SebastianM

Also jetzt komm ich garnicht mehr mit...
FC2 also FC11??

Hmm hab jetzt Feierabend. und den Rest der Woche Urlaub... 
Würd jetzt sehr gern weitermachen 

Vielen lieben Dank bis jetzt!!


----------



## vierlagig

SebastianM schrieb:


> FC2 also FC11??



nee, natürlich nicht ... mir ging nur grad durch den kopf den FC1 als INPUT-SCAN zu nehmen, den FC2 zur auswertung und den FC3 als OUTPUT-SCAN ... darin lassen wir dann die aufrufe so, also im FC1 acht mal den FC10, im FC2 acht mal den FC11 und im FC3 drei mal den FC12 (wobei der noch anders ist, als das, was wir vorher geproggt haben, denn er reagiert auf ein fehlendes bit, nicht auf ein oder mehrere bits, die da sind ... denn dafür müßte er so aussehen:



		Code:
	

*
      L     #in
      L     W#16#FF
      UW    
      L     0
      <>I   
      =     #alarm

... aber das nur am rande)


----------



## SebastianM

Bin wieder da
Also das letzte hat mich dann doch schon bisl verwirrt... 
Werd erst mal alles komplett intern beschriften, so dass ich noch nen Überblick behalte.


----------



## vierlagig

SebastianM schrieb:


> Also das letzte hat mich dann doch schon bisl verwirrt...



sollte ich nachfragen, was dich verwirrt hat?


----------



## SebastianM

vierlagig schrieb:


> nee, natürlich nicht ... mir ging nur grad durch den kopf den FC1 als INPUT-SCAN zu nehmen, den FC2 zur auswertung und den FC3 als OUTPUT-SCAN ... darin lassen wir dann die aufrufe so, also im FC1 acht mal den FC10, im FC2 acht mal den FC11 und im FC3 drei mal den FC12 (wobei der noch anders ist, als das, was wir vorher geproggt haben, denn er reagiert auf ein fehlendes bit, nicht auf ein oder mehrere bits, die da sind ... denn dafür müßte er so aussehen:
> 
> 
> 
> Code:
> 
> 
> *
> L     #in
> L     W#16#FF
> UW
> L     0
> <>I
> =     #alarm
> 
> ... aber das nur am rande)


das hier 
Also bleiben wir erstmal bei den FC´s die wir vorher erstellt hatten oder sollte ich das wie o.g. übernehmen?


----------



## vierlagig

SebastianM schrieb:


> das hier
> Also bleiben wir erstmal bei den FC´s die wir vorher erstellt hatten oder sollte ich das wie o.g. übernehmen?



du willst ja erstmal ergebnisse, also lass es so, wie wir angefangen haben ... mußt halt nur noch eine auswertung für den fehlerfall bzw. betriebsstatus machen, dafür waren die beiden code-schnipsel mit den word-verknüpfungen gedacht ...


----------



## SebastianM

Vielen vielen Dank für die super Hilfe!!!:-D


----------



## vierlagig

SebastianM schrieb:


> Habs mir doch etwas zu einfach vorgestellt.



stehst du noch zu der aussage oder hast du gemerkt, dass es eigentlich ganz einfach ist?


----------



## SebastianM

Hab alles nochmal aufgebaut und angeschlossen. Aber ich glaube die Temperaturwerte passen nicht so ganz.


> Zitat:Zitat von *SebastianM*
> _Wie hab ich das anzugeben??_
> 
> z.b. 30.00 ... wandelt der editor automatisch in 3.000000e+001





		Code:
	

L     #PT100
ITD
DTR
L     1.000000e+001
/R
T     #Temperatur

der aktuelle Wert bei ca 18-20°C Raumtemperatur beträgt

#Temperatur = 435ae666

das wären über 260°C (2.600000e+002) ???

(wie) kann ich mir das auch in °C anzeigen lassen??


----------



## vierlagig

anzeigeformat: REAL


----------



## SebastianM

vierlagig schrieb:


> anzeigeformat: REAL


 Wie kann ich mir den Wert ausgeben bzw Online als "real"wert einsehen?


----------



## vierlagig

du beobachtest in AWL? ach...geht ja gar nicht anders *g* ...also

FC1 online schalten, da kommt rechts die übersicht VKE, werte, bla, je nachdem was du alles an hast, kannste mit rechts-klick in die kopfzeile unter einblenden auswählen ... du möchtest aber den wert in REAL sehen, also klickst du unter dem IN|OUT viereck in die zeile mit rechts und wählst bei darstellung gleitpunkt, der wert erscheint dann in der zeile, wo dein NOP 0 steht ... eine andere möglichkeit wäre das anlegen einer VAT, dazu im bausteinordner rechtsklicken, neu, variablentabelle, MD10 bis MD80 eingetragen und das format auf GLEITPUNKT gestellt, brille klicken, werte sehen ... hoffe allerdings, du hast die Pt100 wirklich richtig dran und keine messwandler ...


----------



## SebastianM

vierlagig schrieb:


> ....eine andere möglichkeit wäre das anlegen einer VAT, dazu im bausteinordner rechtsklicken, neu, variablentabelle, MD10 bis MD80 eingetragen und das format auf GLEITPUNKT gestellt, brille klicken, werte sehen ... hoffe allerdings, du hast die Pt100 wirklich richtig dran und keine messwandler ...


So habe ich es gemacht. Zeigt mir auch nen Wert an: *231.8* 
Kommt mir bisl warm für eine Elektrowerkstatt vor 

Passt evtl etwas mit der Kommastelle nicht? 23.18°C wäre schon etwas passender ( Habe leider kein Thermometer hier)


----------



## vierlagig

boah, du hast die karte auf Klima Pt100 gestellt, da mußt du natürlich dann durch hundert teilen, richtig ... 23°C is ein mollig warmer arbeitsplatz, nicht schlecht


----------



## SebastianM

ups danke 
hätt ich ja noch fast allein drauf kommen können :-D


----------



## vierlagig

so ... und wenn du dich jetzt wunderst, dass es nicht funktioniert, dann schau dir mal deine referenzdaten an  ... besonders die belegung der merker und da im speziellen des MD20, MB20, MB21, MB22 und M20.0 bis M22.7 ... also die zweite messung sollte komische werte liefern und auch die auswertung des status und der alarme sollte irgendwie komisches zeug machen ... änder das, dann klappts auch

dazu

ein Merker-Bit wird mit M x.y adressiert

acht Bits bilden ein Byte, wird mit MB x adressiert

zwei Byte bilden ein Word, wird mit MW x adressiert, wobei x die Nummer des kleinsten Byte in diesem Wort ist, also das Word das MB x und MB x+1 belegt

zwei Wort bilden ein Doppelwort, wird mit MDx adressiert, wobei x die Nummer des kleinsten Wort bzw. durch die Wort definition des kleinsten Byte ist, also besteht das MDx auf MWx und MWx+2 und eben auch auch MBx, MBx+1, MBx+2 und MBx+3


----------



## SebastianM

Guten Morgen!



vierlagig schrieb:


> ... schau dir mal deine referenzdaten an  ... besonders die belegung der merker und da im speziellen des MD20, MB20, MB21, MB22 und M20.0 bis M22.7 ...





Wie und wo??
Der MD20 ist doch bei mir der 2. Messpunkt.
Was hab ich mit MB21 MB22 und MB23 etc zu benennen?


----------



## vierlagig

also in dem projektstand, den ich hier noch habe liegen deine alarm- und betriebsmeldungen auf diesen bytes


----------



## SebastianM

Ja richtig 

und was soll ich nun ändern?


----------



## vierlagig

SebastianM schrieb:


> Ja richtig
> 
> und was soll ich nun ändern?



die adressierung?  ...ungewollte überschneidungen vermeiden! eine gewollte überschneidung ist die der alarm-bits und alarm-bytes, ungewollt ist die überschneidung mit dem messwert


----------



## SebastianM

ahh jetzt...

Du meinst Überschneidungen bei MD20 MB20 und M20.0 etc z.B.? MB21 und M21.0 etc.

Also ändere ich z.B. MB20 in MB30 und die M20.0 bis M22.7 in z.B. M30.0 bis M32.7
Hab ich das so richtig verstanden?


----------



## vierlagig

SebastianM schrieb:


> Also ändere ich z.B. MB20 in MB25 und die M20.0 bis M22.7 in z.B. M30.0 bis M32.7
> Hab ich das so richtig verstanden?



fast  ... die bits wollen wir ja sammeln und byteweise auswerten ... dein messwert bleibt auf MD20 ... z.b.: betriebsmeldung: M24.0 - M24.7 und ausgewertet wird MB24, alarm1 M25.0 - M25.7 und ausgewertet wird ? richtig MB25 ....


[edit] war schneller 
	

	
	
		
		

		
			





 ... aber so, wie du es oben geändert hast, ist es richtig [/edit]


----------



## Jole

#sehr kompliziert       // die Lösung aber zum zeitvetreiben nicht schlecht//


----------



## vierlagig

Jole schrieb:


> #sehr kompliziert       // die Lösung aber zum zeitvetreiben nicht schlecht//



es ging ja auch darum strategien zu erlernen, die man bei größeren projekten ohne weiteres einsetzen kann ... also an einem kleinen projekt schon das richtige vorgehen einprägen.


----------



## SebastianM

Soooo bin wieder da 
Habs jetzt auch endlich soweit am laufen 
Nur mit der Ansteuerung der Eingänge vom TP aus, sowie die Meldungen funktionieren noch nicht so ganz.
Habe zb die Touchfläche "Reset" mit Ereignis SetzeBit mit E0.4 Reset belegt. Aber es tut sich nichts  Ist sicherlich ein dummer Anfängerfehler. Meine Temperaturen werden mir angezeigt (soweit läufts


----------



## vierlagig

eingänge setzen ... naja ...

leg dir einen kommunikations-datenbaustein an oder greif auf den merkerbereich zu.
diese signale kannst du in deinem programm dann parallel zur hardware verknüppeln.


----------



## SebastianM

*Hallöchen!*

Hallo zusammen!

Habs jetzt endlich soweit am laufen, jedoch werden die Temperaturen ca 10°C zu hoch angezeigt. Trotz 4-Leiter Anschluss. Kann es an der Leitungslänge liegen? Alle 8 Sensoren sind über gleiche Leitungen á 15m angeschlossen.


----------



## Alexus85

Servus Leute!
Bin neu hier, also erstmal ein "Hallo" an alle!

Bislang hab ich mich durch die Suchfunktion und viel lesen das meiste angeeignet und mich über Wasser gehalten. 
In diesem Thema hab ich etwas zum Thema PT100 erfahren und so ähnlich programmiert.
Es funktioniert prima. Die Werte stimmen und ein eine Merker würde ansprechen wenn ein Wert überschritten wird. 

Nun zu meinem Problem:



vierlagig schrieb:


> eine andere möglichkeit wäre das anlegen einer VAT, dazu im bausteinordner rechtsklicken, neu, variablentabelle, MD10 bis MD80 eingetragen und das format auf GLEITPUNKT gestellt, brille klicken, werte sehen ... hoffe allerdings, du hast die Pt100 wirklich richtig dran und keine messwandler ...



Das funktioniert icht. obwohl die Werte im MD.. stimmen (z.B. 21°C) zeigt die VAR im Format Gleitpunkt eine komische Zahl, (z.B. 5.30...)

Was hab ich falsch gemacht/ nicht beachtet?


----------



## AUDSUPERUSER

Du hättest vielleicht den Dint wert in Real wandeln sollen

L #Dint
DTR
T #Real


----------



## Alexus85

SebastianM schrieb:


> L     PEW 272
> ITD
> DTR
> L     1.000000e+001
> /R
> T     MD 10



Also ich hab das so ähnlich wie hier. Wenn ich den MD10 oben als out in Real deklariere müssts doch der MD10 dann auch Real sein, od?


----------



## Alexus85

Nochmal die Frage?

Ich glaube meinen MD... als real deklariert zu haben.
Aber bekomme in der Variablentabelle nicht die richtige Gleitzahl.

Bitte helft mir, ich bin ziehmlich ahnungslos auf diesem Gebiet.

Wo müsste ich das hier eigentlich anfügen?:
L #Dint
DTR
T #Real 	
??


----------



## vierlagig

steht in der VAT "GLEITPUNKT" als TYP?


----------



## Alexus85

vierlagig schrieb:


> steht in der VAT "GLEITPUNKT" als TYP?



ja genau! Die Umwandlung von Real auf Gleitpunkt müsste ja autom. gehen, denk ich mir...


----------



## vierlagig

Alexus85 schrieb:


> ja genau! Die Umwandlung von Real auf Gleitpunkt müsste ja autom. gehen, denk ich mir...



ja was nun, denkst du es geht automatisch oder hast du es so in der VAT stehen???
hast du dem "MD" ein Symbol zugewiesen? welchen Typ hat das Symbol?


----------



## Alexus85

Ja ich hab dem MD ein Symbol zugewiesen. Das Symbol ist Real.

in der VAT -Tabelle hab ich hinter dem MD "GLEITPUKT" ausgewählt.


----------



## Alexus85

Fehler gefunden  

Meine Merkerdoppelwörter nannte ich MD 11.0 , MD 15.0 , MD 21.0 ...

Dummerweise hatte ich auch normal Merker mit M11.0, M 15.0 ...

Mein Wissenstand war noch net so weit. Ich dachte M und MD würden strickt getrennt werden. Jetzt bin ich schlauer!

Danke für die Beschäftigung mit meinem Problemen!!


----------

