Zeiten in einem Funktionsbaustein

RobRoy94

Level-1
Beiträge
40
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Morgen!
Eine Frage zu Funktionsbausteinen:
Ich möchte in einem FC einen Stern Dreieck Anlauf programmieren und diesen später in mehreren anderen FC's als Makro verwenden.
Darin ist ja eine Zeitfunktion vorhanden (SE).
Ist es möglich diesen, wie auch die normalen Ein- und Ausgänge, indirekt zu adressieren?
Oder kann ich ihn z.B. "T1" nennen und trotzdem in mehreren FC's nutzen?
Gruß
Roland
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gut probiere ich mal aus.
Der Eingang wird mir dann ja auch später am Makro angezeigt.
Womit belege ich den denn dann? Schreibe ich dann in der ersten Anwendung dieses Makros "T1" an den Eingang,bei der zweiten "T2" usw.?
 
Ja genau, T1 usw.
Alternativ kannst du auch die IEC Timer verwenden. Nachteil: Benötigen mehr Resourcen, Vorteil: Wesentlich einfacher Umgang.

Gruß pt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die 1. Variante ist einfacher, wenn die Anzahl der benötigten Timer nicht zu hoch ist und / oder der Speicher der CPU knapp ist, würde ich das auf jeden Fall bevorzugen.

Ansontsen verwende ich lieber die IEC-Timer als Multiinstanz, da brauch ich gar nix mehr beim Aufruf dran zu schreiben (keine Timer-Nr. nötig)- allerdings für Anwender, die sich mit Multiinstanzen nicht auskennen nicht ganz Ohne.
Hier mal was zum schnuppern: http://www.automatisierungsprofi.de/TON/index.htm
 
fertige Stern-Dreick-Schaltung

FUNCTION "cSternDreieck" : VOID
TITLE =Stern- Dreieck- Anlauf
//Stern-Dreieck Anlauf
//
//IN:
//START: Stern-Dreieck Anlauf Einschalten
//FRG : Freigabe
//T_STERN: Stern Anlaufzeit im S5 Zeitformat
//TIMER_S5: Timer im S5-Format
//
//InOut:
//bTmp: externes dauerhaftes Speicherbyte für Hilfsignale
//
//OUT:
//NETZ: Netz-Schütz
//DREIECK: Dreick-Schütz
//STERN: Stern-Schütz
//
//AUTOR: Stefan Maag, Dipl.-Ing. (FH) Elektrotechnik
//DATUM: 01/2006
//
//AENDERUNGSVERMERKE:
//--------------------------------------------------------------------------------
//DATUM NAME AENDERUNG
//--------------------------------------------------------------------------------
//
//--------------------------------------------------------------------------------
//
//HINWEISE:
AUTHOR : 'S.Maag'
VERSION : 0.1


VAR_INPUT
START : BOOL ;
FRG : BOOL ; //Freigabe
T_STERN : S5TIME ;
TIMER_S5 : TIMER ;
END_VAR
VAR_OUTPUT
NETZ : BOOL ; //Netzschütz
DREIECK : BOOL ; //Dreieckschütz
STERN : BOOL ; //Sternbrücke
END_VAR
VAR_IN_OUT
bTmp : BYTE ;
END_VAR
VAR_TEMP
lb_NETZ : BOOL ;
lb_DREIECK : BOOL ;
lb_STERN : BOOL ;
lb3 : BOOL ;
lb4 : BOOL ;
lb5 : BOOL ;
lb6 : BOOL ;
lb7 : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =



NETWORK
TITLE =Speichervariable in Lokaldaten

L #bTmp;
T LB 0;


NETWORK
TITLE =



U #lb_NETZ;
L #T_STERN;
SE #TIMER_S5;
NOP 0;
NOP 0;
NOP 0;
NOP 0;
NETWORK
TITLE =Netz

U #START;
S #lb_NETZ;
U( ;
ON #FRG;
ON #START;
) ;
R #lb_NETZ;
NOP 0;
NETWORK
TITLE =Stern

U #lb_NETZ;
UN #TIMER_S5;
UN #lb_DREIECK;
= #lb_STERN;
NETWORK
TITLE =Dreieck

U #lb_NETZ;
U #TIMER_S5;
UN #lb_STERN;
= #lb_DREIECK;
NETWORK
TITLE =Ausgang Netz

U #lb_NETZ;
= #NETZ;
NETWORK
TITLE =Ausgang Dreieck

U #lb_DREIECK;
U #lb_NETZ;
UN #lb_STERN;
= #DREIECK;
NETWORK
TITLE =Ausgang Stern

U #lb_STERN;
UN #lb_DREIECK;
= #STERN;
NETWORK
TITLE =Lokaldaten wieder in Speichervariable zurück

L LB 0;
T #bTmp;

END_FUNCTION
 
Zurück
Oben