Autor Thema: Write OPC  (Gelesen 9782 mal)

Offline Timi

  • Jr. Member
  • **
  • Beiträge: 29
    • What i´ve to Say
Write OPC
« am: Dezember 19, 2006, 10:25:10 Vormittag »
Hallo nochmal!

Eine frage währ da noch,
habe ich das korrekt verstanden das man mit einem visualisierungstool
z.b. ShowIT nur Merker schreiben kann?
Also nicht direkt z.b. I1 setzen kann?

Danke für eure hilfe
Timi
****
Das einzige Backup das Du je brauchst ist das,
wofür Du keine Zeit hattest.
****

Offline randolf.rautenberg

  • Newbie
  • *
  • Beiträge: 10
Re: Write OPC
« Antwort #1 am: Januar 02, 2007, 17:41:59 Nachmittag »
Hallo Timi,

das Beschreiben von Ein- und Ausgängen macht keinen Sinn. Würde man z.B. einen Eingang überschreiben, dann würde mit dem nächsten Zyklus der Eingang durch den tatsächlichen Zustand wieder überschreiben.

Das Prinzip dieser Steuerungen und SPSen ist folgendes:
1. Übernahme der Eingänge in das "Pozessabbild der Eingänge".
2. Abarbeitung aller "Strompfade" mit dem "Pozessabbild der Eingänge".
    Speicherung der Ergebnisse im "Prozessabbild der Ausgänge".
3. Übernahme des "Prozessabbildes der Ausgänge" zu den physikalischen Ausgängen.
4. Sprung zu 1.

Die Schritte 1 bis 3 bezeichnet man als ein Zyklus. Die Steuerung führt ständig diese Zyklen aus. Die Zykluszeit ist vom Gerät abhängig, und kann im Datenblatt nachgelesen werden. In der Regel sind es nur wenige Millisekunden. Das Schreiben per OPC auf einen Eingang hätte also nur für diese Millisekunden Bestand.

Ich hoffe, das war verständlich.
Gruß
Randolf

Offline Timi

  • Jr. Member
  • **
  • Beiträge: 29
    • What i´ve to Say
Write OPC
« Antwort #2 am: Februar 06, 2007, 17:48:04 Nachmittag »
Hallo All!

Erst mal danke @randolf! Dies war auch für mich als Laie verstänntlich.

Zu meinem Problem!  :-\

Habe mein Program schritt für schritt auch mit hilfe dieses fabelhaften Forums aufgebaut, soweit so gut.

Heute habe ich mein neuerworbenes Teil ein 209SE (serial 2 LAN adapter) an die Steuerung angeschlossen und natürlich gleich mal versucht zu Visualisieren.

 :-[  Jetzt kommt es - Kann es sein das man Merker welche im Programm als Schütz verwendet werden NICHT mittels OPC ansprechen kann?
Speziell meine ich jetzt in meinem fall alle Merker welche normalerweise direkt von eingängen betätigt werden. M1, M2, M3, . . . . .
Interresanterweise funktioniert es aber mit Merkern die gesetzt werden  ??? M13, M14; . . . .
Hier beziehe ich mich auf NET ID 1

Leider habe ich mein programm so gestallet das ich davon ausgegangen bin dies würde gehen . . .

Anbei mein Programm, vielleicht (hoffentlich) hat ja jemand eine gute idee oder einen vorschlag wie ich nun doch noch via Laptop und OPC steuern kann.

Danke schon mal für eure hilfe . .

Wenn Ihr mehr Informationen benötigt bitte einfach Schreiben . . .
Es ist schwierig ein Problem das man nicht genau kennt zu beschreiben.

« Letzte Änderung: Februar 06, 2007, 17:50:35 Nachmittag von Timi »
****
Das einzige Backup das Du je brauchst ist das,
wofür Du keine Zeit hattest.
****

Offline Knodelpa

  • easy god
  • *****
  • Beiträge: 1410
  • I love easy-Forum.net
Re: Write OPC
« Antwort #3 am: Februar 06, 2007, 19:00:13 Nachmittag »
Hallo Timi,

dem ist leider so !!! Wenn ein Merker im Programm fest zugeordnet ist (Spule) kannst du diesen Merker über OPC lesen, aber nicht über OPC beschreiben. Das Programm ist vorrangig und setzt den Merker wieder auf den alten Wert.

In der Regel schreibt ein OPC Client auf Merker, die im Programm nur gelesen werden, wobei SET und RESET auch erlaubt ist.

 :) ;) :D
Gruß Paul

Offline Timi

  • Jr. Member
  • **
  • Beiträge: 29
    • What i´ve to Say
Re: Write OPC
« Antwort #4 am: Februar 07, 2007, 10:49:43 Vormittag »

In der Regel schreibt ein OPC Client auf Merker, die im Programm nur gelesen werden, wobei SET und RESET auch erlaubt ist.

 :) ;) :D
Gruß Paul

Hallo Paul!

Danke für die Antwort! Ich habe Gestern noch ein bischen probiert und so schlimm ist es gar nicht! Ich hab ja noch jede menge Merker übrig, werde einfach dort wo ich mittels OPC eingreifen will einen Merker Anbringen.

Danke
Gernot
****
Das einzige Backup das Du je brauchst ist das,
wofür Du keine Zeit hattest.
****

Offline randolf.rautenberg

  • Newbie
  • *
  • Beiträge: 10
Re: Write OPC
« Antwort #5 am: Februar 07, 2007, 11:07:44 Vormittag »
Hallo Timi,

wenn ich mir Dein Programm so ansehen, dann scheinst Du wesentlich mehr Merker zu verwenden, als nötig. Du übernimmst erst einmal alle Eingänge in Merker, um dann mit den Merkern weiter zu arbeiten. Du kannst auch die Eingänge beliebig oft an Stelle der Merker in den folgenden Strompfaden verwenden. Die Merkerkontakte würde ich dann parallel (ODER-Verknüpft) zu den Eingängen einsetzen. Dadurch kannst Du das entsprechende Zeitrelais wahlweise über den Eingang, oder über den parallelen Merker (per OPC) schalten.

Alternativ könntest Du die Merker M1 bis M12 durch die Eingänge nur "setzen". Das Rücksetzen müsste dann später bei "Vollzug" erfolgen. Dann könntest Du den Merker auch wahlweise per Eingang oder OPC setzen. Das dazugehörige Zeitrelais müsste den Merker dann zurücksetzen.

Gruß
Randolf
« Letzte Änderung: Februar 07, 2007, 11:12:41 Vormittag von randolf.rautenberg »

Offline Timi

  • Jr. Member
  • **
  • Beiträge: 29
    • What i´ve to Say
Re: Write OPC
« Antwort #6 am: Februar 07, 2007, 15:07:10 Nachmittag »
Hallo Timi,

wenn ich mir Dein Programm so ansehen, dann scheinst Du wesentlich mehr Merker zu verwenden, als nötig. Du übernimmst erst einmal alle Eingänge in Merker, um dann mit den Merkern weiter zu arbeiten. Du kannst auch die Eingänge beliebig oft an Stelle der Merker in den folgenden Strompfaden verwenden. Die Merkerkontakte würde ich dann parallel (ODER-Verknüpft) zu den Eingängen einsetzen. Dadurch kannst Du das entsprechende Zeitrelais wahlweise über den Eingang, oder über den parallelen Merker (per OPC) schalten.

Alternativ könntest Du die Merker M1 bis M12 durch die Eingänge nur "setzen". Das Rücksetzen müsste dann später bei "Vollzug" erfolgen. Dann könntest Du den Merker auch wahlweise per Eingang oder OPC setzen. Das dazugehörige Zeitrelais müsste den Merker dann zurücksetzen.

Gruß
Randolf

Hallo Randolf!

Das kahm daher das ja dachte ich kann auch die Merker mit OPC ansteuern . . War ja ein irrtum  :-\

Wie würde sich denn eine "erfahrene" Person entscheiden?
Für die Paralell version, oder Setzen / Rücksetzen?

lg Gernot
****
Das einzige Backup das Du je brauchst ist das,
wofür Du keine Zeit hattest.
****

