西门子6ES7234-4HE30-0XB0

发布时间:2018-04-03
line;background-color:#FFFFFF;">

如何将大尾形式的字,双字转换成小尾形式的字,双字或者反之?

line;background-color:#FFFFFF;">
  • 文献
  •  
  • 涉及产品

说明:
当与第三方系统通讯时(例如通过 Modbus 协议时), 由于在存储器中不同的字节顺序可能会导致通信的冲突。 S7-200 是以大尾形式存储:数据中的高字节存储在存储区的低位地址。其它的存储方式:

  • 小尾:数据中的低字节存储在存储区的低位地址。
  • 中尾:3-4-1-2 顺序或 2-1-4-3  顺序 (数字顺序与所参考的大尾双字中的字节顺序相对应)

通过使用 "Endian" 库将字和双字转换成为需要的字节顺序


图. 01

库包含了以下程序块 "Endian_B_DW", "Endian_D_DW" and "Endian_B_W"。

Endian_B_DW


图. 02

"Endian_B_DW" 块将 "IN" 端双字的字节顺序转换成 "OUT" 端双字的字节顺序,此功能被用来将大尾形式存储的双字转换成小尾形式存储或相反。


图. 03

图. 03 显示了双字 VD0 = 16#1A2B3C4D 转换成双字 VD4 = 16#4D3C2B1A。双整型数 439.041.101 与 16 进制数1A2B3C4D 和浮点数 3.541068*10^(-23) 是相一致的。

Endian_W_DW


图. 04

 "Endian_W_DW"  块将 "IN" 端 双字中字的顺序转换成为 "OUT" 端双字中字的顺序。此功能将以大尾存储的双字转换为中尾3-4-1-2存储或相反。


图. 05

图. 05 显示了双字 VD0 = 16#1A2B3C4D  转换成为双字 VD8 = 16#3C4D1A2B。

Endian_B_W


图. 06

 "Endian_B_W" 块将 "IN" 端 字中的字节顺序转换成 "OUT"  端字中的字节顺序 。此功能将以大尾存储的字转换成小尾存储或相反。如果将此功能用于双字中的两个字,就可以实现将大尾存储的双字转换成中尾2-1-4-3存储或相反。


图. 07

图. 07显示了双字 VD0 = 16#1A2B3C4D 转换成双字 VD8 = 16#2B1A4D3C。

下载:
下载后的 "Endian.zip" 包含了 "endian.mwl" 库 和例程 "Endian.mwp" (见图. 02, 04 和 06).

 Endian.zip ( 5 KB )

注释:
在 STEP 7 Micro/WIN 中加入库,请参看文档: 16689345

上一篇:PD800H-D14 多功能电力...
下一篇:RV-4U液压换向阀使用说明