Ausgänge über Hilsmerker setzen

Zuviel Werbung?
-> Hier kostenlos registrieren
Es ist m.E. definitiv S5-Denke, die da mitspielt.

In einem 61131-3 Kontext ist das verwirrende Zeitverschwendung. Ich erinere mich nur zu gut an einen ziemlich jungen Programmierer, der nicht dazu in der Lage war, bei einer S7-300 eben schnell 2 Ausgänge umzuverdrahten. Er müsse sein komplettes Programm ändern!? Offenbar programmierte er nicht einmal symbolisch.

Ich ändere die Adresse in der globalen Variablentabelle und gut ist. Der Download ist dabei das langsamste.
 
Es ist m.E. definitiv S5-Denke, die da mitspielt.

In einem 61131-3 Kontext ist das verwirrende Zeitverschwendung. Ich erinere mich nur zu gut an einen ziemlich jungen Programmierer, der nicht dazu in der Lage war, bei einer S7-300 eben schnell 2 Ausgänge umzuverdrahten. Er müsse sein komplettes Programm ändern!? Offenbar programmierte er nicht einmal symbolisch.

Ich ändere die Adresse in der globalen Variablentabelle und gut ist. Der Download ist dabei das langsamste.

Also wenn man das bei Siemens macht, ist das langsamste dabei die Konsistenzprüfung ... der Download geht dann wieder ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Rangierungen sind nicht ein Relikt aus der S5 Zeit.
Es ist doch einfacher und klarer wenn ich eine Bibliothek habe, die völlig unabhängig von der Hardware funktioniert.
Zum Anpassen muss lediglich der Rangierbaustein angefasst werden und es funktioniert.
Die Ausgänge sollen einen Bezug zum Hardwareplan haben und müssen an die Konstruktion angepasst werden.
Diese Anpassung kommt bei uns von der Harwarekonstuktion, damit haben wir nichts zu tun.
Die Argumente mit symbolischer Programmierung sind doch nicht stichhaltig.
Bei jeder Änderung Konzistensprüfen und was ist wenn ein Sybol geändert wurde? Dann muss manuell nachgearbeitet werden.

Jeder nach seiner Vorliebe, doch gerade wenn mehrere Entwickler an Projekten arbeiten ist die Lösung mit rangieren nach unserer Erfahrung besser geeignet.


bike
 
Die Rangierungen sind nicht ein Relikt aus der S5 Zeit.
Es ist doch einfacher und klarer wenn ich eine Bibliothek habe, die völlig unabhängig von der Hardware funktioniert.
Zum Anpassen muss lediglich der Rangierbaustein angefasst werden und es funktioniert.
Die Ausgänge sollen einen Bezug zum Hardwareplan haben und müssen an die Konstruktion angepasst werden.
Diese Anpassung kommt bei uns von der Harwarekonstuktion, damit haben wir nichts zu tun.
Die Argumente mit symbolischer Programmierung sind doch nicht stichhaltig.
Bei jeder Änderung Konzistensprüfen und was ist wenn ein Sybol geändert wurde? Dann muss manuell nachgearbeitet werden.

Jeder nach seiner Vorliebe, doch gerade wenn mehrere Entwickler an Projekten arbeiten ist die Lösung mit rangieren nach unserer Erfahrung besser geeignet.


bike
0,00% ACK (deshalb Vollzitat)


darf ich aus
...
Die Argumente mit symbolischer Programmierung sind doch nicht stichhaltig.
Bei jeder Änderung Konzistensprüfen und was ist wenn ein Sybol geändert wurde? Dann muss manuell nachgearbeitet werden.
...
folgern, dass Du nicht mit Operandenvorrang Symbol programmierst?

dann könnte ich
...
Jeder nach seiner Vorliebe, ...
zu 100% unterstreichen ...
 
Diese Ansichten kenn ich auch von meinen Kollegen, doch wenn jemand einige Zeit mit unserem System arbeit findet meist ein Umdenken statt.

Der Bezug zum symbolischen Programmieren haben wir immer, in den Programmmodulen.
Doch wie schon geschrieben, ist die Entwicklung von Funktionen unabhänngig von der Hardware.
Die Ein- und Ausgänge haben den direkten Bezug zur Ortsbezeichnung.
Die Hardwarekonstruktion erzeugt die Hardwarekonfiguration und den Rangierbaustein.
Dann wird noch die Logik dazugeladen und die Maschine ist fertig.

