如果"接收完成"标志为FALSE,则可从外部设备接收数据。 (在切换为[RUN模式]或如果发送了数据或执行了 ClearReceiveBuffer,“接收完成”标志将变为FALSE。)将自动在CPU或复合通信单元的接收缓冲区中接收数据。对于CPU,必须在系统寄存器中定义接收缓冲区。在验证接收完成后,可将数据复制到CPU指定目标区域。
指定时间内如果没有接收到更多字节或已执行命令ClearReceiveBuffer,IsDone输出将变为TRUE。将禁止接收更多字节。F159_MTRN或ClearReceiveBuffer会将"IsDone" 标志变为FALSE。
从外部设备接收数据的步骤:
设置通信参数和接收缓冲区
必需设置:通信模式(程序控制)、通信速度、通信格式、接收缓冲区 仅限CPU)
接收数据
数据自动接收到接收缓冲区。确认接收结束
使用以下方法之一:
方法 |
注释 |
IsReceptionDone |
返回"接收完成"标志的值。如果已接收到结束代码,则为TRUE。 |
IsReceptionDoneByTimeOut |
用于通过超时验证接收完成,例如,在没有有效结束代码时,使用二进制数据。 注释 MCU:必须在通信端口的系统寄存器中设置接收超时。 |
sys_bIsComPort1ReceptionDone sys_bIsComPort2ReceptionDone sys_bIsToolPortReceptionDone (仅限CPU) |
如果已接收到结束代码,这些系统变量将变为TRUE。 |
MCU单元的输入(X)标志X0和X2(仅限MCU) |
这些标志可用于校验通过复合通信单元进行的接收是否结束。 |
接收缓冲区的直接评估。 |
接收缓冲区中的过程数据
使用以下指令之一:指令 |
注释 |
ReceiveData |
自动将CPU或复合通信单元接收的数据复制到指定变量中。 |
ReceiveCharacters |
自动将CPU或复合通信单元接收的字符复制到字符串变量中。 |
F10_BKMV |
将数据从接收缓冲器传输至目标区域。无需ReceiveData或ReceiveCharacters。 |
F161_MRCV |
将复合通信单元接收的数据复制到CPU的接收缓冲区中。无需ReceiveData或ReceiveCharacters。 |
准备CPU或MCU以接收下一个数据
使用以下指令之一:
指令 |
注释 |
ClearReceiveBuffer |
当发送下一批数据时,接收缓冲区将自动复位。使用这些指令之一复位接收缓冲区,而不发送任何数据。 |
SendData |