Programmierung Allgemein

The Blue

Level-1
Beiträge
105
Reaktionspunkte
12
Zuviel Werbung?
-> Hier kostenlos registrieren
Sind Eure Programme(Bausteine) immer Bibliothekfähig ??
Und in welchen Baustein macht ihr die E/A-Zuweisung ?? im OB1 ??
Für was braucht man denn noch Merker,
wenn ich doch Globale und InstanzDBs habe ??
 
Da scheiden sich die Geister.
Es gibt Leute, die schieben alles in DBs.
Es gibt Leute, die programmieren ohne Merker.

Wir haben Standartbausteine, die in einer Bibliothek gedammelt sind.
Bausteine für besondere einmalige Funktionen werden so geschrieben.
Ich persönlich arbeite relativ viel mit Merkern. Alle Daten (für und von dem PLS) werden in sortierten DBs übergeben.
Eingänge werden direkt verwendet und Ausgänge nur einmal in einem Programm verwendet.

Wir haben einen Standart, der sich über Jahre bewährt hat. Und ich persönlich finde ihn recht gut, wenn auch ausbaufähig; auch wenn er nicht meine Erfindung ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

dann geb ich mal meinen Kommentar dazu ab.

Also wenn ich Programme ohne Merker sehe, bekomme ich immer das kalte grauen.

Habe gerade eine Anlage, da hat der Programmierer im Programm nicht mit einem Merker oder globalen Variable im Programm gearbeitet. Alles wird über Schnittstellen übergeben und ist total verschachtelt, ich denke er weiß in 2 Monaten selber nicht mehr was er da gemacht hat.