Wegen der Art zu programmiern kann ich sagen: wir programmieren zum Grossteil mit Quellen, die dann auch von einem Versionsverwaltungssystem verwaltet werden.
Klar gibt es auch Sytrem für die Verwaltung von Siemensprojekten, doch die sind, wie auch hier schon beschrieben, nicht so das gelbe vom Ei. Ausserdem gibt es noch andere Systeme als Siemens ;-)

Zumindest können wir uns darauf einigen, dass jeder Entwickler seine Vorlieben hat und die auch pflegen soll.

"Entwickler sind Künstler und welcher Künstler lässt sich schon gern in seine Kunst dreinreden?"

bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
...
Der Bezug zum symbolischen Programmieren haben wir immer, in den Programmmodulen.
...
Diesen Satz verstehe ich nicht.

...
Doch wie schon geschrieben, ist die Entwicklung von Funktionen unabhänngig von der Hardware.
...
Entsprechend vergebe ich in meiner (vorläufigen) Zuweisungsliste (Symboltabelle) für die notwendigen Operanden einfach eine Platzhalteradresse. Oder besser: ich schreibe einen vollständig gekapselten FB, den ich nur noch an seiner Schnittstelle zu beschalten brauch (wobei ich hier von Forumskollegen auch schon gehört habe, dass das nicht immer möglich sein soll).

...
Die Ein- und Ausgänge haben den direkten Bezug zur Ortsbezeichnung.
...
Derartige Information verbergen wir in den Symbolkommentaren.

...
Die Hardwarekonstruktion erzeugt die Hardwarekonfiguration und den Rangierbaustein.
Dann wird noch die Logik dazugeladen und die Maschine ist fertig.
...
Bei uns wird entsprechend die ZuLi durch die HW-Konstruktion erstellt und die zuvor verwendeten Dummy-Adressen nun durch die wirklich vorhandenen ersetzt. Die Logik erfährt dann eine Konsistenzprüfung und fertig. Den Rangierbaustein braucht es dann nicht (@Larry: ich hatte mal gespeichert, dass Du auch Rangierer wärst - aber ich lese ein Danke unter meinem obigen Beitrag?).

Diese Ansichten kenn ich auch von meinen Kollegen, doch wenn jemand einige Zeit mit unserem System arbeit findet meist ein Umdenken statt.
...
den kann ich mir aber jetzt leider wirklich nicht verkneifen: das nenne ich Betriebsblindheit;)
 
Ich komme jetzt mit mehreren Anmerkungen von "bike" nicht klar!

1. Was ist Hardwareunabhängig
- Siemens, Allen Bradley, sonstige
- Ventil mit oder ohne Rückmeldung
- Motor mit FU oder Klappertechnik

2. Sprichst du jetzt von Serienmaschinen oder Sondermaschinen?

3. Ich glaube du musst bei deinem "System" noch ein wenig weiter ausholen,
im Moment verstehe ich nur eine Mischung aus Bahnhof und Unverständnis.

Mfg
Manuel
 
Ich komme jetzt mit mehreren Anmerkungen von "bike" nicht klar!

1. Was ist Hardwareunabhängig

Da ist ganz einfach, mich als Entwickler interessiert nicht wie die Hardware aussieht, es können mehrere Maschinen sein, die die selbe Funktionen haben, bei denen die Schaltschränke verschieden aufgebaut sind.

- Ventil mit oder ohne Rückmeldung
- Motor mit FU oder Klappertechnik
Diese Funktionen sind im Programm programmiert, haben aber zu der Hardware, sprich Schaltschrank/Maschine, keinen direkten Bezug. Es werden die Koppelmeker gelesen bzw geschrieben und die Rangierung stellt die Verbindung zu der Maschine her.

2. Sprichst du jetzt von Serienmaschinen oder Sondermaschinen?

Es sind Serien-Sondermaschinen ;-)
Nein im Ernst die Grundlage ist ein Serienprodukt, jedoch ist nach meiner Erfahrung nahezu jede grössere Anlage sonder, da der Kunde, wenn er Serie von der Stange will,bestimmt nicht bei einem deutschen Hersteller ordert, sondern sich einen billigeren Lieferanten aussucht. Unsere bzw meine Kunden sind Automobilisten die komplette Fertigungsstrassen bestellen.

