| Aufgaben 14.1 |
Etage 2, Büro 1,
Wechselschaltung mit Konfigurator mit e!COCKPIT
PROGRAM PLC_PRG
(*********************************************************
Firma: ..............; Version: 1.0; Datum:
..............
Funktion: Etage 2, Büro 1, Wechselschaltung
Kommunikation Controller-Feldbuskoppler.
Liest und beschreibt die Modbusvariablen
des Feldbuskopplers (Slave 192.168.1.20)
Konfiguriert mit den MODBUS-Konfigurator
**********************************************************)
Var
END_VAR
//Etage 2
//Beleuchtung- Wechselschaltung
MODBUS.Etage2_udp.xE1:= MODBUS.Etage2_udp.xS1
XOR
MODBUS.Etage2_udp.xS2;
MODBUS.Etage2_udp.xE2:= MODBUS.Etage2_udp.xE1;Etage
2, Büro 1, Wechselschaltung mit Kommunikationsbaustein mit e!COCKPIT
PROGRAM PLC_PRG
(**************************************************************************
Firma: ......; Version: 1.0; Datum: .......
Funktion: Etage 2, Büro 1, Wechselschaltung mit
Bibliotheksbaustein
Kommunikation Controller-Feldbuskoppler
1.) Liest vom Slave 192.168.178.101 die Eingangswerte und
schreibt
diese in utResponse.awData[]
2.) Schreibt von utQuery.awWriteData[] die Werte in die
Ausgänge vom Slave
Bibliotheken: WagoAppPlcModbus
**************************************************************************)
VAR
KOMMU_E2: FbMbMasterUdp;
utQuery: typMbQuery:= (bUnitId := 1, //
Slaveaddress
bFunctionCode := 16#17, // Register lesen und
schreiben
uiReadAddress := 0, // Startaddress
uiReadQuantity := 1, // Quantität der Register
uiWriteAddress := 0,
uiWriteQuantity := 1,
awWriteData := [124(0)]);
xTxTrigger:BOOL; (*Setzen Sie diese Variable
einmal,
um
einen Job zu starten.
Diese
Variable wird vom Master automatisch
zurückgesetzt
wenn der Job erledigt ist.*)
utResponse: typMbResponse;
tonDelay:TON:= (PT:=T#20MS);(*Das ist die schweige
Zeit
zwischen
zwei Anträgen*)
xError:BOOL;
END_VAR
// Verzögerung zwischen zwei Anfragen
tonDelay( IN := (NOT tonDelay.Q) AND (NOT xTxTrigger));
xTxTrigger S= tonDelay.Q; // die nächste Anfrage
auslösen
//2. Etage: Slave über Modbus lesen und beschreiben
KOMMU_E2(xConnect:= TRUE,
sHost:=
'192.168.178.101',
wPort:=
502,
eFrameType:=
eMbFrameType.ETHERNET,
tTimeOut:=
T#30MS,
utQuery:=
utQuery,
xTrigger:=
xTxTrigger,
utResponse:=
utResponse,
xIsOpen=>
,
xError=>
xError,
oStatus=>
);
//Etage 2: Slave-Eingänge lesen DI1, DI2 und Ausgänge
DO1, DO2 beschreiben
//Wechselschaltung
utQuery.awWriteData[0].0:= utResponse.awData[0].0
XOR
utResponse.awData[0].1;
utQuery.awWriteData[0].1:= utQuery.awWriteData[0].0;
|
| Aufgaben 14.2 |
Etage 2, Büro 1 und
Besprechungsraum mit Konfigurator mit e!COCKPIT GEBAEUDE.library
über den Bibliotheksverwalter eingebunden
PROGRAM PLC_PRG
(*******************************************
Firma:.....; Version:1.0; Datum:......
Funktion: Kommunikation PFC-FBC
Liest und beschreibt die MODBUS-Variablen
Konfiguriert mit dem MODBUS-Konfigurator
Bibliothek: GEBAEUDE.library
*******************************************)
VAR
LICHTSZENE_1:Gebaeude.FbLichtszenen;
(*oder mit den importierten FB LICHT_SZENEN*)
x1S1:BOOL;//Abwesendheitsschalter
END_VAR
//Etage 2 --------------------------------------
//Büro 1
MODBUS.Etage2_udp.x2E1:=(MODBUS.Etage2_udp.x2S1
XOR MODBUS.Etage2_udp.x2S2) AND x1s1;
MODBUS.Etage2_udp.x2E2:=MODBUS.Etage2_udp.x2E1;
//Besprechungsraum -----------------------------
LICHTSZENE_1(IN:= MODBUS.Etage2_udp.x2S3, tAUS:= T#3S);
MODBUS.Etage2_udp.x2E3:= LICHTSZENE_1.OUT1 AND x1s1;
MODBUS.Etage2_udp.x2E4:= LICHTSZENE_1.OUT2 AND x1s1;
MODBUS.Etage2_udp.x2E5:= LICHTSZENE_1.OUT3 AND x1s1;
Etage 2, Büro 1 und Besprechungsraum mit
Kommunikationsbaustein mit e!COCKPIT
PROGRAM PLC_PRG
(******************************************************************
Firma: ......; Version: 1.0; Datum: .......
Bibliotheken: WagoAppPlcModbus
Funktion mit Bibliotheksbaustein:
Etage 2
- Büro 1, Wechselschaltung, Abwesenheitsschalter (x1S1)
- Besprechungsraum- Lichtszenen, Abwesenheitsschalter
Kommunikation Controller-Feldbuskoppler
1.) Liest vom Slave 192.168.178.101 die DI und schreibt
diese in utResponse.awData[]
2.) Schreibt von utQuery.awWriteData[] die Werte in die
DO vom Slave
*******************************************************************)
VAR
KOMMU_E2: FbMbMasterUdp;
utQuery: typMbQuery:= (bUnitId := 1, //
Slaveaddress
bFunctionCode := 16#17, // Register lesen/schreiben
uiReadAddress := 0, // Startaddress
uiReadQuantity := 1, // Quantität der Register
uiWriteAddress := 0,
uiWriteQuantity := 1,
awWriteData := [124(0)]);
xTxTrigger: BOOL;(*Job zu starten. Variable wird
vom Master
zurückgesetzt,
wenn der Job erledigt ist.*)
utResponse: typMbResponse;
tonDelay:TON := (PT := T#20MS); // Zeit zwischen
zwei Anträgen
xError:BOOL;
LICHTSZENE_1:LICHT_SZENEN;
x1S1 AT %IX1.0:BOOL;//Abwesendheitsschalter
END_VAR
//Etage2;Kommunikation----------------------------------------------------
// Verzögerung zwischen zwei Anfragen
tonDelay( IN := (NOT tonDelay.Q) AND (NOT xTxTrigger));
xTxTrigger S= tonDelay.Q; // die nächste Anfrage
auslösen
// 2. Etage: Slave über Modbus lesen und beschreiben
KOMMU_E2(xConnect:= TRUE,
sHost:=
'192.168.178.101',
wPort:=
502,
eFrameType:=
eMbFrameType.ETHERNET,
tTimeOut:=
T#30MS,
utQuery:=
utQuery,
xTrigger:=
xTxTrigger,
utResponse:=
utResponse,
xIsOpen=>
,
xError=>
xError,
oStatus=>
);
//Büro1-------------------------------------------------------------------
// Slave-Eingänge lesen DI1, DI2 und Ausgänge DO1, DO2
beschreiben
utQuery.awWriteData[0].0:= (utResponse.awData[0].0
XOR
utResponse.awData[0].1) AND x1S1;
utQuery.awWriteData[0].1:= utQuery.awWriteData[0].0;
//Besprechungsraum--------------------------------------------------------
LICHTSZENE_1(
IN:=
utResponse.awData[0].2, // Taster 2S3
tAUS:=
T#3S);
utQuery.awWriteData[0].2:= LICHTSZENE_1.OUT1 AND x1S1; //
Leuchte 2E3
utQuery.awWriteData[0].3:= LICHTSZENE_1.OUT2 AND x1S1; //
2E4
utQuery.awWriteData[0].4:= LICHTSZENE_1.OUT3 AND x1S1; //2E5
|