TP(延时脉冲定时器)
1
2
3
4
5
6
7
8
9
10
11
12
第 2 章 PROSYD 1131 概述
2 PROSYD 1131 概述
2.1 PROSYD 1131 软件简介
PROSYD 1131 是一套完整的PLC程序开发环境,(PROSYD 1131代表Programming
and System Diagnose)。
PROSYD 1131 为编程者提供了功能强大的IEC编程语言,编辑器及调试工具类似于高
级编程语言的开发环境(如:Visual C++),PROSYD 1131为PLC应用程序开发人员提供简
单易学且功能强大的开发环境。
2.2.3 测试项目
项目中的错误完全被排除以后,启动仿真功能。连接并将项目下载至仿真PLC中,此时,
你便处于在线模式。
打开PLC配置窗口检测项目是否正确执行。测试方法可通过手动改变输入变量的值,然后
观察输出值是否与期望的一致,也可通过在POU中定义的本地变量观察数值的变化情况。在
Watch and Receipt Manager中配置需要检测的数据记录。
2.2.4 调试
当项目中存在错误时可采用设置断点的方法帮助排除。程序运行至断点处停止,检查此时
各个变量的当前值,了解程序的运行情况,继续逐步运行程序,检查程序中的逻辑关系是否正
确。.
2.2.5 其它在线工具
更多的调试功能可供使用:
第 2 章 PROSYD 1131 概述
z 程序变量及输入输出通道可手动设置数值。
z 通过流程控制(flow control)检查哪个程序线程在运行。
z 日志文件按时间顺序记录联机过程中的各种用户操作和内部过程。
z 采样轨迹用于跟踪和显示变量在一定的时间段内数据的实际变化轨迹。
z 使用PLC Broswer工具可以从 PLC 中提取有关的状态信息。
z 当设计完成项目并测试通过后即可被装载至硬件系统中做进一步调试,所有仿真状态下的
在线功能同样可以使用。
2.2.6 辅助功能
整个项目可以归档或导出为文本文件。
2.2.7 总结
1
2 PROSYD 1131 是一套功能完备的 PLC 程序开发工具,可大量减少工程项目所需的开
发设计时间。
3
2.3 项目单元
4
5 2.3.1 项目
6
一个项目包含有 PLC 程序的所有对象。项目的相关信息存储于用户命名的文件中。一个
7 项目中可以包含如下对象:
8 POU(程序组织单元),数据类型、可视化组件,程序资源和功能库。
2.3.3 函数(FUNCTION)
函数是一种类型的 POU ,函数被调用时返回一个数据元素(可含有多个子元素,如数组
或结构体)。函数在文本程序设计语言(如 ST)中可以作为表达式中的一个运算数。
声明一个函数时必须为其指定相应的数据类型,即在函数名的后面输入一个冒号并注明数
据类型。
正确格式如下:
FUNCTION Fct: INT
此外,必须为函数分配一个输出结果,也就是说函数名即为输出变量。
函数声明以关键字 FUNCTIUON 开始。
例如:在采用IL语言编写的函数中,接收三个输入变量,返回值为前两个变量的乘积除以
第三个变量。
第 2 章 PROSYD 1131 概述
在 ST 中,函数可以作为表达式中一个运算数而直接被调用。
函数不具有任何内部条件,当使用相同的输入参数多次调用同一个函数时,该函数总是返
回相同的数据。
在 SFC 中,函数的调用只能应用于某一步或某一转换中。 ST、IL为文本语言
在 IL 中调用:
LD 7
1 Fct 2,4
2 ST Result
3 在 ST 中调用:
4 Result := Fct(7, 2, 4);
5 在 FBD 中调用:
6
7
8
9
10
11 可以在项目中定义名为 CheckBounds 的函数用于检测项目中的范围溢出。该函数名被
定义且只使用这个标识符。在后面的章节中将对该函数进行更详细地描述,也可参阅在线帮助。
12
函数 CheckDivByte、CheckDivWord、CheckDivDWord 和 CheckDivReal 用于
检查除法运算中的除数值,避免因除数为零引起的错误。
函数 CheckRangeSigned 和 CheckRangeUnsigned 用于防止 Subrange 类型变量数
值的溢出。
以上所有用于检测的函数均已预留。在后面的章节中将对这些函数进行更详细地描述,也
可参阅在线帮助。
第 2 章 PROSYD 1131 概述
2.3.4 功能块
功能块作为一个 POU,被调用时输出一个或多个数据。与函数(Function)不同,功能块没
有返回值。
关键字 FUNCTION_BLOCK 用于声明功能块。
功能块以调用其实例(Instance)的方式执行。
功能块示例(IL):
上例中的功能块有两个输入变量和两个输出变量。一个输出变量为两个输入变量的乘积,
另一个输出变量为两个输入变量的大小比较结果。
2.3.5 功能块实例
在程序中需要创建所调用的功能块的实例
每个实例只处理其自身的标识符(实例名)和包含输入输出变量及内部变量的数据结构。
和变量一样,实例可以声明为局部实例或全局实例,实例标识符的类型为功能块的名字。
功能块 FUB 的名为 INSTANCE 的实例可写为:
INSTANCE: FUB;
功能块通常通过其实例调用。
从功能块实例外部只能操作其输入输出参数,不能操作内部变量。
例如:访问一个输入变量:
功能块 FB 包含一个名为 in1 的输入变量,类型为 INT。
PROGRAM prog
VAR
inst1:fb;
第 2 章 PROSYD 1131 概述
END_VAR
LD 17
ST inst1.in1
CAL inst1
END_PROGRAM
功能块和程序的声明部分可以包含实例的声明,函数中不允许实例的声明。
除非将其声明为全局类型,否则功能块实例只能在所声明的 POU 中使用。
功能块实例名称可以用作函数或功能块的输入参数。
提示:
功能块的所有变量的数据在被调用后保留直至下一次调用。所以,以同样的参数
多次调用功能块,功能块不一定会输出相同的数据。
提示:
只要功能块变量中有一个是保持型变量,整个实例将保存在保持区中。
2.3.6 功能块的调用
程序组织单元
可以在其它的POU中访问功能块的输入/输出变量。首先需要建立功能块实例,然后按如
1
下的语法格式设置需要访问的变量:
2 <实例名>.<变量名>
3 如果需要在调用功能块时设定输入参数,在文本语言 IL、ST中,可以在功能块实例名后
的括号中为参数赋值。(赋值操作用“:= ”符号,类似于在变量声明部分中对变量进行初始化)
4 注意! 请注意,功能块的输入输出变量 (VAR_IN_OUT) 是被当作指针来传递的,所以在调用功
5 能块时,不能将常量分配给 VAR_IN_OUT ,并且不允许从功能块外部对该变量进行读写操作。
VAR
6
inst: fubo;
7 var: int;
END_VAR
8
var1:=2; 赋值语句
9
inst(instout1:=var1^);
10
11 下列情况是不允许的:inst(instout1:=2); 或 inst.inout1:=2;
例如:调用功能块 FUB:
12 乘积保存在变量 ERG 中,比较的结果保存在变量QUAD 中,在程序中声明名为INSTANCE
的功能块 FUB 的实例。
在IL编程语言中调用功能块实例:
第 2 章 PROSYD 1131 概述
在ST编程语言调用功能块实例(声明部分与在IL语言中一样):
在FBD编程语言中调用功能块实例(声明部分与在IL语言中一样):
在SFC编程语言中,只能在步中调用功能块。
第 2 章 PROSYD 1131 概述
2.3.7 程序
程序作为一种 POU,在执行过程中输出一系列数据。在一个项目中,程序属于全局元素。所有数据
在程序结束后一直保持直到下一次程序执行。
程序示例:
1
2
程序可以被调用,但不能在函数中被调用。与功能块不同,程序的调用不通过实例。
3 如果一个 POU 调用一个程序并且程序中的值被改变,那么这个改变将一直保持至下次此
程序被调用,即使这个程序被其他 POU 调用。
4
功能块调用方式不同于程序,仅仅为功能块指定的实例中的数据发生变化。
5 只有当同一个实例被调用时,功能块实例数据才发生变化。
6 程序的声明由关键字 PROGRAM 开始,以 END_PROGRAM 结束。
在 IL 中调用程序:
7 CAL PRGExample
8 LD PRGexample.PAR
9 ST ERG
10 在 ST 中:
11 PRGExample;
12 Erg := PRGexample.PAR;
在 FBD 中:
例如:在PLC_PRG 中调用程序:
LD 0
ST PRGexample.PAR (*缺省设置 PAR 为 0*)
CAL IL call (*ERG 在 IL 中调用结果为 1*)
CAL ST call (*ERG 在 ST 中调用结果为 2*)
CAL FBD call (*ERG在 FBD 中调用结果为 3*)
2.3.8 PLC_PRG
PLC_PRG 是一个预定义的特殊 POU。每个项目都必须包含这个特殊程序。这个 POU 在
每个控制周期被调用一次。
一个新项目建立后,第一次使用'Project'、 'Object Add'命令时,在 POU 对话框中显
示以 PLC_PRG 命名的一个缺省程序类型POU名。不要更改这个缺省设置。
如果已定义了任务,则项目中可以不含有以 PLC_PRG 命名的程序,执行顺序取决于任务
的分配。
提示:动作在顺序功能图的程序块中具有重要的作用,参见顺序功能图 – SFC 部
分。
IEC标准不能识别除顺序功能图中的动作之外的动作。
各种声明方式举例如下:
PROGRAM PLC_PRG:
VAR
Inst: Counter;
END_VAR
在 IL 中调用:
CAL Inst.Reset (In:=FALSE)
LD Inst.out
ST ERG
在 ST中调用:
1 Inst.Reset (In:=FALSE);
2 Erg:=Inst.out;
3
4 在 FBD 中调用:
5
6
7
8 2.3.10 程序资源
9
资源用于配置和管理项目以及对变量数值进行跟踪采样。
10
2.3.11 库文件
11
12 一个项目中可包含多个库文件,这些库文件中的 POU、数据类型和全局变量可以象用户
自定义的变量一样被调用。名为 standard.lib 和 util.lib 的库文件是程序中的标准部分,可根
据需要使用。
参见库管理器一章。
2.3.12 数据类型
除了标准数据类型以外,用户还可以自定义数据类型。可创建结构体、枚举和参考体。
参见数据类型一章。
第 2 章 PROSYD 1131 概述
2.3.13 可视化工具
PROSYD 1131 提供可视化工具用于显示项目变量。可以用它在离线方式下编辑图形界
面,在线方式下图形元素的形状、颜色和字符内容等均可根据指定变量数值的变化而变化。
参见可视化组件一章。
2.4 编程语言
2.4.1 语句表 (IL)
语句表程序(IL)包含了一系列的指令。每条指令占一行,包含一个运算符,根据运算功能
的不同还会包含一个或多个运算数,运算数之间用逗号分隔。
指令之前会有一个识别标志(标签)和一个冒号(:)。
注释文字放在一行的最后。指令行之间可以插入空行。
例如:
LD 17
ST lint (* comment *)
GE 5
JMPC next
LD idword
EQ istruct.sdword
STN test
next:
2.4.1.1 IL 语言的修饰符和运算符
IL 语言中可使用下列运算符和修饰符。
修饰符:
C: 用于 JMP、CAL、RET: 如果该指令前的表达式结果为“真”,则执行该指令。
N: 用于 JMPC、CALC、RETC: 如果该指令前的表达式结果为“假”,则执行该指令。
N: 其它运算符: 用于运算数(布尔量)取反。(累加器除外)
下列表格中列出 IL 语言中所有的运算符及可用的修饰符以及相关的含义:
运算符 修饰符 含义
LD N 将运算数写入缓存
ST N 将运算结果写入指定运算数
S 置位布尔运算数
R 复位布尔运算数
AND N,( 位逻辑“与”运算
OR N,( 位逻辑“或”运算
XOR N,( 位逻辑“异或”运算
第 2 章 PROSYD 1131 概述
运算符 修饰符 含义
ADD ( “加”运算
SUB ( “减”运算
MUL ( “乘”运算
DIV ( “除”运算
GT ( >
GE ( >=
1
EQ ( =
2
NE ( <>
3 LE ( <=
4 LT ( <
5 JMP C,N 跳转到“label”
9
从附录中可以查看所有 IEC 运算符。
10 带有修饰符的 IL 程序实例:
11 LD TRUE (*将“TRUE”存入缓存*)
12 ANDN BOOL1 (*“BOOL1”取反与“TRUE”做与运算*)
JMPC mark (*如果结果为“TRUE”,跳转到“mark”*)
LDN BOOL2 (*“BOOL2”取反*)
ST ERG (存入变量“ERG”中*)
label:
LD BOOL2 (*取“BOOL2”)
ST ERG (*存入变量“ERG”中*)
IL 语言允许在运算符后面跟有圆括弧,圆括弧中的值被当作运算数来处理。
例如:
LD 2
MUL 2
ADD 3
ST ERG
2.4.2.1 表达式
表达式是一种执行运算后返回结果的语句。
表达式由运算符和运算数组成。运算数可以是常数,变量,函数调用或另一个表达式。
2.4.2.2 表达式计算
表达式要根据已确定的运算规则进行计算,优先级高的运算符先运算,优先级低的运算符
后运算。
优先级相同的运算符按从左至右的顺序进行运算。
下表按优先级顺序列出 ST 运算符:
运算符 符号 优先级
括号 (…) 最高
函数调用 函数名(参数列表)
指数运算 EXPT
取负数 -
取反 NOT
乘法 *
除法 /
求余数 MOD
加法 +
减法 -
比较 <, >, <=, >=
等于 =
不等于 <>
逻辑与 AND
逻辑异或 XOR
逻辑或 OR 最低
第 2 章 PROSYD 1131 概述
以下为 ST 语句表及实例:
语句 示例
赋值 A:=B; CV := CV+1;C:=SIN(X);
功能块调用及功能块 CMD_TMR(IN := %IX5, PT := 300);
输出 A:=CMD_TMR.Q
RETURN RETURN;
IF D:=B*B;
IF D<0.0 THEN
C:=A;
ELSIF D=0.0 THEN
C:=B;
ELSE
C:=D;
1
END_IF;
2 CASE INT1 OF
CASE
3 1:BOOL1 := TRUE;
2:BOOL2 := TRUE;
4 ELSE
BOOL1 := FALSE;
5 BOOL2 := FALSE;
6 END_CASE;
FOR J:=101;
7 FOR I:=1 TO 100 BY 2 DO
IF ARR[I] = 70 THEN
8 J:=I;
9 EXIT;
END_IF;
10 END_FOR;
J:=1;
11
WHILE J<= 100 AND ARR[J] <> 70
12 WHILE DO
J:=J+2;
END_WHILE;
J:=-1;
REPEAT
REPEAT J:=J+2;
UNTIL J= 101 OR ARR[J] = 70
END_REPEAT;
EXIT EXIT;
空指令 ;
2.4.2.3 赋值语句
赋值语句(:=)用于将右边的数值赋值给左边的运算数(变量、地址)。
例如:
Var1 := Var2 * 10;
第 2 章 PROSYD 1131 概述
变量Var2 的十倍数值被赋值给变量Var1。
2.4.2.4 在ST中调用功能块。
在 ST 中调用功能块,需要功能块的实例名,然后在圆括号中给参数赋值。通过下面的例
子可以看到,调用定时器并给参数 IN 和 PT赋值,然后将结果变量 Q 的值赋给变量 A。
同 IL 一样,结果变量由功能块名,点号和变量名表示。
CMD_TMR(IN := %IX5, PT := 300);
A:=CMD_TMR.Q
2.4.2.5 RETURN 语句
2.4.2.6 IF 语句
IF 语句用于检查某个执行条件,并根据具体条件执行相应的指令。
语法结构:
IF <Boolean_表达式1> THEN
<IF_语句>
{ELSIF <Boolean_表达式2> THEN
<ELSIF_语句1>
花括号 {} 中的部分为可选项。
如果 <Boolean_表达式1> 返回 TRUE,则只有 <IF_语句> 被执行。
否则从 <Boolean_表达式2> 开始的逻辑表达式将被逐一检测,直到某个表达式返回
TRUE,则此逻辑表达式之后到下一个ELSE 或 ELSIF 之前的语句被执行。
如果没有任何一个逻辑表达式返回 TRUE,则 <ELSE_语句> 被执行。
例子:
IF temp<17
THEN heating_on := TRUE;
ELSE heating_on := FALSE;
END_IF;
程序中当温度降至17度以下时加热器被打开,否则保持关闭状态。
第 2 章 PROSYD 1131 概述
2.4.2.7 CASE 语句
CASE 语句可以根据同一个条件变量的数值变化而去执行多个不同的程序段。
语法结构:
CASE <变量1> OF
<变量值1>:<程序1>
<变量值2>:<程序2>
<变量值3,变量值4,变量值5>::<程序3>
<变量值6 .. 变量值10>:<程序4>
...
<变量值n>:<程序n>
ELSE <ELSE 程序>
END_CASE;
1
CASE 语句按以下方式执行:
2 ·如果 <变量1> 的数据值为 <变量值i> , 则 <程序i> 中的语句被执行。
3 ·如果 <变量1> 不等于所列的任何值,则 <ELSE 程序> 中的语句被执行。
·如果 <变量1> 在等于多个不同的值的条件下而执行同一程序段时,则需将变量值逐一
4 写明并用逗号分开。
5 ·如果条件变量的值在某一数值范围内执行相同的程序段时,则需将条件变量的下限值和上
限值分别给出并用逗号分开。
6
7 例如:
8 CASE INT1 OF
1,5: BOOL1 := TRUE;
9
BOOL3 := FALSE;
10 2: BOOL2 := FALSE;
11 BOOL3 := TRUE;
10..20: BOOL1 := TRUE;
12
BOOL3:= TRUE;
ELSE
BOOL1 := NOT BOOL1;
BOOL2 := BOOL1 OR BOOL2;
END_CASE;
FOR 循环语句用于编写可重复执行的程序。
语法结构:
INT_Var :INT;
FOR <整形变量> := <开始值> TO <结束值> {BY <步长>} DO
<程序>
第 2 章 PROSYD 1131 概述
END_FOR;
花括号 {} 中的部分为可选项。
只要计数值 <整形变量> 不大于 <结束值> 则 <程序> 会被连续重复执行。<程序>每
次被执行前都会进行比较,如果 <开始值> 大于 <结束值>,<程序>不再被执行。
当 <程序> 执行后,<整形变量> 会按 <步长>增加。步长可以设为任意整数,缺省值
为 1。由于 <整形变量> 只能逐渐增大,因此循环一定会终止。
例如:
FOR Counter:= 1 TO 5 BY 1 DO
Var1:=Var1*2;
END_FOR;
Erg:=Var1;
假定 Var1 的缺省值为 1,则 FOR 循环执行结束后Var1的值应为32。
提示:
<结束值> 不能与计数值 <整形变量> 的极限值相等。例如:如果变量 Counter 类型为 SINT
而 <结束值> 的值为 127 则会形成死循环。
提示:
程序设计时要避免产生死循环。避免的方法是在循环语句内部改变判定条件,如使用一个
计数器。
例如:
WHILE counter<>0 DO
Var1 := Var1*2;
Counter := Counter-1;
END_WHILE
第 2 章 PROSYD 1131 概述
由于无需预知会有多少次循环,因此WHILE 和 REPEAT 循环语句在一定意义上要比 FOR
循环语句更强大,在某些情况下也只能用这两种类型的循环方式。但如果能够知道确切的循环
次数,则建议用 FOR 循环语句以避免产生死循环。
提示:
程序设计时要避免产生死循环。避免的方法是在循环指令内部改变判定条件,如使用一个
计数器。
例子:
REPEAT
Var1 := Var1*2;
Counter := Counter-1;
UNTIL
Counter=0
END_REPEAT;
2.4.2.11 EXIT 语句
2.4.3.1 步骤(Step)
2.4.3.2 动作
2.4.3.3 入口或出口动作
设计时可以给步骤附加一个入口动作和一个出口动作。入口动作只在步骤被激活后执行一
次,出口动作只在步骤完成后执行一次。
带有入口动作的步骤在其左下角标有"E",带有出口动作的步骤在其右下角标有"X"。
入口和出口动作可以用任何语言来实现。用鼠标双击步骤的对应角标可对入口和出口动作
进行编辑。
带有入口动作和出口动作的步骤示例:
on / Transition condition
步骤之间称为转换(transitions)。
转换条件必须为 TRUE 或 FALSE,因此它可以是逻辑变量、逻辑地址或逻辑常数。也可
以是一组能返回一个逻辑值的程序,既可以是 ST 语言结构(如:(i<= 100) AND b),也可以
是其它语言结构,但转换不能包含程序、功能块或赋值语句。
提示:
除了转换,可利用inching模式跳到下一个步骤,参见SFCtip与SFCtipmode。
2.4.3.4 步骤的执行
提示:
如果执行的步骤包含一个出口动作,它只能在下一个循环周期内且转换条件为 TRUE 时执行。
2.4.3.5 IEC 步骤
为了便于跟踪程序的执行进程,所有正在运行的动作同正在运行的步骤一样在在线状态下
显示为蓝色。在每个循环周期之后,系统会检查哪些动作处于运行状态。
请注意动作中时间限定符的使用规则,它们在同一周期中可以重复使用。
提示:
如果动作已被停止,它将可以被再一次执行,即每个动作至少可以被执行两次(同样适
用于带有限定符P的动作)。
2.4.3.6 限定符
提示:
如果动作已退出,则它可以被再一次执行,即每个行为至少可被执行两次(同样适用于
带有限定符P的动作)。
在 SFC 中,可以使用一些已经声明的隐含变量。
步骤的标志用于存储步骤的状态。步骤标志(步骤运行或停止状态)在 IEC 步骤中用 <
步骤名>.x 表示,在简单步骤中用 <步骤名> 表示。当步骤运行时,该逻辑变量为TRUE;
当步骤停止时,该逻辑变量为 FALSE 。这种变量也可用于SFC块的每一个动作及转换中。
使用 <动作名>.x 可查询一个 IEC 动作是否被激活。
IEC 步骤中隐含变量 <步骤名>.t 可用于查询步骤的运行时间。
隐含变量也可以被其它程序访问。例如:boolvar1:=sfc1.step1.x; 此处 step1.x即为隐含
的逻辑变量,代表 POU sfc1 中 IEC 步骤step1的状态。
2.4.3.8 SFC 标志
SFC 中如果一个步骤的运行时间比其属性状态还要长,则某些特殊标志位将被置位。顺序
功能图中的某些变量也会被置位以便控制程序流程。标志位在使用前必须先声明为全局的或局
部的输入或输出变量。
SFCEnableLimit:这是一个逻辑变量,当它的值为 TRUE 时,步骤的超时时间被记录
在 SFCError 中,其它超时将被忽略。
SFCInit:当这一逻辑变量的值为 TRUE 时,顺序功能图被置回为初始步骤。其它 SFC 标
志也被复位(初始化)。初始步骤保持激活状态但并不执行,只有当 SFCInit 再次被置为 FALSE
时,功能块才开始正常执行。
SFCReset:此逻辑变量的功能与 SFCInit 类似。不同的是当初始步骤初始化结束后, 后
者还要做进一步的处理,例如 SFCReset 标志能够在初始步骤中被再次置为 FALSE。
SFCQuitError:当这个逻辑变量的值为 TRUE 时,SFC 将停止执行,由此,变量 SFCError
由于超时错误而复位。当这个变量的值再次为 FALSE 时,所有激活步骤中先前的时间被清除。
SFCPause::当这个逻辑变量的值为 TRUE 时,SFC 会停止执行。
SFCError:当 SFC 发生超时错误时,此逻辑变量的值被置为 TRUE 。如此时再次产生
一个超时错误,该错误将不被记录,除非变量 SFCError 已复位第一个错误。
第 2 章 PROSYD 1131 概述
SFCTrans: 当启动一个转换时,此逻辑变量的值置为 TRUE。
SFCErrorStep:这是一个字符变量。如果 SFCError 记录了一个超时错误,则此变量将
保存导致此错误的步骤名称。
SFCErrorPOU:该字符变量包含产生超时错误的块的名称。
SFCCurrentStep:这是一个字符变量,可保存独立于时间控制而被激活的步骤名称。步
骤名保存在外部右侧的分支中。
SFCErrorAnalyzation:这是一个字符变量,可给出转换表达式以及全部变量,这些变
量在一个组合表达式中,该表达式的运算结果为FLASE且因此在先前步骤中引起超时。用于记
录超时的变量SFCError flag 被要求声明。SFCErrorAnalyzation 返回调用功能
AppedErrorString,功能存放在功能库analyzation.lib中。输出字符串用"|"分隔多个单元。
SFCTip, SFCTipMode:BOOL 型变量,用于单步执行SFC程序。当SFCTipMode=TRUE,
并且SFCTip设置为TRUE时,程序可跳转至下一步骤。当SFCTipMode 设置为FALSE时,程序
将跳过转换。
2.4.3.9 选择分支
在SFC程序中可以定义两个或更多支路的选择分支。每个选择分支必须以一个转换作为开
始和结束。选择分支可以包含并行分支及其它选择分支。一个选择分支开始于同一水平线(选
择开始)并结束于同一水平线(选择结束)或使用一个跳转。
如果选择分支前的一个步骤被激活,那么每个选择分支的第一个转换值从左向右被依次计
算出来。从左边开始,第一个转换条件值为TURE的转换开通并执行其下面的步骤。
2.4.3.10 并行分支
SFC可以定义两个或更多支路的并行分支。每个并行分支必须以一个步骤作为开始和结束。
一个并行分支可以包含选择分支和其它并行分支。一个并行分支开始于一双线(并行开始)并
结束于一双线(并行结束)或使用一个跳转。
如果并行分支开始线之前的一个步骤被激活并且这个步骤后的转换条件为TRUE, 那么所
有并行分支的第一个步骤被激活。这些步骤相互之间为并行处理。当先前的所有步骤被激活且
每个步骤前的转换条件产生的值为TRUE,则并行分支结束线后的步骤被激活。
2.4.3.11 跳转
跳转可将程序进程连接到指定步骤,步骤名被写在跳转符号的下面。跳转不能用于向上连
接程序或交叉连接程序。
2.4.4 功能块图(FBD)
FBD是一种图形化编程语言,由一系列网络组成,每个网络包含一个结构,代表一个逻辑
表达式或算术表达式,或是一个功能块的调用,一个跳转,或一个返回。
例如:采用FBD语言所编写的一个网络。
第 2 章 PROSYD 1131 概述
2.4.5 连续功能块图(CFC)
CFC不同于功能块图FBD采用网络结构编程,而是采用一些可自由放置的单元。因此允许
使用反馈。
例如:CFC程序。
2.4.6.1 触点
每个梯形图网络的左侧由一些触点组成(触点采用两条平行竖线表示| |),从左向右排列
的每一个触点分别代表条件"On" 或 "Off"。
一个布尔型变量可属于每一个触点并对应布尔量 TRUE 或 FALSE。如果变量为TRUE,那
么该状态可通过连线从左向右传递。否则右侧线路收到的值为“Off”。
触点也可以连接到并行线路上。不论是并行线路还是串行线路,最左侧的触点必须传送一
个状态“ON”以确保最后一个触点也能够传送“ON”。
触点也可以取反,通过在触点符号内加一斜杠“|/|”表示。如果触点变量为FLASE,其线路
值就可以传送。
2.4.6.2 线圈
在梯形图网络的右侧有任意多个线圈,使用括号“()”表示。线圈只能以并行方式连接。
线圈将从左侧传送过来的值保存在一个指定的布尔变量中。通道线路的状态值(ON或OFF)
均可体现。
触点和线圈都可以取反(见例子中触点SWITCH1和线圈%QX3.0)。如果一个线圈被取
反,它将在指定的布尔变量中保存取反后的值。如果一个触点被取反,它只能在其指定的布尔
变量为FLASE时才能导通。
2.4.6.3 梯形图中的功能块
与触点和线圈一样,功能块和程序也可以被调用并位于梯形图网络的左侧,调用时必须有
一个布尔输入值和一个布尔输出值。
2.4.6.4 置位/复位线圈
线圈可以被定义为置位线圈或复位线圈。线圈符号内加有“S”的线圈(S)为置位线圈。一
旦这个线圈指定的布尔变量被设为TRUE,这个值将一直保持下去。线圈符号内加有“R”的线圈
(R)为复位线圈。一旦这个线圈指定的布尔变量被设为FLASE,这个值将一直保持下去。
2.5 调试及在线功能
2.5.1 采样轨迹(Sampling Trace)
采样轨迹使你可以依靠触发事件跟踪记录某个变量的一系列值。触发事件是指预先定义的
一个布尔变量(触发变量)的上升沿或下降沿。PROSYD 1131 允许记录20个变量,每个变
量可以记录500个值。
2.5.2 调试 (Debugging)
PROSYD 1131 的调试功能可以使你方便地查出错误。
选择'Project' 'Options' ,在弹出的对话框内的 Build 中选 Debugging 。
2.5.3 断点(Breakpoint)
程序中设置的断点可以终止程序的进程,并可以察看在此特定位置的各变量的值。
在所有类型的程序编辑器中都可以设置断点。在文本编辑器中,通过行号设置断点;在梯
形图(LD)和FBD编辑器中,通过网络号设置断点;在CFC编辑器中,通过POU设置断点;在
SFC编辑器中,通过步骤设置断点。在功能块实例中不能设置断点。
2.5.7 监控
在线模式下,从控制器中可实时读取并显示变量的值。在变量声明区和程序编辑器中可以
查看这些变量,也可以在监视与配方管理器(watch and receipt manager)和可视化工具
(visualization)中查看变量的当前值。如果功能块实例中的变量也要求被监测,则必须打开
相应的实例。
如果监测变量为输入/输出类型(VAR_IN_OUT)变量,则监控到被输出的参数值。
如果监测变量为指针型(pointer)变量,在变量声明区中指针数值及指向的数值均被输出,
在程序区中只有指针数值被输出。
+ --指针变量 = '<'指针值`>'
因此,指针值(POINTER)也可以显示。单击十字符号或双击其右侧字符可使当前显示框
缩小或扩展。
例如:指针变量的监视。
在执行过程中显示所有的数值。
数组元素的监视:数组元素的标号可以是常数,也可以是变量。
anarray[1] = 5
anarray[i] = 1
第3章 编程实例
如果数组索引包含表达式(例如:[i+j]或[i+l]),那么该数组元素就不能显示。
2.5.8 仿真
仿真运行时,PLC程序并不是在PLC中运行,而是在PROSYD 1131中运行。所有在线功能
都可以使用。使你可以在没有PLC硬件的情况下测试程序。
2.5.9 日志
日志文件按时间顺序记录在线状态下的用户操作,内部处理过程,状态变化以及异常事件。
它用于监控和事故跟踪。
2.6 标准
IEC 61131-3标准是PLC编程语言的国际标准。PROSYD 1131编程语言符合该标准的规
定。
依照这个标准,一个程序包含以下几个部分:
数据结构
POUs
全局变量
常规的编程语言都包含标识符,地址,类型,注释及常数。
PROSYD 1131 程序由特殊的以PLC_PRG命名的POU开始执行。PLC_PRG 可调用其它
POU。
3 编程实例
现在开始编写一个简单的小程序用于控制十字路口上的两个交通灯。两个交通信号灯
的红/绿状态是相互交替的,为了避免交通事故,我们还将插入黄色或黄/红过渡状态。后
者将比前者的时间长。
3.1 交通信号灯控制实例
从这个例子中可以看到,时间的长短取决于用IEC 61131-3标准编写的程序。你可以在
PROSYD 1131 的帮助下,采用任何一种标准语言进行编程,并且可以很容易地采用
PROSYD 1131 的仿真技术进行连接。
3.1.1 创建 POU
开始总是容易的:打开 PROSYD 1131 并且选择 'File' 'New'。
在显示的对话框中,第一个 POU 已经命名为默认名 PLC_PRG。保留这个名字并将
POU 类型定义为程序。每个项目都需要一个以该名命名的程序。这样,我们选择连续功
能图表 (CFC) 作为这个POU的编程语言。
现在使用菜单条中的命令 'Project' 'Object Add',或使用上下菜单(用鼠标右键点击
Object Organizer) 创建三个或更多的对象。SFC 语言的程序名为 SEQUENC,FBD 语言
的功能块名为 TRAFFICSIGNAL,功能块 WAIT 采用 IL 语言编写。
第3章 编程实例
3.1.6 "TRAFFICSIGNAL" 声明
让我们转入TRAFFICSIGNAL。在声明编辑器中,声明一个名字为 STATUS,类型为 INT
的输入变量(在关键字 VAR_INPUT 和 END_VAR 之间)。STATUS 将有四种可能的条件,
分别对应TRAFFICSIGNAL的四种状态:绿,黄,黄/红,红。
功能块 TRAFFICSIGNAL 有三个输出变量,分别是:RED,YELLOW,GREEN。你需
要声明这三个变量。
功能块 TRAFFICSIGNAL 的声明部分如下。
声明部分
主体部分
3.1.7 "TRAFFICSIGNAL" 主体
该 POU 的输出变量的数值取决于输入变量 STATUS 。在 POU 主体中点击第一个网
第3章 编程实例
络的左侧区域(标有数字1 的灰色区域),你现在已选定了第一个网络。选菜单项 'Insert'
'Box'。
在第一个网络中插入一个带有两个输入端的运算符AND。
搞错了!这是CoDesys软
件的写法,PROSYD的应
该是"Operator"
见写上去的方
法
第3章 编程实例
为了在一个运算符前插入另一个运算符,你必须先选择运算符的输入端,该输入端用
于连接将要插入的运算符。
使用命令 'Insert' 'Box'。你可以像建立第一个网络一样建立这些网络。
现在第一个 POU 完成了。TRAFFICSIGNAL根据 STATUS 的输入值来控制所有的灯。
3.1.8 连接标准库(standard.lib)
POU WAIT 中的定时器需从标准库中调用。通过 'Window' 'Library Manager' 打开
库管理器,点击 'Insert' 'Additional library',弹出一个对话框,从列表中选择标准库(standard.lib) 。
3.1.9 "WAIT" 声明
让我们转入 WAIT。这个 POU 是一个定时器,由它决定每个 TRAFFICSIGNAL 状态
时间的长短。它含有一个输入变量 TIME,类型为 TIME;一个输出变量OK,类型为BOOL。
当达到设定的时间周期时,输出变量OK的值为 TRUE。我们在声明变量OK时,将其设置 初始?
为 FALSE (在分号后) " := FALSE "。
我们在这里需要使用 TP(延时脉冲定时器)。它含有两个输入(IN,PT)和两个输出(Q,
ET)。TP 的作用如下:
当 IN 为 FALSE时,ET 为 0 且 Q 为 FALSE。当 IN 为 TRUE 时,ET 中的时间值
以毫秒为单位计时。当 ET 达到 PT 值后不再计时。在此期间,当 ET < PT 时,Q 输出
值为 TRUE;一旦 ET 达到 PT 值时,Q 输出值为 FALSE。有关标准库中的所有POU的
描述可以在附录中查看。
为了在 WAIT 中使用 TP,我们必须创建一个 TP 局部实例。 因此我们声明了类型
为 TP (在关键字 VAR,END_VAR之间)的局部变量 ZAB。
功能块 WAIT 声明部分如下:
即ZAB是个TP(定
时器Timer)
3.1.10 "WAIT" 主体
为了创建所需的定时器,必须编写如下POU主体程序:
功能块 WAIT 的指令部分。
第3章 编程实例
其实就是TP计时器
的输出端Q,只不
过这里是用全局变
上一表达式结果为
真,则跳转至标志
量ZAB表示TP
mark 处
将TIME_IN数据存
到ZAB.PT 其实就是TP计时器
的输入端PT
3.1.12 创建 SFC 图表
在 SFC 中,POU 的第一个图表总是由一个动作“Init” 及其后面的转换"Trans0" 和 一
个返回到 Init 的跳转组成。我们必须要扩展它。
在编写每个动作和转换之前,让我们先确定图表的结构。每个 TRAFFICSIGNAL 状态
都需要一个步骤。通过 Trans0 插入,并点击 'Insert' 'Step transition (after)'。重复这个
步骤三次或更多次。
直接点击转换名或步骤名,就可以对它进行修改。命名 Init 之后的第一个转换名为
"START",其他所有转换名为 "DELAY.OK"。
START 为 TRUE 时,第一个转换打开;DELAY 中的 OK 为 TRUE 时,也就是当设
定时间周期完成时,所有其它转换都打开。
从上到下的步骤名分别为 Switch1、Green2、Switch2、Green1,Init 保留其名。"Switch"
中 包 含 黄 色 状 态 , 在 Green1 中 TRAFFICSIGNAL1 将 为 绿 色 , 在 Green2 中
TRAFFICSIGNAL2 将为绿色。最后,在 Switch1 之后,改变 Init 的返回地址。图表如下:
程序 SEQUENCE 第一扩展级指令部分。
第3章 编程实例
现在,我们为每一个步骤编写程序。如果你双击步骤,就会弹出一个对话框用于建立
一个新的动作。这里我们使用 IL(Instruction List)语言编程。
3.1.13 动作及转换条件
在步骤 Init 的动作中变量被初始化,TRAFFICSIGNAL1 的 STATUS 将为1(绿色)。
TRAFFICSIGNAL2 的状态将为3 (红色)。步骤 Init 的动作如下所示:
Init 动作。
程序的第一扩展级部分完成了。现在可以编译并仿真测试这个程序。
第3章 编程实例
选中 Switch1 后面的转换并插入一个步骤及一个转换。选中这个新转换并在左侧插入
一个选择分支。在左侧转换后面再插入一个步骤和一个转换。在这个最新生成的转换后面
插入一个跳转(Jump)。
命名新生成的部分如下:两个新步骤中上面的命名为 "Count",下面的命名为 "Off"。
转换(从上到下,从左到右)分别命名为 EXIT、TRUE 及 DELAY.OK。 新生成的部分用
黑框标注如下:
程序 SEQUENCE 第二扩展级指令部分。
第3章 编程实例
EXIT 转换检测计数器是否大于某个设定值(例如:设定值为7):
EXIT 转换。
在 Off 中,两个灯的状态为5(OFF,即每个状态数值都不等于1,2,3或4),计数器
COUNTER 复位为0,延时时间设为10s:
Off 的动作。
3.1.15 结果
我们假设的情况是,七个 TRAFFICSIGNAL 循环后,夜幕降临,交通灯TRAFFICSIGNAL
熄灭,10秒钟后,白天再次来临,交通灯自动运行,开始执行整个过程。
3.1.16 PLC_PRG
在 SEQUENCE 块中,我们定义了两组交通灯及相对于每组交通灯状态的时间顺序。
然而,我们所看到的交通灯系统是现场总线系统中的一个模块,例如:CANbus。我们必
须在 PLC_PRG 块中建立一些输入及输出变量。我们希望通过一个开关(ON)启动交通
灯系统并根据 SEQUENCE 的每个步骤向六个灯(每组交通灯含红,绿,黄三个灯)发送
相应的"signal command"。在编写程序之前,我们先声明六个布尔输出变量和一个布尔输
入变量并同时为其赋值相应的 IEC 地址。
下面,我们声明变量 Light1 和 Light2 。
LIGHT1 和 LIGHT2 的声明。
第3章 编程实例
根据 SEQUENCE 的每个步骤,向上面所提及的六个输出变量递送相应灯的布尔值。
然而,我们没有在此声明输出变量,这些输出变量已预先在 PLC_PRG 块中的程序资源
(Resources)中定义为全局变量(Global Variable)。在 SEQUENCE 中, 用于设置变量
START 为 TRUE 的布尔型输入变量 IN 同样被定义为全局变量。ON 也被赋值给一个
IEC 地址。
选择标签Resources并打开全局变量表
建立如下声明:
3.1.17 TRAFFICSIGNAL 仿真
现在测试程序。首先对其进行编译('Project' 'Rebuild all'),然后登录('Online' 'Login')
并下载程序('Online' 'Download')
。如果选择'Online' 'Run',程序就会按照所编写的步骤
顺序执行下去。PLC_PRG 窗口变为监控窗口。在变量声明编辑器中,双击 “+”,打开一
个变量表,变量的当前值就可以显示出来。
3.2 图形化交通信号灯
使用 PROSYD 1131 的图形显示功能可以快速、容易地使项目变量形象化。我们
现在将要绘制两个交通信号灯和一个 ON 开关用来举例说明程序的执行过程。
3.2.1 创建新图形
为了创建一个新图形,必须首先进入图形编辑(Visualization)范围。点击左侧窗口底
部标有符号 的选项卡。执行命令 'Project' 'Object Add', 打开一个对话框,输入一个新
名称。
点击对话框中的 OK,新建立的图形窗口就打开了。
3.2.2 插入图形元件
建立 TRAFFICSIGNAL 图形,应执行如下步骤:
·执行命令 'Insert' 'Ellipse' ,在图形编辑器中按住鼠标左键画一个直径为2cm
第3章 编程实例
的圆。
·双击这个圆,打开标准图形元件对话框。
· 选 Category 中 的 Variables , 进 入 Change color 区 域 , 键 入 变 量
名 .L1_red 或
使用辅助输入按钮<F2>选择这个变量。这是 PLC_PRG 中功能块实例 LIGHT1 中变
量 RED 的地址。
图形对话框 Variables。
3.2.3 其它交通灯
执行命令 'Edit' 'Copy' (<Ctrl>+<C>) ,然后再执行两次 'Edit' 'Paste' (<Ctrl>+<V>)
命令。这样就可以得到与第一个圆的尺寸相同的两个圆。你可以用鼠标左键按住一个圆并
将其拖动到编辑窗口左部位置并依次将这三个圆垂直排列。双击新建的两个圆中的一个,
再次打开配置对话框。在 Change Color 区域中,输入相应的变量:
第3章 编程实例
中间的圆形:L1_yellow
下面的圆形:L1-green
在 Category Color 中的 Alarm color 区域,为两个圆选择相应的颜色(yellow 或
green)。
3.2.4 TRAFFICSIGNAL 灯箱
执行命令 'Insert' 'Rectangle',用同样的方法插入一个长方形并把三个圆围绕起来。
为这个长方形选择一种中性色,执行命令 'Extras' 'Send to back',将三个圆显示出来。
如果仿真模式还没有启动,可以用命令 'Online' 'Simulation' 来激活。
如果你已经使用命令 'Online' 'Login' 和 'Online' 'Run' 启动了仿真模式,那么就会发
现第一个交通信号灯的颜色已经改变了。
3.2.5 第二个交通信号灯
创建第二个交通信号灯,最简单的方法是把第一个交通信号的所有元件拷贝过来。因
此选中第一个交通信号灯的所有元件并用命令 'Edit' 'Copy' 和 'Edit' 'Paste' 进行复制。然
后分别将对应于"LIGHT1" 的文本改为对应于"LIGHT2"的文本,由此,第二个交通信号灯
的显示图形就完成了。
3.2.6 开关 ON
与上述为一个交通灯设置颜色一样,插入一个长方形并为其设置颜色。在 Variables 中
的 Change color 区域输入 .ON。在 Text 中的 Content 区域输入 "ON"。
图形配置对话框 (Category Text)。
3.2.7 图形中的字体
为了使图形更完善,先插入两个矩形,分别放在两个交通信号灯的下面。
将 Color 中的 Frame 设置为白色,并在 Text 中的 Contents 区域写入 "Light1" 或
"Light2"。现在的图形显示如下:
第4章 PROSYD 1131 的组件
4.1.1 主菜单
主菜单位于主画面的最上方,包含所有菜单命令。
4.1.2 工具条
用鼠标点击图标可以更快速地选择菜单命令。工具条中可用的图标根据当前的活动窗
口而有所不同。
第4章 PROSYD 1131 的组件
移动鼠标至某个图标,按鼠标键点击运行命令。。
用鼠标指向某个图标并停留一个短暂时间,该图标名称就会自动显示出来。
如果要查看工具栏中每个图标的详细描述,请选择主菜单中的帮助栏(Help)。
工具栏的显示是可选的(参见‘Project’‘Options’ )。
4.1.3 对象管理器
对象管理器位于 PROSYD 1131 主画面的左侧。在它的底部含有对应四种不同对象
4.1.4 屏幕分隔线
屏幕分隔线是两个不重叠的视窗间的边界。在 PROSYD 1131 中,屏幕分隔线位于
对象管理器与工作区主窗口之间;POU声明部分和POU指令部分之间;工作区与信息窗口
之间。
你可以使用鼠标来移动屏幕分隔线,方法是:移动鼠标至屏幕分隔线,按住鼠标左键
并移动。
即使在窗口尺寸已经改变的条件下,也要确保屏幕分隔线始终处于显示位置。如果屏
幕分隔线看上去好像不存在,你只要放大你的窗口就可以了。
4.1.5 工作区
工作区位于 PROSYD 1131 主画面的右侧。所有对象编辑器和库管理器都在此区域
显示。当前对象名显示在标题栏中,在其后面跟着显示POU类型名称的缩写及所使用的编
程语言的缩写
从主菜单中的 'Window' 下,你可以找到所有窗口管理命令。
4.1.6 信息窗口
在主画面中,信息窗口位于工作区下方。
该窗口包含所有编译、检查、比较等信息。搜索结果及交叉引用表也在此输出。
在信息窗口中,用鼠标双击一条错误信息,就可以打开对象编辑器,对象中出错的行
第4章 PROSYD 1131 的组件
被选择。使用命令 `Edit` `Next error` 和 `Edit` ` Previous error `,可以快速地在故障
信息之间跳转。
信息窗口的显示是可选的(参见`Window` `Messages`)。
4.1.7 状态栏
状态栏在 PROSYD 1131 主画面的底部。可提供有关当前项目和菜单命令的信息。
如果某个相关项目有效,在状态栏右侧的标注显示为黑色,否则为灰色。
当工作在在线模式下时,Online 显示为黑色。当工作在离线模式下时,显示为灰色。
在线模式下,通过状态栏可以察看程序是否处于仿真状态(SIM);是否正在运行
(RUNS);是否设置了断点(BP);是否强制了变量输出 (FORCE)。
指针的当前位置使用文本方式显示所在行号和列号(如 Line:5, Col.:11)。当处于
覆盖模式时,'OV' 显示为黑色。按 <Ins> 键可在覆盖模式和插入模式间切换。
在可视化窗口,鼠标的当前位置使用相对于屏幕左上角的象素坐标 X 和 Y 表示 。
如果鼠标指向一个元件(Element),或这个元件正在被处理,则它的序号被显示出来。
插入一个新元件时,其名称也会显示(如:Rectangle)。
如果你刚刚选择了一个菜单命令,但还没有确认,则关于该命令的简短描述会显示在
状态栏中。
状态栏的显示是可选的(参见'Project' 'Options')。
4.1.8 上下文菜单
快捷键: <Shift> + <F10>
除了通过菜单栏选择执行命令外,还可以使用鼠标右键功能。显示的菜单中包含用于
选择对象、用于当前编辑器的所最常用的命令。对于不同的活动窗口,可用的命令也不同。
4.2 选项功能
使用命令‘Project’ ‘Options’可以对软件进行相关设置。新生成的设置存放在文件
“PROSYD 1131.ini” 中,重新启动PROSYD 1131后生效。
4.2.2 装载及存储选项
如果选择这个选项,弹出以下对话框:
当激活一个选项后,符号(√)显示在选项前。
如果选择了 Create Backup 选项,PROSYD 1131 在存储文件时将生成带有扩展
名 ".bak" 的备份文件。这样你就可以恢复上次存储之前的版本。
如果选择了 Auto Save 选项, 当工作时,你设计的项目将依照所设定的时间间隔
(Auto Save Interval)不断地被存储到具有扩展名 ".asd" 的临时文件中。通常,当从程
序中退出时,该文件会自动删除。如果由于某种原因 PROSYD 1131 没有正常关闭(例
如:电源故障),这个文件不会被删除。当你再次打开程序时,显示如下信息:
你现在可以决定是否打开原始文件或自动存储的文件。
请求项目信息(Ask for project info):当存储一个新项目或重新命名一个项目时,
会显示一个要求输入项目信息的对话框。你可以使用命令 'Project' 'Project info' 查看项目
信息。
自动装载(Auto Load): 当再一次启动 PROSYD 1131 程序时,上次打开的项目
会自动载入。在启动 PROSYD 1131 时所装载的项目也可以通过在命令行中输入项目名
来载入。
编译前存储(Save before compile):项目在每次编译前会自动存储。
第4章 PROSYD 1131 的组件
4.2.3 用户信息选项
如果选择这个选项,弹出以下对话框:
用户信息包含:用户名、字头、公司名称。每个输入信息都可以修改。
4.2.4 编辑器选项
如果选择这个选项,弹出以下对话框:
当激活一个选项后,符号(√)显示在选项前。
可对编辑器作如下设置:
• 自动声明 Autodeclaration
• 自动套用格式 Autoformat
• 表格式声明 Declaration as table
• 制表宽度 Tab width
• 字体 Font
第4章 PROSYD 1131 的组件
• 显示文本选择(标记) Display of the text selection (Mark)
• 数值显示 Display of the Bitvalues
4.2.4.1 自动声明
如果在选项对话框中的编辑器类别中选择了自动声明(Autodeclaration)选项,那
么在所有编辑器中,对未声明的变量会自动弹出一个变量声明对话框。
激活此选项后,选项前面出现(√)。
4.2.4.2 自动套用格式
如果在选项对话框中的编辑器类别中选择了自动套用格式(Autoformat),那么
PROSYD 1131 将在 IL 编辑器和声明编辑器中执行自动套用格式。当一行指令输入完
成后,将以如下格式显示:
• 以小写字母输入的操作命令被显示成大写字母。
• 各列之间通过空格均匀分开。
激活此选项后,选项前面出现(√)。
4.2.4.3 表格式声明
4.2.4.4 打印边界
提示: 只有当放大系数为100%时,才能精确显示打印边界。
第4章 PROSYD 1131 的组件
4.2.4.5 注释
在选项对话框的编辑器类别中的Tab-Width 栏中,可以定义编辑器制表宽度。缺省设
置为4个字符,字符的宽度取决于所选择的字体。
4.2.4.7 字体
4.2.4.8 标记
从选项对话框的编辑器类别中的标记Mark区 ,可以为图形编辑器(如:IL,FBD,
SFC,CFC)的当前选定标记设定为用虚线框(Dotted)、实线框(Line) 或填充框(Filled)
表示。
激活此选项后,选项前面出现(•)。
4.2.4.9 数值显示方式
从选项对话框的编辑器类别中的Bitvalues区 ,可以为监视状态下的数据(类型为
BYTE、WORD、DWROD)设定显示方式:十进制(Decimal),十六进制(Hexadecimal)
或二进制(Binary)。
激活此选项后,选项前面出现(•)
4.2.5 桌面选项
如果在选项对话框中选择此类别,将显示如下:
第4章 PROSYD 1131 的组件
4.2.6 颜色选项
如
第4章 PROSYD 1131 的组件
果在选项对话框中选择此类别,则出现以下对话框。
4.2.7 目录选项
如果在选项对话框中选择此类别,将出现以下对话框:
第4章 PROSYD 1131 的组件
在 Project 和 Common 区域中所输入的路径用于PROSYD 1131 搜索库文件
(libraries)、控制器配置文件(configuration)以及存储编译文件(compile),源代
码上载文件(Upload files)。 点击按钮(...),出现目录选择对话框。对于库文件和配置文
件,可以输入多个路径,中间用分号";"隔开。
在项目(Project)区中输入的信息伴随着这个项目存储。在公共(Common)区中
输入的信息存储在.ini文件中,适用于所有项目。
目标(Target)区用于显示在目标系统所需要的库文件和配置文件的路径,例如:目
标文件中的所有输入项。这些区域不能够编辑,但输入项可以选择并复制。
PROSYD 1131 通常先搜索‘Project’中的第一个路径,然后是‘Target System’中的路
径,最后是公共区‘Common’中的路径。如果有两个文件重名,那么将采用先搜索到的文
件。
4.2.8 日志选项
如果在选项对话框中选择此类别,将出现以下对话框:
在此对话框中,可以配置一个文件作为一个项目日志,用于记录所有的用户操作以及
在线模式过程中的内部处理。
如果打开一个现有项目(project),该项目还没有生成日志,则一个对话框打开并提
醒正在建立日志,它将在下一次登录过程后自动记录。
当存储项目时,日志作为一个二进制文件自动存储在项目目录下。如果你希望建立一
第4章 PROSYD 1131 的组件
个不同的目录,点击选项 ‘Directory for project logs:’ 并输入正确的目录。点击按钮
4.2.9 编译选项
在选项对话框中选择此类别,将出现以下对话框:
4.2.10 密码(Passwords)
如果在选项对话框中选择了此类别,将出现以下对话框。
使用一个密码来保护你的文件,防止未经授权的用户打开或更改。
在 Password 区域输入密码,输入的字符在密码区内显示为星号(*) 。你还需在确
认密码区(Confirm Password )重新输入密码,并点击OK。如显示如下信息:
“The password does not agree with the confirmation”,
表示在两个区域内所输入的密码不相同。这种情况下,需要重新输入。
当你存储文件后重新打开时,会出现一个对话框并要求你输入密码。此项目只有在正
确输入密码的情况下才能打开,否则 PROSYD 1131 报告:
“The password is not correct.”
同打开文件一样,你还可以使用密码以保护你的文件不被更改。方法是:在写保护密
码区(Write Protection Password)输入密码,并在下面的区域重新输入。
写保护文件可以在不使用密码的情况下被打开,如果在打开文件时,PROSYD 1131
要求输入写保护密码,你只需按一下 Cancel 键。 你可以执行编译、下载、仿真等操作,
第4章 PROSYD 1131 的组件
但不能更改它。
当然,记住这两个密码是很重要的,一旦忘掉密码后,请立即与你的供应商联系。
密码选项的设置是随项目存储的。
为了创建不同的访问权限,你可以定义用户组和用户组密码“Passwords for user
groups”。
4.2.11 源代码下载(Sourcedownload)
当选择此类别后,将出现以下对话框。
你可以选择将项目装入控制系统的时机(Timing)和范围(Extent)。选项
Sourcecode only 只装载PROSYD 1131 文件;选项 All files 可装载相关联的库文
件、可视化位图文件、配置文件等所有文件。
设置选项 Implicit at load,当执行 'Online''Download' 命令时,允许所选择的
文件范围自动装入控制器系统。
设置选项 Notice at load ,当执行'Online''Download' 命令时会出现一个对话框
"Do you want to write the source code into the controller system?",按 Yes,所选择的
文件范围将自动装入控制器系统中;你也可以选择 No 退出。
设置选项On demand,当执行命令'Online''Sourcecode download' 时,所选择
的文件范围被装入控制器系统中。
储存在控制器系统中的项目程序,可以通过 'File' 'Open' 命令,按 Open project from
PLC 区域中的 PLC 按钮,从 PLC 中重新获得项目程序。
提示:
如果选项‘Symbol config from INI-file’被激活,那么符号配置将从PROSYD 1131.ini 文
第4章 PROSYD 1131 的组件
件或由它定义的其它ini文件中读取。(在这种情况下,不能编辑PROSYD 1131中的‘Set
object attributes’ 对话框)。
使用树型结构选择编辑器选择POU并在对话框下方用鼠标选择需要的选项。激活的选
项前面显示一个标记。如下选项可以设置:
输出对象变量(Export variables of object): 选定对象的变量输出到一符号文件
中。
只有Export variables of object 选项被激活后,以下选项才能有效。
输出数据入口(Export data entries): 为在全局变量中的结构体对象和数组对象
创建访问入口。
输出结构单元(Export structure components): 为结构体对象的每个变量单元
创建一个独立的入口。
输出数组入口(Export array entries): 为数组对象的每个变量单元创建一个独立
的入口。
允许写入(Write access): 对象变量可被OPC服务器更改。
一旦完成对当前POU的选项设置,可以选择其它POU并给予一个选项配置。任意数量
的POU都可以被选择并一个接一个地设定。选择OK关闭对话框。
在此对话框中,可使用PROSYD 1131程序中的批处理命令定义宏指令。通过菜单中
'Edit' 'Macros' 命令调用。
在Name区域,为将生成的宏输入一个名字。按 New 按钮,这个名字被传入Macro
区域内并被标记为已选用。对于已选定的一个宏,可用<Del>键删除;或在Name区域输
入一个新名字并按Rename 键进行更改。
在命令(Commands)编辑区可以定义或编辑新生成的或已选择的宏命令。所有
PROSYD 1131 的批处理命令都可以使用。你可以按 Help 键获得一份命令列表。
按<Ctrl><Enter>键开始一个新的命令行。使用鼠标右键打开一个包括文本编辑功能
的快捷菜单。通过引号可将命令元件编组。
Menu 区域用于定义显示在'Edit' 'Macros'菜单中显示的宏。为了使用单个字母作为热
键,只需在字母前加上符号 '&',例如:名字"Ma&cro 1" 所生成的菜单登录为 "Macro 1"。
点击 OK,关闭宏定义对话框。
在'Edit' 'Macros'菜单中,宏按照它们所定义的顺序显示。
当执行一个菜单命令时,首先进行测试宏。
4.3 项目管理
在菜单'File' 和 'Project' 中可找到关于整个项目的所有命令。
符号:
用此命令可以创建一个名为"Untitled" 的空项目。当保存时,此名字必须更改。
符号:
用此命令可打开一个已存在的项目。如果该项目被打开并更改,则PROSYD 1131 会
询问是否保存。
第4章 PROSYD 1131 的组件
显示打开文件对话框,选择项目名(扩展名*.pro)或库文件名(扩展名*.lib)。所选
的文件必须是已经存在的。在命令"Open"中创建新项目是不可能的。
如需从PLC中上载一个项目程序,可在Open project from PLC 中点击 PLC 按钮。如
果还没有和PLC建立连接,将显示通讯参数对话框用于设置通讯参数;如果已经建立了连
接,系统将检查在计算机硬盘上是否有重名的项目存在。在有重名项目存在的情况下,你
会收到对话框 Load the project from the controller, 在此你能够决定是否替换本地文件。
(这个顺序与 'Online' 'Load source code' 的顺序相反,该项目源文件储存在控制器中。
不要与'Create Boot project' 相混淆。
提示:
请注意,当你从PLC中上载一个项目程序至本地目录时,应为其命名一个新名字,否
则它将是一个未命名文件。
如果PLC中没有程序,将出现错误信息。
打开文件对话框如下:
在此你可以定义需要添加到归档压缩文件中的数据类型:通过用鼠标点击选择框或双
击文件类型名进行选择或删除。如果某种文件类型标有 ,则所有此类型的文件都被添
加到压缩文件中;如果标有 ,则所有此类文件都不被存储。如只需选择某种类型文件
中的某单个文件,请点击相应的 Details 键,打开Details 对话框。
第4章 PROSYD 1131 的组件
点击 Add 按钮,打开一个标准对话框,选择一个文件,按Open。此文件将被添加到
‘Other files’ 对话框列表中。重复这个步骤可添加所有需要的文件。点击Remove,从列
表中删除文件。选择完成后,点击OK 关闭对话框。
如需在档案压缩文件中添加Readme文件,按 Comment,显示文本对话框,可以输
入任何内容。点击 OK,关闭对话框。当创建压缩文件时即可加入readme.txt。
注释可以包含创建信息及PROSYD 1131版本信息。
所有选项选择完成后,在主对话框中
z Save… 创建并存储档案压缩文件:打开存储文件标准对话框,输入文件存储路
径。压缩文件缺省名为<projectname>.zip。用Save 按钮确认开始创建压缩文
件,在处理过程中同时显示当前处理状态,在信息窗口中可以显示进行的步骤。
z Mail… 创建一个临时压缩文件,并将此文件作为电子邮件的附件。此功能只有在
系统安装了MAPI(信息应用程序接口)后才能工作。否则会产生一故障信息。在
建立电子邮件的过程中,处理状态及步骤显示在信息窗口中。处理结束后,临时
压缩文件将被自动删除。
z Cancel 用于取消操作,不创建压缩文档。
选择需要的功能选项、配置打印机、点击OK。当前窗口被打印出来。颜色输出对所有
编辑器都有效。
你可以设定打印份数和打印文件版本。
使用Properties按钮,打开设定打印机对话框。
使用用命令'File' 'PrinterSetup',可以定义打印输出的格式。
打印过程中,一个对话框显示已经打印的页数。如关闭此对话框,下一页打印完成后
将停止打印。
使用命令'Project' 'Document',可将整个项目编制成文档。
如果你想为你的项目创建一个文本框架以用于项目中所有变量的注释,那么打开全局
变量列表并执行命令'Extras' 'Make docuframe file'。
参
见在线帮助章节中的错误信息和警告列表。
如果在选项对话框中的 Load & Save 类别中选择了Save before compilation,则项目
在编译前被保存。
提示:
交叉引用(Cross references)在编译过程中生成并随编译信息一同存储。为了能够在
‘Project’ ‘Check’ 菜单中使用命令'Show Call Tree'、'Show Cross Reference'、'Unused
Variables'、'Concurrent Access' 及'Multiple Write Access on output',项目在改动后
必须重新编译。
提示:
执行'Clean all'命令后, 如果记录项目最后一次下载信息的 *.ri 文件保存在项目目录外,则在
登录操作前装载此文件,该项目才能再次登录到PLC。
第4章 PROSYD 1131 的组件
4.3.14.1 创建转换文件
提示:
对于可视化文本(可视化元件中的‘Text' 和‘Text for Tooltip'),在可视化元件配置对话
框中,必须用两个的"#" 标著 (例如:#text#),以便于传送到转换文件。这些文本在
使用'Project' 'Translate into other languages'命令后并不能转换!在线模式下,如果
在'Extras' 'Settings' 对话框中输入相应的语言,可视元件才显示其他语言。
位置信息:包含文件路径,POU和语言符号的位置,以便于转换。含有三种选项。
'None': 不产生位置信息。
'First appearance': 单元首次出现的位置被添加到转换翻译文件中。
'All': 对应元件的所有位置都被添加到转换文件中
如果一个较早创建的转换文件所包含的位置信息比当前所选文件要多,不管该文件是
从哪一个项目生成的,都将会被删节或删除。
提示:
即使用户已经在创建转换文件对话框中的“Position Information” 下选择了"All",但对
于每个元件(语言符号)最多可以生成64个位置说明。
语言识别符必须输入到编辑区内,且在开头和结尾不能含有空格符或变音符(ä, ö,
ü) 。
点击OK按钮关闭‘Add Target Language’对话框,新的目标语言显示在语言列表中。
用Remove 按钮从列表中移除一选定条目。
用OK按钮确认“Create translation file”对话框以生成一个转换文件。
如果转换文件名已经存在,将出现以下确认信息,可选择Yes或No:
" The specified translation file already exists. It will now be altered and abackup
copy of the existing file will be created. Do you want to continue?"
选 No 返回‘Create translation file’对话框,选Yes,将在同一路径下为现有转换文件
创建一个名为"Backup_of_<translation file>.xlt" 的备份文件,相应的转换文件将依照已
输入的选项进行更改。
第4章 PROSYD 1131 的组件
当创建转换文件时,将产生以下情况:
对每种新的目标语言,都产生一个占位符(“##TODO”)用于语言符号的显示。
如果处理一个现有的转换文件,显示在转换文件中的语言条目(不是目标语言列表中
包含的)被删除,不管是由哪个项目创建的。
参见‘Editing of the translation file’,如何编辑转换文件。
4.3.14.2 编辑转换文件
转换文件必须作为一个文本文件打开并存储。符号 ## 为关键字。文件中##TODO-
占位符能通过有效转换来替换。对每种语言符号都产生一段文字,以##NAME_ITEM开始
并以##END_NAME_ITEM结束(注释对应 ##COMMENT_ITEM 等.)。
下面为一转换文件的段落示例,用于处理项目ST_Visu中一个POU的名称.。目标语言
为英文English和法文French。在这个例子中,将转换的项目元件的位置信息已经被添加。
转换前:
##NAME_ITEM
[D:\ PROSYD 1131\projects\Bspdt_22.pro::ST_Visualisierung::0]
ST_Visualisierung
##English :: ##TODO
##French :: ##TODO
##END_NAME_ITEM
在转换后:##TODOs已经被'Visualisierung'的相关英文和法文单词所替换:
##NAME_ITEM
[D:\ PROSYD 1131\projects\Bspdt_22.pro::ST_Visualisierung::0]
ST_Visualisierung
##English :: ST_Visualization
##French :: ST_Visu
##END_NAME_ITEM
请检查确认转换标识符和名字保持正确的标准,字符串和注释放在括号内。
提示:
没有详细的了解请不要修改转换文件中的以下部分:语言块(Language block),标
志
块(Flag block),位置信息(Position information),原文本(Original texts)。
4.3.14.3 将项目转换(为其他语言)
如果选用适当的转换文件,当前项目可转换成为其它语言。
提示:
如果你想保存使用最初的语言创建的项目,则必须在转换前将项目以其它名字另存。
转换过程不能被取消。
对话框中只有蓝色高亮显示的部分被打印。
如果你想选择整个项目,在第一行选择项目名。
另一方面,如果你只想选择其中一个对象,只需点击相应的对象或使用上下方向键移
动虚框至相应的对象上。符号前有加号的对象为对象组,包含其他对象。点击加号,打开
对象组,再点击减号关闭对象组。当你选择对象组后,其包含的所有对象都被选定。用
<Shift>键可以成组选择对象,用<Ctrl> 键可以选择多个单独的对象。
当你完成选择后,点击OK。显示打印对话框,你可以用命令'File' 'Printer setup' 定义
打印页面布置。
提示:
如果图形编辑器中的注释包含一个单引号,当重新导入FBD或LD导出文件时,会产生一个错误,
因为单引号将被解释为一个字符串的开始。
提示:
在比较模式下(参见状态栏:COMPARE),项目不能被编辑!
执行比较:
执行'Project' 'Compare' 命令后,‘Project Comparison’对话框打开:
在Project to compare区域输入参考项目名。如果你想使用标准对话框打开一个项
目,可直接按 。如果你输入的是实际项目名,项目的当前版本将与最后存储的版本相
比较。
可以选择下列关于比较的选项:
忽略空白区(Ignore whitespaces):对于空白区数量的不同,检测结果为无差别。
忽略注释(Ignore comments): 不检测注释的不同。
差别对比(Oppose differences): 如果一个POU中的一行、一个网络或一个元素已
经被改变了,在比较模式下,它将在双窗口中直接对应于另一项目进行显示(标记为红色,
见下图)。如果没有选中此选项,相应的行在参考项目中将显示为 'deleted' ,在实际项
目中作为显示为 'inserted'(兰/绿 见下图)。也就是说它将不会直接相对于另一项目中
的同一行进行显示。
例如: 行0005 在实际项目(左侧)中已被更改。
第4章 PROSYD 1131 的组件
点击OK,关闭项目比较对话框,按照设置执行比较。
显示比较结果:
比较模式下项目概述:
项目比较执行后,打开一个双窗口显示比较模式下的项目。标题栏中含项目路“Project
comparison <path of actual project>-<path of reference project>”。实际项目显示在窗
口的左半部分,参考项目显示在右半部分。每个结构树在最高位置显示项目名,除此之外,
它还符合对象管理结构。
例如,比较模式下的项目。
POU中不同的部分,在结构树中通过阴影、特定颜色并最终通过附加文本表示:
红色: 已被更改的单元在两个分开的窗口中都显示为红色。
蓝色: 仅在比较项目中有效的单元;在实际项目结构概览中的对应位置插入空行。
绿色: 仅在实际项目中有效的单元;在比较项目结构概览中的对应位置插入空行。
黑色: 用于无差别检测单元。
"(Pproperties change)": 如果检测到POU的属性不同,此文字将附加到项目结构树
中POU名上。
"(Access rights changed)": 如果检测到POU访问权限不同,此文字将附加到项目
结构树中POU名上。
比较模式下POU 内容:
在结构树中双击因为更改被标为红色的一行,打开POU。
如果它是一个文本或图形编辑POU,将在双窗口中打开。参考项目中的内容(右侧)
第4章 PROSYD 1131 的组件
对应实际项目内容(左侧)而放置。在比较过程中被识别的最小单位是一个行(ST,IL)、
一个网络(FBD,LD)或一个元件(CFC,SFC)。颜色定义同上述项目概览中的描述。
例如:比较模式下的POU。
如果两者差别不是一个可编辑的POU,而是任务配置或目标设定等等,则实际项目和
参考项目中的POU版本可通过双击项目结构中各自的行而显示在两个分开的窗口中。对于
这些项目,不显示更详细的POU 差异。
在比较模式下工作(菜单'Extras', Context menu):
如果指针指向双窗口中显示具有差别的行上,按右键显示菜单'Extras' ,根据是工作
在项目概览下或在POU下的不同,可提供以下命令选项。
指针指向下一个具有差别的单元上(项目概览中的行,POU中的行/网络/元件)。
指针指向上一个具有差别的单元上(项目概览中的行,POU中的行/网络/元件)。
第4章 PROSYD 1131 的组件
用于所有连续的单元(差别标记的排序相同),参考项目版本将被实际项目所接收。
对应单元(具有相应颜色)将显示在窗口左侧。如果一个单元显示为红色(表示经过修改),
则被接收的单元在实际项目中显示为黄色。
只有指针选定的单元(行,网络,元件)才被接收。相应的单元显示(具有相应颜色)
在窗口左侧。如果该单元显示为红色(表示经过修改),则被接收的单元在实际项目中显
示为黄色。
实际项目将接收指针所指POU的与在参考项目中的设置的对象属性。
仅用于项目概览对话框:实际项目将接收指针所指POU的在参考项目中的设置的对象
访问权限。
此外,你还可以添加以下信息。
·项目标题,
·作者名,
·版本号,
·项目描述
此信息是可选的。当点击 Statistics 按钮后,可获得项目的的统计信息。
该信息为最后一次编译时所记录的,如:POU 数量,数据类型,全局及局部变量。
例如:项目统计信息框。
第4章 PROSYD 1131 的组件
选择OK。打开标准搜索对话框。通过菜单栏中的图标 调用‘全局查找’('Global
第4章 PROSYD 1131 的组件
Search')命令;查找操作将在项目中所有可搜索的部分中自动进行。在Search for 区域
的复选框中可以选择最新被输入的查找字符串。如果在一个对象中找到该字符串,该对象
将被装载到在相应的编辑器或库管理器中,并定位到字符串所在位置。文本的显示以及搜
索并查找下一个文本的功能与'Edit' 'Search'命令相似。
如果选择In message window 按钮, 在所选对象中的所有查到的符号位置信息将
以表格形式一行一行地列于信息窗口中。最后显示所查到位置的数量。
如果报告窗口处于关闭状态,它将被自动打开。对于所找到的每一个位置信息,将显
示如下内容。
·对象名
·在POU变量声明区或工作区内的位置
·行及网络个数
·文本编辑器中的整行
·图形编辑器中的整个文本元件
搜索结果显示窗口如下:
如果你在信息显示窗口中用鼠标双击其中一行或按<Enter>按钮,相应的对象被装载
到编辑器中并打开,对象中相关的行被标记。你可以使用功能键<F4> 和 <Shift>+<F4>
在显示行之间快速切换。
在 ‘Project’ ‘Check’菜单中,此功能用于查找程序中已声明但未被使用的变量。它们依
据POU名或行被输出,例如:PLC_PRG (4) - var1。在库文件中的变量不能被检查。
检查结果显示在信息窗口中。
第4章 PROSYD 1131 的组件
结果显示在信息窗口中。
在 ‘Project’ ‘Check’菜单中,此功能用于查找在多个任务中同时被访问的存储区。不区
分读与写。例如:
%MB28 在以下任务中被使用:
Task1 Œ PLC_PRG (6): %MB28 [只读通道]
Task2 Œ POU1.ACTION (1) %MB28 [写通道]
结果显示在信息窗口中。
在 ‘Project’ ‘Check’菜单中,此功能用于查找在一个项目中的多个地方建立写通道。
例如:
在以下位置对%QB24进行写操作
PLC_PRG (3): %QB24
PLC_PRG.POU1 (8): %QB24
结果显示在信息窗口中。
在对话框左侧User group复选框中输入你属于的组,在右侧输入相关密码,按OK按钮。
如果所输入的密码不正确,出现以下信息:
"The password is not correct." ("密码不正确")
只有输入正确的密码后,项目才能被打开。
使用'Passwords for user group'命令可分配密码,使用'Object' 'Access rights' 命令可以
定义单个或所有对象的权限。
提示:
如果不是为所有用户组都定义了密码,项目可以通过没有定义密码的用户组打开。
4.4.1 对象(Object)
POU, 数据类型,可视化组件,全局变量,变量配置,采样跟踪,PLC配置,任务配置,
查看与配方管理都被定义为“对象”。部分用于构造项目的文件夹也包括在内。项目中的所
有对象都包含在对象管理器中。
如果你在对象管理器中用鼠标指向一个POU并保持一个很短的时间,则POU类型说明
(程序,函数,功能块)显示在工具提示栏中。对全局变量来说在工具提示栏中显示其关
键字(VAR_GLOBAL, VAR_CONFIG)。
使用鼠标的拖放功能,可在对象类型内移动对象(或文件夹)。方法是:按鼠标左键
选中对象并将其移动到指定位置。如果移动导致重名,新引入的对象名后将添加一个独立
的识别符序号(例如:"Object_1")。
4.4.2 文件夹(Folder)
为了使大项目保持清晰,在文件夹中可以系统地对POU,数据类型,可视化组件,全
局变量进行编组。
可以根据需要设定多层文件夹。如果一个关闭的文件夹前带有加号 ,则表示此文
件夹中包含一些对象和文件夹。点击加号,文件夹被打开,显示其从属的对象。此时点击
减号此文件夹又被关闭。在下拉式菜单中,命令'Expand nodes' 和 'Collapse nodes'与此
功能相同。
使用鼠标的拖放功能,可在对象类型内部移动对象(或文件夹)。按住鼠标左键选择
对象并将其移动到指定位置。
使用命令'New folder' 可创建更多文件夹。
提示:
文件夹不会对程序产生影响,但可以使项目结构清晰。
例如:对象管理器中的文件夹。
第4章 PROSYD 1131 的组件
例如:新建POU对话框。
如果与上述命名规则没有冲突,点击OK,在对象管理器中创建新对象,同时显示相应
的输入窗口。
如果使用'Edit' 'Insert'命令,插入剪贴板中的对象并无对话框显示。如果所插入的对
象名字与上述规则相冲突(见上文),则在其名后加一下划线和数字使其成为唯一的名字
(例如"Rightturnsig_1")。
用户组0的成员可以为其他用户组分配独立的访问权限。含以下三种可能的设定:
·无存取权:此用户组成员不能打开对象。
·只读:此用户组成员只能打开对象阅读,但不能更改。
·全部权限:此用户组成员打开和更改此对象。
这些设置被应用于对象管理器中当前所选择对象,如果选择选项Apply to all ,所有
POU,数据类型,可视化组件,项目资源都按此设置。
如果为用户组0分配了密码,通过输入密码打开项目后可以为用户组分配权限。
注意:
如果希望查看实例,必须首先登录!(此项目必须编译无错误,并通过命令'Online'
'Login'下载入PLC中)。
打开实例对话框如下:
4.5 通用编辑功能
你可以在所有编辑器中使用以下命令并且其中一些命令可以在对象管理器中使用。这
些命令位于菜单项'Edit'下或用鼠标右键打开下拉式菜单。
如果在计算机上装有IntelliPoint-Software,PROSYD 1131程序支持所有MS
IntelliMouse的功能。在所有具有缩放功能的编辑器中:当滚动鼠标时,按住<Ctrl>键进
行放大,反向滚动鼠标则进行缩小。
提示:
命令 Undo和 Redo只能用于当前窗口。每个窗口都含有其自身的操作列表。当在对
第4章 PROSYD 1131 的组件
象管理器中执行取消(Undo)或恢复(Redo)操作时,窗口必须处于激活状态。
提示:
命令 Undo和 Redo只能用于当前窗口。每个窗口含有其自己的操作列表。如果你希
望在多个窗口中执行U ndo操作,你必须先激活窗口。
在每个类别中POU、变量、数据类型简单地按照字母顺序排列。
在一些地方(例如:Watch List),都需要多级变量名。这样,在输入帮助对话框
(InputAssistant)中显示所有POU列表和一个全局变量。在每个POU名后都有一个点。如
果通过双击或按<Enter>键选择一个POU,则属于此POU的变量列表被打开。如果实例或
数据类型已存在,则在多层显示上打开下一层。按 OK 传送选择的变量。
可通过激活Structured Display项切换到结构显示。
Inst(IN:= ,PT:=)
如过未选择此选项,只有实例名被插入。在图形化语言中或在查看窗口中,通常只有
实例名被插入。
结构体的元素与功能块实例的显示方式相似。
对于枚举(enumerations),在枚举类型下面列有许多独立的枚举值。顺序是:库枚
举,数据类型枚举,POU局部枚举。
一般规则为包含子对象的行是不可选(除实例以外,参见上文),至于多级变量名,
能够通过一级打开或关闭其分级显示。
如果输入帮助在Watch and Receipt Manager 中或在轨迹配置对话框的轨迹变量选择
中被调用,则可以进行多次选择。当按<Shift>键时,你可以选择一个变量范围;当按<Ctrl>
键时,你可以选择多个独立变量。选择的变量带有标记。如果在所选行的范围内不包含有
效变量(例如:POU名),这些行将不包含在选择项内。当进行独立选择时,这样的行不
被标记。
在查看窗口(watch window)及轨迹配置(trace configuration)窗口,可以从输入
帮助对话框中传送结构、数组或实例。用鼠标双击功能可以打开或关闭单元的分层结构显
示,用OK键确认。
也就是说,可以在查看窗口中一行一行地插入选择的变量,每个变量被写在一独立行
中。在跟踪显示变量时,每个变量被插入到轨迹变量列表中的独立行上。
如果插入选择变量时,超过了最大可显示变量个数 20,则显示故障信息“最大允许20
个变量”。在此列表中将不能插入选择变量。
取消Structured Display, 可切换到非结构化显示。
提示:一些输入(例如:全局变量)编译后只能在输入帮助对话框中更新。
第4章 PROSYD 1131 的组件
4.6 通用在线功能
有效在线命令被集成在菜单条'Online' 下。部分命令的执行要依赖于当前的编辑器。
在线命令只有执行login命令后才有效。
'Online Change'功能,使你可以在控制器运行状态下改变程序。
4.6.1 ‘Online-Change’功能
PROSYD 1131 2.2版本支持在线更改功能。
在启动 PROSYD 1131 软件之前,在线更改功能已经激活。在Windows系统菜单下
选Start \ Programs \ PROSYD 1131* \ Onlinechange Configuration (* 或是你
已经选择的文件夹名),并选择条目Activate Onlinechange。如要取消在线更改功能请
选择条目Deactivate Onlinechange。
提示:
对于一个已经编译的项目,无论其在线更改功能是否已经设置,这个项目在装载之前
必须重新编译。
第4章 PROSYD 1131 的组件
提示:
在线更改功能需要在控制器中有两个同样大小的存储空间用于编译代码的比较。
错误(Error):
"Communication error. Log-out has occurred"
"通讯错误,退出登录"
检查控制器是否正在运行。检查在'Online' 'Communications parameters' 中的
参数设定是否与控制器相匹配。特别要检查是否设定了正确的通讯口,控制器与编程系统
的波特率是否相匹配。如果采用了网关服务器,请检查是否设定了正确的通道。
错误(Error):
"The program has been modified! Should the new program be loaded?"
(“程序已被修改!装载新程序吗?”)
在编辑器中打开的项目与当前PLC中的程序不相符(或程序运行在仿真模式)。因此
无法进行检测及调试。可以选择“No”,退出并打开正确的项目,也可选择"Yes",将当前
项目装入PLC。
信息(Message):
"The program has been changed. Load changes? (ONLINE CHANGE)".
第4章 PROSYD 1131 的组件
("程序已被改变,装入改变部分吗?(在线更改)")
项目运行在控制器内。目标系统支持‘在线更改’(‘Online Change’)并且控制器内的项目
已经被更改。你可以决定是否在控制器程序运行情况下将这些更改装入,或者选择取消此
命令。也可以选择Load all 装入全部编译代码。
对布尔型变量来说,在声明该变量的行上,通过双击鼠标来触发值(在TRUE 和FALSE
之间切换,不允许有其它值), 无对话框显示。
写入设定值以青绿色显示在括号中,位于原变量值后面。例如:a=0 <:=34>
提示:
例外:在 FBD、LD 编辑器中,值的显示为青绿色,在变量名后面没有括号。
可以为多个变量设定值。
准备写入变量的数值可以用同样的方法进行更改和删除。同'Online' 'Write/Force
dialog'的使用方式一样(见下文)。
被写入的值预先存储到写列表中(Watchlist),它们将一直保存直到被实际写入、删
除或通过'Force values'命令传入到强制列表(forcelist)中。
写数值(Write Values)命令可以在两个地方找到:
z ‘Write Values’命令在菜单'Online' 下。
z ‘Write Values’按钮在对话框'Editing the writelist and the forcelist' 下。
当执行'Write values'命令后,在控制器循环开始,写列表中的所有值都被一次性写入
对应的变量中,然后从写列表中删除。(如果执行'Force values'命令,变量从写列表中删
除并传入到强制列表中)。
提示:
在顺序功能图语言(SFC)中,不能使用 'Write values'命令改变转换表达式所分配的值。这
是由于在监视状态下,表达式所显示的总值('Total value')不是单独的变量值。 (例
如:"a AND b" 只有两个变量都为TRUE 时才显示为TRUE )。
另一方面,在FBD中只有表达式的第一个变量作为例如一个功能块的输入,在监视时,
'Write values' 命令只适用于此变量。
提示:
强制列表创建于第一次强制包含在写列表中的变量时,此时写列表的建立早于它所包含的变量
的第一次写操作。
该命令用于强制一个变量,这个变量将被输入到强制列表中,可以在以下两个地方找
到:
z ‘Force Values’命令在菜单'Online' 下。
z ‘Force Values’按钮在对话框'Editing the writelist and the forcelist' 下。
提示:
在顺序功能图语言(SFC)中,转换表达式所分配的值不能使用 'Force values'命令改变。这
是由于在监视状态下,表达式所显示的总值('Total value')不是单独的变量值。 (例
如:"a AND b" 只有两个变量都为TRUE 时才显示为TRUE )。
另一方面,在FBD中只有表达式的第一个变量作为例如一个功能块的输入,在监视时,
'Force values'命令只适用于此变量。
网关服务器允许本地PC机与一个或多个运行系统进行通讯。关于运行系统的地址设
定、每个网关服务器的特殊配置以及对网关服务器的连接设置都建立在本地PC机上。这样,
在本地PC机上可同时连接网关服务器和运行系统。如果我们试图与运行在另一台PC机上
的网关服务器进行连接处理,必须确保该网关服务器已经启动。如果你选择了本地安装网
关服务器,当你登录到运行系统时,网关服务器将自动启动。你可以在任务栏的右下方,
通过一个PROSYD 1131 符号来识别网关状态。当通过网关连接至运行系统时,此符号
出现。用鼠标右键点击该符号显示菜单Info和 Finish。Finish命令用于关闭网关。
见下面所显示的网关系统图表:
提示:
请注意对网关的连接仅允许通过TCP/IP方式,确认你的PC机已设置了适当的配置。
4.6.25 本地 PC 机上的通讯参数对话框
此对话框用于选择与PLC通讯的网关服务器。可以为安装在本地PC机上的网关服务器
建立通道,以便该网络中的其它计算机可以使用。
当前设置在任何时候都可以使用Update 按钮进行调用。
第4章 PROSYD 1131 的组件
如果通讯参数已经按照网关系统规则中的示例进行了配置,则将显示下面的对话框:
标题 Channels 列出了两种连接类别:
第一种为安装在当前已连接的网关服务器上的所有连接,叫做‘本地主机’('localhost')。
此网关的地址或名称在例子中位于减号后的上面位置。在正常情况下,'localhost' 的地址
对应于本地计算机(PC_local)的IP地址127.0.0.1。下面向右缩进部分为三个计算机的地址,
其网关通道被设置为PC_PLC1 到 3。它们已经由本地PC机或其它PC机(PC_x)配置为连接
到网关服务器。
第二种包含所有由本地PC机建立的至网关的连接,通过此配置对话框举例。在减号之
后,PC_PLC1和PC_PLC4之下创建分支。在网关上不必知道这些通道地址。例子中PC_PLC4
的配置参数存储在项目中,在下一次登录到运行系统时,网关将首先知道其配置参数。在
PC_PLC1上,相关的网关地址已经作为一个附加的连接“通道树” (“channel tree”)的“分
支”(“sub-branch”)显示出来了。
当选择左侧通道时,在对话框中间部分的Name, Value 和Comment 中显示相关参
数。
4.6.26 设定网关服务器和通道
设定网关服务器和通道:
为定义至网关服务器的连接,我们首先通过点击Gateway按钮打开对话框
'Communication Parameters Gateway'。 定义至网关的本地连接对话框。
在此,你可以 输入或编辑以下内容:
第4章 PROSYD 1131 的组件
z 连接(connection)类型,指从你的计算机至另一台计算机(网关服务器正在运
行中)的连接。如果网关服务器运行在本地计算机上,则允许使用共享内存("local")
或TCP/IP连接方式;如果需要连接至其它计算机上,只允许使用TCP/IP。
z 计算机地址,在该计算机上正在运行你想要使用的网关服务器:IP地址或相应的
主机名称(如:localhost)。在初始设置时,标准‘localhost’作为计算机名(地址),
这意味着可以访问本地安装网关。在大多数情况下,名字'localhost'被设置为IP地
址127.0.0.1,你也可以在地址区直接输入。如果需要访问其它计算机上的网关服
务器,你必须用该计算机名或IP地址更换'localhost'的名字或IP地址。
z 网关服务器密码,如果选定的网关服务器在远程计算机上,则需要输入密码。如
果密码输入不正确,或不完整,将出现错误信息。
在此连接中应注意:你可以按如下步骤给出本地安装网关服务器密码:用鼠标右
键点击工具栏右下方的网关图标,并选择‘更换密码’。显示更改或输入密码对话框,
如果你访问本地网关服务器,则不会被要求输入密码。
z 计算机端口,网关服务器使用此端口运行。作为一个标准,选择网关的正确数值
已经给出。
如果选择OK关闭对话框,对应的输入(计算机地址)将显示在‘通讯参数’对话框上部
的Channels区内,在它下面为此网关服务器上的有效通道。
设置网关服务器通道:
用鼠标选择其中一个通道。其对应参数显示在列表中。如果不能对所选的网关地址建
立连接 — 可能是因为网关还未启动或者地址不正确 — ‘not connected’显示在地址后面
的括弧内并出现信息‘No gateway with these settings could be found’。在此情况下,可在
'Quick check in the event of unsuccessful connection attempt to gateway'中找到更多信
息。
通道设定完成后,点击OK关闭对话框,此设定将存储在项目中。
4.6.27 为本地网关服务器设定一个新通道
你可以为当前连接的网关服务器设定一新通道,它将用于建立与服务器的进一步连接,
例如:与控制器的连接。有关这方面的选项决定于已安装在计算机上的设备驱动器的数量。
按New按钮,显示对话框‘通讯参数:新通道’(‘Communication Parameters:New
Channel’)。
Name 输入区自动包含上次所输入的通道名。如果无通道定义,将提供当前网关名,
其后面有一个下划线,如:'localhost_'。你可在此位置编辑通道名,通道名不必唯一,但
第4章 PROSYD 1131 的组件
一般推荐使用独立的名字。
在网关计算机上,有效的设备驱动被列在设备(Device)表中;在 Name 栏中,用
鼠标选择驱动,其相应内容显示在Info 栏中。
如果用 OK 关闭对话框,新设定的通道显示在‘通讯参数’对话框中,在Channels中,
作为一个新输入通道位于减号最下面位置。这样,此通道仅存储在本地项目中(见上文)。
在此,你可以编辑Value 栏(见下文)。 用OK确认输入参数,同时离开‘通讯参数’对话
框。
为了将新输入的网关通道和它的参数通知给网关服务器xy,并且使此通道对其它计算
机(能够访问网关xy)同样有效,你必须登录到运行系统。如果你重新打开'Online'
'Communication parameters' 对话框,显示在‘channel tree’下的新通道,不仅可出现在先
前位置,还可以出现在网关服务器中的地址或名字下面。这表示此通道已经被网络所识别。
你现在可以从其它计算机上打开通讯参数对话框,选择网关xy并且使用其新通道。
如果登录时产生了通讯故障,那么,可能是由于该接口正在被另一设备使用,因而不
能被打开(例如:串行口COM1)。也可能是因为控制器没有运行。
网关服务器已经取得的通道参数不能在配置对话框中进行编辑。此参数区显示为灰色。
但你可以在其未激活状态下删除连接。
提示:
请注意通道的删除是不可取消的,它就发生在你按Remove按钮时。
4.6.28 在通讯参数对话框编辑参数时的技巧
你可以仅编辑Value栏中的文本区。
用鼠标选择一文本区,双点或按空格键进入文本编辑模式。用<Enter>键结束输入文
本。
你可以使用<Tabulator>键或<Shift> + <Tabulator>键跳转至下一个或上一个
可编辑位置。
当编辑数值时,可以用上下箭头或用Page Up/Down键以一个数值单位或十个数值单
位进行改变。用鼠标双击数值也能够以一个数值为单位逐渐增加。输入检测可用于限制数
值输入:<Ctrl> + <Home>或<Ctrl> + <End> 对于可能的输入值分别提供最低或
最高数值检测。
4.6.29 快速检测网关的错误连接
如果连接至所选网关计算机不成功时,你应该检查以下几点:
·网关服务器是否启动(三色图标显示在工具栏右下方)?
·在‘Gateway:Communication Parameters’对话框中所输入的IP地址是否为正在运行
的网关的计算机地址(使用‘Ping’指令检查)?
·本地TCP/IP连接是否工作?故障很可能是由TCP/IP引起的。
4.7 日志(Log)
日志按年月日时间顺序存储在线状态下的所有操作。为此将生成一个二进制日志文件
(*.log)。此后,用户可以从项目日志文件中引用并存储到外部纪录中。
日志窗口可以在在线或离线状态下打开并且作为在线监控使用。
描述(Description): 操作类型。用户操作名同相应的菜单命令名相同;所有其它
操作以英文显示,并且与对应的OnlineXXX() 功能名相同。
信息(Info): 此区域包含操作过程中所产生的故障描述。如果无故障产生,此区域
为空。
系统时间(System time): 操作开始时的系统时间,以秒计。
相对时间(Relative time): 从在线开始时计时,以毫秒计。
持续时间(Duration): 操作时的持续时间,以毫秒计。
存储…(Save…) 此命令只能在当前项目日志显示时进行。它允许将项目日志摘
录到外部文件中。同时将显示以下对话框,可以选择存储
第4章 PROSYD 1131 的组件
的在线部分日志:
选择成功后,标准存储对话框被打开。
4.7.3 存储项目日志
不管日志是否被存储在外部文件中(见上文),项目日志将自动存储在一个二进制文
件<projectname>.log 中。如果在'Project' 'Options' 'Log'对话框中没有给出不同的路径,
它将存在项目目录下。
可以在'Project' 'Options' 'Log'对话框中定义可存储的在线内容最大数量。如果在纪录
过程中超过了这个数量,最先存储的内容将被删除以便存储新的内容。
4.8 窗口设定
在'Window' 菜单下,可以找到所有窗口管理命令。这些命令既可以用于自动设置窗
口,又可以用于打开库管理器并且还可以用于在打开的窗口间进行切换。在菜单底部可以
找到所有先前被打开过的窗口列表。你可以用鼠标点击相关项切换至相应的窗口。在当前
显示的窗口名字前显示(√)。
4.9 帮助
在运行 PROSYD 1131 时,可以使用在线帮助系统。在此你可以找到手册中的所有
内容。
4.9.2 主帮助窗口
在主帮助窗口中列有帮助主题及相应的索引列表。
下列按钮可以使用:
·帮助主题(Help topics)打开帮助主题窗口
·返回(Back) 显示前一个帮助条目
·打印(Print)打开打印对话框
·<< 显示帮助画面序列中前一个画面
· >> 显示帮助画面序列中后一个画面
另外,下列菜单命令也可以使用:
·使用'File' ''Print Topics'命令可以打印当前帮助条目。
·使用Edit' "Copy" 命令可将当前选定的文本拷贝到剪贴板中。从这里可以将此文本
插入到其它位置并使用。
·使用'Edit' "Annotate" 命令打开一个对话框,在其左侧的编辑区内可以为帮助页输
入一个注释。
在右侧有用于存储文本的按钮(storing),用于取消程序的按钮(canceling),用
于删除符号的按钮(deleting),用于将高亮显示文本拷贝到剪贴板的按钮(copying),
用于从剪贴板粘贴文本按钮(pasting)。
如果你已为一个帮助页面作了注释,则在页面左上角出现一绿色别针标志。用鼠标点击
此标志,可以打开此注释对话框。
·如果你希望为帮助页做一个标记,你可以设置一个书签。选择"Define" "Bookmark"
命令,显示一个对话框,你可以输入一个新名字(此页的名字可作为一个启动按钮)
或删除一个老的书签。如果书签已定义完成,则在“Bookmark” 菜单中将显示此书签。
第4章 PROSYD 1131 的组件
通过选择此菜单中的条目可直接进入此页。
·在"Options"选项中, 你可以定义帮助菜单是否总显示在前景中,或背景中,或默认设
定中。
·使用"Options" "Display previous topics" 命令,可以提供先前打开的帮助主体选
择窗口,你可双击想要查看的条目。
·在"Options"选项中,可以选择字体(Font):小体、正常体或大体。
·选择"Options" "Use System Color",帮助窗口将不显示其设定颜色,而按系统颜色
显示。
5. 编辑器(Editors)
所有POU(程序组织单元)编辑器都由变量声明部分和程序主体部分组成。通过一个
能够拖动的屏幕分隔线分开,用鼠标点击屏幕分隔线可以进行上下移动。主体可以是一个
文本编辑器或图形编辑器;声明部分总是一个文本编辑器。
5.1.1.1 打印范围
提示:
只有当缩放因数选择100% 时,打印范围才可能精确地显示。
5.1.1.2 注释
快捷键:<Alt>+<Enter>
该命令可将所选的 POU 装入到编辑器中。如果在文本编辑器中用鼠标指向POU名或在
图形编辑器中选择POU块框, 则在上下文菜单中(快捷键<F2>) 或 'Extras' 菜单中,该命令
有效。
如果你正在处理一个来自于库文件的POU,则打开库管理器并显示相应的POU。
5.1.1.4 打开实例
5.2 声明编辑器
声明编程器用于声明 POU 变量和全局变量的数据类型,这些变量可输入到监视和配
方管理器中。该编辑器允许使用 Windows 功能,如果安装了相应的驱动程序,可以使用
IntelliMouse功能。
在 Overwrite 模式下, 'OV' 以黑色显示在状态栏中;使用 <Ins> 键可完成 Overwrite 和
Insert 模式之间的转换。
变量声明由语法颜色所支持。
重要的命令可在上下文菜单中找到(鼠标右键或<Ctrl>+<F10>)。
5.2.1 声明部分
仅在这个 POU 中使用的所有变量必须在其声明部分中声明。包括:输入变量,输出
变量,输入/输出变量,局部变量,保持变量和常量。声明语法基于 IEC61131-3 标准。在
PROSYD 1131 编辑器中的正确的变量声明实例如下:
第5章 编辑器(Editors)
例如:
VAR_INPUT
in1:INT (* 1. Inputvariable*)
END_VAR
例如:
VAR_OUTPUT
out1:INT; (* 1. Outputvariable*)
END_VAR
注意:
使用这个变量,被调用变量的数值发生改变("transferred as a pointer",
第5章 编辑器(Editors)
Call-by-Reference)。这意味着这种变量的输入赋值不能是一个常量。由于这个原因,
在功能块外面通过<functionblockinstance><in/outputvariable> 不能直接读或写功
能块的 VAR_IN_OUT 变量。
例如:
VAR_IN_OUT
inout1:INT; (* 1. Inputoutputvariable *)
END_VAR
例如:
VAR
loc1:INT; (* 1. Local Variable*)
END_VAR
5.2.6 其它
一些变量能够在整个程序的运行周期中始终保持它们的数值。其包括保持变量和持久
变量。
保持变量使用关键字 RETAIN 来确定。这些变量甚至当控制器在不可控制性停止或
复位后仍维持它们的值。当程序再次运行时,所存储的数值将继续使用。实际例子:掉电
后,定时器重新开始计时。
而其它所有变量重新初始化为已设定的初始化数值或标准默认初始值。
持久变量用关键字 PERSISTENT 来确定。与保持变量不同,这些变量甚至在冷启动
(控制器关闭后再按顺序重新启动或下载之后重新启动)以后仍保持它们的值。 持久变
量不是自动地保持变量!
例如:
VAR RETAIN
rem1:INT; (* 1. Retain variable*)
END_VAR
语法结构:
VAR CONSTANT
<Identifier>:<Type> := <initialization>;
第5章 编辑器(Editors)
END_VAR
例如:
VAR CONSTANT
con1:INT:=12; (* 1. Constant*)
END_VAR
在在线帮助章节中的运算数(Operands)章节部分,可以查到一个常量清单。也可
以看到相关的使用直接数值的可能性 (Typed Literals)。
例如:
VAR EXTERNAL
var_ext1:INT:=12; (* 1st external variable *)
END_VAR
5.2.9 关键字(Keywords)
在所有编辑器中,关键字用大写字母来写。关键字不可以用作变量名。
大括号 {} 里的部分是可选的。
关于标识符,它是变量的名字,应注意的是它不能包含空格或变音符号,不能被重复
声明,不能与任何关键字相同。变量名中的大小写字母被忽略,即VAR1,Var1 和 var1 是
同一变量。标识符中的下划线是有意义的,举例来说:A_BCD 和 AB_CD 被认为是不同
的标识符。不允许在标识符的开始或中间有多个连续的下划线。标识符的长度没有限制。
所有变量和数据类型的声明可以包含初始值,用 赋值运算符":="表示。对于基本类
型的变量来说,这些初始值是常量。所有变量默认的初始值是0。
例如:
var1:INT:=12; (* Integer variable with initial value of 12*)
如果想把变量直接连接到一个指定的地址,必须用关键字AT声明。
第5章 编辑器(Editors)
使用快捷模式可以快速进行声明。
在功能块中,可以使用不完全地址描述来指定变量。为了在局部实例中使用这样的变量,
在变量配置(VAR_CONFIG)中必须配置相关条目。
注意使用自动声明的可能性。
标识符以一个字母或一个下划线开始,由字母、数字和下划线组成。
变量标识符不能包含空格或特殊符号,不能被多次声明,不能与任何关键字相同。不识
别大小写字母,也就是说 VAR1,Var1和var1 是同一个变量。在标识符中允许有下划线(例
如:"A_BCD" 和 "AB_CD" 是两个不同的标识符)。标识符只能有一个下划线。前面的32个
字符有效。
例如;
counter_heat7 AT %QX0.0: BOOL;
lightcabinetimpulse AT %IX7.2: BOOL;
download AT %MX2.2: BOOL;
提示:
如果布尔变量被分配给一个字节、一个字或一个双字的地址,那么它的布尔值 TRUE
或 FALSE 将占用一个字节,而不只是第一位!
例如:
快捷方式 声明
A A: BOOL;
ABI2 A, B: INT := 2;
ST S 2; A string ST:STRING(2); (* A string *)
X %MD12 R 5 Real Number X AT %MD12: REAL := 5.0;(* Real Number
*)
B! B: BOOL;
可以在Class组合框中选择:局部变量(VAR),输入变量( (VAR_INPUT),输出变量
(VAR_OUTPUT),输入/输出变量(VAR_INOUT)或全局变量(VAR_GLOBAL)。
通过 CONSTANT 和 RETAIN 选项,可以定义是常量还是保持型变量。
你在编辑器中所输入的变量名已显示在 Name 区域中,BOOL 已显示在 Type 区域
例如:
x:=5,field:=2,3,struct2:=(a:=2,b:=3)
提示:
变量声明对话框也可以使用命令 'Edit' 'Declare Variable' 打开。在线模式下,如果指
针指在一个变量上,使用 <Shift><F2> 可以打开自动声明窗口,显示当前变量的
相关设置。
5.2.17 声明编辑器中的行号
离线模式下,单击某个行号,整个文本行都将被标记。
在线模式下,单击某个行号,当该行包括一个结构变量的情况下,将打开或关闭这个
结构变量。
5.2.18 表格声明
如果在‘Project’‘Options’选项对话框中设置了 Declarations as table 选项,则声明编
辑器为表格形式。在选项卡-索引对话框中,可以选择变量类型记录卡并编辑变量。
每个变量都含有以下内容:
Name: 变量标识符。
Address: 如果需要,可以输入变量地址。(AT 声明)
Type: 变量类型。
Initial: 变量初始值 (":= " 之后)。
Comment: 注释。
声明编辑器的两种显示类型都可以相互切换。在线模式下,显示方式相同,均为文本
显示方式。
为了编辑一个新的变量,选择命令 'Insert' 'New Declaration'。
表格声明如下显示:
第5章 编辑器(Editors)
例如:
变量 a 将不被初始化并不被监控。变量 b 将不被初始化:
VAR
第5章 编辑器(Editors)
VAR
{flag noinit, nowatch on}
a : INT;
{flag noinit on}
b : INT;
{flag off}
END_VAR
两个变量都不被初始化:
{flag noinit on}
VAR
a : INT;
b : INT;
END_VAR
{flag off}
VAR
{flag noinit on}
a : INT;
b : INT;
{flag off}
END_VAR
例如:
如果 POU 已经具有读和写的许可,则下列附注变量 a 只具有写许可的输出,而变量
b 根本不能被输出:
VAR
a : INT {flag noread};
b : INT {flag noread, nowrite};
END_VAR
VAR
{ flag noread on}
a : INT;
第5章 编辑器(Editors)
变量 a 和 b 都不能输出到符号文件:
{ flag noread, nowrite on }
VAR
a : INT;
b : INT;
END_VAR
{flag off}
VAR
{ flag noread, nowrite on}
a : INT;
b : INT;
{flag off}
END_VAR
在下面的所有变量声明中,标记指令执行相加(additively)作用。
a : afb;
...
FUNCTION_BLOCK afb
VAR
b : bfb {flag nowrite};
c : INT;
END_VAR
...
FUNCTION_BLOCK bfb
VAR
d : INT {flag noread};
e : INT {flag nowrite};
END_VAR
"a.b.d": 不允许输出。
"a.b.e": 仅当具有读许可时输出。
"a.c": 当具有读和写的许可时输出。
第5章 编辑器(Editors)
5.2.21 在线模式下的声明编辑器
在线模式下,声明编辑器转变为一个监控窗口。每行中的变量后面都跟有等号(=)和变
量值。如果变量没有被定义,就会有三个问号(???)出现。对于功能块,只有打开实例时才
会显示值(命令:'Project' 'Open instance')。
在每个多元素变量之前都有一个加号(+)。通过按 <Enter> 键或双击这个变量可打
开,该变量。
在例子中,交通信号灯结构将打开。
当打开一个变量后,其所有组件都会列在其后。变量前出现减号(-)。如果再次双击或按 <Enter>,
变量就会关闭,又重新显示加号(+)。
按 <Enter> 键或双击一个单元素变量打开对话框去写变量。在这里可以改变变量的
当前值。如果是布尔变量,则无对话框显示;这些变量可以被触发。
新值以绿色显示在变量之后的尖括号里,且不可以更改。如果给出命令 'Online' 'Write
values',那么所有被放置到选择列表中的变量都再次显示为黑色。
如果给出命令 'Online' 'Force values',那么所有变量将被设置为已选择的值,直到
'Release force' 命令被给出。在这种情况下,强制值的颜色都变为红色。
第5章 编辑器(Editors)
5.3 文本编辑器
用于 PROSYD 1131 指令部分的文本编辑器(语句表编辑器和结构文本编辑器)具有通用
Windows文本编辑器功能。
文本编辑器中的程序指令是由语法颜色支持。
在覆盖模式下,状态栏会显示一个黑色的OV。通过按键 <Ins> 可以选择覆盖模式或插入模式。
在上下文菜单中可以找到许多重要命令(按鼠标右键或 <Ctrl>+<F10>)。
文本编辑器可使用以下菜单命令:
使用这个命令,显示一个包含所有运算符的对话框。
如果选择其中一个运算符,点击OK关闭列表,那么在当前光标所在位置插入该运算符。
使用这个命令,显示一个包含所有变量的对话框。可以选择显示全局、局部或系统变
量列表。
如果选择其中一个运算数,点击OK关闭对话框,那么在当前光标所在位置插入该运算数。
使用这个命令,显示一个包含所有功能的对话框。可以选择用户自定义功能或标准功
能列表。
第5章 编辑器(Editors)
如果选择其中一个功能,点击OK 关闭对话框,那么在当前光标所在位置插入该功能。
如果在对话框中选择With arguments 选项,那么必要的输入和输出变量也将被插入。
使用这个命令,显示一个包含所有功能块的对话框。可以选择用户自定义功能块列表
或标准功能块列表。
如果选择其中一个功能块,点击OK 关闭对话框,那么在当前光标所在位置插入该功能块。
如果在对话框中选择 With arguments 选项,那么该功能块的输入变量也将被插入。
在文本语言IL和ST中,被调用POU的输出参数可以被直接赋值。例如:afbinst 的输出
参数 out1 被赋值给变量a。
IL:
CAL afbinst(in1:=1, out1=>a)
ST:
afbinst(in1:=1, out1=>a);
5.3.1.6 在线模式下的文本编辑器
编辑器在线功能是设置断点及单步处理。因而连同监控功能一起,用户拥有了现代
Windows标准编程语言调试器的功能。
在线模式下,文本编辑器窗口被垂直平分为两部分。在窗口左侧显示标准程序文本,在窗口右侧
显示变量,变量的值在相应行中被改变,与声明部分中的显示相同。这意味着,当 PLC 运行时,显
示每个变量的当前值。
当监控表达式或位地址(Bit-addressed)变量时应注意以下问题:对于表达式来说,
整个表达式的值总是被显示的。例如:如果 a 和 b 都为 TRUE,则 a AND b 显示为蓝
色或用 ":=TRUE" 表示。对于位地址变量来说,地址的位值总是被显示(例如:如果 a 的
值为4,则 a.3 显示为蓝色或用":=TRUE"表示)。
如果把鼠标暂时指在一个变量上,那么这个变量的类型、地址和注释都会在提示框中
显示。
使用这个命令可以配置监控窗口。在文本编辑器中,监控状态下的窗口被平分为两部
分。程序位于左侧部分。在右侧部分,所有位于相应程序行中的变量都被监控。
你可以指定监控窗口的宽度和一行中的两个变量之间的距离。距离的声明单位“1”相当于所选字
体的行高。
监控选项对话框如下:
第5章 编辑器(Editors)
5.3.1.8 文本编辑器中的断点位置
在ST中的断点位置:
·在每个赋值语句处
·在每个 RETURN 和 EXIT 语句处
·在条件判断行(WHILE, IF, REPEAT)
·在 POU 结束处
在项目选项中可设置断点位置标记,通过颜色在行号区域标出。例如:带有断点位置
(暗色行号)的 IL 编辑器。
5.3.1.9 如何设置断点?
为了设置断点,点击想要设定断点的行的数码区域。如果所选区域是一个断点位置,
那么行号区的颜色将从暗灰色变为亮蓝色,并且断点将在 PLC 中激活。
第5章 编辑器(Editors)
5.3.1.10 删除断点
相反,若要删除断点,只需用鼠标点击已设置断点的行号区。
断点的设置和删除也可以通过菜单选择('Online' 'Toggle Breakpoint'),或通过功能键
<F9> 选择,或通过工具条的图标选择。
5.3.1.11 断点处发生什么?
在 PLC 中,如果程序运行到断点处,则屏幕在相应行上显示中断,其行号区显示为
红色。PLC 中的用户程序停止。
如果程序处于断点位置,则使用 'Online' 'Run' 命令,程序可重新运行。
另外,使用 'Online' 'Step over' 或 'Step in' 可以使程序运行到下一个断点位置。如果
所在位置是一个 CAL 命令,或者,如果在该行指令中有一个功能调用指向下一个断点位
置,则你可以使用 'Step over' 以绕过功能调用。使用 'Step in' 以转到打开的 POU。
5.3.1.12 文本编辑器中的行号
5.3.2 IL 编辑器
在相应的 PROSYD 1131 编辑器中,如何使用 IL 编写 POU 。
第5章 编辑器(Editors)
POU 中的所有编辑器都由声明部分和主体部分组成。由屏幕分隔线分开。
IL 编辑器具有通用Windows文本编辑器功能。其主要命令可在上下文菜单(按鼠标右
键或 <Ctrl>+<F10> )中找到。多重 POU 调用是可以的。例如:
CAL CTU_inst(
CU:=%IX10,
PV:=(
LD A
ADD 5
)
)
5.3.2.1 在线模式下的 IL
5.3.3 ST 编辑器
在相应的 PROSYD 1131 编辑器下,如何使用 ST 编写 POU :
第5章 编辑器(Editors)
POU 中的所有编辑器都是由声明部分和主体部分组成。由屏幕分隔线分开。
ST 编辑器具有通用Windows文本编辑器功能。其主要命令可在上下文菜单(按鼠标右
键或 <Ctrl>+<F10> )中找到。
关于语言的信息,请参看‘Structured Text (ST)’。
5.4 图形编辑器
面向图形的语言编辑器:顺序功能图 SFC、梯形图 LD、功能块图 FBD 以及自由图形功能块图
都有许多共同点。在下面的章节中将总结这些特点,并专门对LD、FBD、CFC 以及 SFC 进行介绍。
图形编辑器中的执行程序是由语法颜色来支持的。
5.4.1.1 缩放(Zoom)
5.4.1.2 网络(Network)
在 LD 和 FBD 编辑器中,在网络列表里编写程序。网络的左边标有连续的网络序号。
每个网络都是由逻辑、算术表达式、程序、功能或功能块调用、跳转、返回指令构成的。
5.4.1.3 标签(Label)
每个网络都有一个标签,可以任意为空。在网络的第一行直接靠近网络序号的位置点
击鼠标,现在你便可以输入一个标签。
快捷键: <Shift>+<T>
为了在 FBD 或 LD 编辑器中插入一个新网络,选择 'Insert' 'Network (after)' 或
'Insert' 'Network (before)' 命令,可以在当前网络之前或之后插入一个新网络。点击网络序
号就可以修改当前网络。通过序号下面的虚线矩形框来识别。按 <Shift> 键并同时用鼠
标点击网络,便可以选择整个网络范围。
5.4.1.6 在线模式下的网络编辑器
在 FBD 和 LD 编辑器中,只能为网络设置断点。设有断点的网络的序号区显示为蓝
色。程序处理在设定断点的网络前停止。这时,网络序号区域显示为红色。使用单步处理,
可以从一个网络跳到另一个网络。
POU (程序组织单元)中的所有值都处于监控状态。
当监控表达式或位地址(Bit-addressed)变量时应注意以下问题:对于表达式来说,
例如:a AND b 用于转换条件或功能块输入, 其整个表达式的值总是被显示 ( 如果 a 和
第5章 编辑器(Editors)
b 都为 TRUE,则 a AND b 显示为蓝色或采用 ":=TRUE" 表示)。对于位地址变量来说,
地址的位值总是被显示(例如:如果 a 的值为4,则 a.3 显示为蓝色或采用":=TRUE"表
示)。
使用 'Online' 'Flow control' 命令来运行流量控制功能。使用流量控制,你可以观察网
络上通过连接线传送的当前值。如果连接线所传送的不是布尔值,那么这个值将显示在一
个专用区域里。未使用变量监控区显示灰色。如果连接线传送布尔值并且结果为 TRUE,
则该连接线显示为蓝色。因此当 PLC 运行时,可以观察到信息的“流动” 。
如果把鼠标暂时指在一个变量上,那么这个变量的类型、地址和注释都将在提示框中
显示。
每个文本都能使用鼠标选择。所选择的文本显示在蓝色背景下时可更改。
你也可以通过一个虚线矩形框来识别当前指针位置。下面用例子列出所有可能的指针
位置:
第5章 编辑器(Editors)
1) 每个文本区域 (外加黑框的为可能的指针位置):
2) 每个输入端:
3) 每个运算符、功能或功能块:
4) 输出端,其后面有一个赋值语句或跳转语句:
5) 赋值语句,跳转语句或返回语句上面的交叉线:
6) 每个网络右侧最远对象的后面("最后的指针位置",与选择网络所使用的指针位置相
同):
7) 赋值语句前面的交叉线:
通过点击鼠标或在键盘的帮助下,指针能被设定在某个位置。
任何时候使用方向键都可以跳到最近的指针位置。包括文本区域在内的所有指针位置,
都可以通过这种方法来访问。如果选择最近的指针位置,使用 <up> 或 <down> 方向
键便可选择前面或后面网络中的最近指针位置。
空网络中只包含三个问号 "???"。点击其后部,就可以选择最近的指针位置。
第5章 编辑器(Editors)
图标: 快捷键:<Ctrl>+<A>
这个命令用于插入一个赋值。
基于所选的位置 (参看 ' FBD 中的指针位置'),赋值语句在所选输入端的前面直接插
入(指针位置2),在所选输出端的后面直接插入(指针位置4),或在网络的最后插入(指针位
置6)。
伴随输入文本 "???",一个赋值语句被插入且可被一个变量所代替。在这里也可以使
用输入帮助。
为了将另一个赋值语句插入到一个已存在的赋值语句,使用 'Insert' 'Output' 命令。
图标: 快捷键:<Ctrl>+<L>
使用这个命令插入一个跳转。
基于所选的位置 (参看 ' FBD 中的指针位置'),跳转语句在所选输入端的前面直接插
入(指针位置2),在所选输出端的后面直接插入(指针位置4),或在网络的最后插入(指针位
置6)。
伴随输入文本 "???",一个跳转语句被插入且可被一个标签所代替。
图标: 快捷键:<Ctrl>+<R>
使用这个命令插入一个返回语句。
基于所选的位置 (参看’FBD’ 中的指针位置'),返回语句在所选输入端的前面直接插入
(指针位置2),在所选输出端的后面直接插入(指针位置4),在所选交叉线的前面插入(指
针位置5)或在网络的最后插入(指针位置6)。
图标: 快捷键:<Ctrl>+<B>
使用这个命令可以插入运算符,功能,功能块和程序。首先,它总是插入一个 "AND"
运算符。选择并修改类型文本(“AND”),可转变为其它运算符,功能,功能块和程序。。
使用输入帮助(<F2>),来选择需要的 POU。
在功能和功能块中,显示输入和输出端的参数名。
在功能块上方有一个可编辑实例区。如果通过改变文本调用另一个不可知功能块,则
显示一个具有两个输入端的操作盒及其所选择的功能块类型。如果选择这个实例区,通过
<F2>可打开具有变量选择类别的输入帮助(Input Assistant)对话框。
第5章 编辑器(Editors)
在所选位置插入最新的 POU:
·如果选择一个输入(指针位置2),那么在这个POU 将插入到这个输入端的前面。这个
POU 的第一个输入连接到所选输入左边的分支上。新 POU 的输出连接到所选的输入上。
·如果选择一个输出(指针位置4),那么在这个输出之后插入 POU。这个 POU 的第一
个输入与所选输出相连。新POU 的输出连接到所选分支上。
·如果一个POU、一个功能或一个功能块被选择(指针位置 3),则老的组件将被新的
POU 所取代。
·在取代之前,将被连接的分支与它们相同。如果老组件的输入比新的多,则这个不可
附加分支将被删除。输出同样保持真值。
·如果一个跳转或一个返回被选择,那么在跳转或返回之前插入 POU。这个 POU 的
第一个输入使用分支连接到所选组件的左边。POU 的输出连接到所选组件右边的分支。
·如果选择网络最后的指针位置 (指针位置 6),则在最后组件的后面插入 POU。这个
POU 的第一个输入连接到在所选位置左边的分支。
所有没有连接的POU输入将用 "???" 表示。点击这个文本,将其改为常量或变量。
如果已插入POU 的右边有一个分支,则这个分支将被分配给POU的第一个输出。
5.4.2.7'Insert' 'Input'
图标: 快捷键:<Ctrl>+<U>
使用这个命令可插入一个输入运算数。对于许多运算符来说,输入的数量是可变的。(例
如:ADD 可以有两个或更多输入。)
为了通过一个输入扩展一个运算符,你需要在希望插入另一个输入的位置前面(指针位
置1)选择输入;如果希望添加的输入端位于最底端 (参看 'FBD 中的指针位置'),你必须
选择运算符本身(指针位置3)。
刚插入的输入用 "???" 表示。点击它并将其改为希望的常量或变量。在这里也可以使
用输入帮助。
图标:
这个命令用于在已存在的赋值语句里插入另一个赋值语句。也就是所谓的“梳型” 赋
值。
如果选择赋值语句上面的交叉线(指针位置5) 或它前面位置(指针位置4),则在已存在
的赋值之后插入另一个赋值。
如果选择赋值前的交叉线(指针位置4),则在它的前面插入另一个赋值。
刚插入的输出用 "???" 表示。点击它并将其改为希望的变量。在这里也可以使用输入
帮助。
第5章 编辑器(Editors)
5.4.2.9'Extras' 'Negate'
5.4.2.10'Extras' 'Set/Reset'
图标:
使用这个命令可以将输出定义为置位或复位输出。置位输出用 [S] 显示,复位输出用
[R] 显示。
FBD 中的置位/复位输出
如果条件为TRUE,则Output Set置位为TRUE。输出维持这个值,即使条件返回FALSE。
如果条件为FALSE,则Output Reset置位为FALSE。输出维持这个值,即使条件为返
回FALSE。
重复执行命令,输出将在置位、复位和正常输出之间切换。
提示:
剪切和粘贴可解决以下问题:在网络中间插入1个新运算符。位于运算符右边的分支已
与第1个输入相连,但它应连接到第2个输入上。现在,选择第1个输入并执行命令
'Edit' 'Cut'。接下来,选择第2个输入并执行命令 'Edit' 'Paste'。这样,分支现在位
于第2个输入上。
在 FBD 中,断点只能设在网络上。如果一个网络已经设置了断点,则网络序号区域
将显示为蓝色。程序在设置断点的网络前停止。在这种情况下,网络序号区域变为红色。
使用单步操作,可以从一个网络跳到另一个网络。
每个变量的当前值都显示。例外:如果功能块的输入是一个表达式,则表达式中,只
有第一个变量被监控。
双击变量可以打开一个对话框并编辑这个变量。在此可以更改变量的当前值。如果是
布尔变量,则不会出现对话框;这些变量的值只能为TRUE或FALSE。
新值将转为红色并保持不变。如果使用'Online' 'Write values'命令,那么所有的变量都
传送到选择表里并且再次显示为黑色。
使用 'Online' 'Flow control' 命令启动流量控制。使用流量控制,你可以观察在网络中
通过连接线正在传送的当前值。如果连接线所传送的不是布尔量,则这个值将显示在一个
专用插入区域中。如果连接线传送布尔量且值为 TRUE,则显示为蓝色。因此当 PLC 运
行时,可以观察到信息的“流动” 。
如果把鼠标暂时指在一个变量上,那么这个变量的类型、地址和注释都将在提示框中
显示。
第5章 编辑器(Editors)
5.4.3 梯形图编辑器
5.4.3.1 LD 编辑器中的指针位置
下列位置可以是一个指针位置,在这里,功能块和程序访问可以作为触点处理。具有
EN 输入端的POU和其它连接到它们的POU按照与在FBD中相同的方式处理。关于编辑网
络部分的信息可在FBD编辑器章节中找到。
1.每个文本区域 (外加黑框的为可能的指针位置):
2.每个触点或功能块
第5章 编辑器(Editors)
3. 每个线圈
4. 触点和线圈间的连接线
LD 可使用以下菜单命令:
图标: 快捷键:<Ctrl>+<O>
在 LD 编辑器中用这个命令可以在网络所标的位置插入一个触点。
如果所标的位置为一个线圈或为触点与线圈间的连接线,那么新触点将与前一个触点
串行连接在一起。
新触点用预置文本"???" 表示。点击该文本并将其更改为希望的变量或常量。在此可
以使用输入帮助。
图标: 快捷键:<Ctrl>+<R>
在 LD 编辑器中使用这个命令可以在网络所标的位置插入一个并联的触点。
如果所标的位置是一个线圈或是触点与线圈间的连接,那么新的触点将并联到先前所
有触点连接上。
新触点用预置文本 "???" 表示。点击该文本并将其更改为希望的变量或常量。在此可
以使用输入帮助。
快捷键:<Ctrl>+<B>
第5章 编辑器(Editors)
使用这个命令可以插入一个运算符,一个功能块,一个功能或一个程序。因此,必须
选中触点与线圈间的连接或线圈做标记。新建的POU初始标识为AND,你可以更改它。在
此可以使用输入帮助。标准的和自定义的 POU 都可用。
POU 的第一个输入连接到输入连接里,第一个输出连接到输出连接里,因此,这些变
量必须是布尔量。POU的所有其它输入和输出都用文本 "???" 表示。可将其更改为其它常
量,变量或地址。在此也可以使用输入帮助。
5.4.3.5 LD 中的 'Insert''Coil'
图标: 快捷键:<Ctrl>+<L>
在 LD 编辑器中使用这个命令可以将一个线圈并联到前一个线圈。
如果所标的位置是触点与线圈间的连接,则新线圈被插入到最后。如果所标的位置是
一个线圈,则新线圈将在它的上面直接插入。
新线圈的默认设置为文本 "???" 。点击该文本并将其更改为希望的变量。在此可以使
用输入帮助。
使用这个命令将具有EN输入端的功能块、运算符、功能或程序插入到一个LD网络中。
所标位置必须是触点与线圈间的连接(指针位置4)或线圈(指针位置3)。新 POU 并行
连接到线圈的下面;它初始为 "AND"。可以更改这个初始指定。在此可以使用输入帮助。
使用这个命令可以在先前线圈的末端并联插入一个跳转语句。如果输入线的值为
"ON",则执行跳转到指定的标签处。
所标位置必须是触点与线圈间的连接线。
新跳转显示文本 "???"。点击并更改为希望的标签。
在 LD 编辑器中,可以使用这个命令在先前线圈末端并联插入一个返回语句。如果输
入线的值为 "On",则 POU 处理被中断。
所标位置必须是触点与线圈间的连接线。
在 LD 编辑器中,使用这个命令可以在标记位置后面串行插入剪贴板中的内容。如果
剪贴板中的内容和标记位置都是由触点组成的网络,则该命令可用。
快捷键: <Ctrl>+<U>
在 LD 编辑器中,使用这个命令可以在标记位置下面并行插入剪贴板中的内容。如果
剪贴板中的内容和标记位置都是由触点组成的网络,则该命令可用。
在 LD 编辑器中,使用这个命令可以在标记位置上面并行插入剪贴板中的内容。如果
第5章 编辑器(Editors)
剪贴板中的内容和标记位置都是由触点组成的网络,则该命令可用。
图标: 快捷键:<Ctrl>+<N>
使用这个命令可以对当前指针位置上的触点、线圈、跳转、返回 或 EN POU 的输入
端或输出端取反。
在线圈的圆括号之间或触点的两个直线之间,会出现一个斜杠( (/) 或 |/| )。如果是
跳转、返回或 EN POU 的输入端或输出端,则与 FBD 编辑器一样,在连接处出现一个小
圆圈。
线圈所输出的是输入连接(布尔变量)的取反值。此时,如果布尔变量具有值 FALSE,
则取反触点将输入值转换后传送给输出。
如果跳转语句或返回语句标有取反标记,则这个跳转或返回之前的输入将取反。
再一次取反可以取消原来的取反操作。
如果选择线圈并执行这个命令,你将获得一个置位线圈。在相关的BOOL型变量中,
该线圈不会覆盖数值 TRUE。这意味着,一旦你设定这个变量值为 TRUE,它将一直保留
TRUE 值。线圈符号中含字母 "S" 表示为置位线圈。
如果再次执行这个命令,你将获得一个复位线圈。在相关的BOOL型变量中,该线圈
不会覆盖数值FALSE。这意味着,一旦你设定这个变量值为 FALSE,它将一直保留 FALSE
值。线圈符号中含字母 "R" 表示为复位线圈。
如果重复执行这个命令,线圈将在置位线圈、复位线圈和标准线圈之间切换。
5.4.3.18 在线模式下的 LD
POU 中的所有编辑器都是由声明部分和主体部分组成。由屏幕分隔线分开。
SFC编辑器是一个图形编辑器。在上下文菜单中(用鼠标右键或 <Ctrl>+<F10>)可找
到一些重要命令。在离线模式、在线模式以及缩放状态下,工具提示框显示步骤、转换、
跳转、跳转标签以及限定或关联动作的全名或表达式。
有关 SFC 的信息,请参看 '顺序功能图'。
SFC 编辑器必须适合 SFC 的特殊性。关于这些,可提供以下菜单项。
标记的块是指虚线矩形框里的一串SFC元素。
通过点击鼠标或使用方向键便可选择标记一个元素(步骤、转换、或跳转)。为了同时
选择几个元素,首先选中一个块,然后按住 <Shift> 键,同时用鼠标点击元素组的左下
角或右上角的元素,便可选择一个元素组。
当与语言规定没有冲突时,所有的命令才能执行。
图标: 快捷键:<Ctrl>+<T>
在 SFC 编辑器中,使用这个命令可以在标记的块之前插入一个步骤,其后跟随一个
转换。
第5章 编辑器(Editors)
图标:
在 SFC 编辑器中,使用这个命令可以插入一个选择型分支作为标记的块的左分支。
对于这个标记的块,必须以转换作为开始和结束。新分支由一个转换组成。
图标: 快捷键:<Ctrl>+<L>
在 SFC 编辑器中,使用这个命令可以插入一个并行分支作为标记的块的右分支。对
于这个标记的块,必须以步骤作为开始和结束。新分支由一个步骤组成。为了能够跳到已
创建的并行分支,必须提供跳转标签。
图标:
在 SFC 编辑器中,使用这个命令可以插入一个并行分支作为标记的块的左分支。对
于这个标记的块,必须以步骤作为开始和结束。新分支由一个步骤组成。为了能够跳到已
创建的并行分支,必须提供跳转标签。(参看 'Extras' 'Add label to parallel branch')。
在 SFC 编辑器中,使用这个命令在分支末尾插入一个跳转。这个分支必须是选择型
分支。
可以选中插入跳转中的字符串 'Step' 并使用步骤名或并行分支跳转标签替换。
第5章 编辑器(Editors)
图标:
在 SFC 编辑器中,使用这个命令在所选分支的末尾插入一个转换,其后跟随一个跳
转。这个分支必须是一个并行分支。
可以选中插入跳转中的字符串 'Step' 并使用步骤名或并行分支跳转标签替换。
使用这个命令可以为步骤加一个入口动作。步骤激活后,入口动作(entry-action)只
执行一次。可通过所选的编程语言实现。
具有入口动作的步骤在左下角用 "E" 来指示。
使用这个命令可以为步骤加一个出口动作。退出步骤前,出口动作(exit-action)只执
行一次。可通过所选的编程语言实现。
具有出口动作的步骤在右下角用 "X" 来指示。
使用这个命令可以粘贴剪贴板上的内容作为标记的块的右侧并行分支。对于这个标记
的块,必须以一个步骤作为开始和结束。同样地,剪贴板上的内容也必须是以一个步骤作
为开始和结束的 SFC 块。
为了插入一个有跳转标签的并行分支,需标记并行分支之前的转换并执行命令 'Add
label to parallel branch'。并行分支将得到一个标准名"Parallel" 和一个附加序列号,该序
列号可依照标识符命名规则来编辑。例如:"Parallel" 用 "Par_1_2" 来代替,转换“End”
后面的跳转被指到这个跳转标签。
第5章 编辑器(Editors)
5.4.4.14 删除标签
跳转标签可通过删除标签名而进行删除。
使用这个命令可以在第一个步骤或标记的块的第一个转换后粘贴剪贴板中的 SFC
块。(通常在标记的块前复制粘贴。) 依照编程语言规范,如果SFC结构是正确的,就可以
执行此操作。
快捷键: <Alt>+<Enter>
标记的块的第一个步骤的动作或标记的块的第一个转换体被装载到编辑器中(具有各
自的编程语言)。如果动作或转换体是空的,则必须选择编程语言。
使用这个命令可以删除标记的块的第一个步骤动作或标记的块的第一个转换体。
在一个步骤中,如果只执行任一动作、入口动作或出口动作,则使用这个命令删除。
否则,将显示一个对话框,从中选择哪一个动作将被删除。
如果指针指在 IEC 步骤的动作上,则只有这个联系将被删除。如果一个具有联系动
作的 IEC 步骤被选择,则这个联系将被删除。在一个具有多个动作的IEC 步骤中,将显
示一个选择对话框。
使用这个命令可以打开一个对话框,编辑标记步骤属性。
编辑步骤属性对话框如下:
第5章 编辑器(Editors)
上例显示出一个步骤的执行最短持续2秒,最长10秒。在线模式下,除了这两个时间
外,还显示步骤已被激活多长时间。
使用这个命令可以将动作和布尔变量同IEC步骤联合起来。
在 IEC 步骤的右侧,附加一个单元框(box)用于联合一个动作。其被预置一个限定
符 "N" 和名字 "Action" 。这两个预置都可以更改。在此可以使用输入帮助。
在 SFC POU 中,使用 'Project' 'Add Action' 命令可以在对象管理器中创建一个新动作。
图标:
如果该命令被启动( 在菜单项前显示一个“√”并且在工具栏显示为印迹图标),则IEC
步骤将被插入以替代简单步骤。
如果这个选项为 ON,当创建新的 SFC POU 时,Init 步骤作为一个 IEC 步骤被设置。
该设置存储在文件 "PROSYD 1131.ini" 中,当 PROSYD 1131 再次启动时恢复此设置。
在上图中步骤已经运行8.41秒。然而,在步骤退出之前至少要运行7分钟。
使用 'Online' 'Toggle Breakpoint' 命令可以在步骤或动作中设置断点。 程序执行
到该步骤或动作之前将停止。设置有断点的步骤或程序显示为亮蓝色。
如果在并行分支中几个步骤都是有效的,则其动作将被处理的有效步骤显示为红色。
如果已使用 IEC 步骤,则在线模式下的所有运行动作都显示为蓝色。
提示:请参考下列一个序列中元素的处理顺序。
1、首先,IEC 动作中所有在这个序列所使用的动作控制块标记都被复位。(然而,不是在
动作中所调用的IEC动作标记)。
2、所有步骤按照它们呈现在序列中的顺序(从上到下,从左到右)进行测试,以确定是否
提供输出动作的执行需求,如果符合就执行。
3、所有步骤按照它们呈现在序列中的顺序进行测试,以确定是否提供输入动作的执行需
求,如果符合就执行。
4、对于所有步骤来说,按照其呈现在序列中的顺序执行
• 如果可用,占用时间被拷贝到相应的步骤变量中。
• 如果可用,根据需要提供被检测到的超时及 SFC 错误标记。
• 对于非 IEC 步骤,执行相应的动作。
第5章 编辑器(Editors)
5、序列表中所使用的 IEC 动作按照字母顺序执行。有两种执行方式:第一个方式,在当
前循环周期中所有无效的 IEC 动作被执行。第二个方式,在当前循环周期中所有有效的
IEC 动作被执行。
6、转换评测:在当前循环周期中,如果步骤被激活且其后的转换返回TRUE(并且如果已
超出最小激活时间),则下面的步骤被激活。
注意以下动作的执行:
由于是多个顺列的组合,一个动作在一个周期中可以多次执行。(例如:一个 SFC 可
以有两个 IEC 动作 A 和 B,都在 SFC 中执行,都调用 IEC 动作 C;于是在同一周期
中,IEC 动作 A 和 B 都被激活,此外,在两个动作中的 IEC 动作 C 也被激活;而且 C
被调用两次)。
如果在 SFC 的不同地方同时使用同一个 IEC 动作,按照上述所描述的处理顺序,会
产生不可预料的结果。因此会发布一条错误信息。在使用旧版本的 PROSYD 1131 创建
项目的过程中会出现这种情况。
CFC 编程器不使用栅格,因此元素可以放在任何地方。顺序处理表中的元素包括块、
第5章 编辑器(Editors)
输入、输出、跳转、标签、返回和注释。这些元素的输入和输出可以通过鼠标拖曳一个线
路连接起来。连接线被自动画出来。考虑到已存在的连接,画一条最短连接线是可能的。
当元素移动时连接线会自动调整。如果因为缺少空间不能画连接线,则输入和相连的输出
之间将由红线代替。一旦有空间,这条线将被替换为连接线。
与 FBD 相比,CFC 的优势是反馈通道可以直接插入。
主要命令可以在上下文菜单中找到。
每个文本都可能是一个指针位置。所选文本显示为蓝色并可以修改。
所有其它情况下的指针位置以带点的矩形框显示。以下举例列出所有可能的指针位置:
1. 元素主体:块、输入、输出、跳转、标签、返回和注释。
2. 块、输入、输出、跳转、标签、返回和注释元素的文本区域以及连接标记的文本区域
3. 块、输入、输出、跳转和返回元素的输入端:
4. 块和输入元素的输出端:
第5章 编辑器(Editors)
图标: 快捷键:<Ctrl>+<B>
这个命令用于插入运算符、功能、功能块和程序。首先,总是先插入一个 "AND" 运
算符。选择该运算符后,通过修改文本将其改为其它运算符、功能、功能块和程序。也可
从输入帮助的列表中选择所需的块。
图标: 快捷键:<Ctrl>+<A>
这个命令用于插入一个输出。所出现的文本 "???" 可用一个变量来代替。在此也可以
使用输入帮助。输出值赋值给这个变量。
图标: 快捷键:<Ctrl>+<J>
这个命令用于插入一个跳转。出现的文本 "???" 可用插入程序将要跳转到的跳转标
签。使用命令 'Insert 'Label' 插入跳转标签。
图标: 快捷键:<Ctrl>+<L>
这个命令用于插入一个标签。出现的文本 "???" 可用跳转标签来代替。在线模式下,
在 POU 的末尾自动插入返回标签(RETURN)。
使用命令 'Insert 'Jump' 插入一个跳转。
第5章 编辑器(Editors)
快捷键:<Ctrl> + <U>
这个命令用于在一个块中插入一个输入。对于许多运算符来说,输入数量是不定的(例
如:ADD 可以有两个或更多个输入)。
选中该块,逐个增加运算符输入的数量。
图标:
当编辑一个宏命令时,这些命令有效。所插入的输入或输出管脚作为这个宏命令的输
入和输出。在显示方式上与标准 POU 的输入和输出不同,它们没有位置索引。
置位符号为 S ,复位符号为 R。
如果 VarIn1 为 TRUE, VarOut1 为 TRUE。即使 VarIn1 返回为 FALSE,VarOut1
仍保持这个值。
如果 VarIn2 为 TRUE, VarOut2 为 FALSE。即使 VarIn2 返回为 FALSE,VarOut2
仍保持这个值。
多次使用这个命令会使得输出在置位、复位和正常条件间转换。
x 的初始值为1,y 的初始值为0。块的右上角的数字表示命令执行的顺序。
x 每次累加一个1,直到达到10为止。此时,块 LT(0) 的输出值为 FALSE,SUB(3) 和
ADD(5) 将被执行。x 重新设置为 1 且 y 每次增加1。当 x 小于10 时,LT(0) 再次被
执行。因而 y 计算 x 的值从1到10的次数。
在此可以更改常量输入参数(VAR_INPUT CONSTANT)的值。必须在值的域中标出参
数值。另外用鼠标点击或按空格键对其进行编辑。按 <Enter> 键确认更改的值,按
<Escape> 退出更改。按 OK 按钮存储所有更改。
5.4.5.15 选择 CFC 元素
通过点击元素主体来选择它。
若需选择更多的元素,按住 <Shift> 键并一个一个点击所需元素,或按住鼠标左键拖
曳鼠标通过所有需要的元素。
命令 'Extras' 'Select all' 用于选择所有元素。
5.4.5.16 移动 CFC 元素
在按 <Shift> 键的同时,用方向键可以移动一个或多个选择元素。另一种方法是按鼠
标左键来移动,将这些元素移到要求的位置并松开鼠标左键。所选位置不能覆盖其他元素
或超出编辑器范围。如果这种情况发生,所选元素会跳回初始位置并发出报警声音。
5.4.5.17 复制 CFC 元素
5.4.5.18 创建连接
一个元素的输入可以连接到另一个元素的输出。一个元素的输出可以连接到许多其它
元素的输入。
元素 E2 的输入端与元素 E1 的输出端之间有许多种连接形式。
将鼠标光标停放在元素 E1 的输出端,按住鼠标左键并将鼠标光标拖至元素 E2 的输
入端,然后松开鼠标左键。在使用鼠标进行拖曳的过程中,从元素E1的输出端到鼠标指针
之间的连接已经建成。
将鼠标光标停放在元素 E2 的输入端,按住鼠标左键并将鼠标光标拖至元素 E1 的输
出端,然后松开鼠标左键。
用鼠标左键移动元素 E1 或 E2,使得元素 E2 的输出端与元素 E1 的输入端接触。
无论具有空输入端的元素 E2 在哪里,都可以拖住鼠标将 E1 的输出端指向 E2 主
体,松开鼠标键后,便可与 E2 最上面的输入端连接起来。如果块 E2 没有空输入端,则
自动产生新的输入端。
使用这种方式,同一个块的输入和输出能连接在一起。为了在两个管脚间建立连接,
需要在一个管脚处按住鼠标左键并拖曳到希望连接的另一个管脚处,松开按键。如果在连
接过程中,鼠标拖至编辑器工作区以外,则会自动出现滚动条。对于简单的数据类型来说,
类型测试在连接过程中完成。如果两个管脚的类型不一致,则指针变为禁止。对于复杂的
数据类型,不进行测试。
5.4.5.19 删除连接
5.4.5.20 改变连接
程序给出一个标准的以 M 开头的唯一的名字,这个名字可以更改。连接器的名字作
为一个输出参数来存储,但在输入端和输出端都可以编辑。
了解连接器名字与连接输出属性联合,并且一起被存储是很重要的。
1. 在输出端编辑连接器:
如果连接器的名字被更改,则所有相关的输入端都采用新的连接器名。但是,不允许
使用已属于另一个连接标记的名字,因为这样将违反连接器名的唯一性。
2. 在输入端编辑连接器:
如果连接器的名字被更改,则其它POU 上的相关连接标记也被更改。用连接器表示的连接也可以
改为通用连接,方法是:选择输出端连接器,执行命令 'Extras' 'Connection marker'。
如果正确地选择元素的输入端或输出端,则可以直接插入相应的输入元素或输出元素,
且通过键盘在其编辑区域键入字符串。
5.4.5.23 执行顺序
每个元素(块、输出、跳转、返回和标签)都有指示其执行顺序的号码。按照连续的
顺序,在运行时间内执行单独的元素。
当粘贴一个元素时,号码会按照拓扑顺序(从左到右,从上到下)自动给出。如果顺序
已经被改变,所有更高的号码增加1,则新元素接收拓扑后的序号。
当元素移动时,元素序号保持不变。
在某些情况下,必须改变执行顺序以保证执行结果。
如果显示执行顺序,那么在元素的右上角显示相应的顺序执行号码。
当执行顺序为从左到右从上到下时,元素按拓扑顺序排列。即对于拓扑排列方式的元
素,号码按照从左到右从上到下的顺序递增。与连接无关,重要的是元素的位置。
当执行 'Extras' 'Order' 'Order topologically' 命令时,被选元素按拓扑排列方式来安
排。所有元素用这种方法从顺序处理表中取出。每个元素按照从右下到左上的顺序输入到
一个单独的保持顺序处理表中。每个带标记的元素均输入到在顺序处理表中的在此元素其
后面执行的元素的前面。下面用一个例子来说明。
当生成一个新块时,在顺序处理表中,它将被放置在拓扑后续块的前面。
第5章 编辑器(Editors)
使用这个命令可以将所有选中的元素(顺序处理表中的第一个元素除外)在顺序处理表
中的位置向前移动一个位置。
使用这个命令可以将所有选中的元素(顺序处理表中最后一个元素除外)在顺序处理表
中的位置向后移动一个位置。
使用这个命令可以将所有选中的元素移至顺序处理表的最前面,而所选元素组内的顺
序保持不变。未选中的元素组内的顺序也保持不变。
使用这个命令可以将所有选中的元素移至顺序处理表的最后面,而所选元素组内的顺
序保持不变。未选中的元素组内的顺序也保持不变。
这个命令影响所有的元素。执行顺序由元素的数据流决定而不是由它们的位置决定。
下列图表显示按拓扑顺序排列的元素。
第5章 编辑器(Editors)
下面显示执行命令后的排列:
当选用这个命令时,首先元素按拓扑图排列顺序,创建新的顺序处理表。输入为已知
的先计算,目前没数据的元素下一循环周期再执行。 例如在上面的网络中,因为输入(1 和
2)的值是已知的,ADD 块可以立即执行。必须先知道 ADD 的结果才能执行 SUB 块。
反馈路径最后插入。
数据流顺序的优点是,在数据流顺序系统中,与块的输出端相连的输出可以立即执行,
而在拓扑顺序中则不能实现。在有些情况下,与数据流顺序相比,拓扑顺序可以产生另外
一个结果,从上面的例子可以体现这一点。
图标:
使用这个命令,几个同时被选择的 POU 可以组合成一个块,称为一个宏。宏可以复
制/粘贴,每个复制都成为一个单独的宏,其名字可以独立选择。宏没有参考。所有被宏
切断的连接在宏里产生输入或输出管脚。输入连接产生一个输入管脚。默认名In<n> 显示
在管脚旁边。输出连接,显示 Out<n>。在宏创建之前所产生的连接标记,在宏的管脚上
仍保留。
首先,宏的默认名为 "MACRO",其可以在宏的 Name 域中更改。如果编辑宏,则宏
的名字显示在编辑窗口的标题栏中,附加到 POU 的名字上。
例如:
选择:
第5章 编辑器(Editors)
宏:
在编辑器中:
图标:
使用这个命令,或双击宏的主体,打开宏并在相关的 POU 编辑窗口中进行编辑。宏
的名字显示在标题栏中的 POU 名字中。
创建过程中所生成的宏的输入和输出可以像通用 POU 的输入和输出一样来处理。它
们可以移动、删除、添加等等。不同之处仅仅是显示及无位置索引。添加使用按钮 (对
应输入) (对应输出),该功能在菜单条中同样有效。管脚盒为圆角。管脚盒中的文本与
宏中显示的管脚名相匹配。
宏块中管脚的顺序遵循宏元素的执行顺序。低顺序索引号在高的前面,高管脚在低管
脚的前面。
宏的处理顺序是封闭的,换句话说,位于主 POU 中的宏作为一个块来处理,
。因此控
制执行顺序的命令必须在宏内操作。
第5章 编辑器(Editors)
使用这个命令,所选择的宏被再一次扩展并且其包含的元素被插入到宏所位于的POU
中。对宏管脚的连接再次显示为元素的输入或输出连接。如果宏扩展由于缺乏空间而不能
在宏所在的位置生成,则宏向右下方扩展直到有足够的空间。
提示:
如果项目被存储在版本2.1下,则宏将同样被扩展。所有宏在转换为其它编程语言之
前都被扩展。
5.4.5.34 ‘Extras’ 'Back one macro level', 'Extras' 'Back all macro level'
图标:
这些命令在工具栏中也是有效的,宏打开后就可以编辑。如果一个宏嵌套在另一个宏
中,则转换到下一个更高或最高的显示级别。
在 CFC 编辑器中反馈路径可以直接显示,这一点与使用FBD编辑器不同。在此,块
的输出总是带有内在的中间变量。对于运算符来说,中间变量的数据类型由最大输入数据
类型产生。
常量的数据类型从最小可能的数据类型中获得,常量 '1' 采用数据类型 SINT。现在,
如果执行一个具有反馈回路和常量 '1' 的加法运算,则第一个输入的数据类型为 SINT,
第二个输入由于是反馈回路而没有定义。因而中间变量的类型也为 SINT。中间变量的值
分配给输出变量。
下图分别显示带有一个反馈回路的加法运算和带有一个变量的加法运算。变量 x 和 y
的类型为 INT。
两个加法运算间的不同之处:
变量 y 可以赋予一个不等于0的初始值,其不同于左边加法操作中的中间变量。
左边加法操作中的中间变量的类型为 SINT,而右边的数据类型为 INT。在第129次调
用后,变量 x 和 y 的值不同。变量 x 的类型虽然为 INT,但因中间变量已经溢出,所
以其包含数据-127;此时变量 y 包含数值129。
监控(Monitoring):
第5章 编辑器(Editors)
在输入或输出盒内显示输入和输出的值。常量不被监视。对于非布尔型变量,显示其
相应的值。对于布尔型变量,如果值为 TRUE,则变量名以及连接均显示为蓝色,相反为
黑色。
在 TRUE 状态下,内部的布尔连接也在线显示为蓝色,相反为黑色。内部非布尔连接
数值显示在连接输出管脚处的一个圆角方盒内。
宏的管脚像输入或输出块一样被监控。
带有连接标记的非布尔型连接在连接标记内显示其值。对于布尔连接,如果值为 TRUE
则连接线以及标记名都显示为蓝色,相反为黑色。
流量控制:
打开流量控制功能后,用在‘Project’‘Options’对话框中选定的颜色标记经过的连接。
断点:
断点可以设置在所有具有处理顺序索引号的元素上。程序处理将在元素执行前暂停,
即对于POU和输出,在输入赋值之前;对于跳转标签,在具有下个索引号元素执行之前。
在断点对话框中,元素的处理顺序索引作为断点位置使用。
在所选元素中设置断点的方法如下:用 F9 键;或在 'Online' 或 'Extras' 菜单中通过
菜单条 'Breakpoint on/off' 来实现;或通过编辑器的上下文菜单来实现。如果一个元素设
置了断点,当再一次执行 'Breakpoint on/off' 命令时就可撤消断点。另外,也可通过在设
置断点的元素上双击进行切换。
断点的显示颜色在‘Project’‘Options’ 对话框中设置。
RETURN 标签:
在线模式下,名为 "RETURN" 的跳转标签会在编辑器中最后一个元素之后的第一列
上自动生成。这个标签标志着在顺序步进执行中,当前POU结束后会立即跳转到在执行之
前所离开的POU。在宏中不能插入 RETURN 标记。
步骤:
当使用 'Step over' 命令时,总是跳至带有下一个高顺序索引号的元素。如果当前元
第7章 库管理器(Library Manager)
素是1个宏或者1个POU,当执行命令'Step in'时执行分支。如果执行 'Step over' 命令,那
么跳至顺序索引在宏后面的元素。
6. 资源概述
在对象管理器的Resources 选项卡中,有用于配置和组织项目的对象及用于跟踪变量值
的对象:
资源选项卡的内容如下:
6.1 全局变量
6.1.1 编辑全局变量
在对象管理器中的 Resources 选项卡下的 Global Variables 文件夹中有三个对象
(对象默认名在圆括号内)。
在这些对象中定义的所有变量可在整个项目中被识别。
如果 global variables 文件夹没打开(在文件夹前显示加号) ,双击或选定该行后按
<Enter>键打开。
选择相应的对象。用 'Object Open' 命令可以打开具有先前已定义全局变量窗口。这个
编辑器与声明变量编辑器一样。
6.1.2 变量表
全局变量和变量配置(VAR_CONFIG)必须在不同的对象中定义。
如果已声明了大量的全局变量,则最好构造全局变量表。
6.1.3 全局变量
在整个项目中均需要访问的标准变量、常量或其它变量都可以声明为全局变量。
第7章 库管理器(Library Manager)
6.1.3.1 创建全局变量表
6.1.3.2 编辑全局变量表
全局变量编辑器与声明编辑器相似。但应注意,在这个编辑器中不能编辑外部变量表!外
部变量表只能在外部编辑,并且在每次打开和编译项目时被读取。
语法结构:
VAR_GLOBAL
(* 变量声明 *)
END_VAR
6.1.3.3 编辑其它全局变量表
如果有运行系统支持,其它变量(remanent variables)可以被处理。其它全局变量有两
种类型:
保持变量在运行系统(off/on)无控制关闭后或在 PROSYD 1131 中执行 'Online' 'Reset'
后都保持不变。
持久变量在运行系统(stop, start)关闭后或执行 'Online' 'Cold reset' 命令后或下载后都不
变。
持久变量不会自动变为保持变量!
其它变量被加以关键字 RETAIN 或 PERSISTENT。
网络变量也可以用这个语法结构定义。
语法结构:
VAR_GLOBAL RETAIN
(* 变量声明 *)
END_VAR
VAR_GLOBAL PERSISTENT
(*变量声明 *)
END_VAR
第7章 库管理器(Library Manager)
6.1.4 全局常量
全局常量被加以关键字 CONSTANT。
语法结构:
VAR_GLOBAL CONSTANT
(* 变量声明 *)
END_VAR
6.2 变量配置
在功能块中,如果在关键字 VAR 和 END_VAR 之间定义变量,输入和输出的指定地址
可以不完全定义。不完全定义地址可用星号(*)表示。
例如:
FUNCTION_BLOCK locio
VAR
loci AT %I*: BOOL := TRUE;
loco AT %Q*: BOOL;
END_VAR
则用以下方法正确配置变量:
第7章 库管理器(Library Manager)
VAR_CONFIG
PLC_PRG. Hugo.loci AT %IX1.0 : BOOL;
PLC_PRG. Hugo.loco AT %QX0.0 : BOOL;
PLC_PRG. Otto.loci AT %IX1.0 : BOOL;
PLC_PRG.Otto.loco AT %QX0.3 : BOOL;
END_VAR
6.2.2 结构文档
6.2.2.1 结构文档
如果需要将一个项目分别存储为使用德语注释和使用英语注释的版本,或者如果你想在几
个相似的项目中使用相同的变量名,则使用 'Extras' 'Make Docuframe File' 命令创建一个结
构文档以节省自己的许多工作。
已创建的文件可以装载到希望的文本编辑器中,并进行编辑。文件的第一行以 DOCUFILE
开始。项目变量表遵循一个排列,即每个变量占三行:VAR 行,表示有一个新变量;第二行
为变量名;最后一行为空行。使用变量注释可代替这一行。 对于未说明的变量可以删除。如
果需要的话,可为你的项目生成多个结构文档。
结构文档编辑窗口如下:
用这个命令创建一个结构文档。只要从全局变量中选择一个对象,就可以使用这个命令。
一个对话框将打开用于存储一个新文件。在文件名区域中,文件名的扩展名(*.txt)已存
在。输入希望的文件名。现在,文本文件创建完成,其中包含项目的所有变量列表。
用这个命令可以选择一个结构文档。
打开对话框。选择结构文档并按 OK。现在,如果需要记录整个项目,或打印部分项目,
则在项目文本中,所生成的注释将插入到所有变量的结构文档中。这个注释只出现在打印输出
中!
使用 'Extras' 'Make Docuframe File' 命令创建结构文档,。
6.4 PLC 配置
在 对 象 管 理 器 的 Resources 选 项 卡 中 可 以 找 到 PLC Configuration 。 使 用 PLC
Configuration编辑器,可以定义当前打开的项目所需硬件的I/O模块。在 PROSYD 1131 中,
Extras \ PLC Selection 命令选择所连接的控制器。
6.4.1 PLC 选择
使用菜单 Extras \ PLC Selection 选择所连接的控制器。
在选择列表中显示所有的控制器选项。在你没有选择控制器之前进行Login连接时,该对
话框会自动显示出来。
按 OK 确认选择,或按 CANCEL 取消选择。
6.5 任务配置
除了声明特殊的 PLC_PRG 程序外,也可以用任务管理来控制项目的处理。
6.5.1 哪个任务被处理?
对于任务的执行,应用以下规则:
• 当条件满足时执行任务;即到达指定时间或条件变量有一个上升沿之后。
• 如果几个任务具有同一个有效条件,那么先执行具有最高优先级的任务。
• 如果几个任务具有同一个有效条件并且优先级相同,那么等待时间最长的任务先被执行。
• 可以在上下文菜单中找到最主要的命令(按右鼠标键或按 <Ctrl>+<F10>)。
6.5.2 使用任务配置
• 任务配置的标题是 "Task Configuration"。如果标题前有一个加号,则顺序表是关闭的。双
击鼠标或按 <Enter>,就可以打开这个表。这时,标题前显示减号。再次双击,关闭这个
表。
• 对于每个任务,都有一个程序列表。可以用同样的方法打开和关闭这个表。
• 使用 'Insert' 'Insert Task' 命令可以插入一个任务。
• 使用 'Insert' 'Insert Program Call' 命令,插入一个程序调用。
• 使用 'Extras' 'Edit Entry' 命令,依据所选元件,可编辑任务特性或程序调用。
• 点击任务或程序名或按 <空格>,在名字的周围出现编辑控制框。在任务编辑器中直接更改
名称。
在对话框中可以输入希望的属性:Name;Priority (0~31之间的数字,具有以下特性:0
是最高级,31 是最低级);Interval 之后任务再次启动;或一个变量在上升沿之后使任务执
行(在 Single 域中设定)。用 Select... 按钮,可以打开输入帮助,从中选择已声明的变量。
如果时间间隔和变量都输入了,则只按照时间间隔的要求来执行。如果两个区域都没有输
入设定,则执行间隔依照所用的目标系统 (依据专用运行系统文件;例如,PROSYD 1131SP
NT V2.2 的运行时间的时间间隔为10 ms)。
6.6 采样轨迹
采样轨迹的意思是在某一时间范围里跟踪变量值的变化。这些值被写入一个缓冲区(采样
缓冲区)。如果存储器满了,则存储器开头“最老的”值被覆盖。在同一时间,最多可以跟踪20
个变量。每个变量最多可以跟踪500个值。
由于 PLC 中的采样缓冲区容量是固定的,如果采集的变量是多字节的(如:DWORD),则
所存储的采样值少于500个。
例如:如果 PLC 的存储区为5000字节长,有10个WORD类型变量将被采样,则每个变量
能被采集250个值。
为了能够完成采样,在对象管理器的Resources选项卡中打开Sampling Trace 。然
后输入采样变量(参看 'Extras' 'Trace Configuration')。用 'Save Trace' 命令将配置传送给
PLC,并用 'Start Trace' 命令在 PLC 中启动采样。用 'Read Trace' 命令读取最后的采样
值,并以曲线形式显示。
图标:
使用这个命令,轨迹配置被传送到 PLC,并在 PLC 中开始采样轨迹。
图标:
使用这个命令,读 PLC 中的当前轨迹缓冲区,并显示所选变量的值。
图标:
这个命令用于停止 PLC 中的轨迹采样。
6.6.6 显示变量的选择
位于组合框的右侧,在用于显示轨迹配置中所定义的采样变量曲线窗口的旁边。如果从列
表中选择了一个变量,则该变量以相应的颜色来显示 (变量0为绿色,等等)。显示的曲线为所
选变量的。
在轨迹窗口中最多可同时监视8个变量。
6.6.7 采样轨迹的显示
如果装载一个轨迹缓冲区,则所有变量的值将被读出并显示。如果没有设置扫描频率,那
么 X 轴将用轨迹值的连续数据来表示。从轨迹窗口(第一行)的状态显示可以看出其是否装满
以及跟踪的完成时间。
如果指定了扫描频率,则 X 轴将指定轨迹值的时间。时间被赋给“最旧的” (“oldest” )
轨迹值。例如:显示持续 25 秒钟的数值。
Y 轴根据适当的数据类型显示数值。根据所显示区域允许的最低和最高值来缩放。例如,
变量 0 的最低值为6,最高值为100,其的刻度设置在左边。
如果设定了触发条件,则在出现触发条件的前后采样数值之间显示垂直点线。
所读取的存储器将被保存直至项目改变或离开系统为止。
图标:
用这个命令可以伸展所显示的采样轨迹值。通过水平图形调节栏设置启始位置,连续执行
该命令,在窗口中所显示的轨迹段的长度缩短。
这个命令与 'Extras' 'Compress' 相似。
图标:
使用这个命令,所显示的采样轨迹值将被压缩;也就是说,用了这个命令后,可以在一个
更大的时间范围内显示轨迹变量的值。可以多次执行这个命令。
这个命令与 'Extras' 'Stretch' 相似。
第7章 库管理器(Library Manager)
6.7.2 离线模式下的监视及配方管理器
离线模式下,在监视及配方管理器中可用 'Insert' 'New Watch List' 命令创建多个监视表。
对于输入变量的监视,可以使用输入帮助调用所有变量的列表,或按照以下的形式用键盘
输入变量:
<POUName>.<Variable Name>
对于全局变量,其POU名被省去,以一个点开始。变量名可包含多层。地址可以直接输入。
多层变量的例子如下:
PLC_PRG.Instance1.Instance2.Structure.Componentname
全局变量的例子如下:
.global1.component1
离线模式下的监视及配方管理器如下:
6.7.7 在线模式下的监视及配方管理器
在线模式下显示被输入的变量的值。
结构值 (数组、结构、功能块实例) 的标识符前面标记有一个加号。用鼠标点击加号或按
<Enter> 键,可以打开或关闭变量。如果在监视表中标记一个功能块的变量,其关联的上下
文菜单被扩展并包含两个菜单条 'Zoom' 和 'Open instance'。
为了输入新变量,可以用 'Extras' 'Monitoring Active ' 命令关闭显示。变量输入完成后,
再使用同样的命令激活数值显示。
在线模式下的监视及配方管理器如下:
提示:只有在监视及配方管理器中被选择的数值在监视表中被装载!
提示: 只有在监视及配方管理器中被选择的数值在监视表中被装载!
提示: 只有在监视及配方管理器中被选择的数值在监视表中被装载!
6.7.11 强制数值
在监视及配方管理器中,也可以使用命令 'Force values' 强制数值或命令 'Write
values'写入数值。点击某个变量值,打开一个对话框,为变量输入一个新值。在监视及配方
管理器中,被改变的变量显示为红色。
7 库管理器(Library Manager)
库管理器显示所有与当前项目相连接的库文件。库文件中的POU、数据类型和全局变
量的使用方法与用户自定义的 POU、数据类型和全局变量一样。
使用 'Window' 'Library Manager' 命令打开库管理器。 所加载的相关库文件信息
与项目一起存储。
库管理器显示如下:
第8章 可视化组件
7.1 使用库管理器
库管理器窗口被屏幕分割器分为三个或四个区域。加载到项目上的库文件被列在左上
区域。
在下面的区域中,依照所选择的选项卡,显示上面区域中所选库的 POU , Data types,
Visualizations 或 Global variables 列表。
双击鼠标或按 <Enter> 键,可以打开或关闭文件夹。在关闭的文件夹前显示有一个
加号,在打开的文件夹前显示有一个减号。
如果用鼠标或用箭头键选择一个 POU,则这个 POU 的声明将显示在库管理器的右上
区域;右下区域是带有输入及输出的图形显示。
对于数据类型和全局变量,声明显示在库管理器的右侧区域。
7.3 用户自定义库
如果一个项目在它的实体中被编译且无错误产生,则在 'File' 菜单中可以用 'Save
as' 命令将其存储为库文件中。项目本身将保持不变。产生一个附加文件,默认扩展名为
".lib"。然后,这个库可以像标准库一样使用。
为了在其它项目中使用这个项目的 POU,将这个项目作为一个Internal*.lib 来存
储。 其后,利用库管理器可以将这个库加载到其它项目中。
如果在其它编程语言(例如 C )中执行 POU,并希望一个库文件中取得该POU,则使
用数据类型External Library*.lib 存储这个项目。你将得到一个库文件,但附加了一个
扩展名为 "*.h"的文件。这个文件的构成像一个 C 头文件,并包含所有有效的 POU、数
据类型和全局变量的声明。如果在一个项目中使用了外部库,则在仿真模式下,用
第8章 可视化组件
PROSYD 1131 编写的 POU 将被执行;但在目标系统(硬件系统)上用 C 编写的程序
将被执行。
8 可视化组件
8.1 可视化组件
可视化组件允许对项目中的变量进行观测。借助于可视化组件的帮助,可以离线绘制
图形单元,其形状、颜色可以根据指定的变量数值在线更改。例如:使用棒状图显示变量
数值的增减。
在线模式下,也可通过鼠标和键盘对程序进行输入。
在配置可视化组件单元时,使用placeholder(占位符)替代实际变量和字符串,一个
可视化组件对象(可视化组件POU)可被插入到其它可视化对象中并被多次使用(引用),
可向其提供各种配置(例如:观测一个功能块的不同实例)。
一个可视化组件对象插入到另一个可视化组件中,被称为引用。在线模式下的被引用
的可视化组件的运行与原始可视化组件相同。
当相关的转换文件(参见‘Project' 'Translate into other language')有效时 ,可视化
文本可以在线转换为其它语言。
可视化组件显示如下:
第8章 可视化组件
8.2 创建可视化组件
要创建一个可视化组件,必须在对象管理器中使用'Project' 'Object Add'命令,并
8.2.1 可视化组件单元,插入
8.2.1.1 可视化组件单元,插入
你可以在你的可视化窗口中插入四种不同的几何的图形,包括位图,按钮和已有的可
视化组件。
你可配置的几何图形(Geometric forms)包括:矩形,圆角矩形,椭圆/圆和多边形。
进入‘Insert’菜单项并自由选择以下命令:'Rectangle', 'Rounded Rectangle', 'Ellipse',
'Polygon', 'Line', 'Curve', 'Bitmap', 'Visualization' 'Button'。在选项前显示(√)。你也可
以使用工具栏。按下鼠标绘制图形。
如果你此时用鼠标进入编辑窗口,你将看到表示相应符号的鼠标指针。 点击你的单元
所要求的起始点并按鼠标左键拖动它,直到达到此单元所要求的尺寸。
如果你希望创建一个多边形或一条线,首先用鼠标点击多边形的第一角或线的起点,
然后点击下一个点或角。双击多边形最后一个角将闭合此多边形并完成图形。如果你想创
建一条曲线(贝赛尔曲线),用鼠标先确定起始点及其它两个点以定义外界矩形。第三次
点击鼠标后画出一个弧。你可移动鼠标改变弧的终点位置,双击鼠标结束处理或添加另一
个弧。
另外请注意状态栏中所显示的选择模式和插入模式。
使用此命令可在你现有的可视化组件中插入一个矩形。
使用此命令可在你现有的可视化组件中插入一个圆角矩形。
使用此命令可在你现有的可视化组件中插入一个圆或椭圆。
使用此命令可在你现有的可视化组件中插入一个多边形。
第8章 可视化组件
使用此命令可在你现有的可视化组件中插入一条线。
使用此命令可在你现有的可视化组件中插入一个位图。
按鼠标左键拖动至希望的大小。打开一个打开文件对话框。一旦你选择了需要的位图
文件,它将被插入到选定区内。
使用此命令可在你现有的可视化组件中插入一个已经存在的可视化组件。
按鼠标左键拖动至希望的大小。打开已存在的可视化组件列表。一旦你选择了需要的
可视化组件,它将被插入到选定区内。
一个插入的可视化组件也可被称作引用(reference)。
使用此命令可在你现有的可视化组件中插入一个按钮。
按鼠标左键拖动单元至希望的大小。
如果为按钮配置了一个触发变量,它将通过按钮是否被按下来真实地显示此变量的状
态。相反,通过“按”此按钮触发变量。
8.2.2 使用可视化单元
8.2.2.1 选择可视化单元
使用鼠标选择单元。也可在单元列表中使用<Tab>键选择第一个单元,并再一次按键
跳至下一个单元。如同时按<Tab>和<Shift>键,将按单元列表中相反的顺序跳转。如需
选择多个单元,按住<Shift>键的同时接连地点击相应的单元;或按住鼠标左键拖动窗口
选择需要的单元。
如果需要选择所有单元,使用'Extras' 'Select All' 命令。
如果已进入单元列表(使用'Extras' 'Element list' 命令),你可在可视化组件中选
择相关的单元。
8.2.2.2 修改可视化组件
使用鼠标或<tab>键从已插入的单元中选择一个。在每个单元的各个角上将出现一个
小黑块。当选择多边形、线或曲线时,在单元中两角的中间边沿处将显示小黑块。
第8章 可视化组件
当选择一个单元后,旋转点(balance point)也同时被显示。你可以围绕这个点使用
一个设定的动作/角度旋转这个单元。旋转点显示为黑色,中间带有白色十字( )。你
可以按鼠标左键拖动这个点。用鼠标点击小黑块并拖动鼠标以改变单元的尺寸。
当选择一个多边形时,你可用此方法拖动多边形的每个独立的角。如果在操作的同时
按<Ctrl>键,则在此角的位置再插入一个角,并可以用鼠标拖动此角。使用<Shift>+<Ctrl>
可以删除一个角。
8.2.2.3 拖动可视化组件单元
按鼠标左键或箭头键可以拖动所选择的单元。
8.2.2.4 复制可视化单元
8.2.2.5 改变选择及插入模式
插入一个可视化单元后,将自动返回选择模式。如果你希望用此方法插入其它单元,
则需在菜单中再次选择相应的命令或者在工具栏中选择相应的图标 。
按<Ctrl>键的同时并按鼠标右键,可实现选择模式和插入模式之间的快速切换。
插入模式下,在鼠标指针位置将显示相应的图标,其名字将在状态栏中用黑字显示。
8.2.2.6 可视化组件中的状态栏
如果已选择了某个可视化组件,则在状态栏中以像素值显示鼠标的当前X和Y的位置,
像素值是相对于图像左上角位置的。如果鼠标指针定位在一个单元上,或者此单元正在处
理过程中,则显示此单元的序号。如果你已选择插入一个单元,那么也显示此单元(例如:
Rectangle)。
8.2.3 可视化组件单元,配置
使用此命令,打开‘Configure element’对话框以设定所选择的可视化单元(参见l选择
可视化组件单元)。也可以双击此单元打开配置对话框。
第8章 可视化组件
在对话框的左侧选择一个类别,在右侧区域进行相关设置。
根据所选择的可视化单元,可以选择如下类别:
形状(Shape) 矩形,圆角矩形,椭圆
文本(Text) 所有
颜色(Color) 矩形,圆角矩形,椭圆,多边形,直线,曲线
绝对运动(Motion absolute) 所有
相对运动(Motion relative) 所有,除了多边形,直线,曲线
变量(Variables) 所有
输入(Input) 所有
工具提示(Tooltip) 所有
位图(Bitmap) 位图,按钮
可视化组件(Visualization) 可视化组件
在单元配置中的程序变量有效的位置,以下输入是可能的。
·变量名,可使用输入帮助。
·表达式,由所访问的组件,带有常数索引的区域输入项,变量和直接地址组成。
` ·运算数和常数,可以和上述表达式配合使用。
允许的表达式例子:
x+y
100*PLC_PRG.a
TRUE
NOT PLC_PRG.b
9*sin(x + 100)+cos(y+100)
不允许调用功能。无效表达式在登陆时产生一个错误信息("Invalid Watch
expression...")。例如:fun(88), a := 9, RETURN。
写全局变量有两种可能的方法:".globvar" 同 "globvar" 是相等的。但在复合表达式
中不允许带点的格式。
参见下文的占位符。
8.2.3.2 占位符
在配置对话框中的变量类别或文本类别的位置都可以设置一个占位符。如果在程序中
不直接使用该可视化组件对象而是被作为一个引用插入到其它可视化组件对象中,则它是
有意义的。。当配置这样一个引用(Reference)时,占位符可以被替换为变量名或文本。
用两个($)符号圈起的文本是一个有效的占位符(例如:$variable1$, variable$x$)。
对每个占位符,在占位符列表对话框中可定义一个“数值组” 作为一个输入规范(使用
'Extras' 'Placeholder list' 命令打开该对话框。)
此对话框适用于具有输入焦点的可视化组件对象。显示设置在对象中的占位符,并且
当配置这个可视化组件的一个引用时,允许优先对每个占位符定义其将被何值代替。
第8章 可视化组件
可替换占位符的输入占位符列表如下:
在Placeholder栏中列出所有在可视化组件中提供的占位符。Element number栏显示配
置有占位符的单元。在Replacements栏中可以输入若干个字符串,它可以作为引用中的一
个输入替换占位符。输入内容之间必须用逗号分开输入。如果指定了一个不可替换字符串,
则当配置包含它的引用时,占位符可被相应的文本替换。
8.2.3.4 形状(Shape)
8.2.3.5 文本
在配置可视化组件单元对话框中,在文本(Text)类别中可为单元指定一个文本,其
可以直接输入或者被一个占位符替换。
在 Content 区域中输入文本。使用组合键<Ctrl>+<Enter>可以换行。使用
<Crtl>+<Tab>,停止输入。
第8章 可视化组件
如果在文本中输入"<name>",则这个位置在在线模式下,将被Variables 类别中
Text Output 区域内输入的变量的值所代替。
例如:“#Pump 1#”或“#Pump# 1”
例子中的第二种情况,在文字 Pump 多次产生的情况下(Pump 1, Pump 2, 等.),可
以在翻译时避免多次出现。
在水平左对齐(horizontally left),居中(center),右对齐(right) 和 垂直顶部对
齐(vertically top),居中(center),底部对齐(bottom) 的单元中,配置文本在在线状
态下以指定的对齐方式显示。
如果使用字体(Font)按钮,显示选择字体对话框。选择需要的字体并用OK按钮确
认。用标准字体(Standard Font)按钮可以设置字体,该字体为在项目选项中('Project'
'Options' 'Editor') 所选择的字体。如改变字体,则此字体将显示在所有单元中,除了那些
使用Font按钮明确规定为其它字体的单元。
配置可视化组件单元(文本)对话框如下:
8.2.3.6 线宽度
在配置可视化组件单元对话框,你可以为单元选择线的宽度。在预定义选项中可以选
择1至5像素宽度的设置,也可用手动输入其它值。
配置可视化组件单元(线宽)对话框入下:
第8章 可视化组件
8.2.3.7 颜色
在配置可视化组件单元对话框的颜色类别中,你可以为单元的内部及外框选择初始颜
色和报警颜色。选择选项 no color inside 和 no frame color ,你可以创建透明单元。
配置可视化组件单元(颜色)对话框如下:
如果在改变颜色(Change Color)区域的变量(Variables)类别中输入了一个布尔
变量,则当变量值为 FALSE 时,此单元显示 Color 区域中设置的颜色,变量值为 TRUE
时,此单元显示报警色(Alarm Color)。
提示:仅当PLC处于在线模式时,颜色改变功能才能激活。
在可视化组件单元配置对话框的相对位移(Motion Relative)类别中,可为单元边
界定义一个变量。根据变量值的不同,相应单元的边界可以移动。在区域中输入变量的最
简单的方法是使用输入帮助(<F2>)。
有四个输入对应单元的四个边。角的基准点总是在零位。在相对栏中,变量的新值将
按此值以象素为单位移动边界。因此,输入变量应为整型变量(INT)。
提示:正值向下移动水平边界,或向右移动垂直边界。
可视化组件单元(相对移动)配置对话框如下:
第8章 可视化组件
8.2.3.10 变量
在可视化组件单元配置对话框的变量(Variable)类别中,你可以输入可视化组件单
元状态所要求的变量。在区域中输入变量最简单的方法是使用输入帮助。
你可以在 Invisible 和 Change color 区域内输入布尔变量。在区域输入的变量的
数值确定其动作。如果 Invisible 区域内的变量值为 FALSE ,则可视化组件单元为可见
的。如果变量值为TRUE ,则可视化组件单元为不可见。
如果 Change color 区域内的变量值为 FLASE ,则可视化组件单元将以缺省颜色显
示,如果变量值为 TRUE,则单元将以报警颜色显示。
除了Text 类别中的Content区域中的文本外,只要你已经输入了"<name>",在
Textdisplay 区域中,就可以指定一个其数值显示在可视化组件中的变量。在线模式下,
此"<name>"将被 Textdisplay 区域内的变量值代替。如果你希望在在线模式下使用键盘
编辑此变量的值,则可在输入(Input)类别中通过'Text input of variable' 'Textdisplay' 实
现。
可视化组件单元(变量)配置对话框如下:
8.2.3.11 输入(Input)
<Visuname>(<Placeholder1>:=<Text1>,
<Placeholder2>:=<Text2>,..., <Placeholder
n>:=<Textn>)
例如:
调用可视化组件visu1, 在visu1中的占位符$var_ref1$和$var_ref2$分别被
PLC_PRG.var1和PROG.var1变量代替。
visu1(var_ref1:=PLC_PRG.var1, var_ref2:=PROG.var1)
8.2.3.12 工具提示(ToolTip)
在线模式下,当鼠标光标经过对象时则出现一个文本提示框。可以在该类别中设置所
显示的文本内容。使用组合键<Ctrl> + <Enter>设置文本格式的行间分隔。
8.2.3.13 位图(Bitmap)
在可视化组件单元配置对话框中的位图(Bitmap)类别中,可以输入位图功能选项。
在 Bitmap 区域输入位图文件名及其目录。你可以使用 ... 键以打开标准的Windows
第8章 可视化组件
资源管理器对话框,选择希望的位图文件。
所有其它的输入都将影响位图文件的外框。
通过选择各向异性(Anisotropic)、各向同性(Isotropic)或固定性(Fixed)选项,
你可以定义位图改变尺寸结构时的特性。各向异性意味着位图将保留与外框相同的尺寸,
它允许你单独改变位图的高度或宽度。各向同性意味着当整个尺寸改变时,位图将保持相
同的比例 (也就是,宽度和高度的关系保持不变)。如果选择固定性,位图的原始尺寸将
保留,而不考虑外框尺寸的大小。
如果Clip 选项与 Fixed 同时被选择,只有包含在框架中的位图部分可以显示。
如果选择 Draw 选项,外框将按照在颜色对话框中的颜色和报警颜色按钮中所选择的
颜色显示。报警颜色只有当变量类别中Change Color区域中的变量为TRUE时才会被使用。
可视化组件单元(位图)配置对话框如下:
8.2.3.14 可视化组件
在可视化组件单元配置对话框的Visualization 类别中,你可以在一个可视化组件中
以一个元素的方式使用另一个可视化组件。在 Visualization 区域输入可视化组件名。
使用 ... 键打开包含该项目中所有有效的可视化组件对话框。除了当前的可视化组件外,
其它任意组件都可以使用。
所有其它输入都将影响可视化组件的外框。
如选择 Draw 选项,此外框将按照颜色对话框中的在颜色和报警颜色按钮中所设定
的颜色显示。报警颜色只有当Variables 类别中Change Color 区域中的变量为TRUE
时才会被使用。
如选择 Isotropic , 当整个尺寸改变时,显示比例不变 (也就是说,宽度和高度的关
系将是同样的)。否则比例将改变
如在线模式下选择 Clip ,则只有可视化组件的原始部分可被显示。例如,如果对象
延伸至原始显示区外,它将被锁定在可视化组件中,外部将完全消失。
按 Placeholder 键将打开‘Replace placeholder’对话框。在占位符栏中列有插入到可
视化组件POU中的所有占位符。在‘Replacements’栏内提供可以替换此占位符的可选的预
定义数值。具有哪些可能的替换取决于是否在'Extras' 'Placeholder list'对话框中预先定义
了数值组。如果是这样,它将显示在复合框中以供选择。如果没有预先定义,双击替换栏
中的相应区域,打开编辑区填写希望的选项。
替换占位符的另一个方法是通过在Zoom to vis 中的输入,在调用可视化组件时直接
运行。Zoom to vis 位于可视化组件单元配置对话框的‘Input’类别中。
第8章 可视化组件
提示:按顺序排序替换功能是不可能的。因此占位符将不能被替换为已经包含占位符文
本!
提示:当使用占位符时,基于项目的编译,不能在可视化组件单元配置中立即检查项目
编辑上的无效输入。因此,在线模式下适当的错误信息会首先出现。
例如:占位符概念的应用。
借助于相同的可视化组件引用的帮助,功能块实例可以很容易地显示。例如,在配置
显示功能块fu的变量的可视化组件visu时,可以用变量名前面加占位符$FUB$表示(例如:
$FUB$.a )。如果 visu 中的一个引用被使用(通过在另一个可视化组件中插入 visu 或
者通过'Zoom to vis.' 被调用),则在配置这个引用时,占位符$FUB$ 可被功能块 fu 的
实例名所代替(例如:$FUB$ -> PLC_PRG.inst_1)。在的另一个visu 引用中,$FUB$ 可
以被另一个功能块fu的实例名代替。
可视化组件单元(可视化组件)配置对话框如下:
8.2.4 其它可视化组件单元功能
用此命令可将选定的可视化组件单元放置在前面。
用此命令可将选定的可视化组件单元放置在后面。
用此命令可以打开选择文件对话框。选择带有扩展名"*.bmp"的文件。所选的位图文
件将作为你的可视化组件的背景。
使用命令'Extras' 'Clear Background Bitmap' 可删除此位图。
第8章 可视化组件
用此命令可清除当前可视化组件的背景位图。
使用命令 'Extras' 'Select Background Bitmap' 为当前可视化组件选择一个位图。
用此命令排列所选择的可视化组件单元。
可选择以下排列方式:
z 左对齐(Left): 每个单元的左边界以最左端单元为准排列。
z 右对齐(Right)/顶端对齐(Top)/底端对齐(Bottom)为同样方式。
z 水平中心(Horizontal Center): 每个单元按所有单元的平均水平中心排列。
z 垂直中心(Vertical Center): 每个单元按所有单元的平均垂直中心排列。
此命令用于选择当前可视化组件对象中所有可视化组件单元。
此命令用于切换选择模式。也可使用图标 完成或者在按<Ctrl>键的同时按鼠标右键。
此命令将打开一个包含所有可视化组件列表的对话框,包括数量(number),类型
(type),位置(position)。位置是相对于单元的左上角和右下角的 x 和 y 的位置。
当选择了一个或多个条目后,在可视化组件中的对应单元被标记为可视控制,如果必
要,屏幕将滚动至包含单元的可视化组件部分。
使用To front 按钮将选择的可视化组件放置在最前端。
使用To behind按钮将其移至后面。
使用 Delete 按钮,将所选的可视化组件单元删除。
使用 Undo 和 Redo 按钮,取消或恢复以前进行的操作,同命令'Edit' 'Undo'和 'Edit'
'Redo'相同。在对话框中,你可以察看已经做过的修改。
按 OK ,关闭对话框确认更改。
使用 Configure 打开单元配置对话框
单元列表对话框如下:
第8章 可视化组件
使用此命令,打开一个对话框,你可以进行一些对可视化组件的设定。
提示:只有在在线模式下,文本显示才可以改变。
关于创建翻译文件,请参见前面的章节。
关于为可视化组件创建特定语言文件*.vis ,请参见下文。此选项对在版本2.1以下创
建的项目兼容。
为选择一个翻译文件或者一个语言文件,需在对话框中激活Language file 选项,并
且在输入区输入文件名和路径,或者通过按钮 打开对话框获得标准文件的帮助。
在 Language 下面的选择窗口中,你可以在German 和 English 中选取。
可视化组件语言文件选择对话框如下:
创建一个*.vis语言文件:
如需为可视化组件创建一个新的语言文件*.vis ,则按如下操作:
打开设定(Setting)可视化组件对话框,语言(Language) 类别。
选 language file 选项。在右侧输入区中输入所希望的存储路径。文件扩展名为 .vis。
你可获得可视化组件中当前语言的文本变量列表。它包含此列表题目的标记,例如
"1=german" 作为对题目[german]的标记。通过拷贝可扩展此列表,然后用英文替换德文
并设定一个新题目[english]。在行1=german 后又加上了 2=english。
用准备好的一种语言观查可视化组件,再次打开语言(Language)对话框。 在
Language 选项区域,你可以选择德文(german)或英文(english)。
提示:只有切换到在线模式后显示文本才会改变。
通过可视化组件单元调用语言在线帮助:
随同可视化组件单元的不同帮助文件的调用可以同可视化组件当前输入语言绑定在一
起。因此,在'Configure element'对话框的'Execute program'位置,必须为这个单元输入
INTERN HELP 命令,并且在PROSYD 1131 .ini文件中必须含有 [Visu-Helpfiles] 部分。
在下面,相应的帮助文件必须分配给在可视化组件所选择的语言。例如:
[Visu-Helpfiles]
German=C:\PROGRAMME\HELP_D.HLP
English=C:\PROGRAMME\HELP_E.HLP
8.2.4.10 在线模式下的键盘操作
在线模式下,可视化组件单元可通过键盘进行操作。
按 <Tab> 键,在单元列表中选择第一个单元。每次按此键,单元列表中的单元将依
次被选择。在按住<Shift>键的同时按<Tab>键则选择上一个单元。
箭头键可以按方向选择当前单元的相邻单元。
<Space bar>键用于激活所选择的可视化组件单元。如果此单元包含有一个文本输出
变量,则将打开一个输入文本区域,其显示变量文本内容。按<Enter>键确认写入的值。
第8章 可视化组件
在线模式下,引用中的独立单元的处理与在被引用的可视化组件中的相应单元相同。
因此,与独立单元一样,可用鼠标或键盘进行输入和操作;所显示的工具提示文本随单元
而定。当处理单元列表时,例如:使用Tab键从一个输入单元跳转至下一个时,在跳转到
列表中的下一个单元之前,在该引用位于单元列表中的位置对引用中的所有独立单元的处
理。
8.2.4.12 库文件中的可视化组件
提示:项目中的可视化组件必须具有独立的名字。如果从库文件中调用一个可视
化组件,其名字在项目中已经使用了,就会产生问题。因为在程序中处理reference或显示
调用时,优先执行项目中的可视化组件,其次为被载入库中的可视化组件。
增加逻辑块的方法
右 键 选
operation
点击要加入
逻辑的管脚
CoDeSys 编程简介
上海派芬自动控制技术有限公司
2004-10-15
CoDeSys编程简介
目录
第一章 编程须知
一、控制器寄存器地址
二、程序结构
三、存储配置说明
四、变量说明
第二章 编程语言及数据类型
一、指令表 IL(Instruction List)
二、梯形图
三、结构化文本 ST(Structured Text)
四、功能模块图 FBD(Function Block Diagram)
五、顺序流程图 SFC(Sepuential Function Chart)
六、数据类型
1、在 CoDeSys 环境中,有以下标准数据类型:
2、自定义数据类型:
第三章 程序的创建
一、程序结构
二、调用库文件
三、程序实例
I/O 初始化程序
第四章 指令系统
一、操作块 Operator
1、IEC Operators(运算符) :
2、Bitstring Operators(逻辑操作):
3、Bit-shift Operators(移位操作):
4、Selection Operators(选择操作):
5、Comparison Operators(比较运算) :
6、Address Operators(地址):
7、Calling Operators(调用操作):
8、Type Conversion Functions(转型功能)
:
9、Numeric Functions(数据计算功能):
二、库文件 Library
1、Standard.lib 标准库
1.1.String function(字符串运算):
1.2.Trigger(触发保持):
1.3.Counter(计数器):
1.4.Timer(计时器):
2.AnalogFilter 模拟量标定库
2.1.单向标定模块
2.2.双向标定模块
2.3.平均值模块
2.4.RC 滤波模块
2.5.Cut 模块
2.6.HP 模块
2.7.Transfer 模块
2.8.Scale 模块
3.PWMControlvoltageAmpere -funktio 库:
3.1.Motion 模块
3.2.Motion Volt 模块
3.3.EndAttenuation 模块
3.4.Smooth 模块
3.5.MotionControl 模块
3.6.CheckFault 模块
3.7.ContolMotionErrors 模块
3.8.MotionControlVolt 模块
第五章 CANopen 编程
一、物理层
二、CANopen 使用标准的 CAN 桢,有 11 位标识符, 0-8 bytes 有效数据。
三、CAN 总线
四、主从关系
五、PDO 协议
六、SDO 协议
七、预定义连接设置
八、CANOPEN 在 EPEC 3G IEC 模块中的应用
(1)CANopen 的初始化。
(2)发送 PDOs 到 CANopen 总线
(3)从 CANOPEN 总线接收 PDO
第六章 硬件功能库的说明
一、Configure_PI 功能模块
二、Reset PI 功能模块
三、Params Store 功能模块
四、Set PWM frequency 功能模块
五、Temperatures 功能模块
六、SET_AI_TYPE 模块
CoDeSys 编程简介 2004-10-15 Page 2/50
第一章 编程须知
一、控制器寄存器地址
地址类型:
大小:
%IX0.0...IX0.15=%IW0,
%QX0.0...QX0.15=%QW0,
%IW0=%IB1+%IB2,
%QW0=%QB1+%QB2,
二、程序结构
源。POUs 包括主程序(PRG)、子程序(PRG)、功能块(FB)、函数(FUN)及语句。
※主程序必须命名为 PLC_PRG。
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 3/50
子程序(PRG)
子程序(PRG) 函数(FUN)
函数(FUN) 功能块(FB)
POUs PLC PRG
功能块(FB)
语句
※子程序可调用函数和功能块,但函数,功能块不能调用子程序,且子程序中的中间变量值
是可视的,但函数,功能块里的中间变量值是不可视的,且函数没有返回值。
三、存储配置说明
Code 代表程序代码
Global 代表全局变量
Memory 代表存储空间
Input 代表输入变量
Output 代表输出变量
※ 不同的控制器相应的地址和大小不同。
四、变量说明
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 4/50
在工程文件中,按适用范围有两种类型的变量,全局变量(Global)、局部变量(local)。全局
变量存在于程序的任何模区域,而局部变量只存在于子程序,函数和功能块中。全局变量的说明
resource
局部变量的说明在“程序体”上部的局部变量说明区。
变量说明有两种方式:一种是在变量区进行说明;另一种是自动说明。自动说明是在主菜单
里选择“Project”,“Option”,“Edit”,出现以下对话框:
选中“Autodeclaration”。这样,当编写程序,写到新的变量时,自动弹出对话框:
输入要定义的变量类型、地址、初始值。局部变量不用指定地址。
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 5/50
第二章 编程语言及数据类型
模块等。
IL 程序设计语言是用布尔助记符来描述程序的一种程序设计语言,它与计算机中的汇编语言
非常相似,采用布尔助记符来表示操作功能。
指令 描述
LD 读取操作数的值;
ST 把当前值存入操作数;
S 把布尔量操作数置 TRUE;
R 把布尔量操作数置 FALSE ;
AND 逻辑与;
OR 逻辑或;
NOT 逻辑非;
XOR 逻辑异或;
ADD 加;
SUB 减;
MUL 乘;
DIV 除;
MOD 求余数;
GT >;
GE >=;
EQ =;
NE <>;
LE <=;
LT <;
JMP 跳转至标志行;
CAL 调用子程序;
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 6/50
RET 返回主程序;
例:
mark: (*"mark"标志行*)
End: (*"end"标志行*)
二、梯形图
梯形图程序设计语言是用梯形图的图形符号来描述程序的一种程序设计语言。这种程序设计
语言采用因果关系来描述事件发生的条件和结果。每个梯级是一个因果关系。在梯级中,描述事
件发生的条件表示在左面,事件发生的结果表示在后面。它来源于继电器逻辑控制系统的描述。
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 7/50
梯形图程序设计语言的特点是:
与电气操作原理图相对应,具有直观性和对应性;主要应用于开关量逻辑控制目的的程
序。
与原有的继电器逻辑控制技术的不同点是,梯形图中的能流(Power FLow)不是实际意
义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控
制技术的有关概念区别对待。
与指令表程序设计语言有一一对应关系,便于相互的转换和程序的检查。
ST 程序设计语言是用结构化的描述语句来描述程序的一种程序设计语言。它是一种类似于高
级语言的程序设计语言。在大中型的可编程序控制器系统中,尤其是大量的模拟量运算和处理,
常采用 ST 语言来描述控制系统中各个变量之间较复杂的控制运算关系,完成所需的功能或操作。
ST 语言与BASIC语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法
及语句的种类等方面都进行了简化。
指令 描述
AND 逻辑与;
OR 逻辑或;
NOT 逻辑非;
XOR 逻辑异或;
+ 加;
- 减;
* 乘;
/ 除;
MOD 求余数;
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 8/50
函数名(参数表) 函数调用;
EXPT 幂函数;
<,>,<=,>= 比较;
例:
ST 语言除有一般算术运算、逻辑运算、表达式、调用子程序等指令外,还有一些结构化的语
句模块。
条件语句:
... (*功能块一*)
... (*功能块二*)
ELSE
END_IF (* 条件结束*)
功能模块图程序设计语言是采用功能模块来表示模块所具有的功能,不同的功能模块有不同
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 9/50
的功能。它有若干个输入端和输出端,通过软连接的方式,分别连接到所需的其它端子,完成所
需的控制运算或控制功能。功能模块可以分为不同的类型,在同一种类型中,也可能因功能参数
的不同而使功能或应用范围有所差别,例如,输入端的数量、输入信号的类型等的不同使它的使
用范围不同。由于采用软连接的方式进行功能模块之间及功能模块与外部端子的连接,因此控制
方案的更改、信号连接的替换等操作可很方便实现。功能模块图程序设计语言的特点是:
以功能模块为单位,从控制功能入手,使控制方案的分析和理解变得容易;
功能模块是用图形化的方法描述功能,它的直观性大大方便了设计人员的编程和组态,有较
好的易操作性;
对控制规模较大、控制关系较复录的系统,由于控制功能的关系可以较清楚地表达出来,因
此,编程和组态时间可以缩短,调试时间也能减少;
用户自己可以用不同的语言编写特定的功能模块,也可在用其他语言编程时插入功能模块。
例:
参数 FLASH 等五种功能。
SFC 语言是用顺序流程图来描述程序的一种程序设计语言。采用顺序流程图的描述,控制系
统被分为若干个子系统,从功能入手,使系统的操作具有明确的含义,便于设计人员和操作人员
设计思想的沟通,便于程序的分工设计和检查调试。
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 10/50
SFC 语言的特点是:
以功能为主线,条理清楚,便于对程序操作的理解和沟通。
对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间。
能较简单和清楚地描述并发系统和复杂系统的所有现象,并能对系统中存有的死锁、不安全
等反常现象进行分析和建模,在模型的基础上能直接编程 。
例:
当且仅当顺序条件为真时,程序才能往下执行。每一步功能块可用不同语言编写。同等条件的
功能块,可指定时间执行顺序。
六、数据类型
BOOL(布尔量)
BYTE(位)、WORD(字) 、DWORD(双字)
STRING(字符量)
REAL(实型数) 、LREAL(长实型数)
TIME(时间量)
数值取值范围:
Type 下限 上限 存储空间
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 11/50
2、自定义数据类型:
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 12/50
第三章 程序的创建
一、程序结构
一个 POU 由两部分组成:变量说明部分和程序体。例:
工程文件名
对象管理区 局部变量说明区
程序体
不要改动名字及类型,选择一种要编程的语言,创建第一个 POU。因为在任何一个工程文件中,
必须要有这一文件,一般地,把它作为主程序。
结束。
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 13/50
二、调用库文件
CoDeSys 有大量的库文件(*.lib)供用户编程时调用。当你要调用某一操作指令时,把包含
该指令的库文件调入当前工程文件的库中。操作如下:
库文件区
将光标移到库文件区,按右键,选择“Additional Library…Ins”,弹出对话框:
选中要用的文件即可。关于一些库文件的详细说明,请参看下一章。
三、程序实例
这里,以演示台的例子来说明程序建立的过程。该演示台用两个万向手柄控制八个灯泡,每
“Resources”按扭,弹出对话框:
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 14/50
块,然后编写其他程序模块。主程序模块如下:
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 15/50
I/O 初始化程序如下:
“PARAMS_S~RE”为参数固化模块。
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 16/50
第四章 指令系统
一、操作块 Operator
1、IEC Operators(运算符):
ADD (加法)
MUL (乘)
SUB (减)
DIV (除)
MOD (求余)
2、Bitstring Operators(逻辑操作):
AND (与)
OR (或)
XOR (异或)
NOT (非)
3、Bit-shift Operators(移位操作):
SHL (左移)
SHR (右移)
ROL (循环左移)
ROR (循环右移)
4、Selection Operators(选择操作):
IN1 G:=TRUE
OUT:=IN1
MAX (最大值)
MIN (最小值)
LIMIT (比较选择):
IN>MAX:OUT:=MAX;
IN<MIN: OUT:=MIN;
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 17/50
MUX (多路选择):
OUT:=MUX(IN0,…,INk,…INn);
OUT:=Ink;
5、Comparison Operators(比较运算):
GT (大于)
LT (小于)
LE (小于等于)
GE (大于等于)
EQ (等于)
NE (不等于)
6、Address Operators(地址):
ADR
7、Calling Operators(调用操作):
CAL
BOOL_~ (布尔值转型)(INT/STRING/TIME/~D/DATE/DT 等)
~_BOOL (转型成布尔值)(BYTE/INT/TIME/STRING 等)
INT_~_SINT/REAL (整数类型转换)
REAL_~/LREAL_~ (实数型/长实数型转型)(INT 等)
TIME_~/TIME_OF_DAY (时间转型)(STRING/DWORD/SINT 等)
DATE_~/DT_~ (日期转型)(BOOL/INT/BYTE/STRING 等)
STRING_~ (字符串转型)(BOOL/WORD/TIME 等)
TRUNC(取整)
9、Numeric Functions(数据计算功能):
ABS (取绝对值)
SQRT (开方)
LN (取自然对数)
LOG (取对数)
EXP (e 求幂)
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 18/50
SIN (正弦)
COS (余弦)
TAN (正切)
ASIN (反正弦)
ACOS (反余弦)
ATAN (反正切)
EXPT (求幂)
二、库文件 Library
1、Standard.lib 标准库
1.1.String function(字符串运算):
LEN (长度计算)
LEFT (左取位)
RIGHT (右取位)
MID (中间取位)
CONCAT (字符串叠加)
INSERT (插入)
DELETE (删除)
REPLACE (代替)
FIND (查找)
1.2.Trigger(触发保持):
R_TRIG (上升沿保持)
F_TRIG (下降沿保持)
1.3.Counter(计数器):
CTU (上升沿计数)
CTD (下降沿计数)
CTUD (上升沿、下降沿计数)
1.4.Timer(计时器):
TP (触发计时器)
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 19/50
TON (高电平计时器
TOF (低电平计时器)
RTC (运行时钟计时器)
2.AnalogFilter 模拟量标定库
功能描述:对模拟量输入信号进行标定,分为单向及双向标定。
2.1.单向标定模块
单向标定模块用于把输入模拟量进行预处理,把输出量范围调整到 0~65535。
参数说明:
1)AnalogInput 输入量
数据类型: UINT
来自于传感器
2)OutPutEnable 使能开关
数据类型: BOOL
3)PAR_Full
数据类型: UINT
取值范围:0~255
4) PAR_Zero
数据类型: INT
取值范围:0~255
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 20/50
此参数用于调整零位,使输出为零。
5) PAR_DeadBand
数据类型: UINT
取值范围:0~255
设置死区,当输入进入参数设置范围,输出为零。
6)PAR_Progression
数据类型: SINT
取值范围:-100~100
设置输出缓冲曲线度,如图:
0.8 -100%
y( x )
-50%
y1( x ) 0.6 0%
y2( x , progr )
0.2 100%
0
0 0.2 0.4 0.6 0.8 1
x
7) PAR_MinErrorDifference
数据类型: UINT
取值范围:0~100
8)Output 输出
数据类型: UINT
输出值范围为 0~65535
9) ErrorHigh 高位出错开关
数据类型: BOOL
零。
10)ErrorLow 低位出错开关
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 21/50
数据类型: BOOL
2.2.双向标定模块
双向标定模块用于把输入模拟量进行预处理,把输出量范围调整到-32767~32767。
参数说明:
1) AnalogInput(同上)
2) DI_JoystickDirSwitchPOS 正向微动开关
数据类型: BOOL
3) DI_JoystickDirSwitchNEG 负向微动开关
数据类型: BOOL
4)OutputEnable(同上)
5)PAR_NegFull
数据类型: UINT
取值范围:0~255
此参数用于调整负向最大输出值,使输出接近-32767,大于-32767。
6)PAR_PosFull
数据类型: UINT
取值范围:0~255
7) PAR_Zero
数据类型: INT
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 22/50
取值范围:0~255
调整零位,当传感器在中位时,使输出为零。
8)PAR_DeadBand(同 2.1)
9) PAR_NegProgression(同 2.1)
10)PAR_PosProgression(同 2.1)
11)PAR_MinErrorDifference(同 2.1)
12)PAR_Faul~nDelay 过载延时
数据类型: UINT
取值范围:0~255
13) PAR_DirSwitchDiagnosticNotUse
数据类型: BOOL
14) Output 输出
数据类型: INT
输出数值范围-32767~32767
15)ErrorHigh(同上)
数据类型: BOOL
置零。
16)ErrorLow(同上)
数据类型: BOOL
置零。
17)JoystickDirSwitchPOSMissing
数据类型: BOOL
正向微动开关出错时,值为 TRUE。
18)JoystickDirSwitchNEGMissing
数据类型: BOOL
负向微动开关出错时,值为 TRUE。
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 23/50
19)JoystickDirSwitchPOSAndNEGOn
数据类型: BOOL
2.3.平均值模块
参数说明:
1)Input
数据类型: UINT
2)Reset
数据类型: BOOL
值为 TRUE 时不进行平均值运算。
3)PAR_Length
数据类型: UINT
4)Output
数据类型: UINT
2.4.RC 滤波模块
滤波公式如下:
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 24/50
1
y( z ) x ( z ) . 0.6 y z . 0.4
RC Filter
1.2
0.8
input/response
0.6 系列1
系列2
0.4
0.2
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
n
1)Input
数据类型: UINT
2)Output
数据类型: UINT
2.5.Cut 模块
模块的功能是把输入值进行预处理,调整斜率,消除两端非线性影响。
70000
60000
50000
r
e
s 40000
p
o in
n 30000 out
s
e 20000
10000
0
1 43 85 12 16 21 25 2 9 33 37 42 46 50 54 58 63
7 9 1 3 5 7 9 1 3 5 7 9 1
input
1) Input
数据类型: UINT
2)PAR_InputLowLimit
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 25/50
数据类型: UINT
当输入值小于 256*PAR_InputLowLimit)时,输出为零。
3)PAR_InputHighLimit
数据类型: UINT
4)Output
数据类型: UINT
2.6.HP 模块
HP 模块用于设定死区。
60000
50000
40000
response
in
30000 out
20000
10000
0
44
87
130
173
216
259
302
345
388
431
474
517
560
603
646
1
input
1)Input
数据类型: UINT
2)PAR_CutLimit 调整参数
数据类型: UINT
3)Output
数据类型: UINT
2.7.Transfer 模块
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 26/50
x 0 , 0.001 .. 1 progr 50
3
y( x ) x
y1( x ) x
progr y1( x ) . ( 100 progr )
y2( x , progr ) y ( x ).
100 100
0.8 -100%
y( x )
-50% 0%
y1( x ) 0.6
y2( x , progr )
0.2 100%
0
0 0.2 0.4 0.6 0.8 1
x
1)Input
数据类型: UINT
2)Zero
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 27/50
数据类型: BOOL
3)Full
数据类型: BOOL
4)OutputEnable
数据类型: BOOL
5)PAR_Progression 曲线度设置参数
数据类型: INT
6)Output
数据类型: UINT
2.8.Scale 模块
65535
PAR_PosFull*256
Output Input
PAR_Zero*256
PAR_NegFull*256
1)Input
数据类型: UINT
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 28/50
2)PAR_Zero
数据类型: INT
3)PAR_PosFull
数据类型: UINT
4) PAR_NegFull
数据类型: UINT
5)Output
数据类型: UINT
6)PosValue
数据类型: BOOL
PAR_Zero * 256 > Input 值,值为 TRUE;PAR_Zero * 256 < Input 值,值为 FALSE。
3.PWMControlvoltageAmpere -funktio 库:
3.1.Motion 模块
1)Control 控制信号
数据类型: INT
2) Feedback
数据类型: UINT;
反馈电流信号;
取值范围: 0 ~65535。
3)DI_LimitSwitchUp
数据类型: BOOL;
4)DI_LimitSwitchDown
数据类型: BOOL;
5)Enable
数据类型: BOOL;
6)PAR_DirUpAccel
数据类型: USINT;
正向缓冲加速参数;
取值范围:1 ~255。
7)PAR_DirUpDecel
数据类型: USINT
正向缓冲减速参数;
取值范围:1 ~255。
8)PAR_DirDownAccel
数据类型: USINT
逆向缓冲加速参数;
取值范围:1 ~255。
9)PAR_DirDownDecel
数据类型: USINT
逆向缓冲减速参数;
取值范围:1 ~255。
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 30/50
10)PAR_DirUpMaxCurrent
数据类型: UINT
正向最大电流;
11)PAR_DirUpMinCurrent
正向最小电流;
12)PAR_DirDownMinCurrent
数据类型: UINT
逆向最小电流;
13)PAR_DirDownMaxCurrent
数据类型: UINT
逆向最大电流;
14)PAR_EndattenuationValue
数据类型: UINT
限位参数;
取值范围: 0 ~100 %
15)PAR_CoilResistance
数据类型: USINT
比例阀阻抗;
取值范围: 0 ~255 Ω
16)PAR_SupplyVoltage
数据类型: USINT
供电电压;
取值范围: 0 ~255 V
17)PAR_Faul~nDelay
数据类型: UINT
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 31/50
出现错误延迟时间;
取值范围: 0 ~ 65535 ms
18)PAR_PercentDifferenceInImpedance
数据类型: USINT
容错范围
取值范围: 0 ~ 100 %
19)DO_SupplyVoltage
数据类型: BOOL
20)PWM_Up
数据类型: UINT
正向输出;
取值范围: 0 ~ 32767
21)PWM_Down
数据类型: UINT
逆向输出;
取值范围: 0 ~ 32767
22)DO_DirUpValveImpedanceTooHigh
数据类型: BOOL
(PAR_PercentDifferenceInImpedance*Impedance)/100,
23)DO_DirUpValveImpedanceTooLow
数据类型: BOOL
(PAR_PercentDifferenceInImpedance*Impedance)/100,
24)DO_DirDownValveImpedanceTooHigh
数据类型: BOOL
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 32/50
逆向时,当 impedance 高于
(PAR_PercentDifferenceInImpedance*Impedance)/100,
25) DO_DirDownValveImpedanceTooLow
数据类型: BOOL
(PAR_PercentDifferenceInImpedance*Impedance)/100,
Motion 块有以下子块:
3.2.Motion Volt 模块
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 33/50
1) Control
数据类型: INT
控制信号;
2)DI_LimitSwitchUp
数据类型: BOOL
参见 3.1。
3) DI_LimitSwitchDown
数据类型: BOOL
参见 3.1。
4) Enable
数据类型: BOOL
参见 3.1。
5) PAR_DirUpAccel
数据类型: USINT
参见 3.1;
取值范围: 1 ~ 255。
6)PAR_DirUpDecel
数据类型: USINT
参见 3.1;
取值范围: 1 ~ 255
7) PAR_DirDownAccel
数据类型: USINT
参见 3.1;
取值范围: 1 ~ 255
8) PAR_DirDownDecel
数据类型: USINT
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 34/50
参见 3.1;
取值范围: 1 ~ 255
9)PAR_DirUpMax
数据类型: UINT
取值范围: 0 ~ 100 %
10)PAR_DirUpMin
数据类型: UINT
取值范围: 0 ~ 100 %
11)PAR_DirDownMin
数据类型: UINT
取值范围: 0 ~ 100 %
12)PAR_DirDownMax
数据类型: UINT
取值范围: 0 ~ 100 %
13)PAR_EndattenuationValue
数据类型: UINT
参见 3.1;
取值范围: 0 ~ 100 %
14)DO_SupplyVoltage
数据类型: BOOL
参见 3.1;
15)PWM_Out
数据类型: UINT
PWM 输出;
取值范围: 0 ~ 32767
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 35/50
3.3.EndAttenuation 模块
参数说明参见 3.1;
3.4.Smooth 模块
参数说明参见 3.1;
3.5.MotionControl 模块
参数说明参见 3.1;
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 36/50
3.6.CheckFault 模块
参数说明参见 3.1;
3.7.ContolMotionErrors 模块
参数说明参见 3.1;
3.8.MotionControlVolt 模块
参数说明参见 3.2;
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 37/50
第五章 CANopen 编程
一、物理层
ID LEN D0 D1 D2 D3 D4 D5 D6 D7
11 bit 8 bit 8 bit 8 bit 8 bit 8 bit 8 bit 8 bit 8 bit 8 bit
三、CAN 总线
串行数据传输
CAN2.0B
CAN
CAN2.0A
11 位和 29 位两种标识符。
四、主从关系
Master Slave
node node
CANopen
Slave Slave
node node
CANopen 主接点的作用为:
激活网络;
停止网络;
隔离错误接点
五、PDO 协议
PDO 所传输的是工作数据。
Time PDO
PDO
接收
PDO
PDO
PDO
接收
发送
PDO
PDO
接收
要从 CAN 总线读取信息。通讯方式为一点对多点。
六、SDO 协议
SDO 所传输的是服务数据。
Time
SDO request
SDO SDO
SDO response
Client Server
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 39/50
式为点对点。
七、预定义连接设置
的初始化代码,所有数据必须用输入输出映象区进行分配。
(1)CANopen 的初始化。
到总线,也可以从总线上接收其他接点的数据。
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 40/50
1. FUNCTION_BLOCK CANopen_initialization
2. VAR_INPUT
3. END_VAR
4. VAR_OUTPUT
5. END_VAR
6. VAR
7.booting:BOOL:=TRUE;
8. END_VAR
9.
10.(* CAN initialization *)
11. IF(booting) THEN
12.CANOPEN_START_INIT(ENABLE:=TRUE);
13.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE, PDO_TYPE_SELECT:=FALSE, ID:=4);
14.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE, PDO_TYPE_SELECT:=FALSE, ID:=10);
15.CANOPEN_END_INIT(ENABLE:=TRUE);
16.booting:=FALSE;
17.END_IF
送数据到总线,也可以从总线上接收其他接点的数据。
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 41/50
1. FUNCTION_BLOCK CANopen_initialization
2. VAR_INPUT
3. END_VAR
4. VAR_OUTPUT
5. END_VAR
6. VAR
7.booting:BOOL:=TRUE;
8. END_VAR
9.
10. (* CAN initialization *)
11. IF(booting) THEN
12.CANOPEN_START_INIT(ENABLE:=TRUE);
13.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE,PDO_TYPE_SELECT:=FALSE,ID:=4);
14.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE,PDO_TYPE_SELECT:=FALSE, ID:=7);
15.CANOPEN_END_INIT(ENABLE:=TRUE);
16.booting:=FALSE;
17. END_IF
据到总线,也可以从总线上接收其他接点的数据。
1. FUNCTION_BLOCK CANopen_initialization
2. VAR_INPUT
3. END_VAR
4. VAR_OUTPUT
5. END_VAR
6. VAR
7.booting:BOOL:=TRUE;
8.Count: USINT;
9. END_VAR
10. (* CAN initialization *)
11. IF(booting) THEN
12.CANOPEN_START_INIT(ENABLE:=TRUE);
13.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE,PDO_TYPE_SELECT:=FALSE, ID:=7);
14.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE,PDO_TYPE_SELECT:=FALSE, ID:=10);
15.CANOPEN_END_INIT(ENABLE:=TRUE);
16.booting:=FALSE;
17. END_IF
18.(*Master send start message *)
19.IF(Count>=101)THEN
20.Count:=1;
21.END_IF
22.State();
23.IF((Count=100 AND State.OPERATIONAL )OR (Count=0))THEN
24.CANOPEN_START_NODES(TRUE);
25.END_IF
26.Count:=Count+1;
段时间刷新一次。这里仅是一个示例,可以编写不同的功能代码。
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 42/50
映象地址:
%QW200
%QW201 PDO1 (tx)
%QW202
%QW203
%QW204
%QW205 PDO2 (tx)
%QW206
%QW207
%QW208
%QW209
PDO3 (tx)
%QW210
%QW211
%QW212
%QW213
PDO4 (tx)
%QW214
%QW215
例:
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 43/50
1. FUNCTION_BLOCK Example
2. VAR_INPUT
3. END_VAR
4. VAR_OUTPUT
5. END_VAR
6. VAR
7. (* PDO 1 *)
8. CANO_EngineRPM AT %QW200: UINT;
9. CANO_EngineTemp AT %QW201: UINT;
10. CANO_EngineOilPres AT %QW202 :UINT;
11. CANO_EngineVoltage AT %QW203: UINT;
12.
13. (* PDO 2 *)
14. CANO_Potentiometer AT %QW204:UINT;
15. CANO_Sensor1 AT %QB410:BYTE;
16. CANO_Sensor2 AT %QB411:BYTE;
17. CANO_Switch1 AT %QX206.0:BOOL;
18. CANO_Switch2 AT %QX206.1:BOOL;
19. CANO_Switch3 AT %QX206.2:BOOL;
20.END_VAR
sensor2 is in D3 1h = 1
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 44/50
送 PDOs 到 CANopen 总线
映象地址
Mapping examples:
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 45/50
接收程序输入映象地址分配如下:
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 46/50
第六章 硬件功能库的说明
在 HW 库里,包含一些与硬件功能有关的模块,可通过这些模块对一些参数进行设置。例如:
设置 PWM 信号的频率等。
一、Configure_PI 功能模块
置。
130 0 120
131 1 121
132 2 122
133 3 123
134 4 124
135 5 125
136 6 126
137 7 127
157 15 7 167
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 47/50
Configure PI 的输入:
1)A
数据类型: UINT
功能描述: 连接到脉冲输入信号 A.
数据范围: 0 to 65535
2)B
数据类型: UINT
功能描述: 连接到脉冲输入信号 B.
数据范围: 0 to 65535
Configure PI 输出:
1)Memory outputs
数据类型: UINT
数据范围: 0 to 65535
二、Reset PI 功能模块
号。
计数值),则 CH 的数值如下公式所示:
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 48/50
率)/10。
100 to 103 0 to 3
104 to 107 4 to 7
108 to 111 8 to 11
116 to 119 16 to 19
120 to 123 20 to 23
112 12
113 13
114 14
115 15
1)Freq
数据类型: USINT
描述: (实际频率)/10
数值范围: 4 to 255
2)Ch
数据类型: USINT
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 49/50
数值范围: 0 to 23
五、Temperatures 功能模块
Temperature 功能模块用于读取控制器内部温度,
(AD_TEMP) ,可通过下述公式计算温度值。还有一路实际的温度值输出(TEMP) 。
Examble:
AD_TEMP = 8470
Temperatures 输出
1)Temp1
数据类型: BOOL
功能描述:当温度超过 74 °C 时为 TRUE。
2)Temp2
数据类型: BOOL
3)AD_Temp
数据类型: UINT
功能描述: 模拟信号输出,可通过上面公式计算实际温度值;
数值范围: - 40 to + 125 °C
4)Temp
数据类型: SINT
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 50/50
功能描述: 输出的实际温度值
数值范围: - 40 to + 125 °C
六、SET_AI_TYPE 模块
道为电流输入。
Value 设置不同的数值,可设置相对应的针脚为电流输入(系统默认为电压输入)。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
XM3.3 I I I I I I I I I I I I I I I I
XM3.5 I I I I I I I I I I I I I I I I
XM3.7 I I I I I I I I I I I I I I I I
XM3.10 I I I I I I I I I I I I I I I I
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
XM1.12 I I I I I I I I I I I I I I I I
XM2.12 I I I I I I I I I I I I I I I I
XM3.5 I I I I I I I I I I I I I I I I
XM3.6 I I I I I I I I I I I I I I I I
XM3.7 I I I I I I I I I I I I I I I I
XM3.8 I I I I I I I I I I I I I I I I
XM3.13 I I I I I I I I I I I I I I I I
XM3.14 I I I I I I I I I I I I I I I I
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com