执行顺序

以下情况下,
Logix Designer
编程应用程序会自动确定例程中各功能块的执行顺序:
  • 验证功能块例程
  • 验证包含功能块例程的项目
  • 下载包含功能块例程的项目
要定义执行顺序,可将功能块连接在一起,必要时可指示任何反馈线的数据流。
如果功能块未连接在一起,则功能块的执行顺序并不重要。功能块之间不存在数据流
fbd_ExOrder1
如果将功能块按顺序连接在一起,将按由输入到输出的顺序执行。要使控制器执行某个功能块,必须首先获得该功能块的输入数据。例如,由于功能块 2 的输出将送入功能块 3 的输入,因此功能块 2 必须在功能块 3 之前执行。
fbd_ExOrder2
执行顺序仅与连接在一起的功能块相关。在下面的示例中,由于两组功能块未连接在一起,因此不存在执行顺序问题。在特定分组中的功能块将按照相对于该分组中各功能块的顺序执行。
fbd_ExOrder3
解析回路
要围绕某个功能块创建反馈回路,应将功能块的输出引脚连接到同一功能块的输入引脚。下面的示例不存在问题。该回路只包含一个功能块,因此执行顺序并不重要。
ResolveLoopEx1
如果回路中有一组功能块,控制器将无法确定先执行哪一个功能块。也就是说,控制器无法解析回路。
ResolveLoopEx2
要确定首先执行哪个功能块,应使用
Assume Data Available
(假设数据可用)指示符标记用于创建回路的输入线(反馈线)。在下例中,功能块 1 使用前次执行例程时功能块 3 的输出。
Localized feedback wire
Assume Data Available
(假设数据可用)指示符用于定义回路中的数据流。箭头指示数据将作为回路中第一个功能块的输入。
使用
Assume Data Available
(假设数据可用)指示符标记回路中的所有线路。
ResolveLoopEx4
解析两个功能块之间的数据流
如果使用两条或多条导线连接两个功能块,应对两个功能块之间的所有导线使用相同的数据流指示符。
Resolve Data Flow Between Two Blocks
创建一个扫描周期的延时
要在两个功能块之间产生一个扫描周期的延时,应使用“Assume Data Available”(假设数据可用)指示符。在下面的示例中,功能块 1 首先执行。它使用上次扫描例程时功能块 2 的输出。
OneScanDelayEx1
总结
综上所述,功能块例程按以下顺序执行:
  1. 控制器将所有数据值锁存在 IREF 中。
  2. 控制器按照由接线方式确定的顺序执行其他功能块。
  3. 控制器将输出写入 OREF。
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal