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


n

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

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

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

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

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

Endian_B_DW

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

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

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

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

Endian_W_DW

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

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

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

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

Endian_B_W

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

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

如何将大尾形式的字,双字转换成小尾形式的字,双字或者反之?
图. 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

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc335862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论