=== FB 9101: Port1_Daten_senden  [STL] ===
INTERFACE:
  Input:
  Output:
  InOut:
  Static:
    Dyn : Struct                                        // Status
      RET_VAL_SendFIFO_OUT : Byte                       // Rückmeldung bei Fifo-Zugriff
      RET_VAL_SaveFIFO_IN : Byte                        // Rückmeldung bei Fifo-Zugriff
      Error : Struct                                    // Störungen
        Send_FIFO_OUT : Bool                            // Send-FIFO fehlerhaft
        Save_FIFO_IN : Bool                             // Save-FIFO fehlerhaft
      Res : Array[1..35] of Int                         // Damit Sendedaten ab DW100 !
  Temp:
    Schleife : Int
  Constant:

--- NW 1: Sendefach frei? / Hat Host Daten verarbeitet ---
// Telegramm-Kopf leer?:
      L      1                                               // Mit 1.Zeichen beginnen
L100: T      Schleife

      L      "SS_Port1_SendDaten".Port1.TelegrammKennung[Schleife]
      L      0                                               // Daten noch vorhanden?
      <>I                                                    // Ja!
      BEC

      L      Schleife
      +      1
      T      Schleife

      L      10                                              // 10.Zeichen erreicht ?
      <=I                                                    // Nein !
      JC     L100


--- NW 2: Neue Sendedaten im FIFO ? ---
      SET
      R      Dyn.Error.Send_FIFO_OUT                         // Error bei FIFO-Zugriff

CALL FC "FifoOut" (SSDB:=7101, SSDW:=0, PARA:=WORD#16#E100, OUTDATEN:=DB9101.DBX0.0, RE_VAL:="MB199")   // Gewollte Sendedaten | Lesen + austragen

      L      "MB199"
      T      Dyn.RET_VAL_SendFIFO_OUT

      JBI    En02                                            // Alles ok

      A      "M199.2"                                        // FIFO ist leer
      BEC

      SET
      S      Dyn.Error.Send_FIFO_OUT                         // Error bei FIFO-Zugriff

      BEU

En02: NOP 0


--- NW 3: Gesendete Daten speichern ---
      SET
      R      Dyn.Error.Save_FIFO_IN                          // Error bei FIFO-Zugriff

CALL FC "FifoOut" (SSDB:=8101, SSDW:=0, PARA:=WORD#16#E100, OUTDATEN:=P#M200.0, RE_VAL:="MB199")   // da Ringspeicher nächster Eintrag lesen + austragen

CALL FC "FifoIn" (SSDB:=8101, SSDW:=0, PARA:=WORD#16#0000, INDATEN:=DB9101.DBX0.0, RE_VAL:="MB199")

      L      "MB199"
      T      Dyn.RET_VAL_SaveFIFO_IN

      JBI    en03                                            // Alles ok

      SET
      S      Dyn.Error.Save_FIFO_IN                          // Error bei FIFO-Zugriff

en03: NOP 0


--- NW 4: Ende ---
      BE

