Suche Zukunft als...?

Zuviel Werbung?
-> Hier kostenlos registrieren
Ihr solltet eure Zeit mal besser dazu nutzen, um euch einen zeitgemäßen Programmierstil an zu gewöhnen. Dass es in TIA nicht mehr exakt so ist wie in Step7 ist ja nun ausgiebig erörtert worden. Mal ein bisschen umdenken!


Also ich bin ja durchaus gewillt meinen Programmierstil weiterzuentwickeln. Aber wie macht ihr das bei grossen Anlagen, wenn da eine änderung rein soll und nunmal kein reinitialisieren stattfinden soll?

Ich denke das wäre ein eigener Tread wert.
Wie baut man richtig ein neues Programm in TIA auf das man von seinen Vorzügen optimal profitiert, die neue Technik nutzen kann. Aenderungen machen kann ohne Maschinen zu stoppen (oder was für anlagen sind das die entweder keine Änderungen erfahren oder jederzeit gestoppt werden können?).

Ich halte mich jetzt nicht mehr für einen Anfänger. Aber auch nicht für in meinem Denken so festgefahren das ich nix Neues mehr versuche, im Gegenteil.
 
Die ganzen Vergleiche Classic <> TIA bringen letztlich nix.
Man kann kann mit beiden arbeiten und muß eben mit den Eigenheiten leben.
Letztlich sollte das auch zu den Stärken eines SPSlers gehören auch mit widrigen Umständen klar zu kommen.
Egal ob nun Hufschmiede oder TIA.
Manchmal ist es eben die Summe der Probleme, die das Fass zum Überlaufen bringt.
Und da kann es durchaus sinnvoll sein sich neu zu orientieren.
Dies ist eigentlich aktuell so einfach wie lange nicht.
Es gibt soviel Umschwung und Wandel gerade wie lange nicht.
Sei es nun IoT, Homeautomation, Digitalworkflow oder sonst was.
Überall hat man gute Einstiegsmöglichkeiten.

Just my 2Cents
Blockmove
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine der ganz großen Stärken von Siemens-SPSen war das Laden von Bausteinen zur Laufzeit. Bei vielen anderen Herstellern musste man oft erst ein komplettes Projekt generieren und dann übertragen. Dazu musste Not-Aus aktiv sein, oder die CPU in Stopp stehen. Arbeite noch mit einigen von diesen Steuerungen, wo das gemacht werden muss.
Jedoch habe auch andere Hersteller die Vorzüge der Siemens-Step5/7-Welt erkannt und das Laden während der Laufzeit umgesetzt.

Nun kommt aber immer mehr das Rumgeheule von den ITlern oder Hochsprachenheinis, dass sie doch auch gerne SPS programmieren wollen, und sie das nicht verstehen. Logisch, während eine SPS zyklisch arbeitet und man als SPSler darauf reagieren muss und ggf. schon den nächsten Zyklus vor Augen haben muss, ist in der Hochsprachenwelt alles Ereignisgesteuert. Tut erst was, wenn was ansteht. Zyklische Programmierung ist hier eher Mangelware.
Daher ist eine Kompilierung nach jeder Änderung/Anpassung ohne weiteres möglich.

Und genau diese Heinis sitzen immer öfters an Positionen wo Entscheidungen zum zukünftigen Software-Design getroffen werden, und zusätzlich Programmieren immer mehr Hochsprachen-Programmierer nicht für uns SPSler sondern so, wie sie es "gelernt" haben.
Es wäre mal gut wenn solche Menschen für 1-2 Jahre auf Baustelle mit Zeitdruck gehen damit sie lernen, wie die Automatisierungswelt tickt, und dass die Hochsprachenwelt hier nicht reinpasst!
 
Hmm, Dein Artikel beginnt ja direkt mit einem Fehler:
Eine der ganz großen Stärken von Siemens-SPSen war das Laden von Bausteinen zur Laufzeit
Mit dem TIA-Portal (V13 und später) kann man sehr wohl zur Laufzeit Bausteine nachladen - Zumindest bei den 300er und 1500er. (Ob man es bei den 200er konnte weiß ich nicht)
Mir ist noch keine CPU unter TIA in Stop gegangen ohne das TIA mich bestätigen ließ, daß sie in Stop gehen will. Durch geschicktes Aufteilen des Ladens, kann man meistens das Stoppen verhindern.
Sobald der WinCCflex-Nachfolger ins Spiel kommt, wird es noch komfortabler. Ich muß mich nicht mehr darum kümmern, ob meine WinCC-Variablen neue Adressen haben oder nicht, einfach neu übersetzen.
Mich hat TIA überzeugt.