3. Ich glaube du musst bei deinem "System" noch ein wenig weiter ausholen,
Also es ist nicht "mein" System, sondern das System wie wir es in ca 10 Jahren erdacht und umgesetzt haben.

im Moment verstehe ich nur eine Mischung aus Bahnhof und Unverständnis.

Mfg
Manuel
Ich hoffe ich habe jetzt die Fragen erklären können.

Ansich wollte ich nur zeigen, dass Koppelmerker sehr wohl einen Grund und eine Daseinsberechtigung haben und es verschiedene Arten gibt zu Programmieren.

bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
...
Also es ist nicht "mein" System, sondern das System wie wir es in ca 10 Jahren erdacht und umgesetzt haben.
...
entschuldige bitte, aber das Konzept der Koppelmerker und Rangierbausteine ist uralt. Deiner Aussage nach habt Ihr also zehn Jahre für Konzeption und Umsetzung benötigt? Ich unterstelle nun, dass VW (oder wer auch immer) Euch vor zehn Jahren die Rangiererei aufs Auge gedrückt hat und Ihr in den letzten zehn Jahren damit leben gelernt habt.
 
entschuldige bitte, aber das Konzept der Koppelmerker und Rangierbausteine ist uralt. Deiner Aussage nach habt Ihr also zehn Jahre für Konzeption und Umsetzung benötigt? Ich unterstelle nun, dass VW (oder wer auch immer) Euch vor zehn Jahren die Rangiererei aufs Auge gedrückt hat und Ihr in den letzten zehn Jahren damit leben gelernt habt.
Also so wenn du es so verstehst, okay.
Doch das ist so bestimmt nicht so. Eine Konzern, wie der in dem ich arbeite, ist vielleicht langsam, aber so langsam bestimmt nicht ;-)

Die Koppelmerker sind nicht in 10 Jahren entstanden, sondern das Gesamtkonzept wie programmiert werden kann, dass Programme und Programmteile wieder verwertbar sind. Dazu gehört eben auch die Rangierung von EA.
Es ist ein leichtes Programmfehler in Programmen nachträglich zu beheben, selbst wenn die Programme 5 oder mehr Jahre alt sind. Wir können unsere neuen Programmteile problemlos in "alte" Programme einfügen und sind daher sehr flexibel.

bike
 
... Dazu gehört eben auch die Rangierung von EA.
Es ist ein leichtes Programmfehler in Programmen nachträglich zu beheben, selbst wenn die Programme 5 oder mehr Jahre alt sind. Wir können unsere neuen Programmteile problemlos in "alte" Programme einfügen und sind daher sehr flexibel.

bike
zunächst muss ich zugeben, dass die Programme, die ich schreibe, insofern nicht vergleichbar sind, da der Code normalerweise auf eine 64kB MMC passt. Die Rechenleistung einer 300er ist dafür i.d.R. ausreichend.

Aber auch bei mir ist der Code modular aufgebaut - es könnten mehrere Personen die Softwaremodule der Maschine schreiben (z.B. Kartonierer: Einlegevorrichtung in Becherkette ist ein eigener FB, oder auch Leimung oder auch Geschwindigkeitssteuerung. Diese Module haben nur kleine Schnittstellen nach aussen und werden dementsprechend dann voll gekapselt erstellt).

Programmfehler nach IBN habe ich normalerweise nicht - wenn dann handelt es sich um Schwächen, die später bei Produktionsarten zu Tage treten, die auf irgend eine Art und Weise die ursprünglich angenommenen Dimensionen über- oder unterschreiten. Diesen Mangel dann zu beheben bedarf es keiner EA-Rangierei.

Neue Programmteile in alte Programme zusätzlich mit aufzunehmen bedarf (bei mir) auch keiner EA-Rangiererei - wenn man die Zuweisung an der Schnittstelle des FB nicht als Rangieren versteht (insofern rangiere ich doch - weil, was sonst ist das Beschalten eines FB?).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Programmfehler nach IBN habe ich normalerweise nicht -

Schön für dich.
Wir bekommen es jetzt noch mit Fehlern zu tun, die in Maschinen sind, die damals noch mit S7 Ver 3.x entwickelt wurden.
Daher ist auch die Archivierung als Quellen sinnvoll.
Ich sehe inzwischen, dass wir von völlig verschiedenen Ausgangspunkten die Problematik sehen.
Programme zu schreiben, die auf 64k passen, wäre schön. ;-)

bike
 
