西门子——不同数据的存储方式(String)

  • 前言
  • 一、String(字符串类型)
    • 1.结构分析
    • 2.声明变量
  • 二、WString(字符串类型——中文)
    • 1.结构分析
    • 2.声明变量
    • 3.举例说明
  • 参考资料

前言

研究通讯时,小问题派生的支线,首次记录String数据类型,后续有时间的再慢慢扩充其他类型。


一、String(字符串类型)

1.结构分析

在西门子S7-300、400、1200、1500系列中,字符串(string)其实是以字符(char)数组的形式表示,最大可分配的空间为256字节。
来看一下结构图示:

由图片可以看出,第一二字节记录了分配长度以及有效长度,因此用于数据存储的长度就只有254个字节,故字符串类型最大长度不能超过254。

2.声明变量

在变量声明区声明如下:

1):默认长度(254),实际偏移256(256 - 0 总共占256字节)
2):设置长度(10) ,实际偏移12 (268 - 256 总共占12字节)

二、WString(字符串类型——中文)

1.结构分析

在西门子S7-300、400、1200、1500系列中,字符串(Wstring)其实是以宽字符(wchar)数组的形式表示,最大可分配的空间为256个wchar,256 * 2个字节。
wchar是用两个char以UTF16编码表示。
关于字符编码的对于转换请看
来看一下结构图示:

由图片可以看出,Wstring是一个宽字符数组(Wchar[]),以两个char组成一个wchar合并记录字符。与string类型相似,第一个wchar记录最大字符数(wchar的个数,不是char的个数),第二个wchar记录实际的字符个数(wchar的个数,不是char的个数),往后就是每个wchar代表着字符对于的UTF16编码。

2.声明变量

在变量声明区声明如下:

1):默认长度(254 个 wchar),实际偏移254 * 2 + 2 * 2= 512(794 - 282 = 512 总共占512字节)
2):设置长度(10 个 wchar) ,实际偏移10 * 2 + 2 * 2 = 24 (818 - 794 = 24 总共占24字节)

3.举例说明

设置如下图:

wstring输入“哇哈” 字符串,拆分一下:

最大长度 实际长度
实际值 254 2 Unicode码:0x54C7 Unicode码:0x54C8
双Char表示 0x00 0xFE 0x00 0x02 0x54 0xC7 0x54 0xC8

又因为西门子内存存储是大端表示所以数据高位存在低内存中(图中可见:数据254(0x00 0xFE)0x00就是数据高位,地址DBB282就是低内存;0xFE就是数据低位地址DBB283就是高内存)

参考资料

1.http://www.founderchip.com/?id=335

西门子——不同数据的存储方式相关推荐

  1. opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类

    opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类 参考文章: (1)opengl中的Floatbuffer和 ...

  2. Matlab中数据的存储方式

    简介 MATLAB提供了丰富的算法以及一个易于操作的语言,给算法研发工作者提供了很多便利.然而MATLAB在执行某些任务的时候,执行效率偏低,测试较大任务量时可能会引起较长时间的等待.未解决这个问题, ...

  3. Android数据的存储方式简介

    作为一个完整的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File. ...

  4. 赶紧进来修内功--- 详细讲解在内存中数据的存储方式(整形篇)

    本文详细介绍了所有整形家族类型的取值范围;整形数据在内存中的存储方式(大小端存储方式)以及对应的解析,介绍讲解判断当前机器的存储方式代码练习题,掌握后编程基础更进一步牢固!!! 数据的存储 一.整形数 ...

  5. 浏览器中数据的存储方式

    cookie 解决问题 http 请求是无状态的,即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不知道当前请求是哪个用户. cookie 第一次登录后服务器返回一些数据(cookie)给 ...

  6. 【Java数据结构】计算机中数据的存储方式(为什么要使用B树)

    多路查找树 计算机的存储 内存 硬盘 硬盘基本构成 硬盘存储的优缺点 磁盘的预读 二叉树与B树 二叉树读取数据 B树读取数据 计算机的存储 计算机中的存储大致可以分为内存与硬盘存储,硬盘还能继续分为机 ...

  7. Android中的5种数据存储方式

    Android中的5种数据存储方式 Android中的5种数据存储方式 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPref ...

  8. 大数据有哪些存储方式?

    大数据的火热,带来的是大数据相关技术的火热,大数据处理当中面临的第一道障碍就是关于大数据存储的问题.那么针对于大数据存储问题的解决,大数据的存储方式有哪些,在这些大数据存储方式上又该如何选择,下面我们 ...

  9. 浮点型数据存储方式浅析

    学习目标: ①   搞懂float和double型数据的存储方式 ②   实现浮点型二进制和十进制的相互转换 ③   了解float和double类型的取值范围及其精度的由来 浮点型作为Java基础数 ...

最新文章

  1. shell脚本修复MySQL主从同步
  2. LINQ的基本语法中八个关键字用法说明
  3. awk详细教程:第二部分
  4. 云炬金融每日一题20211012
  5. asp编程工具_使用ASP.NET Core构建RESTful API的技术指南
  6. Python打包分发工具setuptools简介
  7. 看了三张照片,这个AI只用20分钟破获六年“悬案”
  8. Could not find artifact
  9. wireshark 十六进制过滤_Wireshark过滤表达式大全
  10. Python面试题【315+道题】
  11. [转]香农信息论与毒药称球问题
  12. 群辉服务器根目录新建文件夹,群晖 synology NAS 存储创建存储空间的方法
  13. 云原生生态周报 Vol. 3 | Java 8 ❤️ Docker
  14. [C#]对Excel的操作
  15. 【远距离无线模块】WDS3及SI4338使用步骤及配置说明
  16. zblog include html页面,zblog模板开发第一课:zblog标签调用大全
  17. 【数据结构】之排序算法综合篇
  18. 财帮子,一个非常不错的投资理财社区
  19. 3行代码实现全平台多语言离线OCR文字识别,完全免费开源
  20. 服务器系统2012浏览器,关闭Windows 2012系统IE浏览器”增强的安全配置已启用”问题 | 老左笔记...

热门文章

  1. 利用 Pyecharts 制作饼图
  2. 融入动画技术的交互应用-雪花
  3. Java开发:哪些技能测试来评估Java开发人员的技能?
  4. 从第三方应用跳回uniapp开发的app
  5. 基于STM32-消防栓监测系统毕业设计---论文(附加最全面的从硬件电路设计->驱动程序设计->阿里云物联网搭建->安卓APP设计)
  6. android中检测网速,Android 流量与网速监测(悬浮窗) 源码
  7. redis crackit入侵事件总结
  8. Excel表格标题重复打印
  9. 能骗173万的诈骗电话可以做到多逼真?
  10. 11,你听说过vue过渡动画了嘛?没有吧? 众里寻他千百度,百度不一定全面?