0

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

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

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

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

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

有人可以在这里帮忙吗?

4

1 回答 1

0

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

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

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

于 2015-11-14T00:52:07.427 回答