【发布时间】:2019-03-07 23:44:14
【问题描述】:
我有一堆对象,每个对象都有一个唯一的 ID。
我需要互锁对象,以便一次只允许其中一个对象执行特定操作。
我有一个想法来定义一个所有对象都可以访问的整数。
如果互锁是空闲的,则整数包含一个零。然后允许对象将其自己的唯一 ID 放入整数中,执行操作并在之后放回零。
如果任何其他对象在锁定整数时检查该整数,它将看到一个不同于其自身 ID 的非零值并退出。
感觉几乎 100% 肯定我在这里重新发明了一个旧原则,但没有受过 CS 教育,我什至不知道它叫什么,所以我不知道要搜索什么。
我锁定声音的方法/有缺陷吗?我应该阅读什么内容?
请注意,这是相当低级的 61131-3/PLC 编程,因此没有单例模式等。
谢谢
【问题讨论】:
-
无法使用 C# 或 ST?
-
它的结构化文本
-
听起来您可以将对象转换为数组,然后生成一个将作为索引的整数并仅处理当前索引的对象并关闭所有其他对象。事实上,你的描述非常抽象。如果您要说出您要解决的实际任务是什么,可能有完全不同的方法可以使用。
标签: locking low-level-code iec61131-3