TIA Wie simuliere ich Analogeingänge? S7-300, TIA V15.1

dahlander

Level-1
Beiträge
6
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

aktuell probiere ich mich an der Analogwertverarbeitung aus. Dabei programmiere ich für eine S7-314 mit dem TIA-Portal V15.1.
PLCSim Advanced steht mir nicht zur Verfügung sondern nur die Simulationssoftware, die direkt im TIA-Portal integriert ist.

Allerdings verstehe ich nicht, wie ich da Analogwerte simulieren kann.
Eingaben in jeglicher Form (Int-Werte, Dez-Werte, einzelne Bits) werden nicht angenommen und mit einem Fehler-Klang beantwortet.

Der Datentyp des Analogeinganges IW800 ist in der Standardvariablentabelle auf "word" eingestellt. Auf "int" geändert werden aber trotzdem keine Simulationswerte angenommen.

Mittels Forcetabelle komme ich auch nicht weiter: "Die ausgewählte CPU unterstützt kein Forcen."

Wie kann ich Analogwerte simulieren?
 

Anhänge

  • Screenshot 2025-06-11 154346.png
    Screenshot 2025-06-11 154346.png
    69,8 KB · Aufrufe: 21
Vielleicht hat das mit dem Peripheriezugriff : P zu tun, bin mir aber nicht sicher. Probier das mal mit einem WORD im Prozessabbild aus, also EW64 zum Beispiel... Oder Prozessabbild der CPU erhöhen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eingaben in jeglicher Form (Int-Werte, Dez-Werte, einzelne Bits) werden nicht angenommen und mit einem Fehler-Klang beantwortet.
Das ist kein Fehler-Klang - das ist immer so (eventuell abhängig von der Windows-Version?)
Gib im linken "Int"-Eingabedialog einen Wert ein (z.B. 12345) und du solltest sehen, dass im rechten "Slider"-Dialog der Wert ebenfalls erscheint und der Slider sich verschiebt, und im "Bits"-Dialog IB800 sollten die Bits 4 und 5 aktiv werden. Oder ziehe den Slider hin und her. Dann weißt du dass der Wert in PLCSIM in IW800 übernommen wird und er sollte auch im Programm erscheinen, es sei denn, du schreibst noch irgendwo im Programm auf IW800.
Hast du auch das Prozessabbild der Eingänge (PAE) so groß eingestellt, dass IW800 im PAE liegt?
Welche Windows Version genau hast du? Womöglich Windows 11 24H2? Welche TIA Version und welche PLCSIM-Version verwendest du? Vielleicht funktioniert deine Siemens Software auf deinem PG nicht richtig? Von Siemens nicht freigegeben?

Mittels Forcetabelle komme ich auch nicht weiter: "Die ausgewählte CPU unterstützt kein Forcen."
Jede CPU sollte Forcen der Eingänge unterstützen. Welche CPU genau hast du projektiert? 6ES7 314-.........?
 
Zuletzt bearbeitet:
Vielleicht hat das mit dem Peripheriezugriff : P zu tun, bin mir aber nicht sicher. Probier das mal mit einem WORD im Prozessabbild aus, also EW64 zum Beispiel... Oder Prozessabbild der CPU erhöhen...
Danke für deine Antwort. Das Prozessabbild zu erhöhen hat funktioniert.

Verstehe ich das richtig, dass durch das standardmäßig eher niedrig eingestellte Prozessabbild Ein- bzw. Ausgangsadressen ab einer bestimmten Adresse einfach ignoriert werden um Rechenleistung und Speicher nicht unnötig zu belasten?

Das ist dann vermutlich auch der Grund warum ich den Peripheriezugriff (PEW800 statt IW800) verwende, weil ich damit auch Adressen auslesen / ansprechen kann, die eigentlich von der cpu ignoriert werden, oder?

Ergeben sich weitere Nebenwirkung abgesehen von möglicherweise schlechterer Performance (bei Mini-Programmen wie ich sie schreibe wahrscheinlich unerheblich) durch das Erhöhen des Prozessabbildes?
 
Das ist kein Fehler-Klang - das ist immer so
Das ist mir mittlerweile auch aufgefallen :P Klang so unschön
Gib im linken "Int"-Eingabedialog einen Wert ein (z.B. 12345) und du solltest sehen, dass im rechten "Slider"-Dialog der Wert ebenfalls erscheint und der Slider sich verschiebt
Hat er tatsächlich nicht gemacht. Jede Eingabe wurde nach dem Bestätigen mit Enter direkt wieder rausgelöscht.
Hast du auch das Prozessabbild der Eingänge (PAE) so groß eingestellt, dass IW800 im PAE liegt?
Habe ich geändert - jetzt funktioniert's.
Welche CPU genau hast du projektiert? 6ES7 314-.........?
Die Forcetabelle meint auch bei größerem Prozessabbild, dass das mit meiner cpu nicht möglich sei. Da die Simulation jetzt aber funktioniert ist das für mich eigentlich kein Problem. Falls du trotzdem drüber nachdenken möchtest, das ist meine cpu: CPU 314C-2 PN/DP / 6ES7 314-6EH04-0AB0.

Vielen Dank für deine Antwort.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Welche Software-Versionen verwendest du? In S7-PLCSIM V5.4 SP8 lassen sich E-Adressen außerhalb des Prozessabbildes eigentlich nicht steuern (im Gegensatz zu realen S7-300 CPU). Da wäre das Eingabefeld in PLCSIM grau und man könnte gar nichts eingeben. (Oder ging das früher mal??)

