Infosys在阅读器中打开 / AI 翻译

TF6xxx - Connectivity · 0 次阅读

The fast PLC task

Add the following PLC code to the declaration part:

PROGRAM P_SerialComm_HighSpeed
VAR
     fbSerialLineCtrl    : FB_IEC870_SerialLineCtrl := (
                Mode        := SERIALLINEMODE_PC_COM_PORT, (*SERIALLINEMODE_KL6_5B_STANDARD *)
                Baudrate    := 19200,
                NoDatabits      := 8,
                Parity      := PARITY_EVEN,
                Stopbits    := 1,
                Handshake       := HANDSHAKE_NONE,
                ContinousMode   := FALSE );

    serial_in           AT%IB4000       : PcComInData;
    serial_out      AT%QB4000       : PcComOutData;

    KL6_in      AT%IB4100       : KL6inData5B;
    KL6_out     AT%QB4100       : KL6outData5B;

    hSerial     : T_HSERIALCTRL;
END_VAR

and in the program code:

fbSerialLineCtrl(       pComIn      := SEL( fbSerialLineCtrl.Mode = SERIALLINEMODE_KL6_5B_STANDARD, ADR( serial_in ), ADR( KL6_in ) ),
                    pComOut     := SEL( fbSerialLineCtrl.Mode = SERIALLINEMODE_KL6_5B_STANDARD, ADR( serial_out ), ADR( KL6_out ) ),
                    SizeComIn       := SEL( fbSerialLineCtrl.Mode = SERIALLINEMODE_KL6_5B_STANDARD, SIZEOF( serial_in ), SIZEOF( KL6_in ) ),
                    hSerial     := hSerial );

A TwinCAT System Manager configuration suitable for this sample can be found on the sample overview page. The mode variable can be used to switch between two communication paths.

Communication via standard PC COMx interface

  • In this case the mode parameter is set to the value: SERIALLINEMODE_PC_COM_PORT.
  • At the TwinCAT System Manager the serial_in and serial_out variables are bound to the corresponding IO variables of the serial interface.
  • The interface will and has to be configured within the TwinCAT System Manager (Baudrate, Parity etc.). Other communication parameters at the FB_IEC870_SerialLineCtrl function block are not relevant at this mode.

Communication via serial Beckhoff Bus Terminals KL6xxx

  • In this case the mode parameter is set to the value: SERIALLINEMODE_KL6_5B_STANDARD.
  • At the TwinCAT System Manager the KL6_in and KL6_out variables are bound to the corresponding IO variables of the serial terminal KL6xxx.
  • The interface is configured within the TwinCAT PLC by the instance of the FB_IEC870_SerialLineCtrlfunction block. Communication parameters like baud rate, parity etc. have to be set via this function block.

Communication via serial Beckhoff Bus Terminals EL6xxx

PROGRAM P_SerialComm_HighSpeed
VAR
    fbSerialLineCtrl : FB_IEC870_SerialLineCtrl := ( Mode := SERIALLINEMODE_EL6_22B );

    EL6_in AT%IB4100 : EL6inData22B;
    EL6_out AT%QB4100 : EL6outData22B;
    hSerial : T_HSERIALCTRL;
END_VAR
fbSerialLineCtrl( pComIn := ADR( EL6_in ),
        pComOut := ADR( EL6_out ),
        SizeComIn := SIZEOF( EL6_in ),
        hSerial := hSerial );
  • In this case the mode parameter is set to the value: SERIALLINEMODE_EL6_22B.
  • At the TwinCAT System Manager the EL6_in and EL6_out variables are bound to the corresponding IO variables of the serial terminal EL6xxx.
  • The interface will and has to be configured within the TwinCAT System Manager (Baudrate, Parity etc.). Other communication parameters at the FB_IEC870_SerialLineCtrl function block are not relevant at this mode.