TIA SCL Zähler?

Zuviel Werbung?
-> Hier kostenlos registrieren
Und ja das wäre eine aufgabe für einen FB (als Multiinstanz also nicht mit eigenem DB), denn Flankenmerker an der Schnittstelle sind bäh.
Wozu eigentlich FB? Sind FB nicht dafür da, wenn alle FC-Nummern benutzt sind??? ;)
Geht doch auch prima mit FC - habe ich jedenfalls schon öfter so gesehen: :evil:
Code:
FUNCTION FCxxx : VOID

VAR_INPUT
  Eingang : BOOL ;
END_VAR
VAR_IN_OUT
  Data : DWORD ;
END_VAR
VAR_TEMP
  InstanzVar1 : BOOL ;
  InstanzVar2 : BOOL ;
  InstanzFlankenmerker1 : BOOL ;
  InstanzFlankenmerker2 : BOOL ;
  //...
  InstanzCounter1 : INT ;
END_VAR
BEGIN
NETWORK

      L     #Data;
      T     LD     0;
//----------------------------------

      U     #Eingang;
      FP    #InstanzFlankenmerker1;
      SPBN  M001;
      L     #InstanzCounter1;
      +     1;
      T     #InstanzCounter1;
M001: SET   ;

//----------------------------------
      L     LD     0;
      T     #Data;

END_FUNCTION
Der größte Vorteil ist, daß man außerhalb des FC die Variablennamen nicht sieht, ein absichtlicher Zugriff auf die lokalen FC-"Instanzdaten" von außen deshalb äußerst unwahrscheinlich ist. Jedenfalls viel besser vor DAU-Programmierern geschützt als in einer FB-Instanz.

;) Bitte nicht nachmachen! Deshalb zeige ich auch nicht, wie das in SCL ginge ...

Harald
 
Wozu eigentlich FB? Sind FB nicht dafür da, wenn alle FC-Nummern benutzt sind??? ;)
Geht doch auch prima mit FC - habe ich jedenfalls schon öfter so gesehen: :evil:

Das ist schöner klassischer S5-Stil!
Bei der S5 treten dann anstelle der Temp-Variablen die guten alten Schmiermerker ohne Symbol. Eine Sisyphosaufgabe bei so einem Programmierstil einen Fehler nachzuverfolgen.
 
Zusatzfrage wenn wir schon dabei sind: Bei dieser Programmierweise muss man da nicht höllisch aufpassen das man den Lokaldatenstack überläd? Gibts da ne Warnung wenn man über die 256 Byte einer 300er kommt?
 
Zurück
Oben