Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: Frage zur Programmierung

  1. #11
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.811
    Danke
    1.231
    Erhielt 1.101 Danke für 527 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    zur feinen englischen art gehört es nicht auf instanzdatenbausteien direkt zuzugreifen (egal ob lesend oder schreibend).

    ich muss aber zugeben das ich das unter bestimmten bdingugnen auch mache, aber nicht so!


    auf die normalen schnittstellenvariablen eines FB (IN;OUT;INOUT) sollte man nun wirklich nicht direkt zugreifen.

    aber auch mache ich innerhalb von standart fbs wenn ich zb einen SFB4 (IEC SE Timer aufrufe), da kann dann schon mal stehen:

    u bed-1
    u bed-2
    u bed-3
    = Instanz_SFB4.IN

    aber gleich in der nächsten zeile kommt der aufruf:

    call Instanz_SFB4...



    ansosnten habe ich zb häufig für jede betriebsart einen eigenen FB, jede betreiebsart muss je nach anlage sehr viele aktoren ansteuern. für jeden aktor ein bit auf die schnitstelle wäre unpraktikabel. deshalb lege ich in jeden bestiebsart fb eine struktur zb mit dem namen "Ausgang"
    jeder beteisbartenfb hat in dieser structur den selben udt mit den symbolischen name der ganzen aktoren.

    im programm greife ich auf diese instanzdatenbausteine dann auch von extern zu, das sieht zb so aus:

    O IDB_Automatik.Ausgang.Motor_1
    O IDB_Handbetrieb.Ausgang.Motor_1
    O IDB_Einrichten.Ausgang.Motor_1
    = aMotor_1

    ich finde das auch nicht perfekt, und es gibt programmierer die das schöner lösen. aber ich denke mit einer solchen struktur ist das auch verständlich, nachvollziehbar und vor allem schnell und praktikabel...

    so und jetzt steinigt mich!
    der böse markus der hier im forum jeden schlampigen programmierer zur schnecke macht hat zugegeben das er auch manchmal direkt auf idbs zugreift...
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  2. #12
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard

    Na ja, ist wohl auch eine Sache der Philosophie. Prinizipiell ist es ja nun kein Unterschied, ob ich einen Eingang am FB von außen beschalte, oder ihn direkt im Instanz-DB schreibe. Dann betrachte ich den Instanz-DB halt als Schnittstelle.
    Aber für die meisten ist es wohl übersichtlicher, beim Debuggen von "außen" auf den FB zu sehen und die E/A's im Blick zu haben, als nur den "nackten" Instanz-DB.

  3. #13
    Registriert seit
    23.04.2008
    Beiträge
    75
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Grubba Beitrag anzeigen
    Wenn man die Werte wirklich "direkt" in die Instanz DBs schreibt, sollte man das meiner Meinung nach aber durch die Bank weg durchziehen, und nicht nur einzelne Bits oder Werte.
    Dann hat ein FB halt keine E/A's als sichtbare Schnittstelle nach außen mehr, dann weiß man aber sofort, wo man dran ist und keiner muss mehr nachsehen, welcher E/A denn nun direkt im Instanz-DB geschrieben/gelesen wird und welcher nicht.


    So seh ich das auch. Gemischte Programmierung halte ich für unsaubere und unübersichtliche Programmierung, unter anderem weil es falsche Erwartungen weckt. Ein Programm sollte leicht erkennbare Prinzipien haben, die dann auch eingehalten werden. Welche Prinzipien sinnvoll sind, hängt aber auch von der Art der Anwendung und vom Gesamtkonzept ab (Größe des Programms, Menge und Art der Daten, Quelltext oder Direktbearbeitung der Bausteine usw). Bei den Datenmengen, mit denen ich zu tun habe würde eine Datenübergabe beim Aufruf zu einem völlig überladenem OB1 mit endlos langen und unüberschaubaren Parameterlisten führen. Außerdem sind bei mir fast alle DBs Instanz-DBs und wenn die Daten von dem einen in andere sollen, bräuchte es ohne "Fremdzugriff" sinnlose Umwege über Merker oder zusätzliche DBs.
    Nieder mit der Schwerkraft. Freien Fall für freie Bürger !

  4. #14
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    @Grubba und Machtnix

    Eigentlich wollte ich mich zurückhalten, aber das kann man einfach nicht unkommentiert lassen. Da habe sich ja endlich zwei getroffen. Ihr könnt es so oft wiederholen, wie ihr wollt, Des Reinschmieren in IDB von einer anderen Instanz, als dem eigenem FB, ist absolutes NO-GO, lesen aus einem IDB kann man durchaus mal machen, aber alleine die Tatsache, daß jede Schnittstellenänderung im FB zum absoluten Datengau führen kann, sollte doch auch erwähnt werden. Natürlich passiert das auch, wenn ein Global DB geändert wird, aber das muß man ja bewußt machen und anschließend sein Programm anpassen. Es gibt immer spezielle Fälle, die auch "Sondermaßnahmen" erforderen, sei es aus Zeitgründen, oder der Effektivität wegen (siehe Markus), aber das sollte doch selten und entsprechend dokumentiert sein. Ich glaube auch sicher nicht, daß meinen Programme besser als eure oder die anderer Programmierer sind, dazu gefällt mir daran selbst immer noch zu wenig, aber wenigstens die schlimmsten bekannten Fehler sollte man vermeiden.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. Folgende 3 Benutzer sagen Danke zu Ralle für den nützlichen Beitrag:

    Markus (26.05.2008),MW (26.05.2008),zwerg77 (26.05.2008)

  6. #15
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard

    Man stelle sich eine Anlage mit 50 gleichen Betriebsmitteln vor. Für jedes BM gibt es einen FB, der jeweils zu instatieren ist. Jeder Fb benötigt 20 EAs. Das würde 1000 EAs ergeben. Habe ich nur Bits, dann gehts noch. Wäre jeder EA ein DW, würde ich schon bei DW4000 liegen. (Kann das noch eine 300er ?)
    Verwende ich zusätzliche DBs, benötige ich zusätzlich zu den Instanz-DBs nochmal die gleiche Datenmenge. Und muß doch wieder sämtliche Werte erst in den Global-DB schreiben und diese dann an meine FB-EAs klemmen. Usw. usf.

    Ich habe dieses Vorgehen bisher selber noch nicht verwendet, einigt man sich aber mit den anderen Programmierern auf diese Konvention sollte es keine Probleme geben.

    Was ich ja nun gesagt habe, ist das das mischen von teilweise schreiben in Instanz-Dbs und teilweise anlegen an die EAs doch unterlassen werden sollte weil dann keiner mehr durchblickt.

    Hätte Siemens bei Einführung von Step7 das Vorgehen des direkten Beschreibens der Instanz-Db vorgegeben, hätte ja auch niemand aufgeschrien.

    Nochmal: Ich habs noch nicht so gemacht, aber wenns denn konsequent durchgezogen wird ist es ein gangbarer Weg.

  7. #16
    Registriert seit
    27.11.2005
    Ort
    im Osten
    Beiträge
    1.183
    Danke
    141
    Erhielt 271 Danke für 248 Beiträge

    Standard

    Zitat Zitat von Grubba Beitrag anzeigen
    Nochmal: Ich habs noch nicht so gemacht.
    Ich hoffe das bleibt auch so
    Geändert von MW (26.05.2008 um 11:39 Uhr) Grund: ich lass es lieber, bevor ich mich wieder aufrege :-)

  8. #17
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard

    Ich hoffe das bleibt auch so
    .... ruhig, Brauner, ruhig....

    Also wenn schon, dann würde ich in meinem FB von vornherein für alle E's, A's und EA's eine Struktur definieren. Nach außen habe ich dann max. 3 Variablen anliegen und alle sind glücklich.

    Besser so?

  9. #18
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Grubba Beitrag anzeigen
    Jeder Fb benötigt 20 EAs.
    durchaus möglich, ja, aber sollte da vielleicht noch mal über die struktur nachgedacht werden? ich denke, man kann da noch einiges rausholen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #19
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard

    @vl

    durchaus möglich, ja, aber sollte da vielleicht noch mal über die struktur nachgedacht werden? ich denke, man kann da noch einiges rausholen
    Ist ja auch meine Meinung.

    Sieht dann halt so aus:

    MyFB

    In - Motn_In
    Out - Motn_Out
    InOut - Motn_InOut

    Die Strukturen werden dann halt weiter aufgedröselt:

    MotnIn.Start
    MotnIn.Geschw
    ...
    ...
    MotnOut.Laeuft

    usw.

  11. #20
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.811
    Danke
    1.231
    Erhielt 1.101 Danke für 527 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Grubba Beitrag anzeigen
    @vl



    Ist ja auch meine Meinung.

    Sieht dann halt so aus:

    MyFB

    In - Motn_In
    Out - Motn_Out
    InOut - Motn_InOut

    Die Strukturen werden dann halt weiter aufgedröselt:

    MotnIn.Start
    MotnIn.Geschw
    ...
    ...
    MotnOut.Laeuft

    usw.
    ich glaube dass ist dann richtig pervers...
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

Ähnliche Themen

  1. Antworten: 15
    Letzter Beitrag: 09.04.2009, 20:57
  2. Grundsätzliche Frage zur Programmierung
    Von settelma im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 18.06.2008, 17:15
  3. Frage zu Step5 RS-Glied Programmierung
    Von Kalli2007 im Forum Simatic
    Antworten: 25
    Letzter Beitrag: 18.12.2007, 12:20
  4. Antworten: 4
    Letzter Beitrag: 18.05.2005, 18:49
  5. Frage zur programmierung Mitsubishi FX2NC
    Von AlexTDi im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 17.05.2005, 15:09

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •