290 likes | 418 Vues
第五章 变量及数据. 变量. 变量 是在程序执行期间可以修改的以 BOOL, WORD, DWORD 等为类型的内存实体 。 定位变量 是或者 与 I/O 模块输入输出通道相关联的变量,或者是与内存引用相关联的变量. 例如, 变量 Water_pressure 与内存字 % MW102 相关联. Water_pressure 就是定位变量. 非定位变量 是既不与 I/O 模块也不与内存引用相关联的变量 (其在存储器内的位置不可知). 没有与地址关联的变量为非定位变量. 变量 (续).
E N D
变量 • 变量是在程序执行期间可以修改的以BOOL, WORD, DWORD等为类型的内存实体。 • 定位变量是或者与I/O模块输入输出通道相关联的变量,或者是与内存引用相关联的变量.例如, 变量 Water_pressure 与内存字 %MW102相关联. Water_pressure 就是定位变量. • 非定位变量是既不与I/O模块也不与内存引用相关联的变量 (其在存储器内的位置不可知). 没有与地址关联的变量为非定位变量.
变量 (续) • 公共变量是应用于功能块的变量. 这些变量把数值传递到功能块. 它们用于设定功能块参数. • 私有变量是一些功能块使用的变量. 这些变量不能通过应用程序存储. • I/ODDT是输入/输出导出数据类型(Input/Output Derived Data Type)的缩写. I/ODDT 设计为结构化数据类型,代表一个PLC模块的通道. 每个专用模块拥有它自己的 I/ODDT. • 常数是 位于常数域 (%K)中的INT, DINT 或 REAL 类型变量, 或直接寻址变量 (%KW, %KD, 或 %KF). 在程序执行期间不能修改.
通用数据类型和范围 • BOOL/EBOOL : 布尔变量必须为 FALSE (0) 或 TRUE (1). EBOOL 处理强制和边沿检测 • WORD : 代表 “位串16”, 意味着数据长度为 16 位 • INT : 代表整型数. 数值范围从 -32768 至 +32767 • UINT: 代表无符号整型数. 数值范围从 0 至 65535 • REAL: 代表浮点值. 数值范围从 -3.40e+38 至 3.40e+38
输入文本型数值 • 文本型数值用于给管脚赋值, 或给变量赋值常数, 但不意味着可以由程序更改. • 可以输入文本型数值 • 二进制 2#1111111111111111 • 八进制 8#177777 • 十进制 65535 (不需要 10# ) • 十六进制 16#FFFF 以上数值都相等, 它们只是输入格式不同
变量名称 • 最长 32 个字符, 可以以数字开头 非定位变量 • 不带硬件地址的标签名称 • 非定位变量不能周期设定. 如果在项目中需要周期设定变量,使用定位变量 定位变量 • 带硬件地址的标签名称 (静态 RAM) 常量 • 具有写保护功能的变量 • 用于给变量赋固定值
配置, 寻址和变量赋值 硬件 状态内存 变量列表 程序
直接寻址 • 每个直接地址有一个在序列中指示位置的参考值,或者是输入地址 (只读) 或者是输出地址 (读 / 写). • 0x / %QXx 区域 = 位输出 (离散) – 例 1: 000001 是离散输出1 – 例 2: %QX00001 是输出位 1 • 1x / %IXx 区域 = 位输入 (离散) – 例 1: 100017 是离散输入 17 – 例 2: %IX00017 是输入位 17 • 3x / %IWx 区域 = 寄存器输入, – 例 1: 300300 是寄存器输入 300 – 例 2: %IW000300 是输入字 300 • 4x / %QWx 区域 = 寄存器输出, – 例 1: 400029 是寄存器输出 29 – 例 2: %QW00029 是输出字 29
变量和 FB 实例目录 • 存储 变量 (基本和导出)和功能块实例
编辑变量 • 在同一个工具中作变量的类型定义和实例声明 3 标识符 2 非定位变量 双击单元进入编辑模式 数据类型 1 定位变量
过滤 • 通用类型 (EDT, ...)或变量名称可以直接过滤 • 使用变量属性的漏斗过滤器 (类型, 注释, 地址,...) 1 3 2
配置显示列 • 配置显示列 • 用户可以根据需要来配置想要显示的变量参数列. 列的显示顺序可以通过右侧按钮调整 选中名称前面的检查框可以显示相关列 . 1 1 2 2
数据属性 (续) • 变量的所有参数可以在数据属性窗口中显示.
编辑数据类型 • 数据类型可以从以前使用过的类型列表中选择 • 或通过按 […] 按钮从变量类型中直接选择 1 2 2 1
5 2 1 3 4 IODDT • 使用完整的 I/O 结构数据将模块通道映射到变量上
4 1 3 - DFB 程序段 2 编辑导出功能块 (DFB) • 定义用户功能块类型
编辑功能块 (EFB, DFB) • 使用功能块实例 2 1
1 2 3 导出数据类型 • 定义数组或结构类型
变量类型 (DDT) • 使用数组或结构实例 4
1 2 3 导出功能 • 可以使用不同选项导出整个程序段: 包含导出数据类型 (DDT) 包含导出功能块 (DFB) 包含子程序 1 2 3
1 2 导出功能 (续) • DDT 或 DFB 实例可以与相关类型同时导出,便于在新程序中的重复使用 导出DDT变量类型 导出DFB变量类型 1 2
导入功能 • 使用向导可以改变变量、程序段的命名, ... 或映射地址 • 可以导入应用程序的部分或全部. • Unity Pro 提供两种导入模式: • 直接导入, 组件导入与导出时的状态完全相同. • 通过导入向导 (1), 可以修改变量,程序段的名称, 以及改变映射的地址.
在程序中编辑 • 变量可以在任何编辑器直接创建 : • 当输入变量时, 智能分析器检查可用性 • 如果变量不存在,会弹出窗口,建议用户创建变量 • 可以在编辑器中调用数据属性窗口以显示和修改对象属性 • 窗口在选择时更新
I/O 对象 • 在硬件配置中提供新的服务 • 选择和显示由模块或CPU 管理的所有对象 • 单击创建 IODDT 或拓扑 EDT 变量 • 预先使用一组 IODDT 变量或拓扑EDT变量符号 • 显示应用中使用的 I/O 对象
I/O 对象编辑 选择对象类型 更新网格表 选择其中一部分 定义前缀 创建变量 1 2 3 4 5
I/O 对象的人机工程学 • I/O 对象在变量中映射或在程序中使用的采用粗体显示 • 可以只关注使用过的变量 :点击 Filter on usage按钮
实验一 • 基本变量的定义
实验二 • 复杂数据类型和变量的定义