您现在所在的是:

西门子SIEMENS

回帖:335个,阅读:66909 [上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] ... [34] [下一页]
6335
karl 版主
文章数:1703
年度积分:50
历史总积分:6335
注册时间:2003/12/26
发站内信
发表于:2005/2/4 11:33:00
#20楼
日期和时间(Date and time of day)直接量
**内容隐藏回复可见**
.
6335
karl 版主
文章数:1703
年度积分:50
历史总积分:6335
注册时间:2003/12/26
发站内信
发表于:2005/2/4 11:34:00
#21楼
IEC 61131-3中的变量
根据IEC 61131-3,将变量用于编程,取代直接地址的输入、输出或标志。IEC 61131-3中描述了变量的不同类型:

符号变量


直接表示的变量


定位了的变量
必须使用关键字,在POU变量工作单中声明变量。

.
6335
karl 版主
文章数:1703
年度积分:50
历史总积分:6335
注册时间:2003/12/26
发站内信
发表于:2005/2/4 11:35:00
#22楼
变量声明关键字
[Post=45]在变量声明中,必须使用变量声明关键字。下表中描述了这些关键字:

关键字 描述
VAR 用于只能在POU内部使用的内部变量


用于声明功能块的实例


可用于直接表示、定位和符号变量的声明


可以与‘RETAIN’关键字一起,用于声明保持型变量

VAR_INPUT 用于函数、功能块和程序的输入变量


赋给POU一个诸如来自另一个POU的值


其值只在该POU内被读取


可以仅用于符号变量的声明

VAR_OUTPUT 用于函数、功能块和程序的输出变量


为诸如其它POU提供一个输出值


其值在该POU内被写入


也允许读取此值


可以与‘RETAIN’关键字一起,用于声明保持型变量

VAR_IN_OUT 该变量的地址由引用来传递


可以读取或写入该变量


典型地用于复杂的数据类型,例如字符串、数组和结构

VAR_EXTERNAL 用于该POU内的全局变量


其值由VAR_GLOBAL的声明来提供


可以在此POU内部修改其值


可以仅用于符号变量的声明

VAR_EXTERNAL_PG 用于该程序内的全局变量


其值由VAR_GLOBAL_PG的声明来提供


无法被初始化


可以在此程序内部修改其值


可以仅用于符号变量的声明

VAR_EXTERNAL_FB 用于该功能块内的全局变量


其值由VAR_GLOBAL_FB的声明来提供


无法被初始化


可以在此功能块内部修改其值


可以仅用于符号变量的声明

VAR_GLOBAL 用于可用于该工程的所有程序和功能块中的全局变量


可用于直接表示、定位和符号变量的声明


可以与‘RETAIN’关键字一起,用于声明保持型变量

VAR_GLOBAL_PG 用于可用于该工程的所有程序中的全局变量


可用于直接表示、定位和符号变量的声明


可以与‘RETAIN’关键字一起,用于声明保持型变量

VAR_GLOBAL_FB 用于可用于该工程的所有功能块中的全局变量


可用于直接表示、定位和符号变量的声明


可以与‘RETAIN’关键字一起,用于声明保持型变量

END_VAR 完成一个变量声明块



除了这些关键字,还有另外两个关键字,可用于变量声明:用于保持型变量的RETAIN,和用于直接表示的和定位的变量的AT关键字。

根据不同的变量类型,各变量声明在其结构上也各不相同。变量声明既可以在每个POU的变量工作单内完成,也可以在全局变量工作单内完成。

在资源的全局变量声明中,全局变量必须要用VAR_GLOBAL来声明,而在POU的变量声明中,必须要用VAR_EXTERNAL来声明。

VAR_GLOBAL_PG、VAR_GLOBAL_FB、VAR_EXTERNAL_PG和VAR_EXTERNAL_FB等关键字是对IEC的扩充。
[/Post]


[此贴子已经被作者于2005-11-8 22:34:08编辑过]
.
6335
karl 版主
文章数:1703
年度积分:50
历史总积分:6335
注册时间:2003/12/26
发站内信
发表于:2005/2/4 11:36:00
#23楼
全局和局部变量
[Post=60]每个变量的范围都取决于对变量关键字的使用,既可以局限于一个POU,也可以适用于整个工程。因此可以区分两种类型:

局部变量


全局变量
如果一个变量仅能用于某个POU内部,则它被称为局部变量。这种情形下,必须使用VAR、VAR_INPUT和VAR_OUTPUT等变量关键字。

如果某个变量可用于整个工程,则它被称为全局变量。必须要在全局变量声明中,用VAR_GLOBAL来声明它,并且在每个使用它的POU中,用VAR_EXTERNAL来声明它。

将所有的I/O都声明为全局变量可能会很有用。在全局变量声明中,它们应该被声明为定位变量,而在POU的VAR_EXTERNAL声明中它们应该被声明为符号变量。这样做会使得改变了地址的情况下,只有较少的键盘录入工作。
[/Post]


