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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 33

Thema: Hilfe für ANY-Neuling

  1. #21
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von OHGN Beitrag anzeigen
    Wetten, dass die Meisten genau das nicht machen?
    aus angst?
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  2. #22
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    Hallo Mecki,

    warum willst Du eigendlich alles mit einem FC erschlagen bzw. neu erfinden.
    Für die Umwandlung von PEW -> REAL gibt es den FC 105 und
    für die Umwandlung von REAL -> PAW gibt es den FC 106.

    Du findest sie in der Standard-Bibliothek bei den TI -> S7 Converting Blocks

  3. #23
    Mecki ist offline Benutzer
    Themenstarter
    Registriert seit
    31.05.2007
    Ort
    Hagen
    Beiträge
    66
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von Gebs Beitrag anzeigen
    Hallo Mecki,

    warum willst Du eigendlich alles mit einem FC erschlagen bzw. neu erfinden.
    Für die Umwandlung von PEW -> REAL gibt es den FC 105 und
    für die Umwandlung von REAL -> PAW gibt es den FC 106.

    Du findest sie in der Standard-Bibliothek bei den TI -> S7 Converting Blocks
    Diese Bausteine habe ich auch schon gesehen. Ich bin nun gerade einmal seit einem Jahr fertig mit der Uni und nun quasi ins SPS-Programmieren reingerutscht. Nun ist es mein Ziel möglichst viel zu lernen und auch anzuwenden. Meine Idee war es nun eine Firmeninterne Bibliothek anzulegen, welche kleine FCs enthält, die dann alle hier benutzen können. Die FCs sollen kleine Programmteile abarbeiten (z.b. Analogwertverarbeitung), aber dennoch so umfangreich sein, dass man mit möglichst wenigen FCs, viele Probleme schnell lösen kann. Unser Hauptgeschäft liegt eigentlich nicht darin, Steuerungsprogramme zu schreiben, sodern eher in der Antriebstechnik.

  4. #24
    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 Mecki Beitrag anzeigen
    welche kleine FCs enthält


    dazu zähle ich übersichtlichkeit und nachvollziehbarkeit!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #25
    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

    muuuaaahahahaha ...ich wußte, das geht nicht mit rechten dingen zu
    Angehängte Grafiken Angehängte Grafiken
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. #26
    Registriert seit
    03.11.2008
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    niemals, aber auch wirklich niemals will ich sowas in irgendeiner anlage vorfinden geschweigedenn einbauen:

    Code:
    *
    FUNCTION "UN-&SCALE_ANY" : VOID
    TITLE =
    AUTHOR : '4lagig'
    VERSION : 0.1
    
    
    VAR_INPUT
      anyIn : ANY ;    
      bParameter : BYTE ;    
    END_VAR
    VAR_OUTPUT
      anyOut : ANY ;    
    END_VAR
    VAR_TEMP
      bTypIn : BYTE ;    
      bTypOut : BYTE ;    
      xScale : BOOL ;    
      xUnscale : BOOL ;    
      dTempAR1 : DWORD ;    
      dTempAR2 : DWORD ;    
      wDB1 : WORD ;    
      wDB2 : WORD ;    
      wInValue : WORD ;    
      rInValue : REAL ;    
      wOutValue : WORD ;    
      rOutValue : REAL ;    
      rScaleMax : REAL ;    
      rScaleMin : REAL ;    
      rDelta : REAL ;    
      xDB1 : BOOL ;    
      xDB2 : BOOL ;   
    END_VAR
    BEGIN
    NETWORK
    TITLE =
    // --- Register retten
          TAR1  ; 
          T     #dTempAR1; 
          TAR2  ; 
          T     #dTempAR2; 
    NETWORK
    TITLE =
    // --- Typprüfung
          L     P##anyIn; 
          LAR1  ; 
          L     P##anyOut; 
          LAR2  ; 
          L     B [AR1,P#1.0]; //Datentyp laden
          T     #bTypIn; 
          L     B [AR2,P#1.0]; 
          T     #bTypOut; 
    
          U(    ; 
          L     #bTypIn; 
          L     W#16#4; //ist WORD
          ==I   ; 
          )     ; 
          U(    ; 
          L     #bTypOut; 
          L     W#16#8; //ist REAL
          ==I   ; 
          )     ; 
          SPBN  nore; 
          =     #xScale; 
          R     #xUnscale; 
          SPA   db; 
    nore: U(    ; 
          L     #bTypIn; 
          L     W#16#8; //ist REAL
          ==I   ; 
          )     ; 
          U(    ; 
          L     #bTypOut; 
          L     W#16#4; //ist WORD
          ==I   ; 
          )     ; 
          SPBN  err; 
          =     #xUnscale; 
          R     #xScale; 
    NETWORK
    TITLE =
    // --- Datenbaustein?
    db:   L     W [AR1,P#4.0]; 
          L     0; 
          <>I   ; 
          SPBN  db2; 
          TAK   ; 
          T     #wDB1; 
          SET   ; 
          =     #xDB1; 
          SPA   db3; 
    db2:  CLR   ; 
          =     #xDB1; 
    db3:  L     W [AR2,P#4.0]; 
          L     0; 
          <>I   ; 
          SPBN  db4; 
          TAK   ; 
          T     #wDB2; 
          SET   ; 
          =     #xDB2; 
          SPA   ver; 
    db4:  CLR   ; 
          =     #xDB2; 
    NETWORK
    TITLE =
    // --- Skalierung festlegen
    ver:  L     #bParameter; 
          SPL   err1; 
          SPA   err1; 
          SPA   V0_1; 
          SPA   V1_1; 
          SPA   A0_2; 
          SPA   A4_2; 
    
    err1: SPA   err; 
    V0_1: L     0.000000e+000; //0..10V
          T     #rScaleMin; 
          L     1.000000e+001; 
          T     #rScaleMax; 
          SPA   ver1; 
    V1_1: L     -1.000000e+001; //-10..10V
          T     #rScaleMin; 
          L     1.000000e+001; 
          T     #rScaleMax; 
          SPA   ver1; //0..20mA
    A0_2: L     0.000000e+000; 
          T     #rScaleMin; 
          L     2.000000e+001; 
          T     #rScaleMax; 
          SPA   ver1; 
    A4_2: L     4.000000e+000; //4..20mA
          T     #rScaleMin; 
          L     2.000000e+001; 
          T     #rScaleMax; 
          SPA   ver1; 
    NETWORK
    TITLE =
    // --- Bearbeiten
    ver1: L     D [AR1,P#6.0]; //Speicherbereich aus ANY
          LAR1  ; //in AR1
          L     D [AR2,P#6.0]; //Speicherbereich aus ANY
          LAR2  ; //in AR2
    NETWORK
    TITLE =
    // --- SCALE
          U     #xScale; 
          SPBN  ver5; 
    
          U     #xDB1; 
          SPB   ver2; 
          L     W [AR1,P#0.0]; //auf IN-wert zugreifen
          T     #wInValue; 
          SPA   ver3; 
    ver2: AUF   DB [#wDB1]; 
          L     DBW [AR1,P#0.0]; //auf IN-wert zugreifen
          T     #wInValue; 
    ver3: L     L#32767; 
          <I    ; 
          SPBN  err; 
          L     #wInValue; 
          L     -1728; 
          >I    ; 
          SPBN  err; 
    
          L     #wInValue; 
          ITD   ; 
          DTR   ; 
          T     #rInValue; 
          L     #rScaleMax; 
          L     #rScaleMin; 
          -R    ; 
          L     #rInValue; 
          *R    ; 
          L     2.764800e+004; 
          /R    ; 
          L     #rScaleMin; 
          +R    ; 
          T     #rOutValue; 
    
          U     #xDB2; 
          SPB   ver4; 
          L     #rOutValue; 
          T     D [AR2,P#0.0]; 
          SPA   nerr; 
    ver4: AUF   DB [#wDB2]; 
          L     #rOutValue; 
          T     DBD [AR2,P#0.0]; 
          SPA   nerr; 
    NETWORK
    TITLE =
    // --- UNSCALE
    ver5: U     #xUnscale; 
          SPBN  err; 
          U     #xDB1; 
          SPB   ver6; 
          L     D [AR1,P#0.0]; //auf IN-wert zugreifen
          T     #rInValue; 
          SPA   ver7; 
    ver6: AUF   DB [#wDB1]; 
          L     DBD [AR1,P#0.0]; //auf IN-wert zugreifen
          T     #rInValue; 
    
    ver7: L     #rScaleMax; 
          L     #rScaleMin; 
          -R    ; 
          T     #rDelta; 
          L     #rInValue; //der auszugebende Wert
          L     #rScaleMin; 
          -R    ; 
          L     #rDelta; 
          /R    ; 
          L     2.764800e+004; //Skalierungsfaktor
          *R    ; 
          RND   ; 
          T     #wOutValue; 
    
          U     #xDB2; 
          SPB   ver8; 
          L     #wOutValue; 
          T     W [AR2,P#0.0]; 
          SPA   nerr; 
    ver8: AUF   DB [#wDB2]; 
          L     #wOutValue; 
          T     DBW [AR2,P#0.0]; 
          SPA   nerr; 
    NETWORK
    TITLE =
    // --- Fehlerbehandlung
    nerr: SET   ; 
          SAVE  ; 
          SPA   add; 
    err:  CLR   ; 
          SAVE  ; 
    add:  L     #dTempAR1; 
          LAR1  ; 
          L     #dTempAR2; 
          LAR2  ; 
    END_FUNCTION
    außer der kunde ist böse und hat es nicht anders verdient
    der is aber schön. schaut aus wie einer meiner bausteine. ich mache solche sachen oft. aber immer nur mit funktionen bei denen ich weis das sie nie und nimmer nachträglich geändert werden müssen. zb. wenn man ein bissl höhere mathematik braucht. auch für pufferverwaltungen und so sachen. der baustein wird getestet und dann gesperrt. der kunde hat sich für den code nicht zu interessieren. in solchen bausteinen fingert man nicht rum wenn man nicht genau weis was abgeht. wenn ein kop/fupler meint das is alles zu kompliziert dann soll er halt die finger davon lassen und weiter kop/fup 1000 netzwerk bausteine machen. ich schreib lieber smarten effektiven code. egal ob der service mann den dann versteht. macht man eh nur für bestimmte sich nicht ändernde funktionen. da muss den leuten der baustein kommentar dann reichen. jeder computerprogrammierer würde mich auslachen wenn ich sowas nicht so programmieren würde. am liebsten wärs mir ja wenn ich glech in c hacken könnt. für scl hatte ich leider noch nie die zeit den einstieg zu schaffen. das kommt aber noch. das hat schon was. klar für bit verknüpfungen isses scheiße. aber alles was datenverarbeitung angeht--> nur so!

  7. #27
    Registriert seit
    11.10.2006
    Ort
    Verden (Aller)
    Beiträge
    530
    Danke
    31
    Erhielt 58 Danke für 49 Beiträge

    Standard

    Zitat Zitat von Mecki Beitrag anzeigen
    Meine Idee war es nun eine Firmeninterne Bibliothek anzulegen, welche kleine FCs enthält, die dann alle hier benutzen können. Die FCs sollen kleine Programmteile abarbeiten (z.b. Analogwertverarbeitung)
    Wie wär's mit der OSCAT-Bibliothek?

    OK, ich weiß, da ist nicht alles drin und auch nicht alles funzt immer einwandfrei, aber da kann man ja dran mitstricken.
    Geändert von derwestermann (03.11.2008 um 18:25 Uhr) Grund: Nachtrag
    "Ein lahmer Drecksplanet ist das, ich habe nicht das geringste Mitleid" (Prostetnik Vogon Jeltz)

  8. #28
    Registriert seit
    03.11.2008
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    oh das is cool. open source für plcs das kannte ich noch nicht. werd ich mir mal genauer ansehen.
    open source rulez! nur freie codes können die menschheit weiter bringen. so wie der buchdruck die open source fürs geschriebene wort darstellte. take it to a higher level!

  9. #29
    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 hpl Beitrag anzeigen
    open source rulez!
    das ist wahrscheinlich auch der grund warum du sagst, ich zitiere:

    Zitat Zitat von hpl
    der baustein wird getestet und dann gesperrt. der kunde hat sich für den code nicht zu interessieren.
    ... komm mal klar!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #30
    Registriert seit
    03.11.2008
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    nein das siehst du falsch. der grund warum ich den baustein sperre ist der damit der service mitarbeiter der firma nicht in bausteinen rumfingert in denen er sich nicht auskennt. jeder der das know how hat meinen baustein zu verstehen weis auch wie man ihn entsperrt. es gibt halt leider viel zu viele möchtegern programmierer in diesem business. und die schütze ich dadurch vor sich selber. wenn ich die sourcen nicht hergeben ollte würde ich eine awl quelle machen und dann dem kunden nur die compilierten programmteile geben. ich weis schon was und warum ich etwas mache.

Ähnliche Themen

  1. Neuling braucht Hilfe bei RS 232 zu Mpi
    Von BlenderNRW im Forum Stammtisch
    Antworten: 6
    Letzter Beitrag: 16.10.2011, 21:55
  2. Hilfe für ein Neuling
    Von DemoniacAries im Forum PC- und Netzwerktechnik
    Antworten: 0
    Letzter Beitrag: 02.06.2010, 00:17
  3. SPS-Neuling braucht Hilfe
    Von SPS-Neuling1 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 19.02.2010, 16:18
  4. hilfe für vbs neuling
    Von el_bob im Forum HMI
    Antworten: 9
    Letzter Beitrag: 28.08.2009, 12:33
  5. Hilfe für SPS Neuling
    Von mustermann im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 07.05.2008, 22:04

Lesezeichen

Berechtigungen

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