INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Programmierung einer SPS in LV



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

11.12.2006, 09:57
Beitrag #1

Herbert Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Oct 2006

8.2
2006
kA

59494
Deutschland
Programmierung einer SPS in LV
Schönen guten Morgen!

Ich würde mir gerne mit LV eine Art SPS programmieren, bin dabei aber schnell auf etliche Probleme gestossen. Und zwar habe ich mir folgendes Überlegt:

Ich möchte gerne digitale Eingänge mit einer USB Karte mit LV einlesen (was soweit kein Problem ist) und dann gerne die verschiedenen Eingänge irgendwie miteinander Verknüpfen (so wie bei einer SPS (UND, ODER, SETZEN - RÜCKSETZEN, negiert, MERKER...)) und dann diese auf meine Ausgänge von der Karte geben. Die Schwierigkeit sehe ich darin, dass eine SPS ja sequentiell läuft und ich dieses Verhalten ja nachstellen möchte. Es müssten z.B. erst die Eingänge für die Merker ausgewertet werden und dann die Ausgänge gesetzt werden. Es gibt zwar in LV die Sequenz Schleifen, allerdings weiss ich ja nicht vorher, wie ich meine Logik schreibe! Hier mal ein kleines Beispiel:
Ich möchte Eingang 1 und Eingang 2 "UND" verknüpfen. Diese setzen einen Merker 1. Ausserdem habe ich noch Eingang 3 "ODER" Eingang 4 miteinander verknüpft und diese setzen Merker 2. Nun möchte ich gerne den Merker 1 zum SETZEN und Merker 2 zum RÜCKSETZEN (also ein "SETZEN - RÜCKSETZEN" - Glied) verwenden.
Ich habe schon einiges ausprobiert, aber so wirklich weit gekommen bin ich da noch nicht.


Deswegen hoffe ich auf die Hilfe vom Forum!

Danke Herbert
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.12.2006, 10:28
Beitrag #2

Mr.T Offline
LVF-SeniorMod


Beiträge: 1.007
Registriert seit: Jun 2005

2009
2005
kA

88400
Deutschland
Programmierung einer SPS in LV
Hallo!

Habe ich das jetzt richtig verstanden? Du möchtest die Logik der Schaltung mit LV progammieren, aber nicht direkt im Blockdiagramm, sondern das Frontpanel soll als z.B. OB1 dienen?!
Also Du möchtest in Deinem FP rechts die logik einstellen und dann links zu der Tabelle hinzufügen - richtig? Und am Ende soll diese Einstellung dann die Ausgänge schreiben - oder?

Da würde ich Dir schonmal Prinzipiell openg.org ans Herz legen (fertige SPS-Funktionen).

Ansonsten würde ich ein Paar Knöppe' spendieren, an denen verknüpfungen zu einem Cluster oder Array hinzugefügt werden (sammeln aller Verknüpfungen).

Oder ich habs noch net gerafft..
Gruß

Mit einem freundlichen Wort und etwas Gewalt erreicht man viel mehr als nur mit einem freundlichen Wort. [...Marcus zu Lennier, B5]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.12.2006, 10:38
Beitrag #3

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Programmierung einer SPS in LV
' schrieb:Die Schwierigkeit sehe ich darin, dass eine SPS ja sequentiell läuft und ich dieses Verhalten ja nachstellen möchte.
Sequenziell ist ja für eine Datenflußsteuerung ideal.

Zitat:Es müssten z.B. erst die Eingänge für die Merker ausgewertet werden und dann die Ausgänge gesetzt werden.
Zuerst werden sie Eingänge gesampelt, dann die Verknüpfungen - welcher Art auch immer - erstellt, zuletzt die Ausgänge ausgegeben.

Zitat:allerdings weiss ich ja nicht vorher, wie ich meine Logik schreibe!
Die Logik, respektive die Verknüpfungsliste, gibt ja den sequenziellen Ablauf vor. Du musst diese Liste nur so erstellen, dass sie von oben nach unten abarbeitbar ist. Genauso würde auch das SPS-Programm aussehen: Von oben (also dem Anfang) nach unten (also dem Ende) abarbeitbar. Im übrigen läuft auch ein LV-Programm sequenziell ab - wegen des Datenflusses.

Zitat:Ich habe schon einiges ausprobiert, aber so wirklich weit gekommen bin ich da noch nicht.
Ich kann da bisher kein Problem sehen: Zuerst liest du alle (also 4*24) Eingänge in die Modullisten, Teil Eingänge, ein. Danach arbeitest du deine Verknüpfungslisten ab. Die Vorschrift der Abarbeitung kommt aus der Verknüpfungsliste. Die Daten für die Abarbeitung kommen aus den Modullisten und werden auch dort abgelegt. Sie sollen also nicht in der Verknüpfungsliste liegen. Am Schluss schreibst du alle (also 4*24) Ausgänge von den Modullisten an USB.

Das muss so funktionieren.