...
Ich sehe inzwischen, dass wir von völlig verschiedenen Ausgangspunkten die Problematik sehen.
Programme zu schreiben, die auf 64k passen, wäre schön. ;-)

bike
ging mir ähnlich, als Du geschrieben hast, dass Du es mit ganzen Automobilfertigungslinien zu tun hast. Ich hab nur mit Convenience-Food TK-Fertigungslinien zu tun (und entfernt auch mit einer Druckerei), die dort eingesetzten Automaten sind weitgehend autarke Maschinen, deren Programm idR eben auf die genannten 64kB passt...

Insofern: in Deiner Umgebung haben die Koppelmerker wohl ihre Daseinsberechtigung - und ich komme ohne sie aus;):D

LG vom manchmal bösen, kleinen grünen Frosch
 
man soll ja nicht von einem Wildschwein auf die ganze Rotte schliessen, aber das kam heute raus, als das Telefon mit den Worten klingelte: "Meine Visu zeigt keinen Fehler an, der Elektriker sagt, da müsse der A16.1 kommen, schau doch mal geschwind ins Programm, warum der nicht kommt ..."

Code:
OB 1                                        DBADR=0000                 LAE=8
                            Q u e r v e r w e i s e
+------------------------------------------------------------------------------+
¦ A   16.1  ¦                         ¦                                        ¦
+-----------+-------------------------+----------------------------------------¦
¦ AW  16    ¦                         ¦                                        ¦
+------------------------------------------------------------------------------¦
¦FB143:1/T AW                                                                ¦¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦¦
+------------------------------------------------------------------------------+
Sprung zu:FB143
F         F         F         F         F         F         F         F  Hilfe
1         2 Sprung  3         4 Einzeln 5OhneDopp.6         7         8 Zurueck
:roll:
Code:
Netzwerk 1
Name :ECRIT A
 
     :U   M    2.5
     :R   M  144.4
     :U   M    1.3
     :UN  M  150.6
     :U   M  144.7
     :R   M  144.7
     :UN  M    3.1
     :O   M    3.2
     :SPB =M001
     :U   M  142.3
     :=   M  142.4
M001 :L   MB   4
     :L   KF +0
     :><F
[B][COLOR=red]    :SPB =M002[/COLOR][/B]
[B][COLOR=red]    :L   MW 142[/COLOR][/B]
[B][COLOR=red]    :T   AW  16[/COLOR][/B]
     :L   MB 144
     :T   AB  36
     :U   M  118.1
     :=   M  174.7
     :UN  M   90.7
     :SPB =M002
     :L   MB 145
     :T   AB  37
     :UN  M   46.0
     :SPB =M002
     :L   MB 148
     :T   AB  38
M002 :***
:rolleyes:
Code:
OB 1                                        DBADR=0000                 LAE=8
                            Q u e r v e r w e i s e
+------------------------------------------------------------------------------+
¦ M  142.1  ¦                         ¦                                        ¦
+-----------+-------------------------+----------------------------------------¦
¦ MW 142    ¦                         ¦                                        ¦
+------------------------------------------------------------------------------¦
¦FB 12:1/T MW       FB100:1/S          FB100:14/S         FB100:18/R         ¦¦
¦FB104:3/R          FB104:4/R          FB104:10/S         FB137:2/L MW       ¦ ¦
¦FB137:2/L MW       FB138:2/L MW       FB138:2/L MW       FB139:2/L MW       ¦ ¦
¦FB139:2/L MW       FB142:3/T MW       FB143:1/L MW       FB143:2/L MW       ¦ ¦
¦FB143:3/L MW                                                                ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦ ¦
¦                                                                            ¦¦
+------------------------------------------------------------------------------+
Sprung zu:FB 12
F         F         F         F         F         F         F         F  Hilfe
1         2 Sprung  3         4 Einzeln 5OhneDopp.6         7         8 Zurueck
:sb7::sb7::sb7:

und glaubt ja nicht, dass FB100 oder FB104 zyklisch abgearbeitet werden, aber in FB142 wird ein Datenwort auf das MW142 kopiert:sw22:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da hast du? oder der Entwickler etwas falsch gemacht.


Deine Erfahrung widerspricht nicht unseren Vorgabe.
Denn wir haben einen Rangierbaustein, der die E/A auf Merker rangiert.
Ohne transferieren von Worten auf Ausgänge oder indirekte Adressierung.