Was nun den TO angeht, mich hat es erschrocken wie unflexibel man sein kann, wenn man eine neue Stelle sucht. Ich denke er sucht eine alte Stelle.

Gruß
 
Durch geschicktes Aufteilen des Ladens, kann man meistens das Stoppen verhindern.
"Meistens" ja. Oder korrekter "manchmal".
Wenn man ein Deklaration oder UDT berührt, dann erlaubt TIA/S7-1500 nur ein konsistentes Laden. Also inklusiv Instanz-DBs und DBs die durch UDTs definiert sind.
Es hilft nicht wenn ich weis dass die online DBs behalten werden kann. TIA elaubt immer nur ein konsistentes Laden. Das bedeutet Anlage-Stopp, wenn nicht CPU-Stopp.
Mit STEP7 Classic/S7-300 konnte ich entscheiden ob ich die DBs laden will.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hmm, Dein Artikel beginnt ja direkt mit einem Fehler:
Durch geschicktes Aufteilen des Ladens, kann man meistens das Stoppen verhindern.

Gebe ich gerne zurück :)

Wie JesperMP schon geschrieben hat, war ich bei Step7 nicht gezwungen das zu machen.
Wenn ich ein FB angelegt habe und in der Schnittstelle mir Reserve eingeplant habe, konnte ich später den Namen dieser ändern und musste den DB nicht übertragen.
Das wurde dann ganz an den Schluss gelegt, in die Pause, Werksferien, etc. Ich war frei zu entscheiden.

Wenn ich das in TIA mache, wars das.

Und ich macht TIA nicht schlecht. Ich finde es auch soweit gut, und einige Anmerkung der Kollegen hier sind ein wenig zu "eingefahren".
Aber dies ist definitiv ein Punkt, der Step7 besser macht.
 
Mir ist noch keine CPU unter TIA in Stop gegangen ohne das TIA mich bestätigen ließ, daß sie in Stop gehen will.
Das ist keine neue Errungenschaft von TIA sondern eine Selbstverständlichkeit, die auch Step7 classic seit 20 Jahren so macht.
Wenn aber TIA mit einer S7-1500 einmal entschieden hat daß ein CPU-Stop für das Laden notwendig ist dann hat man (fast) keine Chance trotzdem irgendwie "geschickt" ohne CPU-Stop zu laden. Wenn der Prozess aber keinen CPU-Stop und kein Daten-Reinitialisieren zuläßt, dann darf man unter Umständen tagelang oder wochenlang warten bis man mal die CPU stoppen darf um eine Programmänderung zu laden...

Durch geschicktes Aufteilen des Ladens, kann man meistens das Stoppen verhindern.
Interessant :confused: Kannst Du mal ein konkretes Beispiel bringen wie Du das Laden eines Programms in eine S7-1500 "geschickt" aufteilst damit TIA keinen Stop fordert?

Sobald der WinCCflex-Nachfolger ins Spiel kommt, wird es noch komfortabler. Ich muß mich nicht mehr darum kümmern, ob meine WinCC-Variablen neue Adressen haben oder nicht, einfach neu übersetzen.
Vorsicht - gefährliche Unwissenheit! TIA wiegt da die Unwissenden in falscher Sicherheit. TIA kann nicht verhindern daß man nicht zusammenpassende Projektstände in CPU und HMI lädt, oder auch bei größter Sorgfalt zeitweilig nicht zusammenpassende Projektstände online hat und dadurch katastrophale Fehlbedienungen ermöglichen kann (ganz davon abgesehen daß WinCCflex und auch TIA immer noch gerne fehlerhaft compilieren und dann Bedienobjekte ganz andere Variablen als gewollt/projektiert steuern).
Auch in WinCCflex kann man schon seit mehr als 10 Jahren die PLC-Variablen symbolisch ans Projekt anbinden und muß sich dann nicht mehr um geänderte Adressen von Variablen "kümmern".

Mich hat TIA überzeugt.
Mir scheint, Du hast wohl mit TIA erst nur wenige Kleinprojekte ohne Zeitdruck gemacht?
Und vermutlich hast Du auch keine Erfahrung mit Step7 classic?

Harald
 
Sobald der WinCCflex-Nachfolger ins Spiel kommt, wird es noch komfortabler. Ich muß mich nicht mehr darum kümmern, ob meine WinCC-Variablen neue Adressen haben oder nicht, einfach neu übersetzen.