Ein Problem kann natürlich die programmatische Umsetzung sein. Ich hätte ja in der Verknüpfungsliste keine Strings hinterlegt, die haben nämlich keine direkte Verbindung zum Modul. Um einen Wert (Merker! die werden nämlich oft gebraucht) aus der Modulliste zu holen, musst du jetzt mittels des Strings in der Verknüpfungsliste den Index innerhalb der Modulliste holen, damit du über diesen Index auf den Wert kommst, der dem String entspricht.

Ich bin ja noch immer dafür, in der Verknüpfungsliste nicht die Pseudonamen abzulegen, sondern den Index des Ports innerhalb eines Modules. Auch das Modul wird als Index angelegt. Dass dann die Eingabe für den Programmierer etwas aufwändiger wird, ist nebensächlich. Auch muss meines Erachtens eine Verknüpfungsliste ausreichend sein, da es ja auch nur ein Programm innerhalb der nachzubildenden SPS gibt. Ein SPS-Programm - eine Verknüpfungsliste.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.12.2006, 10:56
Beitrag #4

Herbert Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Oct 2006

8.2
2006
kA

59494
Deutschland
Programmierung einer SPS in LV
' schrieb:Hallo!

Habe ich das jetzt richtig verstanden? Du möchtest die Logik der Schaltung mit LV progammieren, aber nicht direkt im Blockdiagramm, sondern das Frontpanel soll als z.B. OB1 dienen?!
Also Du möchtest in Deinem FP rechts die logik einstellen und dann links zu der Tabelle hinzufügen - richtig? Und am Ende soll diese Einstellung dann die Ausgänge schreiben - oder?

Da würde ich Dir schonmal Prinzipiell openg.org ans Herz legen (fertige SPS-Funktionen).

Ansonsten würde ich ein Paar Knöppe' spendieren, an denen verknüpfungen zu einem Cluster oder Array hinzugefügt werden (sammeln aller Verknüpfungen).

Oder ich habs noch net gerafft..
Gruß

Nein, das ist genau, was ich machen möchte! Im Frontpannel möchte ich meine Verknüpfungen erstellen. Allerdings habe ich Probleme, das auch in einem LV Program umzusetzen! Kannst du mir wohl genau sagen, wo ich SPS - Funktionen in dem openg.org Forum finde??

Danke Herbert


' schrieb:Sequenziell ist ja für eine Datenflußsteuerung ideal.

Zuerst werden sie Eingänge gesampelt, dann die Verknüpfungen - welcher Art auch immer - erstellt, zuletzt die Ausgänge ausgegeben.

Die Logik, respektive die Verknüpfungsliste, gibt ja den sequenziellen Ablauf vor. Du musst diese Liste nur so erstellen, dass sie von oben nach unten abarbeitbar ist. Genauso würde auch das SPS-Programm aussehen: Von oben (also dem Anfang) nach unten (also dem Ende) abarbeitbar. Im übrigen läuft auch ein LV-Programm sequenziell ab - wegen des Datenflusses.

Ich kann da bisher kein Problem sehen: Zuerst liest du alle (also 4*24) Eingänge in die Modullisten, Teil Eingänge, ein. Danach arbeitest du deine Verknüpfungslisten ab. Die Vorschrift der Abarbeitung kommt aus der Verknüpfungsliste. Die Daten für die Abarbeitung kommen aus den Modullisten und werden auch dort abgelegt. Sie sollen also nicht in der Verknüpfungsliste liegen. Am Schluss schreibst du alle (also 4*24) Ausgänge von den Modullisten an USB.

Das muss so funktionieren.

Ein Problem kann natürlich die programmatische Umsetzung sein. Ich hätte ja in der Verknüpfungsliste keine Strings hinterlegt, die haben nämlich keine direkte Verbindung zum Modul. Um einen Wert (Merker! die werden nämlich oft gebraucht) aus der Modulliste zu holen, musst du jetzt mittels des Strings in der Verknüpfungsliste den Index innerhalb der Modulliste holen, damit du über diesen Index auf den Wert kommst, der dem String entspricht.

Ich bin ja noch immer dafür, in der Verknüpfungsliste nicht die Pseudonamen abzulegen, sondern den Index des Ports innerhalb eines Modules. Auch das Modul wird als Index angelegt. Dass dann die Eingabe für den Programmierer etwas aufwändiger wird, ist nebensächlich. Auch muss meines Erachtens eine Verknüpfungsliste ausreichend sein, da es ja auch nur ein Programm innerhalb der nachzubildenden SPS gibt. Ein SPS-Programm - eine Verknüpfungsliste.

Ich habe doch nun die einzelnen Eingänge mit nem bestimmten Index versehen! z.B. Modul 1 Eingang 1 hat den Index 1 und Modul 2 Eingang 1 hat den Index 101 und soweiter!

Oder habe ich das immer noch nicht richtig verstanden??

Es wäre schön, wenn du mir zum besseren Verständnis mal ein kleines Beispiel Programm machen könntest!