Eines ist klar:
Gegen schlechte Programmierung hilft nichts.

bike
 
da piekst man EINE Sau, und an anderer Stelle in der Rotte grunzt es *ROFL*

nein, ernsthaft: ich wollte lediglich aufzeigen, welch bizarre Blüten manche "Systeme" treiben. Der Programmierer, der für den gezeigten Code verantwortlich zeichnet, wird diesen selbstverständlich auch gegen Kritik verteidigen wollen. Und der Codeschnipsel ist nicht von einer Garagenfirma, sondern der Maschinenlieferant ist ein namhafter Druckmaschinenhersteller. Aber als Servicemensch komm ich an die Maschine, hab auf meiner Kappe stehen, dass ich S5/7 kann, klapp das PG auf und muss sofort erklären, dass ich nicht innerhalb einer halben Stunde die Frage beantworten kann, warum der Ausgang nicht kommt (zudem existierte nicht mal eine Programmdokumentation - der Anlagenstillstand trat ein, als ein Elektriker zuvor die Litiumbatterie wechselte "und das Programm aus dem EPROM neu geladen" hatte).
 
Ich wurde aber nicht getroffen :)

Wenn dieses Programm von einer Firma aus Augsburg ist und die Vorsilbe der Maschinen Roto oder Octo ist, dann ist daran auch ein Firma aus Nürnberg, die auch Antriebe herstellt, schuld.
Ich kenne diese Probleme auch und finde es einfach ausgedrückt bescheiden.
Die Argumentation die dann kommt ist: für verschiedene Druckwerke die selbe Software und daher diese Art der Programmierung.

bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nachdem was ich mal gelernt habe und bei unseren Steuerungen auch gängige Praxis ist, schreibt man nie direkt auf die Ausgänge und liest auch (fast) nie direkt die Eingänge, sondern liest immer nur das PAE und schreibt dann auf das PAA. Ein direkter Zugrif auf die E/A ist während des Zyklus auch möglich, macht aber meines Wissens keiner bei den Ausgängen, ausser seine SPS ist so lahm, dass ... aber dann hat dieser Jemand noch ganz andere Probleme. Bei den Eingängen sieht das schon etwas anders aus, bspw. Zählereingänge, welche dann aber auch nur mit einer periodischen Abarbeitung des Hauptprogramms genutzt werden sollten.

Aber ich denke Mores ging es wohl um die Frage wie sinnvoll das hier schon beschriebene anwendungsunabhängige zuweisen von Ausgängen als Merker ist.
Ich wiederhole damit jetzt hier mal die Aussage von 80% meiner Vorredner:
Es werden immer Merker für die Eingänge und die Ausgänge genutzt, um unabhängig von der Hardware den Code möglichst unverändert zu lassen.

Nichts ist schlimmer als wenn sich Adressen von Baugruppen ändern und das ganze Programm durchgepflügt werden muss. Da setzt man eben den Merker in der Deklarationsseite neu und spart eine menge Arbeit, auch was die QS angeht.
Vorteil eines Bausteins für das routen der Merker auf die Ausgänge ist auch, dass man dann dort sehr elegant einen softwareseitigen Lampentest einbinden kann.

Grüße,
M
 
ist es den "80%" Vorrednern schon mal passiert, dass es heisst: hier haben wir eine Maschine mit einer 312er. Nun brauchen wir fünf Maschinen. Jetzt bauen wir mal nicht fünf Steuerungsschränke, sondern einen mit einer 317er statt der fünf 312er ... ? Nun, Ihr 80%, nun rangiert mal schön in eurem Code. Ich schreib mal eben nur die Aufrufschnittstellen der FB neu ...

@bike: es hat sich inzwischen herausgestellt, dass die betreffende Steuerung zwar im Lieferumfang, aber ein Zukaufteil war. Inwieweit der Zulieferer Vorgaben hatte - k.A. An anderer Baustelle hab ich auch ein Programm vom Hersteller - da ist definitiv bei der Dokumentation geschlammpt worden (Operanden ohne Symbol, verschobene Netzwerkkommentare ...). Aber das alles inzwischen uralt.
 
Aufrufschnittstellen der FBs neu schreiben? Was haben die FB E/A mit dem HW-Tausch zu tun?

Für den Fall des Austausches von mehreren Steuerungen und andersrum sind wohl immer in gewissem Maße Sonderlösungen zu schaffen.
 
Zurück
Oben