Step 7 Sensoren auslesen

Beiträge
15
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo !
ich beschäftige mich zurzeit mit dem Sps-Programm und meine Aufgabe ist dass ich zwei Drucksensoren (Differenzdruck )auslesen soll.
ich habe S7 1215 und CM RS 485 ich würde gerne von Ihnen paar Tipps bekommen habe mein Programm so gestellt aber ich konnte keine Werte auslesen
es kann sein dass ich den falschen Register verwendet habe ich habe den aber nur im Internet gefunden. die Adresse von den Sensoren lautet FS1200-MBR-P21V1-X
falls einer von euch schon damit gearbeitet hat und mir den richtigen Register geben kann wäre ich ihm sehr Dankbar
ich danke euch allen und wünsche euch eine schöne Woche!
bleiben Sie gesund
 

Anhänge

  • WhatsApp Image 2022-01-24 at 10.08.23 (2).jpeg
    WhatsApp Image 2022-01-24 at 10.08.23 (2).jpeg
    327,2 KB · Aufrufe: 27
  • WhatsApp Image 2022-01-24 at 10.08.23 (1).jpeg
    WhatsApp Image 2022-01-24 at 10.08.23 (1).jpeg
    279,6 KB · Aufrufe: 26
  • WhatsApp Image 2022-01-24 at 10.08.23.jpeg
    WhatsApp Image 2022-01-24 at 10.08.23.jpeg
    316,1 KB · Aufrufe: 23
  • WhatsApp Image 2022-01-24 at 10.08.22 (2).jpeg
    WhatsApp Image 2022-01-24 at 10.08.22 (2).jpeg
    275,3 KB · Aufrufe: 21
  • WhatsApp Image 2022-01-24 at 10.08.22 (1).jpeg
    WhatsApp Image 2022-01-24 at 10.08.22 (1).jpeg
    358 KB · Aufrufe: 18
  • WhatsApp Image 2022-01-24 at 10.08.22.jpeg
    WhatsApp Image 2022-01-24 at 10.08.22.jpeg
    198,4 KB · Aufrufe: 20
  • WhatsApp Image 2022-01-21 at 11.11.24.jpeg
    WhatsApp Image 2022-01-21 at 11.11.24.jpeg
    309 KB · Aufrufe: 26
Moin,

bekommst Du denn statt dessen Status oder Fehlercodes am Baustein?
Hast Du den Zugriff mal mit einem PC-Tool getestet?
Bist Du sicher, daß die serielle Kommunikation funktioniert?

Gruß
Jens
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey, schön das Du Dich für einen Thread entschieden hast statt weiter über private Nachrichten, so kommen auch andere in den Genuss Dir hefen zu können oder aber eigene Probleme zu lösen.
Jedoch hast Du geschrieben das Thema wäre fertig, doch nicht?

Zum Problem unter anderem so ganz auf die Schnelle, bin auf dem Sprung:
Du rufst den DB_Master (DB2) in 2 Netzwerken auf. Das geht nicht. Nur wenn EN/ENO verschaltet wird und selbst das ist unsauber. Nimm pro Gerät eine DB-Instanz oder aber arbeite beide nacheinander mit neu angelegten Werten bei Fehlschlag oder Done ab.
(Ich bin mir aus dem Kopf gerade unsicher ob Du MB_Master oder MB_Slave nutzen solltest?! Weiß des wer?)

Warum schreibst Du 40023 in die MDs hinein?

Können wir den Status von Comm_Load sowie MB_Master bekommen während Du Online beobachtest? Das hilft ungemein mehr als nun zu suchen.
 
Du rufst den DB_Master (DB2) in 2 Netzwerken auf. Das geht nicht. Nur wenn EN/ENO verschaltet wird und selbst das ist unsauber. Nimm pro Gerät eine DB-Instanz oder aber arbeite beide nacheinander mit neu angelegten Werten bei Fehlschlag oder Done ab.
Hatte ich auch erst im Verdacht, er ruft die beiden Instanzen aber einmal mit positivem Blinkmerker und einmal mit negativem Blinkmerker auf. Laut Handbuch ignoriert der Baustein Folgeaufrufe über REQ so lange er arbeitet. Sollte also theoretisch funktionieren.

(Ich bin mir aus dem Kopf gerade unsicher ob Du MB_Master oder MB_Slave nutzen solltest?! Weiß des wer?)
MB_MASTER (Über den PtP-Port als Modbus RTU-Master kommunizieren)
Sollte korrekt sein.

Warum schreibst Du 40023 in die MDs hinein?
Hab ich mich auch gefragt, aber erstmal ignoriert, da es nicht weiter verschaltet scheint.
 
Jens
die Serielle Kommunikation funktioniert schon ich bekomme kein Fehler Code außer die 8200 da ich 2 Sensoren auf einmal testen soll und das bekomme ich wenn den Master schon mit einem davon beschäftigt ist .ich kann mein Programm Online verbinden und paar Bilder hineinschicke damit du siehst was ich damit meine, ich bin ganz neue mit dem Programm gestartet aber das sollte trotzdem nicht so kompliziert sein .
Danke trotzdem für die Rückmeldung
 