Gruss Herbert
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.12.2006, 11:09
Beitrag #5

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Programmierung einer SPS in LV
' schrieb:Ich habe doch nun die einzelnen Eingänge mit nem bestimmten Index versehen! z.B. Modul 1 Eingang 1 hat den Index 1 und Modul 2 Eingang 1 hat den Index 101 und soweiter!
Auch so müsste es gehen.

Zitat:Oder habe ich das immer noch nicht richtig verstanden??
Doch, es scheint so.

Zitat:Es wäre schön, wenn du mir zum besseren Verständnis mal ein kleines Beispiel Programm machen könntest!
Das geht erst heute abend.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.12.2006, 11:12
Beitrag #6

Herbert Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Oct 2006

8.2
2006
kA

59494
Deutschland
Programmierung einer SPS in LV
' schrieb:Auch so müsste es gehen.

Doch, es scheint so.

Das geht erst heute abend.

Gut, das wäre mit Sicherheit eine Hilfe!!

Danke schonmal im vorraus!

Herbert
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.12.2006, 11:42
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Programmierung einer SPS in LV
' schrieb:Gut, das wäre mit Sicherheit eine Hilfe!!
Das kann ich mir vorstellen. Wink

Wie bist du denn mit meiner Hilfe zum Abspeichern der Modullisten zurechtgekommen?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.12.2006, 12:04
Beitrag #8

Herbert Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Oct 2006

8.2
2006
kA

59494
Deutschland
Programmierung einer SPS in LV
' schrieb:Das kann ich mir vorstellen. Wink

Wie bist du denn mit meiner Hilfe zum Abspeichern der Modullisten zurechtgekommen?

Das war ne gute Hilfe! Das hat dann auch hingehauen!
Nur kommt man immer von einem zum anderen Problem und ich hab immer wieder neue Ideen. Und deswegen ist halt jetzt ne SPS mit LabVIEW zu programmieren meine neue "Herausforderung" *grins*

Wie gesagt, nen kleinen Ansatz habe ich ja schon, aber ich sehe da grosse Probleme mit den Merkern auf mich zukommen!

Gruss Herbert
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.12.2006, 18:03
Beitrag #9

Herbert Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Oct 2006

8.2
2006
kA

59494
Deutschland
Programmierung einer SPS in LV
Tach auch, ich habe mir überlegt, dass es ja ab LV 8 möglich ist, in einen Tree zu schreiben. Kann man in den Tree auch z.B. Combo boxen setzen?? Das ganze wäre dann wesentlich übersichtlicher und ich könnte mit einem Text Parser arbeiten!

Das ist noch mal so ne Idee von mir, ich weiss aber nicht, ob das geht!


Gruss Herbert
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2006, 09:12
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Programmierung einer SPS in LV
' schrieb:einen Tree zu schreiben. Kann man in den Tree auch z.B. Combo boxen setzen?? Das ganze wäre dann wesentlich übersichtlicher
Ich mag Trees nicht. Trees sind zwar einfach zu programmieren, aber ich als Anwender möchte lieber keine Trees haben. ComboBox im Tree: Ist eigentlich kompliziert. Wenn LV das nicht gleich kann, gibt es da aber bestimmt Komponenten für. Kompliziert wird es, wenn du in alle ComboBoxen innerhalb des Trees (und das können sehr viele werden) die Pseudonamen eintragen willst - und zwar dann, wenn der Name im Modul geändert wird.

Hier mal eine Ausführung der SPS-Steuerung (= Main-VI)

Die Eingabe der Moduldaten geht noch wie bisher. Es gibt nur noch eine Verknüpfungsliste, deren Daten, die jetzt lediglich Indices sind, in einem Array abgelegt sind. Zur Anzeige dieser Daten gibt es ein "Konvertierungs-VI", das "Array nach Listenfeld" macht. Online (also im Timeout-Event alle 100 ms) wird die Verknüpfungsliste abgearbeitet. Die Eingangs- wie auch die Ausgangsdaten entsprechen der Led "Wert" in den Modullisten.


Angehängte Datei(en)
Sonstige .zip  FF_Prg1_82_V2.zip (Größe: 230,61 KB / Downloads: 276)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Programmierung von Legobausteinen in LabVIEW becci 4 3.943 31.03.2015 17:42
Letzter Beitrag: becci
  Programmierung - Abfahren einer Produktionsstraße nobody_knows 3 4.112 27.02.2015 18:56
Letzter Beitrag: jg
  Anfängerfragen zur Programmierung KornBanane 1 3.109 04.04.2013 14:43
Letzter Beitrag: GerdW
  Einstieg in LabVIEW / PXI Programmierung johannes_r 1 3.677 16.04.2009 15:31
Letzter Beitrag: Y-P
  Programmierung mit LabVIEW 7 eric collins 2 3.854 13.05.2005 13:43
Letzter Beitrag: Sarah

Gehe zu: