vierlagig
Level-1
- Beiträge
- 9.882
- Reaktionspunkte
- 2.021
-> Hier kostenlos registrieren
Wetten, dass die Meisten genau das nicht machen?:s3:
aus angst?
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: This feature may not be available in some browsers.
Wetten, dass die Meisten genau das nicht machen?:s3:
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
welche kleine FCs enthält
niemals, aber auch wirklich niemals will ich sowas in irgendeiner anlage vorfinden geschweigedenn einbauen:
außer der kunde ist böse und hat es nicht anders verdientCode:* 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
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)
open source rulez!
hpl schrieb:der baustein wird getestet und dann gesperrt. der kunde hat sich für den code nicht zu interessieren.
nein aber so wie du in scl eine scl quelle schreibst kannst du ja auch eine awl quelle schreiben. also so wie du mit scl meinst halt nur mit ner awl quelle.
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen