-1

我很难找到我用结构化文本和指令列表语言编写的程序的汇编代码。我找不到书面代码的二进制代码,也不知道它们是在哪个 ISA 中转换的。我为这些二进制代码编写了一个反汇编程序。

4

1 回答 1

0

正如 Ira 所说,我认为您的方法相当误导。就 PLC 指令而言,实际上没有什么可拆卸的。PLC 指令(梯形图、IL 等)从直接机器指令中抽象出来(如果有的话)。当您查看 IL 时,您实质上是在查看一种汇编语言形式。

如果执行时间是一个问题,那么您几乎无法在机器级别优化它们——您已经在那里工作了。算法本身就是需要改变的。每个 PLC 手册都会列出它支持的每条指令的执行时间——这是您应该开始搜索以进行优化的地方。查看程序并尝试确定哪些梯级占用了您的扫描时间。尤其是浮点运算和循环(无论如何都不应该使用它!)是您真正可以延长执行时间的地方。看看有没有办法让你在那里重构。您可以将除法更改为乘法等吗?

另一种可能性可能只是您正在使用的 PLC 不适合这项工作。大多数制造商以不同的价格提供一系列基本单元。这些系统之间的执行速度可能会有很大差异。我有一系列低成本的 PLC 单元,例如,在同一个单元系列中,其中最快的(DL450)可以在 23 微秒内执行二进制除法,而最慢的(DL430)将需要近 5000 微秒. DL450 将在比 DL430 执行两次分割时更短的时间内执行其整个(相当复杂的)扫描!我有几台 Omron PLC,它们将在一个 DL430 分区的时间内完成它们的整个程序扫描。

您可能只需要一个更快的基本单元吗?

于 2013-02-20T16:45:01.407 回答