我有一个8字节的数组,代表一些巨大的数字,例如11017125042小数点-它看起来像000000090ABFC B2。
我想把8字节转换成32位有符号整数,去掉最后4位数字。
如果你想知道,这是一个位置值,其中一次革命是10亿个单位,所以这个值意味着11.017125042次革命。我不需要如此荒谬的决议,所以我想得到初始值除以10,000 - 1101712,而不是11017125042。
棘手的部分是该系统(西门子PLC)不支持64位算法.知道怎么做吗?
谢谢你的建议。
发布于 2022-03-21 10:51:37
在LAD/FBD块的SCL块或SCL网络中执行此操作。
#posLrealDiv10k :=
+ #posBytes[7] * 0.0001 //remove if you don't care
+ #posBytes[6] * 0.0256 //remove if you don't care
+ #posBytes[5] * 6.5536 //...
+ #posBytes[4] * 1677.7216
+ #posBytes[3] * 429496.7296
+ #posBytes[2] * 109951162.7776
+ #posBytes[1] * 28147497671.0656
+ #posBytes[0] * 7205759403792.7936;

SIOS论坛通常对这类转换问题很有帮助。只是不是这个特别的,似乎。
https://stackoverflow.com/questions/71528049
复制相似问题