变量/信号:
•如果对象是在SRC文件中定义的:
它在定义它的程序例程中有效,即在DEF和END(主程序或本地子程序)之间。SRC文件中定义的变量称为“运行时变量”。
•如果对象是在DAT文件中定义的:它在属于DAT文件的SRC文件中有效。
常数:在声明数据列表所属的模块中有效。
用户定义的数据类型:•如果数据类型是在SRC文件中定义的:它在定义它的程序级别上是有效的。
•如果数据类型在DAT文件中定义:它在属于DAT文件的SRC文件中有效。
次级方案在共享SRC文件的主程序中有效。
作用在共享SRC文件的主程序中有效。
打断从声明它的程序级别起有效。以下内容始终有效:
•SRC文件中的第一个程序。默认情况下,它使用SRC文件的名称。
• 预定义数据类型
KRL系统变量
•在$CONFIG.DAT中定义的可变变量和信号。在“本地”下提到的数据对象可以全局访问。
如果一个本地对象和一个全局对象具有相同的名称,那么编译器将在其有效范围内使用本地对象。
子程序、功能、中断可全局使用。在约定时使用关键字GLOBAL。
子程序示例:
...
END
-------------------------------
GLOBAL DEF MY_SUBPROG
...
示例功能:
...
END
-------------------------------
GLOBAL DEFFCT INT MY_FCT(my_var:IN)
...
中断示例
GLOBAL INTERRUPT DECL 23 WHEN $IN[12]==TRUE DO UP1(20,VALUE)
变量、常量、信号、用户数据类型可全局使用
变量、信号和用户定义的数据类型可以通过数据列表或$CONFIG.DAT全局访问。
Konstanten必须始终在数据列表中声明并同时初始化。因此,它们只能通过全局数据列表进行全局访问。
使对象在全球范围内可访问数据列表:
在程序头部的数据列表中添加关键字PUBLIC:
DEFDAT MY_PROG PUBLIC
2. 在协议中使用GLOBAL关键字。
示例(变量约定):
DEFDAT MY_PROG PUBLIC
EXTERNAL DECLARATIONS
DECL GLOBAL INT counter
...
ENDDAT
当在数据列表中达成一致时,GLOBAL可用于变量、信号和自定义数据类型编号。
PUBLIC专门用于此处描述的目的,即使某些数据对象与GLOBAL一起在数据列表中全局可用。
PUBLIC本身没有效果。
$CONFIG.DAT
•$CONFIG中的对象。
在USER GLOBALS部分声明DAT。
关键字GLOBAL不是必需的,也不能在此处使用。
在带有关键字GLOBAL的数据列表中定义的数据类型可以在$CONFIG中输入。
不应使用DAT。
例子:
在DEFDAT PROG()中,枚举类型SWITCH_TYP是用关键字GLOBAL定义的:
DEFDAT PROG()
GLOBAL ENUM SWITCH_TYP ON, OFF
...
如果此数据类型在$CONFIG中。
如果使用DAT,编译器会报告错误“类型未知:**DECL SWITCH _Type MY_VAR”
DEFDAT $CONFIG
DECL SWITCH_TYP MY_VAR
...
CONST:常数
在初始化后的程序运行过程中,不能更改常量的值。
常量可用于防止在程序运行过程中意外更改值。
常量必须在数据列表中声明,同时的关键字CONST必须位于数据类型的前面。
DECL<GLOBAL>CONST数据类型变量name=We
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !