FB_MBWriteCoils (Modbus-Funktion 15)

FB_MBWriteCoils (Modbus-Funktion 15) 1:

Diese Funktion wird zum Beschreiben von 1 bis 2048 digitalen Ausgängen (Coils) benutzt. Ein digitaler Ausgang entspricht einem Bit der geschriebenen Datenbytes.

FB_MBWriteCoils (Modbus-Funktion 15) 2: Eingänge

VAR_INPUT
    sIPAddr       : STRING(15);
    nTCPPort      : UINT:= MODBUS_TCP_PORT;
    nUnitID       : BYTE:=16#FF;
    nQuantity     : WORD;
    nMBAddr       : WORD;
    cbLength      : UDINT;
    pSrcAddr      : POINTER OF BYTE;
    bExecute      : BOOL;
    tTimeout      : TIME;
END_VAR

Name

Typ

Beschreibung

sIPAddr

STRING (15)

Ist ein String, der die IP-Adresse des Zielgerätes enthält.

nTCPPort

UINT

Portnummer des Zielgerätes.

nUnitID

BYTE

Identifizierungsnummer eines Gerätes eines seriellen Sub-Netzwerkes. Wenn ein Gerät direkt über TCP/IP angesprochen wird, muss dieser Wert 16#FF entsprechen.

nQuantity

WORD

Anzahl der digitalen Ausgänge, die beschrieben werden sollen (Datenbits). Der Wert Null ist unzulässig.

nMBAddr

WORD

Startadresse der digitalen Ausgänge, die beschrieben werden sollen (Bitoffset).

cbLength

UDINT

Enthält die max. verfügbare Bytegröße des Quellpuffers, der die zu schreibenden Daten enthält. Der Puffer muss mindestens die Bytegröße: (nQuantity + 7) / 8 besitzen.

pSrcAdd

POINTER OF BYTE

Enthält die Adresse des Quellpuffers, der die zu schreibenden Daten enthält. Der Puffer kann eine Einzelvariable, ein Array oder eine Struktur sein, dessen Adresse mit dem ADR - Operator ermittelt werden kann.

bExecute

BOOL

Durch eine steigende Flanke an diesem Eingang wird der Funktionsbaustein aktiviert.

tTimeout

TIME

Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf.

FB_MBWriteCoils (Modbus-Funktion 15) 3: Ausgänge

VAR_OUTPUT
    bBUSY      : BOOL;
    bError     : BOOL;
    nErrId     : UDINT;
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

bError

BOOL

Sollte ein ADS-Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.

nErrId

UDINT

Liefert bei einem gesetzten bError-Ausgang die ADS-Fehlernummer.

Beispiel für den Aufruf des Bausteins in FBD

PROGRAM Test
VAR
    fbWriteCoils        : FB_MBWriteCoils;
    bWriteCoils         : BOOL;
    bWriteCoilsBusy     : BOOL;
    bWriteCoilsError    : BOOL;
    nWriteCoilsErrorId. : UDINT;
    nWriteCoilsCount    : UDINT;
    nQuantity           : WORD := 10;
    nMBAddr             : WORD := 14;
    arrData             : ARRAY [1..2] OF BYTE := 16#75,16#03;
END_VAR
FB_MBWriteCoils (Modbus-Funktion 15) 4:

Nach steigender Flanke von "bExecute" und erfolgreicher Ausführung des ReadCoils-Befehls, wird der Inhalt des Arrays arrData in die Ausgänge 15-24 geschrieben:

Bit

0

1

1

1

0

1

0

1

0

0

0

0

0

0

1

1

Output

22

21

20

19

18

17

16

15

X

X

X

X

X

X

24

23

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.0.0

PC or CX (x86)

Tc2_ModbusSrv