Das ist doch keine neue Funktion.
Das funktioniert in WinCC flex auch, ich mache es schon jahrelang so. Einfach variable symbolisch anlegen. Ändert man nun die Adresse der Variable auf
der SPS, so wird dies beim nächsten generieren in WinCC flex Seite wieder angeglichen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
(ganz davon abgesehen daß WinCCflex und auch TIA immer noch gerne fehlerhaft compilieren und dann Bedienobjekte ganz andere Variablen als gewollt/projektiert steuern).

Hallo Harald,
ja, dies kann ich bestätigen. Wenn nicht komplett übersetzt wird, habe ich immer wieder die tollsten Auswirkungen.
Von verschobenen Funktionen der Buttons bis .....

Da gibt sich WinCC flex oder TIA nichts, scheint auf dem gleichen/sehr ähnlichen Kernel aufgebaut zu sein.
 
TIA wiegt da die Unwissenden in falscher Sicherheit. TIA kann nicht verhindern daß man nicht zusammenpassende Projektstände in CPU und HMI lädt, oder auch bei größter Sorgfalt zeitweilig nicht zusammenpassende Projektstände online hat und dadurch katastrophale Fehlbedienungen ermöglichen kann (ganz davon abgesehen daß WinCCflex und auch TIA immer noch gerne fehlerhaft compilieren und dann Bedienobjekte ganz andere Variablen als gewollt/projektiert steuern).
Nein, das ist bei der symbolischen Adressierung sehr sehr unwahrscheinlich, dass auf eine falsche Variable geschrieben wird.
Wenn du eine Variable z.B. im DB verschiebst und sonst nichts änderst, funktioniert der Zugriff weiterhin. Nennst du die Variable um oder änderst ihren Datentyp, dann bekommt das HMI keinen Zugriff auf diese Variable, d.h. es kann dann auch nicht auf eine nicht dafür vorgesehene Variable geschrieben werden. Es gibt aber Nicht-Siemens- Anbieter von S7-Treibern die diese Sicherheitsfunktion nicht nutzen, ich weiß nicht warum.
 
Nein, das ist bei der symbolischen Adressierung sehr sehr unwahrscheinlich, dass auf eine falsche Variable geschrieben wird.
Und wenn man die Variablen nicht umbenennt sondern der Bequemlichkeit halber oder zur Verhinderung von CPU-Stop bei "Tag_1", "Tag_2", "Tag_3" ... belässt, oder man hat der Bequemlichkeit halber eh' nur Arrays ohne spezifischen Name zur HMI, verwendet die Variablen aber nun für andere Zwecke, dann kann man ohne sich "kümmern" zu müssen nur das CPU-Programm laden und die noch nicht neu geladene HMI kann nun problemlos Fehlsteuerungen machen. Oder umgekehrt: erst die HMI laden ... dann will ich die CPU laden ... TIA will CPU-Stop ... Mist, geht jetzt nicht ... Mist, wie bekomme ich jetzt den vorherigen HMI-Zustand wiederhergestellt??? ... Ach scheixx, lass so, wird schon keiner drücken...

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wer so programmiert und dann keine Vorkehrungen trifft, dass so lange keiner die Anlage übers HMI bedient, der hat es auch nicht anders verdient wenn ihm die Anlage um die Ohren fliegt.
Der Name beschreibt die Funktion, und für das HMI hat die Variable aufgrund des Namens immer noch die gleiche Funktion.
 
Wer so programmiert und dann keine Vorkehrungen trifft, dass so lange keiner die Anlage übers HMI bedient, der hat es auch nicht anders verdient wenn ihm die Anlage um die Ohren fliegt.

Trifft man leider ab und zu an, das mit Var1, Var2 oder Tag1 Tag2 programmiert wird ( Grund vermutlich Faulheit, Dummheit oder ggf. beides )

der hat es auch nicht anders verdient wenn ihm die Anlage um die Ohren fliegt.
Dem gehören die Ohren langgezogen, wenn die Anlage um die Ohren liegt, liegt der wirtschatliche Schaden ja überwiegend
bei einem Unbeteiligten ( Eigentümer ).

Harald hat schon recht.
Wenn man erst das Panel lädt und dann die CPU einen Stopp möchte und man diesen nicht machen kann, dann ist das Ganze in einem undefinierten Zustand.
 