Offline randolf.rautenberg

  • Newbie
  • *
  • Beiträge: 10
Re: Write OPC
« Antwort #7 am: Februar 08, 2007, 09:51:53 Vormittag »
Hallo Timi,

die Merker kann man sehr wohl per OPC beschreiben. Das funktioniert aber nur, wenn sie nicht als "Schütz" in einen "Strompfad" eingebunden sind.

Noch einmal zum Verständnis:

Zu Beginn eines Zyklus kopiert die SPS den Zustand aller Eingänge in den Speicher. Das kann man so verstehen, als ob das auch Merker sind, die dann den Namen "Ix" haben. Ändert sich dann der Zustand an einem Eingang, dann hat das KEINE Auswirkung auf den grade laufenden Zyklus. Alle Strompfaden, in denen der "Eingangsmerker" "Ix" verwendet wir, arbeiten mit dem Zustand, der zu Beginn des Zyklus gespeichert wurde, auch dann, wenn sich der physikalische Zustand am entsprechenden Eingang zwischenzeitlich geändert hat.

Hast Du nun einen "Eingangsmerker" I1 mit dem Merker M1 als "Schütz" verbunden, dann wird mit jedem Zyklus der Zustand von I1 IMMER in M1 übernommen. Ist der Eingang I1 "False" (Null, Aus, ...) , dann wird auch "False" in den Merker übernommen. Ist er "True" (1, Ein, ...) dann wird auch der Merker auf "True" gesetzt.

Schreibst Du jetzt einen Wert in diesen Merker M1, dann wird das zwar ausgeführt, aber mit dem nächsten Zyklus (nur Millisekunden später) wird der von Dir hineingeschriebene Wert wieder mit dem Wert von I1 überschrieben. Deshalb sieht das so aus, als ob es nicht funktioniert.

Um das Problem zu lösen, gibt es zwei Möglichkeiten:
1. Du verwendest den Merker nur als "Öffner" oder "Schließer", aber nicht als "Schütz". Die Einzige Möglichkeit, den Merker zu verändern besteht dann durch Beschreiben per OPC. Das hat aber den Nachteil, dass Dein externes Programm dem Merker auch wieder zurücksetzen muss, wenn kein Bedarf für die dahinter steckende Funktion mehr besteht.

2. Du beschreibst den Merker in der Easy nur durch "Setzen" und "Rücksetzen". Das bedeutet für obiges Beispiel mit "I1" und "M1", dass der Eingang "I1" den Merker nur dann auf "True" setzt, wenn er selbst "True" ist. Ist der Eingang nicht angesteuert, dann wird der Merker auch nicht verändert. Du kannst ihn also auch per OPC auf "True" setzen, und es wird die gleiche Wirkung haben, wie die Ansteuerung des Eingangs. Ist die Aktion, die Du mit dem Merker ansteuerst, ausgeführt (z.B. Rolladen ist unten), dann wird der Merker (z.B. vom Endschalter) per "Rücksetzen" wieder auf "False" gesetzt.

Noch zur Info: Die Ausgänge "Qx" sind letztendlich auch Merker. Erst wenn alle Strompfade innerhalb eines Zyklus abgearbeitet sind, dann übernimmt die SPS den Zustand der "Ausgangsmerker" an die physikalischen Ausgänge. Wird ein Ausgang in mehreren Strompfaden mal ein- und mal ausgeschaltet, dann hat das keine Auswirkung auf den physikalischen Ausgang. Erst, wenn alle Strompfade abgearbeitet sind, dann wird der zuletzt "berechnete" Zustand an den Ausgang übernommen.


Ich hoffe, dass das so verständlich ist.

Übrigens: Das Prinzip der "Prozessabbilder" und "Zyklen" ist auch im Handbuch beschrieben. Mann sollte daher unbedingt auch die Einführung lesen, und nicht gleich mit der Beschreibung der Programmierung beginnen.

Gruß
Randolf





« Letzte Änderung: Februar 08, 2007, 09:58:55 Vormittag von randolf.rautenberg »