工控智汇

工控智汇

跟我一起看博途1200系统手册之数据类型的介绍

admin 186 198

1、数据类型用于指定数据元素的大小以及如何解释数据。

每个指令参数至少支持一种数据类型,而有些参数支持多种数据类型。将光标停在指令的参数域上方,便可看到给定参数所支持的数据类型,如下图所示:


形参:指的是指令上标记该指令要使用的数据位置的标识符,比如上图中IN1

实参:指的是包含指令要使用的数据的存储单元(含“%”字符前缀)或常量。比如说%MD400。

指定实参时,必须指定变量(符号)或者绝对(直接)存储器地址。变量将符号名(变量名)与数据类型、存储区、存储器偏移量和注释关联在一起,并且可以在PLC变量编辑器或块(OB、FC、FB和DB)的接口编辑器中进行创建。如果输入一个没有关联变量的绝对地址,使用的地址大小必须与所支持的数据类型相匹配,而默认变量将在输入时创建。

1、1200支持的基本数据类型


3、1200还支持复杂数据类型

3.1数组ARRAY


示例:数组声明ARRAY[1..20]ofREAL一维,20个元素

ARRAY[-5..5]ofINT一维,11个元素

ARRAY[1..2,3..4]ofCHAR二维,4个元素

示例:数组地址ARRAY1[0]ARRAY1元素0

ARRAY2[1,2]ARRAY2元素[1,2]

ARRAY3[i,j]如果i=3且j=4,则对ARRAY3的元素[3,4]进行寻址

3.2数据结构数据类型Struct

可以用数据类型“Struct”来定义包含其它数据类型的数据结构。Struct

数据类型可用来以单个数据单元方式处理一组相关过程数据。

在数据块编辑器或块接口编辑器中命名Struct数据类型并声明内部数据结构。

数组和结构还可以集中到更大结构中。一套结构可嵌套八层。

例如,可以创建包含数组的多个结构组成的结构。


3.3PLC数据类型UDT

UDT类型是一种由多个不同数据类型元素组成的数据结构,元素可以是基本数据类型,也可以是STRUCT、数组等复杂数据类型以及其它UDT等。UDT类型嵌套UDT类型的深度限制为8级。

UDT类型可以在DB、OB/FC/FB接口区处使用。从TIA博途V13SP1开始,开始,PLC变量表中的I和Q也可以使用UDT类型。

UDT类型可在程序中统一更改和重复使用,一旦某UDT类型发生修改,执行软件全部编译可以自动更新所有使用该数据类型的变量。

定义为UDT类型的变量在程序中可作为一个变量整体使用,也可单独使用组成该变量的元素。此外还可以在新建DB块时,直接创建UDT类型的DB,该DB只包含一个UDT类型的变量。

UDT类型作为整体使用时,可以与Variant、DB_ANY类型及相关指令默契配合。

理论上来说,UDT是Struct类型的升级替代,功能基本完全兼容Struct类型。

在PLC数据类型中新建数据类型,在弹出的页面可以天剑需要的变量、类型、起始值等,如下图


当然了可以通过属性来更改数据类型的名称,如下图


在DB中使用UDT数据类型


3.4参数数据类型Variant

Variant类型是一个参数数据类型,只能出现在除FB的静态变量以外的OB/FC/FB接口区。

Variant类型的实参是一个可以指向不同数据类型变量的指针。它可以指向基本数据类型,也可以指向复杂数据类型、UDT等。

Variant数据类型的操作数不占用背景数据块或工作存储器中的空间,但是将占用CPU上的装载存储器的存储空间。

调用某个块时,可以将该块的Variant参数连接任何数据类型的变量。除了传递变量的指针外,还会传递变量的类型信息。该块中可以利用Variant的相关指令,将其识别出并进行处理。

Variant指向的实参,可以是符号寻址,也可以是绝对地址寻址,还可以是形如P#这种指针形式的寻址。

注:这里先介绍个概述,关于复杂数据类型后面专栏文章中会有详细介绍和讲解。