Welche Windows Version genau hast du? Womöglich Windows 11 24H2? Welche TIA Version und welche PLCSIM-Version verwendest du? Vielleicht funktioniert deine Siemens Software auf deinem PG nicht richtig? Von Siemens nicht freigegeben?

Jede CPU sollte Forcen der Eingänge unterstützen. Welche CPU genau hast du projektiert? 6ES7 314-.........?
 
Verstehe ich das richtig, dass durch das standardmäßig eher niedrig eingestellte Prozessabbild Ein- bzw. Ausgangsadressen ab einer bestimmten Adresse einfach ignoriert werden um Rechenleistung und Speicher nicht unnötig zu belasten?

Das ist dann vermutlich auch der Grund warum ich den Peripheriezugriff (PEW800 statt IW800) verwende, weil ich damit auch Adressen auslesen / ansprechen kann, die eigentlich von der cpu ignoriert werden, oder?
Die Adressen werden nicht ignoriert. Es werden lediglich nicht die Werte der E-Adressen und A-Adressen außerhalb der OB1-Prozessabbilder automatisch aktualisiert. Das war früher tatsächlich ein Grund, um Speicherplatz zu sparen. Und um ggf. nicht unnötig schnell/häufig mit Baugruppen über den Rückwandbus zu kommunizieren, die entweder langsam sind oder anders angesprochen werden müssen (CP, FM, ...).
 
Welche Software-Versionen verwendest du? In S7-PLCSIM V5.4 SP8 lassen sich E-Adressen außerhalb des Prozessabbildes eigentlich nicht steuern (im Gegensatz zu realen S7-300 CPU). Da wäre das Eingabefeld in PLCSIM grau und man könnte gar nichts eingeben. (Oder ging das früher mal??)
Windows 11 Pro 24H2; TIA V15.1; S7-PLCSIM1 V5.4 SP8

Wenn IW800 außerhalb des Prozessabbildes liegt, sind die Kästchen bei der Eingabe von IW800 dargestellt in vertikalen Bits grau hinterlegt. Bei anderen Darstellungsoptionen nicht - eingeben kann man aber trotzdem nichts.

Das Erhöhen des Prozessabbildes scheint aber für meine Zwecke eine sehr gute Lösung zu sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Windows 11 Pro 24H2; TIA V15.1; S7-PLCSIM1 V5.4 SP8
Du bist mutig. Gehst du mit dieser Konfiguration auch an (teure) Kunden-Anlagen? ;)

Wenn IW800 außerhalb des Prozessabbildes liegt, sind die Kästchen bei der Eingabe von IW800 dargestellt in vertikalen Bits grau hinterlegt. Bei anderen Darstellungsoptionen nicht - eingeben kann man aber trotzdem nichts.
Wer weiß was noch alles nicht funktioniert. Am besten stellt man das fest bei eiligen Einsätzen fern vom Heimat-Stall ;) am besten irgendwo, wo es kein Internet gibt ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mal eine ganz andere Frage, wo wir schon dabei sind:

Woher kommen eigentlich die 27648? Ich verstehe, dass man einen overflow-Puffer haben möchte um mit Werten, die größer als 100 % sind umgehen zu können. Aber kommt der Wert irgendwo her oder ist der ziemlich willkürlich gewählt?
 
Mal eine ganz andere Frage, wo wir schon dabei sind:

Woher kommen eigentlich die 27648? Ich verstehe, dass man einen overflow-Puffer haben möchte um mit Werten, die größer als 100 % sind umgehen zu können. Aber kommt der Wert irgendwo her oder ist der ziemlich willkürlich gewählt?
naja, so viel Platz ist in nem Word/Int nicht. d.h. bei 32767 ist Ende, wenn man noch 17,x% Übersteuerungsbereich haben will, bleibt nicht mehr viel Platz.

1749720700515.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mal eine ganz andere Frage, wo wir schon dabei sind:

Woher kommen eigentlich die 27648?

Aber was hat es mit dem Wert 27648 auf sich?
Ab S7 gibt es Analogeingänge mit ADU mit mehr als 12 Bit Auflösung, da konnte man nicht mehr 3 Bits für Statusmeldungen verschwenden. Also hat man nur den niedrigstmöglichen INT-Wert -32768 und den höchstmöglichen INT-Wert +32767 als Fehlerstatus-Wert genommen/reserviert. Man hat gewisse "Vorwarn"-Untersteuer- und -Übersteuerbereiche eingeführt und nutzt dann nicht mehr den gesamten möglichen Wandlungsbereich für den Nennbereich, sondern nur ca. 82% für den Nennbereich und 18% über Nennbereich. Und man kam auf die Idee, nicht mehr für jeden Analogeingangs-Typ andere Werte der Analogwertdarstellung zu verwenden, sondern skaliert den ADU-Wert immer gleich (egal, welche Auflösung der ADU tatsächlich hat), damit das Anwenderprogramm keine Rücksicht auf die tatsächliche Auflösung des Eingangs nehmen muss und man prinzipiell Analogeingangskarten durch Karten mit anderen Auflösungen ersetzen kann, meist ohne das Programm anpassen zu müssen.
Für den 100%-Nennwert hat man 27648 genommen, weil 27648 = 16#6C00 ein relativ leicht merkbarer "glatter" Hex-Wert ist.
 
Zurück
Oben