Also in dem Fall mit dem HMI-Zugriffen hat Siemens bei den neuen Steuerungen aber alles mögliche getan um Fehler zu vermeiden. Da gibt es meiner Meinung nach nichts zu kritisieren.
Ihr verbaut doch auch nicht Hardwaretaster mit der Beschriftung "Taster_34 macht irgendwas", oder wenn ein Taster mit "Anlage Ein" beschriftet ist programmiert man diesen auch nicht mit der Funktion "Anlage aus" um und lässt die Anlage dann stundenlang so weiterlaufen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da gibt es meiner Meinung nach nichts zu kritisieren.
Das kritisiert ja keiner, haben die Jungs ja gut gemacht.
Für diese Problematik mit Tag1, Var1 ist ja nur der Programmierer verantwortlich.

Für mich ist dies auch vollkommen unverständlich, wenn man mit fortlaufenden Variablennamen arbeitet,
vor allem weil man bei jeder erst mal per Querverweis schauen muss, für sie eigentlich beinhaltet.

Wenn ich Zeit habe, beschrifte ich dann die Variablen meist nach ( wie gesagt, Fremdanlagen und ich bin nur zur Fehlersuche da )
 
Zuletzt bearbeitet:
Hmm, Dein Artikel beginnt ja direkt mit einem Fehler:
Eine der ganz großen Stärken von Siemens-SPSen war das Laden von Bausteinen zur Laufzeit
Mit dem TIA-Portal (V13 und später) kann man sehr wohl zur Laufzeit Bausteine nachladen - Zumindest bei den 300er und 1500er. (Ob man es bei den 200er konnte weiß ich nicht)
Mir ist noch keine CPU unter TIA in Stop gegangen ohne das TIA mich bestätigen ließ, daß sie in Stop gehen will. Durch geschicktes Aufteilen des Ladens, kann man meistens das Stoppen verhindern.

"Laden zur Laufzeit" bedeutet für mich nicht zwingend laden ohne Stop der CPU, sondern auch Laden ohne neustart des Programms (reinit der Bausteine).

Ich hatte heute wieder so ein Fall, da wäre ein Stop der CPU nicht so schlimm gewesen (man kann ja die Ausgänge in einen definierten Zustand konfiguriere, oder "last State on CPU stop").
Ich habe eine Beleuchtungssteuerung mit HPS Leuchten, die sollen also wenn sie ausgehen mindestens 5min aus bleiben.
Jetzt wollte ich die änderungen einspielen. Da ein zusätzlicher Timer in einem FB hinzugekommen ist und einer Variable der Symbolname geändert wurde, erzwingt TIA nun einen Reinit der betroffenen Bausteine (reinit reservespeicher nutzt nichts). Also obwohl die CPU in Run bleibt, startet die Software die Leuchten neu, schaltet also alles aus und nach 5 min alles wieder ein.
In step7 hätte ich den Timer einfach hinten in der Instanz hinzugefügt, entsprechend viele Reservebytes gelöscht und nur die Bausteine geladen, nicht die DBs. Das wäre komplett ohne Reinit über die Bühne gegangen eine Sache von 5 Min.
Jetzt musste ich aber jede Leuchte auf Bypass nehmen, dafür muss ich sie ausschalten und nach 5 Min wieder einschalten. Das mache ich in 5 Etappen brauche also rund eine Halbe stunde nur um in einen sicheren Betrieb zu gehen und nach dem Laden des Programms muss ich sie in 5 Stufen wieder der Software übergeben damit immer genügend Licht ist.

Und das ist jetzt ne Simple steuerung, da isses nicht schlimm wenn sie jetzt ne Stunde statisch feststeht und erst dann wieder automatisch weiterläuft. Aber das in einer Fertigungsstrasse stelle ich mir echt uncool vor.

Ich weiss, jetzt könnte man superduper reinitroutinen schreiben die einen Reinit erkennen zuerst alte Zustände erfassen, neu Auswerten, ausgänge zuerst lesen dann einen speziellen Reinit zustand wiederherstellen bevor die Automatik greift. Sehr Aufwändig sehr fehleranfällig und Testintensiv und vergrössert das Programm enorm. IMHO sollte einem dies aber eigentlich genau TIA abnehmen.

Ich habe letztens eine Anlage überarbeitet für ne Eisbahn, da war noch ein OP45 von SattControl (ABB) drin, über 20 Jahre alt. Programmiert in FUP. änderungen in Run ohne Reinit reingeladen und läuft, nicht eine Kältemaschine hat rumgezickt.
Sowas wünsche ich mir für ein modernes System, ich find die neuerungen gut, sogar sehr gut. Ich wünschte mir aber das man die anderen wichtigen Sachen nicht einfach opfert.
 
