如何通过不同方式在SCL/CFC中访问数据块?
描述
可以通过不同方式在SCL/CFC中访问数据块。
可以在块中访问数据块号,输入管脚填起始地址。如果使用的是BLOCK_DB数据类型,也可以直接连接数据块。优点是,CFC中可以直接显示符号名。
可以将数据块与一个ANY指针相连。优点是,可以连接数据块中的某个变量,这个变量可以作为访问数据的起始点。
例程包括这两种情况的SCL代码。以下是程序中使用的数据块。
图. 1: 用户数据块示例
示例
通过数据块号访问:
请注意,BLOCK_DB数据类型仅针对于输入参数。如果要使用输出参数或者输入输出参数,必须使用不同的数据类型,并通过转换功能块后再访问数据。(比如INT_TO_BLOCK_DB)。
示例
通过ANY指针访问:
ANY指针格式在STEP 7在线帮助中有具体说明(标题: "Format of the ANY parameter type")。
图. 2: CFC中互连的功能块
数据块号在第一个块中参数化。STRT_ADD是定义了访问数据块的起始地址,在此例中是第一个结构变量的起始地址。
数据块与第二个功能块相连接。STRT_ADD参数定义了第二个结构变量作为起始地址。在第三个块中,ANY指针直接和第二个结构变量的起始地址相连。
注意
在读数据块的时候,注意没有超出数据块大小限制。
使用ANY指针时,注意检查程序中所需数据源是否正确,因为在CFC中如果连接ANY指针,不会检查数据类型。
楼主最近还看过