[此贴子已经被作者于2005-11-8 22:35:01编辑过]
.
6335
karl 版主
文章数:1703
年度积分:50
历史总积分:6335
注册时间:2003/12/26
发站内信
发表于:2005/2/4 11:37:00
#24楼
符号变量
[Post=65]符号变量是用一个符号名字和一个数据类型来声明的。其初始值是可选的。

编程系统将变量保存到对用户是未知的PLC存储器的空闲存储区域内。

下面的例子显示了两种符号变量的变量声明:

VAR
var1   :BOOL;
var2   :INT (-22..12);
END_VAR

可以用‘RETAIN’关键字,将符号变量初始化并且/或者声明为保持型变量。
[/Post]


[此贴子已经被作者于2005-11-8 22:35:29编辑过]
.
6335
karl 版主
文章数:1703
年度积分:50
历史总积分:6335
注册时间:2003/12/26
发站内信
发表于:2005/2/4 11:39:00
#25楼
直接表示的和定位的变量
[Post=300]直接表示的变量是用逻辑地址而不用符号名称来声明的。

定位的变量是用一个符号名称和一个逻辑地址来声明的。

直接表示的变量和定位的变量都被存储在所声明的逻辑地址,并且由应用程序员来检查没有内存地址被使用了两次。

定位声明由关键字AT、百分号"%"、位置前缀、尺寸前缀和逻辑地址名称组成。

可以在全局变量工作单内使用VAR_GLOBAL,或者在程序中,来声明直接表示的和定位的变量。

下表显示了用于直接表示的和定位的变量的位置和尺寸前缀:

位置前缀 描述
I 物理输入
Q 物理输出
M PLC存储器内的物理地址
尺寸前缀 描述
X 单个二进制位尺寸(仅用于BOOL数据类型)
无 单个二进制位尺寸
B 字节尺寸(8位)
W 字尺寸(16位)
D 双字尺寸(32位)
L 长字尺寸(64位)


下面的例子显示了直接表示的和定位的变量声明:

VAR
var1    AT %QX 2.4    :BOOL;
var2    AT %IW4    :WORD;
AT %QB 7    :BYTE;
END_VAR
[/Post]
.
6335
karl 版主
文章数:1703
年度积分:50
历史总积分:6335
注册时间:2003/12/26
发站内信
发表于:2005/2/4 11:40:00
#26楼
保持型变量
**内容隐藏回复可见**
.
6335
karl 版主
文章数:1703
年度积分:50
历史总积分:6335
注册时间:2003/12/26
发站内信
发表于:2005/2/4 11:41:00
#27楼
初始化变量
**内容隐藏回复可见**
.
6335
karl 版主
文章数:1703
年度积分:50
历史总积分:6335
注册时间:2003/12/26
发站内信
发表于:2005/2/4 11:42:00
#28楼
IEC 61131-3中的编程语言
[Post=80]IEC 61131-3定义了5种编程语言的语法,定义了确定的表示法,并描述了可用于各语言中的不同元素。

编程语言可以由实际外观而分为2种文本语言和3种图形语言。

文本语言包括指令表(IL)和结构化文本(ST)。

图形语言包括功能块图(FBD)、梯形图(LD)和顺序功能图(SFC)。
[/Post]


[此贴子已经被作者于2005-11-8 22:36:17编辑过]
.
6335
karl 版主
文章数:1703
年度积分:50
历史总积分:6335
注册时间:2003/12/26
发站内信
发表于:2005/2/4 11:43:00
#29楼
[Post=800]指令表 - IL
一个用文本语言IL编程的代码本体包括了一个指令序列。每条指令都从一个新行开始。每一行的前面显示了一个行号。

下图显示了一个简单的IL指令序列的例子:

LD        var1    (* 将操作数加载到累加器中 *)
AND        var2    (* 用操作数处理累加器 *)
ST        var3    (* 将累加器的值存入存储器 *)
每一行从一个操作符开始,后面跟着一个操作数。而且,可以用修饰符:

IL中的操作数可以是变量、直接量或功能块实例名称。操作数是与指令中的操作符或函数一起来使用的。

语法加亮是指用颜色来表示不同元素:操作符及其修饰符为蓝色;变量和操作数为黑色;注释为绿色。

在IL代码本体中,可以使用跳转。下图显示了一个跳转及其标号的使用方面的一个例子:

LD   var1
EQ    INT#100
JMPC    label
LD    var2
ADD    var3
ST   var4
label:LD    %IX2.2
一个标号标记了在您使用了一个跳转的情况下所要处理的行。它在行的开始处表示,并由一个冒号与指令分开。

在IL代码本体中,可以用星号和括号来插入注释。您可以在各行末尾或在一个新行中添加注释。注释在星号和括号内表示,如下面例子所示:

(* 这是一条注释 *)

注释对您的程序本身没有任何意义。它们仅仅是为了便于您更好地理解而添加注解的一种可能性。

[/Post]
.

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004