Es kommt ja doch noch eine fruchtbare Diskussion zustande ..

.. das Thema "Suche Zukunft als...?" muss ja auch Einiges abkönnen.

Vollmi, man kann solche Situationen natürlich nicht verhindern. Das konnte man in Step7 aber auch nicht immer. Irgendwann kam auch hier der Punkt, wo ein Instanz-DB neu initialisiert werden musste. Und dann musste man auch in Step7 einen Weg finden. Und dieser Punkt kam auch stets zu einem ungünstigen Zeitpunkt. Und dann stand man da, und wusste nicht wie, weil man es viel zu selten gemacht hatte. Auch ich habe die FUs von Kühlwasserpumpen oft genug vorort auf Hand geschaltet (Step7), um die Kühlung eines ganzen Werkes nicht zu unterbrechen (S7-400, 12MW Kühlleistung). Vielleicht kann das mal einer in Toaster-Einheiten umrechnen :ROFLMAO: .

Man kann jedoch in Step7 wie auch in TIA die Auswirkungen einer Initialisierung minimieren. Ein wesentlicher Schritt ist eine gut durchdachte Datenablage in einem oder auch in mehreren Global-DBs für die "Kerndaten". Egal was man schaltet, es gibt doch immer die selben benötigten Variablen. Diese sind die Betriebsart, Betriebszustände, Parameter, Schaltzeiten, Stellgrade, Statusanzeigen oder was auch immer. Hinzu kommen noch eine Hand voll frei verwendbarer Realwerte die man eventuell für Sollwertberechnungen o.a. benötigt, ein paar Variablen für Regler, und vielleicht ein paar boolsche Werte. Man kann daraus ein Standard-Variablenpaket kreieren. Meines genügt mir seit ca. 15 Jahren unverändert, egal ob Step7 oder TIA. Ebenso ist es egal, für was für eine Anlage es sich handelt.

In Step7 habe ich mir einen oder bei größeren Anlagen mehrere DBs mit UDTs angelegt. Die Symbolik der STRUCTs in diesen DBs konnte man ändern, ohne neu zu initialisieren und ohne neu zu laden. Diese Strukturen konnte man als UTD oder ANY an Bausteine übergeben und damit arbeiten. In den FBs musste "nur" das individuelle "Beiwerk" (incl. Instanzen) programmiert werden. Bis auf wenige Ausnahmefälle konnte man diese Bausteine samt Instanzen in Run neu laden. Manchmal war es sinnvoll, während des Ladens den Bausteinaufruf aus zu kommentieren.

In TIA ist es nicht viel anders. Einziger und wesentlicher Unterschied ist die Datenablage in den Global-DBs. Die oben erläuterten Strukturen sind jetzt in einem ARRAY of STRUCT abgelegt. Auf die Gründe dieser Notwendigkeit muss ich wohl nicht näher eingehen. Auch in diesem ARRAY ist genügend Reserve vorgesehen, so dass der DB in der Regel nie geändert bzw. initialisiert werden muss. Alle Schaltzustände, Parameter u.s.w. bleiben gespeichert. Das klingt eigentlich ganz einfach, oder? Ist es auch!

Aber es geht noch weiter. Mit den ARRAY-Nummern kann man ja nicht so schön arbeiten. Auch hierfür gibt es eine ganz einfache Lösung. Man übergibt die ARRAY-Strukturen als IN/OUT an den entsprechenden ANLAGEN-FB. Außen steht also z.Bsp. ARRAY[32] und im FB "ZYLINDER_007" oder "REGLER_0815". Man kann zig solcher Strukturen an eine FB übergeben, ohne merklichen Performance-Verlust. Der ARRAY-Index dient sogleich als ID und als Textlisten-ID am HMI. Eine einfache und übersichtliche und flexible Zuordnung ist somit möglich. Eigentlich geht es kaum einfacher.

Dann wäre da noch das Thema optimiert/nichtoptimiert. Ich kann gar nicht einschätzen, was es ausmacht. Es ist mir eigentlich auch egal. Für mich kam eine optimierte Programmierung von Anfang an nicht in Frage. Die o.g. Strukturen bearbeite ich u.a. auch sequenziell in Bausteinen, z.Bsp. zum Multiplexen für die HMI-Bedienung. Hierfür habe ich für die Adressierung auf der SPS-Seite noch keine Alternative gefunden. Was man nach Hörensagen tunlichst vermeiden sollte, ist ein gemischter Betrieb.

CPU-Stopp beim Laden? Ich kann mich kaum daran erinnern, das mal gehabt zu haben. Bei Änderungen an der Konfiguration ja, aber sonst? Zumindest nicht in einem Moment, wo es mich großartig störte. Änderungen an einer laufenden Anlage mache ich aber auch in der Regel live, also in kleinen Schritten. Generationswechsel lasse ich bei meiner Betrachtung mal außen vor. Auf Instanz-DBs wird von außen generell nicht zugegriffen, und von einem HMI schon gar nicht. Das sind so meine Grundprinzipien aus Step7-Zeiten.

Zum Schluss noch ein paar Gedanken von der S5 bis zum TIA-Portal. Im Gegensatz zu heute war man damals beim Programmieren sehr stark eingeschränkt. Man konnte gar nicht anders, als äußerst diszipliniert zu programmieren. Der kleinste Fehler, und die CPU stand still. Selbst das Kopieren von Code-Passagen war unter Step5 schon ein kleines Kunststück. Mit Windows und Step7 hatte man schon sehr viel mehr Freiheiten, um "fahrlässig" zu programmieren. Im TIA-Portal hat man das ganze noch einmal potenziert :ROFLMAO: . Man hat immer mehr Freiheiten und man kann somit immer mehr falsch machen. Nicht umsonst wird man beim Safety-Zeugs wieder eingeschränkt. Was ich sagen will ist, man sollte nicht alles ausreizen was geboten und versprochen wird. Viele programmieren wild drauf los und verlassen sich auf den Versprechungen des Herstellers. Vorsicht ist die Mutter der Porzellankiste! Nutzt besser die soliden Grundfunktionen, diese aber richtig und effektiv!

TIA ist großartig :ROFLMAO: !


Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Dagobert

Ich mach es ähnlich.
Jede Station bekommt einen oder mehrere Global-DBs.
Das reduziert deutlich die Anzahl der Reinits und Stopps.
Quasi weg von Multiinstanzen.
Für die Global-DB verwende ich meist schon optimierte Ablage.
Damit sind falsche Variablenzugriffe bei unterschiedlichen SPS- und HMI-Ständen nahezu unmöglich.
Jede Variable und jedes DB-Element hat intern eine eindeutige ID. Zumindest das funktioniert ordentlich.

Gruß
Blockmove
 
Nein, das ist bei der symbolischen Adressierung sehr sehr unwahrscheinlich, dass auf eine falsche Variable geschrieben wird.
Wenn du eine Variable z.B. im DB verschiebst und sonst nichts änderst, funktioniert der Zugriff weiterhin. Nennst du die Variable um oder änderst ihren Datentyp, dann bekommt das HMI keinen Zugriff auf diese Variable, d.h. es kann dann auch nicht auf eine nicht dafür vorgesehene Variable geschrieben werden.
:confused:
Hab' leider schon mehrfach das Gegenteil gehabt.

Im udt eine neue, mit aussagekräftigen Symbol versehene Variable eingefügt.
Das CPU-Projekt (S7-1214) aufgespielt und das HMI (KTP700) hat statt auf die bisherige Variable auf die neue eingewirkt, obwohl alle Variablen auf dem HMI symbolisch verbunden sind. Erst HMI übersetzen und aufspielen hat das wieder korrigiert.


Da hab' ich mich immer gefragt, ob im Hintergrund doch noch absolut gearbeitet wird.
Eventuell hängt es auch damit zusammen, dass ich die Variablen meist mit der udt-Struktur ans HMI übergebe?
 
@PN/DP,
warum greifst Du die Leute immer persönlich an? Das ist langsam peinlich. Insbesondere da ca 50% Deiner Antworten entweder falsch sind oder nicht zum Thread passen.
Zum konkreten Beispiel:
Wenn Du in einem Globalen DB etwas änders, dann will TIA alle FBs und FCs neu übertragen, die durch diesen DB beeinflußt werden. Wenn die Anzahl der zu übertragenden Bausteine zu groß wird will TIA einen CPU-Stopp haben.
Wenn Du nun immer nur einen Teil der Bausteine überträgst passiert das nicht.
Machst Du überhaupt etwas anderes als hier im Forum zu posten?

Gruß
 
Zurück
Oben