DEFDAT...ENDDAT 数据列表声明。
除预先确定的数据列表外,你自己可以定义更多的数据列表。程序列表被特定的程序和高级的声明所使用。变量值可以存储在在被声明的数据列表中。数据列表作为独立的ENDDAT语句总是在任何数据列表的最后程序段。
Data_List_ Name |
数据列表的名字进入这儿被定义。它是最长为24 个字符的对象名。长度通过控制器的管理系统限制。 如果数据列表的名字与指令相同,数据列表分配这个指令作为数据列表声明的结果,同样在指令中相同的名字也适用。 指令和数据列表从指令包中分配。 |
PUBLIC |
通过增加这个关键字,其它指令和数据列表也能访问这个数据列表,而且在这儿被分配的变量,etc.. ,可用于其它的指令包。它们必须使用关键字GLOBAL定义。 |
Declaration |
子程序和函数指令的外部声明在指令中使用。 为了输入变量引入声明。 声明变量 声明信号和通道名。 声明结构和列举类型 在数据列表中声明的变量声明可以包含默认设置。 |
没有语句出现在数据列表中,除了变量和常量的初始化。
范例:
通过数据列表使对象全局可用:
1.在程序顶部的数据列表中添加关键词 PUBLIC:
DEFDAT MY_PROG PUBLIC
2. 在协议时使用关键词 GLOBAL。
示例 (变量的协议):
DEFDAT MY_PROG PUBLIC
EXTERNAL DECLARATIONS
DECL GLOBAL INT counter
...
ENDDAT
在 DEFDAT PROG() 中已经用关键词 GLOBAL 定义了计数类型 SWITCH_TYP:
DEFDAT PROG()
GLOBAL ENUM SWITCH_TYP ON, OFF
...
声明数据列表。
DEFDAT WELD
...
ENDDAT
为了符合全局声明数据列表。
DEFDAT CENDAT PUBLIC
...
ENDDAT
指令包PROG_1 由指令和被分配的数据列表PROG_1 组成。
如果它在数据列表中被声明和被初始化的,那么在主程序作中被省略。如果在主程序的变量OTTO被分配了新的值,那么它也进入数据列表并被存储在这儿。.
“new” 值在控制器转换完成而且再次返回后被使用。这是在线修正和和其他程序修改的要素。如果你想总是用相同的值开始主程序,那么想得到的值必须在主程序中被作为默认分配适当的变量。
DEFDAT PROG_1
INT OTTO = 0
ENDDAT
DEF PROG_1( ) HALT ;OTTO 现在是0
OTTO=25 HALT ;数据列表现在包含INTOTTO=25
END
全局的数据列表:变量OTTO在PROG_1 和PROG_2 中被验证的。它可能允许外面的主程序访问在数据列表中定义的变量。数据列表必须作为PUBLIC定义而且变量必须作为GLOBAL公告。DEFDAT PROG_1 PUBLIC GLOBAL INT OTTO = 0 ENDDAT
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !