KGW Kaltgasregler SC4/5 Programmierung
Der SC4/5 besteht aus zwei unabhängigen Geräten, welche intern als ModBus-Slaves RS485 miteinander verbunden sind:
Der Jumo Regler (Adresse 1) ist für die Heater- und Kammerregelung und der Sicherheitscontroller (Adresse 11) ist für den Jet und die Haupt-Stromversorgung zuständig.
Der RS485 Anschluss ist nach aussen geführt und kann dazu benutzt werden, mit den beiden Controllern über ModBus zu kommunizieren.
Dokumentation des Jumo ControllersSchnittstellenbeschreibung Jumo
Dokumentation des SicherheitscontrollersBefehlsübersicht Sicherheitscontroller (Stellgrad = Jet)
Beispiel-Code in C#, .NET 2.0, Microsoft Visual Studio 2010. Die ModBus Kommunikation wird von der NModBus Bibliothek erledigt:Der allgemeine Ablauf der ModBus-Kommunikation ist in der Schnittstellenbeschreibung des Jumo-Controllers in Kapitel 2 bis 4 beschrieben, die Adressen in Kapitel 5.
BeispieleLesen der Heater-Temperatur (
heaterTemp = _Controller.Analogeingang1
)- Lesen eines Float Wertes vom Jumo Controller an Adresse 0x0050 (
_mbus.ReadFloat(0x0050)
)
- Lesen eines Float Wertes vom Jumo Controller an Adresse 0x0050 (
Setzen eines neuen Sollwertes (
_Controller.Sollwert = newSollwert
)- Schreiben eines Float Wertes in den Jumo Controller an Adresse 0x0050 (
_mbus.WriteFloat(0x0050, newSollwert)
)
- Schreiben eines Float Wertes in den Jumo Controller an Adresse 0x0050 (
Setzen eines neuen Jet-Wertes (
_Controller.Jet = newJet
)- Schreiben eines Int Wertes in den Sicherheitscontroller an Adresse 0x0050 (
_mbus.WriteInt(0x0050, newJet, 11)
)
- Schreiben eines Int Wertes in den Sicherheitscontroller an Adresse 0x0050 (
Lesen des Jet-Wertes (
jet = _Controller.Jet
)- Lesen eines Int Wertes vom Sicherheitscontroller von Adresse 0x0050 (
_mbus.ReadInt(0x0050, 11)
)
- Lesen eines Int Wertes vom Sicherheitscontroller von Adresse 0x0050 (
Einschalten des Parametersatzes des Jumo Controllers (
Device.SwitchParameterPage(true)
)- Schreiben des Int Wertes 2 (2 = ein, 0 = aus) in den Jumo Controller an Adresse 0x0013 (
_mbus.WriteInt(0x0013, 2)
) - Hiermit werden im Speicher des Jumo Controllers die Werte der Parameter sichtbar. Um wieder im “normalen” Speicher lesen/schreiben zu können, nicht vergessen, dies wieder auf 0 zurückzusetzen.
- Schreiben des Int Wertes 2 (2 = ein, 0 = aus) in den Jumo Controller an Adresse 0x0013 (
Umschalten der Regelung auf die Kammer anstelle des Heaters (
_Controller.IsControllingChamber = true
)- Einschalten des Parametersatzes des Jumo Controllers
- Umschalten auf den zweiten Parametersatz ders Reglers durch schreiben des Wertes 2 in das untere Byte der Adresse 0x300c des Jumo Controllers (
_mbus.WriteInt(0x300c, 2*256+getUByte(_mbus.ReadInt(0x300c)))
) - Ausschalten des Parametersatzes des Jumo Controllers
- Schreiben von 2 in den Jumo Controller an Adresse 0x0074 (
_mbus.WriteInt(0x0074, 2)
)
Der Sollwert muss unter 200°C (Controller.Maxtemp
) liegen und SPH kleiner gleich 120°C (Controller.ParameterSphMax
) sein.