Inhaltsverzeichnis

HMI Sakristei (Läuten, Heizung, Licht)

HMI Programm

Das HMI in der Sakristei vom Typ Kinco GL100E dient als zusätzliches zentrales Steuerelement.
Das Programm für Kinco D-Tools steht hier über den Download Button bereit. Erstellt ist es in Programmversion 4.4.0.2

Eine Anleitung zur Bedienung des auf dem HMI aufgespielten Programms kann in folgenden Artikel eingesehen werden:
Überblick Steuerungstechnik und Nutzeranleitung PMK

FensterIDs und Kernelemente des Programms

Loader Wird geladen …
EAD-Logo Es dauert zu lange?

Neu laden Dokument neu laden
| Öffnen In neuem Tab öffnen

Herunterladen [2.07 MB]

Zugehörige Komponenten und ihre Variablenadressen

Loader Wird geladen …
EAD-Logo Es dauert zu lange?

Neu laden Dokument neu laden
| Öffnen In neuem Tab öffnen

Herunterladen [82.10 KB]

Ereignis- und Alarmmeldungen des HMI

Loader Wird geladen …
EAD-Logo Es dauert zu lange?

Neu laden Dokument neu laden
| Öffnen In neuem Tab öffnen

Herunterladen [45.76 KB]

Makros des HMIs

Für bestimmte Rechenaufgaben, wie beispielsweise der Errechnung einer benötigten Vorheizzeit, oder dem Aufteilen von BCD Zeitvariablen der LOGO!s in einzelne Eingabefelder für Stunden und Minuten am HMI, werden kleine C Programme genutzt.
Deren Definition findet ihr nachfolgend.

Übersicht der in den Makros verwendeten Variablen

Loader Wird geladen …
EAD-Logo Es dauert zu lange?

Neu laden Dokument neu laden
| Öffnen In neuem Tab öffnen

Herunterladen [50.24 KB]

0_heiz_alle_Zeiten_senden

#include "macrotypedef.h"
#include "math.h"

int MacroEntry()
{
	OUT_WEin_No1_BCD_to_SPS = IN_WEin_No1_Std * 100 + IN_WEin_No1_Min; //Wochenuhr Nocken1(B035) Einzeit Senden
	OUT_WAus_No1_BCD_to_SPS = IN_WAus_No1_Std * 100 + IN_WAus_No1_Min; //Wochenuhr Nocken1 B035) Auszeit Senden
	OUT_WEin_No2_BCD_to_SPS = IN_WEin_No2_Std * 100 + IN_WEin_No2_Min; //Wochenuhr Nocken2(B035) Einzeit Senden
	OUT_WAus_No2_BCD_to_SPS = IN_WAus_No2_Std * 100 + IN_WAus_No2_Min; //Wochenuhr Nocken2 B035) Auszeit Senden
	OUT_J1Ein_BCD_to_SPS = IN_J1Ein_Monat * 100 + IN_J1Ein_Tag;//Jahresuhr(B028) Startdatum Senden
	OUT_J1Aus_BCD_to_SPS = IN_J1Aus_Monat * 100 + IN_J1Aus_Tag;//Jahresuhr(B028) Enddatum Senden
	OUT_J2Ein_BCD_to_SPS = IN_J2Ein_Monat * 100 + IN_J2Ein_Tag;//Jahresuhr(B029) Startdatum Senden
	OUT_J2Aus_BCD_to_SPS = IN_J2Aus_Monat * 100 + IN_J2Aus_Tag;//Jahresuhr(B029) Enddatum Senden
	return 0;
}

1_heiz_alle_Zeiten_holen

#include "macrotypedef.h"
#include "math.h"

