接收数据

如果"接收完成"标志为FALSE,则可从外部设备接收数据。 (在切换为[RUN模式]或如果发送了数据或执行了 ClearReceiveBuffer,“接收完成”标志将变为FALSE将自动在CPU或复合通信单元的接收缓冲区中接收数据。对于CPU,必须在系统寄存器中定义接收缓冲区。在验证接收完成后,可将数据复制到CPU指定目标区域。

指定时间内如果没有接收到更多字节或已执行命令ClearReceiveBufferIsDone输出将变为TRUE。将禁止接收更多字节。F159_MTRNClearReceiveBuffer会将"IsDone" 标志变为FALSE

从外部设备接收数据的步骤:

  1. 设置通信参数和接收缓冲区

    必需设置通信模式(程序控制)、通信速度通信格式接收缓冲区 仅限CPU)

  2. 接收数据

    数据自动接收到接收缓冲区。
  3. 确认接收结束

    使用以下方法之一:

    方法

    注释

    IsReceptionDone

    返回"接收完成"标志的值。如果已接收到结束代码,则为TRUE

    IsReceptionDoneByTimeOut

    用于通过超时验证接收完成,例如,在没有有效结束代码时,使用二进制数据。

    注释

    MCU:必须在通信端口的系统寄存器中设置接收超时。

    sys_bIsComPort1ReceptionDone

    sys_bIsComPort2ReceptionDone

    sys_bIsToolPortReceptionDone

    (仅限CPU)

    如果已接收到结束代码,这些系统变量将变为TRUE

    MCU单元的输入(X)标志X0X2(仅限MCU)

    这些标志可用于校验通过复合通信单元进行的接收是否结束。

    接收缓冲区的直接评估。

  4. 接收缓冲区中的过程数据

    使用以下指令之一:

    指令

    注释

    ReceiveData

    自动将CPU或复合通信单元接收的数据复制到指定变量中。

    ReceiveCharacters

    自动将CPU或复合通信单元接收的字符复制到字符串变量中。

    F10_BKMV

    将数据从接收缓冲器传输至目标区域。无需ReceiveDataReceiveCharacters

    F161_MRCV

    将复合通信单元接收的数据复制到CPU的接收缓冲区中。无需ReceiveDataReceiveCharacters

  5. 准备CPU或MCU以接收下一个数据

    使用以下指令之一:

    指令

    注释

    ClearReceiveBuffer

    当发送下一批数据时,接收缓冲区将自动复位。使用这些指令之一复位接收缓冲区,而不发送任何数据。

    SendData

相关主题

最后更新日期:2022-04-05此页面上的反馈松下热线