常量的基本知识
定义
常量是具有固定值的数据,其值在程序运行期间不能更改。常量在程序执行期间可由各种程序元素读取,但不能被覆盖。不同的常量值通常会指定相应的表示方式,具体取决于数据类型和数据格式。类型与非类型表示方式不同。
无类型的常量
在无类型的表示法中,仅输入常量值即可,无需输入数据类型。对于无类型的常量,只有在首次算术运算和逻辑运算中使用后,才会获得数据类型。
以下示例为无类型的表示法:
#My_Int1 := #My_Int2 + 12345 | (*常量“12345”的数据类型 取决于加数 My_Int。2.此时,“12345”的数据类型为 INT。*) |
#My_Real1 := #My_Real2 + 12345 | (*常量“12345”的数据类型取决于加数 My_Real2。此时,“12345”的数据类型为 REAL。*) |
带有数据类型的常量
在有类型的表示法中,除指定常量值外还指定数据类型。
以下示例为有类型的表示法:
#My_Int1 := INT#12345 | (*The data type of the constant is always INT.*) |
说明 LAD/FBD 中的 BOOL 型常量 仅 S7-1200 系列 CPU(固件 V4.0 或更高版本)和 S7-1500 系列 CPU(固件 V1.8 或更高版本),LAD / FBD 中的指令输入才能使用 BOOL 型常量。 在较早的固件版本中,BOOL 型常量仅适用于系统内部函数块 (FB) 的指令。如果在程序段中插入该指令时“调用选项”(Call options) 对话框打开,则表示使用这些指令。对于其它指令,均不得将布尔型常量用作输入。 在 S7-300/400 中,不允许使用布尔型常量。 |
符号常量
可以选择声明常量符号名,从而使程序中名称下的常量值可用。这使得在更改常量值时,程序更具有可读性并且更易于维护。
符号常量由以下元素组成:
名称
数据类型
符号常量始终有数据类型;无类型表示法不适用于符号常量。
常量值
可以选择指定数据类型值范围内的任意值作为常量值。有关值范围的信息,请参见“数据类型”一章。
常量声明
可以定义具有不同适用范围的常量:
全局常量适用于 CPU 的所有区域
局部常量仅在块内适用
下表显示常量类型之间的区别:
适用范围 | 在整个 CPU 中有效。 该名称在 CPU 中唯一。 | 仅在声明它们的块中有效。 该名称在块中唯一。 |
允许的字符 | 常量名称允许使用的字符包括字母、数字和特殊字符。 | 常量名称允许使用的字符包括字母、数字和特殊字符。 |
定义位置 | PLC 变量表的“常量”(Constants) 选项卡 | 块接口 |
表示法 | 括在引号中,例如: "Glob_Const" | 带有数字符号前缀,例如: #Loc_Const |
如果声明的局部常量和全局常量具有相同的符号名称,并将此重复指定的名称用作变量的默认值,则会发生名称冲突。此时,系统将自动使用局部常量。
常量的数据类型允许的数据类型
对于常量,允许使用所有基本数据类型和所有衍生数据类型:
二进制数
位字符串
整数
浮点数
定时器
日期和时间
字符串
所有显式和隐式类型转换的通用规则均适用。
无类型常量的数据类型
无类型常量不显式指定数据类型。只有在首次算术运算和逻辑运算中使用后,才会获得数据类型。
以下示例说明如何使用无类型常量:
#My_Int1 := #My_Int2 + 12345 | (*常量“12345”的数据类型 取决于加数 My_Int。2.此时,“12345”的数据类型为 INT。*) |
#My_Real1 := #My_Real2 + 12345 | (*常量“12345”的数据类型取决于加数 My_Real2。此时,“12345”的数据类型为 REAL。*) |
使用常量的示例 |
在指令、赋值语句和表达式中使用
在指令或赋值语句中,常量可代替变量使用。也可以在 SCL 的表达式中使用常量。但是,由于常量无法写入,常量只能用作输入。
以下示例说明常量可能的用途:
#My_Int := 3; | |
#My_Real1 := #My_Real2 * 3; | |
#My_Real1 := #My_Real2 * #My_local_const; | |
#My_Real1 := #My_Real2 * "My_global_const"; |
- 西门子博途: 使用 IEC 定时器和计数器 2024-11-23
- KUKA C4 安装工业以太网软件 2024-11-23
- STEP7-压缩用户存储器(RAM) 2024-11-23
- 西门子博途: 网络视图 2024-11-23
- 西门子S7-300模块扩展IO接线 2024-11-23
- 西门子编程电缆PC Adapter USB A2使用 2024-11-23
- 西门子S7-200SMART和S7-1200之间通信(图文) 2024-11-23
- 利用西门子S7-1200计数器指令,实现设备运行时间统计 2024-11-23
- 【实例】变频器、触摸屏、PLC的综合运用,边学边用边实践! 2024-11-23
- 西门子博途 S7-1200:重命名硬件组件 2024-11-23