int MacroEntry()
{
	IN_J1Ein_Monat=OUT_J1Ein_BCD_to_SPS/100;
	IN_J1Ein_Tag=OUT_J1Ein_BCD_to_SPS%100;
	IN_J1Aus_Monat=OUT_J1Aus_BCD_to_SPS/100;
	IN_J1Aus_Tag=OUT_J1Aus_BCD_to_SPS%100;
	
	IN_J2Ein_Monat=OUT_J2Ein_BCD_to_SPS/100;
	IN_J2Ein_Tag=OUT_J2Ein_BCD_to_SPS%100;
	IN_J2Aus_Monat=OUT_J2Aus_BCD_to_SPS/100;
	IN_J2Aus_Tag=OUT_J2Aus_BCD_to_SPS%100;


	IN_WEin_No1_Std = OUT_WEin_No1_BCD_to_SPS / 100 ; 
	IN_WEin_No1_Min = OUT_WEin_No1_BCD_to_SPS%100 ; 
	IN_WEin_No2_Std = OUT_WEin_No2_BCD_to_SPS / 100 ; 
	IN_WEin_No2_Min = OUT_WEin_No2_BCD_to_SPS%100 ; 
	IN_WAus_No1_Std = OUT_WAus_No1_BCD_to_SPS / 100 ; 
	IN_WAus_No1_Min = OUT_WAus_No1_BCD_to_SPS%100 ; 
	IN_WAus_No2_Std = OUT_WAus_No2_BCD_to_SPS / 100 ; 
	IN_WAus_No2_Min = OUT_WAus_No2_BCD_to_SPS%100 ; 
	return 0;
}

2_laeute_alle_Zeiten_senden

#include "macrotypedef.h"
#include "math.h"

int MacroEntry()
{
	IN_J_EIN_MO=PLC_J_Ein/100; 		//Jahresuhr (B071) Ein Monat Holen und in HMI Variable schreiben
	IN_J_EIN_Tag=PLC_J_Ein%100; 	//Jahresuhr (B071) Ein Tag  Holen und in HMI Variable schreiben
	IN_J_AUS_MO=PLC_J_Aus/100; 		//Jahresuhr (B071) Aus  Monat Holen und in HMI Variable schreiben
	IN_J_AUS_Tag=PLC_J_Aus%100;		//Jahresuhr (B071) Aus Tag Holen und in HMI Variable schreiben
	
	IN_W_No1_Ein_Std=PLC_Woche_No1_Ein/100;	//Wochenuhr (B072) Nocken1 Ein Std holen und in HMI Variable schreiben
	IN_W_No1_Ein_Min=PLC_Woche_No1_Ein%100;	//Wochenuhr (B072) Nocken1 Ein Min holen und in HMI Variable schreiben
	IN_W_No1_Aus_Std=PLC_Woche_No1_Aus/100;	//Wochenuhr (B072) Nocken1 Aus Std holen und in HMI Variable schreiben
	IN_W_No1_Aus_Min=PLC_Woche_No1_Aus%100;	//Wochenuhr (B072) Nocken1 Aus Min holen und in HMI Variable schreiben
	
	IN_W_No2_Ein_Std=PLC_Woche_No2_Ein/100;	//Wochenuhr (B072) Nocken2 Ein Std holen und in HMI Variable schreiben
	IN_W_No2_Ein_Min=PLC_Woche_No2_Ein%100;	//Wochenuhr (B072) Nocken2 Ein Min holen und in HMI Variable schreiben
	IN_W_No2_Aus_Std=PLC_Woche_No2_Aus/100;	//Wochenuhr (B072) Nocken2 Aus Std holen und in HMI Variable schreiben
	IN_W_No2_Aus_Min=PLC_Woche_No2_Aus%100;	//Wochenuhr (B072) Nocken2 Aus Min holen und in HMI Variable schreiben
	return 0;
}

3_laeute_alle_Zeiten_senden

#include "macrotypedef.h"
#include "math.h"


int MacroEntry()
{
	PLC_J_Ein=IN_J_EIN_MO*100+IN_J_EIN_Tag;						//Jahresuhr (B071) StartDatum senden
	PLC_J_Aus=IN_J_AUS_MO*100+IN_J_AUS_Tag;						//Jahresuhr (B071) EndDatum senden
	PLC_Woche_No1_Ein=IN_W_No1_Ein_Std*100+IN_W_No1_Ein_Min;	//Wochenuhr (B072) Nocken1 EinZeit senden
	PLC_Woche_No1_Aus=IN_W_No1_Aus_Std*100+IN_W_No1_Aus_Min;	//Wochenuhr (B072) Nocken1 AusZeit senden
	PLC_Woche_No2_Ein=IN_W_No2_Ein_Std*100+IN_W_No2_Ein_Min;	//Wochenuhr (B072) Nocken2 EinZeit senden
	PLC_Woche_No2_Aus=IN_W_No2_Aus_Std*100+IN_W_No2_Aus_Min;	//Wochenuhr (B072) Nocken2 AusZeit senden
	return 0;
}

