设置用于CPU的接收缓冲区

对于程序控制通信,必须在DT内存区指定接收缓冲区。最大区域最多16384字。指定以下项目:

  1. 起始地址

  2. 接收缓冲区的容量(字数)

接收缓冲区布局

  1.  (1) 起始地址
  2.  (2) 接收字节数的存储区域
  3.  (3) 接收数据的存储区域
  4.  (4) 容量

粗体编号表示接收顺序。传入数据存储在接收缓冲区。起始和结束代码不存储在接收缓冲区。接收数据的存储区域以接收缓冲区的第二个字(偏移量1)开始。偏移量0包含接收到的字节数。偏移量0的初始值为0

  1. 双击导航器中的 [PLC]
  2. 双击[系统寄存器(Y)]
  3. 双击[串行端口]

    通信端口占用同一系统寄存器的不同位位置,因此,可对每个通信端口进行单独设置。要对TOOL端口进行设置,请选择[系统寄存器(Y)] > [串行端口] > [TOOL]相应设置的系统寄存器数量可能会因使用的PLC类型而异。
注释

为使用接收缓冲区中的数据,请定义具有相同起始地址和容量的全局变量。但是,FP7和MCU扩展单元没有相应的DT寄存器地址。要将数据从接收缓冲器传输至PLC数据寄存器,请使用ReceiveData

相关主题

在接收缓冲区中处理数据并准备CPU以接收更多数据

通过COM端口1接收包含字符"ABCDEFGH"的8字节字符串。字符将被存储至ASCII十六进制代码中且没有起始及结束代码。

  1.  (1) “接收完成”标志
  2.  (2) 执行条件
  3.  (3) 开始接收
  4.  (4)  继续接收
  5.  (5) F159_MTRN (n_Number=0)的执行

接收缓冲区布局

接收开始时,偏移量0的值为0。在接收的结尾,偏移量0的值为8。将从较低的字节开始接收偏移量1到偏移量4的数据。

系统寄存器设置

为使用接收缓冲区中的数据,请定义具有相同起始地址和容量的全局变量。在此示例中,起始地址为DT200 (VAR_GLOBALDT200_awReceivedBuffer)且接收缓冲区容量为5(ARRAY [0..4] OF WORD)。

全局变量

POU头和LD本体

ST本体

如果"接收完成"标志为FALSE,则可从外部设备接收数据。系统变量sys_bIsComPort1ReceptionDone将评估“接收完成”标志。数据接收完成时(接收到结束代码后),“接收完成”标志将变为TRUE且数据接收随后将被禁止。若要准备系统以接收下一个数据而不立刻发送更多数据,需通过n_Number = 0执行F159_MTRN以重置接收缓冲区。

注释
  • 当正在执行扫描时,接收字节数可能会改变。例如,如果多次读取接收到的字节数,则在单次扫描中可能存在不同的状态。
  • 起始代码"STX"可复位接收缓冲区。

最后更新日期: 2024-07-16此页面上的反馈松下热线