网站首页 > 技术文章 正文
本篇简要的介绍字符及字符串数据类型的概念和用法,文章最后简要介绍寻址。
字符即CHAR (Character),其数据类型的变量长度为 8 位,占用一个 BYTE 的内存。CHAR数据类型将单个字符存储为 ASCII 编码形式。下表列出了 CHAR 数据类型的取值范围:
字符串(string)是字符(character)的集合,是一种数据类型。西门子S7系列PLC的编程中规定该数据类型最多占用256个字节的存储区:
从中可以看出,最多可以存储254个字符,剩下的2个字节用来存储字符串的最大长度和当前长度。
声明字符串变量
- 在块接口中,选择需声明的部分。
- 在“名称”(Name) 列中输入一个变量名称。
- 在“数据类型”(Data type) 列中输入“STRING”。输入时系统将提供自动完成功能。
- 可选:在关键字 STRING后面,使用方括号指定字符串的最大长度。如果未指定最大长度,则字符串的默认长度为 254 个字符。
下图是默认长度字符串、8个字符及数组声明示例:
给字符串变量赋值
可以使用单引号''给字符串赋值,也可以使用"中括号+索引"的方式直接给字符串中的某个字符赋值。
下面举例说明字符串赋值以及监视变量的值:
CONCAT(合并字符串)指令将 IN1 输入参数中的字符串与 IN2 输入参数中的字符串合并在一起,以 STRING 格式通过 OUT 输出参数输出。
- 1、如果生成的字符串长度大于 OUT 输出参数中指定的变量长度,则将生成的字符串限制到可用长度。
- 2、如果在指令的执行过程中发生错误而且可写入 OUT 输出参数中,则将输出空字符串。
寻址
中括号+索引的方式赋值,其实也就是寻址,关于寻址,西门子是这样解释的:寻址是向操作数或操作数区域分配地址。有两类:
- 绝对寻址:使用绝对地址指定要处理的操作数地址。 示例: 地址 Q4.0 指定了过程映像输出的字节 4 的 0 位。
- 符号寻址:使用名称而不使用绝对地址。 示例: 将为输入I1.0 分配符号名称“启动信号”(Start signal)。
程序代码段中的共享符号与局部符号之间的差别可区分如下:
- 1、来自符号表中的符号(共享符号)将显示在引号" "内。
- 2、来自块的变量声明表中的符号(局部符号)将在前面冠以字符#。
- 3、引号或#无须输入。在梯形图、FBD或SCL中输入程序时,语法检查将自动添加这些字符。
猜你喜欢
- 2025-01-26 Python super()函数:调用父类的构造方法
- 2025-01-26 C语言中结构体struct的用法(c语言结构体中的结构体)
- 2025-01-26 80_VBA 变量的声明和赋值(vba中变量的作用范围)
- 2025-01-26 结构化编程的三种基本结构(结构化编程的三种基本控制结构)
- 2025-01-26 C语言函数的调用原理不理解?深入浅出通俗易懂,一文读懂函数栈
- 2025-01-26 JS奇淫技巧:一行赋值语句,能玩出多少花样?
- 2025-01-26 抽象函数单调性问题中构造策略(抽象函数单调性解题技巧)
- 2025-01-26 面试中的老大难-mysql事务和锁,一次性讲清楚
- 2025-01-26 如何在 C# 中创建一个不可变的变量?
- 2025-01-26 四问+一图,读懂《助力中小微企业稳增长调结构强能力若干措施》
- 最近发表
-
- 如何在 Linux 上安装 Java_怎么在linux中安装jdk
- Linux中tar命令打包路径相关问题_linux怎么用tar打包一个目录
- 常用linux系统常用扫描命令汇总_常用linux系统常用扫描命令汇总表
- VM下linux虚拟机新建过程(有图)_linux虚拟机创建新用户命令
- 系统小技巧:迁移通过Wubi方式安装的Ubuntu系统
- 文件系统(八):Linux JFFS2文件系统工作原理、优势与局限
- 如何利用ftrace精确跟踪特定进程调度信息
- prometheus网络监控之fping-exporter
- hyper linux的实操步骤,hyper-v批量管理工具的使用指南
- 2021年,运维工程师笔试真题(二)(附带答案)
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)