【问题标题】:Determine Remaining Bytes确定剩余字节
【发布时间】:2015-09-13 16:28:39
【问题描述】:

我正在做一个项目,我需要使用 CoDeSys 在两个硬件之间发送一个值。使用的通讯系统为CAN,只能以字节传输,最大值为255。

我需要发送一个高于 255 的值,我能够将其拆分为多个字节,并在接收机器上对其进行重构以获得原始值。

我想我可以将REAL 值除以 255,如果结果大于 1,则将该值解构为一个字节,其中包含余数,一个字节包含整数中 255 的数量。

例如 355 相当于一个字节 100 和另一个字节 1。

虽然我可以描述这一点,但我很难弄清楚如何用逻辑实际编写它。

有人可以帮忙吗?

【问题讨论】:

  • 您的问题与您的旧问题非常相似:stackoverflow.com/questions/31369151/…。为什么我在上一个答案中提供的解决方案不能解决您的问题?注意:您使用的是 REAL 值,并且应该始终发送 REAL 中的所有 4 个字节,如果值高于 255 则无关紧要。因为浮点运算的准确性需要所有 4 个字节。

标签: codesys


【解决方案1】:

如果我理解正确,这一切都在 CoDeSys 中为您处理。 1. CAN - 是的,它以字节为单位,但您不能使用 CANopen 您正在使用要求您发送 8 字节数组的 CAN 帧的低级 FB?

如果是您自己的两个自定义控制器(您在 CoDeSys 中对它们进行编程),只需使用网络变量。 Netvariables 允许您传输任何类型的变量,您可以从一个控制器获取变量列表并将其导入另一个控制器,所有数据都会显示出来。您不必在后台为您进行任何变量操作。但我不知道你的系统的细节以及你想要做什么。

如果您尝试将构造变量从一种大小解构为另一种大小,这很容易,我可以与您分享该代码。

【讨论】:

    猜你喜欢
    • 2015-10-13
    • 2019-06-30
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 2023-03-09
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多