Anhänge

  • WhatsApp Image 2022-01-24 at 11.16.00.jpeg
    WhatsApp Image 2022-01-24 at 11.16.00.jpeg
    209,8 KB · Aufrufe: 7
  • WhatsApp Image 2022-01-24 at 11.16.26.jpeg
    WhatsApp Image 2022-01-24 at 11.16.26.jpeg
    206,6 KB · Aufrufe: 7
  • WhatsApp Image 2022-01-24 at 11.16.36.jpeg
    WhatsApp Image 2022-01-24 at 11.16.36.jpeg
    204,8 KB · Aufrufe: 7
  • WhatsApp Image 2022-01-24 at 11.15.31.jpeg
    WhatsApp Image 2022-01-24 at 11.15.31.jpeg
    140,7 KB · Aufrufe: 6
  • WhatsApp Image 2022-01-24 at 11.15.45.jpeg
    WhatsApp Image 2022-01-24 at 11.15.45.jpeg
    192,9 KB · Aufrufe: 6
Hatte ich auch erst im Verdacht, er ruft die beiden Instanzen aber einmal mit positivem Blinkmerker und einmal mit negativem Blinkmerker auf. Laut Handbuch ignoriert der Baustein Folgeaufrufe über REQ so lange er arbeitet. Sollte also theoretisch funktionieren.
Er ignoriert die Aufrufe aber er arbeitet dennoch. Und das der DB zwei mal geöffnet wird mit unterschiedlichen Werten. Geht so nicht, egal was am REQ passiert. Der DB wird in beiden Fällen geöffnet und beschrieben. Sobald REQ am ersten anliegt geht er auf Busy und der zweite automatisch ebenfalls etc.

Generell gilt: Ein Instanzdatenbaustein wird nur einmal aufgerufen. Sollte er mehrfach aufgerufen werden, so muss EN/ENO verwendet werden um den Aufruf zu unterbinden oder mittels JMP/CALL bedingt übersprungen werden.

Die 10Hz sind sehr schnell, besser ist Done/Err abzuwarten. Nicht das kurz vor Ablauf der 10Hz der REQ aktiv wird weil der andere gerade abgearbeitet wurde und dann auf den anderen Master mit anderen Werten wechselt.

Die Bilder aus Beitrag #6 habe ich gesehen, alle Status "0000"...warum wieder gelöscht?
 
escride 1 !
Ich habe da was geändert also die 40023 sollte eigentlich mein DATA-ADDR sein da ich den Differenzdruck auslesen will jetzt habe ich die wieder eingefügt :
danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Er ignoriert die Aufrufe aber er arbeitet dennoch. Und das der DB zwei mal geöffnet wird mit unterschiedlichen Werten. Geht so nicht, egal was am REQ passiert. Der DB wird in beiden Fällen geöffnet und beschrieben. Sobald REQ am ersten anliegt geht er auf Busy und der zweite automatisch ebenfalls etc.

Generell gilt: Ein Instanzdatenbaustein wird nur einmal aufgerufen. Sollte er mehrfach aufgerufen werden, so muss EN/ENO verwendet werden um den Aufruf zu unterbinden oder mittels JMP/CALL bedingt übersprungen werden.
Ich habe mit dem Baustein noch nicht gearbeitet. Allerdings sagt die Hilfe Folgendes:
1643020134494.png

Also generell muß es möglich und vorgesehen sein.
Bloß übersichtlicher und leichter nachzuvollziehen wird es natürlich, wenn man über eine Schrittkette Done/Error abwartet. Das ist unbenommen.
 
ich kann immer noch keine Werte lesen wie du es auf dem Bild siehst , ich verstehe was du meinst aber doch habe kein Fehler Code in dem Programm es kann sein auch dass ich den Falschen Register verwende ich habe aber keinen andern
Übrigens habe auch vorher nur mit einem Sensor probiert indem ich den zweiten Sensor ignoriert habe aber trotzdem konnte ich keinen Wert von den Differenzdruck lesen.
ich danke euch allen trotzdem
 

Anhänge

  • WhatsApp Image 2022-01-24 at 11.37.13.jpeg
    WhatsApp Image 2022-01-24 at 11.37.13.jpeg
    156,1 KB · Aufrufe: 6
  • WhatsApp Image 2022-01-24 at 11.41.14.jpeg
    WhatsApp Image 2022-01-24 at 11.41.14.jpeg
    201,8 KB · Aufrufe: 6
nein den habe ich leider nicht aber der Betreuer meinte da soll trotzdem was rausgeben obwohl es für mich gar keinen Sinn macht deswegen habe gesagt vielleicht wäre es sinnvoller mein Problem zu veröffentlichen. Danke
 
Du nutzt doch den Modbus-Funktionscode 03 (40000-Bereich) . Die Tabelle ist für 0x04. Würdest Du die DATA_ADDR einmal mit 30024/30023 versuchen?


@JSEngineering : Die Sache mit dem REQ ist mal wieder anders. Davon bin ich nicht ausgegangen.
 
escride !
Dankeschön ja als ich die 30024 eingetippt habe hat den ersten Sensor schon reagiert aber den zweiten immer noch keine Reaktion
sehr nett von dir danke
 
Zurück
Oben