ABBAC900F学习笔记205:modbus通讯16
标签:
abbac900ffreelancemodbus通讯 |
分类: ABBDCS |
接着学习文档,第四章4.11小节,实数转换成尾数和指数,功能块RTOME

功能:将实数拆分成尾数和指数。某些系统浮点数占用两个WORD,需要将freelance的实数拆分成尾数和指数放入两个WORD进行传输。实数数值作为输入分配给RTME的FLV,功能块自动转换成EXP指数和尾数MNT两个WORD类型数据输出。能够做此拆分输出的师叔范围为:

+0.0001至3.2767*E38
-0.0001至-3.2768*E37
和0
值的代数符号位(z正负)于包含的尾数中(二进制最高位为1是负数,为0是证书).
算法是:首先转换成16位2进制,如果最高位是0,为正数,那么直接换成10进制就是数值,如果首位是1,为负数,将二进制减去1,然后各位取反,再转换成10进制,加上负号。
举例如下
尾数8000H,转换成二进制是1000000000000000,首位是1,负数,减去1为111,1111,1111,1111,各位取反是1000,0000,0000,0000换成10进制加负号是-32768
尾数是FFFF,转换成二进制是1111111111111111,首位是1,为负数,减去1是1111,1111,1111,1110,各位取反是1,所以最终是-1.
尾数是0000,转换成二进制是0000000000000000,首位是0,正数,十进制也是0
尾数是7FFF,转换成二进制是111111111111111,最高位是0,正数,转换成十进制是32767
这个功能块转换效果示例如下:
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
上表是不是看着有点懵逼?刚开始我也是这样子的,和我理解的不太一样。ABB文档没有介绍具体算法,只有在网络上IT网站搜索一下。
先把这个知识点放下,以后我领会了再补充。
这个功能块无法可视化,也为u发在freelance operation运行时进行操作。
参数配置
没有参数需要填写
功能块数据
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|

加载中…