说明:
使用地址指针化,可以通过指针变量分别去改变地址区域。n
地址指针化的用途
地址指针化允许通过一个变量(指针变量)去调用控制器地址区域中的多个存储区域。不必为这些多个存储区域定义独立的变量,就可以对它们进行读写操作。对于处理大量的数据,这是一种非常有效的方法。n
应用要求
- 基于 Windows 的设备
指针化仅对于使用 SIMATIC WinAC,SIMATIC S7-300,SIMATIC S7-400 或者 SIMOTION 作为控制器时才有效。n
- 文本设备
地址指针化只对 OP 7,OP 17 和 TD 17 有效。
可以使用 SIMATIC S7-300,SIMATIC S7-400 或者 SIMATIC S7-NC 作为控制器。
注意:
存储区域中的值仅在下一个变量更新周期才能被有效地读到。
例如,若在脚本中使用指针变量,每次改变存储区域后不要直接访问其内容。n
注意:
避免在脚本内改变指针变量的索引值和访问这些变量。
改变指针变量的索引值并且访问这些变量(例如在相同的脚本内部)可能导致数据不一致!n
样例程序:
使用间接寻址可以配置如下这种应用情况:
操作员从选择列表中选择多台机器中的一个。根据操作员的选择,相应机器的过程值显示在输入或输出域中。
n
序号 |
操作说明 |
1 |
创建变量 n
- 在 ProTool 中创建集成项目(例如 TP270 10")。n
- 在项目树中单击“Tags”并且创建数据类型为“INT”(DB1.DBW10)名称为“Multiplex”的变量。n
- 然后创建如下变量,它们的地址由指针变量(Multiplex)在运行时来指定:
n
变量 |
数据类型 |
地址 |
Set_rotation_speed |
INT |
DB [mux] DBW0 |
Actual_rotation_speed |
INT |
DB [mux] DBW2 |
Current |
INT |
DB [mux] DBW4 |
Temperature |
INT |
DB [mux] DBW6 |
Motor_on |
BOOL |
DB [mux] DBX 8.0 |
Fault |
BOOL |
DB [mux] DBX 8.1 |
图 01
|
2 | 创建一个文本列表 n
- 在符号列表图标上右键单击,然后选择“Text/Graphic List insert...”。n
- 指定“Motors”为符号列表名称并输入如下文本作为参数(值): n
值 | 文本 | 1 | Motor 1 | 2 | Motor 2 | 3 | Motor 3 | 图 02
|
3 | 创建一个画面并添加文本域 n
- 创建一个新画面并定义它为起始画面。n
- 添加六个文本域,名称如下:
- "Drive" - "Set rotation speed" - "Actual rotation speed" - "Temperature" - "Current" - "Fault"
图 03
|
4 | 添加输入输出域 n
- 添加一个输入域和四个输出域。n
- 连接“Set_rotation_speed”变量到输入域。n
- 连接如下四个变量到输出域:
- "Actual_rotation_speed" - "Temperature" - "Current" - "Fault"n
- 添加一个组合列表框到画面,并连接指针变量“Multiplex”和“Motors”符号列表。
图 04
|
5 | 添加按钮和矩形 n
- 创建一个矩形,它能覆盖所有的插入对象,并将其置于背景。为此,右键单击并选择“Align > To The Back”。n
- 然后添加一个开关类型的状态按钮。对于按钮的“Pressed”状态设定标识为“ON”,“Released”状态对应为“OFF”。n
- 为按钮连接变量“Motor_on”。n
- 添加四个文本域作为单位标识“rpm”,“°C”和“A”。
图 05
|
6 | 配置控制器 n
- 在 STEP 7 中配置控制器(例如 CPU315 2-DP)并连接面板到控制器。n
- 按照如下参数创建数据块“DB1”:
n
名称 |
数据类型 |
地址 |
Set_Rotation_speed |
INT |
+0.0 |
Actual_Rotation_speed |
INT |
+2.0 |
Current |
INT |
+4.0 |
Temperature |
INT |
+6.0 |
Motor_on |
Boolean |
+8.0 |
Fault |
Boolean |
+8.1 |
Mux |
INT |
+10.0 |
- 将该数据块制作两个拷贝并将其名称修改为“DB2”和“DB3”。
图 06
|
7 | 启动运行系统
- 将工程下载到控制器或 S7-PLCSIM 并切换 CPU 到 RUN。
- 下载工程(ProTool)到面板或启动运行系统。
- 选择“Motor_1”并输入设定转速值。
- 然后在选择域中选择“Motor_2”。
图 07
功能 操作员通过文本列表选择一个电机。通过文本列表的索引,一个合适的值被读入。基于该数值,相关的 DB 块被打开并且高亮显示数据。 |
下载:
样例工程包含如上的示例。使用的面板是 TP270 10"。
附件_1:ProTool_AddressMux.zip ( 283 KB )
可运行及测试环境:
下表列出了用于创建本文档及校验所述功能已使用的组件。
组件 |
软件及版本 |
PC operating system |
Microsoft WindowsXP SP2 |
Standard tools |
- |
Engineering tool |
- |
HMI software |
ProTool V6.0 SP3 HF3 |
HMI system |
- |
关键词:
变量指针化,地址指针化,间接寻址
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc337605.html