实训25 共享数据块和系统功能的调用

实训25 共享数据块与系统功能的调用

关键字:共享数据块和符号表中的变量 为全局变量。可供所有逻辑块使用

注意符号表中的变量 描述 。 功能块中的变量 成为变量声明表,与符号表区别开来。

变量声明表里面的额变量是局部变量,符号表里的是全局变量。

 

关键字: 实际参数 "P#DB1.DBX0.0 INT 4"表示的是 共享数据表里面 的4个 数组元素的地址 。

在声明视图里查看 共享数据表的声明表 地址 0.0 对应数组的第一个地址。

 

 

 

数据块(DB)用来分类存储设备或者生产线中变量的值。

数据块分为 共享数据块 (DB) 和 背景数据块 (DI)

 

共享数据块 和符号表中的变量为全局变量,可供所有逻辑块使用。

 

CPU使用OPN指令分别打开一个共享数据块和一个背景数据块 。

打开新的数据块时,原来被打开的数据块将会自动关闭。

 

 

 

快递定义数据块的大小

 

然后单击 数据块 DB2 打开 只有一个 临时占位符变量 DB_VAR

 

将DB_VAR 变量名称改为 press 然后类型 选择 数组 ARRAY

 

下表中 建立了一个数组 ,array (数据类型是 int )

一个int 变量 voltage

一个int 变量 current

 

这个数据块 放在 C语言中 一个类似于结构体 的数据块

+0.0 表示 数组的起始地址为0 ,

*2 表示数元素的大小是2B

+8.0 表示改行上面的四个元素是8B

最左边地址列 的内容是自动添加的。

注意第一行 最左边的 0.0 类型 struct

最后一行 =12.0 类型 END_STRUCT

这个像C语言中的结构体

DB1.BUFFER[2] 是该数组中下标为2 的元素 。

 

部分2 调用系统功能。

 

 

调用的功能显示 如下 :

 

 

实现的功能 是把 MW2 的内容 通过 系统功能SFC21

SF21 用源存储区 BVAL的数值 初始化 目标存储区 BLK

假设在PLCSIM中 令MW2 的值 等于 520 十进制 dec

然后 付给DB1 里面的 数组的 4个元素。 注意 DB1 是共享数据块 存放的是全局变量。如果是功能块FB1 的背景数据块 名称应该是 DI1

 

在PLCSIM中设置 MW2 的步骤

    

 

直接打开 共享数据块 DB1 用 数据视图 模式 进行监控

说明 SFC21 FILL功能块 已经 将 MW2

分别写进了 数组prsee 的 元素1 元素2 元素3 元素 4

 

调用了系统功能块 SFC20 "blockMOV" 指令。将源存储区数据SRSBLK的内容复制到 目标存储区 DSTBLK

 

在sumatic 管理器下 选中"块",然后新建 变量表。 生成变量表 VAT_1

在变量表 VAT_1 中查看 "P#M10.0 INT 4" 即

MW10 MW12 MW14 MW16 MW18 的值的变化 。

 

 

将共享数据块 和 系统功能的调用 重头到位录制成 视频 。

注意视频中的数据共享块DB1 是全局变量 。

 

另外 系统功能 SFC21 和系统功能 SFC20 的形式参数都是什么类型的变量?

答:上述的两个SFC的参数 BVAL BLK SRCBLK 和DSTBLK 的数据类型 均为 参数类型 。

 

参数类型 用 ANY 表示 。

 

ANY主要用来表示一连串的数据区

例如 P#M10.0 INT 4 表示的是MW10 MW12 MW14 MW16

 

此外 ANY 的实参也可以是一个任意的数据类型的地址。 例如下图中的MW2

 

视频存放在百度网盘的地址 。

posted @ 2020-02-06 15:47  STEVEN-SUN  阅读(782)  评论(0编辑  收藏  举报