Und weil es dann mit seinen Schnittstellen zu kompliziert wurde, hat er zum schluß direkt auf die Bits im Instanz DB zugegriffen. Aber wehe jemand ändert jetzt die DB`s, dann gibts Bruch.

Ich selber habe immer eine Mischung.

Standars FB`s und FC`s haben natürlich nur interne Variablen und eine Schnittstelle.

Spezielle FB`s haben meist Merker und Datenbits. Wobei ich hier gerne mit UDT`s arbeite.

Habe ich allerdings Anlagen mit 2 oder mehr Linien so arbeite ich auch ohne Merker und bilde eine parametrierbare Schnittstelle.

Versuche aber die Anzahl der Übergaben so gering wie möglich zu halten, und stattdessen lieber einen UDT zu übergeben.
 
Also wenn ich Programme ohne Merker sehe, bekomme ich immer das kalte grauen.

Habe gerade eine Anlage, da hat der Programmierer im Programm nicht mit einem Merker oder globalen Variable im Programm gearbeitet. Alles wird über Schnittstellen übergeben und ist total verschachtelt, ich denke er weiß in 2 Monaten selber nicht mehr was er da gemacht hat.

Ich denke das hängt davon ab was ein Programmierer evtl. vor seiner SPS-Zeit gemacht hat. Ist dieser mit S5 aufgewachsen, muss ein Programm unbedingt gespickt mit Merkern, Timern und Zählern sein. Schmiermerker gehören dort auch in S7-Programmen noch zum guten Ton.

Kommt man eher von der Hochsprachen-/ PC-Programmierung, ist man es gewohnt viel über Schnittstellen zu lösen. Globale Variablen setzt man nur ein wenn es nicht anders geht. Und Merker sind nunmal globale Variablen, dazu muss ich auch noch eine Adresse angeben was die Verwendung noch unpraktischer macht.

Bei Codesys komme ich überhaupt nicht auf die Idee auf Merker zurückzugreifen, da ich dort hauptsächlich in ST programmiere.
Bei der S7-Programmierung in AWL/FUP benutze ich die noch ab und an mal, allerdings dann eher wenn ich mal auf die schnelle was testen will.

Was macht ein SPS-Programm so besonders, dass man auf Merker angeblich nicht verzichten kann?
 
Thomas das hast Du wirklich gut geschrieben.
*ACK*

Ich denke das hängt davon ab was ein Programmierer evtl. vor seiner SPS-Zeit gemacht hat. Ist dieser mit S5 aufgewachsen, muss ein Programm unbedingt gespickt mit Merkern, Timern und Zählern sein. Schmiermerker gehören dort auch in S7-Programmen noch zum guten Ton.
Aber ich hoffe doch dass nicht jeder so festgefahren ist und sich auch an anderen Beispielen orientieren kann und erkennt, dass manches viel einfacher und komfortabler ist als der alte Stiel.

Also das Taktmerkerbyte nehme ich schon noch gerne. ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Merker haben den Vorteil, dass es codesparende zugriffe sind.

U M0.0 = 1 anweisung

U DB1.DBX0.0 = 2 anweisungen.

Arbeitsspeicher und Geschwindigkeit sind nicht mehr so das Thema wie früher. Aber vielleicht reicht so noch die kleinere Steuerung.

Kotzen könnte ich, wenn ich sehe

Auf DB1

U DBX0.0

Wie schon ein Vorredner gesagt hat, in zwei Monaten weiss keiner mehr was das soll.
 
Aber ich hoffe doch dass nicht jeder so festgefahren ist und sich auch an anderen Beispielen orientieren kann und erkennt, dass manches viel einfacher und komfortabler ist als der alte Stiel.

Also das Taktmerkerbyte nehme ich schon noch gerne. ;)
*ACK* Ich progge seit über 15 Jahren, bin also auch noch ein "alter S5'ler", aber wenn ich heute AUF DB19 und T MB200 bei einer S7 sehe, dann kotze ich jedesmal. Das wird dann gleich geändert! :ROFLMAO:

(Ich bin ein in der Instandhaltung fest eingestellter Programmierer und sehe immer zu, daß die Kollegen auch verstehen, was ich da gemacht habe...;) )

Gruß
 
Ich bin erst seit 2,5 jahren am S5/S7/WINCC/Telemechniuq am Programmiren und ich muß Approx beipflichten.

S5 ist mir in erster Linie lieber alls S7 und für unsere machinen voll ausreichend.
Meine Cods die ich in die Maschiene einbinde Prog ich immer nur mit Merkern.
UEX
SMX
UMX
=AX
Wo das nun Drin steht hängt von der Funktion ab die gecodet wurde.
Mit andern worten wir nutzen einen Baustein für den Ablauf/Duckmessung/Wegmessung/Kamaraauswertung etz. so ist immer Klar wo was im Prog sein muß.

Normal nutzen ja die meisten Step5, aber ich bevorzuge das accon PG.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
(Ich bin ein in der Instandhaltung fest eingestellter Programmierer und sehe immer zu, daß die Kollegen auch verstehen, was ich da gemacht habe...:wink: )

Geht mir genauso. Programmieren kann ja (fast) jeder. Aber so programmieren das es andere, die nicht unbedingt immer was mit der Materie zu tun haben verstehen ist die Kunst.

Robert
 
Merker haben den Vorteil, dass es codesparende zugriffe sind.

U M0.0 = 1 anweisung

U DB1.DBX0.0 = 2 anweisungen.

Arbeitsspeicher und Geschwindigkeit sind nicht mehr so das Thema wie früher. Aber vielleicht reicht so noch die kleinere Steuerung.

Kotzen könnte ich, wenn ich sehe

Auf DB1

U DBX0.0

Wie schon ein Vorredner gesagt hat, in zwei Monaten weiss keiner mehr was das soll.

Vielle haben es aber manche so gelernt oder abgeschaut.
Ganz ehrlich, wenn ich in einem Baustein nur einen DB benutze würde ich es aber genauso machen. So spart man auch Zeit beim Tippen. Wenn ich nur mit einem DB arbeite, dann öffne ich diesen im NW 1 und gut ist. So schlimm finde ich das nicht.

Ich habe mal bei Prog. gesehen, das war so übertrieben mit Indirekter Adr. geschrieben. Der Typ hat es zwei Stunden später schon nicht mehr kapiert :).

lol rofl omg


greetz

Robert
 
Schnittstelle..?!?

Wenn ich nur mit einem DB arbeite, dann öffne ich diesen im NW 1 und gut ist. So schlimm finde ich das nicht.

Ich habe mal bei Prog. gesehen, das war so übertrieben mit Indirekter Adr. geschrieben. Der Typ hat es zwei Stunden später schon nicht mehr kapiert

Hi, meiner Meinung nach ist "AUF DB nn" eine grausame Sache. Schon mal versucht sämtliche verwendungsstellen zu finden?

Indirekte Adressierung gehört für mich in eine in sich geschlossene Funktion mit Schnittstelle.

Gruß
Stefan
 
Das braucht keine "große Anlage" zu sein. Ein Baustein mit 20 Netzwerken genügt und schon ist man nur noch am rumsuchen welcher DB gemeint ist.
Dann auch noch alles in AWL da hat man ganz schnell einen AUF DBxx übersehen.

peter(R)
 
Ganz ehrlich, wenn ich in einem Baustein nur einen DB benutze würde ich es aber genauso machen. So spart man auch Zeit beim Tippen. Wenn ich nur mit einem DB arbeite, dann öffne ich diesen im NW 1 und gut ist. So schlimm finde ich das nicht.
Da kann ich absolut nicht mitgehen!
Egal ob große oder kleine Anlage.
Du kannst dem Datenwort doch kein Symbol geben.
Was sagt das schon aus? :
Code:
[COLOR=black][FONT=Verdana]L DBW 2 ???[/FONT][/COLOR]
L DBW 4 ???
+I
T DBW 0 ???
Schreibst Du dann immer einen Kommentar dahinter? Ich hoffe es doch sehr sonst kennt sich ja wieder keiner aus.
Aber wenn Du schon einen Kommentar dahinter schreibst, spart das dann Tipparbeit?
Nächste Problem:
Wenn Du Deinen Datenbaustein ein bisschen gegliedert hast in Soll und Ist Werte, schiebe jetzt doch mal eine neuen Wert irgendwo dazwischen, damit die Unterteilung auch weiterhin passt.
Das geht nach Deiner Variante nicht, oder Du musst das komplette Programm durchforsten und von Hand alle Datenwörter verschieben.

Daher nur Symbolisch und dann ergibt sich automatisch:
Code:
[COLOR=black][FONT=Verdana]L "Daten".Soll.Drehzahl_Antrieb  // kein Kommentar notwendig[/FONT][/COLOR]
-----------------------------------------------------------------------
Könnte es sein das ich mich wiederhole? :confused:

Hi, meiner Meinung nach ist "AUF DB nn" eine grausame Sache.
Nett gesagt Stefan. :D
-----------------------------------------------------------------------
Aber ich glaub Du wurdest ja schon bekehrt. ;)
 
Zurück
Oben