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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: Strukturierter Text für Anfänger

  1. #1
    Registriert seit
    26.12.2011
    Beiträge
    73
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute!

    Bin gerade an meinem ersten richtigen Projekt mit Strukturierten Text. Ich glaube das ich zu umständlich programmiere. z.b. ich möchte das Variable1 den Wert von Variable2 übernimmt und behält wenn ich einen Taster betätige. Variable1 selbst geändert werden können.

    Hintergrund ist eine Heizungssteuerung mit 24 Reglern. Variable2 stellt den gemeinsamen Sollwert da den alle per Knopfdruck übernehmen sollen. Ist jedoch dieser Sollwert für einzelne Regler nicht zutreffend soll dieser Regler einzeln per Variable1-24 angepasst werden können. Meine Idee mit der IF Anweisung würde zwar funktionieren aber kommt mir etwas aufwändig vor da ich alle Bedingungen programmieren muss. Habt ihr eine einfachere Lôsung oder komm ich da nicht drum herum?

    Danke
    Andi
    Zitieren Zitieren Strukturierter Text für Anfänger  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.316
    Danke
    932
    Erhielt 3.330 Danke für 2.689 Beiträge

    Standard

    Für bedingte Zuweisungen an numerische Variablen braucht man IF..THEN

    Mach Dir mal keinen Kopf, das ist schon richtig so.
    "Umständlich" fängt da an, wenn Du auch boolsche Zuweisungen in IF..THEN packst.

    Was meinst Du mit "etwas aufwändig"? Magst Du uns ein Beispiel geben?

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Registriert seit
    26.12.2011
    Beiträge
    73
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe auch schon BOOLSCHE Zustände per IF definiert das waren dann aber 10 Variablen den ich dann ihre Zustände zugwiesen habe. Mit aufwändig meine ich das ich einmal die IF anweisung für Zustand TRUE und Zustand FALSE schreiben muss... ist mir eben viel vorgekommen. Aber wenn das so seine richtigkeit hat dann past ja. Ich bei intresse auch einen Programmteil Online stellen.

    Danke für die schnelle Antwort

    Gruß
    Andi

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.316
    Danke
    932
    Erhielt 3.330 Danke für 2.689 Beiträge

    Standard

    Zitat Zitat von Monsignore Beitrag anzeigen
    das ich einmal die IF anweisung für Zustand TRUE und Zustand FALSE schreiben muss
    Vielleicht verkürzt da ELSE oder ELSIF

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Zitat Zitat von Monsignore Beitrag anzeigen
    Mit aufwändig meine ich das ich einmal die IF anweisung für Zustand TRUE und Zustand FALSE schreiben muss...
    Da kann man sich meistens das IF...THEN sparen und der Variablen den IF-Ausdruck zuweisen
    Z.B.:
    Code:
    IF A=1 THEN
       B:=TRUE;
    ELSE
       B:=FALSE;
    END_IF;
    kann man besser als
    Code:
    B:=A=1;
    schreiben.
    Ist eigentlich banal, aber sieht man immer wieder in der IF..THEN-Version.

    Alternativ gibt es die SEL(ect)-Zuweisung (zumindest bei SCL, dann bestimmt auch bei ST), wenn man keinen boolschen Wert zuweisen möchte.

  6. #6
    Registriert seit
    26.12.2011
    Beiträge
    73
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für eure Tips werde morgen mal einen Teil meines Programms posten. Fals ihr dann noch Vorschläge habt nehm ich sie sehr dankend an.

    Gruß
    Andi

  7. #7
    Registriert seit
    23.09.2013
    Beiträge
    16
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Man kann es wirklich verkürzen. Ich denke da an meine C/C++ Zeiten. Da habe ich immer sehr viele Ausdrücke sehr kompliziert geschrieben, bis man mir gezeigt hat, dass man einige Sachen auch kürzer haben kann. Begleitet mich bis jetzt in die SPS Zeiten. Ich versuche alles imm "keep easy and smart" zu machen, dann verliert man nicht so schnell den Überblick.

  8. #8
    Registriert seit
    26.12.2011
    Beiträge
    73
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hier ein Auszuge aus meinem Heizungsregler Programm ich hoffe ihr versteht eingermaßen meine Ansätz..

    Code:
    PROGRAM _CYCLIC
    	
    	
    	(*Temperaturregler Heizungen*)
    
    	DO_HZG1		:=		(AI_TEMP1 < SET_HZG1) AND bHZG1 AND EV_HZG1 AND HM_RUN;
    	
    	(*Einheitstemperatur für Regler*)
    
    	IF bSET_Temp THEN
    		SET_HZG1	:=		SET_Temp;
    	ELSIF
    		NOT bSET_Temp THEN
    		SET_HZG1	:=		SET_HZG1;
    	END_IF
    	
    		(*Einschaltverzögerung Heizungen*)	
    	
    	
    	
    	
    													(*Einschaltverzögerung Heizung 1*)
    	TON_HZG1.IN		:=		HM_RUN AND bHZG1;
    	TON_HZG1.PT		:=		T#5s;
    	TON_HZG1();
    	EV_HZG1			:=		TON_HZG1.Q;
    	
    													(*Einschaltverzögerung Heizung 2*)
    	TON_HZG2.IN		:=		HM_RUN AND bHZG2 AND EV_HZG1;
    	TON_HZG2.PT		:=		T#5s;
    	TON_HZG2();
    	EV_HZG2			:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 3*)
    	TON_HZG3.IN		:=		HM_RUN AND bHZG3 AND EV_HZG2;
    	TON_HZG3.PT		:=		T#5s;
    	TON_HZG3();
    	EV_HZG3			:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 4*)
    	TON_HZG4.IN		:=		HM_RUN AND bHZG4 AND EV_HZG3;
    	TON_HZG.PT		:=		T#5s;
    	TON_HZG4();
    	EV_HZG4			:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 5*)
    	TON_HZG5.IN		:=		HM_RUN AND bHZG5 AND EV_HZG4;
    	TON_HZG5.PT		:=		T#5s;
    	TON_HZG5();
    	EV_HZG5			:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 6*)
    	TON_HZG6.IN		:=		HM_RUN AND bHZG6 AND EV_HZG5;
    	TON_HZG6.PT		:=		T#5s;
    	TON_HZG6();
    	EV_HZG6			:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 7*)
    	TON_HZG7.IN		:=		HM_RUN AND bHZG7 AND EV_HZG6;
    	TON_HZG7.PT		:=		T#5s;
    	TON_HZG7();
    	EV_HZG7			:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 8*)
    	TON_HZG8.IN		:=		HM_RUN AND bHZG8 AND EV_HZG7;
    	TON_HZG8.PT		:=		T#5s;
    	TON_HZG8();
    	EV_HZG8			:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 9*)
    	TON_HZG9.IN		:=		HM_RUN AND bHZG9 AND EV_HZG8;
    	TON_HZG9.PT		:=		T#5s;
    	TON_HZG9();
    	EV_HZG9			:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 10*)
    	TON_HZG10.IN	:=		HM_RUN AND bHZG10 AND EV_HZG9;
    	TON_HZG10.PT	:=		T#5s;
    	TON_HZG10();
    	EV_HZG10		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 11*)
    	TON_HZG11.IN	:=		HM_RUN AND bHZG11 AND EV_HZG10;
    	TON_HZG11.PT	:=		T#5s;
    	TON_HZG11();
    	EV_HZG11		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 12*)
    	TON_HZG12.IN	:=		HM_RUN AND bHZG12 AND EV_HZG11;
    	TON_HZG12.PT	:=		T#5s;
    	TON_HZG12();
    	EV_HZG12		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 13*)
    	TON_HZG13.IN	:=		HM_RUN AND bHZG13 AND EV_HZG12;
    	TON_HZG13.PT	:=		T#5s;
    	TON_HZG13();
    	EV_HZG13		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 14*)
    	TON_HZG14.IN	:=		HM_RUN AND bHZG14 AND EV_HZG13;
    	TON_HZG14.PT	:=		T#5s;
    	TON_HZG14();
    	EV_HZG14		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 15*)
    	TON_HZG15.IN	:=		HM_RUN AND bHZG15 AND EV_HZG14;
    	TON_HZG15.PT	:=		T#5s;
    	TON_HZG15();
    	EV_HZG15		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 16*)
    	TON_HZG16.IN	:=		HM_RUN AND bHZG16 AND EV_HZG15;
    	TON_HZG16.PT	:=		T#5s;
    	TON_HZG16();
    	EV_HZG16		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 17*)
    	TON_HZG17.IN	:=		HM_RUN AND bHZG17 AND EV_HZG16;
    	TON_HZG17.PT	:=		T#5s;
    	TON_HZG17();
    	EV_HZG17		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 18*)
    	TON_HZG18.IN	:=		HM_RUN AND bHZG18 AND EV_HZG17;
    	TON_HZG18.PT	:=		T#5s;
    	TON_HZG18();
    	EV_HZG18		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 19*)
    	TON_HZG19.IN	:=		HM_RUN AND bHZG19 AND EV_HZG18;
    	TON_HZG19.PT	:=		T#5s;
    	TON_HZG19();
    	EV_HZG19		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 20*)
    	TON_HZG20.IN	:=		HM_RUN AND bHZG20 AND EV_HZG19;
    	TON_HZG20.PT	:=		T#5s;
    	TON_HZG20();
    	EV_HZG20		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 21*)
    	TON_HZG21.IN	:=		HM_RUN AND bHZG21 AND EV_HZG20;
    	TON_HZG21.PT	:=		T#5s;
    	TON_HZG21();
    	EV_HZG21		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 22*)
    	TON_HZG22.IN	:=		HM_RUN AND bHZG22 AND EV_HZG21;
    	TON_HZG22.PT	:=		T#5s;
    	TON_HZG22();
    	EV_HZG22		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 23*)
    	TON_HZG23.IN	:=		HM_RUN AND bHZG23 AND EV_HZG22;
    	TON_HZG23.PT	:=		T#5s;
    	TON_HZG23();
    	EV_HZG23		:=		TON_HZG2.Q;
    	
    													(*Einschaltverzögerung Heizung 24*)
    	TON_HZG24.IN	:=		HM_RUN AND bHZG24 AND EV_HZG23;
    	TON_HZG24.PT	:=		T#5s;
    	TON_HZG24();
    	EV_HZG24		:=		TON_HZG2.Q;
    	
    	
    	
    	
    	
    	
    															(*Anwahl Regleranzahl*)
    	
    
    
    
    	IF bHZG_Aktiv=0 THEN				(*Wenn keine Regler aktiviert werden Freigabe Bit´s 0*)
    		bHZG1 		:= 		FALSE;
    		bHZG2		:= 		FALSE;
    		bHZG3 		:= 		FALSE;
    		bHZG4 		:= 		FALSE;
    		bHZG5 		:= 		FALSE;
    		bHZG6 		:= 		FALSE;
    		bHZG7 		:= 		FALSE;
    		bHZG8 		:= 		FALSE;
    		bHZG9 		:= 		FALSE;
    		bHZG10 		:= 		FALSE;
    		bHZG11 		:= 		FALSE;
    		bHZG12 		:= 		FALSE;
    	ELSIF bHZG_Aktiv=1 THEN				(*Regler 1 Aktiv*)
    		bHZG1 		:=		TRUE;
    		bHZG2 		:=		FALSE;
    		bHZG3 		:=		FALSE;
    		bHZG4 		:=		FALSE;
    		bHZG5 		:=		FALSE;
    		bHZG6 		:=		FALSE;
    		bHZG7 		:=		FALSE;
    		bHZG8 		:=		FALSE;
    		bHZG9		:=		FALSE;
    		bHZG10		:=		FALSE;
    		bHZG11		:=		FALSE;
    		bHZG12		:=		FALSE;
    	ELSIF bHZG_Aktiv=2 THEN				(*Regler 1,2 Aktiv*)
    		bHZG1 		:= 		TRUE;
    		bHZG2 		:= 		TRUE;
    		bHZG3 		:=		FALSE;
    		bHZG4 		:=		FALSE;
    		bHZG5 		:=		FALSE;
    		bHZG6 		:=		FALSE;
    		bHZG7 		:=		FALSE;
    		bHZG8 		:=		FALSE;
    		bHZG9		:=		FALSE;
    		bHZG10		:=		FALSE;
    		bHZG11		:=		FALSE;
    		bHZG12		:=		FALSE;
    	ELSIF bHZG_Aktiv= 3 THEN			(*Regler 1,2,3 Aktiv*)
    		bHZG1 		:= 		TRUE;
    		bHZG2 		:= 		TRUE;
    		bHZG3 		:= 		TRUE;
    		bHZG4 		:=		FALSE;
    		bHZG5 		:=		FALSE;
    		bHZG6 		:=		FALSE;
    		bHZG7 		:=		FALSE;
    		bHZG8 		:=		FALSE;
    		bHZG9		:=		FALSE;
    		bHZG10		:=		FALSE;
    		bHZG11		:=		FALSE;
    		bHZG12		:=		FALSE;
    	ELSIF bHZG_Aktiv= 4 THEN			(*Regler 1,2,3,4 Aktiv*)
    		bHZG1 		:= 		TRUE;
    		bHZG2 		:= 		TRUE;
    		bHZG3 		:= 		TRUE;
    		bHZG4 		:= 		TRUE;
    		bHZG5 		:=		FALSE;
    		bHZG6 		:=		FALSE;
    		bHZG7 		:=		FALSE;
    		bHZG8 		:=		FALSE;
    		bHZG9		:=		FALSE;
    		bHZG10		:=		FALSE;
    		bHZG11		:=		FALSE;
    		bHZG12		:=		FALSE;
    	ELSIF bHZG_Aktiv= 5 THEN			(*Regler 1,2,3,4,5 Aktiv*)
    		bHZG1 		:= 		TRUE;
    		bHZG2 		:= 		TRUE;
    		bHZG3 		:= 		TRUE;
    		bHZG4 		:= 		TRUE;
    		bHZG5 		:= 		TRUE;
    		bHZG6 		:=		FALSE;
    		bHZG7 		:=		FALSE;
    		bHZG8 		:=		FALSE;
    		bHZG9		:=		FALSE;
    		bHZG10		:=		FALSE;
    		bHZG11		:=		FALSE;
    		bHZG12		:=		FALSE;
    	ELSIF bHZG_Aktiv= 6 THEN			(*Regler 1,2,3,4,5,6 Aktiv*)
    		bHZG1 		:= 		TRUE;
    		bHZG2 		:= 		TRUE;
    		bHZG3 		:= 		TRUE;
    		bHZG4 		:= 		TRUE;
    		bHZG5 		:= 		TRUE;
    		bHZG6 		:= 		TRUE;
    		bHZG7 		:=		FALSE;
    		bHZG8 		:=		FALSE;
    		bHZG9		:=		FALSE;
    		bHZG10		:=		FALSE;
    		bHZG11		:=		FALSE;
    		bHZG12		:=		FALSE;
    	ELSIF bHZG_Aktiv= 7 THEN			(*Regler 1,2,3,4,5,6,7 Aktiv*)
    		bHZG1 		:= 		TRUE;
    		bHZG2 		:= 		TRUE;
    		bHZG3 		:= 		TRUE;
    		bHZG4 		:= 		TRUE;
    		bHZG5 		:= 		TRUE;
    		bHZG6 		:= 		TRUE;
    		bHZG7 		:= 		TRUE;
    		bHZG8 		:=		FALSE;
    		bHZG9		:=		FALSE;
    		bHZG10		:=		FALSE;
    		bHZG11		:=		FALSE;
    		bHZG12		:=		FALSE;
    	ELSIF bHZG_Aktiv= 8 THEN			(*Regler 1,2,3,4,5,6,7,8 Aktiv*)
    		bHZG1 		:= 		TRUE;
    		bHZG2 		:= 		TRUE;
    		bHZG3 		:= 		TRUE;
    		bHZG4 		:= 		TRUE;
    		bHZG5 		:= 		TRUE;
    		bHZG6 		:= 		TRUE;
    		bHZG7 		:= 		TRUE;
    		bHZG8 		:= 		TRUE;
    		bHZG9		:=		FALSE;
    		bHZG10		:=		FALSE;
    		bHZG11		:=		FALSE;
    		bHZG12		:=		FALSE;
    	ELSIF bHZG_Aktiv= 9 THEN			(*Regler 1,2,3,4,5,6,7,8,9 Aktiv*)
    		bHZG1 		:= 		TRUE;
    		bHZG2 		:= 		TRUE;
    		bHZG3 		:= 		TRUE;
    		bHZG4 		:= 		TRUE;
    		bHZG5 		:= 		TRUE;
    		bHZG6 		:= 		TRUE;
    		bHZG7 		:= 		TRUE;
    		bHZG8 		:= 		TRUE;
    		bHZG9 		:= 		TRUE;
    		bHZG10		:=		FALSE;
    		bHZG11		:=		FALSE;
    		bHZG12		:=		FALSE;
    	ELSIF bHZG_Aktiv= 10 THEN			(*Regler 1,2,3,4,5,6,7,8,9,10 Aktiv*)
    		bHZG1 		:= 		TRUE;
    		bHZG2 		:= 		TRUE;
    		bHZG3 		:= 		TRUE;
    		bHZG4 		:= 		TRUE;
    		bHZG5 		:= 		TRUE;
    		bHZG6 		:= 		TRUE;
    		bHZG7 		:= 		TRUE;
    		bHZG8 		:= 		TRUE;
    		bHZG9 		:= 		TRUE;
    		bHZG10 		:= 		TRUE;
    		bHZG11		:=		FALSE;
    		bHZG12		:=		FALSE;
    	ELSIF bHZG_Aktiv= 11 THEN			(*Regler 1,2,3,4,5,6,7,8,9,10,11 Aktiv*)
    		bHZG1 		:= 		TRUE;
    		bHZG2 		:= 		TRUE;
    		bHZG3 		:= 		TRUE;
    		bHZG4 		:= 		TRUE;
    		bHZG5 		:= 		TRUE;
    		bHZG6 		:= 		TRUE;
    		bHZG7 		:= 		TRUE;
    		bHZG8 		:= 		TRUE;
    		bHZG9 		:= 		TRUE;
    		bHZG10 		:= 		TRUE;
    		bHZG11 		:= 		TRUE;
    		bHZG12		:=		FALSE;
    	ELSIF bHZG_Aktiv= 12 THEN			(*Regler 1,2,3,4,5,6,7,8,9,10,11,12 Aktiv*)
    		bHZG1 		:= 		TRUE;
    		bHZG2 		:= 		TRUE;
    		bHZG3 		:= 		TRUE;
    		bHZG4 		:= 		TRUE;
    		bHZG5 		:= 		TRUE;
    		bHZG6 		:= 		TRUE;
    		bHZG7 		:= 		TRUE;
    		bHZG8 		:= 		TRUE;
    		bHZG9 		:= 		TRUE;
    		bHZG10 		:= 		TRUE;
    		bHZG11 		:= 		TRUE;
    		bHZG12 		:= 		TRUE;
    	END_IF
    	
    										(*Freigabe Ventile und Umschaltboxen nach Erreichen mindest Temperatur*)
    	
    	
    	
    	
    	FG_HZG1			:=		bHZG1 AND (AI_TEMP1 > SET_TEMP_MIN);	(*Freigabe aus Heizung 1*)
    	FG_HZG2			:=		bHZG2 AND (AI_TEMP2 > SET_TEMP_MIN);	(*Freigabe aus Heizung 2*)
    	FG_HZG3			:=		bHZG3 AND (AI_TEMP3 > SET_TEMP_MIN);	(*Freigabe aus Heizung 3*)
    	FG_HZG4			:=		bHZG4 AND (AI_TEMP4 > SET_TEMP_MIN);	(*Freigabe aus Heizung 4*)
    	FG_HZG5			:=		bHZG5 AND (AI_TEMP5 > SET_TEMP_MIN);	(*Freigabe aus Heizung 5*)
    	FG_HZG6			:=		bHZG6 AND (AI_TEMP6 > SET_TEMP_MIN);	(*Freigabe aus Heizung 6*)
    	FG_HZG7			:=		bHZG7 AND (AI_TEMP7 > SET_TEMP_MIN);	(*Freigabe aus Heizung 7*)
    	FG_HZG8			:=		bHZG8 AND (AI_TEMP8 > SET_TEMP_MIN);	(*Freigabe aus Heizung 8*)
    	
    	FG_Umschaltbox	:=		FG_HZG1 AND NOT bHZG2 OR FG_HZG2 AND NOT bHZG3 OR FG_HZG3 AND NOT bHZG4 OR FG_HZG4 AND NOT bHZG5 OR FG_HZG5 AND NOT bHZG6 OR FG_HZG6 AND NOT bHZG7 OR FG_HZG7 AND NOT bHZG8 OR FG_HZG8; (*Freigabe aus aktiven Heizungen 1,2,3,4,5,6,7,8*)
    	
    END_PROGRAM
    Gruß
    Andi

  9. #9
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard

    Da lässt sich schon einiges vereinfachen. Zunächst hier:
    Code:
    IF bSET_Temp THEN
    		SET_HZG1	:=		SET_Temp;
    	ELSIF
    		NOT bSET_Temp THEN
    		SET_HZG1	:=		SET_HZG1;
    	END_IF
    Die negierte Abfrage von bSET_Temp im ELSE-Zweig ist überflüsig, die ist ja sozusagen schon im ELSE vorhanden:
    Code:
    IF bSET_Temp
    THEN
       SET_HZG1:=SET_Temp;
    ELSE
       SET_HZG1:=SET_HZG1;   (* Hier wird mir der Sinn nicht klar. Du weist SET_HZG1 den Wert zu, den die Variable eh schon hat. Tippfehler? *)
    END_IF
    Wesentlich grösser ist das Potenzial allerdings bei den Zuweisungen von bHZG1..bHZG12 in Abhängigkeit von bHZG_Aktiv:
    Code:
    bHZG1:=bHZG_Aktiv>0;
    bHZG2:=bHZG_Aktiv>1;
    bHZG3:=bHZG_Aktiv>2;
    (* usw.,
        bis *)
    bHZG12:=bHZG_Aktiv>11;
    Und wenn Du Dein erstes ST-Programm am Laufen hast, kannst Du Dich mal mit Arrays und Schleifen befassen. Damit könnte man vielleicht noch mehr erreichen.

  10. #10
    Registriert seit
    26.12.2011
    Beiträge
    73
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die super Tipps. Werde morgen versuchen das umzusetzen.

    @ StructuredTrash

    Ich möchte erreichen dass wenn ich den Button bSET_Temp drücke alle 24 Regler den Wert SET_Temp übernehmen. Es soll jedoch wenn der Button bSET_Temp nicht gedrückt wird bzw ist jeder Reglersollwert SET_HZG1-24 einzeln parametrierbar ist deshalb die zuweisung im Else zweig.

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 23.07.2013, 15:02
  2. Strukturierter Text Grundlagen
    Von hansol1991 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 26.02.2013, 11:30
  3. Strukturierter Text ????HÄ?????
    Von Pinky im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 22.04.2010, 14:26
  4. For Schleif Strukturierter Text
    Von bluebird277 im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 28.01.2010, 20:45
  5. Strukturierter Text
    Von bluebird277 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 21.01.2010, 15:54

Lesezeichen

Berechtigungen

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