0

我目前正在构建一个控制器,它应该采用 Petri 网,并且基于它从另一个设备接收到的输入事件,应该将输出事件触发到同一设备。

问题是:Petri Net 如何将事件输出到外部设备?

  • 当一个地方收到一个令牌时它应该触发一个事件吗?
  • 是否应该在激活转换时触发事件?
  • ...
4

1 回答 1

0

这些问题的答案取决于技术和/或应用。

例如,考虑一个机器人在地板上的位置由鼠标控制的应用。地板显示在计算机屏幕上,指针代表机器人的位置。鼠标按下、鼠标移动和鼠标向上输入事件将在应用程序中使用。当鼠标按下事件发生时,初始化机器人(输出)事件被发送到机器人。当鼠标移动事件发生时,移动机器人(输出)事件被发送到机器人。当鼠标向上事件发生时,暂停(输出)事件被发送到机器人。

图 1(PDF 版本)是控制逻辑与机器人和地板模拟相结合的代币游戏。对于该模拟,计算机屏幕由Transition T2 表示。Transition T0 中的鼠标向下代表应用程序的鼠标向下,Transition T2 中的鼠标单击代表应用程序的鼠标向上。过渡 T2 中的鼠标移动会触发模拟中的移动机器人事件。机器人(红点)立即移动到新位置。

在此处输入图像描述

对于 Transition T0 中的鼠标按下事件,无论是在启用转换时触发输出事件还是触发转换输出时触发输出事件都无关紧要。这是因为当启用转换时,预计最终会在短时间内触发。对于过渡 T2 中的鼠标移动事件,移动机器人事件应在启用过渡时触发,因为在鼠标向上事件发生之前不会触发过渡 T2。

PDF 中提供了动态交互式图表:“如何为输出事件触发 Petri 网” 带有 JavaScrtip+SVG 的 HTML 也可作为 PDF 文档的附件提供。

于 2021-02-09T06:40:50.947 回答