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

Seite 5 von 5 ErsteErste ... 345
Ergebnis 41 bis 47 von 47

Thema: Zerlegen eines DWORD in BYTE und wieder zusammensetzen

  1. #41
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Waldi1954 Beitrag anzeigen
    Hallo,

    warum einfach wenns auch kompliziert geht?
    Was meinst du zu diesem Beispiel?
    Na, geht doch.

    Ich finde diese Variante wesentlich sauberer, weil bei Änderungen (Variablen einfügen/löschen) bei den Variablen der FC/FB nicht auch im Code geändert werden muß, weil sich die lokalen Variablenadressen verschoben haben. Natürlich ist es etwas komplizierter, aber bei größeren Bausteinen spart es bei Änderungen Aufwand und Nerven.
    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

  2. #42
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.207
    Danke
    927
    Erhielt 3.293 Danke für 2.662 Beiträge

    Daumen runter

    Zitat Zitat von Waldi1954 Beitrag anzeigen
    Hallo,

    warum einfach wenns auch kompliziert geht?
    Was meinst du zu diesem Beispiel?
    Wie Ralle schon schrieb, sieht diese Variante wesentlich sauberer aus ...
    Doch was nützt das, wenn der Baustein nicht genau das tut, was er soll ?!

    Nur weil ein Baustein genau einen Test mit genau einem Testdatum besteht,
    heißt das nicht, daß der Baustein richtig funktioniert oder gar fehlerfrei ist.

    Wer will, daß L P##Byte0 oder L P##OutDW die Adresse der Übergabeparameter ergibt, der muß schon einen FB nehmen.
    Bei FC erhält man die Adresse des beim Aufruf angegebenen Aktualparameters, so daß es z.B. völlig egal ist, was für
    Aktualparameter bei Byte1, Byte2 und Byte3 angegeben sind. Es wird immer mit der Adresse des bei Byte0 angegebenen
    Aktualparameters und dessen nächste 3 Byte-Adressen gearbeitet!
    Es ist einfach nur eine reichlich umständlich formulierte Übertragung eines Doppelwords auf ein anderes Doppelword.

    Um den Baustein endgültig auf den Müll zu werfen: ruf mal den Baustein mit Aktualparametern aus einem DB auf, z.B.
    Byte0:=DB1.DBB4 ... Byte3:=DB4.DBB4
    Mach den/die DB aber vorsichtshalber größer als notig, sonst geht die CPU in STOP.

    Tut mir ja Leid für den Verriß, doch der Baustein ist wirklich unausgegorener Müll.

    [EDIT]Zusatz: mit Konstanten als Aktualparameter für die Eingangsparameter funktioniert der Baustein auch nicht.

    Harald
    Geändert von PN/DP (29.09.2010 um 17:51 Uhr) Grund: Konstanten auch nicht geeignet
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet
    Zitieren Zitieren das war wohl nix ...  

  3. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    rostiger Nagel (30.09.2010)

  4. #43
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    @PN/DP
    Du hast durchaus Recht, ich mache das auch mit FC, aber ich nutze darin grundsätzlich Temp-Var, um derartige Dinge zu erledigen. Hab nur auf den Code geschaut, der war ok. Genau aus dem Grund den du nennst, FB und FC verhalten sich da leider unterschiedlich. ...das FB/FC-Thema hatte ich doch heut schon mit Larry am Wickel ... Scheiß-Idee von Siemens da Unterschiede zu machen.
    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. #44
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.207
    Danke
    927
    Erhielt 3.293 Danke für 2.662 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    ...das FB/FC-Thema hatte ich doch heut schon mit Larry am Wickel ... Scheiß-Idee von Siemens da Unterschiede zu machen.
    Ich mache niemandem einen Vorwurf, der diese teilweise unverständlichen Unterschiede zwischen FB und FC nicht kennt.
    (ich behaupte auch nicht, daß ich alle Unterschiede kennen würde)

    Doch bevor man ein Programm stolz veröffentlicht oder gar in eine echte Anlagen-Steuerung lädt, sollte man das Programm schon
    ausgiebig simuliert und getestet haben. Besonders wenn man nicht mehr symbolisch arbeitet oder gar mit Pointern 'rummacht!
    Das ausgiebige Testen eines Programms in der Simulation und dann nochmal in der echten Umgebung ist noch wichtiger als das
    eigentliche Programmieren.

    Da ich fast wöchentlich solche und andere Fehler in Steuerprogrammen meiner Fabrik ausbügeln muß, die die Hersteller selber
    nicht finden, habe ich mittlerweile einen Blick für so "verdächtige" Programmzeilen.
    Daher wohl auch mein etwas harscher Ton im Beitrag #42. Aber trösten werde ich den neuen Waldi jetzt trotzdem nicht.
    Sein Programm ist ja ein schönes Beispiel dafür, wie wichtig RICHTIGES Testen ist.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    rostiger Nagel (30.09.2010)

  7. #45
    Registriert seit
    26.09.2010
    Beiträge
    64
    Danke
    9
    Erhielt 12 Danke für 7 Beiträge

    Standard

    Hallo PN/DP,

    selbstverstädnlcih war mir klar, dass der Zeigerverweis auf das Byte 0 für die nächsten drei Byte verbindlich ist.
    Dieser Baustein war auch nur ein Beispiel der in sich geschlossen war, da er sich nur auf das MW 10 bezog.
    Der Out DW Zeiger zeigt immer auf die richtige Adresse, nur der Inhalt richtet sich auf Bezug von Byte 0 bis Byte 3.
    Diese 3 Byte wurden nach außen geführt um den Inhalt der einzelnen 4 Bytes darzustellen.
    Normalerweise würde ich da nur eine Bool Adresse darstellen und auf Merker 10.0 verweisen, intern die Adresseninhalte umladen.
    Ich nehme an das niemand hingeht und Beispiele aus dem Forum herauszieht und 1 zu 1 auf die Maschine überträgt.

    Ein Beispiel in ein Forum zu einer Diskussion hinzuzufügen ist etwas anderes, wie ein Übertrag auf eine reale Steuerung.
    Ich bin mir sicher, dass viele dieses Beispiel auch so sehen und damit einen Denkanstoß bekommen.
    Viele Porgrammierer sind Einzelkämpfer und sind froh wenn sie andere Denkweisen und Vorgehensweisen sehen können.
    Ich denke das Forum ist auch dafür da Gedankengänge auszutauschen.

    MIr hat es Spaß gemacht mit anderen über solche Themen zu diskutieren und auch Denkanstöße zu bekommen.

    MFG Waldi
    Zitieren Zitieren Überzogene Reaktion  

  8. #46
    Registriert seit
    13.10.2007
    Beiträge
    12.039
    Danke
    2.790
    Erhielt 3.273 Danke für 2.159 Beiträge

    Standard

    Zitat Zitat von Waldi1954 Beitrag anzeigen
    ....
    Ich nehme an das niemand hingeht und Beispiele aus dem Forum herauszieht und 1 zu 1 auf die Maschine überträgt.
    ....
    aber genau das passiert, hier schauen viele Schüler oder Studierende rein
    die keine langjährige Programmier-Erfahrung besitzen, geh davon aus das
    sie so ein Beispiel 1:1 umsetzen und als richtigen Weg auffassen, bis zum
    nächsten Crash an der Maschine. Erst dann wird das Gehirn eingeschaltet
    und das ganze noch mal hinterfragt oder geprüft.

    Zitat Zitat von Waldi1954 Beitrag anzeigen
    ....
    selbstverstädnlcih war mir klar, dass der Zeigerverweis auf das Byte 0 für die nächsten drei Byte verbindlich ist.
    ....
    Wenn du genau gewußt hast, das dein Beispiel nicht Lupenrein ist, dann
    schreib es gefälligst dabei, eine kleine Anmerkung hätte da schon genügt.

    Harald (PN/DP) seine Reaktion, ist nach deiner Stellungnahme, erst recht nicht
    überzogen, wenn du genau weißt das du hier Beispiele postest die in der
    Praxis kein bestand haben.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.
    Zitieren Zitieren PN/DP hat schon recht  

  9. Folgender Benutzer sagt Danke zu rostiger Nagel für den nützlichen Beitrag:

    PN/DP (01.10.2010)

  10. #47
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Na - Na ... nun lasst mal die Wellen nicht zu hoch schlagen.

    Selbstverständlich hat Harald absolut Recht ... und selbstverständlich ist es gut darauf hinzuweisen, wie man es am Besten vernünftig macht ... aber ihr lest doch auch alle die Fragen, die so gestellt werden ...
    Obwohl manche von uns schon hunderte von Malen geschrieben haben wie es richtig wäre - viele wollen das gar nicht wissen bzw. ist es ihnen zu kompliziert sich mit dem Hintergrund zu beschäftigen. Jetzt könnteman natürlich sagen "Was haben die dann vor dem Programmiergerät zu suchen ?" ... aber das ist auch nicht der Schlüssel zum Glück weil irgendwann wir ja auch mal genauso angefangen haben. Das darf man nicht vergessen.
    Was mich am meißten stört ist diese "Wer schreibt mir mein Programm ?"-Mentalität bzw. die "Gibt es da nichts fertiges ?". Genau diese Einstellung verhindert m.E. das "sich mit dem Hintergrund auseinandersetzen", was u.A. ja auch von Harald (aus wahrscheinlich sehr leidvoller Erfahrung) gerne mal (und vollkommen zu Recht) angeprangert wird.

    OK ... das wollte ich dazu schreiben - habe fertig ...

    Gruß
    Larry

Ähnliche Themen

  1. Quersumme eines Byte,WORD,DWORD
    Von Susi im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 07.04.2011, 16:19
  2. Auslesen eines Byte aus einem DWORD (SCL)
    Von tahren im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.06.2010, 12:01
  3. DWORD to Byte
    Von hank12 im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 05.05.2009, 07:44
  4. byte in word / dword umwandeln
    Von Gerri im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.07.2008, 14:31
  5. Dword zu Byte, oder ähnlich....
    Von Anonymous im Forum PC- und Netzwerktechnik
    Antworten: 2
    Letzter Beitrag: 11.11.2005, 10:56

Lesezeichen

Berechtigungen

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