4_licht_auszeit_setzen

#include "macrotypedef.h"
#include "math.h"

int MacroEntry()
{
//PLC No1 EIN holen und in Variable des HMI schreiben
	ZWS_W_No1_Ein_Std = EIN_PLC / 100 ; 
	ZWS_W_No1_Ein_Min = EIN_PLC%100; 

//Zeiten wieder zurück PLC schreiben
	EIN_PLC=ZWS_W_No1_Ein_Std*100+ZWS_W_No1_Ein_Min;

//Stunden gleich für 2ten Puls Minuten +1
	ZWS_W_No1_Aus_Std=ZWS_W_No1_Ein_Std;
	ZWS_W_No1_Aus_Min=ZWS_W_No1_Ein_Min+1;

//AUS zur PLC Schreiben
	AUS_PLC=ZWS_W_No1_Aus_Std*100+ZWS_W_No1_Aus_Min;

	return 0;
}

5_vorheizzeit_errechnen

#include "macrotypedef.h"
#include "math.h"

int MacroEntry()
{
	Ist_Temp=PLC_IST;
	SollTemp=PLC_SOLL;
	Vorheizzeit=SollTemp-Ist_Temp;
	Vorheizzeit=Vorheizzeit/1.3;
	return 0;
}


6_uhrzeit_sync_hmi_to_plc_kschiff

#include "macrotypedef.h"
#include "math.h"

int MacroEntry()
{
	plc_kschiff_StundeMinute = HMI_Stunde * 100 + HMI_Minute;
	plc_kschiff_MonatTag = HMI_Monat * 100 + HMI_Tag;
	plc_kschiff_sekjahr = HMI_Jahr;
	return 0;
}

7_uhrzeit_sync_hmi_to_plc_turm

#include "macrotypedef.h"
#include "math.h"

int MacroEntry()
{
	plc_turm_StundeMinute = HMI_Stunde * 100 + HMI_Minute;
	plc_turm_MonatTag = HMI_Monat * 100 + HMI_Tag;
	plc_turm_sekjahr = HMI_Jahr;
	return 0;
}

8_uhrzeit_sync_hmi_to_plc_empore

#include "macrotypedef.h"
#include "math.h"

int MacroEntry()
{
	plc_empore_StundeMinute = HMI_Stunde * 100 + HMI_Minute;
	plc_empore_MonatTag = HMI_Monat * 100 + HMI_Tag;
	plc_empore_sekjahr = HMI_Jahr;
	return 0;
}

9_licht_zeiten_holen

#include "macrotypedef.h"
#include "math.h"

int MacroEntry()
{
//PLC No1 EIN holen und in Variable des HMI schreiben
	ZWS_W_No1_Ein_Std = EIN_PLC / 100 ; 
	ZWS_W_No1_Ein_Min = EIN_PLC%100; 

//PLC No1 AUS holen und in Variable des HMI schreiben
	ZWS_W_No1_Aus_Std = AUS_PLC / 100 ; 
	ZWS_W_No1_Aus_Min = AUS_PLC%100; 

	return 0;
}

10_licht_zeiten_senden

#include "macrotypedef.h"
#include "math.h"

int MacroEntry()
{
//No1 AUS und EIN zur PLC Schreiben
	AUS_PLC=ZWS_W_No1_Aus_Std*100+ZWS_W_No1_Aus_Min;
	EIN_PLC=ZWS_W_No1_Ein_Std*100+ZWS_W_No1_Ein_Min;
	return 0;
}

11_energiezaehler_reset

#include "macrotypedef.h"
#include "math.h"

int MacroEntry()
{
	z_stand_speicher = em3_kwh_gesamt;
	return 0;
}

12_energiezaehler_berechnen

#include "macrotypedef.h"
#include "math.h"


int MacroEntry()
{
	ergebniss = em3_kwh_gesamt - z_stand_speicher;
	return 0;
}