Professional Documents
Culture Documents
PLC编程
跟
CoDeSys2.3 版本
版权所有 1994、1997、1999、2001、2002、2003、2004、2005、2006、
2007、2010by3S-SmartSoftwareSolutionsGmbH 保留所有权利。
我们竭尽全力确保本文档的正确性和完整性。但是,由于不可能生成绝对无错误的文本,请
随时向我们发送您的提示和建议以改进它。
商标
Intel 是 Intel Corporation 的 注 册 商 标 , 80286 、 80386 、 80486 、 Pentium 是 Intel
Corporation 的商标。
Microsoft、MS 和 MS-DOS 是 MicrosoftCorporation 的注册商标,Windows 和
Intellisense 是 Corporation 的商标。
发行人
3S - Smart Software Solutions GmbH
Memminger Straße 151 D-87439
Kempten 电话:+4983154031-0
传 真 +49 831 5 40 31 – 50
最后更新日期28.10.2010
内容
1 A 简介 1-1
1.1 什么是CoDeSys...............................................................................................1-1
1.2 CoDeSys 函数概述.......................................................................1-1
1.3 CoDeSys 用户文档概述...........................................1-3
3 我们写一个小程序 3-1
3.1 控 制 交 通 信 号 单 元 ... ......................................................................3-1
3.2 可 视 化 交 通 信 号 单 元 ... ......................................................................3-11
4 各个组件 4-1
4.1 主窗口..............................................................................................4-1
4.2 项 目 选 项 ... ...............................................................................................4-3
4.3 管理项目.............................................................................................4-22
4.4 管理项目中的对象...........................................................................4-53
4.5 一般编辑功能..................................................................................4-61
4.6 一般在线功能..................................................................................4-67
4.7 窗 口 设 置 ... ................................................................................................4-83
4.8 在 您 需 要 时 提 供 帮 助 ... ....................................................................................4-83
CoDeSysV2.3版本 i
目录
5.4.5 连续功能图编辑器(CFC)....................................................5-49
6 资源 6-1
6.1 资源概述..............................................................................6-1
6.2 全局变量、变量配置、文档框架.............................6-2
6.2.1 全局变量.................................................................................................6-2
6.2.2 变量配置........................................................................................6-6
6.2.3 文档框架...............................................................................................6-7
6.3 报警配置...........................................................................................6-8
6.3.1 概述............................................................................................................6-8
6.3.2 警报的一般信息,术语...............................................................6-9
6.3.3 报警类别.....................................................................................................6-10
6.3.4 报警组......................................................................................................6-13
6.3.5 报警保存......................................................................................................6-15
6.3.6“附加”菜单:设置.......................................................................................6-16
6.4 库管理器.................................................................................................6-16
6.5 日志.....................................................................................................................6-18
6.6PLC配置..............................................................................................6-20
6.6.1 概述............................................................................................................6-20
6.6.2 在PLC配置中工作......................................................................6-21
6.6.3PLC配置中的常规设置........................................................6-23
6.6.4 自定义特定参数对话框......................................................................6-24
6.6.5I/O模块的配置..........................................................................6-25
6.6.6 通道................................................................................的配置6-28
6.6.7Profibus模块的配置.....................................................................6-29
6.6.8CANopen模块的配置...................................................................6-36
6.6.9CanDevice(CANopen从站)的配置...............................................6-41
6.6.10DeviceNet模块的配置..................................................................6-45
6.6.11 在线模式下的PLC配置.....................................................................6-49
6.6.12PLC的硬件扫描/状态/诊断信息................................6-50
6.7 任务配置.............................................................................................6-51
6.7.1 概述............................................................................................................6-51
6.7.2 在任务配置中工作.....................................................................6-52
6.7.3 系统事件...................................................................................................6-55
6.7.4 在线模式下的任务配置....................................................................6-55
6.8 手表和食谱管理器.............................................................................6-57
6.8.1 概述............................................................................................................6-57
6.8.2 创建监视列表、配方...........................................................................6-59
6.8.3 在线模式下的观察和食谱管理器..............................................6-63
6.9 采样轨迹...........................................................................................6-64
6.9.1 概述和配置...............................................................................6-64
6.9.2 生成跟踪采样............................................................................6-66
6.9.3 查看采样跟踪..........................................................................6-67
6.9.4'Extras''保存跟踪值'.................................................................................6-69
6.9.5'Extras''外部跟踪配置'..............................................................6-69
6.10 工作区.........................................................................................................6-70
6.11 参数管理器...........................................................................................6-70
6.11.1 概述、激活...........................................................................................6-71
6.11.2 参数管理器编辑器,概述.........................................................6-72
6.11.3 参数列表类型和属性..................................................................6-73
6.11.4 管理参数列表...................................................................................6-75
6.11.5 编辑参数列表........................................................................................6-76
6.11.6 在线模式下的参数管理器..................................................................6-78
6.11.7 参数列表的导出/导入.......................................................................6-79
第二 CoDeSysV2.3版本
目录
6.12 目标设置...................................................................................................6-79
6.13PLC浏览器..............................................................................................6-80
6.13.1 关于PLC浏览器操作的一般说明.......................................6-80
6.13.2PLC浏览器中的命令条目.................................................................6-81
6.13.3 在PLC浏览器中输入命令时使用宏...............................6-83
6.13.4 其他PLC浏览器选项............................................................................6-83
6.14 工具..................................................................................................................6-84
6.14.1 可用工具快捷方式的属性(对象属性)................................6-84
6.14.2 管理工具快捷方式...................................................................................6-87
6.14.3 关于工具的常 问题................................................................6-88
7 弹性网卡 7-1
7.1.1 什么是弹性网卡........................................................................................................7-1
7.1.2 使用ENI项目数据库的前提条件..................................7-1
7.1.3 在 CoDeSys 中使用 ENI 项目数据库.........................................7-2
7.1.4 与项目数据库有关的对象类别..........................................7-2
8 DDE 接口 8-1
8.1 CoDeSys编程系统的DDE接口........................................8-1
8.2 DDE 与 GatewayDDE 服务器的通信...........................................8-2
10 附录 10-1
10.12
变量。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10-27
10.13
地址。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10-29
10.14
功能。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
10-30
CoDeSysV2.3版本 第三
目录
10.17.2 双稳态功能块....................................................................................10-42
10.17.3 触发器................................................................................................................10-44
10.17.4 反 ... ...........................................................................................................10-45
10.17.5 计时器..................................................................................................................10-47
10.18 Util.lib 库...............................................................................................10-50
10.18.1BCD转换................................................................................................10-50
10.18.2 位/字节函数.............................................................................................10-50
10.18.3 数学辅助函数.........................................................................10-51
10.18.4 控制器..........................................................................................................10-54
10.18.5 信号发生器..............................................................................................10-57
10.18.6 功能操纵器........................................................................................10-59
10.18.7 模拟值处理...................................................................................10-60
10.19 AnalyzationNew.lib 库...........................................................................10-61
10.20 CoDeSys 系统库................................................................................10-62
四 CoDeSysV2.3版本
目录
10.39 功能、功能块、程序(POU)的标识符.................................10-105
10.40 可视化标识符...............................................................................10-106
附录 K:编译器错误和警告10-107
10.41 警告............................................................................................................10-107
10.42 错误.................................................................................................................10-113
11 指数 命令行界面
CoDeSysV2.3版本 v
目录
六 CoDeSysV2.3版本
1 -CoDeSys 简介
1 CoDeSys 简介
1.1 什么是CoDeSys
CoDeSys是 PLC 的完整开发环境。(CoDeSys代表受控开发系统)。
CoDeSys为PLC程序员提供了一种强大的IEC语言的简单方法。编辑器和调试功能的使用基于高级编程语
言(如 VisualC++)的成熟开发程序环境。
对象管理器包含项目中所有对象的列表。
如何设置我的项目?
首先,您应该配置PLC,以检查项目中使用的地址的准确性。
然后,您可以创建解决问题所需的 POU。
现在,您可以使用所需的语言对所需的 POU 进行编程。
编程完成后,您可以编译项目并删除任何错误(如果有错误)。
如何测试我的项目?
消除所有错误后,激活模拟,登录到模拟的 PLC 并在 PLC 中“加载”您的项目。现在您处于在线模式。
现在打开带有PLC 配置的窗口并测试您的项目是否正确。为此,请手动输入输入变量并观察输出是否符
合预期。您还可以观察 POU 中局部变量的值序列。在监视和配方管理器中
您可以配置要检查其值的数据记录。
调试
如果出现编程错误,您可以设置断点。如果进程在此类断点处停止,则可以在此时间点检查所有项目变量
的值。通过按顺序(单步)工作,您可以检查程序的逻辑正确性。
附加在线功能
进一步的调试功能:
您可以将 程序变量以及输入和输出设置为特定值。您可以使用流控制来检
CoDeSysV2.3版本 1-1
CoDeSys 功能概述...
查哪些程序行已运行。
A日志按时间顺序记录联机会话期间的操作、用户操作和内部进程。
如果在目标设置中激活,采样跟踪允许您在较 时间内跟踪和显示变量的实际过程。
此外,PLC浏览器是目标特定功能,它可以用于从PLC请求某些信息。
一旦项目被设置和测试,就可以将其加载到硬件上并进行测试。将提供与模拟相同的在线功能。
其他 CoDeSys 功能
整个项目可以随时记录或导出到文本文件。
出于通信目的,CoDeSys 具有符号接口和 DDE 接口。网关服务器以及 OPC 服务器和 DDE 服务器是
CoDeSys 标准安装数据包的组件。
ENI:“工程接口”可用于通过ENI服务器访问任何所需的源代码管理程序,该服务器作为独立进程运行。
CoDeSysPOU 和编译文件可以归档到该数据库中,也可以由 ENI 服务器的其他客户端访问。这允许在
CoDeSys项目工作期间进行多用户操作,它为CoDeSys以外的不同工具提供了一个通用数据池,并使版
本管理成为可能。
工具:此功能还依赖于目标,并允许在CoDeSys项目中启动特定于目标的可执行文件。除此之外,还可
以定义文件,这些文件应该加载到控制器中。与外部工具的连接可以在目标文件中预定义,或/并插入到
项目资源树中。
1-2 CoDeSysV2.3版本
1 -CoDeSys 简介
1.3CoDeSys 用户文档概述
模块 文档内容 文件名
ENIAdmin、ENIControl 和 ENIExplorer:请
参阅参考在线帮助。
CoDeSysV2.3版本 1-3
CoDeSys 用户文档概述
1-4 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
2CoDeSys 中的内容是什么
2.1 项目组件...
项目
项目包含 PLC 程序中的所有对象。项目保存在以项目命名的文件中。项目中包括以下对象:
POU(程序组织单位)、数据类型、可视化、资源和库。
FOR(组织单位计划)
函数、功能块和程序是 POU,可以通过操作进行补充。
每个 POU 由一个声明部分和一个正文组成。正文是用IEC编程语言之一编写的,包括IL,ST,SFC,
FBD,LD或CFC。
CoDeSys支持所有 IEC 标准 POU。如果要在项目中使用这些 POU,则必须在项目中包含库
standard.lib。
POU 可以调用其他 POU。但是,不允许递归。
功能
函数是一个 POU,它在处理时只生成一个数据元素(可以由多个元素组成,例如字段或结构),并且在
文本语言中可以作为表达式中的运算符进行调用。
声明函数时,不要忘记该函数必须接收类型。这意味着,在函数名称之后,必须输入冒号,后跟类型。关
于附录J:关于命名的建议。
A 确的函数声明可能类似于以下示例:
函数 Fct:INT
此外,必须将结果分配给函数。这意味着函数名称用作输出变量。
CoDeSysV2.3版本 2-1
项目组件...
IL 中的函数示例
调用函数:
ST 中函数的调用可以在表达式中显示为操作数。
在 SFC 中,函数调用只能在步骤或转换中发生。
注意:CoDeSys 允许在函数中使用全局变量。这有意偏离了 IEC61131-3 标准,该标准规定只有函数的返回值 才会
被输入参数修改。因此,函数和程序之间的区别只是函数只返回一个返回值,并且它们的参数和返回值通过堆栈进行
处理。
调用函数的示例。
在伊利诺伊州:
LD 7 Fct
2,4ST结
果
在ST中:
结果:=Fct(7, 2, 4);
在 FBD 中:
注意: 以下检查函数名称保留用于描述的用法:
- 如果你在项目中定义了一个名为CheckBounds的函数,你可以用它来检查项目中的范围溢出!函数的
名称已定义,并且可能仅具有此标识符。有关进一步的说明,请参 第 10.1 章算术运算符,DIV。
- 如果您在项目中定义了名为CheckDivByte、CheckDivWord、CheckDivDWord 的 函 数 , 则 resp.
CheckDivReal,如果您使用运算符 DIV,您可以使用它们来检查除数的值,例如避免除以 0。
-如果定义名称为CheckRangeSigned和CheckRangeUnsigned的函数,则可以拦截使用子范围类型声
明的变量的范围(参 第 10.16 章“数据类型”)。
2-2 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
功能块
功能块是在此过程中提供一个或多个值的 POU。与函数相反,功能块不提供返回值。
可以创建功能块的复制品或实例(副本)。
IL 中的功能块示例
IL 中具有两个输入变量和两个输出变量的功能块的示例。一个输出是两个输入的乘积,另一个是相等的比较:
功能块实例
可以创建功能块的复制品或实例(副本)。
每个实例都拥有自己的标识符(实例名称)和一个包含其输入、输出和内部变量的数据结构。实例在本地
或全局声明为变量,而功能块的名称则表示为标识符的类型。关于附录 J:附录 J:关于命名的建议。
访问输入变量的示例
fbinst1:fb;
END_VAR LD 17
END_PROGRAM
CoDeSysV2.3版本 2-3
项目组件...
功能块和程序的声明部分可以包含实例声明。函数中不允许使用实例声明。
对功能块实例的访问仅限于声明该实例的 POU,除非它是全局声明的。
功能块实例的实例名称可以用作函数或功能块的输入。
注意:处理一个功能块后,所有值都会保留,直到下一个功能块被处理。因此,具有相同参数的功能块调用并不总是
返回相同的输出值!
注意:如果功能块变量中至少有一个是保留变量,则整个实例将存储在保留区域中。
调用功能块
通过设置功能块的实例并使用以下语法指定所需的变量,可以从另一个 POU 访问功能块的输入和输出变
量:
<实例名称>.<变量名称>
在调用时分配参数:
如果要在调用功能块时设置输入和/或输出参数,则可以在文本语言 IL 和 ST 中执行此操作,方法是在括
号中将参数赋值给功能块实例名称之后的参数(对于输入参数,此分配使用“:=”进行,就像在声明位置
初始化变量一样,对于输出参数,将使用“=>”)。
例:
FBINST 是功能块类型的局部变量,它包含输入变量 xx 和输出变量 yy。当通过输入助手将 FBINST 插入
ST 程序时,调用将显示如下: FBINST1(xx:= , yy=> );
调用时的 InOutVariables:
请注意,功能块的 InOutVariables (VAR_IN_OUT)是作为指针移交的。因此,在调用功能块时,不能
将常量分配给VAR_IN_OUTs并且没有从外部对它们的读取或写入访问。
END_VAR
iVar1:=2;fuboinst(iInOut1:=iVar1);
在这种情况下不允许:“fuboinst(iInOut1:=2);” 或“fuboinst.iInOut1:=2;”
这是在 IL 中调用功能块实例的方式:
2-4 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
在 SFC 中,功能块调用只能分步进行。
程序
程序是一个 POU,它在操作过程中返回多个值。在整个项目中,项目在全球范围内得到认可。从上次运
行程序到下一次运行,所有值都将保留。
可以调用程序。不允许在函数中调用程序。也没有程序的实例。
如果 POU 调用一个程序,并且因此更改了该程序的值,则下次调用该程序时将保留这些更改,即使该程
序已从另一个程序中调用
因此。
这与调用功能块不同。在那里,只有功能块的给定实例中的值才会被更改。
CoDeSysV2.3版本 2-5
项目组件...
因此,这些更改仅在调用同一实例时才起作用。
程序示例
程序调用示例:
在伊利诺伊州:
CAL PRG 示 例 2 LD PRGexample2.out_var
在 ST 中:
PRG示例2;尔格:=PRGexample2.out_var;或分配参数(输入助手“带参数”, 上文): PRGexample2(
in_var:=33, out_var=>erg );
在 FBD 中:
PLC_PRG可能的调用序列示例:
请参阅本章顶部图片中所示的程序 PRGexample:
LD0STPRGexample.PAR(*PAR 的默认设置为 0*) CALIL 调用(
*IL 调用中的 ERG 结果为 1*) CALST 调用(*ST 调用中的 ERG 结果
为 2*) CALFBD 调用(FBD 调用中的 *ERG 结果为 3*)
2-6 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
PLC_PRG
PLC_PRG是一个特殊的预定义 POU。每个项目都必须包含此特殊程序。此 POU 在每个控制周期中只调
用一次。
创建新项目后首次使用“项目”“对象添加”命令时,POU 对话框中的默认条目将是名为 PLC_PRG 的程
序类型的 POU。您不应更改此默认设置!
如果已定义任务,则项目可能不包含任何PLC_PRG,因为在这种情况下,过程顺序取决于任务分配。
注意:请勿删除或重命名POUPLC_PRG(假设您未使用任务配置)!PLC_PRG通常是单个任务程序中的主程序。
行动
可以定义操作并将其分配给功能块和程序(“项目”、“添加操作”)。该操作代表了进一步的实现,可以
完全用另一种语言创建为“正常”实现。每个操作都有一个名称。
操作处理它所属的功能块或程序中的数据。该操作使用与“正常”实现相同的输入/输出变量和局部变量。
功能块的操作示例
调用操作:
使用 <Program_name>.<Action_name> 或 <Instance_name>.<Action_name> 调用操作。注意 FBD 中
的符号( 以下示例)!如果需要在自己的块中调用操作,则只需在文本编辑器中使用操作的名称,并以
图形形式调用功能块,而不使用实例信息。
所有示例的声明:
程序PLC_PRG
VARInst :计数器;
END_VAR
在另一个 POU 中调用“重置”,该 POU 在 IL 中编程:
CAL Inst.Reset ( In : = FALSE ) LD Inst.out
STERG(圣ERG)
CoDeSysV2.3版本 2-7
项目组件...
注意:动作在顺序功能图中的块中起着重要作用,请参阅顺序功能图。IEC标准不识别顺序功能图操作以外的操作。
资源
您需要用于配置和组织项目以及跟踪变量值的资源:
全局变量,可在整个项目或网络中使用
库管理器,用于将库添加到项目中
用于记录联机会话期间操作的日志
AlarmConfiguration,用于配置项目中的告警处理
用于配置硬件的 PLC 配置
任务配置,用于指导程序完成任务
监视和配方管理器,用于显示变量值和设置默认变量值
目标设置,用于选择目标系统,并在必要时进行最终配置
工作区作为项目选项的图像
根据目标系统和在 CoDeSys 中进行的目标设置,您的项目中还可能提供以下资源:
用于以图形方式显示变量值的采样跟踪
用于与网络中其他控制器进行数据交换的参数管理器
PLC-Browser作为控制器监视器
工具–可用性取决于目标–用于从 CoDeSys 中调用外部工具程序
带有 CNC 编辑器(CNC 程序列表)和 CAM 编辑器的 SoftMotion 功能(由于许可证)
图书馆
您可以在项目中包括一系列库,您可以像使用用户定义的变量一样使用这些库的 POU、数据类型和全局
变量。standard.lib 和 util.lib 库是程序的标准部分,随时可供您使用。请参 第 6.4 章“库管理器”。
数据类型
除了标准数据类型外,用户还可以定义自己的数据类型。可以创建结构、枚举类型和引用。
请参阅附录 C:“数据类型”。
可视化
CoDeSys提供可视化效果,以便您可以显示项目变量。您可以借助可视化效果离线绘制几何元素。在联
机模式下,它们可以更改其形式/颜色/文本输出以响应指定的变量值。
2-8 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
2.2 语言...
CoDeSys 支持标准 IEC-61131 描述的所有语言:
文本语言:
指令列表(IL)
结构化文本(ST)
Grafic 语言:
顺序功能图(SFC)
功能框图(FBD)
梯形图(LD)
此外,还有基于功能块图的图形连续功能图编辑器(CFC)。
2.2.1 指令列表(IL)...
指令列表(IL)由一系列指令组成。每条指令都以新行开头,包含一个运算符,并且根据运算类型,包含
一个或多个用逗号分隔的操作数。
在指令的前面可以有一个识别标记(标签),后跟一个冒号(:)。
注释必须是一行中的最后一个元素。可以在指令之间插入空行。
例:
LD17ST 棉绒(* 注释 *)
IL 中的修饰符和运算符
在 IL 语言中,可以使用以下运算符和修饰符。
修饰符:
下面是 IL 中所有运算符的表格,以及它们可能的修饰符和相关含义:
运算符修饰符含义
LD的 N 使当前结果等于操作数
圣 N 将当前结果保存在操作数的位置
S 然后,如果当前结果为 TRUE,则将布尔操作数精确地置于TRUE
CoDeSysV2.3版本 2-9
语言。。。
R 然后,如果当前结果为 TRUE,则将布尔操作数精确地置于
FALSE
和 N,(按位AND
或 N,(按位OR
异或 N,(按位异OR
加 ( 加法
子 ( 减法
穆尔 ( 乘法
DIV公司 ( 划分
GT ( >
通用电气( >=
情商( =
东北( <>
LE ( <=
LT ( <
JMPCN 跳转到标签
CALCN 调用程序或功能块或
RETCN 离开 POU 并返回呼叫者。
)评估延迟操作
LDTRUE(*在累加器中加载 TRUE*)
ANDNBOOL1 (*使用 BOOL1 变量的否定值执行 AND*)
JMPC 标记(*如果结果为 TRUE,则跳转到标签“mark”*)
土地退化零增 (LD
布尔值2 (*保存 * 的否定值)
圣 尔格 (*ERG 中的 BOOL2*)
标签:
LD的 布尔值2 (*保存 * 的值)
STERG*ERG 中的 BOOL2*)
在 IL 中,也可以在手术后加上括号。然后,将括号的值视为操作数。
例如:
LD2MUL2ADD3 尔格
这是 Erg7 的值。但是,如果加上括号:
2-10 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
2.2.2 结构化文本(ST)...
结构化文本由一系列指令组成,这些指令以高级语言确定,(“IF..然后。。ELSE“)或循环(
WHILE..DO)可以执行。
例:
IFvalue<7 那么 WHILE 值 <8DOvalue:=value+1;
END_WHILE;END_IF;
表达式
表达式是一种构造,它在计算后返回一个值。
表达式由运算符和操作数组成。操作数可以是常量、变量、函数调用或其他表达式。
表达式的估值
表达式的计算是通过根据某些约束规则处理运算符来实现的。首先处理绑定最强的运算符,然后处理绑定
次强的运算符,依此类推,直到处理完所有运算符。
具有相同结合强度的算子从左到右进行处理。
下面是按结合强度排序的 ST 算子表:
操作 象征 结合强度
比较 <,>,<=,>=
等于 =
不等于 <>
Boolean AND 和
布尔异或 异或
CoDeSysV2.3版本 2-11
语言。。。
布尔值或 或 最弱的结合
ST中有以下说明,与示例一起排列在表格中:
指令类型示例
作业 A:=B;CV :=CV+1;C:=正弦(X);
调用功能块并CMD_TMR(IN :=%IX5, PT :=300);
使用 FB 输出 答:=CMD_TMR。Q
返回 返回;
如果 D:=B*B;
如果 D<0.0 那么
C:=A;
ELSIFD=0.0 那么
C:=B;
还
C:=D;
END_IF;
箱 案例 INT1 的
1: BOOL1 := 真;
2: BOOL2 := 真;
还
BOOL1 := 假;
BOOL2 := 假;
END_CASE;
为 J:=101;
对于 I:=1 到 100 乘以 2 做
如果 ARR[I]=70 那么
J:=我;
退出;
END_IF;
END_FOR;
而 J:=1;
而 J<= 100 和 ARR[J] <> 70
J:=J+2;
END_WHILE;
重复 J:=-1;
重复
J:=J+2;
直 到 J= 101 或 ARR[J] = 70
END_REPEAT;
退出 退出;
空指令 ;
2-12 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
赋值运算符
在赋值的左侧有一个操作数(变量,地址),使用赋值运算符为右侧的表达式值赋值:=
例:
变 量 1 : = 变 量 2 * 10;
完成此行后,Var1 的值是 Var2 的 10 倍。
在 ST 中调用功能块
在ST中,通过写入功能块实例的名称,然后在括号中分配参数值来调用功能块。在以下示例中,调用了
一个计时器,其中包含参数 IN 和 PT 的赋值。然后将结果变量 Q 分配给变量 A。
与 IL 中一样,结果变量使用功能块的名称、以下点和变量的名称进行寻址:
RETURN指令
RETURN 指令可用于离开 POU,例如,取决于条件
IF指令
使用 IF 指令,您可以检查条件,并根据该条件执行指令。
语法:
IF <Boolean_expression1> THEN
<IF_instructions>
{ELSIF <Boolean_expression2> THEN
<ELSIF_instructions1>. .
如果所有布尔表达式均不生成 TRUE,则仅计算<ELSE_instructions>。
例:
如 果 TEMP<17 则 heating_on : =
TRUE; 否 则 heating_on : =
FALSE;
END_IF;
当温度降至 17 度以下时,加热就会打开。否则,它将保持关闭状态。
CoDeSysV2.3版本 2-13
语言。。。
CASE指令
使用 CASE 指令,可以将具有相同条件变量的多个条件指令组合在一个结构中。
语法:
案例<Var1>的
<Value1> : < 指 令 1> <Value2> : <Instruction 2>
<Value3 , Value4 , Value5> : <Instruction 3> <Value6
.. 值 10> : < 指 令 4> ...
CASE指令按照以下模型进行处理:
如果 <Var1> 中的变量的值为 <Valuei>,则执行指令 <Instructioni>。
如果 <Var1> 没有指示的值,则执行 <ELSE 指令>。
如果要对变量的多个值执行相同的指令,则可以将这些值一个接一个地写入,并用逗号分隔,从而限制
公共执行。
如果要对变量的取值范围执行相同的指令,则可以将初始值和结束值逐个写入两个点。因此,您可以调节
常 病症。
例:
案例 INT1 的 1, 5: BOOL1 :=TRUE;BOOL3 := 假;2: BOOL2 := 假;BOOL3 := 真;10..20:BOOL1 := 真;BOOL3:
= 真;否则 BOOL1 := 不是 BOOL1;BOOL2 :=BOOL1 或BOOL2;END_CASE;
FOR 循环
通过FOR循环,可以对重复的过程进行编程。
语法:
INT_Var :INT;
FOR <INT_Var> := <INIT_VALUE> TO <END_VALUE> {BY <Step size>} DO
<说明>
END_FOR;
大括号 {} 中的部分是可选的。
只要计数器<INT_Var>不大于<END_VALUE>,就会执行<指令>。在执行 <指令>之前检查这一点,以便
在 <INIT_VALUE>大于 <END_VALUE> 时永远不会执行 <指令>。
例:
FOR 计数器:=1TO5BY1DOVar1:=Var1*2;
2-14 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
END_FOR;
Erg:=变量1;
假设 Var1 的默认设置是值 1。然后,它在 FOR 循环之后的值为 32。
WHILE 循环
WHILE 循环可以像 FOR 循环一样使用,不同之处在于中断条件可以是任何布尔表达式。这意味着您指
定了一个条件,当满足该条件时,将执行循环。
语法:
WHILE<布尔表达式>
<说明>
END_WHILE;
只要<Boolean_expression>返回 TRUE,就会重复执行<指令>。如果<Boolean_expression>在第一次评
估时已经为 FALSE,则永远不会执行<指令>。如果 <Boolean_expression> 从不假定值为 FALSE,则<
指令>将无休止地重复,从而导致相对时间延迟。
注意:程序员必须确保不会造成无限循环。他通过改变循环指令部分的条件来做到这一点,例如,通过向上或向下倒
数一个计数器。
例:
WHILEcounter<>0DOVar1 :=Var1*2; 计数器:= 计数器1;END_WHILE
REPEAT 循环
REPEAT循环与WHILE循环不同,因为只有在执行循环后才会检查中断条件。这意味着循环将至少运行
一次,无论中断条件的措辞如何。
语法:
重复
<说明>
UNTIL < 布 尔 表 达 式 > END_REPEAT;
执行<指令>直到<布尔表达式>返回 TRUE。
如果在第一次 TRUE 求值时已经生成了 < 布尔表达式 > ,则 < 指令 > 仅执行一次。如果
<Boolean_expression> 从不假定值为 TRUE,则 <Instructions> 将无休止地重复,从而导致相对时间延
迟。
注意:程序员必须确保不会造成无限循环。他通过改变循环指令部分的条件来做到这一点,例如通过向上或向下倒数
一个计数器。
例:
重复
变量1 := 变量1*2; 计数器:= 计数器1;
CoDeSysV2.3版本 2-15
语言。。。
直到
计数器=0
END_REPEAT;
EXIT指令
如果 EXIT 指令出现在 FOR、WHILE 或 REPEAT 循环中,则无论中断条件如何,最内层循环都将结
束。
2.2.3 顺序功能图(SFC)...
顺序功能图(SFC)是一种面向图形的语言,可以描述程序中不同操作的时间顺序。为此,将操作分配给
步骤元素,处理顺序由过渡元素控制。
顺序功能图中的网络示例
有关证监会编辑器的进一步资料,请参阅第5.4.4章。
步
在顺序功能图中编写的 POU 由一系列步骤组成,这些步骤通过定向连接(转换)相互连接。
有两种类型的步骤。
简化类型由一个操作和一个标志组成,该标志显示该步骤是否处于活动状态。如果实施了步骤的动作,则
步骤的右上角会出现一个小三角形。
IEC 步骤由一个标志和一个或多个分配的操作或布尔变量组成。关联的操作将显示在步骤的右侧。
行动
一个动作可以包含IL或ST中的一系列指令,FBD或LD中的许多网络,或者顺序功能图(SFC)中的许多
指令。
2-16 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
通过简化的步骤,操作始终与步骤相关联。要编辑操作,请用鼠标在操作所属的步骤上单击两次。或者选
择步骤并选择菜单命令“附加”、“缩放、操作/过渡”。此外,每步可以执行一个输入或输出操作。
进入或退出操作
除了步骤操作之外,您还可以向步骤添加进入操作和退出操作。输入操作仅在步骤变为活动状态后执行一
次。在停用该步骤之前,退出操作仅执行一次。
进入动作的步骤用左下角的“E”表示,退出动作用右下角的“X”表示。
进入和退出操作可以用任何语言实现。要编辑进入或退出操作,请用鼠标双击步骤中的相应角。
具有进入和退出操作的步骤示例:
过渡/过渡条件
在这些步骤之间有所谓的过渡。
转换条件的值必须为 TRUE 或 FALSE。因此,它可以由布尔变量、布尔地址或布尔常量组成。它还可以
包含一系列具有布尔结果的指令,可以是 ST 语法(例如(i<=100) ANDb)或任何所需的语言(参
'Extras''ZoomAction/Transition')。但是过渡可能不包含程序、功能块或分配!
在 SFC 编辑器中,可以直接在过渡符号处写入过渡条件,也可以打开自己的编辑器窗口以输入条件(参
第 5.4.4 章“附加功能”“缩放操作/过渡”)。请注意,在编辑器窗口中输入的指令将优先!
活动步骤
调用SFCPOU后,首先执行属于初始步骤的操作(由双边框包围)。正在执行其操作的步骤称为活动步
骤。在联机模式下,活动步骤以蓝色显示。
在控制循环中,执行所有属于活动步骤的动作。此后,如果以下步骤的转换条件为TRUE,则活动步骤的
相应后续步骤将变为活动状态。当前处于活动状态的步骤将在下一个周期中执行。
注意:如果活动步骤包含输出操作,则只有在下一个周期中执行此操作,前提是以下转换为 TRUE。
IEC步骤
除了简化的步骤外,SFC中的标准IEC步骤也可用。
为了能够使用 IEC 步骤,您必须将特殊的 SFC 库lecsfc.lib链接到您的项目中。
一个 IEC 步骤最多只能分配 9 个操作。IEC 操作不像简化步骤那样固定为某个步骤的输入、步骤或输出
操作,而是与步骤分开存储,并且可以在 POU 中多次重复使用。为此,必须使用命令 “Extras” 、
“Associateaction”将它们关联到单个步骤。
CoDeSysV2.3版本 2-17
语言。。。
除了操作,布尔变量还可以分配给步骤。
操作和布尔变量的激活和停用可以使用所谓的限定符进行控制。时间延迟是可能的。由于操作仍然可以处
于活动状态,因此如果已处理下一步,例如通过限定符 S (Set),则可以实现并发进程。
为了更轻松地遵循流程,在线模式下的所有活动操作都以蓝色显示,就像活动步骤一样。在每个周期之
后,都会进行检查以查看哪些操作处于活动状态。
这里还要注意在同一周期内重复使用的操作中使用时间限定符的限制(参 “限定符”)!
注意:如果某个操作已被停用,它将再次执行。这意味着,每个操作至少执行两次(也是带有限定符 P 的操作)。
在调用的情况下,首先执行停用的操作,然后按每次的字鯦顺序执行活动操作。
为了使用IEC步骤,您必须在项目中包含特殊的SFC库Iecsfc.lib。
SFCPOU 在对象管理器中具有操作
限定符
为了将操作与 IEC 步骤相关联,可以使用以下限定符:
N 未存储 只要步骤,该操作就处于活动状态
R 重写Reset 该操作已停用
S Set(存储) 该操作将被激活并保持活动状态,直到重置
L 时间有限 该操作将激活一段时间,只要该步骤处于活动状态,
则最多
D 时间延迟 如果该步骤仍处于活动状态,则该操作将在一定时间
后变为活动状态,然后只要该步骤处于活动状态,该
操作就会保持活动状态。
2-18 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
P 脉冲如果步骤处于活动状态,则仅执行一次操作
SD存储和时间该操作在一定时间后激活,延迟在重置之前保持活动状态
DS延迟和存储只要该步骤仍处于活动状态,并且在重置之前保持活动状态,该操
作就会在一定时间后激活
SL存储和时间该动作在一定时间内激活
注意:当一个动作被停用时,它将再次执行。这意味着每个操作至少执行两次(也是带有限定符 P 的操作)。
SFC 中的隐式变量
在 SFC 中,隐式声明的变量(“标志”)可用于扫描步骤和操作的状态以及步骤的时间。这些标志都是在
周期开始时设置的。对于 IEC 步骤和 IEC 操作,它们由库 iecsfc.lib (结构 SFCStepType 和
SFCActionType)提供,该库自动包含在项目中,用于简化步骤,它们在CoDeSys中实现。
通过布尔变量扫描步骤或操作状态:
对于 IEC 步骤: <stepname>.x 或 <stepname>._x : <StepName>.x 显示当前激活状态。
<StepName>._x显示下一个周期的激活状态。如果<StepName>.x=TRUE,则该步骤将在当前循环中执
行。如果 <StepName>._x= TRUE 和 <StepName>.x= FALSE ,则该步骤将在下一个循环中执行,即
<StepName>._x 在循环开始时复制到 <StepName>.x。
对于IEC步骤:<stepname>.t(<stepname>._t不能用于外部目的)
有关简化步骤:_time<stepname>。但是:如果此隐式变量应用于扫描目的,则还必须将其显式声明为
TIME 变量;例如,“_timeStep1 :TIME;”
对于 IEC 操作:不使用隐式时间变量。
这些状态标志可用于 SFC 模块的每个操作和转换。但它们也可以从其他程序访问:示例:boolvar1:
=sfc.step1.x;此示例中的 step1.x 是一个隐式布尔变量,显示 POU“sfc1”中 IEC 步骤“step1”的状
态。
证监会标志
为了控制 间作业控制的操作,可以使用标志,这些标志是在运行项目期间隐式创建的。要读取此标志,
您必须定义适当的全局或局部变量作为输入或输出。示例:如果在SFCPOU中,某个步骤处于活动状态
的时间比步骤属性中定义的时间 ,则将设置一个标志,该标志可通过使用变量“SFCError”进行访问(
在本例中 SFCError 为 TRUE)。
可以定义以下标志变量:
CoDeSysV2.3版本 2-19
语言。。。
SFCCurrentStep:此变量的类型为STRING。步骤的名称存储在此变量中,该变量处于活动状态,与时
间监视无关。在同时序列的情况下,该步骤存储在右外侧的分支中。如果发生超时,并且变量SFCError
不会再次重置,则不会再注册超时。
分析转换表达式的前提条件是在上一步中注册了超时。因此,必须在那里实现时间监控,并且必须在声明
窗口中定义变量 SFCErlor( 上文)。
注意:还要考虑可用于扫描步骤或操作的状态和时间的隐式变量。
2-20 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
替代分支
SFC 中的两个或多个分支可以定义为备用分支。每个备用分支都必须以转换开始和结束。备用分支可以
包含平行分支和其他备用分支。替代分支从水平线(替代起点)开始,到水平线(替代结束)或跳跃结
束。
如果替代起始线之前的步骤处于活动状态,则从左到右评估每个替代分支的第一个过渡。从左侧开始的第
一个转换(其转换条件的值为 TRUE)将打开,并激活以下步骤(请参阅活动步骤)。
并行分支
SFC 中的两个或多个分支可以定义为并行分支。每个并行分支都必须以一个步骤开始和结束。并行分支
可以包含备用分支或其他并行分支。平行分支以双线(平行开始)开始,以双线(平行结束)或跳转结
束。它可以提供跳转标签。
如果上一步的并行起始线处于活动状态,并且此步骤之后的转换条件的值为TRUE,则所有并行分支的第
一步都变为活动状态(请参阅活动步骤)。这些分支现在彼此并行处理。当前面的所有步骤都处于活动状
态时,平行结束线之后的步骤将变为活动状态,并且此步骤之前的转换条件将产生值 TRUE。
跳
跳转是与步骤的连接,其名称在跳转符号下指示。跳跃是必需的,因为它不允许创建向上或相互交叉的连
接。
2.2.4 功能块图(FBD)...
功能块图是一种面向图形的编程语言。它适用于网络列表,其中每个网络都包含一个结构,该结构表示逻
辑或算术表达式、功能块的调用、跳转或返回指令。
功能块图中的网络示例
2.2.5 连续功能图编辑器(CFC)...
连续功能图编辑器的操作方式不像带有网络的功能块图 FBD,而是具有可自由放置的元素。例如,这允
许反馈。
有关 CFC 编辑器的更多信息,请参 第 5.4.5 章
连续函数图编辑器中的网络示例
CoDeSysV2.3版本 2-21
语言。。。
2.2.6 梯形图(LD)...
梯形图也是一种面向图形的编程语言,它接近电路的结构。
梯形图由一系列网络组成。网络的左右两侧受左右垂直电流线的限制。中间是由触点、线圈和连接线组成
的电路图。
每个网络都位于一系列触点的左侧,这些触点从左到右传递条件“ON”或“OFF”,对应于布尔值 TRUE 和
FALSE 。每个联系人都属于一个布尔变量。如果此变量为 TRUE ,则条件沿连接线从左向右传递。否
则,正确的连接将接收值 OFF。
梯形图中由触点和线圈组成的网络示例
有关 LD 编辑器的更多信息,请参阅第 5.4.3 章。
联系
LD 中的每个网络都位于触点网络的左侧(触点由两条平行线表示:||),从左到右显示条件“开”或“关
”。
这些条件对应于布尔值 TRUE 和 FALSE。布尔变量属于每个联系人。如果此变量为 TRUE,则条件由连
接线从左向右传递,否则右侧连接接收值“Out”。
触点可以并联连接,然后其中一个并联分支必须传输值“On”,以便并联分支传输值“On”;或者触点串联,
则触点必须传输条件“On”,以便最后一个触点传输“On”条件。因此,这对应于电并联或串联电路。
触点也可以被否定,可以通过触点符号中的斜杠来识别:|/|。然后,如果变量为 FALSE,则传输该行的
值。
线圈
在LD中网络的右侧,可以有任意数量的所谓线圈,这些线圈用括号表示:()。它们只能并行。线圈从
左到右传输连接值,并将其复制到适当的布尔变量中。在输入行中,可以存在值 ON (对应于布尔变量
TRUE)或值 OFF(对应于 FALSE)。
触点和线圈也可以被否定(在本例中,触点SWITCH1和线圈%QX3.0被否定)。如果线圈被否定(可通
过线圈符号中的斜杠识别:(/)),则它将否定值复制到相应的布尔变量中。如果联系人被否定,则仅
当相应的布尔值为 FALSE 时,它才会连接。
2-22 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
梯形图中的功能块
除了触点和线圈,您还可以输入功能块和程序在网络中,它们必须具有具有布尔值的输入和输出,并且可
以在与触点相同的位置使用,即LD网络的左侧
设置/复位线圈
线圈也可以定义为设置或复位线圈。可以通过线圈符号中的“S”来识别设置线圈:(S))它永远不会在
适当的布尔变量中写入值 TRUE。也就是说,如果变量曾经设置为 TRUE,则它仍然如此。
可以通过线圈符号中的“R”来识别复位线圈:(R))它永远不会在相应的布尔变量中写入值 FALSE:如
果变量曾经设置为 FALSE,则它仍然如此。
LD 作为FBD
使用 LD 时,您很可能希望使用触点开关的结果来控制其他 POU。一方面,您可以使用线圈将结果放入
全局变量中,然后可以在另一个地方使用。但是,您也可以将可能的呼叫直接插入您的LD网络。为此,
您需要引入一个带有 EN 输入的 POU。
从这样的ENPOU开始,您可以创建类似于FBD的网络。
具有 ENPOU 的 LD 网络示例
2.3 调试、在线功能...
采样跟踪
采样跟踪允许您跟踪变量的值序列,具体取决于所谓的触发事件。这是先前定义的布尔变量(触发变量)
的上升沿或下降沿。CoDeSys 允许跟踪多达 20 个变量。每个变量可以跟踪 500 个值。
调试
CoDeSys 的调试功能使您可以更轻松地查找错误。
要 进 行 调 试 , 请 运 行 命 令 “ Project”“Options”,然后在“Buildoptions”下弹出的对话框中,选择“激
活” 选 项 “Debugging。
CoDeSysV2.3版本 2-23
调试、在线功能...
断点
断点是程序中停止处理的位置。因此,可以查看程序中特定位置的变量值。
可以在所有编辑器中设置断点。在文本编辑器中,断点设置在行号处,FBD 和 LD 中的断点设置在网络
号处,CFC 中的断点设置在 POU 处,SFC 中的断点设置在步 处。不能在功能块实例中设置断点。
一步
一步意味着:
在 IL 中:执行程序,直到下一个 CAL、LD 或 JMP 命令。
在 ST 中:执行下一条指令。
在 FBD 中,LD:执行下一个网络。
在 SFC 中:继续操作,直到下一步。
通过逐步进行,您可以检查程序的逻辑正确性。
单周期
如果选择了“单周期”,则在每个周期后停止执行。
在线更改值
在操作过程中,变量可以在某个值(写入值)下设置一次,也可以在每个循环后用某个值(力值)再次描
述。在在线模式下,还可以通过双击变量值来更改变量值。通过布尔变量从 TRUE 更改为 FALSE,或者
相反,对于其他类型的变量,人们会获得 WriteVariablexy 对话框,其中可以编辑变量的实际值。
监测
在在线模式下,所有可显示的变量都从控制器中读取并实时显示。您将在声明和程序编辑器中找到此显
示;您还可以在观察和配方管理器以及可视化中读出变量的当前值。如果要监视功能块实例中的变量,则
必须首先打开相应的实例。
在监视VAR_IN_OUT变量时,将输出取消引用的值。
在监视指针中,指针和取消引用的值都输出在声明部分。在程序部分,仅输出指针:
+ --pointervar = '<'pointervalue'>'
取消引用的值中的指针也会相应地显示。只需单击十字或双击线,显示就会展开或截断。
2-24 CoDeSysV2.3版本
2 -CoDeSys 中的内容是什么
指针监控示例
在实现中,将显示指针的值。但是,对于取消引用,将显示取消引用的值。
监视 ARRAY 组件:除了由常量索引的数组组件外,还会显示由变量索引的组件:
日志
日志按时间顺序记录联机模式处理期间的用户操作、内部进程、状态更改和异常。它用于监视和错误跟
踪(请参阅联机函数)。
CoDeSysV2.3版本 2-25
标准...
2.4 标准...
IEC61131-3 标准是可编程逻辑控制器编程语言的国际标准。
CoDeSys中提供的编程语言符合标准要求。
根据该标准,程序由以下元素组成:
结构(请参阅数据类型)
POU
全局变量
“标识符”、“地址”、“类型”、“注释”和“常量”部分介绍了常规语言元素。
2-26 CoDeSysV2.3版本
3 - 我们编写一个小程序
3 我们写一个小程序
3.1 控制交通信号单元...
现在让我们开始编写一个小示例程序。它适用于一个简单的交通信号单元,它应该控制一个十字路口的两
个交通信号灯。两个交通信号灯的红/绿相交替,为了避免事故,我们将插入黄色或黄/红过渡相。后者将
比前者更 。
CoDeSys的。
创建POU
始终启动很容易:启动CoDeSys并选择“文件”“新建”。
在出现的对话框中,第一个 POU 已被赋予默认名称 PLC_PRG。保留此名称,POU 的类型绝对应该是
一个程序。每个项目都需要一个具有此名称的程序。在本例中,我们选择连续功能图编辑器(CFC)作为
此 POU 的语言
现在,使用命令“Project”、“ObjectAdd”、菜单栏或上下文菜单(在对象管理器中按鼠标右键)再创建
三个对象。顺序功能图(SFC)语言中名为 SEQUENCE 的程序,功能块图(FBD)语言中的功能块名
为 TRAFFICSIGNAL,以及 POUWAIT,也是功能块类型,我们希望将其编程为指令列表(IL)。
TRAFFICSIGNAL是做什么的?
在POUTRAFFICSIGNAL中,我们将为灯分配各个交通信号灯相位,即我们将确保红灯在红色相位和黄
色/红色相位亮红,黄灯在黄色和黄色/红色相位等。
WAIT是做什么的?
在 WAIT 中,我们将编写一个简单的计时器,作为输入将接收以毫秒为单位的相位 度,而作为输出将
在时间段结束后立即产生 TRUE。
SEQUENCE是做什么的?
在SEQUENCE中,所有东 都组合在一起,以便在所需的时间段内,正确的灯亮起。
PLC_PRG做什么?
在PLC_PRG中,输入启动信号连接到交通信号灯的顺序,并提供每个灯的“颜色指令”作为输出。
TRAFFICSIGNAL仿真
现在在模拟模式下测试您的程序。编译('Project', 'Build')并加载('Online', 'Login')。通过“在线
”“开始”启动程序,然后将变量 ON 设置为 TRUE,例如双击 CFC 编辑器输入框中的“ON”条目。这会
将变量标记为准备设置为 <TRUE> 。然后按 <Ctrl><F7> 或命令 “ 联机 ”“ 写入值 ” 来设置值。现在,
ABLAUF 中的变量 START(我们在程序的第一个扩展级别中手动将其设置为 TRUE)通过变量 ON 获取
此值,该变量在PLC_PRG中使用。这将使运行红绿灯循环。PLC_PRG已更改为监视窗口。在声明编辑
器中的加号上单击两次,变量显示将下拉,您可以看到各个变量的值。
CoDeSysV2.3版本 3-1
控制交通信号单元...
“TRAFFICSIGNAL”声明
现在让我们转向 POUTRAFFICSIGNAL。在声明编辑器中,将一个名为 STATUS 的变量声明为输入变
量(在关键字 VAR_INPUT 和 END_VAR 之间), STATUS 将有四个可能的条件,即
TRAFFICSIGNAL 阶段的绿色、黄色、黄色/红色和红色。
功能块 TRAFFICSIGNAL,声明部分
“TRAFFICSIGNAL”主体
现在,我们根据 POU 的输入 STATUS 确定输出变量的值。为此,请进入 POU 的正文。单击第一个网络
旁边左侧的字段(编号为 0001 的灰色字段)。您现在已经选择了第一个网络。选择菜单项“插入”“框”。
现在点击EQBox后面的一个地方。现在,EQ操作的输出被选中。选择“插入”、“分配”。将三个问号更改
为???变为绿色。现在,您已经创建了具有以下结构的网络:
3-2 CoDeSysV2.3版本
3 - 我们编写一个小程序
功能块 TRAFFICSIGNAL,指令部分
为了将一个运算符插入到另一个运算符的前面,必须选择要将运算符附加到的输入馈入框的位置。
然后使用命令“插入”“框”。否则,您可以采用与第一个网络相同的方式设置这些网络。
现在我们的第一个POU已经完成。TRAFFICSIGNAL根据值STATUS的输入,控制我们想要的任何灯光颜
色。
连接standard.lib
对于 POUWAIT 中的计时器,我们需要标准库中的 POU。因此,使用“窗口”“库管理器”打开库管理
器。选择“插入”、“附加库”。此时将显示用于打开文件的对话框。从库列表中选择 standard.lib。
CoDeSysV2.3版本 3-3
控制交通信号单元...
“WAIT”声明
现在让我们转向 POUWAIT 。这个 POU 应该成为一个计时器,我们可以用它来确定每个
TRAFFICSIGNAL 阶段的时间段 度。我们的 POU 接收一个 TIME 类型的变量 TIME 作为输入变量,作
为输出,它生成一个布尔值,我们想要将其称为 OK,并且在所需的时间段结束时该值应为 TRUE。我们
通过在声明的末尾插入(但是在分号之前)“:=FALSE”来设置此值。
出于我们的目的,我们需要 POUTP,一个时钟发生器。它有两个输入(IN、PT)和两个输出(Q、
ET)。TP 执行以下操作:
只要 IN 为 FALSE,ET 为 0,Q 为 FALSE。一旦 IN 提供值 TRUE,就会在输出 ET 处以毫秒为单位计
算时间。当 ET 达到 PT 值时,不再计算 ET。同时,只要 ET 小于 PT,Q 就会产生 TRUE。一旦达到
PT 值,Q 就会再次产生 FALSE。有关所有 POU 的简短说明,请参阅标准库一章。
因此,WAIT 的声明部分如下所示:
功能块 WAIT,声明部分
“WAIT”身体
为了创建所需的定时器,必须按如下方式对 POU 的主体进行编程:
功能块 WAIT,指令部分
3-4 CoDeSysV2.3版本
3 - 我们编写一个小程序
“SEQUENCE”第一扩展级别
首先,我们声明我们需要的变量。它们是:一个 BOOL 类型的输入变量 START,两个 INT 类型的输出变
量 TRAFFICSIGNAL1 和 TRAFFICSIGNAL2 ,以及一个 WAIT 类型( DELAY 作为延迟)。程序
SEQUENCE 现在如下所示:
程序 SEQUENCE、第一扩展级别、声明部分
创建 间作业控制图
SFC 中 POU 的起始图始终由后续转换“Trans0”的操作“Init”和跳回 Init 组成。我们必须扩大这一点。
在对各个动作和转换进行编程之前,让我们首先确定图表的结构。每个TRAFFICSIGNAL阶段都需要一个步
骤。通过标记 Trans0 并选择“插入”、“步进过渡(之后)”来插入它。再重复此过程三次。
CoDeSysV2.3版本 3-5
控制交通信号单元...
程序 SEQUENCE、第一扩展级别、指令部分
现在我们必须完成各个步骤的编程。如果双击步骤的字段,则会出现一个用于打开新操作的对话框。在我
们的例子中,我们将使用 IL(指令列表)。
操作和转换条件
在步骤 Init 的操作中,变量被初始化, TRAFFICSIGNAL1 的 STATUS 应为 1 (绿色)。
TRAFFICSIGNAL2状态应为 3(红色)。然后,操作 Init 如下图所示:
行动 初始化
3-6 CoDeSysV2.3版本
3 - 我们编写一个小程序
Switch1将TRAFFICSIGNAL1的状态更改为2(黄色),将TRAFFICSIGNAL2的状态更改为4(黄红色
)。此外,还设置了 2000 毫秒的时间延迟。操作现在如下所示:
操作开关1
使用Green2时,TRAFFICSIGNAL1为红色(STATUS:=3),TRAFFICSIGNAL2绿色(STATUS:
=1),延迟时间为 5000 毫秒。
绿色行动2
使用Green1时,TRAFFICSIGNAL1为绿色(STATUS:=1),TRAFFICSIGNAL2为红色(STATUS:
=3),时间延迟设置为 5000 毫秒。
绿色行动1
我们计划的第一阶段扩展阶段已经完成。
如果要在模拟模式下对 POUABLAUF 进行首次测试,请执行以下步骤:
1. 打开 POUPLC_PRG。每个项目都以PLC_PRG开始运行。为了能够临时启动 POUABLAUF,请插入
一个框并将“AND”替换为“ABLAUF”。暂时保持未分配的输入和输出。
CoDeSysV2.3版本 3-7
控制交通信号单元...
完成此中间测试后,使用命令“在线”、“注销”退出仿真模式并继续编程。
“SEQUENCE”第二扩展级别
为了确保我们的图表至少有一个备用分支,并且我们可以在夜间关闭交通信号灯单元,我们现在在程序中
包含一个计数器,在一定数量的TRAFFICSIGNAL循环后,该计数器会关闭该单元。
程序 SEQUENCE,第二扩展级别,指令部分
3-8 CoDeSysV2.3版本
3 - 我们编写一个小程序
操作计数
EXIT 转换检查计数器是否大于某个值,例如 7:
过渡退出
结果
在我们的假设情况下,夜幕降临在七个交通信号周期后,交通信号灯自动关闭十秒钟,然后我们再次进入
白昼,交通信号灯单元再次自动打开,整个过程从头开始。如果您愿意,请在模拟模式下对程序的当前版
本进行另一次测试,然后再创建 POUPLC_PRG。
PLC_PRG
我们已经定义并关联了块 SEQUENCE 中两组交通信号灯的相位时间顺序。然而,由于我们将交通信号
灯系统视为总线系统(例如CAN总线)的一个模块,因此我们必须在块PLC_PRG中提供输入和输出变
量。我们想通过 ON 开关启动交通信号灯系统,并且我们希望为 SEQUENCE 的每一步向六个灯(每个
红绿灯、黄灯)发送相应的“信号命令”。现在,在编辑器中创建程序之前,我们正在为这六个输出和一个
输入声明适当的布尔变量,并同时将它们分配给相应的 IEC 地址。
CoDeSysV2.3版本 3-9
控制交通信号单元...
选择“资源”选项卡,然后打开“全局变量”列表。
按如下方式进行声明:
声明CAN配置的输入/输出变量
我们现在要完成块PLC_PRG。
为此,我们进入编辑器窗口。我们选择了连续功能图编辑器,因此,在菜单栏下,我们得到了一个包含所
有可用元素的 CFC 符号栏(参 连续功能图编辑器)。
程序的所有元素现在都已到位,您可以通过单击元素输入/输出处的短线并将其拖动到所需元素的输入/输
出来连接输入和输出。
您的程序最终应如下所示:
3-10 CoDeSysV2.3版本
3 - 我们编写一个小程序
PLC_PRG,使用连续功能图编辑器进行声明和演示
TRAFFICSIGNAL仿真
现在在模拟模式下测试您的程序。编译('Project', 'Build')并加载('Online', 'Login')。通过“在线
”“开始”启动程序,然后将变量 ON 设置为 TRUE,例如双击 CFC 编辑器输入框中的“ON”条目。这会
将变量标记为准备设置为 <TRUE> 。然后按 <Ctrl><F7> 或命令 “ 联机 ”“ 写入值 ” 来设置值。现在,
ABLAUF 中的变量 START(我们在程序的第一个扩展级别中手动将其设置为 TRUE)通过变量 ON 获取
此值,该变量在PLC_PRG中使用。这将使运行红绿灯循环。PLC_PRG已更改为监视窗口。在声明编辑
器中的加号上单击两次,变量显示将下拉,您可以看到各个变量的值。
3.2 可视化交通信号单元...
借助CoDeSys的可视化功能,您可以快速轻松地将项目变量变为现实。现在,我们将为我们的交通信号
灯单元绘制两个交通信号灯和一个 ON 开关,这将说明切换过程。
创建新的可视化效果
要创建可视化,必须首先 在对象管理器中选择可视化范围。首先单击左侧窗口的下边缘,注册卡上的
POU带有此符号和名称Visualization。如果现在选择命令“项目”“对象添加”,则会打开一个对话框。
在此处输入任何名称。单击“确定”确认对话框后 ,将打开一个窗口,您可以在其中设置新的可视化效
果。
在可视化中插入元素
对于我们的 TRAFFICSIGNAL 可视化,您应该按以下步骤操作:
CoDeSysV2.3版本 3-11
可视化交通信号单元...
• 发出命令“插入”“椭圆”并尝试画一个中等大小的圆(?2cm)。为此,单击编辑器字段,然后用鼠标
左键绘制其 度的圆。
• 现在双击圆圈。将打开用于编辑可视化元素的对话框
• 选择类别变量,然后在更改颜色字段中输入变量名称。 L1_red 或 “L1_red” 。这意味着全局变量
L1_red 一旦设置为 TRUE,它就会导致颜色变化。变量名称前的点表示它是全局变量,但不是必需
的。
• 然后选择类别颜色,然后单击“颜色”区域中的“内部”按钮。选择尽可能中性的颜色,例如黑色。
• 现在单击警报颜色区域内的按钮,然后选择最接近红灯的红色。
其他红绿灯
现在输入命令“编辑”、“复制”(<Ctrl>+<C>),然后输入两次“编辑”、“粘贴”(<Ctrl>+<V>)。这样一
来,在第一个圆圈的顶部又有两个大小完全相同的圆圈。您可以通过单击圆圈并用鼠标左键拖动它来移动
圆圈。在我们的例子中,所需的位置应该在编辑器窗口左半部分的垂直行中。双击其他两个圆圈之一,再
次打开配置对话框。在相应圆圈的“更改颜色”字段中输入以下变量:
对于中间圆圈:L1_yellow
对于最低的圆圈:L1_green
现在,在“颜色”类别中为圆圈选择相应的颜色,在“警报颜色”区域中选择相应的颜色(黄色或绿色)。
3-12 CoDeSysV2.3版本
3 - 我们编写一个小程序
TRAFFICSIGNAL案例
现在输入命令“插入”“矩形”,然后以与圆相同的方式插入一个包含三个圆的矩形。再次为矩形选择尽可
能中性的颜色,并发出命令“Extras”“发送到后面”,以便圆圈再次可 。
如果模拟模式尚未打开,您可以使用命令“在线”“模拟”激活它。
如果您现在使用命令“在线”“登录”和“在线”“运行”开始模拟,那么您可以观察第一个交通信号的颜色变
化。
第二个交通信号灯
创建第二个交通信号灯的最简单方法是复制第一个交通信号灯的所有元素。为此,您可以选择第一个交通
信号灯的所有元素,并使用命令“编辑”、“复制”和“编辑”、“粘贴”来复制它们(就像之前使用第一个
交通信号灯一样)。然后,您只需将相应对话框中的文本 “TRAFFICSIGNAL1” 更改为
“TRAFFICSIGNAL2”,即可完成第二个交通信号灯的可视化。
ON开关
插入一个矩形,如上所述,为您选择的交通信号灯授予一种颜色,然后输入。ON 在更改颜色的变量处。
在“文本”类别中“内容”的输入 字段中输入“ON”。
为了通过鼠标单击开关将变量ON设置为TRUE,请在“输入”类别中激活选项“切换变量”并输入变量名称
”。开“在那里。变量键控意味着当鼠标单击可视化元素时,变量 .ON 设置为值 TRUE,但在再次释放鼠
标键时重置为值 FALSE(我们特此为我们的交通信号灯程序创建了一个简单的打开设备)。
CoDeSysV2.3版本 3-13
可视化交通信号单元...
可视化效果中的字体
为了完成可视化,您应该首先插入另外两个矩形,将其放置在交通信号灯下方。
3-14 CoDeSysV2.3版本
4 - 单个组件
4 各个组件
4.1 主窗口...
主要窗口组件
在CoDeSys的主窗口中可以找到以下元素(从上到下):
菜单栏
工具栏(可选);带有按钮,可更快地选择菜单命令。
带有 POU、数据类型、可视化和资源的寄存卡的对象管理器
对象管理器和 CoDeSys 工作空间之间的垂直屏幕分隔线
编辑器窗口所在的工作空间
消息窗口(可选)
状态栏(可选);有关项目当前状态的信息
另请参阅:
上下文菜单
菜单栏
菜单栏位于主窗口的上边缘。它包含所有菜单命令。
工具栏
通过用鼠标单击符号,可以更快地选择菜单命令。可用符号的选择会自动适应活动窗口。
仅当鼠标按钮按下符号然后松开时,才会执行该命令。如果将鼠标指针短时间停留在工具栏中的符号上,则该
CoDeSysV2.3版本 4-1
主窗口...
符号的名称将显示在工具提示中。
要在工具栏上查看每个符号的描述,请在“帮助”中选择需要了解的编辑器,然后单击您感兴趣的工具栏符
号。
工具栏的显示是可选的(请参阅“项目”、“选项”类别、桌面)。
对象管理器
对象管理器始终位于CoDeSys的左侧。底部有四张寄存器卡,带有四种对象类型的符号:POU、数据类
型、可视化
和资源。要在相应的对象类型之间切换,请用鼠标单击相应的寄存器卡或使用向左或向右箭头键。
您将在管理项目中的对象一章中学习如何在对象管理器中使用对象。
屏幕分隔器
屏幕分隔线是两个不重叠窗口之间的边界。在CoDeSys中,对象管理器和主窗口的工作空间之间、POU
的接口(声明部分)和实现(指令部分)之间以及工作空间和消息窗口之间都有屏幕分隔线。
您可以使用鼠标指针移动屏幕分隔线。您可以通过在按下鼠标左键的情况下移动鼠标来执行此操作。
确保屏幕分隔线始终保持在其绝对位置,即使窗口大小已更改也是如此。如果屏幕分隔器似乎不再存在,
则只需放大窗口即可。
工作空间
工作空间位于 CoDeSys 中主窗口的右侧。在此区域中打开对象的所有编辑器和库管理器。当前对象名称
将显示在标题栏中;对于 POU,POU 类型和当前使用的编程语言的缩写出现在其后面的括号中。
您可以在“编辑者”一章中找到对编辑的描述
在菜单项“窗口”下,您可以找到用于窗口管理的所有命令。
消息窗口
消息窗口由主窗口中工作空间下方的屏幕分隔线分隔。
它包含来自先前编译、检查或比较的所有消息。搜索结果和交叉引用列表也可以在此处输出。
4-2 CoDeSysV2.3版本
4 - 单个组件
消息窗口的显示是可选的(参 “窗口”,“消息”)。
状态栏
CoDeSys中主窗口窗口框架底部的状态栏为您提供有关当前项目和菜单命令的信息。
如果某个项目是相关的,则该概念以黑色字体显示在状态栏的右侧,否则以灰色字体显示。
当您在联机模式下工作时,联机概念 以黑色字体显示。如果您在脱机模式下工作,则它以灰色脚本显
示。
在在线模式下,您可以从状态栏中查看您是否处于模拟(SIM)、正在处理程序(RUNS)、是否设置了
断点(BP)或正在强制变量(FORCE)。
使用文本编辑器,会指示当前光标位置的行号和列号(例如,Line:5, Col.:11)。在在线模式下,
“OV”在状态栏中显示为黑色。按 <Ins> 键可在覆盖和插入模式之间切换。
如果您已选择菜单命令但尚未确认,则状态栏中会显示简短说明。
状态栏的显示是可选的(参 “项目”、“选项”类别、桌面)。
上下文菜单
快捷键:<Shift>+<F10>
您可以使用鼠标右键,而不是使用菜单栏来执行命令。然后出现的菜单包含选定对象或活动编辑器最常用
的命令。可用命令的选择会自动适应活动窗口。可用命令的选择会自动适应活动窗口。
4.2 项目选项...
'项目''选项'
使用此命令,将打开用于设置选项的对话框。这些选项分为不同的类别。通过单击鼠标或使用箭头键在对
话框左侧选择所需的类别,然后更改右侧的选项。
为当前项目设置的选项的图像将在组件“工作区”的“资源”选项卡中找到。
除其他外,设置还用于配置主窗口的视图。除非另有说明,否则它们将保存在文件“CoDeSys.ini”中,
并在下次CoDeSys启动时恢复。
CoDeSysV2.3版本 4-3
项目选项...
加载和保存选项
如果在“选项”对话框中选择此类别,则会出现以下对话框:
“加载并保存”类别的“选项”对话框
激活选项时,该选项之前会出现一个复选标记( )。
创建备份:CoDeSys 在每次保存时都会创建一个扩展名为“.bak”的备份文件。与 *.asd 文件( 下文,“
自动保存”)相反,此 *.bak 文件在关闭项目后保留。因此,您可以恢复上次保存项目之前的版本。
4-4 CoDeSysV2.3版本
4 - 单个组件
您现在可以决定是要打开原始文件还是自动保存文件。
如果库 *.lib 作为项目打开,则将创建相应的自动保存文件“*.asl”。
编译前自动保存:每次编译前都会保存项目。在这样做时,将创建一个扩展名为“.asd”或“.asl”的文件,
其行为类似于上面描述的“自动保存”选项。
询问项目信息:保存新项目或以新名称保存项目时,系统会自动调用项目信息。您可以使用命令“项目”“
项目信息”可视化项目信息并对其进行处理。
用户信息选项
如果在“选项”对话框中选择此类别,则会出现以下对话框:
“用户信息”类别的“选项”对话框
用户信息属于用户的名称、他的姓名首字鴏缩写和 他工作的公司。每个条目都可以修改。这些设置将应
用于将在本地计算机上使用CoDeSys 创建的任何其他项目。
CoDeSysV2.3版本 4-5
项目选项...
编辑器选项
如果在“选项”对话框中选择此类别,则会看到如下所示的对话框。
您可以对编辑器进行以下设置:
自动声明:如果激活此选项,则在输入尚未声明的变量后,所有编辑器中将出现一个对话框,可以使用该
对话框声明此变量。
自动格式化:如果激活此选项,则 CoDeSys 将在 IL 编辑器和声明编辑器中执行自动格式化。当您用一
行结束时,将采用以下格式:1.用小写字鯦书写的运算符以大写字鯦显示; 插入制表符,以均匀划
分列。
列出组件:如果激活此选项,则“智能感知功能”将可用于用作输入助手。这意味着,如果在应插入标识
符的位置插入一个点,则将打开一个选择列表,提供在项目中找到的所有全局变量。如果插入功能块实例
的名称,则将获得实例化功能块的所有输入和输出的选择列表。“Intellisense 函数”在编辑器、Watch- 和
Recipemanager、可视化和 SamplingTrace 中可用。
“编辑器”类别的“选项”对话框
声明为表:
如果激活此选项,则可以编辑表中的变量,而不是使用通常的声明编辑器。此表的排序方式类
似于卡片盒,您可以在其中找到输入变量、输出变量、局部变量和in_out变量的选项卡。对于每个变量,
都有用于插入名称、地址、类型、初始和注释的编辑字段。
4-6 CoDeSysV2.3版本
4 - 单个组件
用于设置字体的对话框
标记:在“选项”对话框的“编辑器”类别中选择“标记”时,可以选择图形编辑器中的当前选区是用虚线矩
形(Dotted)、带连续线的矩形(Line)还是填充矩形(Filled)表示。在最后一种情况下,选择显示为
倒置。
位值:在“选项”对话框的“编辑器”类别中选择位值时,可以选择在监视期间是否应将二进制数据(类型
BYTE、WORD、DWORD)显示为十进制、十六进制或二进制。
显示POU 符号:如果激活此选项,则在插入到图形编辑器的模块框中,如果符号在库文件夹中以位图形
式提供,则还会显示这些符号。位图文件的名称必须由模块名称和扩展名“.bmp”组成。示例:对于模块
TON,有一个可用的符号文件TON.bmp。该框将显示如下:
桌面选项
如果在“选项”对话框中选择此类别,则会看到如下所示的对话框。
当一个选项被激活时,它前面会出现一个勾选。
工具栏:带有按钮的工具栏可在菜单栏下方显示,以便更快地选择菜单命令。
状态栏:CoDeSys 主窗口下边缘的状态栏变为可 。
在安全模式下在线:在在线模式下,使用命令“运行”、“停止”、“重置”、“切换断点”、“单周期”、“写入
值”、“强制值”和“释放力”,会出现一个对话框,其中包含确认请求是否应真正执行命令。如果目标系统
支持,当您想将实际项目从编程系统加载到 PLC 时,可能会有一个扩展对话框如果 PLC 上已经有一个项
目,此对话框将显示该项目的项目信息以及当前要加载的项目的信息。当 PLC 上已经有引导项目时,如
果创建引导项目,也可以使用此项目信息。
此选项将与项目一起保存。
CoDeSysV2.3版本 4-7
项目选项...
“桌面”类别的“选项”对话框
不将通信参数保存在项目中:通信参数对话框的设置(“在线”“通信参数”)不会与项目一起保存。
显示打印区域边距:
在每个编辑器窗口中,当前设置的打印范围的限制都用红色虚线标记。其尺寸取决于
打印机特性(纸张尺寸、方向)和设置打印布局的“内容”字段的大小(菜单:“文件”“文档设置”)。
F4 忽略警告:编译后,当在消息窗口中按下 F4 时,焦点仅跳到包含错误消息的行;警告消息将被忽略。
MDI 表示形式:默认情况下,此选项(多文档界面)处于激活状态,因此可以同时打开多个窗口。如果
禁用该选项(SDI 模式),则只能打开一个窗口,并将以全屏模式显示。例外:即使在 MDI 模式下,程
序的操作和程序本身也可以并排显示。
通信超时[ms]:对于标准通信服务:以毫秒为单位的时间跨度,在此之后,如果未检测到更多活动,则
与目标系统的通信将终止。可能的值:1-10000000 毫秒。
下载通信超时 [ms]:用于持久的通信服务(程序下载、文件上传和下载、启动项目创建和检查):时间
跨度(以毫秒为单位),在此时间跨度之后,如果未检测到更多活动,则与目标系统的通信将终止(下载
等待时间)。可能的值:1-10000000 毫秒。
语言:在此处定义菜单和对话框文本应以哪种语言显示。
注意: 请注意,在Windows98T下无法选择语言!
注意:设置将存储在 CoDeSys 中。
4-8 CoDeSysV2.3版本
4 - 单个组件
颜色选项
如果在“选项”对话框中选择此类别,则会出现以下对话框:
“颜色”类别的“选项”对话框
您可以编辑CoDeSys的默认颜色设置。您可以选择是要更改行号(默认预设:浅灰色)、断点位置(深
灰色)、设置断点(浅蓝色)、当前位置(红色)、到达位置(绿色)或监视布尔值(蓝色)的颜色设
置。
如果选择了指示的按钮之一,则将打开用于输入颜色的对话框。
用于设置颜色的对话框
CoDeSysV2.3版本 4-9
项目选项...
目录选项
如果在“选项”对话框中选择此类别,则会出现以下对话框:
“目录”类别的“选项”对话框
请注意:
-库路径可以根据项目文件的路径输入,方法是在前面加上点“.”。例如:如果输入“.\libs”,则如果当前项目位于“C:
\programs\projects”中,则还将在“C:\programs\projects\libs”中搜索库。有关库路径的信息,另请参 :“第 6.4
章”插入“”附加库”。-请勿在目录路径中使用空格和特殊字符,但“_”除外。
“项目”区域中的信息 与项目一起存储。
公共区域中的信息将写入编程系统的 ini 文件,因此适用于所有项目。
目标区域仅显示目标系统中设置的库和配置文件的目录,例如通过目标文件中的条目。这些字段无法编
辑,但可以选择和复制条目(鼠标右键上下文菜单)。
CoDeSys 通常首先在“项目”中输入的目录中进行搜索,然后在“目标”(在目标文件中定义)中的目录中
搜索,最后在“通用”下列出的目录中搜索。如果找到两个名称相同的文件,则将使用最先浏览的目录中的
文件。
日志选项
如果在“选项”对话框中选择此类别,则会看到如下所示的对话框。
在此对话框中,您可以配置文件,该文件充当项目日志,记录联机模式处理期间的所有用户操作和内部进
程(另请参阅:日志)。
如果打开了尚未生成日志的现有项目,则会打开一个对话框,该对话框提醒人们注意现在正在设置日志,
该日志将在下一个登录过程后接收其第一个输入。
保存项目时,日志会自动以二进制文件的形式存储在项目目录中。如果您更喜欢其他目标目录,可以激活
选项 Directoryforprojectlogs:并输入
编辑字段中的相应路径。为此,使用按钮访问“选择目录”对话框。
4-10 CoDeSysV2.3版本
4 - 单个组件
“日志”类别的选项对话框
日志功能可以在选项字段激活日志记录中打开或关闭。
您可以在“筛选器”区域中选择要记录的操作:用户操作、内部操作、状态更改、异常。只有属于此处选
中的类别的操作才会显示在“日志”窗口中,并写入日志文件。(有关类别的说明,请参阅日志)。
可以使用命令“窗口”“日志”打开日志窗口。
构建选项
如果在“选项”对话框中选择此类别,则会看到如下所示的对话框。
调试:根据目标描述,此选项是否可以由用户激活/停用,即给定的设置。如果激活它,则会创建其他调
试代码,也就是说,代码可能会变得相当大。需要调试代码才能使用CoDeSys提供的调试功能(例如断
点)。关闭此选项后,项目处理速度会变快,代码大小会减小。该选项与项目一起存储。
替换
常量:直接加载标量类型的每个常量的值(因此不适用于字符串、数组和结构),在联机模式下,常
量以绿色显示。这样就不再可能对常量进行强制、写入和监视。如果该选项被停用,则该值将通过变量访
问加载到存储位置(这实际上允许写入变量值,但意味着更 的处理时间)。
在这里,以第一个括号开头的注释不会由“checked”后面的括号结束,而只能由最后一个括号结束。
CoDeSysV2.3版本 4-11
项目选项...
“生成”类别的“选项”对话框
创建应用程序的二进制文件: 在编译过程中,在项目目录中创建生成的代码(启动项目)的二进制映像。
文件名: <project_name>.bin.相比之下,命令“Online”“Createbootproject”在控制器上设置启动项目。
操作隐藏程序:
默认情况下,当创建新项目时,此选项处于激活状态。这意味着:如果局部操作与全局变
量或程序具有相同的名称,则以下层次结构有效:局部变量在局部操作之前,在全局变量之前程序。
排除对象:此按钮打开对话框从构建中排除对象:在项目组件树中,选择那些在编译过程中不应考虑的
POU,并激活选项排除。 此后,排除的 POU 将在选择树中显示为绿色。按下按钮排除未使用,如果您
只想显示程序中当前使用的那些 POU。请注意,也可以使用上下文菜单中的“从构建中排除”命令从构建
中排除在对象管理器中选择的单个对象。
为了对编译过程施加控制,您可以设置两个宏:编译前宏字段中的宏在编译过程之
4-12 CoDeSysV2.3版本
4 - 单个组件
前执行;编译后宏字段中的宏在编译过程之后执行。但是,此处不能使用以下宏命令:文件新建、文件打
开、文件关闭、文件另存为、文件退出、联机、项目编译、项目检查、项目生成、项目清理、项目重建、
调试、监视列表。
自动检查:
为了在每次编译项目时检查语义正确性,可以激活以下选项:
未使用的变量
重叠的内存区域
并发访问
输出上的多个写入访问权限
结果将显示在消息窗口中。这些检查也可以通过“项目”菜单中“检查”子菜单的相应命令启动。
如果目标系统支持,则否定的检查结果将产生编译器错误。
注:“生成选项”对话框中的所有条目都与项目一起存储。
密码
为了保护您的文件免受未经授权的访问,CoDeSys 提供了使用密码的选项,以防止您的文件被打开或更
改。
如果在“选项”对话框中选择此类别,则会看到相应的对话框。
在密码字段中输入所需的密码。对于每个键入的字符,字段中会出现一个星号(*)。您必须在“确认密
码”字段中重复相同的单词。单击“确定”关闭对话框。如果您收到以下消息:
“密码与确认不一致”,
然后,您在两个条目之一中犯了键入错误。在这种情况下,重复这两个条目,直到对话框关闭而不显示消
息。
如果您现在保存文件,然后重新打开它,则会出现一个对话框,要求您输入密码。然后,只有在输入正确
的密码时才能打开项目。否则,CoDeSys 会报告:
“密码不正确。”
“密码”类别的“选项”对话框
CoDeSysV2.3版本 4-13
项目选项...
在打开文件的同时,您还可以使用密码来防止文件被更改。为此,您必须在写保护密码字段中输入密码,
并在下面的字段中确认此输入。
可以在没有密码的情况下打开写保护项目。为此,只需按下按钮取消,
如果 CoDeSys 告诉您在打开文件时输入写保护密码。现在您可以编译项目、将其加载到 PLC 中、模拟
等,但您不能更改它。
当然,记住这两个密码很重要。但是,如果您忘记了密码,请联系您的 PLC 制造商。
密码与项目一起保存。
为了创建差异化的访问权限,您可以定义用户组和“用户组的密码”)。
源码下载
选择此类别时,将打开以下对话框:
“源下载”类别的“选项”对话框
使用加载时隐式选项,可以在命令“在线”、“下载”上将选定的文件范围自动加载到控制器系统中。
使用“按需”选项时,必须通过发出命令“在线”、“源代码下载”将所选范围的文件明确加载到控制器系统
中。
4-14 CoDeSysV2.3版本
4 - 单个组件
“符号配置”选项
此处显示的对话框(在模拟模式下不可用!)用于配置符号文件,该文件将在每次项目编译期间创建。符
号文件在项目目录中分别创建为文本文件<项目名称>.sym)作为二进制文件<项目名称>.sdb(格式取决
于使用的网关版本)。该文件需要通过符号接口与控制器进行数据交换,并将用于此目的,例如由OPC
或GatewayDDE服务器使用。
如果激活了创建符号条目选项,则项目变量的符号条目将自动写入符号文件。否则,仅包含有关文件和项
目的版本信息。
配置符号条目时,请考虑以下事项:
如果在目标设置中激活了“来自 INI 文件的符号配置”选项,则符号配置将从 codesys.ini 文件或从那里定
义的另一个 ini 文件中读取。(在这种情况下,无法编辑 CoDeSys 中的“设置对象属性”对话框)。
“设置对象属性”对话框(在选项类别“符号配置”中)
使用树状结构选择编辑器标记应在符号文件中输入的变量。为此,您可以选择一个POU条目(例如全局
变量),该条目将自动标记属于此 POU 的所有变量,或者您可以选择在树中找到为每个 POU 列出的单
个变量。然后通过在相应的小框上单击鼠标在对话框的下部设置所需的选项。激活的选项被选中。可以设
置以下选项:
导出对象的变量:所选对象的变量将导出到符号文件中。
仅当激活“导出对象变量”选项时,以下选项才能生效:
导出数据条目:为对象的结构和数组创建用于访问全局变量的条目。
导出结构组件:为对象结构的每个可变组件创建一个单独的条目。
CoDeSysV2.3版本 4-15
项目选项...
导出数组条目:为对象数组的每个变量组件创建一个单独的条目。
写入访问权限:OPC 服务器可能会更改对象的变量。
完成当前所选变量的选项设置后,还可以选择其他 POU(无需关闭对话框),并指定选项配置。可以对
任何所需数量的 POU 选择一个接一个地执行此操作。通过选择“确定”关闭对话框时,将应用自打开对话
框以来执行的所有配置。
注意:考虑在变量声明中使用编译指示的可能性,这可能定义变量被带到具有受限访问权限的符号文件,或者将其从
符号文件中排除。
“项目源代码管理”选项
此对话框用于定义是否应在项目数据库中管理项目,并相应地配置弹性网卡接口。
如果激活该选项,则数据库函数(签入、获取最新版本等)将可用于处理项目 POU。然后,一些数据库
函数将像选项对话框中定义的那样自动运行,在菜单“项目”“数据库链接”中,您将找到用于显式调用函
数的命令。除此之外,还将在“属性”对话框中添加一个“数据库连接”选项卡,您可以在其中将 POU 分配
给特定的数据库类别。
项目源代码管理类别的“选项”对话框
将新对象与以下数据库连接起来:
在这里,您可以设置一个默认值:如果在项目中插入了一个新对象(“项目”“对象”“添加”),则它将自
动分配给此处定义的对象类别。此分配将显示在对象属性对话框(“项目”、“对象”、“属性”)中,以后
可以在那里进行修改。可能的任务:
4-16 CoDeSysV2.3版本
4 - 单个组件
象”之外,还有第三个数据库类别“编译文件”,用于此类对象,这些对象在项目编译之前不会创建。因
此,此类别与当前设置无关。
询问新对象的类型: 如果激活此选项,则每当将新对象添加到项目中时,都会打开 “ 对象 ”“ 属性 ” 对话
框,您可以在其中选择应将 POU 分配给上述三个对象类别中的哪一个。通过这样做,可以覆盖标准设
置。
注意:在任何情况下,每个对象也将存储在本地(与项目一起)。
如果您正在执行主要配置,该对话框将一个接一个地打开。在本例中,向导
(按钮下一步)将指导您,在第一个对话框中输入的设置将自动复制到其他对话框中,因此如果您需要不
同的参数值,您只需修改它们即可。
如果要修改现有配置,则将三个对话框合并到一个窗口(三个选项卡)中。
如果您之前尚未成功登录到数据库,则将自动打开“登录”对话框。
有关项目数据库的项目对象和共享对象的选项
这些对话框是项目数据库选项(“项目”、“选项”、“项目源代码管理”)配置的一部分。在这里,您可以
定义数据库类别“项目对象”和“共享对象”的访问参数。两个对话框都包含相同的项目。(第三个对话框
可用于配置对数据库类别“编译文件”的访问,请参阅下一章)
ENI-连接
只读 如果激活此选项,则只能对上述定义的数据库文件夹进行读取访问。
CoDeSysV2.3版本 4-17
项目选项...
选项类别中的“项目对象”对话框项目源代码管理
获取最新版本
数据库函数“获取最新版本”(菜单“项目”“数据库链接”)将最新版本的 POU 从上述定义的数据库
文件夹复制到当前打开的项目,从而覆盖对象的本地版本。一旦满足设置的计时条件之一,就会自
动对所有对象执行此操作,这些对象在数据库中找到的版本与项目中的版本不同。通过设置复选标
记来激活所需的时间选项:
在CoDeSys 中的任何编译过程之前
退房
数据库函数“检出”意味着 POU 将被标记为“正在工作”,并将对其他用户锁定,直到通过“检入”
或“撤消检出”命令再次取消阻止。
如果激活了“开始编辑时立即”选项,则在开始编辑对象后,将自动检出对象。如果该对象当前已被
其他用户检出(在 CoDeSys 对象管理器中,对象名称前的红叉表示),则会弹出一条消息。
4-18 CoDeSysV2.3版本
4 - 单个组件
登记
数据库函数“签入”意味着将在数据库中创建对象的新版本。无论如何,旧版本都会保留。
您可以激活以下一个或两个选项来定义自动签入的时间:
在项目中保存项目后立即保存
成功编译后,一旦项目编译完毕,就没有错误
对于每个选项“获取最新版本”、“签出”和“签入”,还可以激活带有查询的选项。在这种情况下,在
执行相应操作之前,将打开一个对话框,您仍然可以在其中决定取消操作或以其他方式确认操作。
“共享对象”对话框的项目与上述“项目对象”对话框中的项目相同。这些设置适用于分配给数据库类别“
共享对象”的所有对象。
如果执行主要配置,配置对话框将一个接一个地出现,并且您将由向导引导(按钮“下一步”)。因此,您
还将进入编译文件选项的配置对话框,请参阅下一章。在第一个对话框中所做的设置将自动继承到其他对
话框中。因此,如果需要修改,只需编辑这些内容即可。
“取消”将关闭对话框,而不在当前打开的对话框中保存已完成的修改。返回到主对话框“选项”“项目源代
码管理”。
如果修改了现有配置,则可以通过按OK保存新设置(针对所有三个对话框)。之后,对话框将关闭,您
将返回主对话框“选项”“项目源代码管理”。
有关项目数据库的编译文件选项
此对话框是项目数据库(“项目”、“选项”、“项目源代码管理”)选项设置的一部分。在这里,您可以定
义如何在数据库中处理类别为“编译文件”的对象。(除此之外,还有两个对话框可用于为“项目对象”和“
共享对象”类别的对象定义这一点,请参阅上一章。
“项目源代码管理”类别中的“编译文件”对话框
CoDeSysV2.3版本 4-19
项目选项...
创建启动项目 如果激活此选项,则每当启动项目时
创建时,此文件将自动写入数据库。
如果您正在执行主要配置,则配置对话框将在向导(按钮“下一步”)的指导下一个接一个地出现。在第一
个对话框中所做的设置将自动继承到其他对话框中。因此,如果需要修改,只需编辑这些内容即可。
“取消”将关闭对话框,而不在当前打开的对话框中保存已完成的修改(无论如何,将保留在先前对话框中
所做的设置)。返回到主对话框“选项”“项目源代码管理”。
如果您修改了现有配置,则可以通过按OK保存新设置(针对所有三个对话框)。之后,对话框将关闭,
您将返回主对话框“选项”“项目源代码管理”。
“宏”选项
如果在“选项”对话框中选择此类别,则会打开一个对话框,您可以在其中使用 CoDeSys 批处理机制的命
令定义宏。之后可以在“编辑”“宏”菜单中调用这些宏。
“宏”类别的“选项”对话框
执行以下步骤以定义新宏:
在输入字段“名称”中,输入要创建的宏的名称。按下“新建”按钮后,此名称将传输到“宏列表”字段中,
并在此处标记为选中。宏列表以树结构表示。本地定义的宏位于另一个宏的下方。如果集成了宏库( 下
文),则将列出库名称,通过鼠标单击这些条目前面的加号或减号,您可以打开或关闭库元素列表。
菜单字段用于定义宏将出现在“编辑”“宏”菜单中的菜单项。为了能够使用单个字鯦作为快捷方式,该字
鯦前面必须有符号“&”。示例:名称“ &cro1”生成菜单项“宏 1”。示例:名称“ &cro1”将创建一个菜
单项“宏 1”。
4-20 CoDeSysV2.3版本
4 - 单个组件
在编辑器字段的“命令”中,定义和/或编辑要构成新创建或选定宏的命令。允许使用CoDeSys批处理机制
的所有命令以及所有对这些命令有效的关键字。您可以通过按“帮助”按钮获取列表。按 <Ctrl><Enter>
启动新的命令行。通过按鼠标右键获得具有常用文本编辑器功能的上下文菜单。可以使用引号对属于一起
的命令组件进行分组。
如果要删除宏,请在宏列表中选择它,然后按按钮 <Del>。
如果要重命名宏,请在宏列表中选择它,在编辑字段“名称”中插入一个新名称,然后按“重命名”按钮。
要 编辑现有宏,请在宏列表中选择它,然后编辑字段“菜单”和/或“命令”。按下 OK 按钮时,修改将被保
存。
按下 OK 按钮关闭对话框后,所有宏的实际描述都将保存在项目中。
“编辑”“宏”菜单中的宏菜单项现在按定义顺序显示。在进行菜单选择之前,不会检查宏。
宏库:
宏可以保存在外部宏库中。这些库可以包含在其他项目中。
创建包含当前打开的项目宏的宏库:按“创建”按钮。您将看到“合并项目”对话框,其中列出了所有可用
的宏。选择所需的条目,然后单击“确定”进行确认。选择对话框将关闭,并打开“保存宏库”对话框。在
此处插入新库的名称和路径,然后按按钮保存。
将创建名为 <libraryname>.mac的库,对话框将关闭。
在当前打开的项目中包括宏库<库名称>.mac:按下按钮 Include。将打开“打开宏库”对话框,其中显示
扩展名为 *.mac 的文件。选择所需的库,然后按“打开”按钮。对话框将关闭,库将添加到宏列表的树
中。
提示: 项目的宏也可以导出('Project''Export')。
CoDeSysV2.3版本 4-21
管理项目...
4.3 管理项目...
引用整个项目的命令位于菜单项“文件”和“项目”下。
“文件”“新建”
象征:
使用此命令,您可以创建一个名为“Untitled”的空项目。保存时必须更改此名称。
“文件”“从模板新建”
使用此命令将任何所需的 CoDeSys 项目作为“模板”项目打开。打开项目文件的对话框将可用,所选项目
将以项目名称“未知”打开。
“文件”“打开”
象征:
使用此命令,您可以打开一个已经存在的项目。如果项目已经打开并更改,则 CoDeSys 会询问是否应保
存此项目。
将显示用于打开文件的对话框,并且必须选择扩展名为“*.pro”的项目文件或扩展名为“*.lib”的库文件。此
文件必须已存在。无法使用命令“打开”创建项目。
用于打开文件的对话框
从 PLC 打开项目
要从 PLC 上传项目文件,请在从 PLC 打开项目时按 PLC。接下来,您将获得“通信参数”对话框(参
菜单“在线”“通信参数”),用于在与 PLC 尚未连接时设置传输参数。创建联机连接后,系统会检查计算
机硬盘上的目录中是否已存在相同命名的项目文件。在这种情况下,您会收到对话框“从控制器加载项目
”,您可以在其中决定是否应将本地文件替换为控制器正在使用的文件。(此序列与“在线”“加载源代码”
的顺序相反,项目源文件存储在控制器中。不要与“创建启动项目”混淆!
4-22 CoDeSysV2.3版本
4 - 单个组件
从源代码管理器(ENI数据库)打开项目
要打开存储在 ENI 项目数据库中的项目,可以使用激活选项从源代码管理器打开项目。前提是您有权访
问为数据库提供服务的ENI 服务器。按下按钮ENI...,进入一个对话框,您可以在其中连接到有关数据库
类别“项目对象”的服务器。
插入相应的访问数据(TCP/IP地址、端口、用户名、密码、只读)和应从中获取对象的数据库文件夹(
项目名称),然后单击“下一步”进行确认。该对话框将关闭,另一个对话框将打开,您必须在其中插入
数据库类别“共享对象”的访问数据。如果按下“完成”按钮,对话框将关闭,定义的文件夹的对象将自动
检索并显示在 CoDeSys 对象管理器中。如果要继续将项目对象置于数据库控制之下,请打开“项目选项”
对话框以设置所需的参数。
如果已为项目定义了“密码”或“用户组”,则会出现一个用于输入密码的对话框。
'文件''关闭'
使用此命令,可以关闭当前打开的项目。如果项目已更改,则 CoDeSys 会询问是否要保存这些更改。
如果要保存的项目的名称为“Untitled”,则必须为其命名(请参阅“文件”“另存为”)。
'文件''保存'
符号:快捷键:<Ctrl>+<S>
使用此命令,可以保存项目中的任何更改。如果要保存的项目名为“Untitled”,则必须为其命名(请参阅“
文件”“另存为”)。
“文件”“另存为”
使用此命令,可以将当前项目保存在另一个文件中或作为库保存。这不会更改原始项目文件。
选择命令后,将显示“保存”对话框。选择现有文件名或输入新文件名并选择所需的文件类型。
CoDeSysV2.3版本 4-23
管理项目...
“另存为”对话框
您还可以将当前项目另存为库,以便在其他项目中使用它。选择文件类型内部库(*.lib)如果您在
CoDeSys 中对 POU 进行了编程。
如果要实现和集成其他语言(例如 C)的 POU,请选择文件类型外部库(*.lib)。这意味着还会保存另
一个文件,该文件接收库的文件名,但扩展名为“*.h”。此文件构造为 C 头文件,其中包含所有 POU、数
据类型和全局变量的声明。如果使用外部库,则在仿真模式下,将执行为 CoDeSys 中的 POU 编写的实
现。使用真实的硬件,将执行用 C 编写的实现。
用于项目加密的对话框
加密扩展了对项目的保护,到目前为止,只有通过分配密码进行访问和写保护才能实现。这些可能性将进
一步存在,但考虑到它们无法避免库包含在项目中而无需输入库密码(密钥)。
定义密钥后,将与项目的任何进一步节省一起保存。要修改该密钥,您必须再次使用“另存为”对话框。
如果应打开加密项目,或者应在项目中使用加密库,则会出现要求输入密钥的对话框。
用于输入密钥的对话框
4-24 CoDeSysV2.3版本
4 - 单个组件
许可库:
如果要将项目另存为许可库,可以在“编辑许可信息”对话框中添加相应的许可信息。按按钮打开对话框编
辑许可证信息...。
请参阅“CoDeSys 中的许可证管理”中的说明。
完成所有设置后,按OK。当前项目将保存在指定的文件中。如果新文件名已存在,则系统会询问您是否
要覆盖此文件。
另存为库时,将编译整个项目。如果因此发生错误,则会告知您需要正确的项目才能创建库。然后,项目
不会另存为库。
'文件''保存/邮件存档'
此命令用于设置和创建项目存档文件。CoDeSys 项目引用和使用的所有文件都可以打包到压缩的 zip 文
件中。zip文件可以存储,也可以直接通过电子邮件发送。如果要转发一组所有与项目相关的文件,这将
非常有用。
请注意:
存档功能对于恢复项目环境并不实用。它被指定用于轻松打包属于项目的所有文件。解压缩存档时,特定文
件的路径必须适应实际的 CoDeSys 环境!
执行该命令时,将打开“保存存档”对话框:
用于设置存档 ZIP 的对话框
CoDeSysV2.3版本 4-25
管理项目...
该对话框显示可用于该类别的所有文件的列表:自动选择所有文件,例外是类别“目标文件”,其中仅选择
与当前设置的目标系统相关的文件。要修改选择,请激活或停用所需的文件。使用“全选”按钮,将选择
列表中的所有文件,使用“无”选项,则不选择任何文件。可以通过在复选框中单击鼠标来选择/取消选择
单个文件,也可以通过双击列表条目或在标记列表条目时按空格键来选择/取消选择单个文件。
使用“保存”关闭“详细信息”对话框以存储新设置。
在主对话框中,类别复选框(并非所有文件都被选中)将以灰色背景颜色显示。以下文件类别可用,表的
右列显示哪些文件可以添加到 zip 文件:
类别 达蒂恩
引用的库 *.lib、*.obj、*.hex(库以及相应的对象和十六进制文件(如果可用)
编译信息 *.ci(编译信息)、*.ri(下载/参考信息)
<temp>.*(临时编译和下载文件)也用于模拟
INI 文件 Codesys.ini
日志文件 *.log(项目日志文件)
符号文件 *.sdb、*.sym(符号信息)
4-26 CoDeSysV2.3版本
4 - 单个组件
语言文件 用于可视化的语言文件(*.vis、*.xml)
Bootproject(启动项目) Bootproject 文件<项目名称>.prg、<项目名称>.chk 或特定于目标的 bootproject 文
件。
要将任何其他文件添加到 zip,请按按钮其他文件.将打开“其他文件”对话框,您可以在其中设置所需文件
的列表。
按“添加”按钮打开用于打开文件的标准对话框,您可以在其中浏览文件。选择一个,然后单击“打开”进
行确认。该文件将被添加到“其他文件”对话框中的列表中。对要添加的每个文件重复此操作。要从列表中
删除条目,请按“删除”按钮。当所选文件列表正常时,单击“确定”关闭对话框。
要将自述文件添加到存档 zip,请按“注释”按钮。将打开一个文本编辑器,您可以在其中输入任何文本。
如果单击“确定”关闭对话框,则在创建 zip 文件期间将添加一个readme.txt文件。除了输入的注释外,它
还将包含有关 CoDeSys 的构建日期和版本的信息。
如果已完成所有所需的选择,请在主对话框中按
救。。。要创建并保存存档 zip 文件:将打开用于保存文件的标准对话框,您可以输入应存储 zip 的路
径。默认情况下,zip 文件名为<projectname>.zip。单击“保存”进行确认 以开始构建它。在创建过程
中,将显示当前进度状态,并在消息窗口中列出后续步骤。如果找不到任何文件,也会显示一条消息。
CoDeSysV2.3版本 4-27
管理项目...
“文件”“打印”
快捷键:<Ctrl>+<P>
使用此命令,将打印活动窗口的内容。
选择命令后,将显示“打印”对话框。选择所需的选项或配置打印机,然后单击“确定”。打印活动窗口。
所有编辑器都提供颜色输出。
您可以确定份数并将版本打印到文件中。
使用“属性”按钮,您可以打开对话框以设置打印机。
您可以使用命令“文件”“打印机设置”确定打印输出的布局。
在打印过程中,对话框显示已打印的 数。关闭此对话框后,打印将在下一 后停止。
为了记录您的整个项目,请使用命令“项目”“文档”。
如果要为项目创建一个文档框架,您可以在其中存储有关项目中使用的所有变量的注释,请打开全局变量
列表并使用命令 “Extras”“Makedocuframefile”。
“打印”对话框
“文件”“打印机设置”
使用此命令,您可以确定打印 面的布局。现在将打开以下对话框:
“ 面布局”对话框
4-28 CoDeSysV2.3版本
4 - 单个组件
在“文件”字段中,您可以输入扩展名为“.dfr”的文件的名称,其中应保存 面布局。设置的默认目标是文
件 DEFAULT。DFR。
如果要更改现有布局,请使用“浏览”按钮浏览目录树以查找所需的文件
您还可以选择是否为每个对象和每个子对象开始一个新 面。使用“打印机设置”按钮打开打印机配置。
用于在 面布局上粘贴占位符的窗口
命令 占位符 影响
{ } 此处,当前 码显示在打印输出中。
POU 名称 {POU 名称} 此处显示 POU 的当前名称。
文件名 {文件名} 此处显示项目名称。
日期 {日期} 此处显示当前日期。
内容 {内容} 此处显示 POU 的内容。
此外,使用“插入”、“位图”,您可以在 面中插入位图图形(例如公司徽标)。选择图形后,还应使
用鼠标在布局上绘制一个矩形。可以插入其他可视化元素(请参阅可视化)。
提示:为了了解对打印输出有效的 面格式,请如上所述定义布局,并在项目选项的“桌面”类别中额外激活“显示打
印区域边距”选项。
CoDeSysV2.3版本 4-29
管理项目...
“文件”“退出”
快捷键:<Alt>+<F4>
使用此命令,您可以退出 CoDeSys。
如果一个项目被打开,那么它就会被关闭,如“文件”“保存”中所述。
'Project' 'Build'
快捷键:<F11>
该项目是使用 'Project''Build' 编译的。编译过程基本上是增量式的,即只对更改的 POU 进行重新编译。
保存项目时,有关上次编译的必要信息存储在 *.ci 文件中。如果首先执行命令“Project”“全部清除”,也
可以获得非增量编译。
请参阅所有可用错误消息和警告的列表。
项目消息窗口中的错误消息和编译信息示例
如果在“加载并保存”类别的选项对话框中选择了“编译前保存”选项,则在编译之前存储项目。
在对象管理器中选择的对象可以通过上下文菜单中的“从构建中排除”命令从编译中排除多个对象,或者通
过构建选项中的适当配置(“排除对象”)从编译中排除(参 第 4.2 章“构建选项”)。
4-30 CoDeSysV2.3版本
4 - 单个组件
'Project''全部重建'
使用 'Project''Rebuildall' ,与增量编译( 'Project''Build'. 项目。。 Build.>Proc ),则项目将完全重新编
译。但是,下载信息不会被丢弃,就像命令“全部清除”一样。考虑从编译中排除对象的可能性(请参 第
4.2 章“构建选项”)。
'Project''全部清理'
使用此命令,将删除上次下载和上次编译中的所有信息。
选择该命令后,将出现一个对话框,报告不再可以在没有新下载的情况下登录。此时,可以取消或确认该
命令。
'Project''加载下载信息'
使用此命令,可以重新加载属于项目的下载信息。选择命令后,将打开标准对话框“文件打开”。
下载信息在每次下载时自动保存,并且根据目标系统的不同,可能在每次脱机创建引导项目时保存到一个
名为<projectname><targetidentifier>.ri的文件,该文件被放入项目目录中。每次重新打开项目时,都
会重新加载此文件,并在登录时用于检查已更改的 POU 的代码。在在线更改过程中,只有这些 POU 才
会加载到 PLC。因此,*.ri 文件是在线更改的先决条件。
但 是 : 如 果 项 目 目 录 中 的 *.ri 文 件 被 命 令“Project”“全部清除”删除,则只有在将*.ri文件也存储在另
一个目录中时才能重新加载下载信息。请参 第 4.6 章“联机”“登录”中的提示。
'项目''翻译成另一种语言'
此菜单项用于将当前项目文件翻译成另一种语言。这是通过读取从项目生成的翻译文件来实现的,并在文
本编辑器的帮助下以所需的国家语言进行外部增强。该项目可以只显示,也可以真正翻译成生成的语言版
本之一。
存在以下菜单子项:
创建翻译文件
翻译项目
显示已翻译的项目
切换翻译
另请参阅:“编辑翻译文件”
CoDeSysV2.3版本 4-31
管理项目...
创建翻译文件
“项目”“翻译成另一种语言”菜单中的此命令将转到“创建翻译文件”对话框。
在“翻译文件”字段中,输入显示文件存储位置的路径。默认文件扩展名为*.tlt;这是一个文本文件。如果要
在 EXCEL 或 WORD 中处理文件,也可以使用扩展名 *.txt,这是推荐的,因为在这种情况下,数据以表
格格式组织。
用于创建翻译文件的对话框
如果选中相应的选项,则当前项目中的信息将作为语言符号导出到新创建的翻译文件中,或添加到现有翻
译文件中。如果未选择相应的选项,则属于相关类别的信息,无论它来自哪个项目,都将从翻译文件中删
除。
可视化中的文本:
“可视化文本”选项仅涉及可视化元素的“文本”和“工具提示文本”。将翻译文件用于可视化文本时,请考
虑以下事项:
*.tlt- 或 *.txt 翻译文件只能用于 CoDeSys 或 CoDeSysHMI ,但不能用于 Target-Visualization 或
Web-Visualization。最好使用特殊的可视化语言文件 *.vis。
只有在在线模式下才能切换到另一种语言。这意味着可视化文本不会通过命令“翻译成另一种语言”进行翻
译。只有在“附加”的“设置”对话框中输入相应的语言时,才能在在线模式下进行语言更改。
4-32 CoDeSysV2.3版本
4 - 单个组件
位置信息:这描述了规范文件路径、POU 和行可用于翻译的语言符号的位置。有三个选项可供选择:
“无”:不生成位置信息。
“首次出现”:元素首次出现的位置将添加到翻译文件中。
“All”:指定出现相应元素的所有位置。
如果要编辑之前创建的翻译文件,而该文件已经包含比当前选择的位置信息更多的位置信息,则无论它是
从哪个项目生成的,它都会被相应地截断或删除。
注意:即使用户在“创建翻译文件”对话框中的“位置信息”下选择了“全部”,每个元素(语言符号)最多将生成 64 个
位置规范。
覆盖现有位置信息:翻译文件中当前正在处理的现有位置信息将被覆盖,无论哪个项目生成该信息。
目标语言:此列表包含翻译文件中包含的所有语言的标识符,以及在完成“创建翻译文件”对话框后要添加
的语言。
“排除”按钮将打开“排除库”对话框。在这里,可以选择包含在项目中的库,其标识符信息不会传输到翻
译文件中。为此,使用鼠标选择左侧“包含的库”表中的相应条目,并使用“添加”按钮将其放置在右侧
的“排除的库”表中。同样,可以使用“删除”按钮删除已放置在那里的条目 。“确定”确认设置并关闭对话
框。
用于排除翻译文件的库信息的对话框
“添加”按钮将打开“添加目标语言”对话框:
用于添加目标语言的对话框(项目、翻译成另一种语言)
必须在编辑器字段中输入语言标识符;它的开头或结尾可能没有空格或变音字符(ä、ö、ü)。
“确定”关闭“添加目标语言”对话框,新的目标语言将显示在目标语言列表中。
CoDeSysV2.3版本 4-33
管理项目...
“ 删除”按钮从列表中删除选定的条目。
您也可以通过“确定”确认“创建翻译文件”对话框,以生成翻译文件。
如果已存在同名的翻译文件,您将收到以下确认消息,请回答“是”或“否”:
“指定的翻译文件已存在。现在将对其进行更改,并创建现有文件的备份副本。你要继续吗?
“否”将返回“创建翻译文件”对话框,而不执行任何操作。如果选择“是”,则将在同一目录中创建文件名
为“Backup_of_<translationfile>.xlt”的现有翻译文件的副本,并根据输入的选项修改相应的翻译文件。
生成翻译文件时会发生以下情况:
对于每种新的目标语言,都会为要显示的每个语言符号生成一个占位符(“##TODO”)。(有关如何处理
翻译文件,请参阅“翻译文件的编辑”。
如果处理现有翻译文件,则将删除出现在翻译文件中但未出现在目标语言列表中的语言文件条目,而不管
这些条目是从哪个项目生成的。
编辑翻译文件
翻译文件必须打开并另存为文本文件。标志 ## 标记关键字。文件中的 ##TODO 占位符可以替换为有效
的翻译。对于每个语言符号,都会生成一个段落,该段落以类型标识符开头和结尾。例如,
##NAME_ITEM 和 ##END_NAME_ITEM 包含对象管理器中使用的对象名称部分。(COMMENT_ITEM
标记注释部分, IDENTIFIER_ITEM 标记标识符部分, STRING_ITEM 标记字符串部分,
VISUALTEXT_ITEM标记可视化文本部分)。
- 翻译前:
##NAME_ITEM
[D:\CoDeSys\projects\Bspdt_22.pro::ST_Visualisierung::0]ST_Visualisierung##English :: ##TODO##French ::
##TODO
##END_NAME_ITEM
- 翻译后:
##TODOs 已被英文 resp. 取代。法语单词“Visualisierung”:
##NAME_ITEM
[D : \CoDeSys\projects\Bspdt_22.pro : : ST_Visualisierung : : 0]ST_Visualisierung ##English : : ST_Visualization
##French ::ST_Visu
##END_NAME_ITEM
请检查翻译后的标识符和名称是否对标准有效,以及字符串和注释是否在正确的括号中。示例:对于翻译
文件中用 “ ( *Kommentar1 ) ” 表示的注释( ##COMMENT_ITEM ),必须将 “##English” 后面的
“##TODO”替换为“(*comment1*)”。对于用“zeichenfolge1”表示的字符串(##STRING_ITEM),
必须将“##TODO”替换为“string1”。
提示:翻译文件的以下部分不应在没有详细信息的情况下进行修改:语言块、标志块、位置信息、原始文本。
4-34 CoDeSysV2.3版本
4 - 单个组件
将 Project 翻译成另一种语言
“项目”“翻译成另一种语言”菜单中的此命令将打开“将项目翻译成另一种语言”对话框。
用于将项目翻译成另一种语言的对话框
如果使用适当的翻译文件,则可以将当前项目翻译成另一种语言。
注意: 如果要以最初创建项目时所使用的语言保存项目版本,请在翻译之前以其他名称保存项目的副本。
翻译过
程无法撤消。
在这种情况下,考虑仅以另一种语言显示项目的可能性(在此显示版本中,但是不可编辑)。
OK在指定的翻译文件的帮助下开始将当前项目翻译成选定的目标语言。在翻译过程中,将显示一个进度
对话框以及错误消息(如果有)。翻译后,对话框和项目的所有打开的编辑器窗口都将关闭。
“取消”(Cancel)将关闭对话框,而不修改当前项目。
如果翻译文件包含错误条目,则在按下 OK 后会显示一条错误消息,给出文件路径和错误行,例如:
“[C:\Programs\CoDeSys\projects\visu.tlt (78)];预计翻译文本”
注意:请注意可视化中文本的特殊性;请参阅上文“创建翻译文件”。
“显示项目已翻译”
如果项目有可用的翻译文件,则可以显示其中定义的语言版本之一,而不会覆盖项目的原始语言版本。
(将这种可能性与项目的“真实”翻译进行比较,您可以使用命令“翻译项目”来完成,这意味着创建项目
的新版本!
菜单“项目”中的“翻译此项目”命令“翻译成另一种语言”将打开“将项目翻译成另一种语言”对话框。
用于以其他语言显示项目的对话框
在“翻译文件”字段中,插入要使用的翻译文件的路径。您可以通过标准对话框获得帮助,以打开通过“浏
览”按钮打开的文件。
CoDeSysV2.3版本 4-35
管理项目...
在“目标语言”字段中,您可以找到一个选择列表,除了“<鯦语>”条目外,该列表还提供由当前设置的翻
译文件定义的语言标识符。原始语言是当前与项目一起保存的那种语言。(它只能通过“项目”“翻译”进
行更改。选择一种可用语言,然后单击“确定”确认对话框。因此,项目将以所选语言显示,但无法在此视
图中编辑!
如果要更改回以原始语言查看项目,请使用命令“切换翻译”。
注意:请注意可视化中文本的特殊性;请参阅上文“创建翻译文件”。
“切换翻译”
如果您通过命令“显示已翻译的项目”以另一种语言显示项目(不可编辑),您现在可以使用菜单“项目”“
翻译(翻译成另一种语言)”的命令“切换翻译”在此语言版本和(可编辑的)原始版本之间切换。
注意:请注意可视化中文本的特殊性;请参阅上文“创建翻译文件”。
'项目''文档'
此命令允许您打印整个项目的文档。
项目文档对话框
完整文档的要素包括:
POU,
文档的内容,
数据类型,
可视化,
资源(全局变量、变量配置、采样跟踪、PLC 配置、任务配置、观察和配方管理器)
POU 和数据类型的调用树,以及交叉引用列表。
4-36 CoDeSysV2.3版本
4 - 单个组件
对于最后两项,项目必须已正确构建。仅打印对话框中以蓝色突出显示的区域。
如果要选择整个项目,请在第一行中选择项目的名称。
另一方面,如果您只想选择单个对象,请单击相应的对象或使用箭头键将虚线矩形移动到所需的对象上。
在其符号前面有加号的对象是包含其他对象的组织对象。单击加号后,组织对象将展开,单击生成的减号
后,可以再次将其关闭。选择组织对象时,也会选择所有相关对象。通过按 <Shift> 键可以选择一组对
象,按 <Ctrl> 键可以选择多个单独的对象。
做出选择后,单击“确定”。此时将显示“打印”对话框。您可以使用“文件”“打印机设置”确定要打印的
面布局。
'Project''导出'
使用CoDeSys,可以导出或导入项目。这允许您在不同的IEC编程系统之间交换程序。
在对话框窗口中进行选择后(与“项目”“文档”相同),您可以决定是要将所选零件导出到一个文件还是
导出为单独的文件,每个对象一个文件。打开或关闭选项“每个对象一个文件”,然后单击“确定”。此时
将显示用于保存文件的对话框。输入扩展名为“.exp”的文件名,分别是对象导出文件的目录,然后以文件
名 <objectname.exp> 保存在那里。
'Project''导入'
在出现的用于打开文件的对话框中,选择所需的导出文件。
数据将导入到当前项目中。如果同一项目中已存在同名对象,则会出现一个对话框,其中包含问题“是否
要替换它?”:如果回答“是”,则项目中的对象将替换为导入文件中的对象。如果回答“否”,则新对象
的名称将收到下划线和数字(“_0”、“_1”、..)作为补充。使用“是”、“全部”或“否”,将对所有对象
执行所有这些操作。
如果导入信息以链接到库,则该库将被加载并附加到库管理器中列表的末尾。如果库已加载到项目中,则
不会重新加载。但是,如果正在导入的导出文件显示库的存储时间不同,则库名称在库管理器中标有
“*”(例如 standard.lib*30.3.9911:30:14),类似于加载项目。如果找不到库,则会显示一个信息对
话框:“找不到库 {<path>\}<name><date><time>”,就像加载项目时一样。
在消息窗口中,将注册导入。
'项目'' 子进口'
在子菜单“SiemensImport”中,您可以找到用于从 Siemens-STEP5 文件导入 POU 和变量的命令。
CoDeSysV2.3版本 4-37
管理项目...
可以使用以下命令:
“从 SEQ 符号文件导入”
“从 S5 文件导入”
有关 子进口的更多详细信息,请参阅附录 G。
'项目''比较'
此命令用于比较两个项目,或将一个项目的实际版本与最后保存的项目进行比较。
概述:
定义:实际项目: 您当前正在处理的项目。
参考项目: 项目,应与实际项目进行比较。
比较模式: 在此模式下,项目将显示在命令之后
“Project”“Compare”已执行。
单位: 可以比较的最小单位。可以是一行(声明
editor、STeditor、ILeditor)、网络(FBD 编辑器、LD 编辑器)或
element/POU(CFC 编辑,SFC 编辑器)。
在比较模式下,实际项目和参考项目将显示在二部分窗口中。已发现差异的POU的名称用颜色标记。对
于编辑器 POU,POU 的内容也以相对方式显示。结果和比较模式下的呈现方式取决于:1.比较运行激活
了哪些过滤器,影响了比较过程中对空格和注释的考虑;2. 线路、网络或元素内的修改是否被评估为POU
的全新插入。
对于单个差异或“所有同等标记”的差异,可以接受参考项目的版本。接受意味着引用项目的版本被转移到
实际项目中。
请注意:在比较模式下(参 状态栏:COMPARE),项目无法编辑!
执行比较
执行命令“Project”“Compare”后,将打开“项目比较”对话框:
项目比较对话框
在要比较的Project中插入引用项目的路径。如果要使用标准对话框打开项目,请按按钮。如果插入实际
项目的名称,则项目的当前版本将与上次保存的版本进行比较。
4-38 CoDeSysV2.3版本
4 - 单个组件
忽略评论:不会检测到评论中的差异。
忽略属性:不会检测到对象属性的差异。
比较差异:如果POU 中的一条线、一个网络或一个元素被修改,在比较模式下,它将显示在与其他项目
版本正对面的二分窗口中(标记为红色, 下文)。如果该选项被停用,相应的行将在参考项目中显示
为“已删除”,在实际项目中显示为“已插入”(蓝色/绿色, 下文)。这意味着它不会直接显示在其他项
目中的同一行的对面。
例:
0005 行已在实际项目中修改(左侧)。
“反对差异”示例
按OK关闭“项目比较”对话框时,将根据设置执行比较。
比较结果的表示
首先,将打开名为“项目比较”的项目结构树,以显示比较结果。在这里,您可以选择特定的 POU 以详细
了解发现的差异。
1. 比较模式下的项目概述:
执行项目比较后,将打开一个二分窗口,其中显示处于比较模式的项目。在标题栏中,您可以找到项目路
径:“项目比较<实际项目的路径>-<参考项目的路径>”。实际项目在窗口的左半部分表示,参考项目在
右半部分表示。每个结构树在最上层位置显示项目名称,除此之外,它与对象管理器结构相对应。
红色:单位已被修改;在窗口的两个分区中以红色字鯦显示。
蓝色:单位仅在比较项目中可用;在实际项目的结构概述中,将在相应位置插入一个间隙。
绿色:单元仅在实际项目中可用;在实际项目的结构概述中,将在相应位置插入一个间隙。
黑色:未检测到差异的单位。
“(属性已更改)”:如果检测到 POU 属性存在差异,则此文本将附加到项目结构树中的 POU 名称。
CoDeSysV2.3版本 4-39
管理项目...
如果是文本或图形编辑器 POU,它将在二分窗口中打开。参考项目的内容(右侧)与实际项目的内容(
左侧)设置相反。在比较过程中将考虑的最小单位是一条线(声明编辑器, ST , IL ),网络( FBD ,
LD)或元素(CFC,SFC)。如上所述,项目概述将使用相同的颜色。
示例,比较模式下的 POU:
4-40 CoDeSysV2.3版本
4 - 单个组件
如果不是编辑器 POU,而是任务配置、目标设置等,则可以通过双击项目结构中的相应行,在单独的窗
口中打开实际项目和参考项目的 POU 版本。对于这些项目 POU,不会显示差异的进一步详细信息。
在比较模式下工作
如果在二分窗口中,光标放在一条线上,表示差异,则菜单“附加”应退。上下文菜单提供以下命令的选
择,具体取决于是在项目概述中还是在 POU 中工作。
注意:不同项目部分(差异)或访问权限属性的验收只能从参考项目或实际项目进行,反之亦然。
'额外内容''下一个区别'
快捷键:<F7>
此命令在比较模式下可用(参 上文“项目”、“比较”)。
光标跳转到下一个单位,其中指示差异。(项目概述中的线,POU中的线/网络/元素)
'额外''以前的差异'
快捷键:<Shift><F7>
此命令在比较模式下可用(参 上文“项目”、“比较”)。
光标跳转到上一个单位,其中指示差异。(项目概述中的线,POU中的线/网络/元素)
'额外''接受更改'
快捷键:<空格>
此命令在比较模式下可用(参 上文“项目”、“比较”)。
对于与当前放置光标的单元相干的所有单元,并且具有相同类型的差异标记(例如后续行),实际项目将
接受参考项目的版本(仅在此方向上可能!相应的单位将显示在窗口的左侧(带有相应的颜色)。
如需接受特定单位的更改,请使用“接受更改的项目”。
'Extras''接受更改的项目'
快捷键:<Ctrl><空格键>
此命令在比较模式下可用(参 上文“项目”、“比较”)。
实际版本仅接受当前放置光标的单个单元(线、网络、元素)。相应的单位将显示在窗口的左侧(带有相
应的颜色)。
'Extras''接受属性'
此命令在比较模式下可用(参 上文“项目”、“比较”)。
当前放置光标的 POU 的对象属性将被实际项目接受,因为它们是在参考版本中设置的(只能在这个方向
上接受!
CoDeSysV2.3版本 4-41
管理项目...
'Extras''接受访问权限'
此命令仅在项目概述中在比较模式下可用:(请参阅上面的“项目”“比较”)。
'Project''合并'
使用此命令,您可以将对象(POU、数据类型、可视化效果和资源)以及指向其他项目中的库的链接合
并到您的项目中。
发出命令后,首先会出现用于打开文件的标准对话框。在其中选择文件后,将出现一个对话框,您可以在
其中选择所需的对象。选择按照 'Project''Document' 的描述进行。
如果项目中已存在同名对象,则新对象的名称将添加下划线和数字(“_1”、“_2”......
'项目''项目信息'
在此菜单项下,可以保存有关项目的信息。发出命令后,将打开“项目信息”对话框。
将显示以下项目信息:
文件名
目录路径
最近更改的时间(更改日期)
此信息无法更改。
用于输入项目信息的对话框
此外,您还可以添加以下信息:
A 目名称:
请注意:如果目标系统支持,当通过命令“文件”“从 PLC 打开项目”加载项目时,此标题将自动建
议为项目文件名(在这种情况下,将打开保存文件的对话框)。
4-42 CoDeSysV2.3版本
4 - 单个组件
作者姓名,
版本号,以及
项目描述。
此信息是可选的。当您按下“统计”按钮时,您会收到有关项目的统计信息。
项目统计示例
如果在“选项”对话框的“加载并保存”类别中选择“询问项目信息”选项,则在保存新项目或以新名称保
存项目时,将自动调用项目信息对话框。
'Project''全球搜索'
使用此命令,您可以在 POU、数据类型或全局变量的对象中搜索文本的位置。
输入命令后,将打开一个对话框,您可以在其中选择所需的对象。选择与“项目”“文档”描述中一样进
行。
如果单击“确定”确认选择,则将打开“搜索”的标准对话框。这出现
当通过菜单栏中的符号调用“全局搜索”命令时,立即进行搜索;然后在项目的所有可搜索部分自动执行搜
索。最近输入的搜索字符串可以通过“搜索”字段的组合框进行选择 。如果在对象中找到文本字符串,则
会将该对象加载到相应的编辑器或库管理器中,并显示找到该字符串的位置。找到的文本的显示以及搜索
和查找下一个功能的行为类似于命令“编辑”“搜索”。
如果选择“在消息窗口中”按钮,则在消息窗口中以表格形式逐行列出搜索的一系列符号出现在所选对象中
的所有位置。之后,将显示找到的位置数量。
如果未打开报告窗口,则将显示该窗口。对于找到的每个位置,将显示以下内容:
对象名称
在声明(Decl)或 POU 线路的实现(Impl)部分中查找的位置和网络编号(如果有)
CoDeSysV2.3版本 4-43
管理项目...
文本编辑器中的整行
图形编辑器中的完整文本元素
显示搜索结果的消息窗口
如果将鼠标双击消息窗口中的某一行或按<Enter>,编辑器将打开并加载对象。标记了对象中的相关线。
您可以使用功能键 <F4> 和 <Shift>+<F4> 在显示行之间快速跳转。
结果将显示在消息窗口中。
'项目''检查'
此命令提供用于检查项目语义正确性的命令。将考虑最近汇编的状态。为了获得最新的检查结果,您应该
在进行任何更改后重新编译项目。消息窗口中将显示相应的警告。
将打开一个列出以下命令的子菜单:
未使用的变量
重叠的内存区域
并发访问
输出具有多个写入访问权限
结果将显示在消息窗口中。
请注意:在项目选项的“构建”类别中,您可以定义这些语义检查,以便在每次项目编译时自动完成。
未使用的变量
“项目”“检查”菜单中的这个函数( 上文)搜索已声明但未在程序中使用的变量。它们由 POU 名称和行
输出,例如:PLC_PRG (4) –var1。不检查库中的变量。
结果将显示在消息窗口中。
重叠的内存区域
“项目”“检查”菜单中的这个函数( 上文)测试在通过“AT”声明分配变量时,是否在特定的内存区域出
现了重叠。例如,在分配变量“var1AT%QB21: INT”和“var2AT%QD5: DWORD”时会发生重叠,
因为它们都使用字节 21。然后,输出如下所示:%QB21 由以下变量引用:
4-44 CoDeSysV2.3版本
4 - 单个组件
结果将显示在消息窗口中。
输出具有多个写入访问权限
“项目”“检查”菜单的此功能( 上文)搜索单个项目在多个位置获得写入访问权限的内存区域。然后,
输出如下所示:
%QB24 写入以下位置:PLC_PRG (3):%QB24PLC_PRG。POU1 (8):%QB24
结果将显示在消息窗口中。
并发访问
“项目”“检查”菜单中的此功能( 上文)搜索在多个任务中引用的IEC地址的内存区域。此处不区分读取
和写入访问。例如,输出如下:
结果将显示在消息窗口中。
用户组
在 CoDeSys 中,最多可以设置八个用户组,这些用户组对 POU、数据类型、可视化和资源具有不同的
访问权限。可以建立单个对象或所有对象的访问权限。只有特定用户组的成员才能打开项目。此类用户组
的成员必须通过密码来标识自己。
在对话框左侧的“用户组”组合框中,输入您所属的组,并在右侧输入相关密码。按OK。如果密码与保存
的密码不一致,则会显示以下消息:
“密码不正确。”
只有输入了正确的密码,才能打开项目。
使用命令“用户组的密码”可以分配密码,使用“对象”的“访问权限”可以定义单个对象或所有对象的权
限。
CoDeSysV2.3版本 4-45
管理项目...
“Project”:“用户组密码”
使用此命令,您可以打开用户组密码分配对话框。此命令只能由组 0 的成员执行。发出命令后,将显示
以下对话框:
密码分配对话框
在左侧组合框“用户组”中,可以选择该组。在密码字段中输入组所需的密码。对于每个键入的字符,字段
中会出现一个星号(*)。您必须在“确认密码”字段中重复相同的密码。单击“确定”关闭每个密码输入后
的对话框。如果您收到以下消息:
“密码与确认不一致”,
然后,您在两个条目之一中犯了键入错误。在这种情况下,重复这两个条目,直到对话框关闭而不显示消
息。
然后,如有必要,通过再次调用该命令为下一个组分配密码。
重要提示:如果未将密码分配给所有用户组,则可以通过未分配密码的组来打开项目!
使用命令“对象”、“访问权限”为单个对象或所有对象分配权限。
关于项目的保护,还考虑以下几点:
- 用于访问和写保护的密码(第 4.2 章“密码选项”)
- 在项目保存时对项目进行加密(第 4.3 章“文件”“另存为”)。
登录(用户登录弹性网卡服务器)
如果在对象管理器中标记了对象,并且执行了“数据库链接”命令(从上下文菜单的鼠标右键),则以下
命令将可用于执行相应的数据库操作。如果用户之前没有成功登录到ENI服务器,则“数据库登录”对话框
将自动打开,并且在登录成功之前不会执行所选命令:
定义
获取最新版本
退房
登记
撤消检出
显示差异
显示版本历史记录如
4-46 CoDeSysV2.3版本
4 - 单个组件
果激活了“项目”菜单中的“数据库链接”命令,则将提供其他菜单项,这些菜单项涉及项目的所有对象:
多重定义
获取所有最新版本
多次签出
多次签入
多次撤消检出
项目版本历史
标签版本
添加共享对象
刷新状态
请参阅以下对象的状态及其在数据库中的处理如何在对象管理器中显示:
灰色阴影图标:
对象存储在数据库(源代码管理)中
对象名称前面的绿色复选:
对象在当前打开的项目中检出。
对象名称前面的红叉:对象当前已被其
他用户签出。
<R>在对象名称后面:对象只能读取,
不能编辑。
请注意:某些对象(任务配置、采样跟
踪、PLC 配置、目标设置、监视和配方
管理器)默认分配有 <R>只要它们没有
被检出。这意味着,一旦您开始编辑对
象,系统就不会自动询问您是否应该检
出该对象;这并不一定意味着您无法编辑
对象。如果没有写入权限,则命令“签
出”将不可用。
CoDeSysV2.3版本 4-47
管理项目...
登录
此命令将打开“登录”对话框,您可以在其中通过 ENI 服务器输入 ENI 数据库的访问数据。访问数据还必
须在 ENI 服务器(ENIAdmin、用户管理)中定义,并且根据当前使用的数据库,还必须在数据库的用户
管理中定义。执行命令后,首先将打开类别“项目对象”的登录对话框。
将显示以下项目:
项目对象:
主机:运行 ENI 服务器的计算机的地址(必须与“项目源代码管理”的项目选项对话框中“TCP/IP 地址”字
段中的条目匹配)。
项目:数据库项目的名称(必须与“项目源代码管理”/类别“项目对象”的项目选项对话框中“项目名称”字
段中的条目匹配)。
“登录”对话框
凭据:
插入用户名和密码。
当选项“用作此项目的默认值”被激活时,上面输入的访问数据将自动用于实际 CoDeSys 项目与有关实
际类别对象的数据库之间的任何进一步通信。
按 OK 确认设置。对话框将关闭,并自动打开“共享对象”的登录对话框。按照与“项目对象”相同的方式
输入访问数据,然后单击“确定”进行确认。在第三个登录对话框中执行相同的操作,该对话框将为“编译
文件”类别打开。
如上所述,在成功登录之前尝试访问数据库后,登录对话框将始终打开。
注意:如果要将访问数据与项目一起保存,请在项目选项中激活选项“保存ENI凭据”,类别为“加载并保存”。
定义
命 令 : 'Project' 'Data Base Link' 'Define'
在这里,您可以定义当前在对象管理器中标记的对象是应保留在数据库中,还是仅保留在项目中的本地。
将打开一个对话框,您可以在其中选择两个数据库类别“项目”或“共享对象”之一,或类别“本地”。
数据库中管理的所有对象的图标将在对象管理器中以灰色阴影显示。
4-48 CoDeSysV2.3版本
4 - 单个组件
获取最新版本
命令:“项目”数据库链接“获取最新版本”
对象管理器中标记的对象的当前版本将从数据库中复制,并将覆盖本地版本。与“检出”操作相反,该对象
不会为数据库中的其他用户锁定。
退房
命 令 : 'Project' 'Data Base Link' 'Check Out'
在对象管理器中标记的对象将从数据库中检出,并由此锁定其他用户。
执行命令时,用户将看到一个对话框“检出对象”。可以在其中添加注释,该注释将存储在数据库中对象的
版本历史记录中。换行符由 <Ctrl>+<Enter> 插入。如果对象的版本与本地项目中的版本不同,则会显示
相应的消息,用户可以决定是否仍应检出该对象。
单击“确定”关闭对话框后,检出的对象将在本地项目的对象管理器中标记为绿色复选标记。对于其他用
户,它将显示为红叉,并且他们无法编辑。
登记
命 令 : 'Project' 'Data Base Link' 'Check In'
在对象管理器中标记的对象将被检入到数据库中。因此,将在数据库中创建对象的新版本。无论如何,旧
版本都会保留。
执行命令时,用户将看到一个对话框“签入对象”。可以添加注释,该注释将存储在数据库中对象的版本历
史记录中。换行符由 <Ctrl>+<Enter> 插入。
单击“确定”关闭对话框后,将删除对象管理器中对象名称前面的绿色复选标记。
撤消检出
命 令 : 'Project' 'Data Base Link' 'Undo Check Out'
使用此命令可取消当前在“对象管理器”(ObjectOrganizer)中标记的对象的“检出”(Checkingout)。
因此,在当地进行的对对象的修改也将被取消。不会出现任何对话框。该对象的未更改的最后一个版本将
保留在数据库中,其他用户将可以再次访问它。对象管理器中对象名称前面的红叉将消失。
显示差异
命 令 : 'Project' 'Data Base Link' 'Show Differences'
用户当前在CoDeSys中打开的对象将显示在一个窗口中,该窗口分为两部分。在那里,当前由本地用户
编辑的本地版本将与数据库中保存的最后一个(实际)版本相对。版本的差异将按照项目比较中的描述进
行标记(参 “项目”,“比较”)。
显示版本历史记录
命 令 : 'Project' 'Data Base Link' Show Version History'
对于对象管理器中当前标记的对象,将打开一个对话框“<对象名称>的版本历史记录。其中列出了对象的
所有版本,这些版本已签入到数据库中或已在此处标记。
提供以下信息:
CoDeSysV2.3版本 4-49
管理项目...
版本:已逐个签入的对象版本的数据库特定编号。标记的版本没有版本号,但由标签图标标记。
用户:执行签入或标记操作的用户的名称
日期:操作的日期和时间戳
操作: 已执行的操作的类型。可能的类型:“created”(对象已首次签入数据库)、“checkedin”(对象
的所有签入,不包括第一个)和“labeledwith<label>(已为此版本的对象分配了标签)
显示版本历史记录的对话框
按钮:
关闭:对话框将关闭。
显示:表中当前标记的版本将在 CoDeSys 的窗口中打开。标题栏显示:“ENI:<数据库中项目的名称>/<
对象名称>
详细信息:“版本历史记录详细信息”对话框将打开:
文件(项目名称和数据库中的对象)、版本( 上文)、日期( 上文)、用户( 上文)、注释(在对
象签入或标记对象时插入的注释)。使用按钮 Next resp.“上一个”跳转到“..”对话框的表中下一个或上一
个条目的详细信息窗口。
差异: 如果在表中仅标记了对象的一个版本,则此命令将导致此版本与最新(实际)数据库版本进行比
较。如果标记了两个版本,则将比较这些版本。差异显示在二分窗口中,就像在项目比较中一样。
重置版本:
表中标记的版本将设置为最新版本。以后签入的所有版本都将被删除!这对于还原对象的早期
状态非常有用。
仅标签:如果激活此选项,则表格中将仅显示对象的那些版本,这些版本由标签标记。
“仅标签”选项下方的选择框:在这里,您可以找到对当前项目的对象执行过任何数据库操作的所有用户
的名称。如果您想获取有关所有用户或仅针对某个用户的版本历史记录,请选择“全部”或其中一个名称。
4-50 CoDeSysV2.3版本
4 - 单个组件
多重定义
命 令 'Project' 'Data Base Link' 'Multiple Define'
如果要一次将多个对象分配给某个数据库类别,请使用此命令。“属性”对话框将打开,如命令“定义”所
述。选择所需的类别,然后单击“确定”关闭对话框。之后,将打开“ENI-Selection”对话框,列出项目的
所有 POU,这些 POU 被考虑用于所选类别(例如:如果您选择类别“共享对象”,则选择窗口将仅提供“
资源”选项卡的 POU)。POU 以符合对象管理器的树结构显示。选择所需的 POU,然后单击“确定”进行
确认。
获取所有最新版本
命 令 'Project' 'Data Base Link' 'Get All Latest Versions'
将从数据库调用当前打开的项目的每个对象的最新版本,该对象保持在源代码管理之下。请考虑以下几
点:
如果在此期间已将其他对象存储到数据库项目文件夹中,则这些对象现在将添加到 CoDeSys 中的本地项
目中。
如果在此期间在数据库中删除了对象,则这些对象不会在本地项目中删除,但它们将自动分配到“本地”类
别。
仅当“共享对象”类别的对象在本地项目中已可用时,才会调用这些对象的最新版本。有关详细信息,请参
阅命令“获取最新版本”。
多次签出
命 令 'Project' 'Data Base Link' 'Multiple Check Out'
您可以一次检出多个对象。为此,将打开“ENI-Selection”对话框,列出项目的所有 POU。选择应签出
的内容,然后单击“确定”进行确认。有关详细信息,请参阅命令“签出”。
多次签入
命 令 'Project' 'Data Base Link' 'Multiple Check In'
您可以一次检入多个对象。为此,将打开“ENI-Selection”对话框,列出项目的所有 POU。选择应签入
的那些,然后单击“确定”进行确认。有关详细信息,请参阅命令“签入”。
多次撤消检出
命令“Project”“”数据库链接“”撤消多个检出”
您可以一次撤消多个对象的检出操作。为此,将打开“ENI- 选择”对话框,列出项目的所有 POU。选择
要取消签出的选项,然后单击“确定”进行确认。有关详细信息,请参阅命令“撤消检出”。
项目版本历史
命令 'Project''DataBaseLink''Project 版本历史记录
如果所选数据库系统支持该功能,则可以使用此命令查看当前打开的项目的版本历史记录。
“重置版本”命令仅适用于单个对象。
命令 'Getlatestversion' 表示 当前标记对象版本的所有对象都将被调用到本地项目!这意味着,
CoDeSys中的对象将被旧版本覆盖。但是:在旧版本中还不是项目一部分的本地对象不会从本地项目中
删除!如果调用了包含共享对象的标记版本,则用户将看到一个对话框,在其中他可以决定是否也应该调
CoDeSysV2.3版本 4-51
管理项目...
用这些共享对象。
标签版本
命 令 'Project' 'Data Base Link' 'Label Version'
此命令用于在项目的每个对象的实际版本上放置一个“标签”,以便以后可以准确地调用此项目版本。将打
开一个对话框“标签<数据库项目名称>。插入标签名称(Label)(例如“发布版本”)和可选的注释。单
击“确定”进行确认后,对话框将关闭,标签和“用<标签名称>标记”的操作将显示在版本历史记录表中,
以及单个对象的历史记录中,就像在项目历史记录中一样。作为项目一部分的共享对象也将获得该标签。
项目的标记版本不会获得版本号,而只是在“版本”列中用标签图标标记。如果在“版本历史记录”对话框
中激活了“仅标签”选项,则只会列出已标记的版本。
对话框“标记项目<数据库项目名称>
添加共享对象
命 令 'Project' 'Data Base Link' 'Add Shared Objects'
如果您明确希望将数据库类别为“共享对象”的新对象添加到 CoDeSys 中本地打开的项目,请使用此命
令。对于类别为“项目对象”的对象,这不是必需的,因为命令“获取(所有)最新版本”会自动调用在数
据库项目文件夹中找到的所有对象,即使有一些对象在本地项目中尚不可用。但是对于“共享对象”类别的
对象,在这种情况下,将只调用那些在本地项目中已经可用的对象。
因此,执行命令“添加共享对象”以打开“浏览ENI”对话框。窗口右侧的列表显示了当前在左侧列表中选择
的数据库文件夹中可用的所有对象。选择所需的对象,然后按OK或双击该条目,将对象插入到当前打开
的 CoDeSys 项目中。
“浏览 ENI”对话框
4-52 CoDeSysV2.3版本
4 - 单个组件
刷新状态
命 令 'Project' 'Data Base Link' 'Refresh Status'
使用此命令可以更新对象管理器中的显示,以便您可以查看与项目的源代码管理相关的对象的实际状态。
4.4 管理项目中的对象...
在以下章节中,请参阅书籍“管理有关如何使用对象以及可用于跟踪项目(文件夹、调用树、交叉引用列
表,..的帮助的信息)。
对象
POU、数据类型、可视化和资源全局变量、变量配置、采样跟踪、PLC 配置、任务配置以及观察和配方
管理器都定义为“对象”。部分涉及为构建项目而插入的文件夹。项目的所有对象都位于对象管理器中。
通过拖放,您可以在对象类型中移动对象(以及文件夹,请参阅“文件夹”)。为此,请选择对象并通过按
住鼠标左键将其移动到所需位置。如果转换导致名称冲突,则新引入的元素将通过附加的序列号(例如
“Object_1”)进行唯一标识。
文件夹
为了跟踪较大的项目,您应该将 POU、数据类型、可视化和全局变量系统地分组到文件夹中。
您可以根据需要设置任意级别的文件夹。如果加号位于关闭文件夹符号的前面,则此文件夹包含对象和/
或其他文件夹。单击加号后,将打开文件夹并显示从属对象。单击减号(已替换加号),可以再次关闭文
,
件夹。在上下文菜单中,您可以找到具有相同功能的命令“展开节点”和“折叠节点”。
使用拖放,您可以在其对象类型中移动对象以及文件夹。为此,选择对象并用鼠标左键将其拖动到所需位
置。
您可以使用“新建文件夹”命令创建更多文件夹。
注意:文件夹对程序没有影响,而只是用于清晰地构建项目。
对象管理器中的文件夹示例
CoDeSysV2.3版本 4-53
管理项目中的对象...
“新文件夹”
使用此命令,将新文件夹作为结构对象插入。如果已选择文件夹,则会在该文件夹下方创建新文件夹。否
则,它将在同一级别上创建。如果选择了某个操作,则新文件夹将插入到该操作所属的 POU 级别。
层次结构中同一级别的文件夹必须具有不同的名称。不同级别的文件夹可以具有相同的名称。
文件夹不能与位于同一级别的对象同名。
如果同一级别上已经存在名称为“新建文件夹”的文件夹,则每个具有此名称的文件夹都会自动收到一个附
加的序列号(例如“新建文件夹 1”)。无法重命名为已在使用的名称。
“展开节点”“折叠节点”
使用“展开”命令,对象将明显展开,这些对象位于所选对象中。使用“折叠”(Collapse)时,将不再显示
从属对象。
对于文件夹,您可以通过双击或按 <Enter> 打开或关闭它们。
当选择了对象或对象类型并且您按下了鼠标右键或 <Shift>+<F10> 时,将显示包含此命令的对象管理器
的上下文菜单。
“Project”:“对象删除”:
快捷方式:<删除>
使用此命令,当前选定的对象(POU、数据类型、可视化或全局变量)或包含从属对象的文件夹将从对
象管理器中删除,从而从项目中删除。可以通过命令“编辑”“撤消”来撤消对象的删除。
您可以使用命令“编辑”“撤消”取回已删除的对象。
如果对象的编辑器窗口已打开,则该窗口将自动关闭。
如果使用命令“编辑”“剪切”删除,则对象将停放在剪贴板上。
'Project''对象添加'
快捷键:<插入>
使用此命令,您可以创建一个新对象。对象的类型(POU、数据类型、可视化或全局变量)取决于对象
管理器中选定的寄存器卡。考虑到在这样做时,模板可能会用于“全局变量”、“数据类型”、“函数”、“功
能块”或“程序”类型的对象,请参阅下面的“另存为模板”一章。
请注意以下限制:
POU 的名称不能包含任何空格
A 个 POU 不能与另一个 POU 具有相同的名称、数据类型,并且不应与可视化效果相同,以避免可视化
更改问题。
A 个数据类型不能接收与另一个数据类型或 POU 相同的名称。
A 个全局变量列表不能与另一个全局变量列表同名。
一个操作不能与同一 POU 中的另一个操作同名。
4-54 CoDeSysV2.3版本
4 - 单个组件
按“确定”(只有在与上述命名约定没有冲突的情况下才有可能)后,将在“对象管理器”中设置新对象,
并显示相应的输入窗口。
如果使用命令“编辑”“插入”,则会插入剪贴板中的当前对象,并且不会显示任何对话框。如果插入对象
的名称与命名约定冲突( 上文),则通过添加附加前导下划线字符(例如“Rightturnsig_1”)的序列号
来使其唯一。
“另存为模板”
“全局变量”、“数据类型”、“功能”、“功能块”或“程序”类型的对象可以保存为模板。在对象管理器中选
择 对 象 , 然 后 在 上 下 文 菜 单 中 选 择 命 令“另 存 为 模 板”(鼠标右键)。因此,每个相同类型的新对象将自
动初始获取模板的声明部分。将使用上次为对象类型创建的模板。
“Project”:“对象重命名”
快捷键:<空格键>
使用此命令,您可以为当前选定的对象或文件夹指定一个新名称。请记住,对象的名称可能尚未被使用。
如果对象的编辑窗口处于打开状态,则在更改名称时会自动更改其标题。
CoDeSysV2.3版本 4-55
管理项目中的对象...
'Project''对象转换'
此命令只能与 POU 一起使用。您可以将 SFC、ST、FBD、LD 和 IL 语言的 POU 转换为 IL、FBD 和
LD 三种语言之一。
为此,必须编译项目。选择要转换为的语言,并为 POU 指定一个新名称。请记住,POU 的名称可能尚
未使用。然后按OK,新的 POU 将添加到您的 POU 列表中。
转换期间发生的处理类型与适用于编译的处理类型相对应。
注意:无法转换操作。
考虑以下可能性:在FBD编辑器中创建的POU,可以使用命令“Extras”“View”在KOP编辑器中显示和编
辑,而无需任何转换。
“Project”:“对象复制”:
使用此命令,将复制所选对象并将其保存为新名称。在出现的对话框中输入新对象的名称。请记住,对象
的名称可能尚未被使用。
另一方面,如果您使用了命令“编辑”“复制”,则对象将停放在剪贴板上,并且不会出现任何对话框。
“Project”“对象打开”
快捷键:<Enter>
使用该命令,您可以将对象管理器中的选定对象加载到相应的编辑器中。如果带有此对象的窗口已打开,
则该窗口将获得焦点,移动到前台,现在可以进行编辑。
还有另外两种打开对象的方法:
在对象管理器中用鼠标双击所需对象,键入对象名
4-56 CoDeSysV2.3版本
4 - 单个组件
称的第一个字鯦。这将打开一个对话框,其中显示了具有此首字鯦的可用对象类型的所有对象。操作以符
号列出 <POU 名称>.<操作名称>。由于对象选择对话框中的对象是按字鯦顺序列出的,因此 POU 的操作
始终位于此 POU 的下方。选择所需的对象并单击“打开”按钮,以便在其编辑窗口中加载该对象。此后,
对象也会在对象管理器中标记,并且分层放置在对象上方的所有文件夹都将被展开。对象类型“仅全局变
量的资源”支持此选项。
用于选择要打开的对象的对话框
“Project”:“对象属性”
此命令将打开该对象的“属性”对话框,该对象当前在对象管理器中标记。
在“访问权限”选项卡上,您会发现与执行命令“项目”“对象访问权限”时相同的对话框
这取决于对象和项目设置,是否有其他选项卡可用于定义对象属性:
全局变量列表:
在“全局变量列表”选项卡中,显示了有关列表实现和网络变量数据交换的参数,可以在此处进行修改。如
果通过在对象管理器的 “ 全局变量 ” 部分中选择一个条目并执行命令 “ 添加对象 ” 来创建新的全局变量列
表,则也会打开此对话框。
可视化:
在“可视化”选项卡中,您可以为可视化对象定义(请参阅 CoDeSys 可视化用户手册),如何使用它:
用作:如果在目标设置中激活了“Web-Visualization”或“Target-Visualization”选项,则可以在此处选择对
象是否应成为Web可视化或目标可视化的一部分。
用作:激活以下设置之一,参考使用“主布局”的可能性:
可视化:对象用作普通可视化。
不带主布局的可视化::如果在项目中定义了主布局,则不会将其应用于此可视化对象。
主布局:该对象将用作主布局。默认情况下,主布局将始终位于可视化效果的前景中,但激活了“作
为背景”的选项。
CoDeSysV2.3版本 4-57
管理项目中的对象...
可视化对象属性的对话框
数据库连接:
如果项目连接到 ENI 数据库(参 “项目”“选项”“项目源代码管理”),则“数据库连接”选项卡将可用。
在这里,您可以显示和修改对象的当前分配到数据库类别之一,或者到“本地”类别。有关更多信息,请参
阅:“什么是弹性网卡”。
“Project”:“对象访问权限”
使用此命令,您可以打开用于将访问权限分配给不同用户组的对话框。将显示以下对话框:
用于分配访问权限的对话框
用户组 0 的成员现在可以为每个用户组分配单独的访问权限。有三种可能的设置:
无访问权限:用户组成员不得打开对象。
读取访问权限:用户组成员可以打开对象进行读取,但不能更改。
完全访问权限:对象可以由用户组的成员打开和更改。
这些设置可以引用对象管理器中当前选定的对象,或者,如果选择了“全部应用”选项,则引用项目的所有
POU、数据类型、可视化效果和资源。
如果将密码分配给用户组 0,则在通过密码请求打开项目时,将分配给用户组。
还请考虑分配有关可视化元素操作的访问权限的可能性(可视化、安全性)。
4-58 CoDeSysV2.3版本
4 - 单个组件
“Project”“添加操作”
此命令用于生成分配给对象管理器中选定块的操作。在出现的对话框中选择操作的名称以及应实现操作的
语言。
新操作将放置在对象管理器中的块下。块前面会出现一个加号。只需单击加号即可显示动作对象,并在块
前面出现减号。再次单击减号会导致操作消失,并再次出现加号。这也可以通过上下文菜单命令“展开节
点”和“折叠节点”来实现。
'Project''查看实例'
使用此命令,可以打开并显示在对象管理器中选择的功能块的实例。同样,双击对象管理器中的功能块即
可访问选择对话框,其中列出了功能块的实例以及实现。在此处选择所需的实例或实现,然后单击“确定”
进行确认。然后,所需项目将显示在窗口中。
请注意:如果要查看实例,首先必须登录!(该项目已编译完毕,没有错误,并以“在线”“登录”的方式下载到PLC
)。
用于打开实例的对话框
'Project''显示调用树'
使用此命令,您可以打开一个窗口,该窗口显示在对象管理器中所选对象的调用树。在此之前,项目必须
已编译完毕,没有任何错误(请参阅“全部重建”)。调用树包含对 POU 的调用和对数据类型的引用。
调用树示例
'Project''显示交叉引用'
使用此命令,您可以打开一个对话框,该对话框可以输出变量、地址或 POU 的所有应用点。为此,必须
编译项目(参 “项目”、“构建”)。
在名称中,输入要列出交叉引用的元素的名称(例如“ivar”)或路径(例如“PLC_PRG.fbi.ivar”)(可以
使用输入助手 <F2>)。如果指定“*”,则将考虑所有元素。此外,可以指定一个后跟“*”的部分字符串,
例如“INT_*”,以便列出所有元素,其名称以该字符串开头。
CoDeSysV2.3版本 4-59
管理项目中的对象...
如果项目自上次编译以来已更改,则对话框的标题栏中将显示术语“(未更新)”。在这种情况下,除非您
重新编译,否则最近创建的任何交叉引用都不会被视为列表中的交叉引用!
通过单击“交叉引用”按钮,您可以获得所有应用点的列表。除了POU和线路或网络号外,还指定了变量
名称和地址绑定(如果有)。
“域”空间显示这是局部变量还是全局变量;“访问”列显示变量是在当前位置进行“读取”还是“写入”。
如果在可视化中使用元素,则可视化名称将显示在“POU”列中。但是,请注意以下有关可视化中的占位
符的事项:交叉引用列表仅涉及已在可视化元素的配置中输入的变量名称字符串,而不是由于占位符替换
而在项目编译期间生成的任何名称!
当您选择交叉引用列表的一行并按下按钮“转到”或双击该行时,POU 将显示在其编辑器中的相应点。通
过这种方式,您可以跳转到所有应用点,而无需进行耗时的搜索。
为了简化处理,您可以使用“发送到消息窗口”按钮将当前交叉引用列表引入消息窗口,并从那里更改为相
应的 POU。
对话框和交叉引用列表的示例
4-60 CoDeSysV2.3版本
4 - 单个组件
变量时,上下文中的“附加”菜单中可以使用命令“显示交叉引用”。
4.5 一般编辑功能...
您可以在所有编辑器中使用以下命令,也可以在对象管理器中使用其中一些命令。这些命令位于菜单项
“
编辑”下方和用鼠标右键单击打开的上下文菜单中。
“编辑”“撤消”
快捷键:<Ctrl>+<Z>
此命令撤消最近在当前打开的编辑器窗口或对象管理器中执行的操作;重复使用可撤消所有操作,回到窗
口打开时。这适用于 POU、数据类型、可视化和全局变量的编辑器以及对象管理器中的所有操作。
使用“编辑”、“重做”,您可以恢复已撤消的操作。
注:“撤消”和“重做”命令适用于当前窗口。每个窗口都有自己的操作列表。如果要撤消多个窗口中的操作,则必须
激活相应的窗口。在对象管理器中撤消或重做时,焦点必须位于此处。
'编辑''重做'
快捷键:<Ctrl>+<Y>
使用当前打开的编辑器窗口或对象管理器中的命令,您可以恢复已撤消的操作(“编辑”、“撤消”)。
只要您之前执行过命令“撤消”,您也可以执行该命令
“重做”。
注意:命令“撤消”和“重做”适用于当前窗口。每个窗口都有自己的操作列表。如果要撤消多个窗口中的操作,则必
须激活相应的窗口。在对象管理器中撤消或重做时,必须躺在那里。
'编辑''剪切'
符号:快捷键:<Ctrl>+<X>或<Shift>+<Del>
此命令将当前所选内容从编辑器传输到剪贴板。所选内容将从编辑器中删除。
选择的形式取决于各自的编辑:
在文本编辑器 IL、ST 和声明中,所选内容是字符列表。
在 FBD 和 LD 编辑器中,选择是网络数量,这些网络由网络编号字段中的虚线矩形或包含所有前面行、
框和操作数的框表示。
在 SFC 编辑器中,所选内容是被虚线矩形包围的一系列步骤的一部分。
为了粘贴剪贴板的内容,您可以使用命令“编辑”“粘贴”。在 SFC 编辑器中,您还可以使用命令
“Extras”、“Insertparallelbranch (right)”或“Extras”、“Pasteafter”等命令。为了将所选内容复制到
CoDeSysV2.3版本 4-61
常规编辑功能...
剪贴板而不将其删除,请使用命令“编辑”“复制”。
为了在不更改剪贴板的情况下删除所选区域,请使用命令“编辑”“删除”。
'编辑''复制'
符号:快捷键:<Ctrl>+<C>
此命令将当前所选内容从编辑器复制到剪贴板。这不会更改编辑器窗口的内容。
使用对象管理器,这同样适用于选定的对象,因此并非所有对象都可以复制,例如PLC配置。
请记住,并非所有编辑器都支持复制,并且某些编辑器可能会限制复制。
对于选择类型,适用与“编辑”、“剪切”相同的规则。
选择的形式取决于各自的编辑:
在文本编辑器(IL、ST 和声明)中,所选内容是字符列表。
在 FBD 和 LD 编辑器中,选择是网络数量,这些网络由网络编号字段中的虚线矩形或包含所有前面行、
框和操作数的框表示。
在 SFC 编辑器中,所选内容是被虚线矩形包围的一系列步骤的一部分。
为了粘贴剪贴板的内容,您可以使用命令“编辑”“粘贴”。在 SFC 编辑器中,您还可以使用命令
“Extras”、“Insertparallelbranch (right)”或“Extras”、“Pasteafter”等命令。
要删除所选区域并同时将其放在剪贴板上,请使用命令“编辑”“剪切”。
'编辑''粘贴'
符号:快捷键:<Ctrl>+<V>
将剪贴板的内容粘贴到编辑器窗口中的当前位置。在图形编辑器中,只有当插入产生正确的结构时,才能
执行该命令。
使用对象管理器,对象从剪贴板粘贴。
请记住,并非所有编辑器都支持粘贴,并且在某些编辑器中可能会限制其使用。
当前位置可以根据编辑器的类型进行不同的定义:
使用文本编辑器(IL、ST、声明)时,当前位置是闪烁光标(垂直线)的位置,您可以通过单击鼠标来
放置该光标。
在 FBD 和 LD 编辑器中,当前位置是网络编号区域中带有虚线矩形的第一个网络。剪贴板的内容将插入
到此网络的前面。如果复制了分部结构,则会将其插入到所选元素的前面。
在 SFC 编辑器中,确定当前位置,即被虚线矩形包围的选择。根据所选内容和剪贴板的内容,这些内容
将插入到所选内容的前面或所选内容左侧的新分支(平行或替代分支)中。
'编辑''删除”
快捷方式:<Del>
从编辑器窗口中删除所选区域。这不会更改剪贴板的内容。在对象管理器中,这同样适用于选定的对象,因此
4-62 CoDeSysV2.3版本
4 - 单个组件
对于选择类型,适用与“编辑”、“剪切”相同的规则。
选择的形式取决于各自的编辑:
在文本编辑器(IL、ST 和声明)中,所选内容是字符列表。
在 FBD 和 LD 编辑器中,选择的是多个网络,这些网络在网络编号字段中用虚线矩形突出显示。
在 SFC 编辑器中,所选内容是被虚线矩形包围的一系列步骤的一部分。
在库管理器中,选择是当前选定的库名称。
要删除所选区域并同时将其放在剪贴板上,请使用命令“编辑”“剪切”。
'编辑''查找'
象征:
使用此命令,您可以在当前编辑器窗口中搜索某个文本段落。“查找”(Find)对话框打开。它一直打开,
直到按下取消按钮。
在字段中找到您可以输入的字符系列的内容。
此外,您可以决定要查找的文本是否仅匹配整个单词,或者是否考虑匹配大小写,以及搜索是应向上还是
向下进行
从当前光标位置开始。
“查找下一步”按钮开始搜索,搜索从所选位置开始,并继续沿所选搜索方向进行。如果找到文本段落,
则突出显示该文本段落。如果未找到该段落,则会显示一条消息。可以连续重复搜索几次,直到到达编辑
器窗口内容的开始或结束。在CFC 编辑器中,将考虑元素的几何顺序,搜索将从窗口的左上角运行到右
上角。请注意,FBDPOU 是从右到左处理的!
“查找”对话框
'编辑''查找下一个'
符号:快捷方式:<F3>
使用此命令,您可以使用与最新操作“编辑”“查找”相同的参数执行搜索。请注意,FBDPOU 是从右到左
处理的!
“编辑”“替换”
使用此命令,您可以搜索某个段落,就像使用命令“编辑”“查找”一样,并将其替换为另一个段落。选择
命令后,将显示“查找和替换”对话框。此对话框将保持打开状态,直到按下“取消”或“关闭”按钮。
CoDeSysV2.3版本 4-63
常规编辑功能...
用于查找和替换的对话框
在“自动查找”后面的字段中,将插入您之前在编辑器中标记的字符串。您也可以手动输入搜索字符串。
按下“替换”按钮 会将当前选择替换为“替换为”字段中给出的字符串替换。使用“查找下一个”按钮转到找
到字符串的下一个段落。请注意,FBDPOU 是从右到左处理的!
'编辑''输入助手'
快捷键:<F2>
此命令提供了一个对话框,用于在编辑器窗口中的当前光标位置选择可能的输入。在左列中,选择所需的
输入类别,在右列中选择所需的条目,然后单击“确定”确认您的选择。这会在此位置插入您的选择。
提供的类别取决于编辑器窗口中的当前光标位置,即此时可以输入的类别(例如变量、运算符、POU、
转换等)。
如果选项 Witharguments 处于活动状态,则在插入所选元素时,将指定要传输的参数,例如:功能块
fu1selected,它定义了输入变量 var_in:fu1(var_in:=);
注意:要插入标识符,还可以使用“Intellisense 功能”。
非结构化显示
在窗口的左侧,始终列出与当前插入位置相关的元素类别。例如ST运算符、局部变量、全局变量、标准
程序、定义程序、监视表达式等。在窗口的右侧,所选类别的元素按字鯦顺序线性排列。
在不同的地方(例如在观察列表中),需要多级变量名称。在这种情况下,输入助手会显示带有POU名
称的可用变量,如果是结构化变量和功能块实例,则额外显示 FB 名称或数据类型名称。示例:
PLC_PRG.ivar、PLC_PRG。结构 1.组件1.
4-64 CoDeSysV2.3版本
4 - 单个组件
非结构化输入帮助对话框
您可以通过激活 结构化显示。
结构化显示
如果选择结构化显示,则 POU、变量或数据类型将按层次结构排序。这适用于标准程序、标准函数、标
准功能块、定义的程序、定义的函数、定义的功能块、全局变量、局部变量、定义的类型、监视变量。视
觉和层次结构显示与对象管理器的显示相对应;如果引用了库中的元素,则这些元素将按字鯦顺序插入到
最顶部,并且相关层次结构将显示为在库管理器中。
声明为局部或全局变量的功能块的输入和输出变量列在实例名称下的“局部变量”或“全局变量”类别中(
例如Inst_TPET、Inst_TPIN,...)。要到达那里,请选择实例名称(例如 Inst_TP),然后单击“确定”进
行确认。
如果在此处选择了功能块的实例,则可以选择“带参数”选项。在文本语言 ST 和 IL 中以及在任务配置期
间,将插入实例名称和功能块的输入参数。
CoDeSysV2.3版本 4-65
常规编辑功能...
结构化输入帮助对话框
结构的组件以模拟方式显示到功能块实例。
对于枚举,单个枚举值列在枚举类型下。顺序是:来自库的枚举、来自数据类型的枚举、来自 POU 的本
地枚举。
一般规则是,包含子对象的行是不可选择的(实例除外, 上文),而只能将其层次结构显示扩大或缩小
一个级别,就像多阶段变量名称一样。
如果在监视和配方管理器中或在跟踪配置对话框中选择跟踪变量时调用输入助手,则可以进行 多项选择。
当按下 <Shift> 键时,您可以选择一系列变量;当按下 <Ctrl> 键时,您可以选择许多单独的变量。所选变
量将如此标记。如果在范围选择期间选择不包含有效变量(例如POU名称)的行,则这些行将不会包含
在选择中。当进行单独选择时,不能标记这些线。
在监视窗口和跟踪配置中,可以从“输入助手”对话框传输结构、数组或实例。由于使用鼠标按钮双击与元
素层次结构显示的扩展或收缩相关联,因此在这些情况下只能通过“确定”来确认选择。
此后,所选变量将逐行插入监视窗口,即每个选定变量都写入单独的行。对于跟踪变量,每个变量都插入
到跟踪变量列表的单独行中。
您可以通过停用选项“结构化”来切换到非结构化显示。
注意:某些条目(例如全局变量)仅在编译后在“输入助手”对话框中更新。
“编辑”“自动声明”
快捷键:<Shift>+<F2>
此命令将打开用于声明变量的对话框。当“项目”、“选项”、“编辑器”、“自动声明”选项打开时,以及使
用新的未定义变量时,此对话框也会自动打开声明编辑器。
4-66 CoDeSysV2.3版本
4 - 单个组件
'编辑''下一个错误'”
快捷键:<F4>
在项目编译不正确后,此命令可能会显示下一个错误。相应的编辑器窗口被激活,并选择了不正确的位
置。同时,在消息窗口中显示相应的错误消息。
'编辑''上一个错误'”
快捷键:<Shift>+<F4>
在项目编译不正确后,此命令将显示上一个错误。相应的编辑器窗口被激活,并选择了不正确的位置。同
时,在消息窗口中显示相应的错误消息。
'编辑''宏'
此菜单项指向为项目定义的所有宏的列表。(有关生成宏的信息,请参阅 'Project' , 'Options' ,
'Macros' )。选择可执行宏后,将打开“处理宏”对话框。将显示宏的名称和当前活动的命令行。“取消”
按钮可用于停止宏的处理。在这种情况下,无论如何都会完成当前命令的处理。然后,在联机操作期间,
消息窗口和日志中会显示相应的消息:“<宏>:执行被用户中断”。
宏可以离线和在线执行,但在每种情况下,只执行在相应模式下可用的命令。
4.6 一般在线功能...
可用的在线命令组合在菜单项“在线”下。某些命令的执行取决于活动的编辑器。
联机命令只有在登录后才可用。有关说明,请参阅以下章节。
借助“在线更改”功能,您可以对正在运行的控制器上的程序进行更改。请参阅此处的“在线”“登录”。
'在线''登录'
符号:快捷键:<Alt>+<F8>
该命令将编程系统与 PLC(或启动仿真程序)相结合,并更改为在线模式。
如果当前项目自打开或上次修改以来尚未编译,则立即编译(与“Project”“Build”一样)。如果在编译过
程中发生错误,则CoDeSys不会更改为联机模式。
如果自上次下载以来在控制器上更改了当前项目,但未关闭,并且未使用命令“Project”“全部清除”删除
上次下载信息,则在命令“Login”之后会打开一个对话框,其中包含以下问题:“程序已更改。负载变化
?(在线更改)”。通过回答“是”,您确认在登录时,项目的修改部分将加载到控制器上。(关于这个问
题,请看以下章节中关于在线变更的提示,以及登录、编译、下载和在线变更之间关系的图表。不会导致
登录,除非自上次下载加载到控制器上以来所做的更改。“取消”(Cancel)取消该命令。 <全部加载>
将导致整个项目重新加载到控制器上。
CoDeSysV2.3版本 4-67
一般在线功能...
扩展登录对话框
如果在项目选项的“桌面”类别中,激活了“在安全模式下联机”选项,并且目标系统支持该功能,则在“登
录”对话框中也会自动显示项目信息。这是当前在 CoDeSys 中打开的项目信息,并且已经在控制器上可
用。通过按钮“详细信息”<<您可以关闭对话框的此信息部分。
如果未激活“在安全模式下在线”选项,您可以通过“详细信息”按钮在对话框中显式打开项目信息显示
>>。
请注意,根据目标,哪个按钮被设置为默认按钮。
成功登录后,所有在线功能都可用(如果在“项目”、“选项”、“类别、”构建“中输入了相应的设置)。针
对所有可 变量声明监视当前值。
使用“在线”“注销”命令从在线模式更改为离线模式。
4-68 CoDeSysV2.3版本
4 - 单个组件
登录–构建–下载–在线更改之间的关系
请看下面的图表,它显示了登录、构建(编译)、下载和在线更改之间的关系:
使用以下术语:
源当前 CoDeSys 项目(*.pro 文件,本地 PC)
编译增量编译需要上一个构建过程的编译信息(*.ci 文件,本地 PC)
关于在线更改的提示
• 在任务或 PLC 配置中修改后,插入库后以及执行“项目”“全部清除”后,无法进行在线更
改( 下文)。
• 如果在上次下载项目时创建的下载信息(文件 <projectname><targetidentifier>.ri)已被同时删除(例
如,通过命令“Project”“全部清除”),则以后将无法进行在线更改,但以下情况除外: ri-file 已保存
在另一个位置或已重命名,因此现在仍然可用,可以通过命令 'Project''Loaddownloadinformation'。
关于这一点,另请参阅下面的“项目的在线更改...”。
CoDeSysV2.3版本 4-69
一般在线功能...
• 在线更改不会导致变量的重新初始化,因此不会考虑对初始化值的修改!
• 保留变量在完成在线更改时保留其值,它们不会在重新下载项目时执行此操作( 下文,“在线
”“下载”)。
2. 重命名proj00000001.ri,例如重命名为proj00000001_PLC1.ri。使用其他文件名保存文件是必要的,因为在进一
步下载proj.pro时,另一个 PLC 上的文件proj00000001.ri将被新的下载信息覆盖,因此属于 PLC1 上下载的信息
将丢失。
(2) 在PLC2上加载并启动项目,保存PLC2的下载信息:
1. 现在连接到控制器 PLC2(使用与 PLC1 相同的目标)并在 PLC2 上下载proj.pro。因此,将在项目目录中再次
创建一个文件proj00000001.ri,现在包含有关当前已完成下载的信息。
2. 重命名新的proj00000001.ri,例如重命名为proj00000001_PLC2.ri,以便显式存储它。
3. 在 PLC2 上启动项目并注销(“在线”、“开始”、“在线”、“注销”)。
(3) 在CoDeSys中修改项目:
1. 现在在CoDeSys中对 proj.pro 进行修改,然后要通过在线更改将其传输到两个PLC上运行的程序。
(b)或者,您可以在 登录之前通过命令“Project”“LoadDownload-Information”显式加载文件
proj00000001_PLC1.ri。因此,您不需要重命名 ri 文件,但可以进行在线更改。
(5) 在PLC2上在线更改,再次保存PLC2的下载信息:
为了在PLC2上对(3)中完成的 proj.pro 进行在线更改,请按照步骤(4)中所述对proj00000001_PLC2.ri执行相应
的步骤。
(6) 项目修改后每进行一次在线更改:执行步骤(3)至(5)
4-70 CoDeSysV2.3版本
4 - 单个组件
如果系统报告
错误:
“所选控制器配置文件与目标系统的配置文件不匹配...”
检查在目标系统设置(资源)中输入的目标系统是否与在“在线”“通信参数”中输入的参数匹配。
错误:
“通信错误。已注销”
检查控制器是否在运行。检查在“在线”“通信参数”中输入的参数是否与控制器的参数匹配。特别是,
您应该检查是否输入了正确的端口,以及控制器和编程系统中的波特率是否匹配。如果使用网关服务器,
请检查是否设置了正确的通道。
错误:
“程序已修改!是否应该加载新程序?
在编辑器中打开的项目与当前在 PLC 中找到的程序(或正在运行的模拟模式程序)不兼容。因此,无法
进行监视和调试。您可以选择“否”,注销并打开正确的项目,或使用“是”在 PLC 中加载当前项目。
消息:
“程序已更改。负载变化?(在线更改)”。
项目正在控制器上运行。目标系统支持“在线更改”,并且项目已在控制器上针对最新下载或最近的在线更
改进行了更改。现在,您可以决定是否应在控制器程序运行时加载这些更改,或者是否应取消该命令。但
是,您也可以通过选择“全部加载”按钮来加载整个已编译的代码 。
“在线”“注销”
符号:快捷键<Ctrl>+<F8>
与 PLC 的连接断开,或者模拟模式程序结束并切换到离线模式。
使用“在线”“登录”命令更改为在线模式。
'在线''下载'
此命令在 PLC 中加载已编译的项目。
在编译过程中,下载信息保存在名为<projectname>0000000ar.ri的文件中,该文件在在线更改期间用于
将当前程序与最近加载到控制器上的程序进行比较,以便仅重新加载已更改的程序组件。此文件由命令
“Project”“全部清除”擦除。关于多个 PLC 的在线更改,请参阅“在线”、“登录”一章。请注意,*.ri 文件
也会在联机更改期间更新。
“在线”“运行”
符号:快捷方式:<F5>
此命令在 PLC 或模拟模式下启动程序。
CoDeSysV2.3版本 4-71
一般在线功能...
该命令可以在“在线”“下载”命令之后立即执行,或者在PLC中的用户程序以“在线”“停止”命令结束之
后,或者当用户程序处于断点时,或者当“在线”“单循环”命令已经执行时。
'在线''停止'
符号:快捷键<Shift>+<F8>
在两个周期之间停止在 PLC 或模拟模式下执行程序。
使用“在线”“运行”命令继续程序。
“在线”“重置”
此命令将所有变量重置为该特定值,但保留变量( VARRETAIN )除外,这些变量已使用该值进行初始
化(以及那些已声明为 VARPERSISTENT 的变量!如果已使用特定值初始化变量,则此命令会将变量
重置为初始化值。所有其他变量都设置为标准初始化(例如,整数为 0)。作为预防措施,CoDeSys要
求您在覆盖所有变量之前确认您的决定。这种情况是在电源故障或在程序运行时关闭控制器然后打开(热
重启)时发生的情况。
使用“在线”“运行”命令重新启动程序。
另请参阅“在线”、“重置(原始)”、“在线”、“重置(冷)”和-有关重新初始化的概述–第 5.2.1 章剩余
变量。
'在线''重置(冷)'
此命令对应于“重置”命令( 上文),但保留变量(!)的例外情况是,变量(!)也设置回其初始化
值。这种情况是在程序启动时发生的情况,该程序在下载到PLC之前(冷启动)。只有持久变量保留重置
前的值。关于这一点,另请参阅“在线”、“重置”、“在线”、“重置原始”和-有关重新初始化的概述-第
5.2.1 章剩余变量。
'在线''重置(原始)'
此命令将所有变量(包括剩余变量(VARRETAIN 和 VARPERSISTENT))重置为其初始化值,并擦
除控制器上的用户程序。控制器将返回到其原始状态。关于这一点,另 “在线”、“重置”、“在线”、“冷
重置”和-有关重新初始化的概述-第 5.2.1 章剩余变量。
'Online''切换断点'
符号:快捷方式:<F9>
此命令在活动窗口中的当前位置设置断点。如果已在当前位置设置了断点,则将删除该断点。
在文本编辑器(IL、ST)中,如果此行是断点位置(可通过行号字段的深灰色识别),则在光标所在的
行处设置断点。您还可以单击行号字段以在文本编辑器中设置或删除断点。
如果设置了断点,则行号字段或网络号字段或步骤将以浅蓝色背景色显示。
4-72 CoDeSysV2.3版本
4 - 单个组件
如果在程序运行时到达断点,程序将停止,相应的字段将以红色背景色显示。要继续程序,请使用“在线
”、“运行”、“在线”、“单步执行”或“在线”“单步执行”命令。
还可以使用“断点”对话框来设置或删除断点。
“联机”“断点对话框”
此命令将打开一个对话框,用于编辑整个项目中的断点。该对话框还显示当前设置的所有断点。
要设置断点,请在POU组合框中选择一个 POU,并在Location组合框中选择要设置断点的线路或网络;
然后按Add按钮。断点将添加到列表中。
要删除断点,请从设置的断点列表中突出显示要删除的断点,然后按“删除”按钮。
“全部删除”按钮可用于删除所有断点。
要转到编辑器中设置特定断点的位置,请从设置的断点列表中突出显示相应的断点,然后按“转到”按钮。
“断点编辑”对话框
要设置或删除断点,您还可以使用“在线”“切换断点”命令。
“在线”“跨步”
符号:快捷方式:<F10>
此命令将导致执行单个步骤。如果调用 POU,程序将在执行后停止。在 SFC 中,将执行完成操作。
如果本指令是函数或功能块的调用,则该函数或功能块将完全执行。使用“在线”“单步执行”命令,以移
动到被调用函数或功能块的第一条指令。
“在线”“步入”
快捷键:<F8>
执行一个步骤。程序在调用的 POU 的第一条指令之前停止。
如有必要,将切换到开放的 POU。
如果当前位置是函数或功能块的调用,则命令将继续执行被调用 POU 中的第一条指令。
在所有其他情况下,该命令将完全用作“在线”“单步执行”。
CoDeSysV2.3版本 4-73
一般在线功能...
“在线”“单周期”
快捷键:<Ctrl>+<F5>
此命令执行单个 PLC 循环,并在此循环后停止。
该命令可以连续重复,以便在单个周期中继续进行。
当执行“在线”“运行”命令时,单循环结束。
'在线''写入值'
快捷键:<Ctrl>+<F7>
使用此命令,可以设置一个或多个变量-仅一次!–在循环开始时用户定义的值。(参 '在线''力值' 永
久设置)
所有单元素变量的值都可以更改,只要它们在监控中也可 即可。
在执行命令“写入值”之前,必须准备好写入变量值:
对于非布尔变量,在声明变量的行上执行双击鼠标,或者标记变量并按下 <Enter> 键。然后出现“写入变
量 <x>”对话框,可以在其中输入要写入变量的值。
用于写入变量的对话框
根据需要设置任意数量的变量的值。
输入要写入变量的值也可以以相同的方式更正或删除。这在“在线”的“写入/强制对话框”中同样是可能
的( 下文)。
先前注意到的要写入的值保存在写入列表(监视列表)中,直到它们通过命令“强制值”实际写入、删除或
传输到强制列表为止。
可以在两个位置找到写入值的命令:
• 在“在线”菜单中命令“写入值”。
• 在“编辑写入列表和强制列表”对话框中单击“写入值”。
当执行命令“写入值”时,写入列表中包含的所有值仅在循环开始时写入控制器中的相应变量一次,然后从
写入列表中删除。(如果执行命令“强制值”,则相关变量也会从写入列表中删除,并传输到强制列表!
注意:在顺序函数图语言(SFC)中,不能使用“写入值”更改用于组合过渡表达式的单个值。这是因为在监控表达式
的 “ 总值 ” 时,不会显示单个变量的值(例如,仅当两个变量实际上都具有 TRUE 值时, “aANDb” 才会显示为
TRUE)。
4-74 CoDeSysV2.3版本
4 - 单个组件
'在线''力值'
快捷键:<F7>
使用此命令,一个或多个变量将永久设置为用户定义的值(参 “在线”“写入值”,在循环开始时仅设置
一次)。该设置在运行时系统中发生,无论是在周期的开始还是结束时。
该功能将保持活动状态,直到用户明确暂停(命令“在线”、“释放力”)或注销编程系统。
为了设置新值,首先创建一个写入列表,如“在线”“写入值”下所述。写入列表中包含的变量相应地在“监
视”中标记。 一旦执行命令“Online”“Forcevalues”,写入列表就会传输到 forcelist。活动力表可能已经
存在,在这种情况下,它会根据需要进行更新。然后清空写入列表,并将新值以红色显示为“强制”。力表
的修改通过下一个“力值”命令传输到程序。
注意:强制列表是在第一次强制写入列表中包含的变量时创建的,而写入列表在第一次写入它所包含的变
量之前就存在了。
强制变量的命令,这意味着它将被输入到强制列表中,可以在以下位置找到:
• 在“在线”菜单中命令“强制值”。
• “编辑写入列表和力列表”对话框中的“力值”按钮。
注意:在顺序函数图语言中,不能使用“力值”更改组合过渡表达式的单个值。这是因为在监控表达式的“总值”时,不
会显示单个变量的值(例如,仅当两个变量实际上都具有 TRUE 值时,“aANDb”才会显示为 TRUE)。
“在线”“释放力”
快捷键:<Shift>+<F7>
此命令结束在控制器中强制执行变量值。变量值再次以正常方式更改。
在监控中,强制变量可以通过显示其值的红色来识别。您可以删除整个强制列表,但也可以标记应释放强
制的单个变量。
要删除整个力列表,这意味着释放所有变量的力,请选择以下方法之一:
在菜单“在线”中命令“释放力”。
“编辑写入列表和力列表”对话框中的“释放力”按钮
使用“删除写入-/强制列表”对话框中的命令“释放强制”删除整个强制列表。如果您选择命令“释放力”,则
此对话框将打开,同时还存在写入列表。
要仅对单个变量释放力,您必须先标记这些变量。按照下面描述的一种方式执行此操作。之后,所选变量
标有绿松石扩展<释放力>:
双击声明了非布尔变量的行,打开“写入变量 <x>”对话框。按下按钮<此变量的释放力>。
在声明布尔变量的行上重复双击,以切换到行尾的显示<释放力>。
CoDeSysV2.3版本 4-75
一般在线功能...
在菜单“在线”中,打开写入/强制对话框,然后删除“强制值”列的编辑字段中的值。
当声明窗口中显示所有所需变量的设置“<释放力>”时,选择命令“力值”将力列表的修改传输到程序。
如果在执行命令“释放强制”时当前写入列表(参 “在线”“写入值”)不为空,则将打开“删除写入-/强制
列表”对话框。在那里,用户必须决定他是否只想释放Force,或者另外想要删除写入列表,或者他是否
想要删除这两个列表。
用于删除写入/强制列表的对话框
“在线”“写入/强制”对话框”
快捷键:<Ctrl>+<Shift>+<F7>
此命令将进入一个对话框,该对话框在两个寄存器中显示当前写入列表( 监视列表) 和强制列表 (
Forcelist)。每个变量名称以及要写入或强制执行的值都显示在表中。
用于编辑写入列表和强制列表的对话框
变量通过命令“Online”、“WriteValues”到达监视列表,并通过命令“Online”、“ForceValues”传输到强
制列表。可以在“准备值”或“强制值”列中编辑这些值,方法是在条目上单击鼠标以打开编辑器字段。如
果条目的类型不一致,则会显示一条错误消息。如果删除了某个值,则表示该条目已从写入列表中删除,
或者一旦使用除“取消”以外的任何其他命令关闭对话框,就会注意到该变量暂停强制。
4-76 CoDeSysV2.3版本
4 - 单个组件
以下命令与“在线”菜单中的命令相对应,可通过按钮使用:
强制值:当前写入列表中的所有条目都传输到强制列表,即强制控制器中变量的值。所有标有“释放力”的
变量都不再强制。然后关闭对话框。
写入值:当前写入列表中的所有条目仅写入控制器中的相应变量一次。然后关闭对话框。
释放力:强制列表中的所有条目都将被删除,或者,如果存在写入列表,则会出现“删除写入-/强制列表”
对话框,用户必须决定是只想释放强制还是放弃写入列表,或两者兼而有之。对话框将在此时关闭,或在
选择对话框关闭后(视情况而定)关闭。
'Online''显示调用堆栈'
当模拟模式在断点处停止时,可以运行此命令。您将看到一个对话框,其中包含 POU 调用堆栈的列表。
调用堆栈示例
'在线''显示流量控制'
根据目标系统设置,用户可以激活或停用流量控制功能。如果激活,菜单项前面会出现一个复选符(
)。在此之后,每条线路或每个网络都将被标记为在上一个 PLC 周期中执行的。
刚刚运行的线路或网络的线路编号字段或网络编号字段将显示为绿色。在 IL 编辑器中添加了一个附加字
段,其中显示了累加器的当前内容。在功能块图和梯形图的图形编辑器中,将在所有未传输任何布尔值的
连接线中插入一个附加字段。验证这些输出和输入后,通过连接线传输的值将显示在此字段中。仅传输布
尔值的连接线在传输 TRUE 时将以蓝色阴影显示。这样可以对信息流进行持续监控。
请注意:
1. 使用流量控制将增加程序的运行时间。这可能会导致高负载的时间循环程序超时。
2. 在活动断点位置,没有流量控制显示。
3. 如果已为相关任务定义了看 狗(请参 第 6.7.2 章“插入任务”),则当流控制处于活动状态时,
该看 狗将被关闭。
CoDeSysV2.3版本 4-77
一般在线功能...
'在线''模拟'
如果选择了模拟模式,则菜单项前面会出现一个复选标记( )。
在模拟模式下,用户程序在Windows下的同一台PC上运行。此模式用于测试项目。PC 和模拟模式之间
的通信使用 Windows 消息机制。
此标志的状态与项目一起存储。
请注意:
-外部库的 POU 不会在模拟模式下运行。
'在线''通信参数'
当本地PC和运行时系统之间的通信通过系统中的网关服务器运行时,将为您提供一个特殊对话框,用于
设置通信参数。(如果使用 OPC 或 DDE 服务器,则必须在其配置中输入相同的通信参数)。
请参阅以下各项:
网关系统原理
本地 PC 的通信参数对话框
设置所需的网关服务器和通道
为本地网关服务器设置新通道
本地 PC 上的通信参数对话框显示的内容
网关系统原理
网关系统原理
在解释对话框的操作之前,让我们先检查一下网关系统的原理:
网关服务器可用于允许本地PC与一个或多个运行时系统进行通信。有关可以寻址的运行时系统的设置(
专 为每个网关服务器配置)以及与所需网关服务器的连接,是在本地PC上进行的。在这里,网关服务
器和运行时系统可以在本地 PC 上一起运行。如果我们正在处理在另一台 PC 上运行的网关服务器,我们
必须确保它已在那里启动。如果选择本地安装的网关服务器,则在登录到目标运行时系统时,该服务器将
自动启动。您可以通过任务栏右下角的 CoDeSys 符号来识别这一点。只要您通过网关连接到运行时系
统,此符号就会亮起。菜单点“信息”和“完成”是通过在符号上单击鼠标右键获得的。Finish用于关闭网
关。
请参阅以下用于显示网关系统的方案:
4-78 CoDeSysV2.3版本
4 - 单个组件
另一方面,从网关到各种运行时计算机的连接可以通过不同的协议(TCP/IP、管道等)运行。
设置所需的网关服务器和通道
1. 在“通信参数”对话框中设置所需的网关服务器和通道:
要定义与所需网关服务器的连接,我们通过按“网关”按钮打开“通信参数网关”对话框。
示例对话框,定义与网关的本地连接
您可以在此处输入和/或编辑以下内容:
从计算机到运行要使用的网关服务器的计算机的连接类型。如果网关服务器在本地计算机上运行,则可
以通过共享内存(“本地”)或 TCP/IP 进行连接;如果需要连接到其他计算机,则只能使用 TCP/IP。
所选网关服务器的密码(如果位于远程计算机上)。如果输入错误或根本没有输入,则会出现错误消
息。
请注意:您可以通过以下步骤为本地安装的网关服务器提供密码:在工具栏右下角的网关符号上单击
鼠标右键,然后选择“更改密码”。将出现一个对话框,用于更改或输入密码。如果在本地访问网关服
务器,则不会要求输入任何密码。
要使用的网关服务器运行的计算机端口,通常已为所选网关提供正确的值。
如果对话框关闭为“确定”,则相应的条目(计算机地址)将显示在“频道”中
字段,其下方是此网关服务器上可用的通道。
CoDeSysV2.3版本 4-79
一般在线功能...
2. 在选定的网关服务器上设置所需的通道:
现在,通过用鼠标单击条目来选择其中一个频道。相应的参数将显示在表中。如果无法与所选网关地址建
立连接(可能是因为该地址尚未启动或地址不正确),则该地址后面的括号中会显示短语“未连接”,并显
示一条消息“找不到具有这些设置的网关”。在这方面,请执行快速检查。
设置所需通道后,使用“确定”关闭对话框。设置将与项目一起保存。
为本地网关服务器设置新通道
您可以为当前连接的网关服务器设置新通道,然后可以使用这些通道从服务器建立进一步的连接,例如与
控制器的连接。您在这方面拥有的选项取决于计算机上安装的设备驱动程序数量的特定选择。
按“通信参数”对话框中的“新建”按钮。出现“通信参数:新通道”对话框:
示例对话框,安装新通道
输入字段名称自动包含用于上次输入通道的名称。如果尚未定义通道,则将提供当前网关名称,后跟下划
线字符,例如“localhost_”。此时,您可以编辑频道名称。频道名称仅供参考,不必是唯一的名称,但建
议使用一个。
网关计算机上可用的设备驱动程序列在“设备”下的表中。在“名称”列中,通过鼠标单击选择一个可用的
驱动程序;相应的注释(如果有)将显示在“信息”列中。
如果关闭“...“新建通道”对话框,新定义的通道将作为“通道”中减号下最低位置的新条目出现在“通信参
数”对话框中。到目前为止,它只存储在本地项目中( 上文)。此时,您可以编辑“值”列(请参阅下面
的提示)。现在使用“确定”确认输入的参数,从而离开“通信参数”对话框。
如果登录时发生通信错误,则可能无法打开接口(例如,用于串行连接的 COM1),可能是因为它正在
被另一台设备使用。控制器也可能未运行。
4-80 CoDeSysV2.3版本
4 - 单个组件
网关服务器已知的通道的参数不能再在配置对话框中编辑。参数字段显示为灰色。但是,只要连接未处于
活动状态,就可以将其删除。
重要提示:请注意,删除频道是不可逆的。它发生在您按下按钮的那一刻删除!
本地 PC 上的通信参数对话框显示的内容
此对话框用于选择与 PLC 通信的网关服务器。此外,还可以为安装在本地 PC 上的网关服务器设置新通
道,以便这些通道可以由作为网络一部分的其他计算机使用。
可以使用“更新”按钮随时调用当前设置。
如果已经根据“网关系统原理”中的示例配置了通信参数,则对话框将如下所示:
标题通道列出了两类连接:
一方面,显示了所有连接,这些连接安装在当前连接的名为“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因为关联的网关地址已作为“通道树”的附加“子分支”出
现。
在对话框的中央部分,在每种情况下,都可以在“名称”、“值”和“注释”下找到左侧所选通道的名称和
相关参数。
CoDeSysV2.3版本 4-81
一般在线功能...
在通信参数对话框中编辑参数的提示
您只能编辑“值”列中的文本字段。
用鼠标选择一个文本字段,然后通过双击或按空格键进入编辑模式。按 <Enter> 键完成文本输入。
要编辑数值,可以使用箭头键或PageUp/Down键分别将值更改一个或十个单位。用鼠标双击也会通过增
加一个单位来更改该值。对数值安装类型检查: <Ctrl>+<Home> 或 <Ctrl>+<End> 分别为相关参数类
型的可能输入值提供最低或最高值。
在尝试连接网关失败时快速检查
如果与所选网关计算机的连接不成功,则应进行以下检查。(在“通信参数”对话框中,在“通道”字段中
网关服务器地址后面的“通信参数”对话框中收到消息“未连接”):
网关服务器是否已启动(三色符号出现在工具栏的右下角)?
'在线''源代码下载'
此命令将项目的源代码加载到控制器系统中。不要将其与编译项目时创建的代码混淆!您可以在“项目”“
选项”“Sourcedownload”对话框中输入适用于下载的选项(时间、大小)。
'Online''创建启动项目'
使用此命令,在控制器上设置已编译的项目,以便控制器可以在重新启动时自动加载它。引导项目的存储
方式因目标系统而异。例如,在 386 个系统上创建了三个文件:default.prg包含项目代码,default.chk
包含代码的校验和,default.sts包含重新启动(启动/停止)后的控制器状态。
如果项目已构建且没有错误,则命令“Online”、“Createbootproject”在离线模式下也可用。在这种情况
下,将在项目目录中创建以下文件:<projektname>.prg用于启动项目代码,projektname>.chk用于校
验和。这些文件可以根据需要重命名,然后复制到 PLC。
根据目标系统设置,在脱机模式下创建引导项目时,可能会创建新的*.ri文件(下载信息)。此外,根据
目标设置,如果此文件已存在,则会出现一个对话框。
'Online''将文件写入控制器'
此命令用于将任何所需的文件加载到控制器上。它会打开“将文件写入控制器”对话框,您可以在其中选择
所需的文件。
使用“打开”按钮关闭对话框后,文件将加载到控制器中以相同的名称存储在那里。加载过程伴随着一个进
度对话框。
使用命令“在线”“从控制器加载文件”,您可以检索以前加载在控制器上的文件。
4-82 CoDeSysV2.3版本
4 - 单个组件
“联机”:“从控制器加载文件”
使用此命令,您可以使用“在线”“将文件写入控制器”检索之前加载到控制器中的文件。您会收到“从控制
器加载文件”对话框。在“文件名”下,提供所需文件的名称,然后在选择窗口中输入计算机上的目录,一
旦使用“保存”按钮关闭对话框,该文件将加载到该目录。
4.7 窗口设置...
在“窗口”菜单项下,您将找到用于管理窗口的所有命令。有一些命令可用于自动设置窗口、打开库管理
器和在打开的窗口之间切换。在菜单的末尾,您将找到所有打开的窗口的列表,这些窗口按打开的顺序排
列。您可以通过在相关条目上单击鼠标切换到所需的窗口。检查将出现在活动窗口的前面。
'窗口''平铺水平'
使用此命令,您可以在工作区中水平排列所有窗口,使它们不会重叠并填满整个工作区。
'窗口''垂直磁贴'
使用此命令,您可以在工作区中垂直排列所有窗口,使它们不会重叠并填充整个工作区。
'窗口''级联'
使用此命令,您可以以级联方式排列工作区中的所有窗口,一个接一个。
'窗口''排列符号'
使用此命令,您可以将工作区中所有最小化的窗口排列在工作区的下端。
'窗口''全部关闭'
使用此命令,您可以关闭工作区中所有打开的窗口。
“窗口”“消息”
快捷键:<Shift>+<Esc>
使用此命令,您可以打开或关闭消息窗口,其中包含上次编译、检查或比较过程中的消息。
如果消息窗口处于打开状态,则命令前面将出现一个复选标记( )。
4.8 在您需要时提供帮助...
“帮助”“目录和搜索”
使用命令 Contentsresp.在“帮助”菜单中搜索,您可以打开帮助主题窗口,该窗口将通过 HTML 帮助查
看器(InternetExplorerV4.1 及更高版本)显示。
“内容”选项卡显示内容树。书籍可以通过双击或通过加号和减号打开和关闭。当前在内容树中选择的
面将显示在窗口的右侧。从文本到其他帮助 面的超链接,以及扩展热点,用不同的颜色和下划线标记。
鼠标点击这些文本将打开链接 面,并显示展开的文本或图片。
CoDeSysV2.3版本 4-83
在您需要时提供帮助...
上下文相关帮助
快捷方式:<F1>
可以在活动窗口、对话框或菜单命令上方使用<F1>键以打开联机帮助。从菜单中执行命令时,将显示当
时调用的命令的帮助。
4-84 CoDeSysV2.3版本
4 - 单个组件
CoDeSysV2.3版本 4-85
5 -CoDeSys 中的编辑器
CoDeSys 中的 5 个编辑器
5.1 这是给所有编辑的...
编辑器的组件
POU(程序组织单位)的所有编辑器都由声明部分和正文组成。正文可以由其他文本或图形编辑器组成;
声明部分始终是文本编辑器。正文和声明部分由屏幕分隔符隔开,可以根据需要通过用鼠标单击它并向上
或向下移动来拖动该分隔符。
打印 边距
如果选择了“工作区”对话框的项目选项中的“显示打印范围”选项,则打印编辑器内容时应用的垂直和
水平边距将以红色虚线显示。输入的打印机的属性以及在“文件”“打印机设置”菜单中选择的打印布局的
大小都适用。如果未输入打印机设置或未输入打印布局,则使用默认配置( Default.DFR 和默认打印机
)。绘制水平边距时,就像在“文档设置”中选择了“每个对象的新 面”或“每个子对象的新 面”选项一
样。不显示最低边距。
注意:仅当选择100%的缩放系数时,才能精确显示打印 边距。
评论
用户注释必须包含在特殊符号序列“(*”和“*)”中。示例:(*这是评论。
允许在所有文本编辑器中、任何所需位置(即所有声明、IL 和 ST 语言以及自定义数据类型)中使用注
释。如果使用模板打印出项目,则在变量声明期间输入的注释将出现在每个变量后面的基于文本的程序组
件中。
在FBD 和 LD 图形编辑器中,可以为每个网络输入注释。为此,请搜索您要发表评论的网络并激活“插入
”“评论”。
除此之外,始终可以在插入变量名称的地方添加注释。
FBD 中网络注释和放置在输入变量后面的注释的示例:
在KOP中,如果在菜单“附加”“选项”的显示选项中进行了相应的配置,也可以为每个触点或每个线圈添
加注释。在梯形图编辑器中,如果在菜单“附加”“选项”中激活了相应的选项,则可以为每个特定触点和
线圈添加注释。
CoDeSysV2.3版本 5-1
这是给所有编辑的...
在联机模式下,如果将鼠标光标停留在变量上一小段时间,则该变量的类型以及地址和注释(如果适用)
将显示在工具提示中。
缩放到POU
快捷键:<Alt>+<Enter>
使用此命令,选定的 POU 将加载到其编辑器中。如果光标位于文本编辑器中的 POU 名称上,或者在图
形编辑器中选择了 POU 框,则该命令可在上下文菜单(<F2>)或“附加”菜单中使用。
打开实例
此命令对应于“Project”“Openinstance”命令。
如果光标位于文本编辑器中的功能块名称上,或者在图形编辑器中选择了功能块框,则可以在上下文菜
单(<F2>)或“附加”菜单中使用它。
通过“Intellisense 函数”输入变量
如果在项目选项对话框中激活了“编辑器”类别的“列出组件”选项,则“Intellisense”功能将在所有编辑
器、监视和配方管理器、可视化和采样跟踪中可用:
如果插入点“.”而不是标识符,则会出现一个选择框,列出项目的所有局部变量和全局变量。您可以选择
其中一个元素,然后按“返回”将其插入点后面。您也可以通过双击列表条目来插入元素。
如果输入功能块实例或结构变量后跟一个点,则会出现一个选择框,其中列出了相应功能块的所有输入和
输出变量,并列出了结构组件,您可以在其中选择所需的元素,然后按“返回”或双击输入。
标识符的脱机工具提示
在所有编辑器的离线模式下,以下情况都适用:如果光标放在可编辑的标识符上,则在工具提示中将显示
标识符的名称、变量类(例如 VAR_GLOBAL)、数据类型、变量的属性(例如 RETAIN)、地址和注
释。
显示交叉引用
如果在编辑器中选择了变量标识符,则此命令“显示交叉引用”将在“附加”菜单或上下文菜单中可用。它
可用于获取项目中使用变量的所有位置的列表。有关此交叉引用列表的信息,请参阅:“项目”“显示交叉
引用”。
5-2 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
将变量添加到监视列表
如果在其中一个POU编辑器中选择了一个或多个变量或元素,则可以通过上下文菜单中的相应命令将这
些变量或元素插入到新的或现有的监视列表中。有关详细信息,请参 6.8.2。创建监视列表、食谱。
5.2 声明编辑器
5.2.1 在声明编辑器中工作
声明编辑器用于声明POU和全局变量的变量、数据类型声明以及监视和配方管理器。它允许访问通常的
Windows 功能,如果安装了相应的驱动程序,甚至可以使用 IntelliMouse 的功能。
在 覆 盖 模 式 下 , “OV”在状态栏上以黑色显示;可以使用<Ins>键在覆盖和插入模式之间切换。
变量的声明由语法着色支持。
最重要的命令位于上下文菜单中(鼠标右键或 <Ctrl>+<F10>)。
提示:考虑使用编译指示来影响有关编译或预编译过程的变量属性的可能性(参 第 5.2.3 章)。
声明部分
仅在此 POU 中使用的所有变量都在 POU 的声明部分中声明。这些变量可以包括:输入变量、输出变
量、输入/输出变量、局部变量、剩余变量和常量。声明语法基于 IEC61131-3 标准。
有关使用标识符的建议,请参阅附录 J:。
关于对“全局变量”、“数据类型”、“函数”、“功能块”或“程序”类型的对象使用模板的可能性,请参 第
4.3 章“从模板新建的文件”。
在CoDeSys-Editor中正确声明变量的示例:
输入变量
在关键字VAR_INPUT和END_VAR 之间,声明了用作 POU 输入变量的所有变量。这意味着在调用位
置,变量的值可以与调用一起给出。
例:
CoDeSysV2.3版本 5-3
声明编辑器
VAR_INPUT
iIn1:INT (*1.你必须成为一个好榜样,说明你如何成为一个好榜样
END_VAR
输出变量
在关键字VAR_OUTPUT和END_VAR 之间,声明了用作 POU 输出变量的所有变量。这意味着这些值将
传回进行调用的 POU。在那里,它们可以得到回答并进一步使用。
例:
VAR_OUTPUT
iOut1:INT;(*1.输出变量*)
END_VAR
输入和输出变量
在关键字VAR_IN_OUT和END_VAR 之间,声明了用作 POU 的输入和输出变量的所有变量。
注意:使用此变量时,传输的变量的值会更改(“作为指针传输”,按引用调用)。这意味着此类变量的输入值不能是
常量。因此,即使是功能块的VAR_IN_OUT变量也无法通过 <functionblockinstance><in/outputvariable> 直接从外部
读取或写入。
例:
VAR_IN_OUT
iInOut1:INT;(*1.在 1980 年代,100,000 英尺(
END_VAR
局部变量
在关键字VAR和END_VAR 之间,声明了 POU 的所有局部变量。它们没有外部连接;换句话说,它们不
能从外面写出来。
例:
VARiLoc1:INT;(*1.局部变量*)
END_VAR
可变剩余物
剩余变量可以在通常的程序运行期间保留其值。其中包括 Retain 变量和 Persistent 变量。
例:
VARRETAINiRem1:INT;(*1.保留变量*)
END_VAR
Retain 变量由关键字RERETAIN 标识。即使在控制器不受控制地关闭以及控制器正常关闭和打开后,这
些变量仍保持其值(或在命令“在线”“重置”,参 第 4.6 章)。当程序再次运行时,存储的值将被进一步
处理。一个具体的例子是生产线上的计件器,在断电后重新开始计数。
所有其他变量都是新初始化的,无论是其初始化值还是标准初始化。
与持久变量相反,保留变量在重新下载程序时重新初始化。
5-4 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
因为它们不会保存在“保留区域”中。如果持久变量在控制器不受控制的关闭后也应保持其值,则必须
将它们另行声明为 VARRETAIN 变量。“持久保留变量”的一个具体示例是在电源故障后重新开始计时
的操作计时器。
注意力:
- 如果程序中的局部 变量被声明为 VARRETAIN,那么该变量将完全保存在保留区域中(就像全局保留
变量一样)
- 如果功能块中的局部变量被声明为 VARRETAIN,则该功能块的完整实例将保存在保留区域(POU 的
所有数据)中,因此只有声明的保留变量才会作为保留进行处理。
x = 将保留值 -= 重新初始化值
在线命令后 VAR值 VAR 保留 坚持不懈 VAR 保留持久性 VAR 持久性保
留
重置 - x - x
重置(调用) - - - -
重置(原点) - - - -
下载 - - x x
x常量,类型化文本
在线更改 x x x
常量由关键字CONSTANT 标识。它们可以在本地或全球声明。
语法:
VAR 常 量 <Identifier> : <Type> : =
<initialization>; END_VAR
例:
VAR 常数 c_iCon1:INT:=12;(*1.常量*)
END_VAR
有关可能的常量列表,请参阅附录 B:CoDeSys 中的操作数。另请参阅有关使用类型化常量(类型化文
本)的可能性的信息。
外部变量
要导入 POU 的全局变量使用关键字 EXTERNAL 指定。在“联机”模式下,它们还会显示在声明部件的“
监视”窗口中。
如果VAR_EXTERNAL声明在各个方面都与全局声明不匹配,则会出现以下错误消息:“'<var>'的声明与
全局声明不匹配!
如果全局变量不存在,则会出现以下错误消息:“未知全局变量:'<var>'!
例:
VAREXTERNALiVarExt1:INT:=12;(* 第一个外部变量 *)
END_VAR
CoDeSysV2.3版本 5-5
声明编辑器
关键字
在所有编辑器中,关键字都应以大写字鯦书写。关键字不能用作变量。关键字示例:VAR、
VAR_CONSTANT、IF、NOT、INT。
变量声明
变量声明的语法如下:
<标识符>{AT<Address>}:<Type>{:=<initialization>};
大括号 {} 中的部分是可选的。
关于标识符,即变量的名称,应该注意的是,它不能包含空格或变音字符,它不能一式两份声明,也不能
与任何关键字相同。变量的大写/小写写入被忽略,换句话说,VAR1、Var1 和 var1 不是不同的变量。标
识符中的下划线是有意义的,例如A_BCD和AB_CD被解释为不同的标识符。不允许在标识符的开头或标
识符内使用多个连续的下划线。标识符的 度以及其中有意义的部分是无限的。
变量和数据类型元素的所有声明都可以包含初始化。它们是由“:=”运算符产生的。对于基本类型的变
量,这些初始化是常量。所有声明的默认初始化为 0。
例:
iVar1:INT:=12;(* 初始值为 12* 的整数变量)
如果您希望将变量直接链接到确定的地址,则必须使用关键字 AT 声明该变量。
为了更快地输入声明,请使用快捷方式模式。
在功能块中,您还可以使用不完整的地址语句指定变量。为了在本地实例中使用此类变量,变量配置中必
须有一个条目。
注意自动声明的可能性,或者使用编译指示来影响与编译过程有关的变量的属性。
AT声明
如果您希望将变量直接链接到确定的地址,则必须使用关键字AT 声明该变量。这种过程的优点是您可以
为地址分配一个有意义的名称,并且只需在一个地方(例如,在声明中)对传入或传出信号进行任何必要
的更改。
请注意,需要输入的变量不能通过写入来访问。
例子:
xCounterHeat7 在 %QX0.0:布尔值
;wLightcabinetimpulseAT%IW2:字
;xDownload 在 %MX2.2:布尔值;
'插入''声明关键字'
您可以使用此命令打开可在POU的声明部分中使用的所有关键字的列表。选择关键字并确认选择后,该
单词将插入到当前光标位置。
当您打开输入助手(<F2>)并选择声明时,您还会收到列表
类别。
5-6 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
'插入''类型'
使用此命令,您将收到用于声明变量的可能类型的选择。当您访问输入助手(<F2>)时,您也会收到该
列表。
这些类型分为以下几类:
标准类型 BOOL、BYTE 等
定义的类型结构、枚举类型等。
实例声明的标准功能块
为实例声明定义的功能块
CoDeSys支持所有标准类型的 IEC1131-3:
语法着色
在所有编辑器中,您都会在变量的实现和声明中获得可视化支持。可以避免错误,或者更快地发现错误,
因为文本是以彩色显示的。
未关闭的评论,因此注释说明,将立即被注意到;关键字不会意外拼写错误等。
将使用以下颜色突出显示:
蓝 关键字
绿 文本编辑器中的注释
粉红色 特殊常量(例如 TRUE/FALSE、T#3s、%IX0.0)
红 输入错误(例如,无效的时间常数、关键字、以小写形式书写,...)
黑 变量、常量、赋值运算符......
快捷方式
CoDeSys的声明编辑器允许您使用快捷方式模式。当您使用 <Ctrl><Enter 结束一行时,此模式将被激
活>
支持以下快捷方式:
直到一行的最后一个标识符之前的所有标识符都将成为声明变量标识符
声明的类型由行的最后一个标识符确定。在这种情况下,以下情况将适用:
B 或 BOOL 给出结果BOOL
I 或 INT 给出结果INT
R 或字符串给出结果REAL
S 或REAL
给出结果STRING
根据声明的类型,每个常量都将转换为初始化或字符串(示例 2 和 3)。
CoDeSysV2.3版本 5-7
声明编辑器
捷径 声明
一个 答:布尔值;
A 、乙、一、2 A , B : 整 数 : = 2;
STS2;字符串 ST:字符串(2);(* 字符串 *)
X%MD12R5 实数 %MD12 处的 X:实数:=5.0;(* 实数 *)
B ! B:布尔值;
自动声明
如果在“选项”对话框的“编辑器”类别中选择了“自动声明”选项,则在输入尚未声明的变量后,所有编辑
器中都会出现一个对话框。借助此对话框,现在可以声明变量。
用于声明变量的对话框
使用CONSTANT、RETAIN、PERSISTENT选项,您可以定义是处理常量变量还是保留变量
您在编辑器中输入的变量名称已输入到“名称”字段中,BOOL 已输入
放置在“类型”字段中。该按钮将打开“输入助手”对话框,该对话框允许您从所有可能的数据类型中进行
选择。
数组声明:
如果选择 ARRAY 作为变量类型,则会出现用于输入数组边界的对话框。
用于在自动声明期间确定数组边界的对话框
对于三个可能的维度(尺寸)中的每一个,都可以在“开始”下输入阵列边界
最后 用鼠标单击相应的字段以打开编辑空间。阵列
数据类型在“类型”字段中输入。在此过程中,该按钮可用于调用输入助手对话框。
5-8 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
果这是一个
数组或有效结构,您可以通过按钮打开一个特殊的初始化对话框,或者打开其他变量类型的输入助手
对话框。
在数组的初始化对话框中,您会看到一个数组元素列表;鼠标单击“:=”后面的空间会打开一个编辑字
段,用于输入元素的初始值。
在结构的初始化对话框中,各个组件以树状结构显示。类型和默认初始值显示在变量名称后面的括号
中;每个后面都跟着“:=”。鼠标单击“:=”后面的字段会打开一个编辑字段,您可以在其中输入所需的
初始值。如果组件是数组,则可以通过鼠标单击数组名称前的加号来扩展数组中各个字段的显示,并
且可以使用初始值编辑字段。
注意:变量声明对话框也可以通过命令“编辑”“声明变量”获得。如果光标停留在联机模式下的变量上,则可以使用
<Shift><F2> 打开“自动声明”窗口,并显示当前与变量相关的设置。
声明编辑器中的行号
在离线模式下,只需单击特殊行号即可标记整个文本行。
在在线模式下,如果涉及结构变量,单击特定行号将打开或关闭该行中的变量。
以表格形式声明
如果在“项目选项”(类别“编辑器”)中激活了“以表格形式声明”选项,或者(如果您已经在声明编辑
器中工作)在上下文菜单中激活了“声明作为表”选项,则声明编辑器将看起来像一个表格。与在卡索引框
中一样,您可以选择相应变量类型的寄存器卡并编辑变量。
对于每个变量,您都会获得以下输入字段。
名字: 输入变量的标识符。
地址: 如有必要,输入变量的地址(AT声明)
类型: 输入变量的类型。(实例化函数时输入功能块
块)
初: 输入变量的可能初始化(对应于“:=” 赋值
运算符)。
评论:在此处输入评论。
声明编辑器的两种显示类型都可以更改,而不会引起任何问题。在联机模式下,没有不同的显示类型。
插入新声明:
要编辑新变量,请选择“插入”“新声明”命令( 下文)。
对声明进行排序:
CoDeSysV2.3版本 5-9
声明编辑器
要对表条目进行排序,请将光标设置到编辑器窗口左边框的行号栏上,然后在上下文菜单中选择以下命令
之一:
按名称排序:所有行都根据“名称”列中的标识符名称按字鯦顺序排序。
按地址排序:所有行均根据“地址”列中的地址条目按字鯦顺序排序。
按类型排序:所有行都根据“类型”列中的类型名称按字鯦顺序排序。
原始顺序:行按最初输入的顺序显示。
声明编辑器作为表格
'插入''新声明'
使用此命令,可以将新变量引入声明编辑器的声明表中。如果当前光标位置位于表的字段中,则新变量将
粘贴到前一行中;否则,新变量将粘贴到表的末尾。此外,您可以使用右箭头键或 Tab 键在表的最后一个
字段中粘贴新声明。
您将收到一个变量,该变量的“名称”位于“名称”字段中,“布尔”位于“类型”中
字段,作为其默认设置。应将这些值更改为所需的值。名称和类型是完整声明变量所需的全部内容。
5.2.2 在线模式下的声明编辑器
在联机模式下,声明编辑器将变为监视器窗口。在每一行中都有一个变量,后跟等号(=)和变量的值。
如果此时的变量未定义,则会出现三个问号( ??? )。对于功能块,仅显示打开的实例的值(命令:
'Project''Openinstance')。
当变量处于打开状态时,其所有组件都列在它之后。变量前面会出现一个减号。如果再次双击或按
<Enter>,变量将关闭,加号将重新出现。
按 <Enter> 或双击单个元素变量将打开对话框以写入变量。在这里可以更改变量的现值。对于布尔变
量,则不显示对话框;这些变量是切换的。
5-10 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
新值显示在变量之后,以尖括号和绿松石色显示,并且保持不变。如果给出了“在线”“写入值”命令,则
所有变量都将放置在所选列表中,并再次以黑色显示。
如果给出了“在线”“强制值”命令,则所有变量都将设置为所选值,直到给出“释放力”命令。在这种情况
下,力值的颜色将更改为红色
5.2.3 声明编辑器中的编译指示
编译指示用于影响与编译或预编译过程有关的变量的属性。它可以与声明编辑器的程序行中的补充文本一
起使用,也可以在其自己的行中使用。
编译指示用大括号括起来,忽略大写和小写:{<指令文本>}
如果编译器无法有意义地解释指令文本,则整个编译指示将作为注释处理并读取。发出警告:“忽略编译
器指令'<指令文本>'!
根据编译指示的类型和内容,编译指示要么在其所在的行上运行,要么在所有后续行上运行,直到以适当
的编译指示结束,或者使用不同的参数执行相同的编译指示,或者到达文件的末尾。我们所说的文件是
指:声明部分、实现部分、全局变量列表、类型声明。
左括号可以紧跟在变量名称之后。左括号和右括号必须位于同一行上。
CoDeSys 中目前提供以下编译指示:
• 编译指示 {flag...} 用于初始化、监控、创建符号
• Bitaccess 的 pragma {bitaccess ...}
• 用 于 链 接 POU 或 DUT 的 pragma {link}
• 编译指示 {parameter..}, {template...}, {instance...} 用于创建参数管理器条目
• Pragma{library...},用于控制库声明部分的显示
初始化、监控、创建符号、Bitaccess、链接的编译指示
编 译 指 示 {flag [<flags>] [off|on]}
<flags> 可以是以下标志的组合:
noinit: 该变量不会被初始化。
不看: 无法监控变量
诺雷德: 变量在没有读取权限的情况下导出到符号文件
nowrite: 变量在没有写入权限的情况下导出到符号文件
noread,nowrite: 变量不会导出到符号文件
CoDeSysV2.3版本 5-11
声明编辑器
VAR值
a: INT{标志 noinit,nowatch};
b: INT { 标 志 noinit };
END_VAR
VAR {flag noinit , nowatch on}
a: 整 数 ; { 标 记 noinit on}
b:整数;{关闭旗帜}
END_VAR
这两个变量都不会初始化:
{标志关于}VAR值
a :整数;
b : 整 数 ;END_VAR {flag off} VAR {flag noinit on}
a :整数;
b :整数;{关闭旗帜}
END_VAR
将变量获取到符号文件:
在具有读取和/或写入权限的 POU 中,使用标志“noread”和 “nowrite” 为所选变量提供受限访问权限。变
量的默认值与声明变量的 POU 的设置相同。如果变量既没有读取权限也没有写入权限,则不会将其导出到
符号文件中。
例子:
a: INT{标志noread};
b: INT{标志 noread,nowrite};
END_VAR
VAR { flag noread on}
a: 整 数 ; { 标 志 noread , nowrite on}
b:整数;{关闭旗帜}
END_VAR
变量 a 和 b 都不会导出到符号文件中:
{ 标志 noread, nowriteon}VAR值
a:整数;
b : 整 数 ;END_VAR {flag off} VAR {
flag noread , nowrite on}
a:整数;
b:整数;{关闭旗帜}
END_VAR
编译指示对所有后续变量声明进行累加操作。
示例:(所有正在使用的 POU 都将以读写权限导出)
a :空军基
5-12 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
地;...
FUNCTION_BLOCK afB
VAR值
b: bfb{标志nowrite};
c :整数
;END_VAR......
FUNCTION_BLOCK bfB
VAR值
d: INT{标志noread};
e: INT{标志nowrite};
END_VAR
“a.b.d”:不会导出
“a.b.e”:仅具有读取权限即可导出
“a.c”:将以读写权限导出。
请注意:必须激活项目选项“替换常量”(类别 Build)!
编译指示必须插入到结构的声明中,放在单独的行中。该行不以分号结尾。
语法:
{bitaccess < 全 局 常 量 > < 位 数 > '<comment>'}
<全局常量>:全局常量的名称,必须在全局变量列表中定义。
<Bitnumber>:全局变量列表中定义的全局常量的值。
有关附录 B 章中的示例:CoDeSys 中的操作数,对变量中的位进行寻址。
Pragma{link},用于在代码生成期间链接POU
通常,在代码生成过程中,不会在项目中调用的 POU(程序、功能、功能块)或数据单元类型定
义(DUT)链接。但是,可能希望一个函数,例如通过库包含在项目中,在下载到运行时系统后应
该可用,即使它不是由应用程序直接使用(例如,用于任何检查操作)。为此,您可以在 POU 的
声明部分或 DUT 中的任何所需位置添加 {link} 编译指示,以便强制链接 POU。
用于控制库声明部件显示的编译指示
在CoDeSys中创建库期间,您可以通过编译指示定义声明窗口的哪些部分应该可 ,或者稍后在库管理
器中不可 ,当库将包含在项目中时。库的实现部分的显示不会受此影响。
CoDeSysV2.3版本 5-13
声明编辑器
{图书馆公共}(*这是为所有人准备的*){图书馆私人}(*这并不适合所有人*)
{图书馆公共}
功能 afun :BOOL
VAR_INPUT
在:布尔值;
END_VAR
{图书馆私人}
VAR当地:布尔;
END_VAR
{图书馆公共}
VAR_INPUT
in2 : 布 尔 值 ; {library
private}in3:布尔值;{
图书馆公共}
END_VAR
参数管理器条目的编译指示说明
可以在变量声明中插入编译指示,以便在参数管理器中处理的参数列表中为这些变量创建条目。这取决于
目标系统,即 CoDeSys 编程系统中是否提供参数管理器。这意味着必须在目标设置的“网络功能”类别中
激活它。
语法:
编译指示用大括号括起来,忽略大写和小写:{<Instructiontext>}。如果它包含在“normal”变量声明中,
则必须在声明的终止分号之前设置它。
关键定义用空格字符分隔,全部用方括号括起来。
<name>:参数管理器中参数列表的名称。如果该列表尚不存在,则将创建该列表。
<key>:属性名称,即参数列表中的列标题;例如“名称”、“值”、“访问级别”等;这取决于客户特定参数列
表类型的定义,可以在编译指示中定义哪些键。关键定义用空格字符分隔,全部用方括号括起来。考虑数
组、结构或功能块组件的实例列表中条目的语法。( 下文,3。
请注意:
一旦焦点发生变化,编译指示将立即生效,这意味着一旦完成预编译,例如通过离开编辑器窗口。在编译项
目之前,不会向错误输入发送消息。
可以生成以下条目:
1. “变量”类型的参数列表中的条目
(a)从程序和全局变量列表的声明部分:
5-14 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
END_VAR
(b)通过VAR_CONFIG界面中的声明:
可以通过在VAR_CONFIG窗口中放置编译指示来为“变量”类型的参数列表中的变量创建条目(与变量
配置无关,这些配置也在 VAR_CONFIG 接口中完成):(如果参数列表尚不存在,它将自动创建)
VAR_CONFIG
{ 参 数 列 表 =varlist1 路 径 =PLC_PRG.act1.var_x [ 名 称 =xvar ] }
END_VAR
2. 通过功能块和结构在“模板”类型的参数列表中输入条目
功能块和结构中变量声明中的编译指示可用于在“Template”类型的参数列表中创建条目。(如果模板
尚不存在,将自动创建模板。
STRU 类型:
结构
ivar : INT; strvar : STRING{ 模 板 列 表 =vorl1 [member=struvar1 accesslevel=low] };
END_STRUCT
END_TYPE
3.“实例”类型的参数列表中的条目(用于数组、功能块或结构变量)
(a)通过程序或全局变量列表中的声明
在声明数组时,程序中的功能块或结构变量或全局变量列表直接可以创建“实例”类型的参数列表:
CoDeSysV2.3版本 5-15
声明编辑器
对于数组,键“template”将自动使用隐式可用的模板“ARRAY”定义,对于结构和功能块,参数管理器
中必须提供适当的模板,并且必须是此处描述的声明的一部分。
对于每个特定的数组或结构或功能块元素,可以在参数列表中预定义一个单独的条目:例如,每个元
素都可以指定自己的定义 [name=<elementname>]。
每个特定元素的键定义(特定元素的所有键都用相同的方括号括起来!)排列成一行,用空格分隔。
元素的定义包将根据索引(Member)的升序自动引用元素。如果可用的键定义不如数组或结构或功
能块中的元素多,则其余元素将被分配与最后一个单独定义的元素相同的值(数组的键“名称”例外,
下文)!(参 示例 1b)。
在参数列表中输入数组时有关键“名称”的自动性:
- 如果未在编译指示中指定数组元素的名称,则该元素和所有后续元素将自动获得名称<POU名
称>_<数组变量名称>_<对应的数组索引号>。
- 如果通过编译指示为第一个数组元素定义任何名称 “<name>_<数组范围的第一个索引号>”,
则参数列表中的以下数组元素将自动命名为 “<name>_<对应索引号>”。
注意:不要为键“Member”定义值;将使用数组索引值自动填充此列。
例子:
示例1a:数组变量arr_1如下所述声明,以创建类型为“Instance”(如果尚不可用)的参数列表,
其中输入数组组件,其中每个元素首先将获得一个符号名称xname_<索引号>(之后可以在参数管
理器中编辑),并且每个条目的子索引将按 1 计数,从 0 (basesubindex)开始。
Accesslevel=low 将应用于所有元素。
arr_1 : ARRAY [1..8] OF INT{instance list=arrinst template=ARRAY baseindex=16#0 basesubindex=16#0 [name=xname_1 accesslevel=low] }
示例1b:对于数组变量arr_1仅针对元素 1 到 4 的名称已经通过编译指示定义,因此元素 5 到 8 将
自动获得元素 4 的名称,该名称由下划线和适当的索引号扩展,即“xname_5”到“xname_8”。请
注意,必须在与访问级别相关的第一个和第四个元素相同的方括号内输入特定元素的进一步键定
义:
arr_1 : ARRAY [1..8] OF INT{instance list= arrinst template= ARRAY baseindex= 16#0
basesubindex= 16#0[name= aname accesslevel= high] [name= bname] [name= cname] [name= xname
accesslevel=medium]};
5-16 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
参数管理器编辑器,Example1a
参数管理器编辑器,Example1b
示例2:
类型为 “stru1” 的结构变量(包含变量 a 、 b 、 c )按如下所述声明,以便获取基于模板
“strulist_temp”的类型为“Instance”的参数列表中的条目;该列表将获得组件 A、B、C 的条目,不
分配符号名称,访问级别设置为“高”,模板定义的每个索引值将增加 2。确保编译指示中定义的模
板在参数管理器中可用:
CoDeSysV2.3版本 5-17
声明编辑器
示例2,模板中结构变量的条目
(b)通过VAR_CONFIG界面中的声明
对于可以实例化的变量,您可以通过 VAR_CONFIG 窗口中的编译指示直接在“实例”类型的参数列表
中创建条目(与变量配置定义无关,这些定义也在此接口中完成)。如果模板尚不存在,则将自动创
建该模板。
确保编译指示中定义的模板已在参数管理器中可用。
语法: {instance list=<name> path=<path> template=<template>
baseindex=<index>basesubindex=<subindex>[ <key>=<value> <key>=<value> ... 其 他 键 ] }
<path>:变量的实例路径,例如“PLC_PRG.fb1inst”,其中 fb1inst 是功能块 fb1 的实例。
VAR_CONFIG
{ 实 例 列 表 =varinst1 路 径 =PLC_PRG.fb1 模 板 =fb1_templ baseindex=16#2 basesubindex=16#0 [
name=fb1var ]}
END_VAR
非持久数据类型的编译指示
通常,以下情况是有效的:即使功能块或结构中只有一个局部变量被声明为持久性变量,在使用实例时,
所有组件都会自动存储在运行时系统上的持久性信息(persist.dat)中。为了节省空间,您可以使用
pragma {nonpersistent}
5-18 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
在功能块的声明中,或者结构。它的影响是,只有那些声明为“持久”的功能块或结构的组件才会被输入到
持久信息中。
例:
如果以下功能块的实例被声明为持久化,则只有变量 local 和 fblevel3 将被写入持久化信息。如果没有 pragma{nonpersistent},所
有功能块变量都将存储在那里。
FUNCTION_BLOCK FB_Level_2
{非持久性}
VAR_INPUT
bvar_in :布尔值;
END_VAR
VAR_OUTPUT
bvar_out :BOOL;
END_VAR
VARivar2 :INT;
END_VAR是持久的
CoDeSysV2.3版本 5-19
声明编辑器
5-20 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
5.3 文本编辑器
5.3.1 使用文本编辑器
用于 CoDeSys 实现部分的文本编辑器(指令列表编辑器和结构化文本编辑器)提供了通常的 Windows
文本编辑器功能。
文本编辑器中的实现由语法着色支持。
在覆盖模式下,状态栏显示黑色OV。您可以通过键 <Ins 在覆盖模式和插入模式之间切换>
最重要的命令位于上下文菜单中(鼠标右键或 <Ctrl>+<F10>)。
文本编辑器以特殊方式使用以下菜单命令:
“插入”“运算符”在文本编辑器中
使用此命令,当前语言中可用的所有运算符都显示在对话框中。
如果选择了其中一个运算符,并且列表以“确定”关闭,则突出显示的运算符将插入到当前光标位置。(此
处的管理方式与在输入助手中一样)。
'Insert''Operand' 在文本编辑器中
使用此命令,将显示对话框中的所有变量。您可以选择是要显示全局变量、局部变量还是系统变量的列
表。
如果选择了其中一个操作数,并且对话框在 “ 确定 ” 中关闭, 则突出显示的操作数将插入到当前光标位
置。(此处的管理方式与在输入助手中一样)。
文本编辑器中的“插入”“功能”
使用此命令,所有功能都将显示在对话框中。您可以选择是否具有显示用户定义函数或标准函数的列表。
如果选择了其中一个函数,并且对话框在“确定”中关闭, 则突出显示的函数将插入到当前光标位置。(
管理将继续进行,就像在输入选择中一样。
CoDeSysV2.3版本 5-21
文本编辑器
如果在对话框中选择了“带参数”选项,则还将插入必要的输入和输出变量。
在文本编辑器中“插入”“功能块”
使用此命令,所有功能块都显示在对话框中。您可以选择是否具有显示用户定义或标准功能块的列表。
如果选择了其中一个功能块,并且对话框关闭为 “ 确定 ” , 则突出显示的功能块将插入到当前光标位置
。(此处的管理方式与在输入助手中一样)。
如果在对话框中选择了“带参数”选项,则还将插入功能块的必要输入变量。但是,您不会被迫分配这些
参数。
在文本编辑器中使用输出参数调用POU
被调用的 POU 的输出参数可以在以文本语言 IL 和 ST 调用时直接分配。
例:
afbinst 的输出参数 out1 被赋值变量 a。
IL: CALafbinst(in1:=1, out1=>a)
ST:afbbindst(in1:=1, out1=>a);
如果通过输入助手(<F2>)在 ST 或 ILPOU 的实现窗口中使用“带参数”选项插入 POU,则它将自动显
示并带有此语法中的所有参数。但是,您不会被迫分配这些参数。
在线模式下的文本编辑器
编辑器中的在线功能是设置断点和单步处理(steps)。因此,与监视一起,用户具有现代Windows标准
语言调试器的调试功能。
在联机模式下,文本编辑器窗口垂直分为两半。在窗口的左侧,您将找到正常的程序文本;在右侧,您将
看到在相应行中更改其值的变量的显示。可以通过用鼠标绘制分隔线来修改窗口的宽度。
监视表达式或位寻址变量时应注意以下几点:对于表达式,始终显示整个表达式的值。示例:如果 a 和
b 均为 TRUE,则 ANDb 以蓝色显示或显示为“:=TRUE”。对于位寻址变量,寻址的位值始终受到监
控(例如,如果 a 的值为 4,则 a.3 以蓝色显示或显示为“:=TRUE”)。
如果将鼠标指针短暂地放在变量上方,则有关变量的类型、地址和注释将显示在工具提示中。
'附加功能''监控选项'
使用此命令,您可以配置监视窗口。在文本编辑器中,窗口在监视期间分为两半。该程序位于左半部分。
在右半部分,监控位于相应程序行中的所有变量。
5-22 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
“监视选项”对话框
文本编辑器中的断点位置
断点位置包括程序中变量值可以更改或程序流分支的所有位置。(例外:函数调用。如有必要,必须在此
处设置函数中的断点。在介于两者之间的位置,断点甚至没有意义,因为自前一个断点位置以来,数据中
没有任何内容能够更改。
这会导致 IL 中出现以下断点位置:
在 POU 开始时
在每个 LD、LDN(或者,如果 LD 位于标签上,则位于标签上)
在每届JMP、JMPC、JMPCN
在每个标签上
在每届 CAL、CALC、CALCN
在每届 RET、RETC、RETCN
在 POU 结束时
结构化文本可容纳以下断点位置:
在每次作业中
在每条RETURN和EXIT指令中
在评估条件的行中(WHILE、IF、REPEAT)
在 POU 结束时
断点位置由行号字段的显示来标记,该字段的颜色在项目选项中设置。
具有可能断点位置的 IL 编辑器(较暗的数字字段)
如何设置断点?
要设置断点,请单击要设置断点的行的行号字段。如果所选字段是断点位置,则行号字段的颜色将从深灰
色变为浅蓝色,并且断点将在 PLC 中被激活。
CoDeSysV2.3版本 5-23
文本编辑器
删除断点
相应地,要删除断点,请单击要删除断点的行的行号字段。
断点时会发生什么?
如果在 PLC 中达到断点,则屏幕将显示带有相应行的断点。PLC 所在的线路的行号字段将显示为红色。
用户程序在 PLC 中停止。
如果程序处于断点,则可以使用“联机”“运行”恢复处理。
此外,使用“联机”、“单步执行”或“单步执行”,可以使程序运行到下一个断点位置。如果您所在的指令
是CAL 命令,或者,如果行中存在函数调用,直到下一个断点位置,则可以使用“单步执行”绕过函数调
用。通过“单步执行”,您将分支到打开的POU
文本编辑器的行号
文本编辑器的行号给出了 POU 实现的每个文本行的行号。
在离线模式下,只需单击特殊行号即可标记整个文本行。
在联机模式下,行号的背景颜色表示每行的断点状态。颜色的标准设置是:
深灰色:此线是断点的可能位置。
浅蓝色:已在此行中设置断点。
红色:程序已达到此点。
在联机模式下,只需单击鼠标即可更改此行的断点状态。
5-24 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
5.3.2 指令列表编辑器
这是在 IL 中编写的 POU 在相应的CoDeSys编辑器下的样子:
POU 的所有编辑器都由声明部分和正文组成。它们由屏幕隔板隔开。
指令列表编辑器是一个文本编辑器,具有Windows 文本编辑器的常用功能。最重要的命令位于上下文菜
单中(鼠标右键或 <Ctrl>+<F10>)。也可以进行多线 POU 呼叫:
例:
CALCTU_inst( CU:=%IX10, PV:=( LDAADD5 ))
联机模式下的IL
使用“在线”“流量控制”命令,在每行左侧的 IL 编辑器中插入一个显示累加器内容的附加字段。
有关联机模式下的 IL 编辑器的详细信息,请参阅“联机模式下的文本编辑器”。
CoDeSysV2.3版本 5-25
图形编辑器
5.3.3 结构化文本编辑器
这是用 ST 编写的 POU 在相应的CoDeSys编辑器下的显示方式:
POU 的所有编辑器都由声明部分和正文组成。它们由屏幕隔板隔开。
5.4 图形编辑器
5.4.1 在图形编辑器中工作
面向图形语言的编辑器,顺序功能图SFC,梯形图LD和功能块图FBD以及自由图形功能块图有许多共同
点。在以下段落中,将总结这些特征;LD、FBD 和 CFC 以及顺序功能图语言 SFC 的具体描述在单独的章
节中介绍。图形编辑器中的实现由语法着色支持。
缩放
SFC、LD、FBD、CFC 语言和可视化中的 POU、动作、过渡等对象可以通过缩放功能放大或缩小尺寸。
实现部分的窗口内容的所有元素都会受到影响;声明部分保持不变。
5-26 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
仅当光标停留在以图形语言创建的对象或可视化对象上时,缩放级别的选择才可用。
即使缩放了对象,也可以进一步选择编辑器中的光标位置,甚至可以使用箭头键到达。文本大小由缩放系
数和设置的字体大小控制。
所有编辑器菜单功能(例如插入框)作为光标位置的函数的执行在所有缩放级别上都可用,同时考虑到这
一点。
在“在线”模式下,每个对象都根据已设置的缩放级别显示;在线功能不受限制地可用。
网络
在 LD 和 FBD 编辑器中,程序排列在网络列表中。每个网络在左侧由序列号指定,其结构由逻辑或算术
表达式、程序、函数或功能块调用以及跳转或返回指令组成。
标签
每个网络都有一个标签,可以选择将其留空。通过单击网络编号旁边的网络第一行来编辑此标签。现在,
您可以输入标签,后跟冒号。
评论、带换行符的网络、“附加功能”、“选项”
每个网络都可以提供多行注释。在“功能块和梯形图选项”对话框中,可以通过执行命令“附加”“选项”打
开,您可以进行有关注释和换行符的设置:
对话框功能块和梯形图选项
在“最大注释大小”字段中,可以输入可用于网络注释的最大行数(此处的默认值为 4。在“最小注释大
小”字段中
您可以输入通常应为保留的行数。例如,如果输入数字 2,则在每个网络的开头,标签行之后将有两行空行。此处的默认值为
0,其优点是允许更多网络适合屏幕区域。如果最小注释大小大于 0,则要输入注释,只需单击注释行,然后输入注释即可。否
则 , 您 首 先 必 须 选 择 要 输 入 评 论 的 网 络 , 然 后 使 用 “ 插 入 ”“评论”插入评论
CoDeSysV2.3版本 5-27
图形编辑器
替代外观:以下选项允许定义网络的替代外观。
每个触点的注释(仅适用于梯形图编辑器):如果激活此选项,您可以为每个触点或线圈分配单独的注
释。在编辑字段“变量注释的行数”中,输入应为注释保留和显示的行数。如果完成此设置,则编辑器中
每个触点和线圈上方将显示一个注释字段,您可以在其中插入文本。如果激活了“每个触点的注释”,则在
梯形图编辑器中,还可以定义行数(可变文本的行数:),这些行数应用于触点或线圈的变量名称。这用
于通过将名称分成几行来完全显示 名称。在以下示例中,为变量 comment 定义了 2 行,为变量 text 定
义了 1 行:
显示变量注释和地址的网络示例:
带
换行符的网络(仅适用于梯形图编辑器):如果激活此选项,一旦网络 度超过给定的窗口大小,并且
某些元素将不可 ,就会在网络中强制换行。
带换行符的网络示例
输入地址后替换为符号:(仅适用于梯形图编辑器):如果激活此选项,您可以在触点或线圈处的方框或
位置输入地址(例如“%QB4”),该地址将立即替换为分配给该地址的变量的名称。如果没有为输入的地
址分配变量,则该地址将保持不变。
将联系人注释设置为符号注释:如果激活此选项,则在触点或线圈的注释字段中将显示该注释,该注释已
在声明用于触点或线圈的变量时定义( 上图,图片为“每个触点的注释”)。然后可以编辑注释。.但
是,为此,还必须激活“每个联系人的评论”选项。请注意,在任何情况下,已经在触点或线圈本地输入的
注释将自动替换为变量注释,即使该变量在其声明中没有注释!
5-28 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
显示符号地址:
(仅适用于梯形图编辑器):如果激活此选项并将分配给触点或线圈的变量分配给地址,
则该地址将显示在变量名称上方( 上文,图片 “每个联系人的注释”)。
在打印输出中显示每个梯级
的变量注释:如果激活此选项,则在每个网络中,对于该网络中使用的每个变
量,将显示一行,显示此变量的名称、地址、数据类型和注释,如变量声明中所定义。这可能对项目的文
档(打印输出)有用。
显示每个变量的信息行的网络示例
应用选项:
确定:按此按钮可在实际 POU 上应用设置并关闭选项对话框。
应用选项:按下此按钮可将设置应用于整个项目。将打开一个对话框,询问您在哪里明确确认要执行此操
作。
“插入”“网络(之后)”或“插入”“网络(之前)”
快捷方式:<Shift>+<T>(网络后)
要 在 FBD 或 LD 编 辑 器 中 插 入 新 网 络 , 请 选 择“插 入”“网 络 ( 之 后 )”或“插 入”“网络(之前)”命令,
具体取决于您是要在当前网络之前还是之后插入 新网络。可以通过单击网络编号来更改当前网络。您将在
数字下方的虚线矩形中认出它。使用<Shift键>和鼠标单击,您可以从整个网络区域中进行选择,从当前
网络区域到单击网络区域。
在线模式下的网络编辑器
在 FBD 和 LD 编辑器中,您只能为网络设置断点。已设置断点的网络的网络编号字段以蓝色显示。然
后,处理在断点所在的网络前面停止。在这种情况下,网络号字段显示为红色。通过单步处理(步骤),
您可以从网络跳转到网络。
所有值在进入和退出网络 POU(程序组织单位)时都会受到监控。
在监视表达式或位寻址变量时应注意以下几点:在表达式中,例如 aANDb ,用作转换条件或功能块输
入,始终显示整个表达式的值(如果 a 和 b 为 TRUE,则 aANDb 显示为蓝色或:=TRUE)。对于位寻
址变量,始终监视寻址的位值(例如,a.3 显示为蓝色或“:=TRUE,如果 a 的值为 4)
流量控制使用“在线”“流量控制”命令运行。使用流量控制,您可以查看通过连接线在网络中传输的当前
值。如果连接线不带有布尔值,则该值将显示在专 插入的字段中。未使用的变量(例如在函数 SEL
中)的监控字段以灰色阴影显示。如果这些行带有布尔值,则如果它们带有TRUE,它们将被阴影化为蓝
色。因此,您可以在 PLC 运行时伴随信息流。
如果将鼠标指针短暂地放在变量上方,则有关变量的类型、地址和注释将显示在工具提示中。
CoDeSysV2.3版本 5-29
图形编辑器
5.4.2 功能块图编辑器
这是在相应的CoDeSys编辑器下在 FBD 中编写的 POU 的样子:
功能块图编辑器是一个图形编辑器。它适用于网络列表,其中每个网络都包含一个结构,该结构分别显示
逻辑或算术表达式、功能块、函数、程序、跳转或返回指令的调用。最重要的命令位于上下文菜单中(鼠
标右键或 <Ctrl>+<F10>)。
FBD 中的光标位置
每个文本都是一个可能的光标位置。所选文本位于蓝色背景上,现在可以更改。
您还可以通过虚线矩形识别当前光标位置。以下是所有可能的光标位置的列表,并附有示例:
1) 每个文本字段(可能的光标位置以黑色框住):
2) 每个输入:
3) 每个运算符、功能或功能块:
5-30 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
4) 输出,如果之后有赋值或跳转:
5) 作业、跳跃或返回指令上方的划线叉:
6)在每个网络右侧最外层对象的后面(“最后一个光标位置”,与用于选择网络的光标位置相同):
7) 作业正前方的带衬线的十字架:
如何在FBD中设置光标
可以通过单击鼠标或借助键盘将光标设置在某个位置。
使用箭头键,您可以随时跳转到所选方向上最近的光标位置。所有光标位置,包括文本字段,都可以通过
这种方式访问。如果选择了最后一个光标位置,则可以使用<向上>或<向下>箭头键来选择前一个或下一
个网络的最后一个光标位置。
空网络只包含三个问号“???”。通过单击这些位置,将选择最后一个光标位置。
符号:快捷键:<Ctrl>+<A>
此命令插入分配。
根据所选位置(参 “FBD 中的光标位置”),插入直接发生在所选输入(光标位置 2)、所选输出(光
标位置 4)之后或网络末端(光标位置 6)之前。
对于插入的赋值,可以在输入的文本“???”旁边进行选择,并且可以将赋值替换为要赋值的变量。为此,
您还可以使用输入助手。有关输入地址而不是变量名称的可能性,请参阅第 5.4.1 章:注释、换行符、“
附加”、“选项”中选项对话框的描述。
要在现有分配中插入其他分配,请使用“插入”“输出”
命令。
符号:快捷键:<Ctrl>+<L>
此命令插入跳转。
根据所选位置(参 “FBD 中的光标位置”),插入直接发生在所选输入(光标位置 2)、所选输出(光
标位置 4)之后或网络末端(光标位置 6)之前。
CoDeSysV2.3版本 5-31
图形编辑器
对于插入的跳转,可以在输入的文本“???”旁边进行选择,并且可以将跳转替换为要分配给它的标签。
在FBD中'插入''返回'
符号:快捷键:<Ctrl>+<R>
此命令插入 RETURN 指令。
根据所选位置(参 “FBD 中的光标位置”),插入直接发生在所选输入的前面(光标位置 2)、所选输
出的正后方(光标位置 4)、所选线交叉的正前方(光标位置 5)或网络末端(光标位置 6)
符号:快捷键:<Ctrl>+<B>
使用此命令,可以插入运算符、功能、功能块和程序。首先,它总是插入一个“AND”运算符。这可以通
过选择和覆盖类型文本(“AND”)转换为所有其他运算符、每个函数、每个功能块和每个程序。您可以
使用输入助手(<F2>)选择所需的POU。如果新选择的模块具有另一个最小数量的输入,则将附加这些
输入。如果新模块的最大输入数较小,则最后的输入将被删除。
在函数和功能块中,将显示输入和输出的正式名称。
在功能块中,框上方存在一个可编辑的实例字段。如果通过更改类型文本调用另一个未知的功能块,则会
显示一个包含两个输入和给定类型的操作员框。如果选择了实例字段,则可以通过<F2>获取带有变量选
择类别的输入助手。
分支的连接方式与更换前的方式尽可能相同。如果旧元素的输入多于新元素,则不可附加的分支将被删
除。输出也是如此。
5-32 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
'插入''输入'
符号:快捷键:<Ctrl>+<U>
此命令插入操作员输入。对于许多运算符,输入的数量可能会有所不同。(例如,ADD 可以有 2 个或更
多输入。
为了通过输入扩展此类运算符,您需要选择要在其前面插入附加输入的输入(光标位置 1);或者,如果
要插入最低输入,则必须选择运算符本身(光标位置 3)(请参阅“FBD 中的光标位置”)。
插入的输入分配文本“???”。必须单击此文本并将其更改为所需的常量或变量。为此,您还可以使用输入
助手。有关输入地址而不是变量名称的可能性,请参阅第 5.4.1 章:注释、换行符、“附加”、“选项”中选
项对话框的描述。
'插入''输出'
象征:
此命令将附加分配插入到现有分配中。此功能用于放置所谓的分配梳;即,将当前位于该行的值分配给多
个变量。
如果选择了作业正前方的线交叉(光标位置 4),则将在该作业的前面插入另一个作业。
插入的输出分配文本“???”。必须单击此文本并将其更改为所需的变量。为此,您还可以使用输入助手。
有关输入地址而不是变量名称的可能性,请参阅第 5.4.1 章:注释、换行符、“附加”、“选项”中选项对话
框的描述。
'额外''否定
符号:快捷键:<Ctrl>+<N>
使用此命令,您可以否定输入、输出、跳转或 RETURN 指令。否定的符号是连接处的小圆圈。
如果选择了输出(光标位置 4),则此输出将被否定。
如果标记了跳转或返回,则此跳转或返回的输入将被否定。
否定可以通过重新否定来取消。
'Extras''设置/重置'
象征:
使用此命令,您可以将输出定义为“设置”或“重置输出”。带有设置输出的网格以[S]显示,带有重置输出
的网格以[R]显示。
CoDeSysV2.3版本 5-33
图形编辑器
在FBD中设置/复位输出
多次执行命令时,输出将在设置、重置和正常输出之间交替。
'Extras''查看'
对于在FBD编辑器中创建的POU,您可以选择将其显示在LD-(梯形逻辑)中还是FBD-编辑器(功能块
图)中。这在离线和在线模式下都是可能的。
打开实例
此命令对应于“Project”“Openinstance”命令。
如果光标位于文本编辑器中的功能块名称上,或者在图形编辑器中选择了功能块框,则可以在上下文菜
单(<F2>)或“附加”菜单中使用它。
在 FBD 中剪切、复制、粘贴和删除
用于“剪切”、“复制”、“粘贴”和“删除”的命令位于“编辑”菜单项下。
如果选择了划线(光标位置 5)(参 “FBD 中的光标位置”),则位于划线下方的分配、跳转或返回将
被剪切、删除或复制。
如果选择了 POU (光标位置 3 ),则所选对象本身将被剪切、删除或复制,以及依赖于输入的所有分
支,但第一个(最高位置)分支除外。
否则,位于光标位置前面的整个分支将被剪切、删除或复制。
复制或剪切后,已删除或复制的部分位于剪贴板上,现在可以根据需要进行粘贴。
为此,您必须首先选择粘贴点。有效的粘贴点包括输入和输出。
如果POU已加载到剪贴板上(提醒一下:在这种情况下,除第一个分支外,所有连接的分支都位于剪贴
板上),则第一个输入将与粘贴点之前的分支连接。
否则,位于粘贴点前面的整个分支将被剪贴板的内容替换。
在每种情况下,粘贴的最后一个元素都连接到位于粘贴点前面的分支。
注意 :通过剪切和粘贴解决以下问题:在网络中间插入一个新的算子。位于操作员右侧的分支现在与第一个输入连
接,但应与第二个输入连接。您现在可以选择第一个输入并执行命令“编辑”“剪切”。在此之后,您可以选择第二个输
入并执行命令“编辑”“粘贴”。这样,分支就依赖于第二个输入。
5-34 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
在线模式下的功能框图
在功能块图中,断点只能设置为网络。如果已将断点设置为网络,则网络编号字段将显示为蓝色。然后,
处理在断点所在的网络前面停止。在这种情况下,网络号字段将变为红色。使用步进(单步),您可以从
网络跳转到网络。
将显示每个变量的当前值。例外:如果功能块的输入是表达式,则仅监视表达式中的第一个变量。
双击变量将打开用于写入变量的对话框。在这里可以更改变量的现值。对于布尔变量,则不显示对话框;
这些变量是切换的。
新值将变为红色,并将保持不变。如果给出了“在线”“写入值”命令,则所有变量都将放置在所选列表
中,并再次以黑色显示。
流量控制使用 “ 在线 ”“ 流量控制 ” 命令启动使用流量控制,您可以查看通过连接线在网络中传输的当前
值。如果连接线不带有布尔值,则该值将显示在专 插入的字段中。如果这些行带有布尔值,那么如果它
们带有 TRUE,它们将带有蓝色阴影。通过这种方式,您可以在 PLC 运行时伴随信息流。
如果将鼠标指针短暂地放在变量上方,则有关变量的类型、地址和注释将显示在工具提示中。
5.4.3 梯形图编辑器
以下是在 LD 中写入的 POU 在CoDeSys编辑器中的显示方式:
POU 的所有编辑器都由声明部分和正文组成。它们由屏幕隔板隔开。
LD 编辑器是一个图形编辑器。最重要的命令位于上下文菜单中(鼠标右键或 <Ctrl>+<F10>)。
CoDeSysV2.3版本 5-35
图形编辑器
LD 编辑器中的光标位置
以下位置可以是光标位置,其中功能块和程序访问可以作为联系人进行处理。带有 EN 输入的 POU 和与
其连接的其他 POU 的处理方式与功能块图中的处理方式相同。有关编辑此网络部件的信息,请参 第
5.4.2 章 “FBD 编辑器”。
1. 每个文本字段(可能的光标位置以黑色框住)
2. 每个触点或功能块
3. 每个线圈
4. 触点和线圈之间的连接线。
梯形图以特殊方式使用以下菜单命令:
在 LD-Editor 中移动元素或名称
通过“拖放”,可以将元件(触点、线圈、功能块)或元件名称(变量名称、地址、注释)移动到 LDPOU 中的
不同位置。
为此,请选择所需的元件(触点、线圈、功能块)并将其拖动-按住鼠标键-远离当前位置。因此,在POU
的所有网络中,元素可能移动到的所有可能位置都将由灰色填充的矩形表示。
将元素移动到这些位置之一,然后松开鼠标键:元素将插入到新位置。
但是,如果将元素移动到另一个元素的名称(变量名称),则名称字段将显示为绿色阴影。如果您随后松
开鼠标键,则以前的名称将被“拖动”的名称替换。如果另外显示地址和注释(选项),则复制也将应用于
这些地址和注释。
5-36 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
象征:
此命令在梯形图编辑器中插入网络。如果已经存在网络,则新网络将插入到当前聚焦网络之前。
LD 中的 'Insert''Network (after)'
象征:
此命令在梯形图编辑器中插入网络。如果已经存在网络,则新网络将插入到当前聚焦网络之后。
LD 中的“插入”“联系人”
符号:快捷键:<Ctrl>+<K>
在 LD 编辑器中使用此命令可在网络中标记位置的前面插入触点。
如果标记的位置是线圈或触点与线圈之间的连接线,则新触点将串行连接到以前的触点连接。
联系人预设了文本“???”。您可以单击此文本并将其更改为所需的变量或所需的常量。为此,您还可以使
用输入助手。
如果在“功能块和梯形图选项”中正确配置了地址而不是变量名称,请考虑输入地址而不是变量名称的可能
性(参 第 5.4.1 章:注释、换行符、“附加”“选项”)。
还要考虑“带换行符的网络”选项,您也可以在梯形图选项中激活该选项。
LD 中的 'Insert''Contact (negated)'
符 号 : 快 捷 键 : <Ctrl> + <G>
此命令插入否定的触点。与命令“插入”“联系人”和“附加”“否定”相同,它们组合也可用于插入否定的触
点。
LD 中的“插入”“并联触点”
符号:快捷键:<Ctrl>+<R>
在 LD 编辑器中使用此命令插入与网络中标记位置平行的触点。
如果标记的位置是线圈或触点与线圈之间的连接,则新触点将与整个先前的触点连接并联。
联系人预设了文本“???”。您可以单击此文本并将其更改为所需的变量或所需的常量。为此,您还可以使
用输入助手。
有关输入地址、在变量名称中使用换行符以及每个联系人使用注释的可能性,请参阅“功能块和梯形图选
项”的描述(参 第 5.4.1 章:注释、换行符、“附加”“选项”)。
CoDeSysV2.3版本 5-37
图形编辑器
LD 中的 'Insert''ParallelContact (negated)'
符 号 : 快 捷 键 : <Ctrl> + <D>
此命令插入一个否定的并联触点。与命令“插入”“并联触点”和“附加”“否定”也是如此,它们组合也可用
于插入否定的平行触点。
LD 中的“插入”“线圈”
符号:快捷键:<Ctrl>+<L>
您可以在 LD 编辑器中使用此命令插入与前一个线圈平行的线圈。
如果标记的位置是触点和线圈之间的连接,则新线圈将作为最后一个插入。如果标记的位置是线圈,则新
线圈将直接插入其上方。
线圈的默认设置为文本“???”。您可以单击此文本并将其更改为所需的变量。为此,您还可以使用输入助
手。
有关输入地址、在变量名称中使用换行符以及使用每个触点(线圈、功能块)的注释的可能性,请参阅“
功能块和梯形图选项”的描述(参 第 5.4.1 章:注释、换行符、“附加”“选项”)。
LD 中的“插入”“设置”线圈”
符 号 : 快 捷 键 : <Ctrl> + <I>
此命令插入一个固定线圈。与命令“插入”“线圈”和“附加”“设置/重置”相同,它们组合起来也可用于获得
设置线圈。
LD 中的“插入”“复位”线圈
象征:
此命令插入复位线圈。与命令“插入”“线圈”和“附加”“设置/复位”相同,它们组合在一起也可用于获得复
位线圈。
LD 中的“插入”“功能块”
符号:快捷键:<Ctrl>+<B>
使用此命令可将运算符、功能块、函数或程序作为POU插入。为此,必须标记触点和线圈或线圈之间的
连接。新的 POU 最初的名称为 AND。如果您愿意,可以将此名称更改为其他名称。为此,您还可以使
用输入助手。提供标准和自定义 POU。
有关输入地址、在变量名称中使用换行符以及使用每个触点(线圈、功能块)的注释的可能性,请参阅“
功能块和梯形图选项”的描述(参 第 5.4.1 章:注释、换行符、“附加”“选项”)。
LD中带有EN输入的POU
如果要将 LD 网络用作调用其他 POU 的 PLC,则必须将 POU 与 EN 输入合并。这种POU与线圈并联。
除了这样的 POU 之外,您还可以进一步开发网络,如功能块图所示。您可以在 ENPOU 的菜单项“插
入”、“在块处插入”下找到插入命令。
5-38 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
因此,如果要在LD编辑器中对网络进行编程,就像在FBD中一样,则只需先在新网络中插入EN算子即
可。随后,从此 POU 中,您可以继续从您的网络进行构建,就像在 FBD 编辑器中一样。这样形成的网
络将像 FBD 中的相应网络一样运行。
象征:
使用此命令将带有 EN 输入的功能块、运算符、函数或程序插入 LD 网络。
LD中的“插入”“上升沿检测”
象征:
此命令插入一个R_TRIG功能块,用于检测输入信号的上升沿(FALSE->TRUE)。与命令“插入”、“功
能块”相同,可用于插入任何可用的功能块。
LD 中的“插入”、“下降沿检测”
象征:
此命令插入一个F_TRIG功能块,用于检测输入信号的上升沿(TRUE->FALSE)。与命令“插入”、“功
能块”相同,可用于插入任何可用的功能块。
LD 中的 'Insert''Timer (TON)'
象征:
此命令插入TON类型的定时器功能块。这用于获得开启延迟(输入信号的延迟传递)。对于插入,与命
令“插入”“功能块”相同,也可用于插入 TON 模块。
CoDeSysV2.3版本 5-39
图形编辑器
LD 中 的 'Insert' 'Jump'
使用此命令,您可以在选定的LD编辑器中并行插入平行跳转,位于前一个线圈的末尾。如果传入行传递
值“On”,则跳转到指定的标签。
标记的位置必须是触点和线圈或线圈之间的连接。
跳转与文本“???”一起出现。您可以单击此文本并更改所需的标签。
LD 中 的 'Insert' 'Return'
在 LD 编辑器中,您可以使用此命令在前一个线圈的末尾并行插入 Return 指令。如果传入线路提供值
“On”,则此网络中 POU 的处理将中断。
标记的位置必须是触点与线圈或线圈之间的连接。
LD 中的“Extras”“粘贴后”
在LD编辑器中使用此命令将剪贴板的内容粘贴为标记位置下方的串行触点。仅当剪贴板的内容和标记的
位置是由联系人组成的网络时,才可以使用此命令。
LD 中的“Extras”“粘贴在下面”
在LD编辑器中使用此命令将剪贴板的内容作为平行触点插入到标记位置下方。仅当剪贴板的内容和标记
的位置是由联系人组成的网络时,才可以使用此命令。
LD 中的“Extras”“粘贴在上面”
在LD编辑器中使用此命令可将剪贴板的内容作为平行触点插入到标记位置上方。仅当剪贴板的内容和标
记的位置是由联系人组成的网络时,才可以使用此命令。
LD 中 的 'Extras' 'Negate'
符号:快捷键:<Ctrl>+<N>
使用此命令可否定当前光标位置的触点、线圈、跳转或返回指令或 ENPOU 的输入或输出。
在 线 圈 的 括 号 之 间 或 触 点 的 直 线 之 间 , 将 出 现 斜 杠 ( (/) 或|/|)。如果ENPOU有跳转、返回或输入或
输出,则连接处会出现一个小圆圈,就像在 FBD 编辑器中一样。
线圈现在将输入连接的否定值写入相应的布尔变量中。此时,如果相应的布尔变量携带值 FALSE,则否
定触点将输入状态切换到输出状态。
如果标记了跳转或返回,则此跳转或返回的输入将被否定。
否定可以通过重新否定来取消。
LD 中的“附加”“设置/重置”
象征:
如果在线圈上执行此命令,则将收到一个 SetCoil 。这样的线圈永远不会覆盖相应布尔变量中的值
TRUE。这意味着,一旦将此变量的值设置为 TRUE,它将始终保持为 TRUE。SetCoil在线圈符号中标
有“S”。
如果您再次执行此命令,那么您将获得一个复位线圈。这样的线圈永远不会覆盖相应布尔变量中的值
FALSE。这意味着,一旦将此变量的值设置为 FALSE,它将始终保持为 FALSE。复位线圈的线圈符号
5-40 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
中带有“R”。
如果重复执行此命令,线圈将在设置、复位和正常线圈之间交替。
在线模式下的梯形图
在联机模式下,梯形图中处于“开”状态的触点和线圈显示为蓝色。同样,所有带有“On”的线也都涂成蓝
色。在功能块的输入和输出中,指示相应变量的值。
断点只能在网络上设置;通过使用步进,您可以在网络之间跳转。
如果将鼠标指针短暂地放在变量上方,则有关变量的类型、地址和注释将显示在工具提示中。
5.4.4 顺序功能图编辑器
以下是在 SFC 中写入的 POU 在CoDeSys编辑器中的显示方式:
POU 的所有编辑器都由声明部分和正文组成。它们由屏幕隔板隔开。
顺序功能图编辑器是一个图形编辑器。最重要的命令位于上下文菜单中(鼠标右键或<Ctrl><F10>)。工
具提示在脱机和联机模式下以及缩放状态下显示步骤、过渡、跳转、跳转标签、限定符或关联操作的全名
或表达式。
在证监会中标记块
标记块是一组包含在虚线矩形中的 SFC 元素。
您可以通过将鼠标指向某个元素并按鼠标左键来选择该元素(步骤、过渡或跳转),也可以使用箭头键。
要标记一组包含多个元素的元素,请为已标记的块按 <Shift>,然后选择该组左下角或右下角的元素。生
成的选择是包含这两个元素的最小内聚元素组。
CoDeSysV2.3版本 5-41
图形编辑器
请注意,一个步骤只能与上一个或下一个过渡一起删除!
'插入''StepTransition (before)'
符号:快捷键:<Ctrl>+<T>
此命令在 SFC 编辑器中插入一个步骤,然后在标记块前面插入一个过渡。
您可以选择自动指定的步骤名称“Step_<x>”并将其替换为另一个字符串,也可以使用过渡名称。
'Insert''StepTransition (after)'
符号:快捷键:<Ctrl>+<E>
此命令在 SFC 编辑器中插入一个步骤,然后在标记块中的第一个过渡之后插入过渡。关于步骤名称和过
渡名称,请参阅上面的“插入”、“步骤过渡(之前)”。
删除步骤和过渡
步骤只能与上一个或下一个转换一起删除。为此,在步进和过渡周围放置一个选择框,然后选择命令“编
辑”、“删除”或按 <Del> 键。
'插入''备用分支(右)'
符号:快捷键:<Ctrl>+<A>
此命令在 SFC 编辑器中插入一个备用分支,作为标记块的右分支。为此,标记的块必须以过渡开始和结
束。然后,新分支由一个转换组成。
'插入''备用分支(左)'
象征:
此命令在 SFC 编辑器中插入一个备用分支,作为标记块的左分支。为此,标记的块必须以过渡开始和结
束。然后,新分支由一个转换组成。
'插入''并行分支(右)'
符号:快捷键:<Ctrl>+<L>
此命令在 SFC 编辑器中插入一个并行分支,作为标记块的右分支。为此,标记的块必须以步骤开始和结
束。然后,新分支由一个步骤组成。若要允许跳转到已创建的并行分支,必须为这些分支提供跳转标签。
5-42 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
'插入''并行分支(左)'
象征:
'此命令在SFC 编辑器中插入一个并行分支,作为标记块的左分支。为此,标记的块必须以步骤开始和结
束。然后,新分支由一个步骤组成。要允许跳转到已创建的并行分支,必须为这些分支提供跳转标签(参
'Extras''Addlabeltoparallelbranch')。
'插入''跳转'
'此命令在 SFC 编辑器中插入一个跳转,该跳转位于标记块所属的分支末尾。为此,分支必须是备用分
支。
然后,可以选择插入的跳转中插入的文本字符串“Step”,并将其替换为要跳转到的平行分支的步骤名称
或跳转标签。
关于步骤名称,请参阅上面的“插入”、“步骤转换(之前)”。
'插入''过渡-跳转'
象征:
此命令在 SFC 编辑器中插入一个过渡,然后在所选分支的末尾插入一个跳转。为此,分支必须是并行分
支。
然后,可以选择插入的跳转中插入的文本字符串“Step”,并将其替换为要跳转到的平行分支的步骤名称
或跳转标签。
关于步骤名称和过渡名称,请参阅上面的“插入”、“步骤过渡(之前)”。
'insert''添加entry-action'
使用此命令,您可以向步骤添加输入操作。入口操作仅在步骤变为活动状态后执行一次。entry-action 可
以用您选择的语言实现。
A 有进入操作的步骤由左下角的“E”表示。
'插入''添加退出操作'
使用此命令,您可以向步骤添加 exit-action。在停用该步骤之前,exit-action 仅执行一次。exit-action 可
以用您选择的语言实现。
A 有退出操作的步骤由右下角的“X”表示。
'Extras''粘贴并行分支(右)'
此命令将剪贴板的内容粘贴为标记块的右平行分支。为此,标记的块必须以步骤开始和结束。同样,剪贴
板的内容必须是以步骤开头和结尾的 SFC 块。
'Extras''将标签添加到并行分支'
为了给新插入的并行分支提供跳转标签,必须标记并行分支之前发生的转换,并且必须执行命令“将标签
添加到并行分支”。此时,并行分支将获得一个由“Parallel”和附加序列号组成的标准名称,可以根据标识
符名称的规则对其进行编辑。在以下示例中,“Parallel”被替换为“Par_1_2”,并且跳转到过渡“End”被引
导到此跳转标签。
CoDeSysV2.3版本 5-43
图形编辑器
删除标签
可以通过删除标签名称来删除跳转标签。
'Extras''粘贴后'
此命令在标记块的第一步或第一次转换后将 SFC 块粘贴到剪贴板上。(正常复制会将其粘贴到标记块的
前面。如果生成的 SFC 结构正确,则现在将根据语言规范执行此操作。
请注意,在编辑器窗口中写入的过渡条件将优先于可能直接写入过渡标记的条件。示例:如果此处为
i>100,则转换条件将为 FALSE,尽管在标记处输入了 TRUE!
'额外内容''清晰的动作/过渡'
使用此命令,您可以删除标记块的第一步或第一个过渡的过渡主体的操作。
如果在某个步骤中仅实现操作、进入操作或退出操作,则命令将删除相同的操作。否则,将出现一个对话
框,您可以选择要删除的一个或多个操作。
5-44 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
'附加''步骤属性'
使用此命令,您可以打开一个对话框,您可以在其中编辑标记步骤的属性。
用于编辑步骤属性的对话框
您可以利用步骤属性对话框中的三个不同条目。在“最短时间”下,输入处理此步骤应花费的最短时间
度。在“最 时间”下,输入处理此步骤应花费的最 时间 度。请注意,这些条目属于 TIME 类型,因
此您使用 TIME 常量(即 T#3s)或 TIME 类型的变量。
在“注释”下,可以向步骤插入注释。在“附加”“选项”下打开的“顺序功能图表选项”对话框中,您可以定
义在 间作业控制编辑器中是否显示步骤的注释、时间设置或不显示任何内容。在右侧的步骤旁边,注释
或时间设置或两者都不会显示。
除了步骤名称之外,那些由于选项设置而未显示的属性可以显示在工具提示中,当光标放在步骤框的右上
角或右下角时,工具提示会出现。
'Extras''时间概览'
使用此命令,您可以打开一个窗口,您可以在其中编辑 SFC 步骤的时间设置。
在时间边界概述中,将显示 间作业控制POU的所有步骤。如果输入了步骤的时间边界,则时间边界将
显示在步骤的右侧(首先是下限,然后是上限)。您还可以编辑时间边界。为此,请单击概述中的所需步
骤。然后,该步骤的名称将显示在窗口下方。转到“最短时间”或“最大时间”字段,然后在此处输入所需
的时间边界。如果使用“确定”关闭窗口,
然后,将存储所有更改。
CoDeSysV2.3版本 5-45
图形编辑器
SFCPOU 的时间边界概述
'附加''选项'
使用此命令,您可以打开一个对话框,您可以在其中为 SFCPOU 设置不同的选项。
在“台阶高度”下,您可以在 SFC 编辑器中输入 SFC 台阶可以有多高。 4 是此处的标准设置。在“步
宽度”下,可以输入步 应为多少列宽。 6 是此处的标准设置。
您还可以预设“在步骤中显示”,即哪些属性,定义为“额外”“步骤属性”应显示在步骤旁边。选择“注释
”、“时间限制”或“无”:
• 如果设置了“无”,则定义的注释和时间限制仍可以显示在工具提示中,当光标放在步骤框的右下角
时,工具提示会出现。
• 如果设置了“注释”,则定义的注释和时间限制可以显示在工具提示中,当光标放在步骤框的右上角时
会出现。
• 如果设置了“时间限制”,则定义的注释和时间限制仍可显示在工具提示中,当光标位于步骤框的右下
角时,工具提示会出现。
顺序功能图选项对话框
5-46 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
'Extras''关联操作'
使用此命令,操作和布尔变量可以与 IEC 步骤相关联。
在IEC步骤的右侧和旁边,附加了一个额外的分隔框,用于关联操作。它在左侧字段中预设为限定符“N”
和名称“Action”。两个预设都可以更改。为此,您可以使用输入助手。
'Extras''使用IEC-Steps'
象征:
如果激活此命令(由菜单项前面的复选标记和工具栏中的打印符号表示),则在插入步骤转换和并行分支
时将插入 IEC 步骤,而不是简化步骤。
在线模式下的顺序功能图
当顺序功能图编辑器处于在线模式时,当前活动的步骤将显示为蓝色。如果您在“附加”“选项”下设置了
它,则时间管理将在步骤旁边描述。在您设置的下限和上限下,将出现第三个时间指示器,您可以从中读
取该步骤已经处于活动状态的时间。
具有活动步骤(Shift1)和断点(Step10)的顺序功能图
CoDeSysV2.3版本 5-47
图形编辑器
如果多个步骤在并行分支中处于活动状态,则接下来将处理其操作的活动步骤将显示为红色。
如果将鼠标光标停留在声明编辑器中的变量上一小段时间,则变量的类型、地址和注释将显示在工具提示
中
请注意:如果您重命名一个步骤并在此步骤处于活动状态时执行在线更改,则程序将以未定义状态停止!
序列中元素的处理顺序:
1. 首先,重置此序列中使用的 IEC 操作中的所有操作控制块标志(但是,不会重置在操作中调用的 IEC 操作的标
志)。
2. 所有步骤都按照它们在顺序中假定的顺序(从上到下和从左到右)进行测试,以确定是否提供了执行输出操作的
要求,如果是这种情况,则执行。
3. 所有步骤都按照它们在序列中假设的顺序进行测试,以确定是否提供了输入操作的要求,如果是这种情况,则执
行此要求。
4. 对于所有步骤,以下操作均按照它们在顺序中假定的顺序完成:
- 如果适用,将运行时间复制到相应的步骤变量中。
- 如果适用,将测试任何超时,并根据需要提供 SFC 错误标志。
- 对于非IEC步骤,现在执行相应的操作。
5. 序列中使用的IEC操作按字鯦顺序执行。这是通过操作列表分两次完成的。在第一轮中,将执行在当前周期中停
用的所有 IEC 操作。在第二遍中,将执行当前周期中处于活动状态的所有 IEC 操作。
6. 评估转换:如果当前周期中的步骤处于活动状态,并且下一个转换返回 TRUE(如果适用,则已过最短活动时
间),则激活下一步。
关于行动的实施,必须注意以下几点:
一个动作可以在一个周期中执行多次,因为它与多个序列相关联。(例如,SFC 可以有两个 IEC 操作 A
和 B,它们都在 SFC 中实现,并且都称为 IEC 操作 C;然后在 IEC 操作 A 和 B 中可以在同一周期中处于
活动状态,此外,在这两个操作中,IEC 操作 C 可以处于活动状态;然后 C 将被调用两次)。
如果在SFC的不同级别同时使用相同的IEC操作,则由于上述处理顺序,这可能会导致不良影响。因此,
在这种情况下会发出错误消息。在处理使用旧版本的CoDeSys 创建的项目时,可能会出现这种情况。
5-48 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
注意:在过渡中的监视表达式(例如A和B)中,仅显示过渡的“总值”。
5.4.5 连续功能图编辑器(CFC)
它看起来像一个使用连续功能图编辑器(CFC)生成的块:
连续函数图编辑器不使用捕捉网格,因此可以将元素放置在任何位置。顺序处理列表的元素包括框、输
入、输出、跳转、标签、返回和注释。这些元素的输入和输出可以通过用鼠标拖动连接来连接。连接线将
自动绘制。在考虑现有连接的情况下绘制尽可能短的连接线。当元素移动时,连接线会自动调整。如果出
现仅因空间不足而无法绘制连接线的情况,则在输入和相关输出之间将显示一条红线。一旦有空位,这条
线将立即转换为连接线。
最重要的命令可以在上下文菜单中找到
CoDeSysV2.3版本 5-49
图形编辑器
2. 元素框、输入、输出、跳转、标签、返回和注释的文本字段以及连接标记的文本字段
3. 元素框的输入、输入、输出、跳转和返回
4. 元素框和输入的输出:
“插入”“框”在 CFC 中
符号:快捷键:<Ctrl>+<B>
此命令可用于粘贴运算符、函数、功能块和程序首先,它总是插入一个“AND”运算符。这可以通过选择
和覆盖文本来转换为所有其他运算符、每个函数、每个功能块和每个程序。输入辅助用于从支持的块列表
中选择所需的块。如果新模块具有另一个最小数量的输入,则将附加这些输入。如果新模块的最大输入数
较小,则最后的输入将被删除。
“插入”“输入”在 CFC 中
符 号 : 快 捷 键 : <Ctrl> + <E>
此命令用于插入输入。可以选择提供的文本“???”,并将其替换为变量或常量。输入辅助也可以在这里使
用。
“插入”“输出”在 CFC 中
符号:快捷键:<Ctrl>+<A>
此命令用于插入输出。提供的文本“???”可以选择并替换为变量。输入辅助也可以在这里使用。与输出的
输入关联的值将分配给此变量。
在 CFC 中“插入”“跳转”
符号:快捷键:<Ctrl>+<J>
5-50 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
此命令用于插入跳转。可以选择提供的文本“???”,并将其替换为程序应跳转到的跳转标签。
使用命令“插入'标签'”插入跳转标签。
“插入”“标签”在 CFC 中
符号:快捷键:<Ctrl>+<L>
此命令用于插入标签。可以选择提供的文本“???”并将其替换为跳转标签。在联机模式下,会自动插入用
于标记 POU 结束的 RETURN 标签。
使用命令“插入”跳转“插入跳转。
符 号 : 快 捷 键 : <Ctrl> + <R>
此命令用于插入 RETURN 命令。请注意,在联机模式下,名称为 RETURN 的跳转标签会自动插入到编
辑器的第一列和最后一个元素之后;在步进中,它会自动跳转到执行离开 POU 之前。
在 CFC 中“插入”“注释”
符 号 : 快 捷 键 : <Ctrl> + <K>
此命令用于插入注释。
使用 <Ctrl>+<Enter> 在注释中获取一个新行。
在 CFC 中“插入”“框的输入”
快 捷 键 : <Ctrl> + <U>
此命令用于在框中插入输入。对于许多运算符来说,输入的数量是可变的(例如,ADD可以有两个或多
个输入)。
要将此类运算符的输入数增加 1,必须选择框本身
象征:
一旦打开宏进行编辑,这些命令就可用。它们用于插入输入或输出引脚作为宏的输入和输出。它们与
POU 的正常输入和输出的不同之处在于它们的显示方式以及它们没有位置索引。
CFC 中的“额外”“否定”
符 号 : 快 捷 键 : <Ctrl> + <N>
此命令用于否定输入、输出、跳转或 RETURN 命令。否定的符号是连接上的一个小十字。
元素块的输入、输出、跳转或返回在选择时被否定。
选择元素块或输入时,该元素块或输入的输出将被否定(光标位置 4)。
可以通过再次否定来删除否定。
CFC 中的“附加”“设置/重置”
符 号 : 快 捷 键 : <Ctrl> + <T>
此命令只能用于元素输出的选定输入。
Set 的符号是 S,Reset 的符号是 R。
CoDeSysV2.3版本 5-51
图形编辑器
多次激活此命令会导致输出在设置、重置和正常条件之间切换。
“附加”、“EN/ENO”和CFC
符 号 : 快 捷 键 : <Ctrl> + <I>
此命令用于为选定块(光标位置 3)提供额外的布尔使能输入 EN(启用输入)和布尔输出 ENO(启用输
出)。
'附加''属性...”在 CFC 中
函数和功能块的常量输入参数(VAR_INPUTCONSTANT)不会直接显示在连续函数图编辑器中。当选
择相关块的主干,然后选择命令“附加”、“属性”或简单地双击主干时,可以显示这些值并更改其值。此
5-52 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
时将打开“编辑参数”对话框:
“属性”对话框
可以更改常量输入参数(VAR_INPUTCONSTANT)的值。这里需要在“值”列中标记参数值。再次单击
鼠标或按空格键可以对其进行编辑。通过按 <Enter> 键或按 <Escape> 来确认对值的更改,拒绝更改。“
确定”按钮 存储所做的所有更改。
选择 CFC 中的元素
单击元素的后备箱以将其选中。
要标记更多元素,请按<Shift>键并依次单击所需的元素,或者将鼠标左键拖动鼠标在要标记的元素上。
命令 “Extras”、“Selectall”一次标记所有元素。
CFC中的移动元件
当按下<Shift>键时,可以使用箭头键移动一个或多个选定的元素。另一种可能性是使用按下的鼠标左键
移动元素。这些元素通过释放鼠标左键来放置,只要它们不会覆盖其他元素或超过编辑器的预计大小。在
这种情况下,标记的元素会跳回其初始位置,并发出警告音。
复制 CFC 中的元素
可以使用命令“编辑”“复制”复制一个或多个选定的元素,并使用命令“ 编辑”“粘贴”插入一个或多个选
定的元素。
创建连接
一个元素的输入可以精确地连接到另一个元素的输出。一个元素的输出可以连接到许多其他元素的输入。
CoDeSysV2.3版本 5-53
图形编辑器
使用此方法可以将模块的输出和输入连接在一起(反馈路径)。要在两个引脚之间建立连接,请用鼠标左
键单击一个引脚,按住按钮,从而将连接拖动到所需的引脚,然后松开按钮。如果在拖动连接期间延伸到
编辑器的工作区域之外,则会自动滚动。对于简单数据类型,在连接期间执行类型测试。如果两个引脚的
类型不兼容,则光标将更改为“禁止访问”。对于复杂的数据类型,不进行任何测试。
更改连接
元素 E1 的输出和元素 E2 的输入之间的连接可以很容易地更改为元素 E1 的输出和元素 E3 的输入之间
的连接。鼠标点击E2的输入,按住鼠标左键,将鼠标光标移动到E3的输入端,然后松开。
删除连接
有许多方法可以消除元素 E1 的输出和元素 E2 的输入之间的连接:
'Extras''连接标记'
连接也可以由连接器(连接标记)而不是连接线表示。在这里,输出和关联的输入添加了一个连接器,该
连接器被赋予了唯一的名称。
如果两个元素之间已经存在连接,现在应该由连接器表示,则标记连接线的输出,并选择菜单点“附加”“
连接标记”。下图显示了选择此菜单点之前和之后的连接。
程序以 M 开头,但可以更改唯一名称作为标准名称连接器名称存储为输出参数,但可以在输入和输出时
进行编辑。
5-54 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
请务必知道,连接器名称与连接输出的属性相关联,并与其一起存储。
1. 在输出端编辑连接器:
如果替换了连接器中的文本,则输入端的所有关联连接器都将采用新的连接器名称。但是,一个人不能选
择已经属于另一个人的名字
连接标记,因为会违反连接器名称的唯一性。
“即时”插入输入/输出
如果只选择了一个元素的一个输入或输出引脚,则可以通过在键盘上输入字符串来直接插入相应的输入或
输出元素,并用字符串填充其编辑器字段。
执行顺序
block、output、jump、return 和 label 元素各有一个数字,指示它们的执行顺序。按照此顺序,在运行时
计算各个元素。
粘贴元素时,会根据拓扑序列(从左到右,从上到下)自动给出数字。如果序列已更改,并且所有较高的
数字都增加 1,则新元素将接收其拓扑后继元素的编号。
元素的编号在移动时保持不变。
顺序会影响结果,在某些情况下必须更改。
如果显示序列,则相应的顺序执行编号将显示在元素的右上角。
'额外''订单''显示订单'
此命令用于打开和关闭执行顺序的显示。默认设置是显示它(通过菜单点前面的勾号( )识别)。
执行编号的相关顺序出现在元素块、输出、跳转、返回和标签的右上角。
'Extras''Order''按拓扑顺序排列'
当执行从左到右和从上到下发生时,元素按拓扑顺序排序,也就是说,拓扑排列的元素的数量从左到右和
从上到下递增。连接无关紧要,只有元素的位置很重要。
当执行命令 “Extras”、“Order”、“Ordertopologically”时,所有选定的元素都会按拓扑顺序排列。
通过此过程,所选内容中的所有元素都将从顺序处理列表中取出。然后,从右下角到左上角分别将元素输
入到剩余的顺序处理列表中。每个标记的元素都在其拓扑后继者之前输入到顺序处理列表中,即当编辑器
中的所有元素都根据拓扑序列系统进行排序时,它入到拓扑序列中将在它之后执行的元素之前。这将通过
一个示例来澄清:
CoDeSysV2.3版本 5-55
图形编辑器
当引入新生成的块时,默认情况下,它将被放置在顺序处理列表中其拓扑后继者的前面。
'额外服务''订单''先订购'
使用此命令,所有选定的元素将被移动到顺序处理列表的前面,从而保持所选元素组中的顺序。未选定元
素组中的顺序也保持不变。
'额外服务''订单''最后订购'
使用此命令,所有选定的元素将被移动到顺序处理列表的末尾,从而保持所选元素组中的顺序。未选定元
素组中的顺序也保持不变。
'Extras''Order''根据数据流对所有内容进行排序''
此命令影响所有元素。执行顺序由元素的数据流决定,而不是由它们的位置决定。
下图显示了按地形排序的元素。
5-56 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
根据数据流排序前的顺序
选择命令后,存在以下排列方式:
根据数据流排序后的顺序
选择此命令时,首先要发生的是元素按地形顺序排列。然后创建一个新的顺序处理列表。根据输入的已知
值,计算机计算接下来可以处理哪些尚未编号的元素。例如,在上面的“网络”中,块 AND 可以立即处
理,因为其输入端(1 和 2)的值是已知的。块 SUB 只能被处理,因为必须首先知道 ADD 的结果,等
等。
最后插入反馈路径。
数据流排序的优点是,在数据流排序系统中,连接到块输出的输出盒紧跟在它之后,而拓扑排序并不总是
如此。在某些情况下,拓扑排序可以提供另一种结果,而不是按数据流排序,这一点可以从上面的例子中
识别出来。
CoDeSysV2.3版本 5-57
图形编辑器
'Extras''创建宏''
象征:
使用此命令,可以将同时选择的多个POU组装成一个块,该块可以命名为宏。宏只能通过复制/粘贴来复
制,因此每个副本都成为一个单独的宏,其名称可以独立选择。因此,宏不是引用。通过创建宏而切断的
所有连接都会在宏上生成输入引脚或输出引脚。与输入的连接生成一个引脚内。默认名称以 In<n> 的形
式显示在引脚旁边。对于输出的连接,将显示Out<n>。在创建宏之前具有连接标记的受影响连接,将连
接标记保留在宏的 PIN 上。
起初,宏的默认名称为“MACRO”。这可以在宏使用的“名称”字段中进行更改。如果编辑了宏,则宏的名
称将显示在编辑器窗口的标题栏中,并附加到 POU 名称。
示例:选择
宏观:
在编辑器中:
“附加功能”“跳入宏”
象征:
通过此命令或双击宏的主体,将打开宏,以便在关联POU的编辑器窗口中进行编辑。宏的名称显示在标
题栏中追加到 POU 名称之后。
5-58 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
宏框中引脚的顺序遵循宏元素的执行顺序。在高阶索引之前是低阶索引,在较低阶之前是高阶引脚。
宏中的处理顺序是闭合的,换句话说,宏在主POU中宏的位置作为块进行处理。因此,用于操作执行顺
序的命令仅在宏中运行。
'Extras''扩展宏'
使用此命令,将重新展开选定的宏,并将其中包含的元素插入到POU中宏位置的位置。与宏引脚的连接
再次显示为与元素输入或输出的连接。如果由于空间不足而无法在宏框的位置进行宏的扩展,则宏将向右
和向下移动,直到有足够的可用空间。
'Extras''后退一个宏级别', 'Extras''所有宏级别后退'
符号:
一旦打开宏进行编辑,这些命令也可以在工具栏中使用。如果宏相互嵌套,则可以切换到下一个更高或最
高的显示级别。
CFC 中的反馈路径
反馈路径只能直接显示在连续功能图编辑器中,而不能显示在通常的功能块图编辑器中。这里应该注意的
是,块的输出总是带有一个内部中间变量。对于运算符来说,中间变量的数据类型来自输入的最大数据类
型。
常量的数据类型是从最小的数据类型中获取的,即常量“1”采用数据类型SINT。如果现在执行带有反馈和
常量“1”的加法,则第一个输入给出数据类型 SINT,第二个输入由于反馈而未定义。因此,中间变量也
属于 SINT 类型。然后,中间变量的值才会分配给输出变量。
这两个添加项之间存在差异:
变量 y 可以用不等于零的值进行初始化,但对于左加法的中间变量来说,情况并非如此。
在线模式下的CFC
监测:
输入和输出的值显示在输入或输出框中。不监视常量。对于非布尔变量,将展开这些框以容纳显示的值。
对于布尔连接,如果值为 TRUE,则变量名称和连接将显示为蓝色,否则它们将保持黑色。
CoDeSysV2.3版本 5-59
图形编辑器
带有连接标记的非布尔连接在连接标记中显示其值。对于布尔连接,如果线的值为TRUE,则线和标记名
称将显示为蓝色,否则为黑色。
流控制:
打开流量控制后,将使用在项目选项中选择的颜色标记已遍历的连接。
断点:
可以在具有处理序列顺序索引的所有元素上设置断点。程序的处理将在执行相应的元素之前停止,该元素
用于POU和输出,在分配输入之前,对于跳转标签,在执行具有下一个索引的元素之前。元素的处理序
列索引用作“断点”对话框中的断点位置。
选定元素的断点设置可通过 F9 键或通过“在线”或“附加”菜单或编辑器上下文菜单中的“断点开/关”菜单
项完成。如果在元素上设置了断点,则下次执行“断点开/关”命令时,该断点将被擦除并反转。此外,可
以通过双击元素上的断点来切换该断点。
断点以在项目选项中输入的颜色显示。
RETURN标签:
在在线模式下,在编辑器的第一列和最后一个元素之后自动生成一个名为“RETURN”的跳转标签。此标
签标记 POU 的结束,并在执行离开 POU 之前单步执行时跳转到此标签。宏中不会插入 RETURN 标
记。
步进:
使用“单步执行”时,具有下一个高阶索引的元素将始终被跳转到。如果当前元素是宏或 POU,则当“单步
执行”生效时,其实现将分支。如果从那里执行“单步执行”,则其顺序索引跟随宏的元素将被跳转到。
5-60 CoDeSysV2.3版本
5 -CoDeSys 中的编辑器
缩放到POU
快捷键:<Alt>+<Enter>
使用此命令,选定的 POU 将加载到其编辑器中。如果光标位于文本编辑器中的 POU 名称上,或者在图
形编辑器中选择了 POU 框,则该命令可在上下文菜单(<F2>)或“附加”菜单中使用。
CoDeSysV2.3版本 5-61
图形编辑器
5-62 CoDeSysV2.3版本
6 - 资源
6 资源
6.1 超过view 资源
在对象管理器的“资源”注册卡中,有一些对象用于配置和组织项目以及跟踪变量的值:
可以在整个项目中使用的全局变量;项目的全局变量以及库。
工作区作为项目选项的图像。
根据目标设置,以下资源也可能可用:
用于管理变量的参数管理器,网络中的其他参与者也可以访问这些变量。只有在相应的目标设置中定义
时,此功能才可用。
PLC浏览器,用于监控来自PLC的信息。
用于变量值的图形记录的采样跟踪。
用于链接外部工具的工具,然后可以在 CoDeSys 中启动。只有在相应的目标设置中定义时,此功能才
可用。
SoftMotion 功能(需要许可证): CNC 程序列表(CNC 编辑器)和CAM(CAM-EDITOR)(参
有关 SoftMotion 的单独文档)。
此外,可能会创建并加载一个Docuframe文件,该文件为项目变量(例如,使用某种语言)提供一组注
释,这些注释将在使用“Project”“Document”记录项目时打印出来。
CoDeSys 中的“资源”选项卡
CoDeSysV2.3版本 6-1
全局变量、变量配置、文档框架
6.2 全局变量、变量配置、文档框架
“全局变量”中的对象
在“对象管理器”中,您将在“全局变量”文件夹的“资源”寄存器卡中找到三个对象(括号中为对象的默认
名称)。
全局变量列表(全局变量)
变量配置(变量配置)
在整个项目中,这些对象中定义的所有变量都会被识别。
如果全局变量文件夹未打开(在文件夹前面加号),则可以通过双击<Enter>在行中打开它。
选择相应的对象。“对象打开”命令打开一个窗口,其中包含先前定义的全局变量。此编辑器的工作方式
与声明编辑器相同。
几个变量列表
全局变量、全局网络变量(VAR_GLOBAL)、全局网络变量(VAR_GLOBAL、特定于目标)和变量配
置(VAR_CONFIG)必须在单独的对象中定义。
如果您已经声明了大量的全局变量,并且想要更好地构建全局变量列表,则可以创建更多的变量列表。
“
在对象管理器中,选择
全 局 变 量”文 件 夹 或 具 有 全 局 变 量 的 现 有 对 象 之 一 。 然 后 执 行“Project”“ObjectAdd”命令。为对话
框中显示的对象指定相应的名称。使用此名称,将创建一个带有关键字 VAR_GLOBAL 的附加对象。如
果您更喜欢变量配置的对象,请将相应的关键字更改为VAR_CONFIG。
6.2.1 全局变量
什么是全局变量
在整个项目中已知的“正常”变量、常量或剩余变量可以声明为全局变量,也可以声明为网络变量,这些变
量也用于与其他网络用户进行数据交换。
网络变量
注意:目标系统必须支持网络变量的使用,并且必须在目标设置(网络功能类别)中激活。
通过自动数据交换(与通过参数管理器进行的非自动数据交换相比),可以在兼容CoDeSys的控制器网
络中的多个控制器系统上更新网络变量的值。这不需要特定于控制器的功能,但网络订阅者必须对其项目
中的网络变量使用相同的声明列表和匹配的传输配置。为了实现这一点,建议不要在每个控制器应用程序
中手动输入声明,而是在创建列表时从单独的文件加载声明。(请参阅'创建全局变量列表')。
6-2 CoDeSysV2.3版本
6 - 资源
创建全局变量列表
要创建全局变量列表,请在对象管理器中打开注册器“资源”,然后选择条目“全局变量”或选择已存在的
列表。然后选择命令“项目”、“对象”、“添加”以打开对话框:全局变量列表。
此对话框也可以通过命令“Project”、“Object”、“Properties”打开,如果在对象管理器中标记了现有的全
局变量列表,则该命令可用。它显示了此列表的配置。
用于创建新的全局变量列表的对话框
全局变量列表的名称:插入列表名称。
文件链接:
文件名:如果您有导出文件(*.exp)或包含所需变量的 DCF 文件,则可以设置指向此文件的链接。为
此,请在文件名字段中插入文件的路径 ,然后按“浏览”按钮以获取标准对话框“选择文本文件”。DCF 文
件在读入时会转换为 ICE 语法。
如果您希望在每次编译项目之前从外部文件中读取变量列表,请激活选项“编译前导入”。 如果您希望在
每次编译项目之前将变量列表写入外部文件,请激活选项“编译前导出”。
如果关闭“全局变量列表”对话框,则单击“确定”,则创建新对象。全局变量列表可以在对象管理器中通
过符号来识别。使用命令“Project”、“Object”、“Properties”,您可以重新打开对象管理器中标记的条目
的“全局变量列表”配置对话框。
CoDeSysV2.3版本 6-3
全局变量、变量配置、文档框架
网络变量的配置:
如果在目标设置中激活了“支持网络变量”选项,则<添加网络>按钮可用。按下此按钮,对话框将扩展,
如图所示。如果未激活该选项,则该按钮不可用。
连接 <n>(<网络类型>):在对话框的下半部分,您可以为最多四个网络连接创建配置集,每个连接都
位于单独的选项卡上。配置集定义网络中特定变量列表的数据交换参数。为了使网络中的交换按预期工
作,必须兼容地配置相同的变量列表以匹配其他网络订阅者。
UDP:
使用标准如果按下此按钮,将定义端口 1202 用于与其他网络参与者的数据交换。广播/多播地址将
设置为“255.255.255.255“,这意味着数据交换将与网络中的所有参与者完成。
端口:在此处输入所需的端口号以覆盖标准设置(请参阅上文“使用标准”)。确保网络中的其他节
点定义相同的端口!如果在项目中定义了多个 UDP 连接,则将根据您在此处输入的端口号自动修
改所有配置集中的端口号。
对话框“UDP 的设置”
能:
控制器索引:CAN控制器的索引,应通过该索引传输变量。
在配置变量的传输行为时,可以激活或停用以下选项:
包变量:将变量组合成数据包(报文),其大小取决于网络。如果该选项被停用,则会为每个变量设置一
个数据包。
列表标识符(COB-ID): 第一个数据包的标识号,变量将在其中发送(默认值 =1)。其他数据包将按
升序编号。注意:COB-ID必须是唯一的
在项目中使用的所有网络变量列表中。在多个列表配置中使用相同的 ID 将导致编译器版本 >=2.3.7.0 的
编译错误。
6-4 CoDeSysV2.3版本
6 - 资源
这取决于目标系统,是否可以将列表的网络变量定义为“可读”和“可写”,或者只能两者之一。要设置此
属性,请激活相应的选项“读取”和“写入”:
读取:列表中的变量将被读取;如果该选项被停用,则通过网络发送的其他变量将被忽略。此外,还可以
激活以下选项:
启动时请求:如果本地节点是“读取”节点(选项“读取”已激活),那么一旦重新启动,将从所有写
入节点请求实际的变量值,并由这些节点发送,而与通常触发通信的任何其他传输条件(时间、事
件)无关。前提条件:在写入节点的配置中,必须激活“应答启动请求”选项!( 下文)。
写入:将写入变量,可以另外设置以下选项:
包括校验和:
校验和将添加到发送的每个数据包中。接收方将检查校验和,以确保发送方和接收方
的变量定义相同。校验和不匹配的数据包将不被接受,如果配置了此配置(“使用确认传输”, 下
文),则将被否定确认。
使用确认传输:(在CAN的情况下没有功能)每条消息都将由接收方确认。一旦发送者在一个周期
内没有得到至少一个确认,就会产生一条错误消息,如果是 UDP 网络,该消息将被写入
NetVarUdp_LIB_V23.lib 提供的诊断结构中。
应答启动请求:如果本地节点是“写入”节点(激活了“写入”选项),则它将在启动时发送的读取节
点的每个请求(启动时的选项请求, 上文)都将得到应答。这意味着,即使此时没有其他定义的
传输触发器(时间或事件)强制传输,也会传输实际变量值。
更改时传输:仅当变量的值更改时才写入变量;但是,最小值之后的条目可以设置传输之间的最小
时间间隔。
事件传输:一旦在变量处插入的变量变为 TRUE,列表的变量就会被写入 。
全局网络变量列表在对象管理器中由符号标记。
注意:如果在一个或多个任务中使用网络全局变量,则以下内容适用于传输的时间部分:调用每个任务时,都会对其
进行测试以确定哪些参数适用于变量值的传输(“全局变量列表”对话框中的配置)。变量值是否会被传输,取决于指
定的时间间隔是否已过去。在每次传输时,此变量的时间间隔计数器将重置为零。
发送始终从受影响控制器的运行时系统进行。因此,无需为数据交换提供特定于控制的功能。
编辑全局变量和网络变量列表
全局变量编辑器的工作方式与声明编辑器类似。但请注意,您不能在此编辑器中编辑列表,该列表是链接
的外部变量列表的图像!外部变量列表只能在外部编辑,并且将在每次打开和编译项目时读取它们。
语法:
VAR_GLOBAL
(* 变量声明 *)
END_VAR
只有在目标系统允许的情况下,才能使用网络变量。它们也在此语法中定义。
CoDeSysV2.3版本 6-5
全局变量、变量配置、文档框架
编辑剩余全局变量列表
如果运行时系统支持它们,则可以处理剩余变量。剩磁全局变量有两种类型(另请参 第 5.2.1 章剩磁变
量!):
在运行时系统不受控制地关闭(关闭/打开)或 CoDeSys 中的“在线”“重置”后,保留变量保持不变。持
久变量仅在下载后保持不变。
持久变量不会自动保留变量!
剩余变量还被分配了关键字RETAIN和 /或 PERSISTENT。
有关详细信息,请参 第 5.2.1 章“剩余变量”。
网络变量也在此语法中定义。
语法:
VAR_GLOBAL保留
(* 变量声明 *)
END_VARVAR_GLOBAL持
久性
(* 变量声明 *)
END_VAR
对于 retain 和 persistent 属性的组合,使用了两个关键字:
VAR_GLOBALRETAINPERSISTENT或 VAR_GLOBAL PERSISTENT RETAIN
网络变量(特定于目标)也使用此语法进行定义。
全局常量
全局常量还获取关键字CONSTANT。
语法:
VAR_GLOBAL常数
(* 变量声明 *)
END_VAR
6.2.2 变量配置
在功能块中,如果将变量定义放在关键字 VAR 和 END_VAR之间,则可以为未完全定义的输入和输出指
定地址 。未完全定义的地址用星号标识。
例:
FUNCTION_BLOCK locio
VAR值
位点位于 %I*: BOOL :=TRUE;LOCO
6-6 CoDeSysV2.3版本
6 - 资源
在 %Q*:布尔值;
END_VAR
这里定义了两个局部 I/O 变量,一个局部输入(%I*)和一个局部输出(%Q*)。
如果要在参考资料的对象管理器中为变量配置配置本地I/O
注册卡,对象Variable_Configuration将普遍可用。然后可以重命名对象,并为变量配置创建其他对象。
变量配置编辑器的工作方式与声明编辑器类似。
本地 I/O 配置的变量必须位于关键字VAR_CONFIG和
END_VAR。
此类变量的名称由一个完整的实例路径组成,通过该路径,各个POU和实例名称之间用句点分隔开。声
明必须包含一个地址,其类(输入/输出)对应于功能块中未完全指定的地址(%I*、%Q*)的类。此外,
数据类型必须与功能块中的声明一致。
由于实例不存在而导致实例路径无效的配置变量也表示为错误。另一方面,如果实例变量不存在配置,也
会报告错误。为了接收所有必要配置变量的列表,可以使用“插入”菜单中的“所有实例路径”菜单项。
变量配置示例
假设程序中给出了功能块的以下定义:
程序PLC_PRG
VARHugo:位置;奥托:locio;
END_VAR
然后,更正后的变量配置将如下所示:
VAR_CONFIG
PLC_PRG 。 Hugo.loci AT %IX1.0 : 布 尔 值 ;PLC_PRG 。 Hugo.loco AT %QX0.0 : 布 尔 值 ;PLC_PRG 。 Otto.loci AT
%IX1.0:布尔值;PLC_PRG。Otto.locoAT%QX0.3 :布尔值;
END_VAR
'Insert''所有实例路径'
使用此命令,将生成一个 VAR_CONFIG- END_VAR块,其中包含项目中可用的所有实例路径。手头已
有的声明不需要重新插入,以包含已经存在的地址。如果项目已编译,则可以在变量配置窗口中找到此菜
单项(“项目”、“全部重建”)。
6.2.3 文档框架
如果一个项目要接收多个文档,可能带有德语和英语注释,或者如果您想记录使用相同变量名称的几个类
似项目,那么您可以通过使用“Extras”“MakeDocuframeFile”命令创建文档框来节省大量工作。
创建的文件可以加载到所需的文本编辑器中,并且可以进行编辑。文件以DOCUFILE行开头。然后,按
照为每个变量分配三行的排列方式列出项目变量:显示新变量何时出现的VAR行;接下来,显示变量名称
的行;最后,空行。现在,您可以通过使用变量的注释来替换此行。您可以简单地删除任何无法记录的变
量。如果需要,可以为项目创建多个文档框架。
CoDeSysV2.3版本 6-7
告警配置
'Extras''链接文档文件'
使用此命令,您可以选择文档框架。
将打开用于打开文件的对话框。选择所需的文档框架,然后按OK。现在,如果您记录整个项目,或打印
项目的一部分,则在程序文本中,将文档中生成的注释插入到所有变量中。此评论仅出现在打印输出中!
要创建文档框架,请使用“附加”“制作文档框架文件”命令。
6.3 告警配置
6.3.1 概述
集成在CoDeSys中的报警系统允许检测关键过程状态,记录它们并借助可视化元素为用户可视化它们。
报警处理可以在 CoDeSys 中完成,也可以在 PLC 中完成。有关 PLC 中的报警处理,请参阅目标设置类
别“可视化”。
如果目标系统支持,则“资源”选项卡中提供了“警报配置”对话框。
在这里,您可以定义警报类和警报组。警报类用于键入警报,这意味着它为警报分配某些参数。警报组用
于一个或多个警报(分配特定类别和其他参数)的具体配置,以便在项目中使用。因此,类对于构建可用
警报很有用。不同的警报组由用户通过在配置树中的“系统”标题下方插入适当的条目来定义。
对于 警报的可视化,CoDeSys 可视化中提供了“警报表”元素。使用此表,用户可以监视和确认警报。
6-8 CoDeSysV2.3版本
6 - 资源
如果历史记录(即警报事件的记录)应写入日志文件,则必须定义此类文件,并且必须为每个警报组定义
保存行为。
当您在“资源”选项卡中打开“警报配置”时,“警报配置”对话框
打开一个双部分窗口,该窗口的操作模式类似于 PLC 配置或任务配置。在左侧显示配置树,在右侧将打
开相应的配置对话框。
警报配置示例
通过鼠标单击当前可用配置树“警报配置”条目处的加号打开。如果您要创建新配置,此树将仅显示条目“
警报类”和“系统”。
6.3.2 警报的一般信息,术语
在 CoDeSys 中使用警报系统遵循以下有关警报的通用描述和定义:
告警:一般情况下,告警被视为一种特殊情况(表达式值)。
优先级:警报的优先级(也称为“严重性”)描述警报条件的重要性(严重性)。最高优先级为“0”,最低
有效优先级值为“255”。
报警状态:为报警控制配置的表达式/变量可以具有以下状态:NORM(无报警)、INTO(报警刚刚到
来)、ACK(报警已来并已被用户确认)、OUTOF(报警状态已终止,报警“已消失”,但尚未确认!
子状态:报警条件可以有限制(Lo、Hi)和“极端”限制(LoLo、HiHi)。示例:表达式的值上升,首先
将超过 HI 限制,从而导致 HI 警报的到来。如果该值继续升序,并且在用户确认警报之前也超过了 HIHI
限制,则 HI 警报将自动得到确认,并且只有 HIHI 警报保留在警报列表(用于警报管理的内部列表)
中。在本例中,HI- 状态被命名为子状态。
警报确认:警报
的主要目的是通知用户警报情况。在执行此操作时,通常需要确保用户已注意到此信息(
请参阅警报类配置中分配给警报的可能操作)。用户必须确认警报才能将警报从警报列表中删除。
报警事件:报警事件不得与报警条件混淆。虽然报警条件可以在较 的时间内有效,但报警事件仅描述瞬
时发生的变化,例如从正常状态到报警状态的变化。在CoDeSys告警配置中,对于三种类型的事件和相
CoDeSysV2.3版本 6-9
告警配置
应的告警状态,使用相同的名称(INTO、ACK、OUTOF)。
在 CoDeSys 中,支持以下功能:
停用单个警报和警报组的警报生成
通过定义警报组和优先级来选择应显示的警报
将所有报警事件保存在报警表中
CoDeSys 可视化中的可视化元素“警报表”
6.3.3 报警类
警报类用于某些警报条件的一般描述,例如如何处理确认(用户确认警报)、在检测到特定警报状态后应
立即自动运行哪些操作,以及哪些颜色和位图将用于警报表的可视化。警报类在警报配置中全局定义,然
后在配置警报组时作为基本配置提供。
警报类别的配置:
在警报配置树中选择条目“警报类别”。配置对话框“警报类”打开:
配置对话框“警报类”
确认。
6-10 CoDeSysV2.3版本
6 - 资源
提供以下致谢:
NO_ACK:用户无需确认报警
ACK_INTO:必须由用户确认“来”报警条件(状态“INTO”,报警发生)。
ACK_OUTOF:用户必须确认“消失的警报”(状态“OUTOF”,警报终止)。
ACK_ALL:来来往往的报警条件必须由用户确认。
此外,您还可以输入注释。
每个警报类别的条目将添加到列表的末尾。
使用“删除”按钮 从列表中删除当前选定的条目。
为类<类名>分配的操作:
上部窗口中定义的每个警报类都可以分配一个操作列表,这些操作应在警报事件发生后立即执行。
在“可能的行动”列表中,选择一个并按下“>”按钮,将其进入“已分配的操作”字段。此字段最终将包含
分配给警报类的操作选择。通过“>>”按钮,您可以一次添加所有操作。通过“<”或“<<”,您可以从完成的
现有选择中删除一个或所有操作。如果在“已分配的操作”列表中标记了某个操作,则通过“...”可以打开相
应的对话框来定义所需的电子邮件设置、打印机设置、过程变量或可执行程序以及消息文本(如果适用
)。
支持以下操作类型(可能的操作)(有关消息文本的定义,请参阅下文):
行动 描述 要在相应对话框中完成的设置:
救: 警报事件将保存在内部,以便 设置在“警报保存”对话框的“警报组”定义
e.g.in 日志文件中发出。请注 中完成
意:在这种情况下,必须在警报
组的配置中定义日志文件!
请注意:Target-Visualization 不支持此功能!
CoDeSysV2.3版本 6-11
告警配置
字段中定义的消息文本;消息
( 下文)
执行: 一旦发生警报事件,将立即启动 可执行文件: 要执行的文件的名称(例如
可执行文件。 notepad.exe,您可以使用“...”按钮获取用于选择
文件的标准对话框;参数:应附加到 exe 文件调用
的相应参数
消息文本的定义:
对于操作类型“消息”、“打印”、“电子邮件”或“变量”,您可以定义在发生警报事件时应输出的消息文
本。
“消息”、“电子邮件”或“变量”中文本定义的换行符可以通过 <Ctrl>+<Enter> 插入。
定义警报消息时,可以使用以下占位符:
消息 将使用在警报组配置中为特定警报定义的消息文本。
日期 达到警报状态(INTO)的日期。
时间 报警输入时间。
表达 引起警报的表达式(在警报组中定义)。
优先权 警报的优先级(为警报组定义。
价值 表达式的当前值( 上文)。
类型 报警类型(在报警组中定义)
类 报警类(在报警组中定义)
目标值 警报类型 DEV+ 和 DEV- 的目标值(在警报组中定义)
死区 报警容差(在报警组中定义)
全部默认值 将输出有关警报的任何信息,例如日志文件(历史记录)中的行条目。
定义告警消息示例:
有关消息框的定义,请在消息窗口中输入以下内容:
此外,在警报组中定义警报时,在“消息”列中输入以下内容:
“温度临界!”最终告警消息的输出如下:
6-12 CoDeSysV2.3版本
6 - 资源
操作的警报事件:
对于您定义的每个操作,应在哪些警报事件中启动该操作。
激活所需的事件:
INTO 发生报警。状态 =INTO。
ACK 用户确认已完成。状态 =ACK。
OUTOF 警报状态终止。状态 =OUTOF。
类<类名称的颜色/位图>
每个告警类都可以获得自己的颜色和位图,这些颜色和位图将用于区分可视化元素告警表中的告警。为可
能的事件 INTO、ACK 和 OUT 选择“前景色”和“背景色”( 上文)。只要您按住颜色符号单击鼠标,用
于选择颜色的标准对话框就会打开。要选择位图,只需在灰色矩形上单击鼠标即可打开用于选择文件的标
准对话框。
6.3.4 告警组
警报组用于组织可用的警报。每个警报肯定分配给一个正确的警报组,并由该组管理。一个组的所有警报
都可以被分配一个通用的停用变量和有关警报保存的通用参数。请注意,即使是单个警报也必须在警报组
中配置。
可以通过文件夹元素定义警报组的分层结构。在配置树中选择告警组时,将自动显示告警组对话框 。
在描述字段中,输入警报组的名称。
作为停用变量,可以定义布尔项目变量。在此变量的上升沿,该组的所有警报的创建将被停用,在下降
沿,它将被重新激活。
通过按钮添加警报可以将警报添加到组中。将在表格窗口中插入一个新行,并在其中设置以下参数:
CoDeSysV2.3版本 6-13
告警配置
“配置”对话框“报警组”
类型:可以使用以下列出的告警类型。对于每种类型,请考虑适当的注释或在表格之外的区域中要完成的
定义!
DIG=0数字警报,一旦表达式变为 FALSE,就会激活。
DIG=1数字报警,一旦表达式变为 TRUE,就会激活。
LOLO模拟报警,一旦表达式的值低于
为警报类型 LOLO 定义。您可以定义容差(死区)。只要表达式值在死区内,就不会激活任何警
报,即使 LOLO 值已低于限制。
LO对应于LOLO。
HI模拟报警,一旦表达式超过 为报警类型 HIHI 定义的值,就会激活。您可以定义容差(死区)。
只要表达式值在死区内,即使 HI 值超过限制,也不会激活警报。
HIHI对应于 HI。
DEV-偏离目标值;一旦表达式的值低于为警报类型DEV-定义的值加上百分比偏差,警报就会激活。
百分比偏差 = 目标值*(偏差百分比)/100。
DEV+偏离目标值);一旦表达式的值超过为警报类型DEV+定义的值加上百分比偏差,警报就会激
活。百分比偏差 = 目标值*(偏差百分比)/100。
类别:选择所需的警报类别。选择列表将提供在上次保存项目之前在警报类配置中定义的所有类。
消息:在此处定义消息框的文本,该文本将在发生警报时出现。此框必须由用户使用 OK 确认,但此 OK
不会自动确认警报!要确认(确认)警报,您必须访问警报表。这可以通过可视化元素报警表或表中报警
条目的日期来实现。可以从日志文件中读取此日期,该文件可以选择创建。
停用:在这里可以输入一个项目变量,在上升沿将停用任何警报的创建。但是,请注意,此设置将被“停
用变量”字段中的条目覆盖!( 上文)。
6-14 CoDeSysV2.3版本
6 - 资源
6.3.5 报警保存
对于每个警报组,如果在警报类配置对话框中为该类分配了“保存”操作,则可以定义一个文件,其中存储
了警报事件。
在配置树中选择告警组,然后打开“告警保存”对话框选项卡:
配置对话框“警报保存”
以下定义是可能的:
文件路径:在文件名中定义的文件的目录路径;通过按钮“...”您将获得用于选择目录的标准对话框。
文件名:应保存警报事件的文件的名称(例如“alarmlog”)。将自动创建一个文件,该文件获得此处定义
的名称以及附加的数字,扩展名为“.alm”。该数字表示日志文件的版本。第一个文件得到一个“0”;根据定
义的文件更改事件创建的每个文件将编号为 1、2 等(例如:“alarmlog0.alm”、“alarmlog1.alm”)。
文件更改事件:
在此处定义将导致创建新文件以保存警报的事件。可能的条目:当超过记录数中定义的文
件中的记录数时,从不、一小时后、一天后、一周后、 一个月后,在字段Triggervariable中定义的变量
的上升沿。
触发变量resp.记录数:请参阅上文,文件更改事件。
删除后的旧文件..小时数:自创建之日起的天数,在此之后,除实际日志文件外,所有警报日志文件都应
删除。
日志文件(History)包含以下条目:
(请参阅列类型和示例条目,了解两个警报)
日期/时间in 日期 时间 事件 表达 报警类型 限制 宽容 当前值 类 优先权 消息
DWORD字数
1046963332 6.3.03 16:08:52 到 PLC_PRG.b 瞧 -30 5 -31 Alarm_high 0 温度!
日志文件中的示例:
1046963332,6.3.0316:08:52,INTO,PLC_PRG.ivar5,HIHI,,,,9.00,a_class2,0,
1046963333,3/6/034:08:53PM,INTO,PLC_PRG.ivar4,ROC,2,,,6.00,a_class2,2,
1046963333,6.3.0316:08:53,INTO,PLC_PRG.ivar3,DEV-,,,,-6.00,a_class2,5,
1046963334,6.3.0316:08:54,INTO,PLC_PRG.ivar2,LOLO,-35,,3, -47.00,警告,10,警
告:低温!
1046963334,6.3.0316:08:54,INTO,PLC_PRG.ivar1,HI,20,,5,47.00,a_class1,2,温度到
高!承认!
CoDeSysV2.3版本 6-15
库管理器
6.3.6“附加”菜单:设置
警报配置设置对话框在警报配置中的“附加”“设置”命令中打开:
类别日期/时间:
在这里,您可以设置日志文件中警报表示的日期和时间格式。根据以下语法定义格式。破折号和冒号应以
倒逗号设置:
日期:dd'-'MM'-'yyyy->例如“12.Jan-1993”
时间:hh':'mm':'ss(12 小时制)->例如“01:10:34”或 HH':'mm':'ss(24 小时制)->例如“13:
10:34”
语言:
此对话框的用法与用于执行可视化对象的语言设置的用法相对应(请参阅 CoDeSys 可视化用户手册:可
视化中的语言切换)。
在此处选择一个语言文件(*.vis 或 *.tlt),当 CoDeSys 中的语言发生更改时,该文件应用于警报配置文
本。为此,请确保语言文件(即包含警报配置的文本字符串)的翻译。另请参 :第4.3章将项目翻译成
另一种语言。
在线:
在在线模式下停用告警评估:
如果设置了此在线设置,则在联机模式下将不会进行告警处理。这意味着不
会进行与当前警报配置相对应的警报评估,也不会显示任何警报。在某些环境中,为了节省计算时间,可
能需要这样做。
6.4 库管理器
库管理器显示与当前项目连接的所有库。库的 POU 、数据类型和全局变量的使用方式与用户定义的
POU、数据类型和全局变量的使用方式相同。
库管理器
库管理器使用“窗口”“库管理器”命令打开。有关所包含库的信息与项目一起存储,可以在“有关外部库
的信息”对话框中查看。要打开此对话框,请在库管理器中选择相应的库名称,然后执行命令“Extras”、
6-16 CoDeSysV2.3版本
6 - 资源
“Properties”。
使用库管理器
库管理器的窗口被屏幕分隔线分为三个或四个区域。附加到项目的库列在左上角区域。
在下面的区域中,根据选择的寄存器卡,在上部区域中列出了所选库的POU、数据类型、可视化或 全局
变量。
通过双击该行或按 <Enter> 打开和关闭文件夹。关闭的文件夹前面有一个加号,打开的文件夹前面有一
个减号。
如果通过单击鼠标或使用箭头键选择来选择 POU,则 POU 的声明将出现在库管理器的右上角区域;右下
角是带有输入和输出的黑匣子形式的图形显示。
使用数据类型和全局变量时,声明将显示在库管理器的右侧区域中。
标准库
带有“standard.lib”的库始终可用。它包含 IEC61131-3 作为 IEC 编程系统的标准 POU 所需的所有功能和
功能块。标准函数和运算符的区别在于,运算符被编程系统隐式识别,而标准 POU 必须绑定到项目(
standard.lib)。
用户定义的库
如果要在其实体中编译项目并且没有错误,则可以使用“文件”菜单中的“另存为”命令将其保存在库中。
项目本身将保持不变。将生成一个附加文件,其默认扩展名为“.lib”。之后,可以像标准库一样使用和访
问该库。
如果要将许可信息添加到库中,请按按钮编辑许可证信息...并在“编辑许可信息”对话框中插入适当的设
置。请参阅“文件”、“另存为...”中的相应说明在 CoDeSys 中的许可证管理中。
'插入''附加库'
使用此命令,可以将其他库附加到项目中。
该命令将打开用于打开文件的对话框。如果当前设置的目录不包含所需的库,则可以在字段库目录中选择
另一个目录,该目录将提供所有目录,这些目录在“项目”“选项”“目录”“库”(文件类型“*.lib”)中定
义。选择所需的库-可以进行多项选择-然后单击“确定”进行确认。对话框将关闭,库将插入到库管理器
中。现在,您可以在项目中使用库的对象,例如用户定义的对象。库路径
CoDeSysV2.3版本 6-17
日志
示例:从目录“D:\codesys\libraries\standard”插入库 standard.lib。
如果在项目选项中定义了此目录,则库管理器中的条目将为:“standard.lib<文件的日期和时间>”。
如果在项目选项中只定义了一个目录“D:\codesys\libraries”,那么库管理器中的条目将是:
“standard\standard.lib<文件的日期和时间>”。
如果在项目选项中根本没有定义匹配的目录,则将输入完整路径:“D:
\codesys\libraries\standard\standard.lib<文件的日期和时间>”。
重新打开项目时,将根据库管理器中的条目搜索库。因此,例如,如果只输入库文件名,则将在项目选项
中定义的库目录中搜索库。
如果在打开项目时未找到库,系统将询问您是否要更改项目选项中定义的库目录。如果说“否”,将打开一
个对话框,提供有关未找到的库的信息,并且库管理器中的相应条目将显示为红色。在这种情况下,您可
以选择一个红色条目,然后从上下文菜单中选择命令“搜索”。因此,您将看到打开文件的对话框,您可
以在其中浏览丢失的库并立即重新加载它。
发牌
一旦包含需要许可证的库,但未找到有效的许可证,您可能会收到一条消息,指出该库仅在演示模式下可
用,或者该库未针对当前设置的目标获得许可。此时,您可以忽略此消息,或启动有关许可证的适当操
作。无效的许可证将在编译过程中产生错误(“Project”、“Build”)。在这种情况下,双击错误消息res.
<F4> 将打开“许可证信息”对话框,您可以在其中启动向导指导的相应操作。
删除库
使用“编辑”、“删除”命令,您可以从项目和库管理器中删除库。
'附加''属性'
此命令将打开“有关内部(或外部)库的信息”对话框。对于内部库,您将在那里找到所有数据,这些数据
在CoDeSys中创建库时已插入到项目信息(如果适用,包括许可证信息)中。对于外部库,将显示库名
称和库路径。
6.5 日志
日志按时间顺序存储联机会话期间发生的操作。为此,设置了一个二进制日志文件(*.log)。之后,用户
可以将相应项目日志的摘录存储在外部日志中。
日志窗口可以在离线或在线模式下打开,因此可以作为在线的直接监视器。
“窗口”“日志”
要打开,请选择菜单项“窗口”“日志”或选择“资源”选项卡中的“日志”条目。
在日志窗口中,当前显示的日志的文件名显示在Log:之后。如果这是当前项目的日志,则会显示“(内
部)”字样。
已注册的条目将显示在日志窗口中。最新条目始终显示在底部。
仅显示属于菜单“项目”、“选项”、“日志”的“过滤器”字段中已激活的类别的操作。
有关当前所选条目的可用信息显示在日志窗口下方:类别:特定日志条目所属的类别。以下四个类
6-18 CoDeSysV2.3版本
6 - 资源
别是可能的:
用户操作: 用户已执行联机操作(通常从“联机”菜单)。
内部操作: 已在在线层中执行了内部操作(例如,删除缓冲区或
初始化调试)。
状态变更: 运行时系统的状态已更改(例如,从 Running 更改为 Break,如果
已到达断点)。
异常:发生异常,例如通信错误。
日志窗口
说明:操作的类型。用户操作的名称与其对应的菜单命令的名称相同;所有其他操作均为英文,并且与相
应的 OnlineXXX()函数同名。
信息:此字段包含操作期间可能发生的错误的说明。如果未发生错误,则该字段为空。
系统时间:操作开始的系统时间,精确到秒。
相对时间:从联机会话开始到最接近毫秒的时间。
持续时间:操作的持续时间(以毫秒为单位)。
菜单日志
当日志窗口具有输入焦点时,菜单选项“日志”将显示在菜单栏中,而不是“附加”和“选项”项。
菜单包括以下项目:
负荷。。。可以使用标准文件打开对话框加载和显示外部日志文件 *.log。
该命令不会覆盖项目中存在的日志。如果日志窗口关闭后再次打开,或者启动了新的联机会话,则加载的
版本将再次替换为项目日志。
CoDeSysV2.3版本 6-19
PLC配置
救。。。
仅当当前显示项目日志时,才能选择此菜单项。它允许将项目日志的摘录存储在外部文件中。为
此,将显示以下对话框,其中可以选择要存储的在线会话:
选择成功后,将打开用于存储文件的标准对话框(“保存日志”)。
显示项目日志仅当当前显示外部日志时,才能选择此命令。它将显示切换回项目日志。
存储项目日志
无论日志是否存储在外部文件中( 上文),项目日志都会自动存储在名为<projectname>.log的二进制
文件中。如果在“项目”“选项”“日志”对话框中未明确给出其他路径,则文件将存储在与存储项目相同的
目录中。
可以在“项目”、“选项”、“日志”对话框中输入要存储的最大在线会话数。如果在录制过程中超过此数
字,则会删除最早的会话,以便为最新的会话腾出空间。
6.6 PLC配置
6.6.1 概述
在配置编辑器中工作的基础是配置文件(*.cfg;请参阅下面关于版本兼容性的注意事项)和设备文件(例
如 *.gsd、*.eds)。它们存储在目标文件中定义的目录中(请参阅目标设置),并在 CoDeSys 中打开项
目时读取。您可以随时将文件添加到此目录。
注意:一旦底层配置文件(*.cfg)被修改,你就必须在CoDeSys中重做配置!
6-20 CoDeSysV2.3版本
6 - 资源
如果目标系统支持,则可以从PLC获取信息:1.实际硬件结构的扫描,可直接用于PLC配置,2.诊断消
息,将在CoDeSys中显示为消息,3.状态信息将显示在PLC配置对话框中
在用户进行最终定制后,将配置的二进制映像发送到 PLC:
带有 CPU 模块和 CAN 模块的 PLC 配置示例
PLC 配置以树状结构显示在编辑器中,可以使用菜单命令和对话框进行编辑。该配置包含输入和/或输出
元素以及管理元素,这些元素本身也具有子元素(例如,CAN总线或具有8个输入的数字输入卡)。
CAN配置器:
在CAN模块的“CAN参数”对话框中选择“创建所有SDO”(参 第6.6.8章)。注意:SDO 现在始终根据
V2.3 配置器中使用的机制创建;因此,结果可能与之前得到的结果不同。
6.6.2 在PLC配置中工作
配置编辑器分为两部分。在左侧窗口中,将显示配置树。树的结构和组件主要来自配置文件中的定义(标
准配置),但可以通过用户在 CoDeSysPLC 配置器中完成的额外调整进行修改。在右侧窗口中,当前可
用的配置对话框
CoDeSysV2.3版本 6-21
PLC配置
默认情况下,窗口的右侧是可 的,但可以通过菜单项“附加”“属性”淡出。
在配置树的顶部有一个“根”模块的条目,该条目的名称已在配置文件中定义。
在下面,您可以找到按层次缩进的配置的其他元素:不同类型的模块(CAN、Profibus、I/O)、通道或
位通道。
配置编辑器分为两部分。在左侧窗口中,将显示配置树。树的结构和组件主要来自配置文件中的定义(标
准配置),但可以通过用户在CoDeSysPLC配置器中完成的额外调整进行修改。在右侧窗口中,当前可
用的配置对话框显示在一个或多个选项卡上。
默认情况下,窗口的右侧是可 的,但可以通过菜单项“附加”“属性”淡出。
在配置树的顶部有一个“根”模块的条目,该条目的名称已在配置文件中定义。
在下面,您可以找到按层次缩进的配置的其他元素:不同类型的模块(CAN、Profibus、I/O)、通道或
位通道。
元素选择
要选择元素,请在相应的元素上单击鼠标,或者使用箭头键将虚线矩形移动到所需元素上。
以加号开头的元素是组织元素,包含子元素。若要打开某个元素,请选择该元素,然后双击加号或按
<Enter>。您可以以相同的方式关闭打开的元素(元素前面的减号)。
'Insert''Insertelement':可以选择一个元素并将其插入到当前在配置树中标记的元素之前。
'Insert''Appendsubelement':可以选择一个元素并将其作为当前标记在配置树中的元素的子元素插入。
它将插入到最后一个位置。
最重要的命令位于上下文菜单中(鼠标右键或 <Ctrl>+<F10>)。
请注意: 如果目标系统支持,则可以使用对现有硬件的扫描来在 CoDeSysPLC 配置中插入模块。
替换/切换元素,“附加”“替换元素”''
根据配置文件中的定义,当前选定的元素可能会被其他元素替换。同样,也可以切换通道,通道的设置方
式 可 以 用 作 输 入 或 输 出 元 素 。 使 用 命 令 'Extras' 'Replace element'
符号名称
模块和通道的符号名称可以在配置文件中定义。在这种情况下,它们将显示在配置编辑器中相应元素的
IEC地址的“AT”之前。在配置文件中还定义了符号名称是否可以编辑或插入到配置编辑器中。要输入符号
名称,请在配置树中选择所需的模块或通道,然后通过鼠标单击IEC地址前的“AT”打开文本字段。以同样
的方式,您可以在双击名称后编辑现有符号名称。请注意,分配一个符号名称与一个有效的变量声明相对
6-22 CoDeSysV2.3版本
6 - 资源
应!
模块的导出/导入
如果在配置文件(*.cfg)中将模块定义为“可导出”,则在配置树中选择该模块时,您将在上下文菜单中找
到“导出模块”和“导入模块”命令。
使用命令“导出模块”,将打开用于选择文件的对话框。在这里,您可以定义一个文件,模块将以 XML 格
式导出到该文件中,以及所有子模块及其配置。如果在配置树中选择了适当定义的模块,则可以通过命
令“导入模块”将此文件导入到另一个 PLC 配置中。
6.6.3PLC配置中的常规设置
选择配置树顶部的“PLCconfiguration”(“root”模块)条目。然后,“设置”对话框显示在窗口的右侧。可
以激活以下选项:
计算地址:
每个新插入的模块都会自动分配一个地址,该地址由之前插入的模块的地址加上该地址的大小
得出。如果从配置中删除模块,则会自动调整以下模块的地址。当执行命令“Extras”“计算地址”时,将重
新计算从所选节点(模块)开始的所有地址。
检查重叠地址:在编译时,将检查项目是否有重叠地址,并显示相应的消息。
因此(如果配置文件未定义,则始终应重新加载标准配置!),即使重新打开项目时找不到配置文件,用
户设置的配置也将保留在项目中。请记住,在这种情况下,如果未激活此处描述的选项,则完整的项目特
定配置将丢失!
通过将配置信息与项目一起保存,这些信息也将保持在目标更改处。但在这种情况下,新目标可能会带来
自己的配置文件,然后将额外考虑这些配置文件。
PLC 配置的常规设置对话框
CoDeSysV2.3版本 6-23
PLC配置
重新计算模块地址,“附加”“计算地址”
如果在 PLC 配置编辑器的“设置”对话框中激活了“计算地址”选项,则命令“附加”“计算地址”将开始重新
计算模块的地址。所有以当前在配置树中选择的模块开头的模块都将被考虑在内。
添加配置文件
在“Extras”菜单中使用此命令将另一个文件添加到项目的配置文件中。这些文件位于项目选项中指定的目
录路径中,类别为“目录”,输入字段为“配置文件”。
如果可以添加文件,则“选择配置目录”对话框(其中当前为项目定义的所有配置目录)将显示在选择列
表中。选择文件应复制到的目录。按下按钮 OK 确认此选择后,对话框将关闭,文件将立即在 PLC 配置
中可用。
返回标准配置,“附加”“标准配置”
命令 'Extras''Standardconfiguration' 可用于恢复原始 PLC 配置,该配置由配置文件 *.cfg 定义并保存在
项目中。
6.6.4 自定义特定参数对话框
通过使用特定于应用程序的 DLL(一个单独的对话框)来扩展配置器的参数化可能性。此“Hook”-DLL 必
须位于包含配置文件的目录中,然后可以通过配置中的条目链接 file.to 模块或通道。如果这样做,对于相
关模块,标准对话框“模块参数”将替换为 DLL 中定义的对话框。
6-24 CoDeSysV2.3版本
6 - 资源
特定于应用程序的参数对话框示例(自定义参数)
6.6.5I/O模块的配置
I/O 模块的基本参数
如果在配置树中选择了 I/O 模块,则会显示“基本参数”对话框,其中包含以下条目:
模块 ID:模块ID 是整个配置中模块的唯一标识符。它由配置文件定义,在配置编辑器中不可编辑。
节点 ID:节点ID 可以由配置文件中的条目定义,如果没有条目,也可以由模块在配置结构中的位置定
义。
输入地址、输出地址、诊断地址:分别用于存储诊断数据的输入地址和输出地址。
这些地址是指模块。这取决于常规设置,哪些地址已预定义,哪种地址模式有效,以及地址是否仍可在此
处编辑。
注释:可以在此处输入有关模块的附加信息文本。
加载模块说明:
如果禁用此选项,则在下载项目时将不考虑该模块。默认情况下,该选项处于激活状态,
并在配置文件 *.cfg 中定义它是否在配置对话框中可 和可编辑。
不自动调整地址:
此选项仅在配置文件定义时可用。如果激活,则在重新计算地址时将不考虑该模块。(
默认值:选项已停用。
CoDeSysV2.3版本 6-25
PLC配置
I/O 模块的基本参数对话框
PLC配置中的诊断:
诊断地址字段 用于指定诊断信息(总线状态)将自动写入的标记地址。
• 通过功能块DiagGetState 进行诊断分析:
一旦总线系统中的至少一个模块产生错误,就可以使用功能块DiagGetState读取特定的诊断信息,该功能
块也是上述库的一部分。此功能仅适用于已在 CoDeSysPLC 配置中配置的总线主站!
DiagGetState 的输入变量:
启用:BOOL; 在ENABLE的上升沿,功能块开始工作
DRIVERNAME:指向字符串 应向其发送诊断请求的驱动程序的名称(名称的地址)。如果在此处
的指针; 输入 0,则诊断请求将转发给所有当前驱动程序。
6-26 CoDeSysV2.3版本
6 - 资源
DiagGetState 的输出变量
准 备 : BOOL ; TRUE:诊断请求的工作已终止
• 通过功能块DiagGetBusState进行替代诊断分析:
如果在配置中指定了诊断地址,则总线状态将在后台更新。如果未指定诊断地址或未在CoDeSys中进行
任何配置,则在目标系统支持的情况下,可以实例化并显式调用功能块DiagGetBusState,以便从总线获
取诊断数据。此功能块(如DiagGetState) 也 必 须 在 制 造 商 特 定 的 库 中 提 供 , 例 如3S - Smart Software
SolutionsGmbH 的 BusDiag.lib。
EXTENDEDINFO:ARRAY[0..129] 总线部件的制造商特定诊断数据;字节;仅使用字节的前三位:位
0 :已配置总线成员位 1 :总线成员处于活动状态位 2 :总线成员报错,详细信息可通过
DiagGetState()获取 *)
CoDeSysV2.3版本 6-27
PLC配置
在此对话框中,将显示设备文件给出的参数。只有“value”列是可编辑的。
索引:索引是一个连续的数字(i),它一直编号模块的参数。
Name:参数名称
Value :参数的值,可编辑
最初显示默认值。可以直接设置值,也可以通过符号名称设置值。如果配置文件中的条目未设置为“只读
”,则可以对其进行编辑。为此,请分别单击编辑字段,选择滚动列表中的条目。如果值是文件名,您可
以通过双击打开“打开文件”对话框并浏览其中的另一个文件。
默认值:参数的默认值
Min.:参数的最小值(仅当未使用符号名称时)
Max.:参数的最大值(仅当未使用符号名称时)
工具提示可能会提供有关当前标记的参数的其他信息。
可能有一个特定于客户的对话框,而不是“模块参数”对话框。这是因为,这样的对话框由配置文件中模块
定义的条目(Hook-DLL)链接。
6.6.6 通道配置
通道的基本参数
Channel-Id:频道的全局唯一标识符
类:定义通道是用作输入(I)、输出(Q)还是用作输入和输出(I&Q),或者它是否可切换(I|Q)。
如果通道是可切换的,这可以通过命令“Extras”“替换元素”来完成。
Size:通道大小[Byte]
默认标识符:通道的符号名称
通道的名称在配置文件中定义。只有当父模块的定义允许时,才能在配置树中编辑通道的名称。
评论:有关频道的其他信息在编辑字段中,可以插
6-28 CoDeSysV2.3版本
6 - 资源
入或修改评论。
地址:仅当配置文件中的条目激活此编辑字段时,该字段才可用。为通道插入所需的地址。
通道的基本参数对话框
通道参数
与 “ 模块参数 ” 对话框相对应, “ 通道参数 ” 对话框用于显示和修改通道的参数:索引、名称、值、 默认
值、最小值、最大值。此对话框也可以替换为客户特定的对话框“自定义参数”。
比特通道
当配置文件中的 CreateBitChannels=TRUE 时,将自 a 个频道 是 定义 跟 一 进入
动插入位通道。
位通道的“基本参数”对话框仅包含“注释”字段。
6.6.7Profibus模块的配置
CoDeSys 支持与 profibusDP 标准相对应的硬件配置。在profibus系统中,您可以找到主站和从站模块。
每个从站都提供由主站设置的参数,并根据主站的要求提供数据。
PROFIBUSDP系统由一个或多个主站及其从站组成。首先,必须对模块进行配置,以便可以通过总线进
行数据交换。在总线系统初始化时,每个主站对配置分配给它的从站进行参数化。在正在运行的总线系统
中,主站向从站发送和/或请求数据。
在主站下方,可以插入或几个从站。
如果在配置树中选择了 DP 主站,则配置右侧将出现以下对话框:基本参数、DP 参数、总线参数、模块
参数。
如果选择了 DP 从站,该从站插入到 DP 主站下方,则可以使用以下对话框(取决于配置文件中的定义
):基本参数、DP 参数、输入/输出、用户参数、组、模块参数。根据配置文件中的设置,“DP 参数”对
话框可能具有另一个标题。
CoDeSysV2.3版本 6-29
PLC配置
DP 主站的基本参数
DP 主站的“基本参数”对话框与其他模块的对话框匹配(请参 第 6.6.5 章“I/O 模块的基本参数”)。
DP主站的模块参数
DP 主站的模块参数对话框与其他模块的对话框匹配:除了配置文件中的 DP 和总线参数外,此处还显示
了分配给主站的参数,并且可以在标准情况下编辑这些值(请参 第 6.6.5 章“I/O 模块的模块参数”)。
DP 主站的 DP 参数
此对话框显示从 DP 主设备的设备文件中提取的以下参数(该对话框可能具有不同的标题,在配置文件中
定义):
信息制造商、GSD修订版、ID(标识号)、硬件版本和软件版本(硬件和软件版本)、GSD 文件名
最高 站地址:显示总线上分配的最高 站地址(HSA)。在这里,还可以输入较低的
地址以缩小GAP范围(即,搜索新活动设备的地址范围)。
模式 自动清除模式:如果激活此选项,则在错误情况下,从站的输出将切换到保存状态,并
且主站将从“运行”状态变为“清除”状态。
自动启动:如果未激活此选项,则必须手动启动主服务器。但是,这取决于驱动程序是
否评估设置。
DP 主节点的 DP 参数对话框
6-30 CoDeSysV2.3版本
6 - 资源
“ 组”按钮将转到“组属性”对话框。组属性与分配给主站的从站有关。最多可以设置八个组。对于每个
组,输入它是在冻结模式还是同步模式下运行。通过将从站(参 “DP 从站的属性”“组分配”)分配给各
个组,可以通过全局控制命令同步来自主站的数据交换。使用 Freeze 命令,主站指示从站或组“冻结”瞬
时状态下的输入,并在随后的数据交换中传输这些数据。使用Sync命令,指示从站同步切换到在下一个
Synch 命令中输出第一个命令后从主站接收的所有数据。
要打开 / 关闭组的冻结和同步选项,请用鼠标左键单击表格中的相应位置以放置或删除所需选项旁边的
“X”,或使用鼠标右键通过上下文菜单激活或停用该选项。此外,您可以在此处编辑组名称。
DP 主/组属性对话框的 DP 参数
DP主站的总线参数
总线参数描述通信的时序。如果激活了“使用默认值”选项,则将根据用户设置的波特率和 GSD 文件给出
的设置自动计算参数值。
注意::自动计算的值只是近似值!
DP主站的总线参数
CoDeSysV2.3版本 6-31
PLC配置
所有参数也可以手动编辑。
时隙时间主服务器在发送请求消息后等待从服务器回复消息的第一个字符的配方的最 时间
静默时间TQUI(单位:tbit):在将NRZ(不归零)信号转换为其他编码时必须考虑的空闲时间(中继器
的切换时间)
目标轮换TTR(以 tbit 为单位):令牌周期时间设置;主时间应接收令牌的预计时间间隔 。总线上所有主节
点的令牌停止时间之和的结果。
差距更新因子 GAP更新因子G:在该周期之后,在主站的GAP(从其自己的总线地址到下一个活动站地
址的地址范围)中搜索其他新插入的活动站的总线周期数。
最大重试次数限制主站未收到从站有效响应时重复请求尝试的最大次数
最小从站间隔从站可以处理来自主站的请求的两个总线周期之间的时间(时间基础100 s)。此处输入的
值必须根据从站的 GSD 文件中的相应规范进行检查。
DP 从站的基本参数
DP 从站的基本参数对话框与其他模块的对话框匹配(请参 第 6.6.5 章 “I/O 模块的基本参数”)。
DP 从站的基本参数对话框
6-32 CoDeSysV2.3版本
6 - 资源
DP 从站的 DP 参数
此对话框显示从 DP 从站的设备文件中提取的以下参数(该对话框可能具有不同的标题,该标题在配置文
件中定义):
DP 从站的 DP 参数对话框
信息 制造商、GSD修订版 、硬件版本和软件版本(硬件和软件版本)、GSD 文件
名、从属类型
标准参数 Identnumber:PNO 为此设备类型分配的唯一标识号。允许在 DP 从站和相应
的 GSD 文件之间明确引用。
看 狗 如果 将看 狗控制设置为活动状态,则应用输入的看 狗 时间(访问监控,以
10 毫秒为基准)。如果在这段时间内主站未访问从站,则将其重置为初始化状
态。您可以通过GSD-File
CoDeSysV2.3版本 6-33
PLC配置
DP从站的输入/输出
用于配置 DP 从站的输入/输出的对话框
DP从站的配置方式取决于它是“模块化”还是“非模块化”的“固定”从站。
模块化从站模块的选择如下所述:
在对话框左侧的列表中,选择所需的输入或输出模块,然后按“选择”按钮 将其进入右侧的窗口。该窗口
中的错误条目可以通过“删除”按钮进行更正。插入的模块将立即显示在配置树中。如果在那里选择它们,
将提供相应的对话框 ProfibusModul,显示模块的输入、输出和诊断地址。如果您选择已插入模块的通
道,将打开对话框 Profibus 通道,显示通道的地址。对于这两个对话框中的每一个,配置文件中的设置
可能会定义不同的标题。
该对话框在左侧窗口中列出了从机的GSD文件中可用的所有输入和输出模块,而右侧窗口包含当前为此
设备选择的配置,因为它与输入和输出相关。
如果这是模块化从站(可配备各种I/O模块的设备),则选择过程如下:在左侧列表中,通过鼠标单击选
择所需的输入或输出模块,并使用“选择>>”按钮复制到右侧窗口中。通过在右侧窗口中选择不需要的模
块并按“删除”按钮,可以更正不正确的条目。
对于非模块化从站,这种选择是不可能的。它们直接在右侧窗口中强制关闭其输入和输出。然后,可以通
过选择并使用“删除”来删除不需要的模块。
“ 属性”按钮指向当前在左侧或右侧列表中选择的输入或输出模块的“模块属性”对话框。它显示名称、
配置(根据 PROFIBUS 标准的模块描述编码)以及模块的输入和输出 度(以字节为单位)。如果
GSD 文件中的模块描述除了标准集之外还包含特定参数,则此处会列出这些参数及其值和值范围。如果
激活了“符号名称”选项,则使用符号名称。
6-34 CoDeSysV2.3版本
6 - 资源
DP从站的用户参数
DP 从站的用户参数对话框
DP 从站的组分配
DP 从站组分配对话框
此对话框用于将从站分配到八个可能的组中的一个或多个。普遍适用的组属性(Sync.另一方面,模式和/
或冻结模式)是在配置主节点属性期间定义的(参 上文“DP 主节点的 DP 参数,组属性”)。也可以通
过“全局组属性”按钮访问此对话框。
从站分配到的组标有加号。通过在“组成员身份”中选择组名称来完成对组的分配或从组中删除
CoDeSysV2.3版本 6-35
PLC配置
列,然后用鼠标右键单击“将从站添加到组”或“从组中删除从站”,或者用鼠标再次单击组名称左侧。
从属设备只能分配给其支持其属性的组。每个从站的相关属性(Sync.模式/冻结模式)显示在表格上方。
检查设备支持的模式。
DP从站的模块参数
DP 从站的模块参数对话框与其他模块的模块参数对话框匹配(参 第 6.6.5 章)。除了配置文件中的DP
和用户参数外,还显示分配给从站的参数,并且可以在标准情况下编辑这些值。
DP从站在Profibus从站操作中的属性
如果 Profibus 在从站模式下运行,则从站设备将插入到配置树的主站级别。可以在以下对话框中完成配
置(有关说明,请参阅上面的章节):
基本参数
DP参数
模块参数
输入/输出
6.6.8CANopen模块的配置
CoDeSys支持根据CANopen草案标准301进行硬件配置。该配置类似于针对硬件相关配置的描述。
所有EDS(电子数据表)和DCF(设备配置文件)文件,当CoDeSys启动时,存储在配置文件目录(参
第 4.2 章,项目选项:目录)中,都可以根据配置文件 *.cfg 中的描述在配置中集成、编辑和显示。在
EDS文件中,描述了CAN模块的配置选项。如果添加DCF文件中描述的模块,则只能修改IEC地址,因为
该模块已在CAN配置器中完全配置。
CAN模块获得一个配置,该配置描述了它们在报文交换期间与时间和错误相关的行为(对话框“CAN模块
的CAN参数”)。对于每个模块,PDO(过程数据对象)的映射,用于发送和接收(对话框“接收...”“发
送 PDO 映射”)。可以调整可用 SDO(服务数据对象)的值(“服务数据对象”对话框)。
在设备描述文件中指定的CAN模块或CAN主站的其他参数可以在“Modulparameters”对话框中进行配置。
如果CoDeSys可编程PLC应作为CANopen从站(也称为“CANopen节点”,以下称为“CAN设备”)集成到
CAN网络中,则可以在CoDeSysPLC配置器中对其进行配置,并且配置可以以EDS文件的形式存储。然
后,该设备描述文件可用于任何所需的CANopen主站配置。
CAN主站的基本参数
CAN主站的基本参数对话框与其他模块的对话框匹配(参 第6.6.5章 “I/O模块的基本参数”)。
CAN主机的CAN参数
CAN总线上的传输属性可以在插入模块后直接设置,也可以使用命令“Extras”“Properties”调用。
使用选择选项,设置传输应以的所需波特率进行传输。可以区分PDO(过程数据对象)的同步和异步传输
6-36 CoDeSysV2.3版本
6 - 资源
activate:仅当激活此选项时,同步消息才会在主站和从站之间传输。
Node-Id:用于唯一标识CAN模块,对应于模块本身的设置编号,介于1和127之间。Id 必须以十进制数
形式输入。(不要与“节点编号”混淆!
CAN主站的CAN参数对话框
当下载发生时,如果激活了自动启动选项,则当控制器系统启动时,CAN总线将自动初始化和启动。如
果此选项未激活,则必须在项目中启动 CAN 总线。
CAN主站的模块参数
CAN主站的模块参数对话框与其他模块的模块参数对话框相同(参 第6.6.5章):在配置文件中额外分
配给主站的参数显示在此处,默认情况下可以编辑这些值。
CAN模块的基本参数
DP 主站的“基本参数”对话框与其他模块的对话框匹配(请参 第 6.6.5 章“I/O 模块的基本参数”)。
为输出和输入地址输入项目中的PDO(过程数据对象)的IEC地址, 从而从模块的视图定义方向(输入
或输出)。
CoDeSysV2.3版本 6-37
PLC配置
必须在CAN模块的诊断地址处给出标记地址。它的工作方式与CAN主站的描述类似。
CAN模块的CAN参数
CAN模块的CAN参数不作为主站(总线的全局监视),与CAN主站的CAN参数不同。
CAN模块的CAN参数对话框
部分总则:
Node-Id用于唯一标识 CAN 模块,并对应于模块本身的设置编号,介于 1 和 127 之间。Id 必须以十进
制数形式输入。
如果激活了 DCF 写入,则在已编译文件的定义目录中插入 EDS 文件后,将创建一个 DCF 文件,该文件
的名称由 EDS 文件的名称和末尾附加的节点 ID 组成。
如果激活了选项重置节点(可用性取决于设备描述文件的内容),则将在下载配置之前重置从站。
如果激活了“可选设备”选项(对话框中的可用性取决于目标),则主节点将仅尝试从此节点读取一次。
然后,如果不应答,节点将被忽略,即主节点将返回正常操作模式。
如果激活了“未初始化”选项(对话框中的可用性取决于目标),则主节点将立即激活节点,而不发送配
置 SDO。(尽管如此,SDO 数据仍将创建并保存在控制器上。
6-38 CoDeSysV2.3版本
6 - 资源
如果得到目标的支持,则可以在三个级别上抑制SDO的创建。在配置空间有限的情况下,可能需要这样
做:
注意:在未详细了解系统的情况下,不应修改这些设置!
CreateCommSDOs:通信参数SDO
CreateMappingSDOs:映射配置SDO
CreateBasicSDOs:基本参数 SDOS(Nodeguarding、Sync 等)
只有对于激活的类型,才会创建相应的 SDO。上面描述的选项“创建所有 SDO”仅指当前在此处激
活的 SDO 类型。
部分节点守卫:(替代通过心跳机制守卫)
如果激活了Nodeguarding选项,则会根据 GuardTime设置的时间间隔(以毫秒为单位)向模块发送一
条消息。如果模块没有发送带有给定 GuardCOB-ID(通信对象标识符)的消息,它将收到状态“超时”。
一旦达到尝试次数(寿命因子),模块将收到“不正常”状态。模块的状态将存储在诊断地址。如果未定义
变量 GuardTime 和 LifeTimeFactor (0),则不会对模块进行监控。
部分心跳设置:(或者是 Nodeguarding)
如果激活了 ActivateHeartbeatProducer 选项,则模块将根据 Heartbeat Producer Time:中定义的时
间间隔发送检测信号:以毫秒为单位。
如果激活了ActivateHeartbeatConsumer选项,则模块将侦听主设备发送的心跳。一旦没有收到更多的
心跳,模块将关闭 I/O。
部分紧急电报:
当出现内部错误时,模块会发送具有唯一COB-ID 的紧急消息。这些消息因模块而异,存储在诊断地址
中。
来自相应模块制造商的 EDS 或 DCF 文件的条目“FileInfo”和“DeviceInfo”隐藏在“信息”按钮后面。
模块化从站的CAN模块选择
在左列(可用模块)中,您可以找到可用于从站的所有模块。标记所需的模块,然后使用“添加”和“删
除”按钮在右列(所选模块)中创建选择。PDO 和 SDO 选择将自动更新。
CAN模块的PDO映射
CAN 模块配置对话框中的“接收 PDO 映射”和“发送 PDO 映射”选项卡 允许更改模块的“映射”,如
EDS 文件中所述。
EDS 文件中的所有“可映射”对象都位于左侧,可以在右侧添加到 PDO(过程数据对象)(“>>”按钮)或
再次删除(“删除”按钮 )。可以插入 StandardDataTypes 以在 PDO 中创建空白空间。
CoDeSysV2.3版本 6-39
PLC配置
CAN模块的配置,PDO-Mapping
每个 PDO 消息都需要一个唯一的COB-Id(通信对象标识符)。
该字段显示为灰色,如果模块不支持某个选项或无法更改该值,则无法编辑该字段。
异步-特定于设备配置文件和异步-特定于制造商:仅当发生特定事件时才会传输 PDO。
6-40 CoDeSysV2.3版本
6 - 资源
事件时间:如果设置了相应的传输类型,请在此处输入两次传输之间的间隔(毫秒)。
服务数据对象
在这里,您可以找到 EDS 或 DCF 文件中所有对象的列表,这些对象位于索引0x20000x9FFF区域中,
并且标记为可写。
将显示每个对象的属性“索引”、“名称”、“值”、“类型”和“默认值”。该值可以更改。标记该值并按
<空格键>。进行更改后,使用 <Enter> 确认新值,或使用 <Escape> 键拒绝它。
在CAN总线初始化时,设定值以SDO(服务数据对象)的形式传输到CAN模块。
注意:CANopen和IEC-61131之间所有不兼容的数据类型将在CoDeSys中被下一个更大的IEC-61131数据类型替
换。
用于配置服务数据对象(SDO)的对话框
6.6.9CanDevice(CANopen从站)的配置
可通过CoDeSys编程的PLC可用作CAN网络中的CANopen从站(CANopen-Node,下文称为
“CanDevice”)。
为此,可以在 CoDeSysPLC 配置器中配置 PLC,并将配置保存在 EDS 文件中。此EDS文件(设备文
件)稍后可以在任何CANopen主站配置中使用。
CoDeSysV2.3版本 6-41
PLC配置
基本设置
CAN设置
默认 PDO 映射
CanDevice 的基本设置
总线标识符:当前未使用。
updatetask 的名称:调用 CanDevice 的任务的名称。选择列表将提供项目中可用的所有任务。
EDS文件生成:如果要从当前配置设置生成设备文件(EDS 文件),以便以后能够在任何主配置中使用
CanDevice,请激活此选项。在EDS 文件的名称字段中输入文件的路径和名称。或者,可以定义手动创
建的模板文件(EDS 文件模板),该文件将补充配置对话框中完成的设置。例如,您可以创建一个包含
某些 EDS 文件条目的文本文件,将其另存为“EDS_template.txt”,然后在当前对话框中输入此模板的路
径。如果您随后从当前项目生成EDS文件“device_xy.eds”,则该项目生成的条目将与模板的条目合并,
并将保存在 “device_xy.eds” 中。(不要使用扩展名 “.eds” 作为模板文件!如果条目是由当前项目创建
的,并且模板已由模板定义,则模板定义不会被覆盖。
对话框基础设置
要输入文件路径,您可以使用标准对话框浏览文件,可以使用按钮“浏览...”打开该文件。
CanDevice 的 CAN 设置
在这里,您可以指定CANopen标准中已知的CAN参数,以便将它们提供给运行时系统。这取决于运行时
系统将如何解释它们。如果您通过库CanOpen.lib在3S运行时系统中使用CANopen实现,请参阅相应的
文档 “CanOpenfor3SRuntimesystems”。
节点ID:节点ID(1-127)是主站用于在CANopen网络中对设备进行寻址的节点号。
波特率:从选择列表中选择总线内传输所需的波特率。
设备类型:在此字段中自动显示设备类型,在查找对象0x1000时返回该类型,即在项目中配置的 PLC 类
型。可以编辑设备类型。
6-42 CoDeSysV2.3版本
6 - 资源
可以配置Nodeguard和 EmergencyTelegram功能。CAN模块和主站的配置请参考相应的说明。
心跳设置:
如果 激活了激活心跳生成选项,则 CanDevice 将根据在HeartbeatProducerTime:中定义的间隔(毫
秒)发送听觉节拍。
如果激活了“激活心跳使用者”选项,则 CanDevice 将侦听由使用者 ID 定义的模块发送的检测信号。 检
测信号使用者
时间定义时间(以毫秒为单位),在此时间之后,如果未收到检测信号,将设置错误标志。
对话框 CAN 设置
在“参数管理器”列表中,参数条目通过索引/子索引链接到项目变量。
请注意:索引的子索引0意味着多个子索引,将隐式用于存储子索引的数量。因此,请勿在参数管理器中使用子索引
0。还要注意,特定索引的参数必须在参数管理器中按升序输入(子索引 1、2、3...)。
CoDeSysV2.3版本 6-43
PLC配置
的所有可用参数列表。
对话框默认 PDO 映射
例:
目标:在 CanDevice 的第一个接收 PDO (COB-Id=512+NodeId)上,应接收变量 PLC_PRG.a。
因此,在变量列表中的参数管理器中,必须将索引/子索引分配给变量 PLC_PRG.a。只有在“网络功能”类别的目
标设置中激活参数管理器,并且在那里定义了有效的索引和子索引范围时,才能打开参数管理器。
现在,在CanDevice的“默认PDO-Mapping”对话框中,可以将相应参数列表的索引/子索引条目分配给接
收PDO。
6-44 CoDeSysV2.3版本
6 - 资源
6.6.10DeviceNet模块的配置...
CoDeSys支持总线系统的硬件配置,该配置使用国际标准化的DeviceNet协议(EN50325)。DeviceNet
主要用于实现具有即插即用特性的主从网络,从而具有直接连接到传感器和执行器(接近开关,插座)的
总线。
DeviceNet通信协议基于CAN(控制器局域网)。通信模块之间的直接连接是数据交换的先决条件。
CoDeSysDeviceNet配置编辑器提供了DeviceNet-Master的定义,它将控制网络内的数据交换。支持各
种通信类型,用于从模块(DeviceNet-Slave)之间的输入和输出数据交换。通常,DeviceNet-Master采
用“UCMM”功能(用于多个连接的未连接消息管理器),并处理从其他主站到其从站的请求。
如果在配置树中选择了 DeviceNet-Master,则在适当命名的选项卡上可以看到以下对话框:基本参数、
DeviceNet 参数、模块参数。
如果选择了插入在 DeviceNet-Master 下方的 DeviceNet-Slave ,则将提供以下对话框:基本参数、
DeviceNet参数、I/O连接配置、参数、模块参数。
DeviceNet-Master的基本参数
DeviceNet-Master 的“基本参数”对话框引用了“模块ID”、“节点号”、“输入地址”、“输出地址”和“诊
断地址”项,与其他模块的参数匹配(请参阅第 6.6.5 章 I/O 模块的基本参数)。
DeviceNet-Master的DeviceNet参数
DeviceNet主站的DeviceNet参数对话框
CoDeSysV2.3版本 6-45
PLC配置
此外,此处定义了网络内数据交换的波特率 [Baud]。选择以下设置之一:125000(默认)、250000、
500000。
DeviceNet-Master的模块参数
DeviceNet-Master 的模块参数对话框与其他模块的对话框相同(请参 第 6.6.5 章 I/O 模块的模块参数
)。此处显示配置文件中额外分配给主站的参数,通常可以编辑这些值。
DeviceNet-Slave的基本参数
DeviceNet-Slave 的基本参数对话框引用了输入地址和输出地址项,与其他模块的参数对话框相匹配(请
参 第 6.6.5 章 I/O 模块的基本参数)。方向(输入或输出)是从模块的视图定义的。
DeviceNet-Slave的DeviceNet参数
这里配置了模块的常用参数:
地址:DeviceNet-Slave的标识,在模块本身设置。此 ID 的含义与 CAN 模块的“节点 ID”的含义相对应,
不得与“基本参数”对话框中定义的“节点编号或”地址“混淆!必须输入十进制,可能的值:0-63,默认设
置:0。
设备在配置中处于活动状态:激活此选项以使设备成为网络中数据交换的主动参与者。
DeviceNet-Slave的DeviceNet参数对话框
专家...:此按钮将打开“扩展设置”对话框,可在其中更改以下设置:
UCMM : (用于多个连接的未连接消息管理器)如果激活此选项(默认),则从站能够处理
UCMM 消息。可能的分类:Group1、Group2或Group3(默认)
默认情况下,以下检查将在网络启动时执行,如有必要,可以在此处停用。在检查过程中,始终将
EDS 文件给出的值与设备上的值进行比较:检查供应商 ID、检查设备类型、检查产品代码、检查
产品版本
6-46 CoDeSysV2.3版本
6 - 资源
对话框扩展设置
DeviceNet-Slave的I/O连接配置
在这里,您可以配置从站的输入和输出,通过这些输入和输出交换数据(参数值)。要定义连接类型,并
根据模块给出的可能性(EDS文件、输入、输出)组合输入和输出的选择。
DeviceNet从站的I/O连接配置对话框
CoDeSysV2.3版本 6-47
PLC配置
轮询:对从站的数据进行周期性轮询(Master-Slave-process)
位选通:DeviceNet-Master 向所有从站发送广播报文,要求他们发送当前数据。从节点 1 开始,
一个接一个地应答。
状态变化:在输入端检测到每次更改时,从站都会将其数据发送到主站。不需要主节点的显式请
求。
循环:从站将在定义的循环时间后发送其数据,而无需主站明确请求(心跳“功能)。
组播轮询:目前不支持
I/O 完成:此处将显示当前用于所有已配置输入和输出的Inputbytes和Outputbytes的总和。总和是根据
对话框的“输入”和“输出”区域中为 I/O 定义的 度计算得出的。
扩展:此按钮将打开“更多设置”对话框,该对话框允许修改当前所选连接类型的以下默认设置:
预期数据包速率:默认值:75,预期速率(以毫秒为单位),根据该速率,从站应通过当前连接发
送其数据。
分段超时:[ms]:默认 1600ms;如果要发送的数据超过 8 字节的大小,则必须将它们分段并以多
个电报包发送。分段超时以毫秒为单位定义,即在触发“超时错误操作”中定义的操作之前,主设备
应等待分段报文上的从站应答的时间。
对话框“更多设置”,连接类型“循环”的示例
超时错误操作:定义,在超时时应启动以下哪些操作:
转换到超时:(默认)此操作是专 从定义的。
自动删除:I/O 连接将被删除。
自动复位:连接仍然存在,主设备重新配置从设备,看 狗复位。
连接类型“状态更改”的更多选项:
发送锁定时间:(默认值:1)两条消息之间的最小间隔(以毫秒为单位),即使在此时间跨度结
束之前数据已更改。此方法有助于避免传入请求使设备过载。“0”表示没有锁定时间,在这种情况
下,数据将尽快交换。
Timeout[ms]:(默认值:16)如果在此时间跨度(以毫秒为单位)内超过心跳速率,而尚未发送
数据,则将检测到超时错误。
6-48 CoDeSysV2.3版本
6 - 资源
心跳率[ms]:(默认值:250)时间跨度(以毫秒为单位),在此之后,从站在任何情况下都必须
发送其数据,即使它们没有更改。
连接类型“BitStrobe”的更多选项:
使用输出位:当应答主站时,从站将使用该输出位,该输出位对应于主站在请求报文中使用的输出
位。
连接类型“循环”的更多选项:
间隔 [ms]:以毫秒为单位的时间间隔,根据该时间间隔,从站必须自动发送其数据(心跳)。
超时 [ms]:如果在此时间跨度(以毫秒为单位)内已超过心跳速率,而尚未发送数据,则将检测
到超时错误。
输入:
从字段可用连接中,选择所需的输入,并将其传输到字段配置的输入连接按钮>>。通过按钮<<您可以从
中删除条目。
要修改已配置输入的 度,请双击此条目。将打开“连接 度”对话框。在此处输入所需的 度(以字节
为单位),然后单击“确定”进行确认。其 度将显示在配置输入后面的括号中。
配置的输入将立即在配置树中可 。在从属条目下方缩进,将有一个带有连接类型名称的条目。在此下方
将插入相应的输入和输出。
输出:
按照输入说明配置输出。
DeviceNet-Slave的参数
此处列出的参数由 EDS 文件给出。根据定义的 I/O 连接配置,它们的当前值将在网络中交换。
Typ:参数的数据类型
Acc.:访问权限: rw=读写, ro=只读
最小值、最大值:参数的取值范围,受最小值和最大值的限制
Default:参数的默认值
值:由于在 EDS 文件中定义,因此可以在此处编辑参数值。允许值的选择列表可用,或者可以通过鼠标
单击表格单元格来打开编辑字段。
DeviceNet-Slave的模块参数
DeviceNet-Slave 的模块参数对话框与其他模块的对话框相同(请参 第 6.6.5 章 I/O 模块的模块参数
):此处显示配置文件中额外分配给主站的参数,默认情况下可以编辑这些值。
6.6.11 在线模式下的PLC配置
在在线模式下,PLC 配置显示 PLC 输入和输出的状态。如果布尔输入或输出的值为 TRUE,则配置树中
输入行开头的小框将变为蓝色,非布尔值将添加到输入行的末尾(例如“=12”)。
CoDeSysV2.3版本 6-49
PLC配置
布尔输入可以通过鼠标单击来切换。在其他输入中,鼠标单击行首会打开一个对话框,可以在其中修改
值。一旦对话框关闭,修改后的值将在 PLC 中设置。
还要考虑在线诊断的目标特定可能性。
6.6.12 来自PLC的硬件扫描/状态/诊断信息
如果目标系统和实际配置文件(*.cfg)支持,则可以从PLC获取当前连接硬件的结构、状态和诊断结果信
息,并显示在CoDeSys的PLC配置中:
扫描模块配置
如果目标系统和实际配置文件(*.cfg)支持,则命令扫描模块配置将在 PLC 配置树中当前选择的模块的
上下文菜单中可用。
加载模块状态
如果目标系统和实际配置文件(*.cfg)支持,则命令 Loadmodulestate将在 PLC 配置树中当前选择的
模块的上下文菜单中可用。
显示诊断消息
如果目标系统和实际配置文件(*.cfg)支持,则命令 Showdiagnosismessages将在 PLC 配置树中当
前选择的模块的上下文菜单中可用。此命令仅在联机模式下可用。如果激活,来自 PLC 的模块的实际诊
断消息将显示在 CoDeSys 窗口中。
6-50 CoDeSysV2.3版本
6 - 资源
6.7 任务配置
6.7.1 概述
除了声明特殊PLC_PRG程序外,您还可以使用任务管理来控制项目的处理。
对于每个任务,您可以指定将由该任务启动的一系列程序。如果任务在当前周期内执行,则这些程序将在
一个周期的 度内进行处理。
优先级和条件的组合将决定任务将按时间顺序执行。
注意:请不要在多个任务中使用相同的字符串函数(参 standard.lib),因为这可能会通过覆盖导致程序错误。
可以显式启用或禁用每个任务。
对于每个任务,您可以配置一个看 狗(时间控制),可以配置;可能的设置取决于目标系统。
在联机模式下,可以在图表中监视任务处理。
此外,还可以将系统事件(例如启动、停止、重置)直接与项目 POU 的执行联系起来。
“任务配置 ”作为对象位于“对象管理器”的“资源”选项卡中。任务编辑器在二分窗口中打开。
在窗口的左侧,任务以配置树的形式表示。在最顶部的位置,您总能找到“任务配置”条目。下面是条目“
系统事件”和特定任务的条目,由任务名称表示。在每个任务条目下方插入分配的程序调用。每行前面都
有一个图标。
任务配置示例
在窗口的右侧 ,将显示一个对话框,该对话框属于配置树中当前标记的条目。在这里,您可以配置任
务(任务属性)、程序调用(程序调用)或定义系统事件(系统事件)的链接。这取决于目标,配置对话
框中有哪些选项可用。它们由目标文件中引用的描述文件定义。如果标准描述由客户特定定义扩展,则这
些描述将显示在窗口右侧的附加选项卡“参数”中。
CoDeSysV2.3版本 6-51
任务配置
6.7.2 在任务配置中工作
您在上下文菜单(鼠标右键)中找到的最重要的命令。
在“任务配置”的标题处有“任务配置”字样。如果单词前面有一个加号,则序列表关闭。通过双击列表或
按<Enter>,您可以打开该列表。现在会出现一个减号。再次双击,可以再次关闭列表。对于每个任务,
都会附加一个程序调用列表。同样,您可以以相同的方式打开和关闭此列表。
使用“插入”“插入任务”命令,您可以插入任务。
使用“插入”“附加任务”命令,您可以在配置树的末尾插入任务。
使用“插入”“插入程序调用”,程序调用将被分配给在配置树中实际选择的任务。
接下来,对于配置树中的每个条目,窗口右侧将出现一个相应的配置对话框。可以激活/停用选项,也可
以对编辑器字段进行输入。根据在配置树中选择的条目,将有用于定义“任务属性”的对话框(参 “插入
任务”)、用于定义“程序调用”的对话框(参 “插入程序调用”)或“系统事件”表。配置选项取决于目标
系统。一旦焦点再次设置到树上,在对话框中所做的设置将立即转移到配置树中。
任务名称或程序名称也可以在配置树中进行编辑。为此,请执行鼠标单击名称或选择条目,然后按<空
格>按钮打开编辑框架。
您可以使用箭头键选择配置树中的上一个或下一个条目。
通过单击任务或程序名称,或按<空格键>,可以在名称周围设置编辑控制框。然后,您可以直接在任务
编辑器中更改名称。
“插入”、“插入任务”或“插入”、“附加任务”
使用此命令,您可以将新任务插入到任务配置中。每个条目都由一个符号和任务名称组成。
如果选择了任务或条目“系统事件”,则可以使用“插入任务”命令。新任务将插入到所选任务之后。如果
选择“任务配置”条目,则“追加任务”可用,新任务将追加到现有列表的末尾。最大任务数由目标系统定
义。请注意,可能已经为 PLC 配置模块(在 cfg 文件中定义)保留了一定数量的任务。
插入任务时,将打开用于设置任务属性的对话框 。
插入所需的属性:
名称:任务的名称;使用此名称,任务在配置树中表示;在单击条目后或在选择条目时按<空格键>后,可以
在那里编辑名称。
6-52 CoDeSysV2.3版本
6 - 资源
用于设置任务属性的对话框
类型:
cyclic ():任务将根据“间隔”字段中给出的时间定义进行循环处理( 下文)。
随心所欲():程序启动后将立即处理任务,并在一次运行结束时自动以连续循环方式重新启动。没有定
义周期时间。
由事件(触发):一旦“事件”字段中定义的变量获得上升沿,任务将立即启动。
由外部事件(触发):一旦发生“事件”字段中定义的系统事件,任务将立即启动 。这取决于目标,哪些
事件将在选择列表中得到支持和提供。(不要与系统事件混淆
性能:
间隔(对于类型“循环”或“由外部事件触发”,如果事件需要时间输入):应重新启动任务的时间段。如
果输入数字,则可以在编辑字段后面的选择框中选择所需的单位:毫秒 [ms] 或微秒 [μs]。[ms] 格式的
输入将在窗口重新绘制后立即以 TIME 格式显示(例如“t#200ms”);但您也可以直接以 TIME 格式输入
值。以 [ms] 为单位的输入将始终显示为纯数字(例如“300”)。
事件(对于类型“由事件触发”或“由外部事件触发”):一个全局变量,一旦检测到上升沿,它将触发任
务的启动。使用按钮...或输入助手 <F2> 获取所有可用全局变量的列表。目标系统可能定义了单例事件。
这些是事件,只允许启动一个任务。在项目编译期间,将检查此类事件是否启动多个任务。检查涉及事件
变量的数据地址,而不是名称。例如:如果目标系统将 %MX1.1 和 %IB4 定义为单例事件,则使用以下
变量作为事件变量将产生两个错误(a 和 b 以及 c 和 d 各具有相同的地址)
VAR_GLOBAL
a 在%MX1.1处:布尔值;
b 在%MX1.1时:布尔值;
c 在%MB4时:布尔值;
d 在 %MD1 处:布尔值
;END_VAR
CoDeSysV2.3版本 6-53
任务配置
如果“Interval”和“Event”字段都没有条目,则任务间隔将取决于使用的运行时系统(请参阅运行时文档
);例如,在这种情况下,对于 CoDeSysSPNTV2.2 及更高版本,将使用 10 毫秒的间隔)。
看 狗
对于每个任务,可以配置一个时间控制(看 狗)。如果目标系统支持扩展的看 狗配置,则可能有预定
义的上限和下限,并定义了看 狗时间的默认值,以及以百分比为单位的时间定义。
看 狗:当此选项被激活时()然后,根据当前设置的灵敏度( 下文),一旦处理时间超过“时间”字段
中定义的时间( 下文),任务将以错误状态终止。
灵敏度:您可以在此处输入整数,在该整数中应生成错误的看 狗时间超限。默认条目为“1”,即在看
狗第一次超限时发生错误。注意:如果输入“0”,看 狗将被停用!
制造商特定属性:
除了当前所选任务的这些标准属性外,制造商的特定属性可能会显示在第二个选项卡“参数”中。如果在
任务配置的目标特定描述文件中定义了它,则会出现这种情况。
“插入”“插入程序调用”或“插入”“附加程序调用”
使用这些命令,您将打开对话框,用于在“任务配置”中输入对任务的程序调用。任务配置树中的每个条目
都由符号()和程序名称组成。
使用“插入程序调用”时,新的程序调用将插入到所选程序调用之前,而使用“附加程序调用”时,程序调
用将附加到现有列表或程序调用的末尾。
程序调用条目对话框
稍后在联机模式下对程序调用的处理将根据它们在任务编辑器中的顺序(自上而下)完成。
请注意:不要在多个任务中使用相同的字符串函数(请参阅标准库元素),因为在这种情况下,值可能会在处理任务
期间超出行程。
6-54 CoDeSysV2.3版本
6 - 资源
6.7.3 系统事件
除了“任务”之外,还可以使用“系统事件”来调用项目的 POU。可用的系统事件是特定于目标的(目标文
件中的定义)。目标的标准事件列表可以由客户特定事件扩展。例如,可能的事件包括:停止、启动、在
线更改。
每个事件都用一行表示:名称和描述按照目标文件中的定义显示,在名为POU的列中,您可以输入项目
POU 的名称,该名称应在事件发生后立即调用和处理。
如果确实希望事件调用 POU,请激活分配表()中的条目。激活/停用是通过鼠标单击控制框来完成的。
6.7.4 在线模式下的任务配置
在在线模式下,每个任务的状态和传递周期数将显示在配置树中。时间流在图表中进行监控。前提条件:
库SysTaskInfo.lib
并且SysLibTime.lib必须包含在项目中,以提供用于内部评估任务时间的函数。一旦设置了支持任务监
视的目标,这些库就会自动包含在内。
CoDeSysV2.3版本 6-55
任务配置
在配置树中显示任务状态:
在联机模式下,任务的当前状态将显示在配置树中任务输入行末尾的括号中,以及已通过的进程周期数。
此更新间隔与通常用于监控 PLC 值的间隔相同。可能的状态:
怠 自上次更新以来尚未启动;特别用于事件任务
运行 自上次更新以来至少启动过一次
停 停止
在 BP 上停止 已停止,因为已到达任务中的断点
出错时停止 错误,例如除以零、 面错误等。
停止看 狗 已超过周期时间
如果状态为“出错时停止”或“停止看 狗”,任务条目将显示为红色。
任务时间流的显示:
如果在配置树中选择了“Taskconfiguration”条目,则任务的利用率将显示在窗口右侧的条形图中:
在联机模式下显示任务执行
最小值: 最小测量运行时间(μs)
阿克特: 上次测量的运行时间(以μs 为单位)
麦克斯: 最大测量运行时间(μs)
周期: 周期总 度(μs)
抖动: 最大测量抖动(任务开始和操作之间的时间
系统指示它正在运行),单位为μs
复位按钮可用于将最小值、最大值和抖动值设置回 0。
6-56 CoDeSysV2.3版本
6 - 资源
图表的缩放比例(每像素微秒)可以借助于
缩放 [μs/像素]。
正在处理哪个任务?
对于执行,以下规则适用:
该任务已执行,其条件已得到满足;即,如果其指定的时间已过期,或者在其条件(事件)变量表现出上
升沿之后。
如果多个任务具有有效要求,则将执行具有最高优先级的任务。
如果多个任务具有有效条件和等效优先级,则将首先执行等待时间最 的任务。
程序调用的处理将根据它们在任务编辑器中的顺序(自上而下)完成。
根据目标系统的不同,在任何情况下,PLC_PRG都可能作为随心所欲的任务进行处理,而无需插入到任
务配置树中。
上下文菜单中的其他在线功能,以及“附加”菜单中的其他功能:
'Extras''设置调试任务'
使用此命令,可以在任务配置中以联机模式设置调试任务。文本 [DEBUG] 将出现在设置的任务之后。
因此,调试功能仅适用于此任务。换言之,只有当程序被设置的任务完成时,程序才会在断点处停止。
'Extras''启用/禁用任务'
使用此命令,可以禁用或重新启用当前在任务配置中标记的任务。在程序处理过程中,禁用的任务将不被
视为已禁用的任务。在配置树中,它由灰色条目指示。
'Extras''调用堆栈'
此命令位于“任务配置”的“附加”菜单中。如果程序在调试过程中在断点处停止,则可以使用它来显示相
应 POU 的调用堆栈。为此,必须在的任务配置树中选择调试任务。将打开“任务<任务名称>的调用堆栈”
窗口。在那里,您可以获得 POU 的名称和断点位置(例如,POUprog_x 第 2 行的“prog_x (2)”)。
下面的完整调用堆栈按倒序显示。如果您按下“转到”按钮,焦点将跳转到 POU 中当前在调用堆栈中标记
的该位置。
6.8 手表和食谱管理器
6.8.1 概述
功能
在监视和配方管理器(对象管理器的“资源”选项卡)中,可以在所谓的“监视列表(监视)”中查看指定
变量的当前值。
此外,监视列表中列出的变量可以预设为常量值,并将这组名为“配方”的值传输到 PLC。此外,观察列
表变量的当前值可以作为预设/配方从 PLC 读取到观察和配方管理器。在这种情况下,考虑将配方保存在
文件中并在需要时将其重新加载到配方管理器的可能性。有关配方用法的更多信息,请参阅:创建观察列
表、配方
在联机模式下,监视列表也可用于写入和强制变量。
例如,所有这些功能都可用于记录和设置控制参数。
CoDeSysV2.3版本 6-57
手表和食谱经理
编辑器
根据目标系统的不同,观察和配方管理器在以下变体之一中可用:每个观察列表的表格编辑器窗口,或所
有观察列表的 1-Window-Editor。
表格编辑器:
每个监视列表都在单独的表格编辑器窗口中查看,并且可以同时打开多个窗口。在这种情况下,可
用的观察列表将显示为“资源”选项卡中的条目,缩进在观察和配方管理器下方。每个都可以通过双
击条目来打开。
表格编辑器包含监视变量的名称、地址、值、准备值、配方值和注释列。
表格视图中的监视列表
name:这里必须按照以下语法以标准格式输入地址的变量标识符:
<POU名称>.<变量名称>
如果是全局变量,则删除 POU 名称。变量名称可以是多级的。
可以直接输入地址(例如“%IB0.0”)。
多级变量示例:
PLC_PRG。实例1.Instance2.Structure.Component
全局变量示例:
globalvar.component1
address,注释:在变量的声明中指定。
value:在在线模式下,此处显示变量的当前值(监控)。
配方值: 可以在此处输入一个值,当对整个监视列表应用命令 “ 写入配方 ” 时,该值将被传输到
PLC。可以使用命令“读取配方”将列表中所有变量的配方值替换为 PLC 的当前值。
对于功能块实例和结构化变量,第一列中名称前面会出现一个加号。它用于扩展或折叠组件列表。对于功
能块变量,上下文菜单由“打开功能块”和“打开实例”项扩展。
通过双击编辑器窗口中不可编辑的位置,表格将适应窗口宽度并优化列宽。
1-窗口编辑器:
只有一个二分编辑器窗口,您可以在其左侧找到所有可用的监视列表。对于当前选定的列表,窗口
的右侧部分显示关联的变量。此编辑器视图通过对象管理器的“资源”选项卡中的对象“监视”和“配
6-58 CoDeSysV2.3版本
6 - 资源
方管理器”打开。观察变量是逐行输入的,可以通过“:=”为每个变量分配一个配方值。关于这一
点,另请参阅:创建观察列表、食谱
1 个窗口中的观察和配方管理器
6.8.2 创建监视列表、配方
默认情况下,在每个项目中,会自动创建一个空的监视列表“标准”。请参阅下文,了解如何创建更多列表
并填充监视变量,以及如何定义配方。这在一定程度上取决于使用了监视和配方管理器的哪个(目标相
关)变体:
创建监视列表
创建一个新的空列表-在离线或在线模式下:
如果在“资源”选项卡中选择了“监视和配方管理器”条目,则在表格编辑器中通过命令“对象”“添加”(菜
单“项目”-“对象”或上下文菜单)可以创建一个新的、主要是空的监视列表。为此,在1-Window-Editor
中,可以使用“新建监视列表”命令(菜单“插入”或上下文菜单)。每个对话框都会打开一个对话框,用
于输入唯一的监视列表名称。确认后,新列表将立即添加到资源树(表格编辑器)中,或者位于
1-Window-Editor 的左侧。
用 POU 编辑器中的监视变量填充新列表,然后将变量添加到现有列表:
只能在在线模式下使用。无需为此目的停用监控。
表格编辑器和 1-Window-Editor:
• 如果在其中一个POU 编辑器中选择了一个或多个变量或元素,则可以通过命令“进入新监视列
表 ” (菜单 “ 附加 ” 或上下文菜单)直接将它们输入到新的监视列表中。新列表将自动添加为
“Watch<n>” ,并作为 “Watchn” 添加到 “Watch-andRecipeManager” 下方的 “ 资源 ” 选项卡
中,并在编辑器窗口中打开。只能在脱机模式下重命名列表。
• 如果在其中一个POU 编辑器中选择了一个或多个变量或元素,则可以通过命令“添加到监视列
表”(菜单“附加”或上下文菜单)将变量直接添加到现有监视列表之一。
• 可以在监视列表中输入标准格式的地址,而不是变量标识符。命令“插入地址范围”(菜单“附
加”或上下文菜单)允许一次性添加指定地址范围的所有地址。
CoDeSysV2.3版本 6-59
手表和食谱经理
手动填写列表:
可以在在线和离线模式下使用;有关语法,请参阅:概述、编辑器
表格编辑器:
• 如果打开监视列表,则通过命令“插入监视变量”或“插入”附加监视变量“可以添加其他变
量。可以通过“删除监视变量”或 <Del> 来选择和删除现有条目。
1-窗口编辑器:
• 要在监视列表中输入变量,必须在监视和配方管理器窗口的左侧选择该列表。然后,在输
入助手 <F2>(请参阅下面的注释)的帮助下,或通过键入,逐行将变量添加到当前光标
位置的右侧。有关请求的语法,请参阅“概述”和“编辑器”。如果应在联机模式下输入变
量,则以前必须停用监视。通过“附加功能”或上下文菜单中的“监控 aktiv”命令,您可以在
激活和停用之间切换。
在监视和配方管理器中使用输入助手的注意事项:
输入助手的非结构化视图提供了用于选择监视变量的附加过滤功能:在“筛选器”输入字段中,您可以输入
一个字符串,并另外指定是否必须在变量名称的开头(前缀)、变量名称的末尾(后缀)或变量名称中的
任意位置找到此字符串,以获取可供选择的监视变量。
使用配方
监视列表的变量可以预设为常量值。在表格编辑器中,这可以通过列配方值来实现,在1-Window-Editor
中,可以通过“:=”进行赋值。然后观察列表可以用作所谓的“食谱”。
例:
PLC_PRG。定时器:=50
这里的变量PLC_PRG。TIMER 预设为 50。
对于数组、结构或功能块 实例类型的变量,请注意以下几点:必须显式输入特定元素或实例变量,
以便能够使用值预设它们。示例:假设结构 STRU 由组件 a、b、c 定义,并在程序 PLC_PRG 中
声明结构变量 struvar。为了预设 a、b、c 的值,必须在监视列表中输入以下内容:
PLC_PRG.struvar.a:=<value>
PLC_PRG.struvar.b:=<value>
PLC_PRG.struvar.c:=<value>
相应地,必须对数组的元素进行预设:ARRAY[0...6] 类型的数组变量arr_var示例
6-60 CoDeSysV2.3版本
6 - 资源
'插入''新观察列表'
短键:<Alt>+<X>+<N>
此命令将当前在 POU 编辑器中选择的变量插入到新的监视列表中。此列表将自动创建名称为
“Watch<n>”,其中 n 是以 0 开头的运行数字,并以名称唯一的方式使用。
此外,对于此命令也是如此,例如“附加功能”、“添加到监视列表”。
'Insert''插入监视变量'
此命令仅在监视列表的表格编辑器视图中可用。它在列表的最顶部位置插入一个新行,并在“name”列中
打开一个编辑字段,以便通过输入助手(请参阅创建监视列表、食谱中的注释)或键入来输入新的监视变
量。
'Insert''附加监视变量'
此命令仅在监视列表的表格编辑器视图中可用。它会在列表末尾附加一个新行,并在“name”列中打开一
个编辑字段,以便通过输入助手(请参阅创建监视列表、食谱中的注释)或键入来输入新的监视变量。
“删除监视变量”
此命令仅在监视列表的表格编辑器视图中可用。它删除当前聚焦的线,并对应于使用 <Del> 键。
'额外服务''添加到查看列表'
快捷键:<Alt>+<X>+<W>
在项目的 POU 编辑器中,您可以直接将变量添加到监视列表中。
当在编辑器中选择一个或多个变量或元素时,可以通过命令“添加到监视列表”(“附加”菜单或上下文菜
单)将它们直接添加到现有监视列表之一。无需为此停用监控。
• 在窗口右侧的 ST 和 IL 编辑器中,可以选择单个变量。在左侧部分,可以选择多行,以便
将所有包含的变量添加到监视列表中。
• 在 SFC 编辑器中,您可以选择多个连续的元素,以便将所有包含的变量添加到监视列表
中。
• 在 GVL 和 POU 的声明部分中,只能选择特定变量。
CoDeSysV2.3版本 6-61
手表和食谱经理
“额外内容”“进入新的观察列表”
快捷键:<Alt>+<X>+<N>
此命令将当前在 POU 编辑器中选择的变量插入到新的监视列表中。此列表将自动创建名称为
“Watch<n>”,其中 n 是以 0 开头的运行数字,并以名称唯一的方式使用。
此外,对于此命令也是如此,例如“附加功能”、“添加到监视列表”。
“插入地址范围”
可以在监视列表的“名称”列中输入标准格式的地址,而不是变量名称。
该命令允许一次性将定义地址范围的所有地址插入监视列表。为此,将打开一个对话框,您可以在其中指
定起始地址和地址数。例如,如果定义 name=“%MW0” 和 number=“10”,则地址 %MW0 到 %MW9
将插入到监视列表中。
“附加功能”“重命名监视列表”
仅当打开监视和配方管理器的 1-Window-Editor 视图时,此命令才可用(取决于目标!它将打开一个对话
框,用于指定新的监视列表名称。
注意:如果使用表格视图,则可以通过命令“Project”“Object”“Rename”在对象管理器中重命名监视列表。
'额外内容''保存观察列表'
使用此命令,您可以保存监视列表。将打开用于保存文件的对话框。文件名预设为监视列表的名称,并指
定扩展名为“*.wtc”。
保存的监视列表可以使用“附加”“加载监视列表”再次加载。
例如,这允许管理同一组变量的各种“配方”,这些变量可以根据需要加载到 PLC。
'Extras''加载观察列表'
使用此命令,您可以重新加载已保存的监视列表,例如,将某个配方重新加载到编辑器中,以便将其写入
PLC。将打开用于打开文件的对话框。选择扩展名为“*.wtc”的所需文件。在显示的对话框中,您可以为
监视列表指定一个新名称。文件名是预设的,没有扩展名。
使用“附加功能”“保存观察列表”,您可以保存监视列表。
“额外”“监视活动”
快捷键:<Alt>+<X>+<M>
此命令关闭监视和配方管理器中值的显示。如果激活了监控,菜单前面会出现一个复选(ü)
item.'Extras ''编写食谱'
在监视和配方管理器的在线模式下使用此命令,您可以将预设值(配方值)写入变量中。
注意:该命令仅涉及该监视列表的值,该列表当前在监视和配方管理器中选择!
6-62 CoDeSysV2.3版本
6 - 资源
6.8.3 在线模式下的观察和食谱管理器
在线模式下的监视列表“标准”,表格编辑器视图
在线模式下的观察和配方管理器,1-窗口编辑器视图
变量值的显示格式(二进制、十六进制、十进制)主要取决于在项目选项、类别编辑器中完成的预设,但
可以通过上下文菜单中的“十六进制”、“二进制”和“十进制”命令为每个特定变量进行更改 。
结构化值(数组、结构或功能块实例)在标识符前面用加号或减号标记。通过用鼠标单击加号或按
<Enter>,变量特定分量的显示将展开或折叠。
如果在监视列表中标记了功能块变量,则关联的上下文菜单将另外包含命令“缩放”和“打开实例”。
还可以通过各种机制在在线模式下添加新的监视变量。关于此,请参阅:创建观察列表,食谱。
'额外内容''阅读食谱'
使用该命令,在 观察和配方管理器的在线模式下,您可以将变量的预设(请参阅离线模式)替换为变量
的当前值。
CoDeSysV2.3版本 6-63
采样跟踪
例:
PLC_PRG。计数器 [:=<现值>]=<现值>
注意: 该命令仅涉及该监视列表的值,该列表当前在监视-
和食谱管理器!
在1-Window-Editor中,通过鼠标单击指定的变量值,您还可以打开相应的对话框以输入应强制或写入的
值。
6.9 采样跟踪
6.9.1 概述和配置
如果在目标设置(类别“常规”)中激活了示例跟踪,则该跟踪将作为 CoDeSys 资源中的对象提供。它
可用于跟踪变量值在一定时间内的进程。这些值写入环形缓冲区(跟踪缓冲区)中。如果内存已满,则内
存开头的“最旧”值将被覆盖。最多可以同时跟踪 20 个变量。每个变量最多可以跟踪 500 个值。
由于 PLC 中跟踪缓冲区的大小具有固定值,因此在变量非常多或非常宽(DWORD)的情况下,可以跟
踪的值少于 500 个。
示例:如果跟踪 10 个 WORD 变量,并且 PLC 中的存储器 度为 5000 字节,则对于每个变量,可以跟
踪 250 个值。
为了能够执行跟踪,请在 参考资料中打开采样跟踪的对象
在对象管理器中注册卡。创建并加载适当的跟踪配置并定义要跟踪的变量。(参 '附加功能'、'跟踪配置'
和'选择要显示的变量的选择')。
请注意:如果使用任务配置来控制程序,则跟踪功能是指调试任务。
'Extras''跟踪配置'
使用此命令,您将看到一个对话框,用于输入要跟踪的变量,以及采样跟踪的各种跟踪参数。也可以通过
双击“采样跟踪”对话框的灰色区域来打开该对话框。
6-64 CoDeSysV2.3版本
6 - 资源
跟踪配置对话框
首先定义跟踪配置的名称(跟踪名称)。一旦您确认并关闭配置对话框,此名称将添加到“跟踪”窗口右上
角的选择列表“跟踪”中,然后单击“确定”。
要跟踪的变量列表最初是空的。为了追加变量,必须在列表下的字段中输入变量。在此之后,您可以使
用“插入”按钮或 <Enter> 将变量追加到列表中。您还可以使用输入助手(帮助管理器)。可以使用枚举
变量。
A 您选择变量,然后按“删除”按钮时,将从列表中删除该变量。
布尔变量或模拟变量(也是枚举变量)可以输入到触发变量字段中。
可以在此处使用输入帮助。触发变量
描述跟踪的终止条件。
CoDeSysV2.3版本 6-65
采样跟踪
触发位置用于设置在触发事件发生之前将记录的测量值的百分比。例如,如果在此处输入 25,则在触发
事件之前显示 25% 的测量值,在触发事件之后显示 75%,然后终止跟踪。
“ 采样率 ” 字段用于设置两次记录之间的时间段(以毫秒为单位),如果目标系统支持,则以微秒为单
位。默认值“0”表示每个周期一个扫描程序。
选择调用记录值的模式(记录):使用单次时,定义样本的数量显示一次。使用连续时,每次都会重新开
始读取定义数量的测量值的记录。例如,如果您输入数字“35”,则第一个显示屏包含第一个测量值 1 到
35,然后将自动读取接下来的 35 个测量值(36-70)的记录,依此类推。手动选择用于读取跟踪记录,
特别是“附加”“读取跟踪”。
调用模式的功能与触发变量是否设置无关。如果未设置触发变量,则跟踪缓冲区将填充定义数量的测量
值,并在调用时读取和显示缓冲区内容。
“保存”按钮用于存储已在文件中创建的跟踪配置。为此,将打开标准窗口“文件另存为”。
可以使用“加载”按钮检索存储的跟踪配置。为此,将打开标准窗口“文件打开”。
注意:请注意,配置对话框中的“保存并加载”仅与配置相关,与跟踪记录的值无关(与菜单命令“附加”、“保存跟踪
值”、“保存值”和“.”相反”。加载值')。
选择要显示的变量
组合框位于右侧,位于用于显示曲线的窗口旁边,跟踪配置中定义的跟踪变量。如果从列表中选择变量,
则在读取跟踪缓冲区后,该变量将以相应的颜色显示(Var0、绿色等)。如果已经显示曲线,也可以选
择变量。
在跟踪窗口中最多可以同时观察到八个变量。
6.9.2 生成跟踪采样
'额外''开始跟踪'
象征:
使用此命令,迹线配置将传输到 PLC,并在 PLC 中启动迹线采样。
'额外''读取跟踪'
象征:
使用此命令,从 PLC 读取当前跟踪缓冲区,并显示所选变量的值。
使用此菜单的命令将跟踪(配置 + 跟踪值)保存或重新加载到文件中,或者从文件加载跟踪,将跟踪从
控制器加载到项目,或将特定跟踪设置为应在项目中使用的跟踪。
注意:使用菜单“附加”“保存跟踪值”(项目格式,*.trc-Datei,ASCII)的命令来考虑存储和重新加载跟踪的替代方
法!
6-66 CoDeSysV2.3版本
6 - 资源
'额外''自动读取'
使用此命令,从PLC自动读取当前的跟踪缓冲区,并连续显示值。如果自动读取跟踪缓冲区,则在菜单项
之前有一个复选(ü)。
'额外''停止跟踪'
象征:
此命令停止 PLC 中的采样跟踪。
6.9.3 查看采样轨迹
不同变量的采样轨迹
跟踪窗口的状态指示器(第一行)指示跟踪缓冲区是否已满以及跟踪何时完成。
Y 轴上刻有相应数据类型的值。缩放的布局方式允许最低值和最高值适合查看区域。在此示例中,Var0
的最小值为 6,最高值为 100:因此在左边缘设置了刻度。
如果满足触发要求,则在触发要求出现之前和之后的值之间的界面处显示一条垂直虚线。
'附加''光标模式'
在监控区域中设置光标的最简单方法是用鼠标左键单击该光标。光标随即出现,可通过鼠标移动。在监视
窗口的顶部,将显示光标的当前 x 位置。在“Var0”、“Var1”、“...”、“Varn”旁边的字段中,显示了相
应变量的值。
另一种方法是命令“附加”“光标模式”。使用此命令,采样跟踪中将出现两条垂直线。首先,他们一个接
一个地躺着。其中一条线可以通过箭头键向右或向左移动。通过按 <Ctrl>+<左>或<Ctrl>+<右>,移动速
CoDeSysV2.3版本 6-67
采样跟踪
度可以提高 10 倍。
'Extras''多频道'
使用此命令,您可以在采样迹线的单通道和多通道显示之间切换。在多通道显示的情况下,菜单项前面有
一个检查( )。
多通道显示已预设。在这里,显示窗口被划分为多达八条显示曲线。对于每条曲线,最大值和最小值都显
示在边缘。
在单通道显示中,所有曲线都以相同的比例因子显示并叠加。这在显示曲线异常时很有用。
'附加功能''显示网格'
使用此命令,您可以在图形窗口中打开和关闭网格。当网格打开时,菜单项旁边会出现一个复选( )。
“附加功能”和缩放
使用此命令,您可以在迹线显示中更改曲线的预设 Y 缩放比例。通过双击曲线,您还将看到“Y 缩放”对
话框。
只要激活了“自动”选项,就会使用默认缩放,这取决于所用变量的类型。如果是枚举变量,枚举值将按
比例显示。要更改缩放比例,请停用选项 “ 自动 ” 并在 y 轴上输入相应曲线(通道)的数量和新的最大
值(最大 y 刻度)和新的最小值(最小 y 刻度)。
通道和前一个值是预设的。
用于设置 Y 刻度的对话框
'额外''伸展'
象征:
使用此命令,您可以拉伸(缩放)显示的采样跟踪的值。起始位置由水平图像调整条设置。随着一个接一
个的重复拉伸,窗口中显示的跟踪部分的大小将越来越小。
此命令与“Extras”、“Compress”相对应。
'额外''压缩'
象征:
使用此命令,为采样迹线显示的值将被压缩;也就是说,在此命令之后,您可以查看跟踪变量在更大时间
范围内的进展。可以多次执行该命令。
此命令与“Extras”、“Stretch”相对应。
6-68 CoDeSysV2.3版本
6 - 资源
6.9.4'Extras''保存跟踪值'
使用此菜单的命令将跟踪(配置 + 值)保存到文件,或者将它们从文件重新加载到项目中。除此之外,
跟踪可以保存在 ASCII 格式的文件中。
注意: 使用菜单“附加”“外部跟踪配置”(XML格式,*.mon文件)的命令来考虑存储和重新加载跟踪的替代方法!
“保存值”
使用此命令,您可以保存采样跟踪(值 + 配置数据)。将打开用于保存文件的对话框。文件名的扩展名
为“*.trc”。
请注意,此处保存跟踪的值以及跟踪配置,而配置对话框中的“保存跟踪”仅涉及配置数据。
保存的采样跟踪可以使用“附加”“加载跟踪”再次加载。
“负载值”
使用此命令,可以重新加载保存的采样跟踪(跟踪值 + 配置数据)。将打开用于打开文件的对话框。选
择扩展名为“*.trc”的所需文件。
使用“附加”、“保存值”,您可以保存采样轨迹。
“ASCII 文件中的跟踪”
使用此命令,您可以将采样跟踪保存在 ASCII 文件中。将打开用于保存文件的对话框。文件名的扩展名
为“*.txt”。这些值根据以下方案存放在文件中:
CODESYS 跟踪 D:
\CODESYS\PROJECTS\TRAFFICSIGNAL.PRO 周
期PLC_PRG。计数器PLC_PRG。轻1
021
121
221
.....
如果在迹线配置中未设置频率扫描,则周期位于第一列中;这意味着在任何给定时间,每个周期都记录了
一个值。在其他方面,此处的条目表示自运行采样跟踪以来保存变量值的时间点(以毫秒为单位)。
在后续列中,将保存跟踪变量的相应值。在任何给定时间,这些值都由空格分隔。
根据
序列(PLC_PRG.计数器,PLC_PRG。光1)。
6.9.5'Extras''外部跟踪配置'
“保存到文件”
使用此命令,可以将跟踪(配置 + 值)保存在 XML 格式的文件中。为此,将打开用于保存文件的标准对
话框。将自动使用文件扩展名 *.mon。
CoDeSysV2.3版本 6-69
工作
“从文件加载”
使用此命令,可以将跟踪(配置 + 值)加载到项目中,该跟踪以 XML 格式(*.mon)的文件提供。打开
文件的对话框将打开,您可以浏览扩展名为 *.mon 的文件。加载的跟踪将显示并添加到配置对话框中“跟
踪”字段的选择列表中。如果要将其设置为当前使用的项目跟踪配置,请使用命令
“设置为项目配置”。
A 以使用命令“保存到文件”创建 *.mon 文件。
注意:使用菜单“附加”“保存跟踪值”的命令来考虑保存跟踪的替代方法。
“保存到目标”
在联机模式下使用此命令,可以将跟踪配置(以 XML 格式(*.mon)的文件形式提供)加载到控制器(
目标)中。
打开文件的标准对话框将可用,默认情况下将显示扩展名为 *.mon 的文件。考虑到将跟踪配置保存在
*.mon 文件(XML 格式)“保存到文件”中的可能性。
Смотритетакже: '从目标加载'
“从目标加载”
使用此命令,可以将当前在控制器(目标)上使用的跟踪(配置 + 值)加载到 CoDeSys 项目中。它将显
示在跟踪窗口中,并且可以设置为活动项目跟踪配置。
“设置为项目配置”
使用此命令,可以将当前在可用跟踪列表中选择的跟踪配置(跟踪窗口中的“跟踪”字段)设置为项目中的
活动配置。除了当前使用(顶部位置)之外,选择列表提供了通过命令“从文件加载”从 *.mon 文件加载
到项目的所有跟踪(例如,用于查看)。
6.10 工作区
“资源”选项卡中的此对象提供了当前设置的项目选项的图像(请参 第 4.2 章“项目选项”)。如果你打开
它,你会得到一个“选项”对话框,其中包含已知的类别。
6.11 参数管理器
参数管理器是 CoDeSys 编程系统的特定目标组件,必须在目标设置中激活。( 第 6.11.1 章)。
什么是参数?
在此上下文中,参数为:
CoDeSysIEC项目的流程变量
与工艺无关的参数
特定系统参数,由目标系统功能块实例或结构变量、数组预定
6-70 CoDeSysV2.3版本
6 - 资源
义
每个参数都由一组特定的属性标识,例如“默认值”、“访问权限”,尤其是由唯一的访问键(“索引”、“子
索引”、“名称”)标识,该键可用于从/向参数列表读取或写入数据。这种数据交换可以通过通信服务完
成,不需要知道变量的任何地址或提供任何额外的功能。因此,使用参数管理器功能是使用网络变量的替
代方法。
什么是参数列表?
参数列表用于组织参数,可以与项目一起保存并加载到本地目标系统,该系统由相应的IEC程序控制。对
于每种类型的参数,都有相应类型的参数列表。
每个参数条目都由参数列表中的一行表示。列表的每一列都表示一个参数属性。除了一组特定的标准属性
外,制造商特定的属性也可用于参数管理器中的参数描述。
这取决于目标特定描述文件中
的定义,哪些属性(列)在参数管理器中可 和可编辑,以及它们在参数列
表中的排列方式。如果缺少描述文件,则将显示完整的标准属性集,每个属性都显示默认值。
CoDeSys 中的参数管理器编辑器
除了项目变量和项目常量的列表外,参数管理器还可以处理系统参数的列表。这些是目标系统给出的参
数。此外,您可以为功能块实例或结构变量创建列表,这些列表基于同样 在参数管理器中创建的用户定
义模板。
由于数据独立于IEC程序存储,因此可以使用参数列表来保存“配方”,即使程序被另一个版本替换,这些
配方也会保留。此外,在运行中的PLC可以“喂食”不同的配方,而无需重新下载程序。
注意:根据目标系统,在创建启动项目时是否会考虑参数管理器。
6.11.1 概述,激活
必须在“目标设置”的“类别网络”功能中激活参数管理器
( 第 6.12 章)。
此外,在目标设置对话框中,必须定义参数和变量类型的参数列表中条目的索引和子索引范围,如果目标
支持,则必须定义映射(对于CAN设备PDO)。
这取决于目标系统,这些选项对用户来说是否可 或可编辑。
CoDeSysV2.3版本 6-71
参数管理器
在目标设置对话框中激活参数管理器
6.11.2 参数管理器编辑器,概述
在“资源”选项卡中,选择对象“Parameter-Manager”。将打开一个编辑器窗口,您可以在其中创建、编辑
和存储参数列表,在在线模式下还可以将它们加载到目标系统并监控当前参数值。
编辑器窗口是二分窗口。左侧部分用于导航,它显示了当前加载到参数管理器的所有参数列表的列表。右
侧部分包含一个表编辑器,其中的列以属性名称为标题。
在导航窗口中,您可以插入、删除、重新排列或重命名不同类型的参数列表(变量、常量参数、模板、实
例、系统参数)。
在表编辑器中,您可以使用参数条目填充列表。每种列表类型都会显示一个特殊的属性列选择,这些属性
列可以编辑或可 。这要么由特定于目标的描述文件定义,要么将采用默认设置。
您可以通过按<F6>在导航窗口和表格编辑器之间跳转。
CoDeSys 中的参数管理器编辑器
在联机模式下,您可以将之前创建的列表加载到当前连接的目标系统。您还可以使用参数管理器功能在那
里访问它们,以便与其他系统进行数据交换(写入值、上传)。在“参数管理器”窗口中,您可以监视参数
的当前值。如果当前未建立在线连接,则只需在本地创建参数列表并将其与项目一起保存即可。
6-72 CoDeSysV2.3版本
6 - 资源
6.11.3 参数列表类型和属性
参数管理器可以处理以下参数列表类型:
变量:此类型的参数列表中的条目表示项目的过程变量。
参数:此类型的参数列表中的条目表示进程未附加其值的参数。
系统参数:
此类型的参数列表中的条目表示未由进程附加的数据,这些数据由目标系统确定。系统参数列
表无法删除或重命名。
模板:模板不包含可直接访问以进行数据交换的参数条目。事实上,这些条目为功能块或结构的组件提供
了“基本属性配置”。因此,模板可以在“Instance”类型的参数列表中使用。
实例:
此类型的参数列表中的条目表示属于功能块或结构类型的变量的参数条目,即哪些是实例或结构变
量。为了便于输入参数,我们使用了模板,该模板之前也在参数管理器中创建过。
映射:仅当目标系统支持此列表类型时,此列表类型才可用。这些条目表示用于CAN设备的PDO映射的
过程变量。因此,映射列表基本上是变量列表,但它们在单独的索引/子索引范围内工作。此范围必须在
目标设置中定义,类别为网络功能!在这种情况下,在PLC配置中配置的CAN设备将仅使用列表类型“映
射”的条目,否则变量或实例列表的所有条目都将在PDO映射对话框中可用。
每种列表类型都将根据
a 格式的描述文件。如果缺少此类文件,将使用默认设置。
实例和模板
一个实例“参数列表...
。处理参数条目,这些条目表示功能块、 结构变量或数组。
功能块或结构的实例列表都基于一个模板,该模板也将在参数管理器中为相应的功能块或结构定义。数组
的实例列表不能使用在参数管理器中创建的模板,而是直接引用项目中使用的数组。
“模板”参数列表...
...
不包含为数据交换而直接访问的参数。事实上,它定义了索引和子索引偏移量,以及表示功能块或结构
组件的参数条目的某些属性。然后,该模板可以在“实例”参数列表中使用( 上文),从而提供了一种为
项目变量创建参数条目的简单方法,这些变量是功能块或结构的实例。
创建模板参数列表:
在基础POU旁边的编辑字段中,输入应为其创建参数模板的功能块或结构的名称。使用输入助手,您可
以浏览项目的可用 POU。按应用在参数列表编辑器中输入所选 POU 的组件。现在编辑属性字段并关闭
列表,使其可在“实例”列表中使用。
CoDeSysV2.3版本 6-73
参数管理器
创建实例参数列表:
从表格下方的选择列表中编辑模板。此列表提供了参数管理器中当前可用于功能块或结构的所有模板,
以及 ARRAY 选项,如果您想直接引用项目中使用的数组,请选择该选项。按“应用”将预定义组件插入
到参数列表表中。
在编辑字段“基本变量”中,准确输入要为其创建参数条目的组件的项目变量(必须是所选模板描述的功能
块或结构或数组的类型)。
有关同步操作选项,请参阅上文:创建模板参数列表。
在上下文菜单或“附加”菜单中插入缺少的条目命令将导致根据所用模板的当前版本更新条目。在删除条
目或修改模板后,这可能很有用。
例:
现在插入一个类型为“Instance”的新参数列表。选择模板“fubo_template”。插入基变量“inst1_fubo”。定义一个基
本索引,例如 16#2300,一个基本子索引 30(您必须考虑在选项卡 Networkfunctionality !的目标设置中定义的范
围。现在按“应用”以显示通过添加基本偏移量和模板定义的偏移量为分量 a、b、c 计算的指数:指数:
16#2301、16#2302、16#2303;子指数:16#23, 16#33,16#43.
6-74 CoDeSysV2.3版本
6 - 资源
基于此自动创建的条目,现在您可以继续编辑参数列表。
6.11.4 管理参数列表
插入列表
快捷方式:Ins
要在“参数管理”中插入新的参数列表,请使用命令“插入列表...”,即“插入”或上下文菜单中的“插入新列
表”。当焦点位于导航树中已存在的条目上时,这些命令可用。将打开“插入列表”对话框。
插入新参数列表的名称(在列表类型中必须是唯一的),然后选择以下列表类型之一:
变量 过程变量的条目
参数 数据条目,其值仍未被进程附加
模板 功能块或结构组件的属性设置模板
实例 基于相应模板的功能块或结构类型的变量的条目( 上文)
系统参数 参数的条目,其值不是由进程附加的,而是由目标系统定义的
CoDeSysV2.3版本 6-75
参数管理器
“插入列表”对话框
确认设置并关闭对话框后,单击“确定”后,新参数列表将在导航窗口中显示为一个条目,该列表类型由
图标指示。在表格编辑器中,相应的属性将显示为列标题。列的选择和顺序由特定于目标的描述文件定
义,否则使用默认设置。现在,您可以通过为每个所需参数输入一行来编辑表格(请参 第 6.11.4 章“编
辑参数列表”)。
重命名列表
当前在导航窗口中标记的参数列表可以使用 “ 附加 ” 菜单或上下文菜单中的 “ 重命名列表 ” 命令进行重命
名。将打开一个编辑字段,当用鼠标双击列表名称时,您也会看到该字段。
剪切/复制/粘贴列表
快捷键: <Ctrl>+<X>, <Ctrl>+<C>, <Ctrl>+<V>,
命令 “ 剪切 ” (编辑菜单)或 “ 剪切列表 ” (上下文菜单)将当前标记的列表从导航窗口移动到临时缓冲
区,以便您可以通过“粘贴”命令将其重新插入导航树中的任何其他位置。在重新插入之前,请标记要插入
的列表。
命令“复制”或“复制列表”也使用临时缓冲区,但将保留原始导航树条目,并通过“粘贴”添加副本。
删除列表
快捷方式:<Del>
当前在导航窗口中选择的列表将被命令“删除”(“编辑”菜单)或“删除列表”(“附加”或上下文菜单)删
除。
请注意:在在线模式下,此命令将删除运行时系统中的相应列表。
6.11.5 编辑参数列表
显示哪些列(属性):
当前标记的参数列表(导航窗口)将显示在表格窗口中,该窗口由目标特定描述文件或默认设置定义。
这意味着每个特定参数的属性值将显示在单独的行中
根据特定于列表类型的顺序和列的选择。
6-76 CoDeSysV2.3版本
6 - 资源
当光标指向列表列标题栏的任何字段时,您可以通过在上下文菜单中停用/激活列来淡出和淡出列。
要修改列,请在列标题字段之间移动分隔线,或者在将光标放在列标题字段上时使用上下文菜单中可用的
命令之一:命令标准列宽度将为所有列设置标准宽度,使它们在窗口中全部可 。 最大化宽度将更改当
前聚焦列的宽度,以便完全显示每个条目。
用于编辑参数列表条目的命令
以下用于编辑参数列表的命令可在上下文菜单或菜单“插入”或“附加”中找到:
插入/删除行:
插入行或 将在该条目(行)之前插入一个新条目(行),其中
换行 光标当前已放置。
后一行 将在该条目(行)之后插入一个新条目(行),其中
后的新行 光标当前已放置。.
快捷键:<Ctrl><Enter>
删除行 光标当前所在的行将被删除。
快捷键:<Shift>+<Del>
剪切、复制、粘贴行 这些命令可用于移动(剪切/粘贴)或复制(复制/粘贴)所选
行。
编辑属性值:
如果插入参数条目的新行,则属性字段将自动填充特定于目标的默认值。有关可能的属性,请参 第
6.11.3 章“参数列表类型和属性”。要输入或编辑属性值,请单击相应的字段。如果属性是可编辑的,则
将打开一个编辑字段。输入助手(<F2>)将在应输入 CoDeSys 项目组件的字段中可用。
按<Enter>关闭该条目。
使用箭头键跳转到另一个字段。
按<Del>删除当前编辑字段的条目。
要在“十进制”和“十六进制”之间切换输入格式,请使用“附加”菜单中的“格式化十进制/十六进制 ”命令。
按<F6>将焦点设置到导航窗口(并返回)。
选项:
在编辑器窗口中的表格下方,可以激活以下选项(可用性取决于列表类型):
使用程序下载:在程序下载时,列表将自动下载到控制器。
对参数列表进行排序
参数列表中的条目序列可以按照属性值的升序或降序对属性(列)进行排序。这适用于离线和在线模式。
在包含所需属性的列标题的字段上执行鼠标单击。因此,表格行将被重新排序,并在属性的列标题字段中
CoDeSysV2.3版本 6-77
参数管理器
6.11.6 在线模式下的参数管理器
编辑器和控制单元之间的列表传输
如果目标支持,则在联机模式下,可以在编辑器中创建的参数列表下载到 resp。 从运行时系统上传。此
外,您可以将单个参数值写入运行时系统。“变量”和“参数”类型的列表的最大大小也由目标系统定义。
请注意:登录时将自动下载所有参数列表,并激活“加载项目”选项!
每个参数的当前值在附加列中进行监控,该列以在线模式显示在参数管理器中:
“Extras”菜单中提供了以下命令,用于处理编辑器和控制器之间的列表传输:
写入默认值在“Default”列中定义的值将写入运行时系统中的参数列表。
接管值当前值将从运行时系统读取并上传到“值”列。
启动项目中的参数列表
这取决于目标系统,在创建启动项目时是否考虑参数列表。
6-78 CoDeSysV2.3版本
6 - 资源
6.11.7 参数列表的导出/导入
'Extras''导出'
“Extras”菜单的“Export”命令可用于将参数管理器的列表导出到 XML 文件。例如,可以使用 CoDeSys
参数管理器中的导入功能将此文件导入到另一个项目。将打开用于保存文件的标准对话框,文件扩展名
*.prm 将被预设。参数管理器中可用的所有列表都将写入导出文件。
参数管理器的内容也可以使用常规项目导出功能(“项目导出”)导出。
'Extras''导入'
“Extras”菜单的“Import”命令可用于导入描述参数列表的XML文件。例如,可以使用 CoDeSys 参数管理
器中的导出功能创建此文件。
如果导入文件包含一个列表,其名称已在“参数管理器”中使用,则将打开一个对话框,询问用户是否应覆
盖现有列表。
6.12 目标设置
“ 目标设置 ” 是 “ 资源 ” 的对象。在这里,您可以定义哪个目标应用于项目以及如何配置它。如果以
“Project”“New”启动新项目,将打开一个对话框,其中必须设置目标,这意味着必须为目标设置预定
义配置。
可用目标的列表取决于计算机上安装的目标支持包(TSP)。它们描述了特定于平台的基本配置,并定义
了用户可以在 CoDeSysTarget 设置对话框中修改配置的程度。
请注意:如果没有可用的 TSP,则目标系统选择框中将仅提供“无”设置。这将自动切换到模拟模式,并且无法进行
任何配置设置。
目标支持包
在开始之前,必须借助安装程序 InstallTarget(可能是CoDeSys-Setup的一部分)安装目标支持包(
TSP)。
目标支持包(TSP)包含使用在CoDeSys中创建的程序控制标准平台所需的所有文件和配置信息。必须
配置的内容:代码生成器、存储器布局、PLC 功能、I/O 模块。此外,还必须链接库、网关驱动程序、用
于错误消息的 ini 文件和 PLC 浏览器。TSP 的核心组件是一个或多个Target 文件。目标文件定向到配置
目标所需的文件。多个目标文件可能共享这些附加文件。
Target 文件的默认扩展名为*.trg,格式为二进制。附加定义附加到目标文件中的条目,这些条目确定用
户是否可以查看和编辑CoDeSys对话框中的设置。
使用 TSP 安装的文件在启动CoDeSys时读取。在CoDeSys对话框中完成的目标设置将与项目一起保
存。
请注意:如果您使用新的目标文件或更改了现有目标文件,则必须重新启动CoDeSys才能读取更新的版本。
CoDeSysV2.3版本 6-79
PLC浏览器
对话框目标设置
创建新项目时,“目标设置”对话框将自动打开。也可以通过在对象管理器的“资源”中选择“目标设置”菜
单项来打开它。
选择“配置”中提供的目标配置之一。
如果未安装目标支持包,则只能选择“无”,这意味着在模拟模式下工作。如果选择已安装的配置之一,
则取决于目标文件中的条目,在CoDeSys对话框中自定义此配置的可能性。如果选择目标配置,而计算
机上不存在有效的许可证,则CoDeSys会要求您选择另一个目标。
如果选择了相应目标文件中的条目“HideSettings”提供的配置,则只能看到配置的名称。否则,有五个对
话框可用于修改给定的配置:
1. 目标平台
2. 内存布局
3. 总则
4. 网络功能
5. 可视化
注意:请注意,每次修改预定义的目标配置都可能导致目标的性能和行为发生严重变化!
如果要将目标设置重置为目标文件给出的标准配置,请按<默认>。
6.13PLC浏览器
PLC-Browser
是一个基于文本的控制监视器(终端)。从控制器请求特定信息的命令在输入行中输入,并
以字符串形式发送到控制器。返回的响应字符串显示在浏览器的结果窗口中。此功能用于诊断和调试目
的。
可用于设置目标系统的命令由CoDeSys标准集以及控制器制造商的可能扩展集组成。它们在ini文件中进
行管理,并在运行时系统中相应地实现。
6.13.1 关于PLC浏览器操作的一般说明
在“资源”选项卡控件中选择“PLC-Browser”条目。如果在当前目标设置(类别网络功能)中激活它,它将
在那里可用。
6-80 CoDeSysV2.3版本
6 - 资源
CoDeSysPLC 浏览器窗口
浏览器由一个命令行和一个结果/显示窗口组成。
在选择框中,输入行显示自项目开始以来输入的所有命令的列表(输入历史记录)。在项目关闭之前,可
以重新选择它们。只有与现有命令不同的命令才会添加到列表中。
输入的命令通过<Enter>发送到控制器。如果没有联机连接,则命令将以与发送到控制器相同的方式显示
在结果窗口中,否则将显示来自控制器的响应。如果向控制器发送新命令,则会删除结果窗口的内容。
命令可以以命令字符串的形式输入,也可以使用宏:
6.13.2PLC浏览器中的命令条目
基本上,PLC-Browser提供了在运行时系统中硬编码的3S标准命令。它涉及用于直接内存操作、项目和
状态函数输出以及运行时监控的函数。它们在浏览器的ini 文件中进行了描述,该文件是 Target 支持包的
组成部分。这些标准命令可以由专用命令进一步补充,例如自诊断功能或控制应用程序的其他状态消息。
命令列表的扩展既可以在运行时系统的客户界面中执行,也可以通过浏览器 ini 文件中的附加条目执行。
打开项目时, PLC-Browser中可用的命令列表是根据Browserini文件中的条目生成的。可以使用...在“插
入标准命令”对话框中或使用 <F2> 键。此外,命令“插入”、“标准命令”可用于获取命令列表。可以在
命令行中手动键入命令,也可以通过双击相应的条目从列表中选择该命令。
一般命令语法为:
<KEYWORD><EMPTY><与关键字相关的参数>
关键字是命令。可以使用哪些参数进行扩展,在条目帮助窗口中的相应工具提示中进行了描述。
已发送的命令在输出数据窗口中重复,控制器的响应出现在其下方。
示例:使用命令“pid”从控制器请求项目ID
命令行中的条目:
皮德
CoDeSysV2.3版本 6-81
PLC浏览器
结果窗口中的输出:
pid 项目ID:16#0025CFDA
命令 描述
? 运行时系统提供可用命令的列表。该列表与目标系统的描述文件的状态无关。
内存 内存区域的十六进制转储语法 1:mem<起始地址><结束地址>地址可以输入
十进制、十六进制(前缀 16#)或宏。
反映 反映当前命令行,用于测试目的。
即插即用 读取和显示数据指针表。
PPT格式 读取并显示 POU 表。
PID的 读取并显示项目 ID。
品夫 读取并显示项目信息(参 “项目”、“项目信息”)。
啧啧 显示IEC任务列表,包括项目中定义的任务信息。
startprg(启动PRG) 启动PLC程序(“在线”,“开始”)。
停止PRG 停止 PLC 程序(“在线”、“停止”)。
重置PRG 重置PLC程序。仅初始化非保留数据。(“在线”、“重置”)。
重置PRGCOLDresetprgcold
冷重置PLC程序。保留数据也会被初始化。('在线', '重置(冷)')。
重置PRGorg 重置PLC程序原件。当前应用程序以及所有数据(包括保留和持久)都将被删除。('在
线', '重置(原点)')。
重新加载 重新加载启动项目。
getprgprop 读取和显示程序属性(名称、标题、版本作者、日期)。
获取prgstat 读取和显示程序状态(例如“运行”、“停止”、上次错误、标志)。
文件目录 文件命令“dir”。PLC 目录中的文件列表。
文件复制 将文件 [from][to] 复制。示例:“filecopyfilename.txtfilename2.txt”。
文件重命名 重命名 PLC 上的文件 [旧][新]。示例:filerenameoldname.txtnewname.txt”。
文件删除 删除PLC上的文件;示例:“filedeletefile.xml”。
保存保留 保存保留变量。之后将显示保存文件的名称。
恢复保留 加载保留变量。将显示从中恢复变量值的保存文件的名称。
6-82 CoDeSysV2.3版本
6 - 资源
命令 描述
设置PWD 在控制器上设置密码;语法:setpwd<password>[level],例如“setpwdabcde0”。
<level>可以是“0”(默认值),仅对编程系统的登录有效,也可以是“1”对所有应用
程序有效。
德尔普WD 删除PLC上的密码。
请注意:
输入的命令序列的第一个单词被解释为关键字(<KEYWORD>)。
如果控制器无法识别命令条目的第一个单词,则结果窗口中将出现响应“未找到关键字”。
6.13.3 在PLC-Browser的命令输入中使用宏
如果在命令行中输入与宏关联的命令,则在将其发送到控制器之前,该命令会展开。然后,结果窗口中的
响应以类似的展开形式显示。
条目语法为:<KEYWORD><macro>
<KEYWORD> 是命令。
宏包括:
例:
6.13.4 其他PLC浏览器选项
在“附加”菜单或PLC浏览器的工具栏中,有以下命令用于处理命令条目或历史记录列表:有
CoDeSysV2.3版本 6-83
工具
向前和向后历史记录, 您可以向前和向后滚动浏览已执行的查询结果。历史记录将持续到您离开项目为
止。
使用“取消”命令 您可以中断已启动的查询。
使用“保存历史记录列表”,可以将在此之前执行的查询结果保存在外部文本文件中。将出现“将文件另存
为”对话框,您可以在其中输入扩展名为“.bhl”(浏览器历史记录列表)的文件名。命令“打印最后一个”
命令将打开要打印的标准对话框。可以打印当前查询以及消息窗口中的输出数据。
6.14 工具
如果为当前设置的目标系统启用了该功能,则对象“工具”将在“资源”选项卡中可用。它显示了外部工具
可执行文件的所有可用快捷方式(连接),可以通过双击激活这些外部工具,以便从CoDeSys中调用这
些外部程序。它由目标文件定义,允许使用哪些快捷方式以及有多少个快捷方式。根据此定义,用户可以
在“工具”文件夹中添加或删除新的快捷方式。
例如,对象管理器中的“工具”文件夹可能如下所示:
在此示例中,安装了四个工具快捷方式。一个用于启动另一个CoDeSys编程系统,一个用于在文本编辑
器中打开汇编程序列表,另外两个快捷方式可用于打开 PDF 文件。标有 “<R>” 的快捷方式无法在
CoDeSys 中修改。快捷方式可能包含与编辑器(例如notepad.exe)或某个 PDF 文件的连接,因此双击
该条目将打开一个记事本窗口,分别显示汇编程序列表,然后打开显示 PDF 文件的 AcrobatReader。
此外,您可以定义某些文件,这些文件应在激活快捷方式后立即下载到 PLC。
6.14.1 可用工具快捷方式的属性(对象属性)
通过鼠标单击管理器“资源”选项卡中“工具”条目处的加号,将打开可用快捷方式列表。如果您刚刚开始
设置一个新项目,您将只看到那些在目标文件中定义为修复条目的项目。但是,如果“工具”文件夹已被修
改,您可能会发现另一个快捷方式,由用户在 CoDeSys 中添加。
6-84 CoDeSysV2.3版本
6 - 资源
“工具属性”对话框
您可以查看全局工具属性(对“工具”中列出的所有快捷方式有效)以及单个快捷方式的属性。
1. 工具特性:
如果在资源树中标记了“工具”,您将在上下文菜单或菜单“项目”“对象”中找到“对象属性”命令,这将打
开“工具属性”对话框。
在那里,您将获得一个表格,其中列出了可能用于当前设置目标的所有工具快捷方式。将显示以下参数:
工具的ID(唯一标识号)、用于在对象管理器中引用快捷方式的快捷方式的名称以及工具的可执行文件的
名称。“高级”按钮 可展开对话框,并关闭对话框的扩展名:
展开的对话框显示目标文件中定义的快捷方式的全局属性。此外,还有一个编辑字段,可以在其中定义一
个(工作)目录,该目录应该用于可执行文件的操作。按下“应用”按钮后,路径将被保存,而不会关闭对
话框 。
该工具的属性:
固定计数 工具的快捷方式数,这些快捷方式不可更改地自动插入到“工具”文件夹中。仅当在此
处输入“0”时,用户才能根据需要创建任意数量的快捷方式。
请注意:对于目标文件定义为“修复”快捷方式的快捷方式,“工具”文件夹中的可能
使用次数是预先确定的,并且 CoDeSys 用户无法修改属性(可通过对象管理器中
的“<R>”识别)。
前任名称: 工具的可执行文件的文件名或完整路径。在这里,您还可以输入指向exe文件的注册表
路径:“[注册表路径].<此路径中指向exe文件的注册表项>如果没有条目,则”参数模板“
中给出的文件的文件扩展名将自动通过Windows启动相应工具的exe文件。
示例:“C:\programme\notapad.exe”、“345.pdf”
DefaultDisplayName: 名称,用于表示对象管理器中的工具。可能使用了模板 $(INSTANCE
NUMBER)(参 下面的“参数模板”)。
参数模板: 用于确定工具应打开的文件的模板。可以使用以下模板,通过适当的特殊字符连接:
$(PROJECT_NAME)当前打开的项目的名称(不带扩展名的文件名 *.pro“)。
$(PROJECT_PATH)项目文件所在目录的路径(不指示驱动器)。
CoDeSysV2.3版本 6-85
工具
$(PROJECT_DRIVE)驱动器当前打开的项目所在的位置。
$(COMPILE_DIR)编译项目的目录(包括驱动器的指示) $(
TOOL_EXE_NAME)工具的 exe 文件的名称。
$(DISPLAY_NAME)当前快捷方式的名称,在“工具”文件夹中使用。$(
INSTANCE_NUMBER)快捷方式的编号(实例编号、运行编号,以“1”开头)
$(CODESYS_EXE_DIR)目录的路径 Codesysexe-file 所在(包括驱动器的指
示)。
您将在快捷方式属性对话框中看到的模板转换( 下文)
例:
“$(PROJECT_NAME)_$(INSTANCE_NUMBER).cfg”
将在工具中打开名为<当前 CoDeSys 项目名称>_<快捷方式编号>.cfg)的
cfg 文件。
例:
“a.up;$(PROJECT_NAME).zaw;$(INSTANCE_NUMBER).upp”
文件a.up、<currentCoDeSysProjekt>.pro和<shortcutnumber>.upp)将在下次下载
时复制到PLC
2. 快捷方式属性:
在对象管理器的“工具”树中标记快捷方式条目,然后在上下文菜单或“项目”“对象”菜单中选择命令“对象
属性”。将打开“快捷方式属性”对话框,其中包含以下项目:
参数工具应调用的文件的路径。这是在目标文件中定义的,如果“可编辑”选项( 下文)已被激活,则可以在此
处进行编辑。
主要文件,您可以在此处找到由目标文件定义的文件名,这些 文件名也在工具属性(DownloadFileTemplate,
上文)中描述。如果在扩展对话框中激活了“可编辑”选项( 下文),则可以修改列表。为此,按“新建”按钮打
开“文件名”对话框,您可以在其中输入另一个文件或文件路径。如果您输入一个没有路径的文件,那么它将在该
目录中搜索 codesys-exe-file.按钮 删除将删除当前标记的列表条目。
“ 标 准 按 钮 ” 将对话框的条目重置为目标文件定义的默认值。
按钮“应用”保存完成的设置,而不关闭属性对话框。
“高级按钮”将展开对话框,使其如下所示:
6-86 CoDeSysV2.3版本
6 - 资源
快捷方式的“高级属性”对话框
工具 ID: 工具的唯一标识号;在目标文件中定义。
默认快捷方式数: 工具的快捷方式(实例)数。对应于目标文件中定义的“FixedCount”。请参阅上文的工具
属性。
编辑: 如果激活此选项,则可以编辑“参数”字段或应下载的文件列表。
按钮确定 应用完成的设置并关闭“属性”对话框。
6.14.2 管理工具快捷方式
创建新的工具快捷方式
在对象管理器的资源树中选择条目“工具”或快捷方式条目,然后在上下文菜单或“项目”“对象”菜单中选
择命令“添加对象”以打开“创建快捷方式”对话框, 请参 下文。
下表列出了可以为其创建新快捷方式(连接)的所有工具。根据目标文件中的定义,将显示以下参数:工
具的ID、快捷方式的默认名称和可执行文件的名称。
要为提供的工具之一创建(其他)快捷方式,请在“ID”列中单击鼠标来选择此工具。因此,您可以在编辑
字段“快捷方式的名称”中修改快捷方式的默认名称,然后单击“确定”进行确认。仅当您输入尚未使用的
名称时,这才有效。
CoDeSysV2.3版本 6-87
工具
“创建快捷方式”对话框
“确定”关闭对话框,新的快捷方式将插入到“资源”树中,由快捷方式名称和快捷方式编号表示,该快捷
方式编号比此工具实例使用的最高数字高 1。
在名称字段下方的区域中,将显示有关用户输入的相应提示。
删除工具快捷方式
删除快捷方式可以通过上下文菜单(鼠标右键)或“项目”“对象”菜单中的“删除”命令来完成。仅当没有
为当前标记的快捷方式定义固定数量的快捷方式时,该命令才可用。如果删除快捷方式,其余快捷方式的
快捷方式编号不会更改。
执行工具快捷方式
双击资源树中的条目或通过“项目”、“对象”菜单或上下文菜单中的“打开对象”命令(鼠标右键)将执行
快捷方式。
如果在快捷方式属性(Parameter)中定义的文件的执行失败,则会出现相应的错误消息。如果找不到参
数文件,则将执行该工具的 exe 文件并打开一个对话框,询问您是否应创建该文件。
保存工具快捷方式
保存 CoDeSys 项目时,资源树中“工具”文件夹的状态和设置也会被保存。
请注意:如果使用新名称通过“另存为”保存项目,则在参数文件和要下载的文件的定义中使用模板 $(
PROJECT_NAME)时,必须考虑以下事项:如果在旧项目中添加了工具的快捷方式(FixedCount=0),然后,在
新项目中,必须手动重新修改与新项目名称相对应的文件名。相反,对于使用固定数量的快捷方式定义的工具,模板
将始终自动替换为当前项目名称!
6.14.3 关于工具的常 问题
为什么我在“资源”中没有“工具”条目?
只有当它在当前设置的目标系统的目标文件中定义时,“工具”功能才可用。
6-88 CoDeSysV2.3版本
6 - 资源
双击加号,打开对象管理器的“资源”树中的“工具”文件夹。您将看到当前项目已连接哪些工具。如果您
刚刚设置了一个新项目,但尚未在“工具”列表中工作,则只会显示这些条目,这些条目由目标文件中的定
义不可更改地预定义。否则,您可能会看到已项目专 修改的工具列表。要检查列表是否可由新条目扩
展,请选择命令“添加对象”。您将看到一个对话框,其中包含可以为其创建其他快捷方式的所有工具。
可用工具具有哪些全局属性?
在对象管理器中标记条目“工具”,然后从上下文菜单(鼠标右键)中选择命令“对象属性”。按“高级”按钮
展开出现的对话框。现在,您将看到可用工具和相应参数的列表。通过鼠标单击ID符号选择其中一个工
具,以便-例如-在“FixedCount”字段中显示工具允许的快捷方式数量,或者显示如果快捷方式被激活,哪
些文件将被下载到PLC。文件名或路径可能以模板的形式显示,这些模板将针对每个快捷方式进行解释,
如以下段落所述:
哪些属性具有可用的快捷方式?
在对象管理器中标记“工具”下面的条目之一,然后在上下文菜单(鼠标右键)中选择命令“对象属性”。按“
高级”按钮获取所选快捷方式的参数。在某种程度上,它们将与上述全局工具属性相对应。如果目标文件
中的定义允许,您可以在此处编辑这些参数。
如何为工具创建快捷方式?
在对象管理器中标记条目“工具”,然后从上下文菜单(鼠标右键)中选择命令“添加对象”。您将看到可用
工具的列表,但仅限于尚未达到最大快捷方式数(FixedCount)的工具。选择一个工具,然后按OK。现
在,该工具将插入到对象管理器的“工具”文件夹中。如果要再次插入它,则必须先输入不同的工具名称,
这意味着将新条目标记为同一工具的另一个实例。例如,您可以将工具 Toolxy 的实例命名为
“Toolxy_1”、“Toolxy_2”等。
如何修改工具的参数?
要修改快捷方式(工具连接实例)的参数,请在对象管理器中标记快捷方式,然后从上下文菜单中选择 命
令“对象属性”。这取决于工具在目标文件中的预定义,是否可以在属性对话框中编辑参数。(在展开的对
话框中查看“可编辑”选项是否被激活。按钮“标准”将所有编辑的值重置为默认值。
如何执行工具快捷方式?
双击对象管理器中的快捷方式条目,或在上下文菜单中选择命令“打开对象”,或者在对象管理器中标记该
条目时,在“项目”菜单中选择命令。
CoDeSysV2.3版本 6-89
工具
6-90 CoDeSysV2.3版本
7 - 弹性网卡
7 弹性网卡
7.1.1 什么是弹性网卡
ENI(“工程接口”)允许将 CoDeSys 编程系统连接到外部数据库。在那里,可以存储创建自动化项目期
间所需的数据。使用外部数据库保证了数据的一致性,然后可以由多个用户、项目和程序共享。此外,它
还通过实现以下项目来扩展 CoDeSys 功能:
CoDeSys项目和关联资源(共享对象)的版本控制:如果对象已从数据库中检出、修改并再次检入,则
将在数据库中创建该对象的新版本,但旧版本也将保留,并且可以根据需要再次调用。对于每个对象和整
个项目,将记录版本历史记录。可以检查两个版本的差异。
多用户操作:一组用户可以访问对象样本的最新版本,例如项目的 POU。然后,其中一个用户当前检出
的对象将被标记为“正在工作”,并且其他用户无法编辑。因此,多个用户可以在同一个项目上并行工作,
而不会冒着相互覆盖版本的 险。
7.1.2 使用弹性网卡项目数据库的前提条件
请注意:有关 3S–SmartSoftwareSolutionsGmbH 提供的ENI 服务器的安装和使用指南,请参阅单独的服务器
文档或在线帮助。在那里,您还可以找到快速入 指南。
还要考虑使用 ENIExplorer的可能性,它允许独立于当前使用的数据库系统执行数据库操作。
ENI 服务器(ENIServerSuite)必须在本地或远程计算机上安装并启动。需要许可证才能使用已随服务
器 一 起 安 装 的 标 准 数 据 库 驱 动 程 序 之 一 运 行 它 。 只 有 本 地 文 件 系 统 的 驱 动 程 序 可 以 与 非 许 可 的ENI
Server 版本一起使用。
在 ENIServer服务控制工具( ENIControl)中,必须正确配置与所需数据库的连接(数据库)。在安装
过程中,系统会自动要求您执行此操作,但您可以稍后在 ENIControl 中修改设置。
CoDeSysV2.3版本 7-1
工具
对象对数据库类别的当前分配显示在“对象属性”中,并且可以在此处进行修改。
可以在项目数据库的选项对话框(“项目”、“选项”、“项目源代码管理”)中修改数据库类别的属性(通
信参数、访问权限、签入/签出行为)。
7.1.4 与项目数据库有关的对象类别
CoDeSys 项目有四类与项目源代码管理相关的对象:
弹性网卡区分了在项目数据库中管理的三类对象(“弹性网卡对象类别”):项目对象、共享对象、编译文
件。
“本地”类别,如果对象不应存储在数据库中,则该对象将被分配到该类别。这意味着它将按照已知的方式
处理,用于没有任何源代码管理的项目。
因此,在编程系统中,可以将 CoDeSys 对象分配给“项目对象”、“共享对象”或“本地”类别之一;“编译文
件”尚未作为项目中的对象存在。将对象分配给其中一个类别是在创建对象时自动完成的,因为这是在项
目选项对话框“项目源代码管理”中定义的,或者通过命令“项目”“数据库链接”“定义”或“多个定义”显式
定义,但可以随时在“对象属性”对话框中进行修改。
每个 ENI 对象类别都将在“项目源代码管理”的设置中单独配置,这些设置是项目选项(“项目”、“选项
”)的一部分。这意味着每个类别都定义了自己的参数,用于与数据库(目录、端口、访问权限、用户访
问数据等)的通信,以及调用最新版本、签出和签入的行为。然后,这些设置将对属于该类别的所有对象
有效。因此,您必须分别登录每个数据库类别;这将通过“登录”对话框完成。
7-2 CoDeSysV2.3版本
7 - 弹性网卡
建议为数据库中的每个对象类别创建一个单独的文件夹,但也可以将所有对象存储在同一个文件夹中。(
“category”是对象的属性,而不是文件夹的属性。
项目对象: 包含项目特定源信息的对象,例如POU
在多用户操作中共享。命令“获取所有最新
versions' 会自动从数据中调用此类别的所有对象
以当地项目为基础;即使是那些,到目前为止还没有出现过。
共享对象: 非特定于项目的对象,例如通常
用于多个项目。
注意:“获取所有最新版本”命令只会复制这些
此类别的对象从项目文件夹复制到本地项目,其中
已经是项目的一部分!
编译文件: 编译由 CoDeSys 创建的信息(例如符号文件),用于
当前项目,其他程序也可能需要。示例:外部可视化可能不仅需要项目
变量,以及分配的地址。后者在项目编译之前不会为人所知。
或者,CoDeSys 项目的任何对象都可以从项目源代码管理中排除,并且可以分配给“本地”类别,这意味
着它们只是像往常一样与项目一起存储,而没有任何源代码控制的项目。
CoDeSysV2.3版本 7-3
工具
7-4 CoDeSysV2.3版本
8 -DDE 接口
8DDE 接口
DDE 与 CoDeSys 的通信
CoDeSys有一个用于读取数据的 DDE(动态数据交换)接口。CoDeSys使用此接口为其他应用程序提
供其他应用程序,这些应用程序也使用 DDE 接口,其中包含控制变量和 IEC 地址的内容
8.1CoDeSys编程系统的DDE接口...
激活 DDE 接口
一旦 PLC(或仿真)登录,DDE 接口就会激活。
数据的一般方法
DDE 查询可分为三个部分:
1. 程序名称(此处为: CoDeSys)、
2. 文件名和
3. 要读取的变量名称。
程序名称:CoDeSys
文件名:完整的项目路径(c:\example\example.pro)。
变量名称:变量在 Watch-andRecipeManager 中显示的名称。
可以读取哪些变量?
所有地址和变量都是可读的。变量或地址应以观察和配方管理器中使用的格式输入
例子:
使用 WORD 链接变量
为了在 MicrosoftWORD 中通过 DDE 接口从 POUPLC_PRG获取变量 TEST 的当前值,必须在 WORD
中插入一个字段(例如,日期)('Insert'“Field”)。现在,当您用鼠标右键单击字段并选择命令“切换字
段代码”时,您可以更改所选文本的字段功能。在我们的示例中,如下所示:
CoDeSysV2.3版本 8-1
DDE 与 GatewayDDE 服务器通信...
使用 EXCEL 链接变量
必须先在 MicrosoftEXCEL 中输入以下内容,然后才能将变量分配给单元格。
=CODESYS|'C:\CODESYS\PROJECT\IFMBSP。亲'!PLC_PRG。测试'
当您单击“编辑”然后单击“链接”时,此链接的结果将是:
类型:CODESYS
源文件: C:\CODESYS\PROJECT\IFMBSP.PRO
元素:PLC_PRG。测试
使用 Intouch 访问变量
与您的项目链接一个 DDE 访问名称 <AccessName>应用程序名称 CODESYS 和 DDE 主题名称 C:
\CODESYS\PROJECT\IFMBSP.PRO.
现在,您可以将 DDE 类型变量与访问名称 <AccessName> 相关联。输入变量的名称作为项目名称(例
如,PLC_PRG.测试)。
在GatewayDDE 服务器启动时,将打开一个窗口,您可以在其中完成启动和通信参数的配置。可以调用
已有的配置文件,也可以重新设置参数。
GatewayDDE 服务器的启动对话框
使 用 命 令“File”“Open”,您可以调用一个已经存在的文件,该文件存储了一组配置参数。将打开用于
选择文件的标准对话框,并提供扩展名为“.cfg”的可用文件。如果选择了配置文件,则会显示配置参数和
定义的目标设备
命令“ 文 件 ”“设置”打开对话框“服务器设置”,其中可以设置以下参数:
8-2 CoDeSysV2.3版本
8 -DDE 接口
摩托罗拉字节顺序 使用摩托罗拉字节顺序
检查身份 会检查,符号文件给出的项目ID是否相同
作为存储在 PLC 中的。
更新率[ms] 从 PLC 读取所有符号值的时间间隔。
超时[ms] 所用驱动程序的通信超时。
尝试 通信驱动程序传输数据块的重试次数(不是
所有驱动程序都支持!
要设置与网关的连接,通过命令“在线”“参数”打开“通信参数”对话框。它与您在CoDeSys中使用命令“
在线”、“通信参数”获得的对话框相同。您在此处执行的设置必须与相应的CoDeSys项目中的设置相同。
GatewayDDE 服务器的实际配置可以通过命令“文件”“保存”存储在文件中。将打开用于保存文件的标
准对话框,文件的默认扩展名为 *.cfg。
要使网关处于活动模式,请通过命令“Online”“Login”登录。(届时状态栏中的网关符号将变亮。登录
时,将建立所需的连接,并且可以访问可用的符号。这些一定是之前在CoDeSys项目中创建的!
要注销,请使用命令“在线注销”。
数据的一般方法
DDE 查询可分为三个部分:
1. 程序名称
2. 文件名
3. 要读取的变量名称
程序名称:GatewayDDEServer
文件名:应从中读取变量的项目名称(例如 example.pro)。
变量名称:变量在 Watch-andRecipeManager 中显示的名称。
可以读取哪些变量?
可以读取所有变量。变量应以观察和配方管理器中使用的格式输入。注意直接地址无法读取!
例子:
CoDeSysV2.3版本 8-3
DDE 与 GatewayDDE 服务器通信...
使用 WORD 链接变量
在 WORD 中激活查询之前,请启动 GatewayDDEServer。
为了在 MicrosoftWORD 中通过 DDE 接口从 POUPLC_PRG获取变量 TEST 的当前值,必须在 WORD
中插入一个字段(例如,日期)('Insert'“Field”)。现在,当您用鼠标右键单击字段并选择命令“切换字
段代码”时,您可以更改所选文本的字段功能。在我们的示例中,如下所示:
使用 EXCEL 链接变量
在 EXCEL 中激活查询之前,请启动 GatewayDDEServer。
必须先在 MicrosoftEXCEL 中输入以下内容,然后才能将变量分配给单元格。
=GATEWAYDDESERVER|<文件名>!<variablename>
例:
=GATEWAYDDESERVER|'bsp.pro'!PLC_PRG。测试'
当您单击“编辑”然后单击“链接”时,此链接的结果将是:
类型:CODESYS
源文件: C:\CODESYS\PROJECT\IFMBSP.PRO
元素:PLC_PRG。测试
GatewayDDEServer 的命令行选项
如果 GatewayDDE 服务器是通过命令行启动的,则可以附加以下选项:
/n 启动时不会自动显示信息对话框
/s 显示对话框窗口/s=h 否/s=i
最小化(图标)/s=m
最大化 /s=n 正常
/o 使用所选配置联机(自动加载或由“/c=”定义)
例:
命令行:
网关right/s=i/c=“D:\DDE\conf_1.cfg”
GatewayDDE 服务器将启动,对话窗口将显示为图标,存储在文件 conf_1.cfg 中的配置将被加载。
8-4 CoDeSysV2.3版本
9 -CoDeSys 中的许可证管理
9CoDeSys 中的许可证管理
9.1 许可证管理器
3S 许可证管理器可用于在计算机上处理 3S 模块的许可证,以及为其提供相应许可证信息文件的模块的
许可证。在CoDeSys中,您可以创建一个项目并将其作为许可库提供。许可管理器将自动与任何需要许
可证的 3S 模块一起安装。
另请参阅:
随 3S 许可管理器提供的单独文档
在 CoDeSys 中创建许可库,第 9.1.1 章。
对话框:编辑许可信息
常 :
名称:输入库模块的名称,用于在3S 许可管理器中表示该模块。此输入是必需的。
CoDeSysV2.3版本 9-1
许可证管理器
供应商 ID:99990101000000+00'00'制造商标识符,具体取决于制造商特定的许可管理工具。
演示模式:如 果 模 块 应 在 演 示 模 式 下 可 用 , 则 激 活 此 选 项 , 这 意 味 着 无 需 任 何 许 可 证ID。输入“演示许
可证”到期的天数。天数将自动四舍五入到下一个可以被十整除的数字(10、20、30...如果模块可以不受
时间限制地使用,请输入“无限制”(在选择列表中可用)。
目标:在此处输入许可证应有效的目标系统的目标 ID。多个输入必须用逗号或分号分隔。可以插入多个
ID,用分号分隔,或作为范围。示例:“12;15-19;21 英寸
联系:
通过电话获得许可:/通过邮件获得许可:在此处插入许可证提供商的电话号码或电子邮件地址。这些输
入是必需的。
可选信息:
在右侧窗口中,您可以输入引用左侧窗口中当前标记的项目的文本:描述、制造商、供应商、定价信息
请注意:
1.使用密码保护已提供许可信息的库是合理的。如果您要在没有密码的情况下保存项目,您将被一个消
息框指向它。
2.3S库的许可信息与库一起存储在库内部,一旦库被纳入项目,就会自动注册到电脑上。但是,非 3S
提供的模块的许可证信息必须以兼容的 XML 格式在单独的描述文件中提供,该文件可由 3S 许可管理器
读取。为此,另请参阅 3SLicensingManager 上的单独文档。
9-2 CoDeSysV2.3版本
10 - 附录
10 附录
附录 A:IEC 运算符和其他规范扩展功能
CoDeSys支持所有IEC运营商。与标准函数(参 附录D,标准库)相比,这些运算符在整个项目中被隐
式识别。除了IEC运算符外,CoDeSys还支持以下标准未规定的运算符:INDEXOF和SIZEOF(参 算
术运算符)、ADR和BITADR(参 地址运算符)。
注意:在使用浮点变量的操作中,结果取决于当前使用的目标系统!
算术运算符
位字符串运算符
位移运算符
选择运算符
比较运算符
地址运算符
呼叫运营商
类型转换
数字运算符
10.1 算术运算符...
加
添加以下类型的变量:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、
REAL 和 LREAL。
两个 TIME 变量可以(例如, 也 是 添加 一起 导致 在 另一个 时间
t#45s+t#50s=t#1m35s)
IL 中的示例:
LD 7 添 加 2,4,7 ST Var1
ST中的示例:
变 量 1 : = 7+2+4+7;
FBD 中的示例:
CoDeSysV2.3版本 10-1
附录 A: -IEC 运算符和附加规范扩展功能
穆尔
类型变量的乘法:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、
UDINT、REAL 和 LREAL。
IL 中的示例:
LD 7 MUL 2,4,7 ST Var1
ST中的示例:
变 量 1 : = 7*2*4*7;
FBD 中的示例:
子
从另一种类型中减去一个变量:BYTE、WORD、DWORD、SINT、USINT、INT、
UINT、DINT、UDINT、REAL 和 LREAL。
也可以从另一个 TIME 变量中减去一个 TIME 变量,从而得到第三个 TIME 类型变量。请注意,负 TIME
值是未定义的。
IL 中的示例:
LD 7 SUB 2 ST Var1
ST中的示例:
变 量 1 : = 7-2;
FBD 中的示例:
DIV公司
将一个变量除以另一种类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、
DINT、UDINT、REAL 和 LREAL。
IL 中的示例:
LD8DIV2STVar1 (* 结果为 4*)
ST中的示例:
变 量 1 : = 8/2;
FBD 中的示例:
10-2 CoDeSysV2.3版本
附录 A: -IEC 运算符和附加规范扩展功能
注意:请注意,不同的目标系统在除以零时的行为可能不同!
除数:实数;
END_VAR
如果除数 =0,则 CheckDivReal:=1;
还
CheckDivReal:=除法;
END_IF;
运算符 DIV 使用函数 CheckDivReal 的输出作为除数。在如下例所示的程序中,这避免了除以 0,除数(
d)设置为 0 到 1。所以除法的结果是 799。
程序PLC_PRG
VAR erg : REAL; v1 : 真 实 : =799; d : 真 实 ;END_VAR erg : = v1/d;
国防部
一个变量的模除以另一种类型: BYTE 、 WORD 、 DWORD 、 SINT 、 USINT 、 INT 、 UINT 、 DINT 、
UDINT。此函数的结果将是除法的余数。此结果将是一个整数。
IL 中的示例:
LD9MOD2STVar1 (* 结果为 1*)
ST中的示例:
var1 : = 9 MOD 2;
FBD 中的示例:
移动
将一个变量赋值给另一个适当类型的变量。由于 MOVE 在图形编辑器 LD、CFC 中以框的形式提供,因
此(解锁)EN/EN0 功能也可以应用于变量分配。然而,在FBD编辑器中,这是不可能的。
CoDeSysV2.3版本 10-3
附录 A: -IEC 运算符和附加规范扩展功能
IL 中的示例:
LD 伊瓦尔1
移动
STivar2 (* 结果:ivar2 获取 ivar1 的赋值 *)
(!你得到的结果与以下结果相同:
LDivar1STivar2 )
ST中的示例:
ivar2 := 移动(ivar1);
(!你得到相同的结果: ivar2 :=ivar1; )
索引的
此功能未由标准 IEC61131-3 规定。
执行此功能可查找 POU 的内部索引。
ST中的示例:
var1 := 索引(POU2);
大小的
此功能未由标准 IEC61131-3 规定。
执行此函数以确定给定变量所需的字节数。
IL 中的示例:
arr1 : ARRAY[0..4] 的 INT;Var1 INT LD arr1
大小的
STVar1 (* 结果为 10*)
ST中的示例:
var1 := 大小(arr1);
10.2 位字符串运算符...
和
位操作数的按位 AND。操作数的类型应为 BOOL、BYTE、WORD 或 DWORD。
IL 中的示例:
Var1 字节 LD2#1001_0011 和 2#1000_1010STVar1(* 结果为 2#1000_0010*)
ST中的示例:
var1 :=2#1001_0011 和2#1000_1010
FBD 中的示例:
10-4 CoDeSysV2.3版本
附录 A: -IEC 运算符和附加规范扩展功能
或
位操作数的按位 OR。操作数的类型应为 BOOL、BYTE、WORD 或 DWORD。
IL 中的示例:
var1 :字节;
LD2#1001_0011 或 2#1000_1010STvar1 (* 结果为 2#1001_1011*)
ST中的示例:
变量 1 :=2#1001_0011 或2#1000_1010
FBD 中的示例:
异或
位操作数的按位异或。操作数的类型应为 BOOL、BYTE、WORD 或 DWORD。
注意:以扩展形式看待 XOR 函数的行为,这意味着如果有 2 个以上的输入。输入将成对检查,然后再次成对比较特
定结果(这符合标准,但可能不是用户期望的)。
IL 中的示例:
Var1 :字节;LD2#1001_0011XOR2#1000_1010STVar1 (* 结果为 2#0001_1001*)
ST中的示例:
变量 1 :=2#1001_0011 异或2#1000_1010
FBD 中的示例:
CoDeSysV2.3版本 10-5
附录 A: -IEC 运算符和附加规范扩展功能
不
按位 NOT 位操作数。操作数的类型应为 BOOL、BYTE、WORD 或 DWORD。
IL 中的示例:
Var1 :字节;LD2#1001_0011 不是 STVar1 (* 结果是 2#0110_1100*)
ST中的示例:
Var1 := 不是2#1001_0011
FBD 中的示例:
10.3 位移算子...
注意: 请注意,算术运算的位数由输入变量!的数据类型来假设。如果输入变量是常量,则考虑最小的可能数
据类型。输出变量的数据类型对算术运算完全没有影响。
SHL公司
操作数的按位左移:erg:=SHL (in, n)
in 向左移动 n 位。如果 n>数据类型宽度,则对于 BYTE,WORD 和 DWORD 将填充零。但是,如果使
用有符号数据类型,例如INT,那么在这种情况下将执行算术移位,这意味着它将被最顶层位的值填充。
ST中的示例:
程序shl_stVARin_byte : BYTE:=16#45;in_word:字:=16#45;erg_byte:字节;erg_word : WORD;n:字节:=2;END_VARerg_byte:
=SHL(in_byte,n);(* 结果为 16#14*) erg_word:=SHL(in_word,n);(* 结果是 16#01141*)
FBD 中的示例:
IL 中的示例:
接 线 端 子 LD 16#45 SHL 2 ST erg_byte
10-6 CoDeSysV2.3版本
附录 A: -IEC 运算符和附加规范扩展功能
SHR(英语:SHR)
操作数的按位右移:erg:=SHR (in, n)
in 向右移动了 n 位。如果 n>数据类型宽度,则对于 BYTE,WORD 和 DWORD 将填充零。但是,如果
使用有符号数据类型,例如 INT,那么在这种情况下将执行算术移位,这意味着它将被最顶层位的值填
充。
请参阅以下十六进制表示法的示例,以注意根据输入变量类型(BYTE 或 WORD)进行算术运算的结
果。
ST中的示例:
程序shr_stVARin_byte : BYTE:=16#45;in_word:字:=16#45;erg_byte:字节;erg_word : WORD;n:字节:
=2;END_VARerg_byte:=SHR(in_byte,n);(* 结果为 11*) erg_word:=SHR(in_word,n);(* 结果是 0011*)
FBD 中的示例:
IL 中的示例:
LD 16#45 SHR 2 ST erg_byte
ROL的
操作数向左按位旋转:erg:=ROL (in, n)
erg、in 和 n 的类型应为 BYTE、WORD 或 DWORD。in 将向左移动一个位位置 n 次,而最左边的位将
从右侧重新插入。
在以下示例中,尽管输入变量 in_byte 和 in_word 的值相同,但根据输入变量(BYTE 或 WORD)的数
据类型,erg_byte 和 erg_word 会得到不同的结果。
ST中的示例:
程序rol_stVARin_byte : BYTE:=16#45;in_word:成为:=16#45;erg_byte:字节;erg_word :成为;n:字节:
=2;END_VARerg_byte:=角色(in_byte,n);(* 结果为 16#15*) erg_word:=ROLE(in_word,n);(*结果是
16#0114*)
FBD 中的示例:
IL 中的示例:
LD 16#45
ROL 2 ST
CoDeSysV2.3版本 10-7
附录 A: -IEC 运算符和附加规范扩展功能
erg_byte
罗尔
操作数向右按位旋转:erg=ROR (in, n)
erg、in 和 n 的类型应为 BYTE、WORD 或 DWORD。in 将向右移动一个位位置 n 次,而最左边的位将
从左侧重新插入。
在以下示例中,尽管输入变量 in_byte 和 in_word 的值相同,但根据输入变量(BYTE 或 WORD)的数
据类型,erg_byte 和 erg_word 会得到不同的结果。
ST中的示例:
程序ror_stVARin_byte : BYTE:=16#45;in_word:字:=16#45;erg_byte:字节;erg_word : WORD;n:字节:=2;END_VARerg_byte:
=ROR(in_byte,n);(* 结果是 16#51*) erg_word:=ROR(in_word,n);(* 结果是 16#4011*)
FBD 中的示例:
IL 中的示例:
LD 16#45 ROR 2 ST erg_byte
10.4 选择运算符
所有选择操作也可以使用变量执行。为了清楚起 ,我们将示例限制为以下使用常量作为运算符的示例。
SEL公司
二元选择。
OUT :=SEL(G, IN0, IN1)表示:
OUT :=IN0 如果 G=FALSE;OUT :=IN1 如果 G=TRUE。
IL 中的示例:
LDTRUESEL3,4 (*IN0=3, IN1=4
*) STVar1 (* 结果为 4*)
10-8 CoDeSysV2.3版本
附录 A: -IEC 运算符和附加规范扩展功能
ST中的示例:
变量1:=SEL(TRUE,3,4);(* 结果为 4*)
FBD 中的示例:
麦克斯
最大功能。返回两个值中的较大值。
输出:=MAX(IN0, IN1)
IN0、IN1 和 OUT 可以是任何类型的变量。
IL 中的示例:
LD90MAX30MAY40MAX77STVar1 (* 结果为 90*)
ST中的示例:
变量1:=MAX(30,40);(* 结果是 40*)Var1:=MAX(
40,MAX(90,30));(* 结果是 90*)
FBD 中的示例:
最小值
最小功能。返回两个值中的较小值。
输出:=MIN(IN0, IN1)
IN0、IN1 和 OUT 可以是任何类型的变量。
IL 中的示例:
LD90 分钟 30 分钟 40 分钟 77STVar1 (* 结果为 30*)
ST中的示例:
变量1:=分钟(90,30);(* 结果为 30*);Var1:=MIN(
MIN(90,30),40);(* 结果为 30*);
FBD 中的示例:
CoDeSysV2.3版本 10-9
附录 A: -IEC 运算符和附加规范扩展功能
限制
限制
OUT :=LIMIT(Min, IN, Max)表示:
输出:= 最小值(最大值(英寸,最小值),最大值)
Max 是结果的上限,Min 是结果的下限。如果 IN 值超过上限 Max,则 LIMIT 将返回 Max。如果 IN 低于
Min,则结果为 Min。
IN 和 OUT 可以是任何类型的变量。
IL 中的示例:
LD90 限制 30,80STVar1 (* 结果为 80*)
ST中的示例:
变量 1:=限制(30,90,80);(* 结果为 80*);
FBD 中的示例:
多路复用器
复用
OUT :=MUX(K, IN0,...,INn)表示:
输出:= 墨水。
IN0、...、INn 和 OUT 可以是任何类型的变量。K 必须是 BYTE、WORD、DWORD、SINT、USINT、
INT、UINT、DINT 或 UDINT。MUX 从一组值中选择第 K 个值。
IL 中的示例:
LD0MUX30,40,50,60,70,80STVar1 (* 结果为 30*)
ST中的示例:
Var1:=多路复用器(0,30,40,50,60,70,80);(* 结果为 30*);
请注意:在INK以外的输入之前出现的表达式将不会被处理以节省运行时间!只有在模拟模式下,才会执行所有表达
式。
10-10 CoDeSysV2.3版本
附录 A: -IEC 运算符和附加规范扩展功能
10.5 比较运算符...
燃气轮机
大于
一个布尔运算符,当第一个操作数的值大于第二个操作数的值时,该运算符返回值 TRUE。操作数可以是
BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、
DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATE_AND_TIME和字符串。
IL 中的示例:
LD20GT30STVar1 (* 结果为 FALSE*)
ST中的示例:
VAR1 : = 20 > 30 > 40 > 50 > 60 > 70;
FBD 中的示例:
LT系列
小于
一个布尔运算符,当第一个操作数的值小于第二个操作数的值时,该运算符返回值 TRUE。操作数可以是
BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、
UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATE_AND_TIME和字符串。
IL 中的示例:
LD20LT30STVar1 (* 结果为 TRUE*)
ST中的示例:
VAR1 : = 20 < 30;
FBD 中的示例:
乐
小于或等于
一个布尔运算符,当第一个操作数的值小于或等于第二个操作数的值时,该运算符返回值 TRUE。操作数
可以是 BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、
UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATE_AND_TIME和字符串。
IL 中的示例:
LD20LE30STVar1 (* 结果为 TRUE*)
CoDeSysV2.3版本 10-11
附录 A: -IEC 运算符和附加规范扩展功能
ST中的示例:
VAR1 : = 20 <= 30;
FBD 中的示例:
通用电气
大于或等于
一个布尔运算符,当第一个操作数的值大于或等于第二个操作数的值时,该运算符返回值 TRUE。操作数
可以是 BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、
UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATE_AND_TIME和字符串。
IL 中的示例:
LD60GE40STVar1 (* 结果为 TRUE*)
ST中的示例:
VAR1 : = 60 >= 40;
FBD 中的示例:
情商
等于
一个布尔运算符,当操作数相等时返回值 TRUE。操作数可以是
BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、
TIME、DATE、TIME_OF_DAY、DATE_AND_TIME和字符串。
IL 中的示例:
LD40EQ40STVar1 (* 结果为 TRUE*)
ST中的示例:
VAR1 : = 40 = 40;
FBD 中的示例:
东北
不等于
一个 Boolean 运算符,当操作数不相等时返回该值 TRUE。操作数可以
是 BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、
LREAL、TIME、DATE、TIME_OF_DAY、DATE_AND_TIME 和 STRING。
10-12 CoDeSysV2.3版本
附录 A: -IEC 运算符和附加规范扩展功能
IL 中的示例:
LD40NE40STVar1 (* 结果为 FALSE*)
ST中的示例:
VAR1 : = 40 <> 40;
FBD 中的示例:
10.6 地址运算符...
注意:在线更改后,某些地址的数据可能会发生变化。在地址上使用指针时,请注意这一
点。
ADR(美国存托凭证)
标准 IEC61131-3 未规定的地址功能。
ADR 在 DWORD 中返回其参数的地址。此地址可以发送到制造函数以被视为指针,也可以分配给项目中
的指针。
dwVar:=ADR(bVAR);
IL 中的示例:
LD bVar ADR ST dwVar man_fun1
阿德林斯特
地址功能,未由标准IEC61131-3规定。
功能块实例中的 ADRINST 以 DWORD 形式返回实例的地址。然后,可以将此地址发送到函数并在那里
被视为指针,也可以将其分配给项目中的指针。
ST 中的示例(在功能块实例中):
dvar:=阿德林斯特();(* 在变量 dvar 上写入实例的地址 *) fun(a:=ADRINST());(* 给出
实例地址以输入函数 fun 的 a*)
IL 中的示例:
阿德林斯特
ST dvar
阿德林斯特
乐趣
比塔德尔
地址功能,标准IEC61131-3未规定。
BITADR 在 DWORD 中返回段内的位偏移量。请注意,偏移值取决于目标设置中的选项字节寻址是否被
激活。
VAR值
VAR1 在 %IX2.3:BOOL;bitoffset:DWORD;
END_VAR
CoDeSysV2.3版本 10-13
附录 A: -IEC 运算符和附加规范扩展功能
ST中的示例:
位偏移:=BITADR(var1);(* 如果字节寻址=TRUE:19,则为字节寻址=FALSE:35*的结果)
IL 中的示例:
LD变量1
比塔德尔
ST Var2
内容运营商
可以通过在指针标识符后添加内容运算符“^”来取消引用指针。
ST中的示例:
PT:指向 INT 的指针;
var_int1:INT;var_int2:INT;点:=ADR(var_int1);var_int2:=pt^;
10.7 呼叫运营商...
卡尔
调用功能块或程序
在 IL 中使用 CAL 调用功能块实例。将用作输入变量的变量位于功能块实例名称后面的括号中。
例:
从输入变量Par1和Par2分别为 0 和TRUE的功能块调用实例Inst。
10.8 类型转换...
禁止从“较大”类型隐式转换为“较小”类型(例如,从 INT 转换为 BYTE 或从 DINT 转换为 WORD)。如
果要这样做,则需要特殊的类型转换。基本上可以从任何基本类型转换为任何其他基本类型。
语法:
<哎呀。类型1>_TO_<elem。类型2>
请注意...TO_STRING转换中,字符串是左对齐生成的。如果定义为短路,则将从右侧切开。
BOOL_TO转换
从BOOL类型转换为任何其他类型:
对于数字类型,当操作数为 TRUE 时,结果为 1,当操作数为 FALSE 时,结果为 0。
对于 STRING,类型为“TRUE”或“FALSE”。
IL 中的示例:
LDTRUE(*结果为 1*)
BOOL_TO_INT
ST i
10-14 CoDeSysV2.3版本
附录 A: -IEC 运算符和附加规范扩展功能
ST中的示例:
str:=BOOL_TO_STRING(真); (* 结果为“TRUE”*)
FBD 中的示例:
(*结果为 1*)
(*结果为“TRUE”*)
(*结果是 T#1ms*)
(*结果是 TOD#00:00:00.001*)
(*结果为 D#1970-01-01*)
(*结果是 DT#1970-01-01-00:00:01*)
TO_BOOL转换
从另一种变量类型到 BOOL 的转换:
当操作数不等于 0 时,结果为 TRUE。当操作数等于 0 时,结果为 FALSE。
CoDeSysV2.3版本 10-15
附录 A: -IEC 运算符和附加规范扩展功能
LD213 (*结果为真 *)
BYTE_TO_BOOL
STb型
LD 0 INT_TO_BOOL ST b (*结果为FALSE*)
LDT#5毫秒 (*结果为真*)
TIME_TO_BOOL
STb型
FBD 中的示例:
(*结果为真*)
(*结果为FALSE*)
(*结果为真*)
(*结果为真*)
St的例子:
整数类型之间的转换
从整数类型到另一种数字类型的转换:
当您执行从较大类型到较小类型的类型转换时,您可能会丢失某些信息。如果要转换的数字超过范围限
制,则将忽略该数字的第一个字节。
ST中的示例:
硅:=INT_TO_SINT(4223);(* 结果是 127*)
如果将整数 4223(16#107f 以十六进制表示)保存为 SINT 变量,则它将显示为 127(16#7f 以十六进制
表示)。
IL 中的示例:
LD 2 INT_TO_REAL MUL
10-16 CoDeSysV2.3版本
附录 A: -IEC 运算符和附加规范扩展功能
FBD 中的示例:
REAL_TO/LREAL_TO转换
从变量类型 REAL 或 LREAL 转换为其他类型:
该值将向上或向下舍入到最接近的整数,并转换为新的变量类型。变量类型 STRING、BOOL、REAL 和
LREAL 除外。
请注意,在转换为键入 STRING 时,总位数限制为 16。如果(L)REAL-number 有更多数字,则第 16
位将四舍五入。如果将 STRING 的 度定义为 short,则将从右端开始剪切。
当您执行从较大类型到较小类型的类型转换时,您可能会丢失某些信息。
ST中的示例:
i :=REAL_TO_INT(1.5);(* 结果是 2*)
j :=REAL_TO_INT(1.4);(* 结果为 1*)
i :=REAL_TO_INT(-1.5);(* 结果为 -2*)
j :=REAL_TO_INT(-1.4);(* 结果为 -1*)
IL 中的示例:
LD 2.7 REAL_TO_INT GE %MW8
FBD 中的示例:
TIME_TO/TIME_OF_DAY 转换
从变量类型 TIME 或 TIME_OF_DAY 转换为其他类型:
时间将以毫秒为单位存储在 DWORD 内部(对于TIME_OF_DAY变量,从凌晨 12:00 开始)。然后,
此值将被转换。
当您执行从较大类型到较小类型的类型转换时,您可能会丢失某些信息
对于 STRING 类型变量,结果是一个时间常量。
IL 中的示例:
LDT#12ms (*结果为'T#12ms'*)
TIME_TO_STRING
ST公司
ST中的示例:
CoDeSysV2.3版本 10-17
附录 A: -IEC 运算符和附加规范扩展功能
FBD 中的示例:
DATE_TO/DT_TO转换
从变量类型 DATE 或 DATE_AND_TIME转换为其他类型:
自 1970 年 1 月 1 日起,该日期将以秒为单位存储在 DWORD 内部。然后,此值将被转换。
当您执行从较大类型到较小类型的类型转换时,您可能会丢失某些信息
对于 STRING 类型变量,结果是日期常量。
IL 中的示例:
LD DT#1998-02-13-14 : 20 果为“DT#1998-02-13-14:20”*)
DT_TOSTRINGSTstr (* 结
ST中的示例:
str:=DT_TO_STRING(DT#1998-02-13-14:20); (* 结果是“DT#1998-02-13-14:
20”*)
FBD 中的示例:
10-18 CoDeSysV2.3版本
附录 A: -IEC 运算符和附加规范扩展功能
STRING_TO转换
从变量类型 STRING 转换为其他类型:
STRING 类型变量的操作数必须包含在目标变量类型中有效的值,否则结果将为 0。
IL 中的示例:
ST中的示例:
FBD 中的示例:
TRUNC (特伦克)
从 REAL 转换为 INT。将使用该值的整数部分。
当您执行从较大类型到较小类型的类型转换时,您可能会丢失某些信息。
IL 中的示例:
LD 2.7 TRUNC GE %MW8
ST中的示例:
i:=TRUNC(1.9);(* 结果为 1*) i:
=TRUNC(-1.4);(* 结果为 -1*)。
CoDeSysV2.3版本 10-19
附录 A: -IEC 运算符和附加规范扩展功能
10.9 数字运算符...
ABS公司
返回数字的绝对值。ABS(-2)等于 2。
输入和输出变量的以下类型组合是可能的:
在 外
国际 INT、REAL、WORD、DWORD、DINT
真正 真正
字节 INT、REAL、BYTE、WORD、DWORD、DINT
词 INT、REAL、WORD、DWORD、DINT
DWORD 真实、DWORD、DINT
正弦 真正
USINT公司 真正
UINT(英语:UINT)
INT、REAL、WORD、DWORD、DINT、UDINT、UINT
力 真实、DWORD、DINT
乌丁特 REAL、DWORD、DINT、UDINT
IL 中的示例:
LD-2ABSSTi (* 结果为 2*)
ST中的示例:
i:=ABS(-2);
FBD 中的示例:
SQRT的
返回数字的平方根。
IN 可以是类型 BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT,OUT
必须是 REAL 类型。
IL 中的示例:
LD16SQRTSTq (* 结果为 4*)
ST中的示例:
q:=SQRT(16);
FBD 中的示例:
10-20 CoDeSysV2.3版本
附录 A: -IEC 运算符和附加规范扩展功能
在
返回数字的自然对数。
IN 可以是类型 BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT,OUT
必须是 REAL 类型。
IL 中的示例:
LD45LNSTq (* 结果为 3.80666*)
ST中的示例:
q:=LN(45);
FBD 中的示例:
日志
返回以 10 为基数的数字的对数。
IN 可以是类型 BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT,OUT
必须是 REAL 类型。
IL 中的示例:
LD314.5LOGSTq (* 结果为 2.49762*)
ST中的示例:
q:=日志(314.5);
FBD 中的示例:
经验值
返回指数函数。
IN 可以是类型 BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT,OUT
必须是 REAL 类型。
IL 中的示例:
LD2EXPSTq (* 结果为 7.389056099*)
ST中的示例:
q:=EXP(2);
FBD 中的示例:
CoDeSysV2.3版本 10-21
附录 A: -IEC 运算符和附加规范扩展功能
罪
返回数字的正弦值。
输入值 IN 以拱分钟为单位计算。它可以是 BYTE、WORD、DWORD、INT、DINT、
REAL、SINT、USINT、UINT、UDINT。OUT 必须是 REAL 类型。
IL 中的示例:
LD0.5SINSTq (* 结果为 0.479426*)
ST中的示例:
q:=正弦(0.5);
FBD 中的示例:
因为
返回 number 的余弦值。结果以拱分钟为单位计算。
IN 可以是类型 BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT,OUT
必须是类型 TypREAL。
IL 中的示例:
LD0.5COSSTq (* 结果为 0.877583*)
ST中的示例:
q:=COS(0.5);
FBD 中的示例:
鞣
返回数字的正切值。该值以拱分钟为单位计算。IN可以是BYTE类型,
WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT、OUT 必须是 REAL 类型。
IL 中的示例:
LD0.5TANSTq (* 结果为 0.546302*)
ST中的示例:
q:=TAN(0.5);
FBD 中的示例:
10-22 CoDeSysV2.3版本
附录 A: -IEC 运算符和附加规范扩展功能
ASIN公司
返回数字的反正弦(正弦的反函数)。.
IN 可以是类型 BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT,OUT
必须是 REAL 类型。
IL 中的示例:
LD0.5ASINSTq(* 结果为 0.523599*)
ST中的示例:
q:=ASIN(0.5);
FBD 中的示例:
ACOS公司
返回数字的反余弦(余弦的反函数)。该值以拱分钟为单位计算。
IN 可以是类型 BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT,OUT
必须是 REAL 类型。
IL 中的示例:
LD0.5ACOSSTq (* 结果为 1.0472*)
ST中的示例:
q:=ACOS(0.5);
FBD 中的示例:
阿坦
返回数字的反正切值(正切的反函数)。 IN 可以是类型 BYTE 、 WORD 、 DWORD 、 INT 、 DINT 、
REAL、SINT、USINT、UINT、UDINT。结果 OUT 以 arch 分钟为单位计算,并且必须为 REAL 类型。
IL 中的示例:
LD0.5ATANSTq (* 结果为 0.463648*)
ST中的示例:
q:=ATAN(0.5);
FBD 中的示例:
CoDeSysV2.3版本 10-23
附录 A: -IEC 运算符和附加规范扩展功能
经验
一个变量与另一个变量的幂:
输出 =IN1IN2。
IN1 和 IN2 可以是 BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT 的
类型,OUT 必须是 REAL 类型。
IL 中的示例:
LD7EXPT2STvar1 (* 结果为 49*)
ST中的示例:
var1 :=EXPT(7,2);
FBD 中的示例:
10.10 初始化运算符
THIS 运算符
INI 运算符可用于初始化 POU 中使用的功能块实例提供的保留变量。
必须将运算符分配给布尔变量。
语法:<boolvariable> :=INI(<FB-instance, TRUE|错误)
如果算子的第二个参数设置为 TRUE,则将初始化功能块 FB 中定义的所有保留变量。
POU中的声明:
fbinst:fb;b:布尔值;
实现部分:
b :=INI(fbinst, TRUE);ivar:=fbinst.retvar (*=>retvar 被初始化
*)
IL 中的运算符调用示例:
LD fbinst
INI TRUE ST b
FBD 中的算子调用示例:
10-24 CoDeSysV2.3版本
附录 B: -CoDeSys 中的操作数
附录 B:CoDeSys 中的操作数
在 CoDeSys 常量中,变量、地址和可能的函数调用可以显示为操作数。
10.11 常量
BOOL 常量
BOOL 常量是逻辑值 TRUE 和 FALSE。
TIME 常量
可以在CoDeSys 中声明 TIME 常量。这些通常用于操作标准库中的定时器。TIME 常量始终由初始“t”或
“T”(或拼写为“time”或“TIME”)和数字符号“#”组成。
接下来是实际时间声明,可以包括天(用“d”标识)、小时(用“h”标识)、分钟(用“m”标识)、秒(
用“s”标识)和毫秒(用“ms”标识)。请注意,时间条目必须按照 度按此顺序给出(d 在 h 之前在 m
之前在 s 之前在 m 之前在 ms 之前),但您不需要包括所有时间增量。
时 间 1 : = T#14ms;
时 间 1 : = T#100S12ms; (*最高组件可能被允许超过其限制*)
时 间 1 : = t#12h34m15s;
以下情况不正确:
时间1 :=t#5m68s;(*在较低的组件中超出了限制*)
时间1 :=15ms;(*缺少 T#*)
时间1 :=t#4ms13d;(*条目顺序不正确*)
DATE 常量
这些常量可用于输入日期。声明 DATE 常量以“d”、“D”、“DATE”或“date”开头,后跟“#”。然后,您可
以输入格式为“年-月-日”的任何日期。
例子:
日期#1996-05-06
D#1972-03-29
(另请参 第 10.15 章数据类型、时间数据类型)
TIME_OF_DAY常量
使用这种类型的常量来存储一天中的时间。 TIME_OF_DAY 声明以 “tod#” 、 “TOD#” 、
“TIME_OF_DAY#”或“time_of_day#”开头,后跟格式为:Hour:Minute:Second的时间。您可以输入
秒作为实数,也可以输入秒的小数部分。
例子:
TIME_OF_DAY#15:36:30.123
托德#00:00:00
(另请参 第 10.15 章数据类型、时间数据类型)
CoDeSysV2.3版本 10-25
附录 B: -CoDeSys 中的操作数
DATE_AND_TIME常量
日期常量和一天中的时间也可以组合起来形成所谓的DATE_AND_TIME常量。DATE_AND_TIME常量以“dt#”、“DT#”、“date_and_time#”开头。在日期后加上一个连字符,后跟时间。
“DATE_AND_TIME#” 或
例子:
DATE_AND_TIME#1996-05-06-15:36:30
DT#1972-03-29-00:00:00
(另请参 第 10.15 章数据类型、时间数据类型)
数字常量
数字值可以显示为二进制数、八进制数、十进制数和十六进制数。如果整数值不是十进制数,则必须在整
数常量前面写出其基数,后跟数字符号(#)。十六进制数字中的数字 10-15 的值将一如既往地用字鯦
A-F 表示。
您可以在数字中包含下划线字符。
例子:
14 (十进制数)
2#1001_0011 (双号码)
8#67 (八进制数)
16#A(十六进制数)
这些数字值可以来自变量类型 BYTE、WORD、DWORD、SINT、USINT、INT、
UINT、DINT、UDINT、REAL 或 LREAL。
不允许从“较大”变量类型隐式转换为“较小”变量类型。这意味着 DINT 变量不能简单地用作 INT 变量。
必须使用类型转换。
REAL/LREAL 常量
REAL 和 LREAL 常数可以以十进制分数的形式给出,并以指数表示。使用带有小数点的标准美式格式来
执行此操作。
例:
7.4 而不是 7,41.64e+009 而不是
1,64e+009
STRING 常量
字符串是字符序列。STRING 常量前面和后面都用单引号引起来。您也可以输入空格和特殊字符(例如
变音符号)。他们将像所有其他角色一样受到对待。
在字符序列中,美元符号( $ )后跟两个十六进制数字的组合被解释为八位字符代码的十六进制表示形
式。此外,当以美元符号开头的两个字符的组合出现在字符序列中时,将按如下所示进行解释:
$$ 美元符号
$' 单引号
$L或$l 换行
$N或$n 换行
$P或$p 面提要
10-26 CoDeSysV2.3版本
附录 B: -CoDeSys 中的操作数
$R或$r 换行符
$T或$t 标签
例子:
“w1Wüß?”
'艾比和克雷格':-)'
类型化文本
基本上,在使用 IEC 常量时,将使用尽可能小的数据类型。如果必须使用其他数据类型,则可以借助类
型化文本来实现,而无需显式声明常量。为此,将为常量提供一个前缀,用于确定类型。
其编写方式如下:<Type>#<Literal>
<Type>指定所需的数据类型;可能的条目包括:BOOL、SINT、USINT、BYTE、INT、UINT、WORD、
DINT、UDINT、DWORD、REAL、LREAL。键入必须以大写字鯦书写。
<Literal> 指定常量。输入的数据必须符合 <Type> 下指定的数据类型。
例:
var1:=DINT#34;
如果无法在不丢失数据的情况下将常量转换为目标类型,则会发出错误消息:
类型化文本可以在任何可以使用普通常量的地方使用。
10.12 变量
变量可以在 POU 的声明部分或全局变量列表中本地声明。
请注意:在项目中,您可以定义一个与全局变量同名的局部变量。在这种情况下,在 POU 中,将使用本地定义的变
量。但是,不允许以相同的方式命名两个全局变量。例如,如果您在 PLC 配置和全局变量列表中定义了变量
“var1”,您将收到编译器错误。
变量标识符不能包含任何空格或特殊字符,不能多次声明,并且不能与任何关键字相同。无法识别大小
写,这意味着 VAR1、Var1 和 var1 都是相同的变量。下划线字符在标识符中被识别(例如,“A_BCD”
和“AB_CD”被视为两个不同的标识符)。标识符在一行中不能有多个下划线字符。标识符的 度以及其
中有意义的部分是无限的。
变量可以在声明类型允许的任何位置使用。
您可以通过输入助手访问可用变量。
系统标志
系统标志是隐式声明的变量,在每个特定PLC上都不同。要找出系统中可用的系统标志,请使用命令“插
入”“操作数”弹出“输入助手”对话框,选择“系统变量”类别。
CoDeSysV2.3版本 10-27
附录 B: -CoDeSys 中的操作数
可以使用以下语法访问功能块和程序变量:
<functionblockname>.<variablename>
对变量中的位进行寻址
在整数变量中,可以访问单个位。为此,要寻址的位的索引被附加到变量中,并用点分隔。位索引可以由
任何常量给出。索引是从 0 开始的。
请注意:不允许在直接变量中进行 Bitaccess。
例:
a :整数;
b :布尔值;...
a. : = b;
变量 a 的第三位将设置为变量 b 的值。
如果索引大于变量的位宽,则会发出以下错误消息:索引“<n>”超出了变量“<var>”的有效范围!
可以使用以下变量类型进行位寻址:SINT、INT、DINT、USINT、UINT、UDINT、
字节、成为、DWORD。
如果变量类型不允许,则会发出以下错误消息:“直接索引的数据类型'<type>'无效”
通过全局常量进行比特访问:
如果已声明定义位索引的全局常量,则可以将此常量用于位访问。
请注意:必须激活项目选项“替换常量”(类别 Build)!
请参阅以下示例中对变量或结构变量的 bitaccess:
两个示例的全局变量列表中的声明:
变量使能定义应访问的位:
VAR_GLOBAL常数
启用:int:=2;
END_VAR
示例 1,对整数变量的 Bitaccess:
POU中的声明:
VARxxx:你;
END_VAR
比特访问:
示例 2,整数结构组件上的 Bitaccess:
结构 stru1 的声明:
类型 stru1:结构
bvar:布尔值
;rvar:真实
;wvar:
10-28 CoDeSysV2.3版本
附录 B: -CoDeSys 中的操作数
WORD;{bitaccessenable42'启动驱动器'}
END_STRUCT END_TYPE
POU中的声明:
VARx:stru1;
END_VAR
比特访问:
x.enable:=真;
这会将 TRUE 设置为 42。变量 x 中的位。由于 bvar 有 8 位,rvar 有 32 位,因此 bitaccess 将在变量
wvar 的第二位上完成,结果将获得值 4。
注意:如果一个借助全局常量对结构变量执行位访问的变量应该在输入助手、声明窗口的监视和“Intellisense 函数”
中正确显示,请使用pragma{bitaccess},如示例中所示。此外,在声明窗口中的监视期间,您会显示超出相应结构
变量的全局常量:
10.13 地址
地址
通过使用特殊字符序列来直接显示单个内存位置。这些序列是百分号“%”、范围前缀、大小前缀和一个或
多个用空格分隔的自然数的串联。
支持以下范围前缀:
I 输入
Q 输出
M 内存位置
支持以下大小前缀:
X 个比特
无单个位
B 字节(8 位)
W 字(16 位)
D 双字(32 位)
CoDeSysV2.3版本 10-29
附录 B: -CoDeSys 中的操作数
例子:
%QX7.5 和输出位7.5
%Q7.5
%IW215 输入字数215
%QB7 输出字节7
%MD48 内存位置 48 中的双字。
%IW2.5.7.1 取决于 PLC 配置
另 附录A章:IEC运算符和附加范数扩展函数,地址运算符
内存位置
您可以使用任何受支持的大小来访问内存位置。
例如,地址 %MD48 将对内存位置区域(48*4=192)中的字节编号 192、193、194 和 195 进行寻
址。第一个字节的编号为 0。
您可以以相同的方式访问字、字节甚至位:地址 %MX5.0 允许您访问第五个字中的第一位(位通常按字
保存)。
另 附录 A:IEC 运算符和其他规范扩展函数、地址运算符
10.14 主要工作内容
在 ST 中,函数调用也可以显示为操作数。
例:
结 果 : = Fct ( 7 ) + 3;
TIME()函数
此函数返回自系统启动以来经过的时间(基于毫秒)。
数据类型为 TIME。
IL 中的示例:
时间
STsystime (* 结果,例如:T#35m11s342ms*)
ST中的示例:
系统时间:=TIME();
FBD 中的示例:
10-30 CoDeSysV2.3版本
附录 C:-CoDeSys 中的数据类型
附录 C:CoDeSys 中的数据类型
10.15 标准数据类型
编程时可以使用标准数据类型和用户定义的数据类型。每个标识符都分配给一种数据类型,该数据类型决
定了将保留多少内存空间以及它存储的值类型。
布尔值
BOOL类型变量可以被赋予值 TRUE 和 FALSE。将保留 8 位内存空间。
整数数据类型
BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT和UDINT都是整数数据类型
每种不同的数字类型都涵盖不同的值范围。以下范围限制适用于整数数据类型:
类型 下限 上限 内存空间
字节 0 255 8位
词 0 65535 16 位
DWORD字数 0 4294967295 32 位
SINT: -128 127 8位
USINT: 0 255 8位
整数: -32768 32767 16 位
UINT: 0 65535 16 位
力: -2147483648 2147483647 32 位
乌丁特: 0 4294967295 32 位
因此,当较大的类型转换为较小的类型时,信息可能会丢失。
另请参 第 10.11 章 CoDeSys 中的操作数,数字常量
雷亚尔/雷亚尔
REAL和LREAL是所谓的浮点类型。它们必须表示有理数。为 REAL 保留了 32 位内存空间,为 LREAL
保留了 64 位内存空间。
REAL 的有效值:1.175494351e-38 到3.402823466e+38
LREAL 的有效值:2.2250738585072014e-308 到1.7976931348623158e+308
另请参 第 10.11 章 “REAL-/LREAL 常量”
字符串
STRING 类型变量可以包含任何字符串。声明中的大小条目确定应为变量保留多少内存空间。它是指字
符串中的字符数,可以放在括号或方括号中。如果未指定大小,则将使用默认大小 80 个字符。
CoDeSysV2.3版本 10-31
附录 C:-CoDeSys 中的数据类型
包含 35 个字符的字符串声明示例:
str:STRING(35):='这是一个字符串';
另请参 第 10.11 章 CoDeSys 中的操作数,STRING 常量
时间数据类型
数据类型TIME,TIME_OF_DAY( abb.TOD)、日期和DATE_AND_TIME(缩写。DT)像 DWORD 一
样在内部处理。
TIME 和 TOD 中的时间以毫秒为单位,TOD 中的时间从凌晨 12:00 开始。
从 1970 年 1 月 1 日凌晨 12:00 开始,以 DATE 和 DT 为单位给出时间。
请参阅以下用于为时间常数赋值的时间数据格式:
TIME 常数:
始终由首字鯦“t”或“T”(或拼写为“time”或“TIME”)和数字符号“#”组成。
接下来是实际时间声明,可以包括天(用“d”标识)、小时(用“h”标识)、分钟(用“m”标识)、秒(
用“s”标识)和毫秒(用“ms”标识)。请注意,时间条目必须按照 度按此顺序给出(d 在 h 之前在 m
之前在 s 之前在 m 之前在 ms 之前),但您不需要包括所有时间增量。
最大值:49d17h2m47s295ms(4194967295ms)
ST 赋值中正确的 TIME 常量示例:
时 间 1 : = T#14ms;
时 间 1 : = T#100S12ms; (*最高组件可能被允许超过其限制*)
时 间 1 : = t#12h34m15s;
以下情况不正确:
时 间 1 : = t#5m68s; (*在较低的组件中超出了限制*)
时 间 1 : = 15ms; (*缺少 T#*)
时 间 1 : = t#4ms13d; (*条目顺序不正确*)
DATE 常量:
以“d”、“D”、“DATE”或“date”开头,后跟“#”。然后,您可以输入格式为“年-月-日”的任何日期。可能
的值:1970-00-00 到 2106-02-06。
例子:
日期#1996-05-06
D#1972-03-29
TIME_OF_DAY常量,用于存储一天中的时间:
以“tod#”、“TOD#”、“TIME_OF_DAY#”或“time_of_day#”开头,后跟时间,格式为:Hour:Minute:
Second 。秒可以输入为实数,也可以输入秒的小数部分。可能的值: 00 : 00 : 00 之二 23 : 59 :
59.999。
例子:
TIME_OF_DAY#15:36:30.123
托德#00:00:00
10-32 CoDeSysV2.3版本
附录 C:-CoDeSys 中的数据类型
DATE_AND_TIME常量,日期和时间的组合:
以“dt#”、“DT#”、“DATE_AND_TIME#”或“date_and_time#”开头。在日期后加上一个连字符,后跟时
间。可能的值:1970-00-00-00:00:00 到 2106-02-06-06:28:15。
例子:
DATE_AND_TIME#1996-05-06-15:36:30
DT#1972-03-29-00:00:00
10.16 定义的数据类型
数组
支持将一维、二维和三维字段(数组)作为基本数据类型。数组既可以在POU的声明部分定义,也可以
在全局变量列表中定义。数组嵌套最多可以产生 9 个维度( “ARRAY[0..2]OFARRAY[0..3]OF...” )。
语法:
<Field_Name>:数组 [<ll1>.<ul1>,<ll2>..<元素的 <UL2>]。类型>。
ll1、ll2、ll3确定场范围的下限;UL1、UL2 和 UL3 标识上限。限制值必须为整数,并且必须遵循 DINT 值
范围。
例:
Card_game:INT 的数组 [1..13,1..4];
初始化数组:
数组完整初始化的示例:
arr1 : 数 组 [1..5] 的 INT : = 1,2,3,4,5;arr2 : 数 组 [1..2,3..4] 的 INT : = 1,3 ( 7 ) ; ( *
1,7,7,7*的缩写)
arr3 : 数 组 [1..2,2..3,3..4] 的 INT : = 2 ( 0 ) , 4 ( 4 ) , 2,3; (*
0,0,4,4,4,4,2,3*的缩写)
结构体数组的初始化示例:
类型STRUCT1结构
END_STRUCT
数组[1..3]的STRUCT1:= (P1:=1,P2:=10,P3:=4723),(P1:=2,P2:=0,P3:=299),(P1:=14,P2:
=5,P3:=112);
Array 的部分初始化示例:
arr1 : 数 组 [1..10] 的 INT : = 1,2;
未预先赋值的元素使用基本类型的默认初始值进行初始化。因此,在上面的示例中,元素 anarray[6] 到
anarray[10] 的初始化为 0。
访问数组组件:v
使用以下语法在二维数组中访问数组组件:
<Field_Name>[索引1,索引2]
例:
Card_game [9,2]
CoDeSysV2.3版本 10-33
附录 C:-CoDeSys 中的数据类型
函数校验边界
如果在项目中定义名为CheckBounds的函数,则可以自动检查数组中是否存在超出范围的错误。函数的
名称是固定的,只能有这个名称。
函数 CheckBounds 的示例:
函 数 CheckBounds : DINT
VAR_INPUT
索引,下,上:DINT;
END_VAR
IF 索引<更低 THEN
CheckBounds :=lower;ELSIF 索
引>上 THENCheckBounds := 上
;ELSECheckBounds := 索引;
END_IF
以下用于测试 CheckBounds 函数的示例程序超出了已定义数组的边界。 CheckBounds 函数允许将值
TRUE 赋值,而不是赋值给位置 A[10] ,而是赋值给其上方仍然有效的范围边界 A[7] 。因此,使用
CheckBounds 函数,可以更正数组边界之外的引用。
函数 CheckBounds 的测试程序:
程序PLC_PRG
VAR值
a: BOOL 的数组[0..7];b:
INT:=10;END_VARa[b]:
=TRUE;
指针
变量或功能块地址在程序运行时保存在指针中。
指针声明的语法如下:
<标识符>: POINTER TO <Datatype/Functionblock>;
A 针可以指向任何数据类型或功能块,甚至可以指向用户定义的类型。
地址运算符 ADR 的功能是将变量或功能块的地址分配给指针。
A 以通过在指针标识符后添加内容运算符“^”来取消引用指针。
例:
PT:指向 INT 的指针;
var_int1:INT :=5;var_int2:INT;点:=ADR(var_int1);var_int2:=pt^;(*var_int2 现在是 5*)
10-34 CoDeSysV2.3版本
附录 C:-CoDeSys 中的数据类型
用于在运行时检查指针访问的函数:
为了在运行时检查指针访问,您可以创建检查函数,这些函数将在每次访问指针地址之前自动调用。为
此,相应的功能必须在项目中直接或通过库提供。支持以下功能:
函数CheckPointer或检查指针当前存储的地址是否在有效内存范围内,
函数必须完全具有上述名称。它们返回用于取消引用指针的地址,因此充其量是作为第一个输入参数传递
的地址(下面所示的示例中的 dwAddress)。
(* 指针的目标地址;数据类型必须与当前设置的目标
系统中用于指针的数据类型相同, 上文:返回值
*)(* 指针访问的大小;数据类型必须与整数兼容,
并且必须覆盖指针地址处存储的最大潜在数据大小
*)(* !不能在 CheckPointer 函数中使用!
iSize :DINT;
iGreat:DINT;
访问的粒度,例如“2”,如果 INT 是给定地址上使用
的最小非结构化数据类型;数据类型必须与整数兼容
*)(*访问类型:读取或写入;TRUE=读取访问权限;
数据类型必须为 BOOL*)
b写入:BOOL;
END_VAR
列举
枚举是一种用户定义的数据类型,由许多字符串常量组成。这些常量称为枚举值。
<Identifier> 类型的变量可以采用其中一个枚举值,并将使用第一个枚举值进行初始化。这些值与整数兼
容,这意味着您可以像使用INT 一样对它们执行运算。您可以为变量分配一个数字x。如果枚举值未初始
化,则计数将从 0 开始。初始化时,请确保初始值正在增加。该号码的有效性将在运行时进行审查。
CoDeSysV2.3版本 10-35
附录 C:-CoDeSys 中的数据类型
例:
类型 TRAFFIC_SIGNAL:(红色、黄色、绿色:=10);(*每种颜色的初始值为红色 0、黄色 1、绿色 10*)END_TYPETRAFFIC_SIGNAL1 :
TRAFFIC_SIGNAL;TRAFFIC_SIGNAL1 : =0; ( * 交 通 信 号 灯 的 值 为 红 色 * ) FOR i : = 红 色 到 绿 色 DO i : = i + 1;END_FOR;
例:
TRAFFIC_SIGNAL:(红、黄、绿);颜色:(蓝色、白色、红色);错误:红色不能
同时用于 TRAFFIC_SIGNAL 和 COLOR。
结构
< 变 量 声 明 1> . .
<变量声明n>
END_STRUCT
END_TYPE
<Structurename> 是在整个项目中可识别的类型,可以像标准数据类型一样使用。
允许互锁结构。唯一的限制是变量不能放在地址上(不允许 AT 声明!
名为 Polygonline 的结构定义示例:
类型 Polygonline: STRUCTStart:
ARRAY[1..2]OFINT;Point1:INT 的
数组 [1..2];Point2:ARRAY[1..2] 的
INT;Point3:INT 的数组 [1..2];
Point4:INT 的数组 [1..2]; 结束:
ARRAY [1..2] 的 INT;END_STRUCT
END_TYPE
结构初始化示例:
Poly_1:polygonline := (开始:=3,3, Point1=5,2, Point2:=7,3, Point3:=8,5, Point4:=5,7,结束:=3,5);
无法使用变量进行初始化。请参阅“数组”下结构体数组的初始化示例。
访问结构组件:
您可以使用以下语法访问结构组件:
<Structure_Name>.<组件名称>
10-36 CoDeSysV2.3版本
附录 C:-CoDeSys 中的数据类型
因此,对于上面提到的结构“polygonline”示例,您可以通过Poly_1.Start访问组件“start”。
引用
您可以使用用户定义的引用数据类型为变量、常量或功能块创建备用名称。
在“对象管理器”(ObjectOrganizer)的“注册卡”数据类型“(Datatypes)下,将引用创建为对象。
它们以关键字 TYPE 开头,以 END_TYPE 结尾。
语法:
TYPE < 标 识 符 > : <Assignment term>;END_TYPE
例:
键入消息:
STRING[50];END_TYPE;
子范围类型
子范围类型是其值范围仅为基本类型值范围的子集的类型。声明可以在数据类型寄存器中执行,但变量也
可以直接用子范围类型声明:
“数据类型”寄存器中声明的语法:
键入<名称>: <Inttype> (<ug>..<og>)END_TYPE;
例子:
类型
子输入:INT (-4095..4095);
END_TYPE
直接声明具有子范围类型的变量:
VAR值
和: INT (-4095..4095);ui:
UINT(0..10000);END_VAR
如果将常量分配给不属于此范围(例如 1:=5000)的子范围类型(在声明或实现中),则会发出错误消
息。
为了在运行时检查是否遵守范围边界,函数CheckRangeSigned
或必须引入CheckRangeUnsigned。在这些情况下,可以通过适当的方法和手段(例如,可以切断值或
设置错误标志)来捕获边界违规。一旦变量被写入为属于由有符号或无符号类型构造的子范围类型,就会
隐式调用它们。
例:
CoDeSysV2.3版本 10-37
附录 C:-CoDeSys 中的数据类型
例:
VARui : UINT (0..10000)
;END_VAR
END_FOR
FOR 循环永远不会完成,因为 ui 不能大于 10000。
在定义 FOR 循环的增量值时,还要注意 CheckRange 函数的定义!
10-38 CoDeSysV2.3版本
附录 D: -CoDeSys 库
附录 D:CoDeSys 库
10.17Standard.lib 库
10.17.1 字符串函数...
请注意:字符串函数不是“线程安全的”:使用任务时,字符串函数只能在单个任务中使用。如果在不同的任务中使用
相同的函数,则存在覆盖的危险。
莱恩
返回字符串的 度。输入 STR 的类型为 STRING,函数的返回值为type
国际。
IL 中的示例:
LD'SUSI'LENSTVarINT1 (* 结果为 4*)
FBD 中的示例:
ST中的示例:
VarSTRING1 :=LEN ('SUSI');
左
Left 返回给定字符串的左侧初始字符串。输入 STR 为 STRING 类型,SIZE 为 INT 类型,函数的返回值
为 STRING 类型。
LEFT (STR, SIZE)表示:取字符串 STR 中右起的第一个 SIZE 字符。
IL 中的示例:
LD'SUSI'LEFT3STVarSTRING1 (* 结果是 'SUS'*)
FBD 中的示例:
ST中的示例:
VarSTRING1 := 左('SUSI',3);
右
Right 返回给定字符串的右侧初始字符串。
RIGHT (STR, SIZE)表示:取字符串 STR 中右边的第一个 SIZE 字符。
输入 STR 的类型为 STRING,SIZE 的类型为 INT,函数的返回值的类型为 STRING。
IL 中的示例:
LD 'SUSI'
CoDeSysV2.3版本 10-39
附录 D: -CoDeSys 库
FBD 中的示例:
ST中的示例:
VARSTRING1 := 右('SUSI',3);
中
Mid 从字符串中返回部分字符串。
输入 STR 类型为 STRING,LEN 和 POS 类型为 INT,函数的返回值为type
字符串。
MID (STR, LEN, POS)表示:从 STR 字符串中检索 LEN 字符,该字符串以位置 POS 处的字符开
头。
IL 中的示例:
LD'SUSI'MID2,2STVarSTRING1 (* 结果为 'US'*)
FBD 中的示例:
ST中的示例:
VarSTRING1 :=MID ('SUSI',2,2);
康卡特
两个字符串的串联(组合)。
输入变量 STR1 和 STR2 以及函数的返回值均为 STRING 类型。
IL 中的示例:
LD'SUSI'CONCAT'WILLI'STVarSTRING1 (* 结果是 'SUSIWILLI'*)
FBD 中的示例:
ST中的示例:
VarSTRING1 :=CONCAT ('SUSI','WILLI');
10-40 CoDeSysV2.3版本
附录 D: -CoDeSys 库
插入
INSERT 将一个字符串插入到另一个字符串的已定义点。
输入变量 STR1 和 STR2 的类型为 STRING,POS 的类型为 INT,函数的返回值为 STRING 类型。
FBD 中的示例:
ST中的示例:
VarSTRING1 := 插入('SUSI','XY',2);
删除
DELETE 从定义位置的较大字符串中删除部分字符串。
输入变量 STR 为 STRING 类型,LEN 和 POS 为 INT 类型,函数的返回值为 STRING 类型。
IL 中的示例:
LD'SUXYSI'DELETE2,3STVar1 (* 结果为 'SUSI'*)
FBD 中的示例:
ST中的示例:
var1 := 删除('SUXYSI',2,3);
取代
REPLACE 将较大字符串中的部分字符串替换为第三个字符串。
输入变量 STR1 和 STR2 的类型为 STRING,LEN 和 POS 的类型为 INT,函数的返回值为 STRING 类
型。
REPLACE(STR1, STR2, L, P)表示:将 STR1 中的 L 个字符替换为 STR2,以 P 位置的字符开
头。
IL 中的示例:
LD'SUXYSI' 替换 'K',2,2STVarSTRING1 (* 结果为 'SKYSI'*)
CoDeSysV2.3版本 10-41
附录 D: -CoDeSys 库
FBD 中的示例:
ST中的示例:
VarSTRING1: = 替换(SUXYSI,'K,2,2);
找到
FIND 在字符串中搜索部分字符串。
输入变量 STR1 和 STR2 为 STRING 类型,函数的返回值为 STRING 类型。
FIND(STR1, STR2)表示:求 STR2 在 STR1 中首次出现的第一个字符的位置。如果在 STR1 中找
不到 STR2,则 OUT:=0。
IL 中的示例:
LD'abcdef'FIND'de'STVarINT1 (* 结果为 '4'*)
FBD 中的示例:
ST中的示例:
VarINT1 :=FIND('abcdef','de');
10.17.2 双稳态功能块...
锶
使双稳态功能块占主导地位:
Q1=SR (SET1, RESET)表示:
Q1=(非复位和 Q1)或SET1
输入变量 SET1 和 RESET 以及输出变量 Q1 的类型为 BOOL。
声明示例:
SRInst : SR ;
IL 中的示例:
CAL SRInst ( SET1 : = VarBOOL1 , RESET : = VarBOOL2 ) LD SRInst.Q1 ST VarBOOL3
FBD 中的示例:
10-42 CoDeSysV2.3版本
附录 D: -CoDeSys 库
ST中的示例:
SRInst ( SET1 : = VarBOOL1 , RESET : =VarBOOL2 ) ;VarBOOL3 : = SRInst.Q1 ;
RS
重置双稳态功能块
Q1=RS (SET, RESET1)表示:
Q1= 不复位 1 和(Q1 或 SET)
输入变量 SET 和 RESET1 以及输出变量 Q1 的类型为 BOOL。
声明示例:
RSInst : RS ;
IL 中的示例:
CAL RSInst ( SET : = VarBOOL1 , RESET1 : =VarBOOL2 ) LD RSInst.Q1 ST VarBOOL3
FBD 中的示例:
ST中的示例:
RSInst ( SET : = VarBOOL1 , RESET1 : =VarBOOL2 ) ;VarBOOL3 : = RSInst.Q1 ;
SEMA公司
软件信号量(可中断)
BUSY=SEMA(CLAIM, RELEASE)表示:
忙:=X;如果声明,则 X:=TRUE;否则,如果发布,则忙:=FALSE;X:= 假;END_IF
FBD 中的示例:
CoDeSysV2.3版本 10-43
附录 D: -CoDeSys 库
ST中的示例:
SEMAInst(声明:=VarBOOL1 , RELEASE:=VarBOOL2 )
;VarBOOL3 : = SEMAInst.BUSY;
10.17.3 触发...
R_TRIG
功能块R_TRIG检测上升沿。
FUNCTION_BLOCK R_TRIG VAR_INPUT CLK : 布 尔 值 ;END_VAR VAR_OUTPUT
Q: 布 尔 值 ;END_VAR VAR
M: 布 尔 值 : = FALSE;END_VAR
Q:=CLK 而不是M;
M: = CLK;
只要输入变量 CLK 为 FALSE,输出 Q 和帮助变量 M 将保持 FALSE。一旦 CLK 返回 TRUE,Q 将首先
返回 TRUE,然后 M 将设置为 TRUE。这意味着每次调用函数时,Q 将返回 FALSE,直到 CLK 具有下
降沿,然后是上升沿。
声明示例:
RTRIG 国 家 : R_TRIG ;
IL 中的示例:
CAL RTRIGInst ( CLK : = VarBOOL1 ) LD RTRIGInst.Q ST VarBOOL2
FBD 中的示例:
ST中的示例:
RTRIGInst(CLK:=VarBOOL1)
;VarBOOL2 : = RTRIGInst.Q;
F_TRIG
功能块F_TRIG下降沿。
FUNCTION_BLOCKF_TRIGVAR_INPUTCLK:布尔值;END_VARVAR_OUTPUT 问:BOOL;END_VAR
VAR值
10-44 CoDeSysV2.3版本
附录 D: -CoDeSys 库
M : 布 尔 值 : = FALSE;END_VAR
声明示例:
FTRIG 最 新 : F_TRIG ;
IL 中的示例:
CAL FTRIGInst ( CLK : = VarBOOL1 ) LD FTRIGInst.Q ST VarBOOL2
FBD 中的示例:
ST中的示例:
FTRIGInst(CLK:=VarBOOL1)
;VarBOOL2 : = FTRIGInst.Q;
10.17.4 反...
CTU
功能块增量器:
输入变量 CU 和 RESET 以及输出变量 Q 的类型为 BOOL,输入变量 PV 和输出变量 CV 的类型为
WORD。
如果 RESET 为 TRUE,则计数器变量 CV 将初始化为 0。如果 CU 的上升沿从 FALSE 到 TRUE,则
CV 将提高 1.当 CV 大于或等于上限 PV 时,Q 将返回 TRUE。
声明示例:
CTUInst : CTU ;
IL 中的示例:
CAL CTUInst ( CU : = VarBOOL1 , RESET : = VarBOOL2 , PV : = VarINT1 ) LD CTUInst.Q ST VarBOOL3 LD CTUInst.CV ST VarINT2
FBD 中的示例:
CoDeSysV2.3版本 10-45
附录 D: -CoDeSys 库
ST中的示例:
CTUInst(CU:=VarBOOL1, RESET:=VarBOOL2 , PV:=VarINT1)
;VarBOOL3 : = CTUInst.Q ;VarINT2 : = CTUInst.CV;
CTD的
功能块递减器:
输入变量 CD 和 LOAD 以及输出变量 Q 的类型为 BOOL,输入变量 PV 和输出变量 CV 的类型为
WORD。
当 LOAD_ 为 TRUE 时,计数器变量 CV 将使用上限 PV 进行初始化。如果 CD 的上升沿从 FALSE 变为
TRUE,则如果 CV 大于 0(即不会导致该值降至 0 以下),则 CV 将降低 1。
FBD 中的示例:
ST中的示例:
CTDInst(CD:=VarBOOL1, LOAD:=VarBOOL2 , PV:=VarINT1)
;VarBOOL3 : = CTDInst.Q ;VarINT2 : = CTDInst.CV;
CTUD系列
功能块递增器/递减器
输入变量 CU、CD、RESET、LOAD 以及输出变量 QU 和 QD 的类型为 BOOL,PV 和 CV 的类型为
WORD。
如果 RESET 有效,则计数器变量 CV 将初始化为 0。如果 LOAD 有效,则 CV 将使用 PV 进行初始化。
10-46 CoDeSysV2.3版本
附录 D: -CoDeSys 库
VarINT2
FBD 中的示例:
ST中的示例:
CTUDInst(CU :=VarBOOL1, CU:=VarBOOL2, RESET :=VarBOOL3, LOAD:=VarBOOL4 ,
PV: = VarINT1 ) ;VarBOOL5 : = CTUDInst.QU ;VarBOOL6 : = CTUDInst.QD ;
VarINT2 : = CTUDInst.CV;
10.17.5 定时器...
卫生纸
功能块定时器是一个触发器。TP(IN, PT, Q, ET)表示:
IN 和 PT 分别是 BOOL 和 TIME 类型的输入变量。Q 和 ET 分别是 BOOL 和 TIME 类型的输出变量。如
果 IN 为 FALSE,则 Q 为 FALSE,ET 为 0。
一旦 IN 变为 TRUE,时间将开始以 ET 中的毫秒为单位计算,直到其值等于 PT。然后它将保持不变。
声明示例:
T恤;
IL 中的示例:
CAL TPInst ( IN : = VarBOOL1 , PT : = T#5s ) LD TPInst.Q ST VarBOOL2
CoDeSysV2.3版本 10-47
附录 D: -CoDeSys 库
FBD 中的示例:
ST中的示例:
TPInst(IN :=VarBOOL1, PT:=T#5s);VarBOOL2 :=TPInst.Q;
吨
功能块 TimerOnDelay 实现开启延迟。
TON(IN, PT, Q, ET)表示:
IN 和 PT 分别是 BOOL 和 TIME 类型的输入变量。Q 和 ET 分别是 BOOL 和 TIME 类型的输出变量。如
果 IN 为 FALSE,则 Q 为 FALSE,ET 为 0。
一旦 IN 变为 TRUE,时间将开始以 ET 中的毫秒为单位计算,直到其值等于 PT。然后它将保持不变。
声明示例:
TONInst :吨;
IL 中的示例:
CAL TONInst ( IN : = VarBOOL1 , PT : = T#5s ) LD TONInst.Q ST VarBOOL2
FBD 中的示例:
ST中的示例:
TONInst(IN :=VarBOOL1, PT:=T#5s);
10-48 CoDeSysV2.3版本
附录 D: -CoDeSys 库
TOF(TOF)
功能块 TOF 实现关断延迟。
TOF(IN, PT, Q, ET)表示:
IN 和 PT 分别是 BOOL 类型的输入变量 TIME。Q 和 E 分别是 BOOL 类型的输出变量 TIME。如果 IN 为
TRUE,则输出分别为 TRU0。
一旦 IN 变为 FALSE,在 ET 中,时间将开始以毫秒为单位计算,直到其值等于 PT。然后它将保持不
变。
当 IN 为 FALSE 且 ET 等于 PT 时,Q 为 FALSE,否则为 TRUE。
因此,当 PT 中指示的时间(以毫秒为单位)用完时,Q 具有下降沿。
随时间推移的 TOF 行为的图形显示:
声明示例:
TOFInst :太好了;
IL 中的示例:
CAL TOFInst ( IN : = VarBOOL1 , PT : = T#5s ) LD TOFInst.Q ST VarBOOL2
FBD 中的示例:
ST中的示例:
TOFInst(IN :=VarBOOL1, PT:=T#5s);VarBOOL2 :=TOFInst.Q;
RTC实时时钟
功能块 RuntimeClock 从给定时间开始返回当前日期和时间。
CoDeSysV2.3版本 10-49
附录 D: -CoDeSys 库
10.18Util.lib 库
该库包含各种模块的附加集合,可用于BCD转换、位/字节函数、数学辅助函数、控制器、信号发生器、
函数操纵器和模拟值处理。
10.18.1BCD转换
BCD 格式的字节包含介于 0 和 99 之间的整数。每个小数位使用四位。小数点后十位存储在第 4-7 位
中。因此,BCD 格式类似于十六进制表示形式,简单的区别是只有 0 到 99 之间的值可以存储在 BCD 字
节中,而十六进制字节从 0 到 FF。
BCD_TO_INT
此函数将 BCD 格式的字节转换为 INT 值:
函数的输入值为 BYTE 类型,输出值为 INT 类型。
如果应转换非 BCD 格式的字节,则输出为 -1。
ST中的示例:
i:=BCD_TO_INT(73);(* 结果为 49*) k:=BCD_TO_INT(151);(* 结果为 97*) l:
=BCD_TO_INT(15);(* 输出 -1,因为它不是 BCD 格式 *)
INT_TO_BCD
此函数将 INTEGER 值转换为 BCD 格式的字节:
函数的输入值为 INT 类型,输出值为 BYTE 类型。
数字 255 将输出,其中应转换 INTEGER 值,该值无法转换为 BCD 字节。
ST中的示例:
i:=INT_TO_BCD(49);(* 结果为 73*) k:
=INT_TO_BCD(97);(* 结果为 151*) l:
=INT_TO_BCD(100);(* 错误!输出:255*)
10.18.2 位/字节函数
提取
此函数的输入是 DWORDX 和 BYTEN。输出是一个 BOOL 值,其中包含输入 X 的第 N 位的内容,函
数从零位开始计数。
10-50 CoDeSysV2.3版本
附录 D: -CoDeSys 库
ST中的示例:
标志:=EXTRACT(X:=81, N:=4);(* 结果:TRUE,因为 81 是二进制1010001,所以第 4 位是 1*)标
志:=EXTRACT(X:=33, N:=0);(* 结果:TRUE,因为 33 是二进制100001,所以位 '0' 是 1*)
包
此函数能够将 BOOL 类型的 8 个输入位 B0、B1、...、B7 作为 BYTE 传递回来。
功能块 UNPACK 与此功能密切相关。
普特
此函数的输入由一个 DWORDX、一个字节 N 和一个 BOOLean 值 B 组成,PUTBIT 在值
B 上设置从 X 开始的第 N 位,从而从零位开始计数。
ST中的示例:
答:=38; (* 二进制 100110*)B:=推杆(A,4,真);(* 结果:
54 = 2#110110 * ) C : = 推 杆 ( A , 1 , 假 ) ; ( * 结 果 : 36 =
2#100100*)
解压
UNPACK 将 BYTE 类型的输入 B 转换为 BOOL 类型的 8 个输出变量 B0,...,B7,这与 PACK 相反。
FBD 中的示例:输出:
10.18.3 数学辅助函数
导数
此功能块近似地确定局部派生。
函数值通过使用 IN 作为 REAL 变量传递。TM 包含 DWORD 中经过的时间(以毫秒为单位),BOOL 类
型的 RESET 输入允许功能块通过传递值 TRUE 重新开始。
CoDeSysV2.3版本 10-51
附录 D: -CoDeSys 库
完整的
此功能块近似确定函数的积分。
与 DERIVATIVE 类似,函数值通过使用 IN 作为 REAL 变量传递。TM 包含在 DWORD 中以毫秒为单位
经过的时间,BOOL 类型的 RESET 输入允许功能块以值 TRUE 重新开始。
FBD中的区块:99990101000000+00'00' 示例:线性函数的积分:
LIN_TRAFO
此功能块(util.lib.)将位于由下限值和上限值定义的值范围内的REAL值转换为位于另一个范围内的相应
REAL 值,该范围也由下限和上限定义。以下等式是转换的基础:
输入变量:
变量 数据类型 描述
在 真正 输入值
IN_MIN 真正 输入值范围下限
IN_MAX 真正 输入值范围上限
OUT_MIN 真正 输出值范围下限
OUT_MAX 真正 输出值范围上限
10-52 CoDeSysV2.3版本
附录 D: -CoDeSys 库
输出变量:
变量 数据类型 描述
外 真正 产值
错误 布尔值 发生错误:如果 IN_MIN=IN_MAX,或者 IN 超出指定的输入值范围,
则为 TRUE。
应用实例:
温度传感器提供伏特值(输入输入)。这些值将转换为以摄氏度为单位的温度值(输出 OUT)。输入(
伏特)值范围由限制 IN_MIN=0 和 IN_MAX=10 定义。输出(摄氏度)值范围由限制定义
OUT_MIN=-20,OUT_MAX=40。
因此,对于 5 伏的输入,将产生 10 摄氏度的温度。
STATISTICS_INT
此功能块计算一些标准统计值:
输入 IN 的类型为 INT。当 BOOLean 输入 RESET 时,所有值都会重新初始化
真。
输出 MN 包含 IN 中最大值的最小值 MX。AVG 描述平均值,即 IN 的期望值。所有三个输出均为 INT 类
型。
FBD区块:99990101000000+00'00'
STATISTICS_REAL
此功能块对应于 STATISTICS_INT,但输入 IN 的类型与输出 MN、MX、AVG 类似。
方差
VARIANCE 计算输入值的方差。
输入IN为REAL类型,RESET为BOOL类型,输出OUT再次为该类型
真正。
该模块计算输入值的方差。VARIANCE 可以通过以下命令重置
RESET=TRUE。
标准差可以很容易地计算为 VARIANCE 的平方根。
CoDeSysV2.3版本 10-53
附录 D: -CoDeSys 库
10.18.4 控制器
帕金森病
util.lib 库提供以下 PD 控制器功能块:
功能块的输入:
变量 数据类型 描述
实际 真正 受控变量的当前值
SET_POINT 真正 所需值,命令变量
KP系列 真正 比例系数,P部分的单位增益
电视 真正 导数动作时间,D 部分的单位增益(以秒为单位),例如“0.5”
表示 500 毫秒
Y_MANUAL 真正 定义输出值 Y,如果 MANUAL=TRUE,
Y_OFFSET 真正 操作变量 Y 的偏移量
真正 操纵变量 Y 的下限或上限。如果 Y 超过这些限制,则输出
Y_MIN, LIMITS_ACTIVE将设置为 TRUE,Y 将保持在规定的范围
Y_MAX 内。此控件仅在Y_MIN<Y_MAX时才有效。
重置 布尔值 TRUE 复 位 控 制 器 ; 在 重 新 初 始 化 期 间 , Y =
Y_OFFSET。
功能块的输出:
变量 数据类型 描述
Y 真正 操作值,由功能块计算( 下文)
Y_OFFSET、Y_MIN和Y_MAX用于在规定范围内对纵的变量进行转换。
10-54 CoDeSysV2.3版本
附录 D: -CoDeSys 库
输出,即纵的变量Y的计算公式如下:
Y = KP ( + 电视 / t) +Y_OFFSET 其中 =SET_POINT-实际
因此,除了 P 部分之外,控制器误差(D 部分)的电流变化也会影响纵的变量。
只要 MANUAL=TRUE,Y_MANUAL就会写入 Y。
A 通过设置 TV=0 可以很容易地创建P 控制器。
PID的
库 util.lib 提供以下 PID 控制器功能块:
变量 数据 描述
类型
实际 真正 受控变量的当前值
SET_POINT 真正 所需值,命令变量
KP系列 真正 比例系数,P部分的单位增益
田纳 州 真正 复位时间,I部分的倒数单位增益;以秒为单
位,例如“0.5”表示 500 毫秒
电视 真正 导数动作时间,D 部分的单位增益(以秒为单位),例如“0.5”
表示 500 毫秒
Y_MANUAL 真正 定义输出值 Y,如果 MANUAL=TRUE,
Y_OFFSET 真正 操作变量 Y 的偏移量
Y_MIN,Y_MAX 真正 操纵变量 Y 的下限或上限。如果 Y 超过这些限制,则输出
LIMITS_ACTIVE将设置为 TRUE,Y 将保持在规定的范围内。此
控件仅在Y_MIN<Y_MAX时才有效。
CoDeSysV2.3版本 10-55
附录 D: -CoDeSys 库
功能块的输出:
变量 数据类型 描述
Y 真正 操作值,由功能块计算( 下文)
LIMITS_ACTIVE 布尔值 TRUE 表示 Y 已超出给定限制(Y_MIN, Y_MAX)。
Y_OFFSET,Y_MIN和Y_MAX用于在规定范围内对纵的变量进行转换。
MANUAL可用于切换到手动操作;RESET 可用于重新初始化控制器。
PID_FIXCYCLE
库 util.lib 提供以下PID_FIXCYCLE控制器功能块:
10-56 CoDeSysV2.3版本
附录 D: -CoDeSys 库
10.18.5 信号发生器...
眨眼
功能块 BLINK 生成脉动信号。输入由 BOOL 类型的 ENABLE 以及 TIME 类型的 TIMELOW 和
TIMEHIGH 组成。输出 OUT 的类型为 BOOL。
如果 ENABLE 设置为 TRUE,则开始 BLINK,将时间段 TIMEHIGH 的输出设置为 TRUE,然后将其时
间段 TIMELOW 的输出设置为 FALSE。
当 ENABLE 复位为 FALSE 时,输出 OUT 不会改变,即不会产生进一步的脉冲。如果在 ENABLE 重置
为 FALSE 时明确也想得到 OUTFALSE,则可以在输出中使用“OUTANDENABLE”(即添加一个带有
参数 ENABLE 的 AND 框)。
CFC 示例:
FREQ_MEASURE
此功能块测量布尔输入信号的(平均)频率(Hz)。您可以指定应平均的周期数。周期是输入信号的两
个上升沿之间的时间。
输入变量:
变量 数据类型 描述
在 布尔值 输入信号
时期 国际 周期数,即上升沿之间的时间间隔,应计算输入信号的平均频率。可能
的值:1 到10
重置 布尔值 将所有参数重置为0
输出变量:
变量 数据类型 描述
根
函数发生器生成典型的周期函数:
输入是由预定义计数类型 GEN_MODE 的 MODE、BOOL 类型的 BASE、TIME 类型的 PERIOD、两个
INT 值 CYCLES 和 AMPLITUDE 以及 BOOLeanRESET 输入组成的组合。
CoDeSysV2.3版本 10-57
附录 D: -CoDeSys 库
示正弦和余弦:
三角形: TRIANGLE_POS:
SAWTOOTH_RISE: SAWTOOTH_FALL:
矩形: 窦:
科 努斯:
BASE定义周期是否真的与定义的时间相关(BASE=TRUE)或是否与特定数量的周期相关,这意味着功
能块的调用次数(BASE=FALSE)。
10-58 CoDeSysV2.3版本
附录 D: -CoDeSys 库
10.18.6 功能机械手...
字符曲线
此功能块用于表示线性函数上的值:
CHARACTERISTIC_LINE:CHARCURVE;KL:数组[0..10]的点:=(X:
=0,Y:=0),(X:=250,Y:=50),(X:=500,Y:=150),(X:
=750 , Y : =400 ) , 7 ( ( X : =1000 , Y : =1000 ) ) ; 计 数 器 : INT; ...
END_VAR
然后,我们为 CHARCURVE 提供一个不断增加的值:
计数器:=计数器+10;CHARACTERISTIC_LINE(IN:=计数
器,N:=5,P:=KL);
随后的跟踪说明了效果:
RAMP_INT
RAMP_INT用于限制被馈送函数的上升或下降:
输入由三个 INT 值中的一只手组成:IN(函数输入)以及 ASCEND 和 DESCEND(给定时间间隔内的
最大增加或减少),由 TIME 类型的 TIMEBASE 定义。将 RESET 设置为 TRUE 会导致重新初始化
RAMP_INT。
INT 类型的输出 OUT 包含升序和降序限制函数值。
当 TIMEBASE 设置为 t#0s 时,ASCEND 和 DESCEND 与时间间隔无关,但保持不变。
CoDeSysV2.3版本 10-59
附录 D: -CoDeSys 库
CFC 示例:
RAMP_REAL
RAMP_REAL 的功能与 RAMP_INT 相同,但简单的区别是输入 IN,
ASCEND、DESCEND 和输出 OUT 的类型为 REAL。
10.18.7 模拟量值处理...
磁滞现象
此功能块的输入由三个 INT 值 IN、HIGH 和 LOW 组成。输出 OUT 为
BOOL 类型。
10-60 CoDeSysV2.3版本
附录 D: -CoDeSys 库
极限报警
此功能块指定输入值是否在设定的范围内,如果这样做,则违反了哪些限制。
10.19AnalyzationNew.lib 库
该库提供了用于分析表达式的模块。如果组合表达式为 FALSE,则可以计算其组件的组件,这些组件将
添加到此结果中。在 SFC-Editor 中,标志 SFCErrorAnalyzationTable 隐式使用此函数来分析过渡中的表
达式。
表达式示例:
B 或 NOT(y<x)或 NOT (不是 d 和 e)
功能:
所有模块都使用以下变量:
InputExpr:BOOL,要分析的表达式
DoAnalyze:BOOL、TRUE 开始分析
ExpResult:BOOL,表达式的当前值
不同的是分析结果的输出:
AnalyzeExpression 在字符串中返回表达式的组件,这些组件将添加到总值 FALSE 中。函数
AppendErrorString用于此目的,用“|”字符分隔输出字符串中的特定组件。
OutString:STRING,分析结果,表达式相关组件的序列
(例如 y<x|d)
AnalyseExpressionTable 将表达式的组件(将总值 FALSE 相加)写入数组。对于每个组件, 结构
ExpressionResult提供以下信息:名称、地址、注释、(当前)值。
AnalyseExpressionCombined 结合 这 功能 之 Analyze表达式 加
AnalyseExpressionTable
CoDeSysV2.3版本 10-61
附录 D: -CoDeSys 库
10.20CoDeSys 系统库
注意
这取决于当前使用的目标系统,支持哪些系统库,哪些系统库可以在程序中使用。有关相关信息,请参阅
文档SysLibs_Overview.pdf。
10-62 CoDeSysV2.3版本
附录 E:-运算符和库模块概述
附录 E:运算符和库模块概述
下表显示了运算符的概述,这些运算符可在 CoDeSys 或库 Standard.lib 和 Util.lib 中找到。您可以在那
里找到 ST 和 IL 的符号。对于 IL,还列出了支持的修饰符。
请注意,对于“IL 运算符”列:仅显示使用运算符的行。先决条件是(第一个)必需的操作数已成功加载
到前一行中(例如 LDin)。
'Mod.IL'列显示 IL 中可能的修饰符:
N 否则:否定操作数(而不是累加器)
(括号内的算子:只有在到达右括号后,才会进行括号前面的操作。
10.21CoDeSys 中的运算符
在ST 在 AWL 中 国防部。描述AWL
' 字符串分隔符(例如“string1”)
数组范围的大小(例如 ARRAY[0..3]OFINT)
..[
; 指令终止(例如 a:=var1;)
^ 取消引用的指针(例如 pointer1^)
:= ST var1 N 将实际结果存储到var1
( 括号后面的值作为操作数处理,括号前的操作不在
括号中的表达式之前执行。
CoDeSysV2.3版本 10-63
附录 E:-运算符和库模块概述
) 现在执行已设置的操作
和 和 N,(按位AND
或 或 N,(按位OR
异或 异或 N,(按位异OR
不 不 Bitweise 不是
+ 加 (添加
- 子 (减法
* 穆尔 (乘法
/ DIV公司 (分部
= 情商 (相等
<> 东北 (不相等
<= 乐 (小于或等于
ROR(K,英寸) 罗尔 按位旋转到运算符的右侧K
10-64 CoDeSysV2.3版本
附录 E:-运算符和库模块概述
在ST 在 AWL 中 国防 描述
部。
锥
<类型>_TO_BOOL(in) <类型>_TO_BOOL 类型转换为BOOL
LN(英寸) 在 操作数的自然对数
登录(in) 日志 操作数的对数,以 10 为底
正弦(in) 罪 操作数的正弦值
COS(英寸) 因为 操作数余弦
TAN(英寸) 鞣 操作数的切线
ATAN(英寸) 阿坦 操作数的弧切线
CoDeSysV2.3版本 10-65
附录 E:-运算符和库模块概述
10.22Standard.lib 的元素:
在ST 在 AWL 中 描述
LEN(英寸) 莱恩 操作数的字符串 度
锶 锶 双稳态 FB 占主导地位
RS RS 双稳态 FB 受挫
吨 吨 FB:定时器导通延迟
10.23Util.lib 的元素
BCD_TO_INT字节的转换:BCD到INT格式
包 最多 8 位被打包到一个字节中
普特 A 的位设置为某个值
解压 A 节以单个位的形式返回
导数 局部推导
10-66 CoDeSysV2.3版本
附录 E:-运算符和库模块概述
完整的 完整的
LIN_TRAFO 真实价值的转变
方差 方差
帕金森病 PD控制器
PID的 PID控制器
眨眼 脉动信号
FREQ_MEASURE 测量布尔输入信号的频率
根 周期函数
字符曲线 线性函数
磁滞现象 磁滞现象
极限报警 监视输入值是否超过定义范围的限制
CoDeSysV2.3版本 10-67
附录 E:-运算符和库模块概述
10-68 CoDeSysV2.3版本
附录 F:-命令行-/命令文件
附录F: 命令行-/命令文件
10.24 命令行命令
启动 CoDeSys 后,您可以在命令行中添加命令,这些命令将在程序执行期间断言。这些命令以 “/” 开
头。不考虑小写字鯦的大小写/使用。命令将按从左到右的顺序执行。
/在线 启动后,CoDeSys会立即尝试与当前项目一起上线。
/批 CoDeSys 在没有用户界面的情况下启动,并返回第一个错误的错误代码,即第
一个命令的返回值,该命令以警告终止。处理完命令文件后,CoDeSys 将立即
终止。一旦处理第一个命令出现错误,命令文件的处理将立即中止。警告不会终
止处理。如果既没有发生错误也没有出现警告,则返回值S_OK。返回值始终编
码为 HRESULT。
/跑 登录后,CoDeSys启动应用程序。仅与 /online 结合
使用有效。
/show ... 可以对 CoDeSys 框架窗口进行设置。
/show 隐藏 该窗口将不会显示,也不会在任务菜单中显示。
/显示图标/显示
窗口将在显示中最小化。
最大值/显示正
窗口将在显示中最大化。
常
窗口将以与上次关闭时相同的状态显示。
/openfromplc 将加载当前在连接的目标系统上可用的项目。
对于命令行,请遵循以下语法:
“<CoDeSys-exe- 文 件 的 路 径 >” “< 项 目 的 路 径 >” /<command1> /<command2> ....
命令行示例:
项目 ampel.pro 打开,但未打开任何窗口。将执行命令文件command.cmd中包含的命令。在路径两边加上
双引号。
“D : \dir1\codesys”“C : \projects\ampel.pro”/show 隐 藏 /cmd command.cmd
CoDeSysV2.3版本 10-69
附录 F:-命令行-/命令文件
10.25 命令文件(cmdfile)命令
有关命令列表,请参阅下表,这些命令可在命令文件(<cmdfile>)中使用。然后可以通过命令行调用的
命令文件( 上文)。没有区分大小写。命令行将在消息窗口中显示为消息,并且可以在消息文件中给
出( 下文),但命令以“@”为前缀。
分号(;) 后面的所有符号都将被忽略(注释)。包含空格的参数必须用引号括起来。仅当命令文件是在
ANSI代码中创建时,才能使用变音符号。关键字可以在命令参数中使用。在以下命令说明表之后找到的
关键字列表。
用于控制后续命令的命令:
onerror 继续 即使发生错误,也会执行后续命令。
OnError 中断 如果检测到错误,则不会再执行后续命令。
在线菜单的命令:
在线登录 使用加载的项目登录(“在线登录”)
在线注销 注销(“在线”、“注销”)
在线运行 应用程序启动(“在线”、“运行”)
在线停止 停止应用程序(“联机”、“停止”)
在线启动项目 创建启动项目。此命令可以在离线和在线模式下应用!(另请参阅第
4.6 章关于命令“在线”“创建引导项目”的说明!
在线源码下载 将项目源代码下载到PLC(“在线”,“源代码下载”)
在线咨询是 打开模拟模式(“在线”、“模拟”)
在线SIM卡关闭 关闭模拟模式(“在线”、“模拟”)
文件菜单的命令:
文件NEW 创建一个新项目(“文件”、“新建”)
文件打开 <ProjectFile> 将加载项目 <projectfile> ('File', 'Open')
可能的添加:
/readpwd:<readpassword> 此处提供了读取访问的密码,以便在打开受读取保护的项目时不会出
现要求输入密码的对话框。
/writepwd:<writepassword> 此处提供了完全访问权限的密码,因此在打开项目时不会出现要求输
入密码的对话框。
文件关闭 当前项目将被关闭(“文件”、“关闭”)
文件保存 当前项目将被存储(“文件”、“保存”)
文件另存为<projectfile> 当前项目将以文件名 <projectfile> ('File', 'Saveas')保存为:在当前
CoDeSys 版本下,项目将另存为 <projectfile>.pro。如果要将项目另存
(可选)添加: 为内部或外部库,或者保存为旧版 CoDeSys 的项目,请将
<类型><版本>
10-70 CoDeSysV2.3版本
附录 F:-命令行-/命令文件
FilePrinterSetup<文件名>.dfr 定义文档框架文件(“文件”打印机设置“),并选择性地定义打印选
(可选)添加: 项”每个对象的新 面“或”每个子对象的新 面“之一;这些设置会影
pageper对象或 响文档的打印(项目文档, 下文)
pagepersubject
项目菜单的命令:
项目清洁 当前项目中的编译信息和在线变更信息将被删除(“项目”、“清理项目
”)
项目检查 将检查加载的项目(“项目”、“全部检查”)
项目编译 当前项目将由 “Rebuildall” ('Project', 'Rebuildall')编译
项目检查 将检查当前项目(“项目”“检查”)
项目构建 将构建当前项目('Projekt', 'Build')
Innflutningur verkefnis 文件 <file1>...<fileN> 导入到当前项目('Project', 'Import')。关于:
<file1> ...<fileN> 可以使用通配符,例如“projectimportC:\projects\*.exp”将导入目录
C:\projects 中扩展名为 *.exp 的所有文件。
项目expmul 当前项目的每个对象都将导出到自己的文件中,该文件获取对象
的名称。
项目文档 整个项目将在默认打印机上打印(“项目”“文档”,另请参阅上面
的“文件打印机设置”)
CoDeSysV2.3版本 10-71
附录 F:-命令行-/命令文件
用于控制消息文件的命令:
关闭 当前显示的消息文件将被关闭。
出清除 当前打开的消息文件的所有消息都将被删除。
用于控制消息的命令:
回声上 命令行将显示为消息。
回声关闭 命令行不会显示为消息。
echo<文本> <text>将显示在消息窗口中。
用于控制对象替换的命令,分别用于控制导入、导出、复制的文件:
替换yesall 全部替换(任何“查询”命令都将被忽略;不会打开任何对话框)
替换Noall 不替换(任何“查询”命令都将被忽略;不会打开任何对话框)
查询 将显示对话框,需要用户输入
查询关闭确定 所有对话框的响应都像用户单击了“确定”按钮一样
查询关闭否 所有对话框的响应都像用户单击了“否”按钮一样
查询关闭取消 所有对话框的响应都像用户单击了“取消”按钮一样
用于将命令文件作为子程序调用的命令:
设置 CoDeSys 使用的目录(->项目选项对话框,类别“目录”,子类别“常规”):如果使用以下命令之一
定义了多个目录,则必须用分号 + 空格分隔这些目录,并且必须用双引号括起来整行目录。示例,两条
路径:
dirlib“D:\codesys\Libraries\Standard;D:\codesys\Libraries\NetVar”
杜松<覆盖着密集的颚骨> 将 <libdir> 设置为库目录
目录编译<compiledir> 将 <compiledir> 设置为编译文件的目录
目录配置<configdir> 将 configdir>设置为配置文件的目录<
目录上传<uploaddir> 将 uploaddir>设置为上传文件的目录<
10-72 CoDeSysV2.3版本
附录 F:-命令行-/命令文件
延迟处理 CMDFILE:
延迟5000 等待 5 秒
控制观察和配方管理器:
链接库:
复制对象:
对象复制<源项目文件><源路 将对象从源项目文件的指定路径复制到已打开项目的目标路径。
径><目标路径>
如果源路径是对象的名称,则将复制该路径。如果是文件夹,则将复制
此文件夹下的所有对象。在这种情况下,将复制源文件夹下方的文件夹
结构。如果目标路径尚不存在,则将创建该路径。
特定对象的只读访问权限:
对象SetReadOnly 设置对对象的只读访问权限;定义对象类型和大小写
<TRUE|FALSE><对象类型>|< 对象类型 POU、DUT、GVL、VIS 也是对象的名称。可能的对象类型:
对象名称> pou、dut(数据类型)、gvl(全局变量列表)、vis(可视化)、cnc(
CNC 对象)、liblist(库)、targetsettings、toolinstanceobject(特定工
具实例)、toolmanagerobject(工具树中的所有实例)、
customplconfig(PLC 配置)、projectinfo(项目信息)、taskconfig(任
务配置)、trace、watchentrylist(监视和配方管理器)、alarmconfig(
警报配置),例如“objectsetreadonlyTRUEpouplc_prg”将设置
PLC_PRG只读访问权限
输入通信参数(网关、设备):
本地网关 将本地计算机上的网关设置为当前网关。
gatewaytcpip<地址><端 将指定远程计算机中的网关设置为当前网关。
口>
<地址>:远程计算机的 TCP/IP 地址或主机名 <端口>:远程网关的
TCP/IP 端口重要提示:只能访问未设置密码的网关!
CoDeSysV2.3版本 10-73
附录 F:-命令行-/命令文件
设备实例<实例名称> 将当前设备的实例名称设置为指定的名称
系统调用:
system<命令> 执行指定的操作系统命令。
选择目标系统:
查询系统状态:
状态:脱机 如果当前编程系统和目标系统之间没有连接(脱机模式),则返回
“S_OK”,否则返回“HRESULT[0x800441f0)”(联机模式)。
在线状态 如果当前编程系统和目标系统之间存在连接(联机模式),则返回
“S_OK”,否则返回“HRESULT[0x800441f0)”(脱机模式)。
用户组密码:
使用以下设置-打开受用户组密码保护的项目时-您可以输入特定用户组的密码。因此,即使关闭了用户输
入对话框的显示(“查询关闭...”, 上文),也可以通过命令文件打开受密码保护的项目。用户组和密码
的条目必须放在命令“fileopen...”之前!
例:
用户级别 0 用户密码 AAA 文件打开“D:\Codesys\Projects\xxxx.pro”查询关闭正常
用户级别 用户组,其密码在项目中定义,并由后续命令“用户密码”提供。
用户密码 上述命令“usergroup”指定的用户组的密码。
可视化设置:
视觉设置... 对应于可以在“附加”、“设置”、“语言”类别中为可视化完成
的可能设置,或者在“目标设置”、“可视化”类别中。
10-74 CoDeSysV2.3版本
附录 F:-命令行-/命令文件
...DynamicTextFiles<文件路径>|< 指定要使用的语言文件路径列表。之前的列表将被删除。
文 件 路 径 > |...
示例:“视觉对象设置 D:\dynfiles\p1.xmlD:
\dynfiles\p2.xml”
...dynamictexthideelements 开启 ||关闭 激活或停用选项“如果未进行文本替换,则禁止显示元素”。
ENI项目数据库中有关管理项目的命令:
在以下命令说明中,使用了占位符:
<category>:替换为“project”或“shared”或“compile”,具体取决于以下数据库类别:项目对象、共享对
象、编译文件
<POUname>:对象的名称,对应于 CoDeSys 中使用的对象名称。
<Objecttype>:替换为快捷方式,该快捷方式作为扩展名附加到数据库中对象的 POU 名称中,并反映
对象类型(由对象类型列表定义,请参阅 ENI 管理,“对象类型”)。
示例:对象“GLOBAL_1.GVL”->POU名称为“GLOBAL_1”,对象类型为“GVL”(全局变量列表)
<comment>:替换为注释文本(用单引号括起来),该文本将与特定操作一起存储在版本历史记录中。
通过 ENI 服务器配置项目数据库链接的命令:
ENI 开 选项“使用源代码管理(ENI)”将被激活或停用(对话框“项目”、“选项
启 ENI ”、“项目源代码管理”)
关闭
ENI 项目 readonly 开启 数据库类别“项目对象”的“只读”选项将被激活或停用(对话框“项目”、“
ENI 项目只读关闭 选项”、“项目对象”)
CoDeSysV2.3版本 10-75
附录 F:-命令行-/命令文件
菜单“项目”“数据库链接”的命令,用于处理数据库:
ENISet<类别> 将对象分配给命名的数据库类别(“定义”)
'eni set <category>set 以空格分隔的对象将被分配到命名的数据库类别。(“多重定义”)示例:
<Objecttype>: “enisetprojectpou:as_fubpou:st_prg”->对象(pou) as_fub,
<POUname> st_prg被分配到类别“项目对象”
<Objecttype>:
<POUname>
ENI<类别>GetAll 将从数据库中调用命名类别的所有对象的最新版本(“获取所有最新版本
”)
'eni <category>get 命名类别的对象(以空格分隔列出)将从数据库中调用。(“多重定义
<Objecttype>: ”)。(“获取最新版本”)示例:“eniprojectgetpou:as_fubgvl:
<POUname> global_1”->将从数据库中调用 POUas_fub.pou 和全局变量列表
<Objecttype>: global_1.gvl
<POUname>
ENI<类别>checkoutall“< 将从数据库中检出命名类别的所有对象。定义的注释将与签出操作一起
评论>” 存储在版本历史记录中。
10-76 CoDeSysV2.3版本
附录 F:-命令行-/命令文件
•
ENI <category>checkinall 将签入项目数据库中受源代码管理的项目的所有对象。定义的注释将与
“<评论>” 签入操作一起存储。
命令参数的关键字:
以下关键字(包含在“$”中)可用于命令参数:
$EXE_DIR$ codesys.exe文件所在的目录(指示驱动器,末尾不带反斜杠,例如 D:
\codesys)
命令文件示例:
如下所示的命令文件将打开项目文件 ampel.pro,然后加载一个监视列表,该列表存储为 w.wtc,然后启
动应用程序并在 1 秒延迟后将变量的值写入监视列表 watch.wtc(将被保存),并最终关闭项目。
此命令文件将打开项目 ampel.pro,将加载现有的监视列表w.wtc,将启动应用程序,1秒后将变量值写入
监视列表w_update.wtc,该列表将保存在目录“C:\projects\CoDeSys_test”中,然后将再次关闭项目。
命令文件在命令行中调用,如下所示:
“<codesys.exe>路径”/cmd“<cmd 文件的路径>”
CoDeSysV2.3版本 10-77
附录 F:-命令行-/命令文件
10-78 CoDeSysV2.3版本
附 录 G : - Siemens Import
附录 G: 子进口
在“ 项 目 ” 的 “ SiemensImport”子菜单中,您可以找到允许您从 SiemensSTEP5 文件导入 POU 和变量
的命令。“从 SEQ 符号文件导入”命令允许您从 STEP5 符号文件导入全局变量。在命令“从 S5 项目文件
导入”之前运行此命令,以便在导入 POU 时可以创建可读的符号名称。这两个命令允许您从 STEP5 程
序文件导入 POU。完成此操作后,POU 将插入到打开的 CoDeSys 项目中。您可以选择 POU 是保留
STEP5IL 语言还是转换为 IEC 语言。
CoDeSysV2.3版本 10-79
附 录 G : - Siemens Import
10.27 从 S5 项目文件导入
POU 可以从 SiemensS5 程序文件(*.s5d)中读取数据。它使用的代码是可由 S5SPS 运行的 MC5 代
码。通常, MC5 代码与程序员熟悉的 STEP5 指令列表(不带符号名称)相对应。 S5D 还包含来自
STEP5 指令列表的行注释。由于 S5D 文件仅包含绝对地址,没有符号名称,因此 CoDeSys 在当前
CoDeSys项目变量中搜索符号名称。如果未找到,则绝对地址保持不变。因此,如果您觉得符号名称有
用,请在 S5 文件之前导入 SEQ 文件。
有时,在导入或代码转换过程中可能需要其他变量。这些附加变量将全局声明。例如,需要R_TRIG实例
来重现边沿触发的输入(例如,在 S5 计数器中)。
各个可转换命令:
U、UN、O、ON、S、R、= 具有以下位操作数:I(输入)、O(输出)、M(存储位置)、S(S 存储位
置)、D(数据块中的数据)
U、UN、O、ON 具有以下操作数:T(定时器)、C(计数器)
S、R 具有以下操作数:C
SU、RU、P、PN 具有以下操作数:E、A、M、D
O, O(, U(,)
具有以下操作数范围的 L、T:E、A、M、D、T、C、P(外围)和操作数大小:B(字节)、W(字)、D(双
字)、L(左字节)、R(右字节)
L 具有以下常量格式:DH、KB、KF、KH、KM、KT、KZ、KY、KG、KC
具有以下操作数的 SI、SE、SA:T
ZV、ZR 具有以下操作数:C
+、-、X、:使用以下操作数:F(定点数)、G(浮点数)+、-,使用以下操作数:D(32
10-80 CoDeSysV2.3版本
附 录 G : - Siemens Import
位不动点数)
!=、><、>、<、>=、<=,使用以下操作数:F、D、G
使用以下操作数进行 ADD:BF、KF、DH
SPA、具有以下操作数的 SPB:PB、FB(具有大多数参数类型)、SB
A、具有以下操作数的 AX:DB、DX
BE、BEA、BEB
BLD、NOP、***
威斯康星大学、OW、XOW
邱、KZW、KZD
SLW、SRW、SLD、RRD、RLD
SPA=,SPB=
SPZ=、SPN=、SPP=、SPM=
D、我
大多数正式操作数命令
不可转换的命令
U、UN、O、ON、S、R,= 具有以下位操作数:定时器和计数器位(T0.0、C0.0)
L、T 具有以下操作数范围:Q(扩展外围)
具有以下操作数的 LC:T、C
SV、SS、R、FR 具有以下操作数:T
具有以下操作数的 FR:C
用于启动、重置和释放定时器的正式操作数命令
操作数范围为 BA、BB、BS、BT(操作系统数据)的所有命令。
BA、BAB 具有以下操作数:FX
E、EX 具有以下操作数:DB、DX
STP、STS、STW
DEF、DED、DUF、哑弹
上海大众、SVD
SPO=、SPS=、SPR
AS、AF、AFS、AFF、BASS、BAF
耳鼻喉科
SES、SEF
B 具有以下操作数:DW、MW、BS
LIR、TIR、LDI、TDI、TNW、TXB、TXW
MAS、MAB、MSA、MSB、MBA、MBS
MBR、ABR
低温、低铁、天合、三甲
CoDeSysV2.3版本 10-81
附 录 G : - Siemens Import
TSG公司
LB、TB、LW、TW 具有以下操作数:GB、GW、GD、CB、CW、CD
ACR、TSC
商业智能
SIM、LIM
如果检查无法转换的命令,您将看到它们通常是仅在特定 CPU 上可用的特殊命令。无法转换为 IEC 的标
准命令包括:加载 BCD 编码的定时器或计数器值(LCT、LCC)、定时器类型 SV 和 SS 以及重置定时
器。
数据块
STEP5数据块被转换为有标头但没有代码的POU(程序组织单元)。如果将数据块用作普通变量范围,
这很方便,但如果尝试在 STEP5 程序中手动实现实例数据块等概念,则不方便。
从STEP5导入时的其他问题
STEP5 导入可以通过以下方式手动改进。
1. 单词变量中的时间值
在STEP5中,每个字地址中都允许有一个时间值,无论是在存储器位置区域还是在数据块中。这在IEC
61131-3 中是不允许的,因为 TIME 变量或常量与 WORD 地址不兼容。这可能会导致从 STEP5 导入时
创建错误的命令序列。如果您打开数据块并为相关地址选择时间格式(KT),则不会发生这种情况。换
句话说,只有当 STEP5 程序值得改进时,才会发生此错误。发生这种情况时,您将看到消息“不兼容的
类型:无法将 WORD 转换为 TIME”或“不兼容的类型:无法将 TIME 转换为 WORD”。然后,必须修改
WORD 变量的声明(如果可用)并将其转换为 TIME 变量。
2. 无法访问数据块
IEC61131-3 中没有数据块,不可能在 IEC 中完全重建它们。在 STEP5 中,它们被用作普通变量范围(
几乎类似于内存位置范围),也以数组( BDW )、指针( BMW100ADB0 )或联合(数据库中的字
节、字或双字访问)的形式使用。STEP5 转换只有在结构化的情况下才能转换 DB 访问。尝试访问数据
库时,必须知道哪个数据库处于打开状态(ADB)。当 ADB 操作更接近同一 POU 中的开头时,或者当
DB编 号 作 为 正 式 参 数 包 含 在POU中 时 , 您 必 须 注 意 这 一 点 。 如 果 在 第 一 次 访 问 数 据 库 之 前 未 找 到A
DB ,则无法转换 POU 。警告 “ 没有打开数据块(插入 ADB ) ” 会通知您这是这种情况。在转换后的
POU 中,您将看到对名为 “ErrorDW0” 的未定义变量的访问(例如),该变量将导致在编译新转换的
POU 时生成错误消息。然后,您可以将变量替换为对正确数据库的访问权限(例如,将“ErrorDW0”替
换 为 “DB10.DW0“ ) 。 另 一 种 选 择 是 丢 弃 转 换 后 的 POU , 并 在 POU 的 开 头 插 入 一 个 A DB
步骤5.
访问数据字(数据字节等)的 STEP5POU 应始终首先打开数据块。如有必要,应在导入 POU 之前通过
插入适当的 ADB 命令来改进 POU,最好在 POU 的开头插入。否则,必须在事后编辑转换后的 POU。
3. 与数据块访问相关的更高概念
在 STEP5 中,您可以选择通过让 Code 块打开数据块的索引版本来创建类似于实例的内容。这可以通过
以下示例代码序列来完成:
L KF +5
10-82 CoDeSysV2.3版本
附 录 G : - Siemens Import
T MW 44
B 分子量44
A 个数据库0
DB5 在此序列的末尾打开(通常,在内存位置字 %MW44 中找到其编号的数据库将被打开)。转换中无
法识别此类访问,这意味着转换后必须进行以下更改:
VAR_GLOBAL
DB5、DB6:DBType;
END_VAR
现在,您可以从项目中删除转换后的数据库。
然后,您必须通过为相应的 POU 提供另一个 DBType 类型的VAR_INPUT参数来创建数据库的索引版本
的副本。现在必须将POU中的数据访问重定向到此实例。然后,在打开其中一个实例数据库时,必须将
其作为实际参数包含在内。
4.所谓集成S5功能块,具有STEP5接入接口,具有特殊功能,但其实现要么不是用STEP5(或MC5)编
写的,要么是受特殊机制保护的。此类 POU 一般是固件,只能“导入为接口”。此类 POU 的实现部分是
空的。这些 POU 通常必须在转换后重新编程。
导入完成后,您必须找到显示的错误,然后修复、添加和重写受影响的点。这些景点标有如下评论:
位:byte-offset.bit-nummer
非位:字节偏移
此外,按顺序跟随的字地址也会重叠(仅仅是因为地址中的数字是字节偏移量)。这意味着 %MW32 和
%MW33 有一个重叠的字节,即 %MB33(仅在 SiemensSPS 上)。在 SPS 上,%MW32 和 %MW33
通常彼此没有任何关系。
CoDeSysV2.3版本 10-83
附 录 G : - Siemens Import
打开包含所有输入、输出和内存位置的交叉引用列表,找出哪些访问是重要的。删除手动访问的混合。
10-84 CoDeSysV2.3版本
附录 H:-目标设置详解
附录 H:目标设置详解
10.29 类别目标平台中的设置
对话框项
平台 目标系统的类型
支持浮球处理器 如果激活:为浮点运算生成 FPU 命令
在多任务环境中调试 如果激活:将生成其他代码,从而允许在多任务环境中进行调试
CoDeSysV2.3版本 10-85
附录 H:-目标设置详解
对话框项
平台 目标类型
CPU 68kCPU 的变体:基本版本 68000 或 CPU32 及更高版本
允许字节对齐结构 如果激活:仅寻址偶数地址如果未激活:也可以寻址奇数地
址
保留寄存器1 A2,A4,A5,A6:指示的地址寄存器是保留的,不使用如果无:代码生成器可以使
用它
保留寄存器2 附加保留地址寄存器。指示的地址寄存器是保留的,不使用如果为“无”,则可以由代
码生成器使用
反汇编程序 = 除 1 外,该文件还包含反汇编程序代码
10-86 CoDeSysV2.3版本
附录 H:-目标设置详解
对话框项 意义
平台 目标类型
代码/编译器: 编译目标系统和库期间使用的编译器(在
C 调用约定的帐户)
代码/堆栈大小 最大调用深度(嵌套)
代码/数据 数据内存模型
代码/功能 代码的内存模型
初始化。功能 如果激活:函数包含局部变量的初始化代码
优化 如果激活:常量数组索引的代码优化
输出十六进制文件 如果激活:代码的十六进制转储输出
输出 BIN 文件 如果激活:代码的二进制文件的输出
输出MAP ifactivated=代码映射文件的输出
输出LST ifactivated=代码列表文件的输出
CoDeSysV2.3版本 10-87
附录 H:-目标设置详解
对话框项 意义
平台 目标类型
支持浮球处理器 如果激活:为浮点运算生成 FPU 命令
第一个参数寄存器 寄存器,其中传输 C 函数调用的第一个整数参数(范围
(整数) 取决于操作系统)
最后一个参数:寄存器 寄存器,其中传输 C 函数调用的最后一个整数参数(范围
(整数) 取决于操作系统)
注册返回值 寄存器,返回 C 函数调用的整数参数(范围
(整数) 取决于操作系统)
第一个参数寄存器 寄存器 C 函数调用的第一个浮点参数被传输的位置(范围
(浮动): 取决于操作系统)
最后一个参数:寄存器 寄存器 C 函数调用的最后一个浮点参数的传输位置(范围
(浮动): 取决于操作系统)
注册返回值 寄存器,返回 C 函数调用的浮点参数(范围
(浮动): 取决于操作系统)
英特尔字节顺序 如果激活:按照 Intel 地址方案寻址
堆栈上的最大空间 参数堆栈的大小(以字节为单位)。默认值:40
for 参数(Byte)
10-88 CoDeSysV2.3版本
附录 H:-目标设置详解
10.29.5 目标系统MIPS,类别目标平台
对话框目标设置“MIPS”,目标平台
对话框项 意义
平台 目标类型
第一个参数寄存器 寄存器,其中传输 C 函数调用的第一个整数参数(范围
(整数) 取决于操作系统)
最后一个参数:寄存器 寄存器,其中传输 C 函数调用的最后一个整数参数(范围
(整数) 取决于操作系统)
注册返回值 寄存器,返回 C 函数调用的整数参数(范围
(整数) 取决于操作系统)
堆栈上的最大空间 取决于操作系统:参数的最大大小(字节数)、
for 参数(Byte): 可以在堆栈上移交
CoDeSysV2.3版本 10-89
附录 H:-目标设置详解
10.29.6 目标系统“HitachiSH”,类别目标平台
“目标设置”对话框“HitachiSH”,目标平台
对话框项 含义
平台 目标类型
第一个参数寄存器(整 寄存器,其中传输 C 函数调用的第一个整数参数(范围取决于操作系统)
数)
堆栈上用于参数的最大空 取决于操作系统:参数的最大大小(字节数),可以在堆栈上移交
间(字节):
10-90 CoDeSysV2.3版本
附录 H:-目标设置详解
对话框项 意义
平台 目标类型
最大堆栈大小:(以字节为单位) 最大堆栈大小(字节数)
10.29.8 目标系统“TriCore”,类别目标平台
TriCore 目标的目标设置是硬编码的,不能通过目标文件进行修改。但是,如果需要修改,请联系
3S-SmartSoftwareSolutionsGmbH。
请参阅此处最重要的设置:
态度 意义
平台=Tricore 目标系统的类型
第一个参数寄存器(整数)=4 寄存器 C 函数调用的第一个整数参数所在的位置
传播
(范围取决于操作系统)
最 后 一 个 参 数 寄 存 器 ( 整 数 ) = 7 寄存器 C 函数调用的最后一个整数参数所在的位置
传播
(范围取决于操作系统)
注册返回值(整数)=2 寄存器 C 函数调用的最后一个整数参数所在的位置
传播
(范围取决于操作系统)
别人: -函数调用不用于断点的实现
-未使用摩托罗拉字节订单
-对齐方式:4 字节(对数组很重要)
CoDeSysV2.3版本 10-91
附录 H:-目标设置详解
10.30 类别内存布局的目标设置
此选项卡中描述的项目可用于每个标准目标。
对话框目标设置“兼容英特尔 386”,内存布局
对话框项 含义
Base (代码) 自动激活:自动分配码段自动停用:码段位于给定的绝对地址上
基地(全球) 自动激活:数据段(全局数据)自动分配到相关区域自动停用:数据段(全局数
据)位于给定的绝对地址上
基础(内存) 自动激活:标志自动分配给相关区域自动停用:标志段位于给定的绝对地址上
底座(输入) 自动激活:输入过程图像自动分配到相关区域自动停用:输入过程图像位于给定
的绝对地址上
底座(输出) 自动激活:输出过程图像自动分配到相关区域自动停用:输出过程图像位于给定
的绝对地址上
底座(保留) 自动激活:保留数据自动分配到相关区域自动停用:输出过程图像位于给定的绝
对地址上
区域(代码) 数据段(代码)的段号;
区域(全球) 数据段(全局数据)的段号;
区域(内存) 标志段的段号;
区域(输入) 输入进程映像的段号
面积(输出) 输出过程映像的段号
10-92 CoDeSysV2.3版本
附录 H:-目标设置详解
对话框项
区域(保留) 保留数据的段号
尺寸(代码) 代码段的大小
SizeproSegment (全球) 数据段的大小
大小(内存) 标志段的大小
尺寸(输入) 输入进程映像的大小
尺寸(输出) 输出进程映像的大小
尺寸(保留) 保留数据段的大小
数据存储器的总大小 总内存数据大小
自有保留细分市场 如果激活:将保留数据分配到单独的网段中
数据存储器的总大小含义 数据存储器的总大小
全局数据段的最大数量 全局数据段的最大数量
CoDeSysV2.3版本 10-93
附录 H:-目标设置详解
10.31 类别“常规”中的目标设置
此选项卡中描述的项目可用于每个标准目标。
对话框“目标设置”->“常规”
对话框项
配置 如果激活:支持可配置的 I/O 配置并将配置描述加载到控制器中
支持CANopen配置 如果激活:支持CANopen配置,并将配置描述加载到控制器中
支持Profibus配置 如果激活:支持Profibus配置,并将配置说明加载到控制器中
支持抢占式多任务处 如果激活:支持任务配置和将任务描述加载到控制器中
理
多任务处理中的单任务 尚未实施
字节寻址模式 如果激活:字节寻址模式(例如,var1AT%QD4 写入地址 %QB4)
初始化零 如果激活:常规初始化为零
下载符号文件 如果激活:如果已创建符号文件,则将下载该文件
INI 文件中的符号配置含义 如果激活:符号配置的参数不是从项目选项对话框中读取的,而是从codesys.ini文
件中读取的,或者是从codesys.ini中引用的另一个文件中读取的
10-94 CoDeSysV2.3版本
附录 H:-目标设置详解
对话框项
PLC-浏览器 如果激活:PLC 浏览器功能已激活
跟踪 如果激活:跟踪功能已激活
VAR_IN_OUT作为参考 如果激活:在函数调用时,通过引用(指针)调用VAR_IN_OUT变量;因此,不能
分配任何常量,也不能从功能块外部进行读/写访问。
初始化输入 如果未激活:出于优化原因,不会为使用“AT%IX”声明的输入生成初始化代码(
->未定义的值,直到 1. 总线周期!
保留强制 如果激活:即使在注销时,强制列表也将保留在运行时系统中。在这种情况下,在
注销时,用户将看到一个对话框,在其中他可以决定是否真的应该保留强制。(目
前由运行时系统 CoDeSysSP32 位完整版、V2.4、补丁 4 和 CoDeSysSP32 位
支持)。
救 如果激活:即使在重新启动时,运行时系统也会继续强制执行。仅当目标允许且激
活了“保留强制”选项( 上文)时,此选项才可用。
周期无关强迫含义 如果激活:强制不仅会在周期的开始和结束时进行,而且在程序处理过程中的所有
写入访问都将被停用
CoDeSysV2.3版本 10-95
附录 H:-目标设置详解
10.32“网络功能”类别中的目标设置
此选项卡中描述的项目可用于每个标准目标。
对话框目标设置,网络功能
对话框项
支持参数管理器 如果激活:“参数管理器”条目将显示在“资源”选项卡中。使用它为变量和参数创建
对象字典,从而实现与其他控制器的有针对性的主动数据交换
支持网络变量 如果选择此选项,则可以使用网络变量,从而在网络中实现自动数据交换
支持的网络接口的名 支持的网络系统列表,例如:CAN;UDP;DP型
称
10-96 CoDeSysV2.3版本
附录 H:-目标设置详解
10.33 类别可视化中的目标设置
此选项卡中描述的项目可用于每个标准目标。
对话框目标设置,可视化
对话框项
以像素为单位的显示 编辑可视化时,给定宽度和高度的区域将显示在编辑器窗口中。因此,例如,在
宽度以像素为单位的 定位可视化元素时,可以考虑稍后运行目标可视化的屏幕大小。
显示高度
提示:即使没有激活目标或Web可视化,也可以使用“PLC中的报警处理”。即便
如此,也会生成所需的 ST 代码。
CoDeSysV2.3版本 10-97
附录 H:-目标设置详解
目标中支持的字体 目标系统支持的字体列表。
简化的输入处理 如果激活:在在线模式下,输入处理被简化:从一个输入字段到下一个输入字段
不需要<Tab>和<空格键>键。在通过 <Return> 键终止输入后,选择会自动转发
到下一个字段。也可以通过箭头或<Tab>键访问输入字段,然后可以立即输入输
入。如果未激活:必须使用 <Tab> 和 <Space> 键来访问下一个输入字段并选择
此字段以使输入成为可能。
- XML 可视化文件
- 图像文件(只有*.bmp,因为其他文件没有压缩效果)
-语言文件(*.xml 表示动态文本,*.tlt、*.vis)现有文件名之外的文件的扩展名为
“.zip”。现有名称中的点将替换为下划线(例如:“PLC_VISU.xml”将重命名为
“PLC_VISU_xml.zip”)不会对 Java 存档(minml.jar、webvisu.jar)和主
webvisu.htm进行压缩。
阻止下载可视化文件 如果激活:下载项目时,当前可视化中使用的所有文件都不会下载到目标系统。
10-98 CoDeSysV2.3版本
附录 I:-键盘的使用
附录一: 键盘的使用
10.34 键盘的使用
如果您只想使用键盘运行 CoDeSys,您会发现有必要使用菜单中没有的一些命令。
<Alt>+<F6>允许您从打开的对象移动到对象管理器,然后从那里移动到消息窗口(如果它已打开)。如
果搜索框处于打开状态,则 <Alt>+<F6> 允许您从对象管理器切换到搜索框,再从那里切换回对象。
按 <Tab> 在对话框中的输入字段和按钮之间移动。
箭头键允许您在对象管理器和库管理器中浏览寄存器卡和对象。
所有其他操作都可以使用菜单命令或菜单命令后面列出的快捷方式来执行。<Shift>+<F10>将打开上下文
菜单,其中包含最常用于选定对象或活动编辑器的命令。
10.35 组合键
以下是所有组合键和功能键的概述:
一般功能
上下文菜单 <Shift>+<F10>
声明的快捷方式模式 <Ctrl>+<Enter>
从“消息”窗口中的消息移回编辑器中的原始位置 <输入>
移动到对话框中的下一个字段 <选项卡>
上下文相关帮助 <F1>
常规命令
'文件''保存' <Ctrl>+<S>
CoDeSysV2.3版本 10-99
附录 I:-键盘的使用
“文件”“打印” <Ctrl>+<P>
“文件”“退出” <Alt>+<F4>
'Project' 'Build' <F11>
“Project”:“删除对象”: <德尔>
“Project”:“添加对象” <Ins>
“Project”:“重命名对象” <空格键>
“Project”:“打开对象”: <输入>
“编辑”“撤消” <Ctrl>+<Z>
'编辑''重做' <Ctrl>+<Y>
'编辑''剪切' <Ctrl>+<X> 或
<Shift>+<Del>
'编辑''复制' <Ctrl>+<C>
'编辑''粘贴' <Ctrl>+<V>
'编辑''删除' <德尔>
'编辑''查找下一个' <F3>
'编辑''输入助手' <F2>
'编辑''自动声明' <Shift>+<F2>
“编辑”“下一个错误” <F4>
“编辑”“上一个错误” <Shift>+<F4>
'在线''登录' <Alt><F8>
“在线”“注销” <Ctrl>+<F8>
“在线”“运行” <F5>
'Online''切换断点' <F9>
“在线”“跨步” <F10>
“在线”“步入” <F8>
“在线”“单周期” <Ctrl>+<F5>
'在线''写入值' <Ctrl>+<F7 组合键>
' 在 线 ' 'Force Values' <F7>
“在线”“释放力” <Shift>+<F7>
“联机”“写入/强制对话框” <Ctrl><Shift>+<F7>
“窗口”“消息” <Shift>+<Esc>
FBD 编辑器命令
'Insert''网络(之后)' <Ctrl>+<T>
'插入''分配' <Ctrl>+<A>
'插入''跳转' <Ctrl>+<L>
10-100 CoDeSysV2.3版本
附录 I:-键盘的使用
'插入''返回' <Ctrl>+<R组合键>
'插入''功能块' <Ctrl>+<B>
'插入''输入' <Ctrl>+<U>
'额外''否定' <Ctrl>+<N组合键>
'附加''缩放' <Alt>+<Enter>
CFC 编辑器命令
LD 编辑器命令
'Insert''网络(之后)' <Ctrl>+<T>
'插入''联系人' <Ctrl>+<K>
'插入''联系(否定)' <Ctrl>+<G组合键>
'插入''并联触点' <Ctrl>+<R组合键>
'插入''平行接触(否定)' <Ctrl>+<D>
'插入''功能块' <Ctrl>+<B>
'插入''线圈' <Ctrl>+<L>
'插入'''设置'线圈' <Ctrl>+<I>
'在块处插入''输入' <Ctrl>+<U>
'在块处插入''分配' <Ctrl>+<A>
'额外''否定' <Ctrl>+<N组合键>
'附加''缩放' <Alt>+<Enter>
CoDeSysV2.3版本 10-101
附录 I:-键盘的使用
SFC 编辑器命令
使用 PLC 和任务配置
打开和关闭组织元素 <输入>
在名称周围放置一个编辑控制框 <空格键>
'Extras''编辑条目' <输入>
在参数管理器编辑器中工作
在导航窗口和列表编辑器之间切换 <F6>
删除列表编辑器中的行 <Ctrl>+<Del>
<Shift>+<Del>
在列表编辑器中删除字段 <德尔>
10-102 CoDeSysV2.3版本
附录 J:-关于标识符命名的建议
附录J: 关于标识符命名的建议
10.36 标识符的命名
标识符在声明变量(变量名称)、用户定义的数据类型以及创建 POU(函数、功能块、程序)和可视化
时定义。您可以遵循以下有关标识符命名的建议,以使其尽可能唯一。
10.37 变量的标识符(变量名称)
应用程序和库中变量的命名应尽可能遵循匈牙利语表示法:
对于每个变量,都应该找到一个有意义的简短描述,即基本名称。基本名称的每个单词的第一个字鯦应为
大写字鯦,其他字鯦应为小写字鯦(例如:FileSize)。如果需要,还可以创建其他语言的翻译文件。
在基名称之前,对应于变量的数据类型,前缀以小写字鯦添加。
数据类型 下限 上限 信息内容 前缀 评论
布尔值 假 真 1位 x*
b 保留
字节 8位 由 位字符串,不用于算术。
操作
词 16 位 w 位字符串,不用于算术。
操作
DWORD字数 32 位 DW的 位字符串,不用于算术。
操作
LWORD字 64 位 LW系列 不是为了算术。操作
正弦 -128 127 8位 四
USINT公司 0 255 8位 环旭电子
国际 -32.768 32.767 16 位 我
UINT(英语:UINT) 0 65.535 16 位 用户界面
力 -2.147.483.648 2.147.483.647 32 位 地
乌丁特 0 4.294.967.295 32 位 乌迪
皮棉 -263 263 - 1 64 位 李
乌林特 0 264 - 1 64 位 乌利
真正 32 位 r
雷亚尔 64 位 LR系列
字符串 s
CoDeSysV2.3版本 10-103
附录 J:-关于标识符命名的建议
时间 提姆
TIME_OF_DAY 托德
日期时间 DT的
日期 日期
枚举 16 位 e
指针 p
数组 一个
在嵌套声明中,前缀按声明的顺序相互附加:
例:
pabyTelegramData:指向数组 [0..7] 字节的指针;
作为前缀的用户定义数据类型的功能块实例和变量将获得 FB 或数据类型名称的快捷方式(例如:sdo
)。
例:
cansdo收到电报:CAN_SDOTelegram;类型
CAN_SDOTelegram :(* 前缀: sdo*)
结构
w索引:WORD;by子索引:BYTE; 作者Len:BYTE;
局部常量(c)以前缀 c 和附加的下划线开头,后跟类型前缀和变量名称。
例:
常 数 VAR c_uiSyncID : UINT : =
16#80;END_VAR
对于全局变量(g)和全局常量(gc),在库前缀后附加一个附加的前缀 + 下划线:
例子:
VAR_GLOBAL
CAN_g_iTest:INT;
END_VARVAR_GLOBAL常数
CAN_gc_dwExample:DWORD;
END_VAR
10-104 CoDeSysV2.3版本
附录 J:-关于标识符命名的建议
10.38 用户定义数据类型(DUT)的标识符
每个结构体数据类型的名称由结构体的库前缀(例如: CAN )、下划线和最好简短的表达性描述(例
如:SDOTelegram)组成。此结构的已用变量的关联前缀应紧跟在冒号之后。
例:
类型 CAN_SDOTelegram :(* 前缀: sdo*) STRUCTwIndex:WORD;by子索引:BYTE; 作者Len:
BYTE; abyData : 数 组 [0..3] 字 节 ;END_STRUCT END_TYPE
枚举以库前缀(示例:CAL)开头,后跟下划线和大写字鯦的标识符。
例:
类型 CAL_Day:(CAL_MONDAY、CAL_TUESDAY、CAL_WEDNESDAY、CAL_THIRSDAY、CAL_FRIDAY、
CAL_SATURDAY、CAL_SUNDAY);
声明:
eToday:CAL_Day;
10.39 功能、功能块、程序(POU)的标识符
函数、功能块和程序的名称由库前缀(例如: CAN )、下划线和 POU 的表达性短名称(例如:
SendTelegram)组成。与变量一样,POU名称中单词的第一个字鯦应该是大写字鯦,其他字鯦应该是小
写字鯦。建议将动词和实体的 POU 名称组成。
例:
FUNCTION_BLOCKCAN_SendTelegram (* 前缀:canst*)
在声明部分,应提供POU的简短说明作为注释。此外,所有输入和输出都应提供评论。对于功能块,设
置实例的关联前缀应紧跟在名称之后。
CoDeSysV2.3版本 10-105
附录 J:-关于标识符命名的建议
10.40 可视化的标识符
注意:目前,您必须避免可视化效果与项目中的另一个 POU 具有相同的名称。如果可视化之间发生更
改,这将导致问题。
10-106 CoDeSysV2.3版本
附录 K:-编译器错误和警告
附录 K:编译器错误和警告
如果在项目编译过程中检测到错误,消息将被转储到消息窗口中。此外,此处可能会显示警告。<F4>始
终允许跳转到此窗口中的下一个消息行,从而打开相关 POU。错误和警告消息前面有唯一的编号。如果
在消息窗口中选择了消息行,<F1> 将打开相应的联机帮助窗口。
10.41 警告
1100
库中的未知函数'<name>'。”
1101
“未解析的符号'<Symbol>'。”
代码生成器需要名为 <Symbol> 的 POU。它未在项目中定义。使用此名称定义函数/程序。
1102
“符号'<Symbol>'的接口无效。”
代码生成器需要一个名为 <Symbol> 且只有一个标量输入的函数,或者一个名为 <Symbol>且没有输入或
输出的程序。
1103
“代码地址'<address>>'处的常量'<name'覆盖了16K 边界!”
字符串常量超出 16K 边界。系统无法处理此问题。目标文件中的条目是否可以避免该问题,具体取决
于运行时系统。请联系 PLC 制造商。
1200
“任务'<name>',调用'<name>'参数列表中的访问变量未更新”
仅在任务配置中的功能块调用时使用的变量不会在交叉引用列表中列出。
1300
“找不到文件'<name>'”
全局变量对象指向的文件不存在。请检查路径。
1301
“未找到 Analyze-Library!不会生成用于分析的代码。
使用了 analyze 函数,但缺少库 analyzation.lib。在库管理器中添加库。
1302“
“插入了新的外部引用函数。因此,在线更改不再可能!
自上次下载以来,您已经链接了一个库,其中包含运行时系统中尚未引用的函数。因此,您必须下载完整
的项目。
CoDeSysV2.3版本 10-107
附录 K:-编译器错误和警告
1400“未知编译指示'<名称>'被忽略!”
编译器不支持此编译指示。有关支持的指令,请参阅关键字“pragma”。
1401“结构'<name>'不包含任何元素。”
该结构不包含任何元素,但这种类型的变量分配了 1 字节的内存。
1410“'RETAIN'和'PERSISTENT'对功能没有任何影响”
在函数中局部定义的剩余变量的处理方式与普通局部变量相同。
1411“变量配置中的变量'<name>'在任何任务中都未更新”
变量的顶级实例不会被任何任务中的调用引用。因此,它不会从过程映像中复制。
例:
变量配置:
VAR_CONFIG
plc_prg.aprg.ainst.in 在 %IB0 :INT;
END_VAR
plc_prg: index :=
INDEXOF(aprg);
程序 aprg 被引用但未调用。因此,plc_prg.aprg.ainst.in 永远不会获得 %IB0 的实际值。
1413“'<Name> 不是列表'<Name>'的有效键。密钥将被忽略”
在编译指示中,指定了一个不存在的参数列表。检查列表名称或在参数管理器中查看当前可用的列表。
1414“编译指示'<名称>'中的组件定义过多”
Pragma 包含的定义(在方括号中)比相应数组、功能块或结构中的元素多。
1415“'<Name>' (<Number>):字面上的'<Number>'被指派给一个以上的枚举”
1500“表达式不包含赋值。未生成任何代码。
不使用此表达式的结果。因此,没有为整个表达式生成代码。
10-108 CoDeSysV2.3版本
附录 K:-编译器错误和警告
1501“以'VAR_IN_OUT'形式传递的字符串常量:'<Name>'不得被覆盖!”
1503“POU'<name>'没有输出。框结果设置为“TRUE”。
1504“'<name>' ('<number>'):由于对逻辑表达式的计算,语句可能无法执行”
最终,并非所有逻辑表达式的分支都会被执行。
例:
如果 A 和 FUNCT(TRUE)那么....
如果 has 为 FALSE,则不会调用 funct。
1505“'<名>的副作用!分支可能没有被执行!
1506“变量'<name>'与本地操作同名。行动不会被调用!
重命名变量或操作。
1507“实例'<name>'与函数同名。不会调用该实例。
在 ST 中调用一个与函数同名的实例。该函数将被调用!使用不同的名称。
1509“'<name>' ('<number>'):注册为回调的函数必须以'Callback'开头。
CoDeSysV2.3版本 10-109
附录 K:-编译器错误和警告
1510“要旋转的操作数没有显式类型。请使用键入的文字,例如'DWORD#1'。
1511“要移位的操作数没有明确的类型。请使用键入的文字,例如'DWORD#1'。
1550“在一个网络中多次调用POU'<名称>可能会导致不良副作用”
1600“OpenDBUnclear (生成的代码可能是错误的)。”
原来的 子程序没有告诉,打开了哪个POU。
1700“输入未连接。”
在 CFC 中使用了一个没有赋值的输入框。为此,不会生成任何代码。
1750“步骤'<名称>:最短时间大于最大时间!”
打开此步骤的“步骤属性”对话框并更正时间定义。
可视化元素包含无法监视的表达式。检查变量名称和占位符替换。
1801“'<name> (number):不能输入表达式'<name>'”
在字段输入的可视化对象配置中,使用了组合表达式。将其替换为单个变量。
1802“<可视化对象>(元素编号):找不到位图'<name>'”
确保外部位图文件在可视化配置对话框中定义的路径中可用。
打印操作将分配给可视化中配置的警报。这在Web或目标可视化中不予考虑。
10-110 CoDeSysV2.3版本
附录 K:-编译器错误和警告
1804“'<name>'('<number>'):目标不支持字体'<name>'。
在可视化中,您使用的是目标系统不支持的字体。请参阅目标设置中的“可视化”类别,了解支持的字体。
1807“<name> (<number>):没有用于目标可视化警报的消息窗口”
考虑到目标可视化不支持操作“消息”!
1808“'<name>'('<number>'):多边形由许多点组成,用于目标可视化。如果是仪表元件,请打开配置一次。
1809“'<name> ('<number>'):作为缩放目标的可视化效果无效”
无法找到此可视化效果。请检查可视化名称是否正确或可视化对象根本不可用。
1850“%IB<number>的输入变量在任务'<name>中使用,但在另一个任务中更新”
请检查哪些任务正在使用此变量,以及当前编程是否未造成不良影响。变量值的更新通常在优先级最高的
任务中完成。
1851“%IQ<number>的输出变量在任务'<name>'中使用,但在另一个任务中更新”
请检查哪些任务正在使用此变量,以及当前编程是否未造成不良影响。变量值的更新通常在优先级最高的
任务中完成。
1853“PDO(索引:'<number>')可能不会在事件任务'<name>中循环更新”
1900“POU'<name>'(主例程)在库中不可用”
当项目用作库时,Start-POU(例如PLC_PRG)将不可用。
1901“AccessVariablesandVariableConfigurationsarenotsavedinalibrary!”
CoDeSysV2.3版本 10-111
附录 K:-编译器错误和警告
访问变量和变量配置不存储在库中。
1902“'<名称>':不是当前机器类型的库!”
库的.obj文件是为另一台设备生成的。
1903“<名称>:没有有效的库”
该文件没有为实际目标请求的格式。
1904“常量'<Name>'在库中隐藏了一个同名的常量”
在您的项目中,您定义了一个常量,该常量与链接库中定义的常量具有相同的名称。库变量将被覆盖!
1970 年:“参数管理器:无法导入列表'<名称>',列'<名称>',值'<名称>'!
在网络变量列表的配置中(在“资源”选项卡中选择列表,然后通过上下文菜单中的命令“属性”打开对话
框“全局变量列表”),激活“读取”和“写入”选项。考虑到这可能会导致通信过程中的数据丢失。
1990
“<'name>'没有'VAR_CONFIG'”
对于此变量,没有可用的地址配置
Variable_Configuration(VAR_CONFIG)。在“资源”选项卡中打开窗口Variable_Configuration,然后插
在 这
入适当的配置(命令“插入”所有实例路径“)。
2500“任务'<任务名称>':未为循环任务指定周期时间”
在任务配置中,已创建一个循环任务,但尚未为其定义周期时间。在“Taskattributes”对话框中的“间隔”
处输入适当的时间跨度。
4710“'<name>' ('<number>'):尚未配置必需的表达式”
在类别“变量”的滑块元素配置中,没有为每个字段“最小值”、“滑块”和“最大值”输入有效值。
4711“'<name>'('<number>'):SysLibTargetVisu 不支持滑块元素。
安装并使用当前版本的库 SysLibTargetVisu.library。
4714“'<name>'('<number>'):选择变量的类型必须是兼容
INT“”
10-112 CoDeSysV2.3版本
附录 K:-编译器错误和警告
检查并适当更正类别“选择”中表元素的配置。
4715“当前目标不支持格式化显示时间和日期值”
选项“格式化时间显示”在可视化设置中被激活。但是,当前使用的目标系统不支持此功能。
4716“当前目标不支持简化输入处理”
10.42 错误
3100“代码太大。最大大小:“<number>”字节(<number>K)”
超出了最大程序大小。减小项目规模。
3101“总数据太大。最大大小:“<number>”字节(<number>K)”
内存已超出。减少应用程序的数据使用量。
3110“库'<名称>'出错。
3111“库'<名称>'太大。最大尺寸:64K”
.hex 文件超出了设置的最大大小。
3112“图书馆中不可重定位的教学。”
.hex 文件包含不可重定位的指令。无法链接库代码。
3113“库代码覆盖函数表。”
代码表和函数表的范围重叠。
3114“库使用多个段。”
.hex 文件中的表和代码使用多个段。
CoDeSysV2.3版本 10-113
附录 K:-编译器错误和警告
3115“无法将常量分配给VAR_IN_OUT。数据类型不兼容。
字符串常量的内部指针格式无法转换为VAR_IN_OUT 的内部指针格式,因为数据设置为“near”,但字符
串常量设置为“huge”或“far”。如果可能,请更改这些目标设置。
3116“函数表覆盖库代码或段边界。”
代码 166x:外部库不能与当前目标设置一起使用。这些必须进行调整,或者必须使用适当的设置重建
库。
3117“<姓名>(<Zahl>):表达太复杂。没有更多的寄存器可用”
命名表达式是复杂的,由可用寄存器处理。请尝试使用临时变量来减少表达式。
3120“当前代码段超过 64K。”
当前生成的代码大于 64K。最终创建了大量的初始化代码。
3121“太大了。”
3122“初始化太大。最大尺寸:64K”
请联系您的制造商。
给定常量的字符数必须减少。
3130“用户堆栈太小:需要'<number>'DWORD,'<number>'DWORD 可用。”
POU 调用的嵌套深度很大。在目标设置中输入更高的堆栈大小,或编译不带选项“调试”的构建项目(可
以在“项目”、“选项”、“构建”对话框中设置)。
3131“用户堆栈太小:需要'<number>'WORD,'<number>'WORD 可用。”
3132“系统堆栈太小:需要'<number>'WORD,'<number>'WORD可用。
10-114 CoDeSysV2.3版本
附录 K:-编译器错误和警告
3160“无法打开库文件'<name>'。”
此项目的库管理器中包含库<name>,但给定路径中不存在库文件。
3161“库'<name>'不包含代码段”
3162“无法解析库'<name>'(符号'<name>',类'<name>',键入'<name>')中的引用”
.obj文件包含对另一个符号的不可解析引用。请检查
C 编译器。
3163“库'<name>'中的未知引用类型(符号'<name>',类'<name>',类型'<name>')”
.obj文件包含引用类型,代码生成器无法解析该类型。请检查 C 编译器的设置。
3200“<name>:布尔表达式为复数”
目标系统的临时内存不足以容纳表达式的大小。将表达式划分为几个部分表达式,从而使用对中间变量的
赋值。
3202“嵌套字符串/数组/结构函数调用的堆栈溢出”
3203“表达式太复杂(使用过的地址寄存器太多)。”
将赋值划分为几个表达式。
CoDeSysV2.3版本 10-115
附录 K:-编译器错误和警告
3205“内部错误:常量字符串过多”
3206“功能块数据超出最大大小”
3207“阵列优化”
数组访问的优化失败,因为在索引计算期间调用了函数。
3208“转换尚未实现”
A 用转换函数,该函数未针对实际代码生成器实现。
3209“未实现运算符”
3210“找不到函数'<名称>”
A 用函数,该函数在项目中不可用。
3211“超出最大字符串使用量”
A 符串类型的变量最多可以在一个表达式中使用 10 次。
3212“POU<POU 名称>处的库顺序错误”
3250“8 位控制器不支持Real”
目前不支持该目标。
3251“8 位控制器不支持日期类型”
目前不支持该目标。
3252“堆栈大小<数字>字节”
目前不支持该目标。
3253“找不到十六进制文件:'<名称>'”
目前不支持该目标。
10-116 CoDeSysV2.3版本
附录 K:-编译器错误和警告
3254“无法解析对外部库函数的调用。”
目前不支持该目标。
3255“指针不支持 8 位控制器。”
避免在程序中使用指针使其在 8 位系统上运行。
3260“函数'<name>' 的参数过多:在目标设置中增加参数堆栈的大小。”
如果可能,请在“目标设置”的“目标平台”对话框中修改堆栈的大小(默认值:40),请参阅第 10.29.4
章。如果该设置在 CoDeSys 中不可编辑,请联系 PLC 制造商。
.exp 文件包含不正确的访问变量部分。
3401“导入变量配置期间出现错误”
.exp 文件包含不正确的配置变量部分。
3402“导入全局变量时出错”
.exp 文件包含不正确的全局变量部分。
3403“无法导入<名称>”
.exp 文件中的对象<名称>部分不正确。
3404“导入任务配置时出错”
3406“名称为'<name'的两个步骤。第二步未导入。
3407“未找到前置步骤'<名称>”
3408“找不到后续步骤'<名称>'”
CoDeSysV2.3版本 10-117
附录 K:-编译器错误和警告
3409“步骤'<'名称>没有成功的转换”
3410“'<名称>'过渡没有成功的步骤”
在 .exp 文件中缺少一个步骤,该步骤需要转换<name>作为前面的条件。
3411“从初始步骤无法访问步骤'<名称>'”
3412“未导入宏'<name>'”
检查导出文件。
3415 导入警报配置时出错”
您已导入导出文件(*.exp),其中包含有关警报配置的错误信息。检查导出文件。
3450“PDO'<PDO-name>':缺少 COB-ID!”
最终,CAN配置所需的设备文件不在正确的目录中。检查“项目”、“选项”、“目录”中配置文件的目录设
置。
3452“无法创建模块'<name>!”
3453“无法创建频道'<name>!”
10-118 CoDeSysV2.3版本
附录 K:-编译器错误和警告
3454“地址'<name>指向一个用过的内存!”
在 PLC 配置的“设置”对话框中激活了“检查重叠地址”选项,并检测到重叠。关于,区域检查是基于模块
数据类型产生的大小,而不是配置文件中条目“size”给出的大小。
最终,Profibus 配置所需的设备文件不在正确的目录中。检查“项目”、“选项”、“目录”中配置文件的目
录设置。
3457“模块描述错误!
3458“无法创建 PLC-Configuration!检查配置文件。
检查所有必需的配置和设备文件是否在正确的路径中可用(请参阅“项目”、“选项”、“/目录”中定义的编
译目录)
34603S_CanDrv.lib 的版本有误。
3461“3S_CanOpenMaster.lib 的版本有误。”
3462“3S_CanOpenDevice.lib 的版本有误。”
3463“3S_CanOpenManager.lib 的版本有误。”
3464“3S_CanNetVar.lib 的版本有误。”
3465“CanDevice:子索引必须按顺序编号”
在 CanDevice 使用的参数列表中,子索引必须按顺序编号,并且不能中断。在参数管理器中查看相应的
列表。
CoDeSysV2.3版本 10-119
附录 K:-编译器错误和警告
3466“CAN网络变量:在PLC配置中找不到CAN控制器”
为CAN网络配置了网络变量(资源、全局变量),但在PLC配置中没有可用的CAN控制器。
3468“CanDevice:更新任务在任务配置中不可用。”
更新任务(用于调用CANdevice)是在PLC配置中CANdevice的“基本设置”对话框中定义的,必须在项目
的“任务配置”中配置。
3469“CanOpenMaster不能被召唤。请手动分配任务。
在PLC配置中打开CanMasters模块参数对话框。检查参数UpdateTask。指定的任务必须在项目中可用。
如果无法在此处设置适当的任务,则必须检查设备文件中是否有 UpdateTask 的相应值定义。
3500
“'姓名'没有'VAR_CONFIG'<姓名>”
插入此变量“Variable_Configuration”的声 在 这 全球 变量 列 哪 包含 这
明。 表
3501“<'VAR_CONFIG'中没有'姓名>'的地址。
在“Variable_Configuration”中为此变量分配一个地 全球 变量 列 哪 包含 这
址。 表
3502“'VAR_CONFIG'中的'<name>'数据类型错误”
3503“'VAR_CONFIG'中的'<name>'数据类型错误”
3504“'VAR_CONFIG 不支持初始值”
“Variable_Configuration”的变量使用地址和初始值声明。但是,初始值只能为输入变量定义,而不能分
配地址。
该Variable_Configuration包含一个不存在的变量。
10-120 CoDeSysV2.3版本
附录 K:-编译器错误和警告
3506“预期访问路径”
在访问变量的全局变量列表中,变量的访问路径不正确。正确:<Identifier>:'<Accesspath>':<Type><Access
mode>。
3507“没有'VAR_ACCESS'变量的地址规范”
AccessVariables 的全局变量列表包含变量的地址分配。这是不允许的。
3550“标识符'<name>'的重复定义”
有两个任务被定义为相同的同名。重命名其中之一。
3551“任务'<name>'必须包含至少一个程序调用”
插入程序调用或删除任务。
3552“未定义任务'<<name>中的事件变量'name>”
在任务属性对话框的“单个”字段中设置了一个事件变量,该变量未在项目中全局声明。使用另一个变量或
全局定义该变量。
3553“任务'<name>中的事件变量'<name>'必须为'BOOL'类型”
3554“任务条目'<name>'必须是程序或全局功能块实例”
在“程序调用”字段中,输入函数或未定义的 POU。输入有效的程序名称。
3555“任务条目'<name>'包含无效参数”
3556“当前选定的目标不支持任务”
当前定义的任务配置不能用于当前设置的目标系统。相应地更改目标或修改任务配置。
3557“超出最大任务数('<数>'数'”
当前定义的任务数超过了当前设置的目标系统允许的最大数目。相应地更改目标或修改任务配置。注意:
请勿编辑任务配置的 XML 描述文件!
CoDeSysV2.3版本 10-121
附录 K:-编译器错误和警告
当前为任务定义的优先级对于当前设置的目标系统无效。相应地更改目标或修改任务配置。
“任务'<name>':当前目标不支持间隔任务”
当前任务配置包含间隔任务。当前设置的目标系统不允许这样做。相应地更改目标或修改任务配置。
3560
“任务'<name>':当前目标不支持自由轮任务”
当前任务配置包含自由轮任务。当前设置的目标系统不允许这样做。相应地更改目标或修改任务配置。
3561
“任务'<name>':当前目标不支持事件任务”
当前任务配置包含当前设置的目标系统不支持的事件任务。相应地更改目标或修改任务配置。
3562
“任务'<name>':当前目标不支持外部事件任务”
当前任务配置包含当前设置的目标系统不支持的外部事件任务。相应地更改目标或修改任务配置。
3563
“任务'<名称>的间隔超出了'<下限>和'<上限>'之间的有效范围”
在任务的配置对话框中更改间隔值。
3564
“当前目标不支持任务'<name>'的外部事件'<name>'”
当前设置的目标系统不支持此任务的任务配置中定义的外部事件。相应地更改目标或修改任务配置。
3565
“超出事件任务的最大数量('<number>'”
当前设置的目标系统不允许执行当前定义的事件任务。相应地更改目标或修改任务配置。
3566
“超出最大间隔任务数('<number>'”
当前设置的目标系统不允许执行当前定义的那么多间隔任务。相应地更改目标或修改配置。
3567
“超出了自由轮任务的最大数量('<数>'”
当前设定的目标系统不允许执行目前定义的那么多的自由轮任务。相应地更改目标或修改配置。
3568
“超出了外部间隔任务的最大数量('<number>'”
当前设置的目标系统不允许执行当前定义的那么多的外部间隔任务。相应地更改目标或修改配置。
10-122 CoDeSysV2.3版本
附录 K:-编译器错误和警告
应由任务配置中定义的命名系统事件调用的POU在项目中不可用。相应地修改任务配置,或者确保POU
在项目中可用。
3570“任务'<name>'和'<name>'具有相同的优先级”
修改任务配置,使每个任务具有不同的优先级。
3571“库'SysLibCallback'不包含在项目中!无法生成系统事件。
为了创建事件任务,需要 SysLibCallback.lib。在库管理器中将此库链接到项目,或修改任务配置(任务
属性),以便不会有由事件触发的任务。
3575“任务<'名称>':循环时间必须是<数字>μs的倍数。”
在此任务的“任务属性”对话框中相应地更正周期时间。目标系统定义一个基准时间,并规定周期时间必须
等于或等于该基准时间的倍数。
3600“未找到隐式变量!”
3601“<name> 是保留变量名称”
给定的变量在项目中声明,尽管它是为代码生成器保留的。重命名变量。
3610“ 不支持<名称>”
当前版本的编程系统不支持给定的功能。
3611“给定的编译目录'<name>无效”
编译文件的“项目”、“选项”、“目录”中给出了一个无效的目录。
3613“生成已取消”
编译过程已被用户取消。
CoDeSysV2.3版本 10-123
附录 K:-编译器错误和警告
创建程序类型的初始化 POU(例如PLC_PRG)或设置任务配置。
3615“<名称>(主例程)必须是程序类型”
3616“程序不能在外部库中实现”
应另存为外部库的项目包含一个程序。当使用库时,这将不可用。
3617“内存不足”
增加计算机的虚拟内存容量。
3618“当前代码生成器不支持 BitAccess!”
当前设置的目标系统的代码生成器不支持对变量进行位访问。
3619“对象文件'<name>'和库'<name>'有不同的版本!”
3620“POU'<name> 不得出现在图书馆内”
3621“无法写入编译文件'<name>'”
可能在为编译文件指定的路径中已经有一个同名的文件,它是“只读”的。删除该文件或更改访问权限。
3622“无法创建符号文件'<name>'”
可能在为符号文件指定的路径(通常是项目目录)中,已经有一个同名的文件,该文件是“只读”的。删除
该文件或更改访问权限。
3623“无法写入启动项目文件'<name>'”
可能在为符号文件(特定于目标)指定的路径中,已经有一个同名的文件,该文件是“只读”的。删除该文
件或更改访问权限。
在“目标设置”对话框(“资源”选项卡)中检查并更正这些设置。如果设置不可 或不可编辑,请联系
PLC 制造商。
10-124 CoDeSysV2.3版本
附录 K:-编译器错误和警告
3702“标识符列表溢出”
3703“标识符'<名称>'的重复定义”
3704“” 数据递归:“<FOR0>-><FOR1>->..“-><代表0>”“”
使用功能块的实例,该实例调用自身。
创建任务配置或VAR_IN_OUT确保
PLC_PRG。
3720“'AT'之后的地址”
在关键字 AT 后添加有效地址或修改关键字。
3721“只有'VAR'和'VAR_GLOBAL'可以定位到地址”
3722“位地址上只允许'BOOL'变量”
修改地址或修改分配地址的变量的类型。
3726“常量不能放在直接地址上”
相应地修改地址分配。
3727“不允许在此地址上进行数组声明”
相应地修改地址分配。
CoDeSysV2.3版本 10-125
附录 K:-编译器错误和警告
3728“无效地址:'<地址>'”
3729“在地址'<Name>'处键入'<name>'无效”
3740“无效类型:'<名称>'”
变量声明中使用了无效的数据类型。
3741“预期型式规格”
使用关键字或运算符代替有效的类型标识符。
3742“预期的枚举值”
在枚举类型的定义中,左括号后或括号之间的逗号后缺少标识符。
3743“应为整数”
3744“枚举常量'<name>'已定义”
检查枚举值的定义是否遵循了以下规则:
在一个枚举定义中,所有值都必须是唯一的。
在所有全局枚举定义中,所有值都必须是唯一的。
在所有本地枚举定义中,所有值都必须是唯一的。
3745“子范围只允许在整数上!”
子范围类型只能基于整数数据类型进行定义。
3746“子范围'<name>'与类型'<name>'不兼容”
为子范围类型范围设置的限制之一超出了对基本类型有效的范围。
3747“未知字符串 度:'<name>'”
有一个无效的常量用于定义字符串 度。
10-126 CoDeSysV2.3版本
附录 K:-编译器错误和警告
3748“数组不允许超过三个维度”
数组的定义中给出了超过允许的三个维度。如果适用,请使用
数组的数组。
3749“下限'<名称>未定义”
有一个未定义的常量用于定义子范围或数组类型的下限。
3750“上限'<名称>未定义”
有一个未定义的常量用于定义子范围或数组类型的上限。
3751“字符串 度<字符数>无效”
此处定义的字符串 度超过了为当前设置的目标系统定义的最大值。
3752“嵌套数组不允许超过 9 个维度”
3760“初始值错误”
使用与类型定义相对应的初始值。要更改声明,您可以使用变量的声明对话框(Shift/F2 或“编辑”、“自
动声明”)。
3761“'VAR_IN_OUT'变量不得有初始值。”
删除 VAR_IN_OUT 变量声明处的初始化。
3780
“应为'VAR'、'VAR_INPUT'、'VAR_OUTPUT'或'VAR_IN_OUT'”
POU 名称后面的第一行必须包含以下关键字之一。
3781“'END_VAR'或标识符应为”
在声明窗口中给定行的开头输入END_VAR的有效标识符。
第3782章“意想不到的结局”
在声明编辑器中:在声明部分的末尾添加关键字END_VAR。
在编程部分的文本编辑器中:添加一条终止最后一个指令序列的指令(例如END_IF)。
3783“应为END_STRUCT”或标识符”
确保类型声明已正确终止。
CoDeSysV2.3版本 10-127
附录 K:-编译器错误和警告
3784“当前目标不支持属性<属性名称>”
目标系统不支持这种类型的变量(例如 RETAIN、PERSISTENT)
3800“全局变量需要太多内存。增加项目选项中的可用内存。
增加“项目”、“选项”、“构建”对话框中设置中给出的段数。
3801“变量'<Name>'太大了。(<大小>字节)”
3804“锣石数据描述的当前大小为<'数字'>字节,超过了<'数字'>字节的最大值。”
将持久性数据减少到目标系统允许的大小。
3820“函数中不允许使用'VAR_OUTPUT'和'VAR_IN_OUT'”
在函数中,不能定义任何输出或in_output变量。
3821“函数至少需要一个输入”
至少添加函数的输入参数。
3840“未知的全局变量'<name>'!”
在 POU 中,使用VAR_EXTERNAL变量,没有为其声明全局变量。
3841“'<名称>的声明与全球声明不符!”
VAR_EXTERNAL变量声明中给出的类型与全局声明中给出的类型不同。
10-128 CoDeSysV2.3版本
附录 K:-编译器错误和警告
3850“不允许在已打包的结构'<name>内声明解压缩的结构'<name>'!”
这种结构定义会导致内存中的错位。适当修改定义。
3900“标识符中的多个下划线”
删除标识符名称中的多个下划线。
3901“地址中最多允许 4 个数字字段”
有一个直接分配给一个有四个以上级别的地址。(例如 %QB0.1.1.0.1)。
3902“关键字必须为大写”
使用大写字鯦作为关键字,或在“项目”“选项”中激活选项“自动格式”。
3903“无效的持续时间常量”
3904“持续时间常数溢出”
用于时间常数的值不能以内部格式表示。可表示的最大值是 t#49d17h2m47s295ms。
3905“无效的日期常量”
3906“无效的时间常量”
3907“无效的日期和时间常量”
3908“无效的字符串常量”
字符串常量包含无效字符。
4000“应为标识符”
在此位置输入有效的标识符。
4001“变量'<名称>未声明”
CoDeSysV2.3版本 10-129
附录 K:-编译器错误和警告
4010“类型不匹配:无法将'<Name>转换为'<Name>'。”
检查运算符所需的数据类型(浏览联机帮助以获取运算符的名称)并更改导致错误的变量的类型,或选择
其他变量。
4011“'<Name>'的参数'<Name>中的类型不匹配:无法将'<Name>转换为'<Name>'。
实际参数的数据类型无法自动转换为形式参数的数据类型。使用类型转换或使用其他变量类型。
4012“'<Name>'的参数'<Name>中的类型不匹配:无法将'<Name>'转换为'<Name>'。
4013“'<Name>'的输出'<Name>'中的类型不匹配:无法将'<Name>'转换为'<Name>'。
4014“键入文本:无法将'<name>'转换为'<name>'”
常量的类型与前缀的类型不兼容。
示例:SINT#255
4015“数据类型'<name>'非法用于直接位访问”
直接位寻址只允许用于整数-位字符串数据类型,而根本不允许直接变量。您正在使用 TypREAL/LREAL
类型的变量 var1 或位访问 <var1>.<bit> 中的常量,或者您正在尝试对直接变量进行位访问。
4016“'<name>' 类型变量的位索引'<number>'超出范围”
您正在尝试访问未为变量的数据类型定义的位。
4017“'MOD'不是为'REAL'定义的”
4020“'ST'、'STN'、'S'、'R' 需要具有写入访问权限或直接地址的变量”
将第一个操作数替换为具有写入访问权限的变量。
4021“不允许对变量'<name>'进行写入访问”
将变量替换为具有写入访问权限的变量。
4022“预期操作数”
在命令后面添加操作数。
10-130 CoDeSysV2.3版本
附录 K:-编译器错误和警告
4023“'+'或'-'之后的预期数字”
输入数字。
在指定位置输入有效的操作数。
4025“在'<姓名>'之前出现':='或'=>'”
在指定位置输入两个运算符之一。
4026“'BITADR'需要位地址或位地址上的变量”
使用有效的位地址(例如 %IX0.1)。
4027“预期的整数或符号常量”
输入整数或有效常量的标识符。
4028“'INI' 运算符需要功能块实例或数据单元类型实例”
4029“无法对同一函数进行嵌套调用。”
在非重入目标系统中,在仿真模式下,函数调用可能不包含作为参数的自身调用。
示例:fun1(a,fun1(b,c,d),e);
使用中间表。
4030“表达式和常量不允许作为'ADR'的操作数”
将常量或表达式替换为变量或直接地址。
4031“'ADR'不允许在位上!请改用'BITADR'。
使用 BITADR。请注意:BITADR 函数不返回物理内存地址。
4032“'<number> 操作数对于'<name>'来说太少了。至少需要'<number>'”
检查命名运算符需要多少个操作数,并添加缺少的操作数。
4033“'<number> 操作数对于'<name>'来说太多了。至少需要'<number>'”
检查指定运算符需要多少个操作数,并删除多余的操作数。
CoDeSysV2.3版本 10-131
附录 K:-编译器错误和警告
4034“除以0”
4035“如果激活了'替换常量',则不得对'VARCONSTANT'应用ADR”
无法对使用直接值的常量进行地址访问。如果适用,请停用“项目”“选项”“构建”中的“替换常量”选项。
4040“标签'<名称>未定义”
4041“标签'<name>'的重复定义”
4042“允许按顺序使用不超过<个>号标签”
跳转标签的数量限制为“<Anzahl>”。插入虚拟指令。
4043“标签格式无效。标签必须是名称(可选)后跟冒号。
“标签名称无效或定义中缺少冒号。
4050“未定义 POU'<名称>'”
4051“'<名称>'没有功能”
使用在项目或库中定义的函数名称,而不是<Name>。
使用项目中定义的数据类型为“<Name>”的实例,或将<实例名称>的类型更改为“<Name>”。
4053“'<名称>'不是有效的框或运算符”
4054“POU 名称应作为'INDEXOF'的参数”
10-132 CoDeSysV2.3版本
附录 K:-编译器错误和警告
4061“必须使用'<name>'的'VAR_IN_OUT'参数'<name>'。”
4062“无法从外部访问'<name>'的'VAR_IN_OUT'参数'<name>'。”
位地址不是有效的物理地址。交出变量或直接非位地址。
4064“'VAR_IN_OUT'不得在本地操作调用中被覆盖!”
4070“POU 包含过于复杂的表达式”
通过将表达式划分为多个表达式来减小嵌套深度。为此,请使用中间变量。
4071“网络太复杂”
将网络划分为多个网络。
4072“FB 类型('<name>')和实例('<name>')中操作标识符的使用不一致。”
4100“'^' 需要指针类型”
您正在尝试取消引用未声明为指针的变量。
4110“[<index>]'需要数组变量”
4111“数组的索引表达式必须为'INT'类型”
使用正确类型的表达式或类型转换。
CoDeSysV2.3版本 10-133
附录 K:-编译器错误和警告
4112“数组的索引过多”
检查为其声明数组的索引(1、2 或 3)的数量,并删除多余的索引。
4113“数组的索引太少”
检查为其声明数组的索引(1、2 或 3)的数量,并添加缺少的索引。
4114“其中一个常量不在数组范围内”
确保使用的索引在数组的边界内。
4120“'.' 需要结构变量””
4121“'<名称>'不是<对象名称>的组成部分”
组件“<Name>”不包含在对象<对象名称>的定义中。
4122“'<名称>'不是被调用功能块的输入变量”
检查被调用功能块的输入变量,并将“<name>”更改为其中之一。
4200“'LD' 预期”
在 IL 编辑器中的跳转标签后插入至少一条 LD 指令。
4201“应使用 IL 操作员”
每个 IL 指令必须以运算符或跳转标签开头。
4202“括号中文本的意外结尾”
在案文后插入右括号。
4203“<姓名>不允许在括号内使用”
4204“没有相应开口支架的闭合支架”
插入一个打开的支架或取下关闭的支架。
4205“')'后不允许使用逗号”
删除右括号后的逗号。
10-134 CoDeSysV2.3版本
附录 K:-编译器错误和警告
4206“不允许在括号内使用标签”
移动跳转标签,使其位于括号之外。
4207“'N' 修饰符需要类型为'BOOL'、'BYTE'、'WORD'或'DWORD'的操作数”
N 修饰符需要数据类型,可以对其执行布尔否定。
4208“条件运算符需要类型'BOOL'”
确保表达式给出布尔值结果或使用类型转换。
4209“此处不允许使用函数名称”
将函数调用替换为变量或常量。
4210“'CAL'、'CALC'和'CALN'需要一个功能块实例作为操作数”
声明要调用的功能块的实例。
4211“在 IL 中,只允许在行尾添加注释”
将注释移到行尾或多出一行。
4212“累加器在条件语句之前无效”
未定义 accu。如果前面的指令没有提交结果(例如“CAL”),就会发生这种情况。
在这个地方使用布尔变量。
4250“预计会有另一个'ST'声明或POU结束”
该行不以有效的 ST 指令开头。
4251“函数'<name>'中的参数过多”
给出的参数多于函数定义中声明的参数。
4252“函数'<name>'中的参数太少”
给出的参数少于函数定义中声明的参数。
4253“'IF'或'ELSIF'要求'BOOL'表达作为条件”
确保 IF 或 ELSIF 的条件是布尔表达式。
CoDeSysV2.3版本 10-135
附录 K:-编译器错误和警告
确保“WHILE”后面的条件是布尔表达式。
确保“UNTIL”后面的条件是布尔表达式。
确保“NOT”后面的条件是布尔表达式。
4257“'FOR' 语句的变量必须为'INT'类型”
确保计数器变量是整数或位字符串数据类型(例如 DINT、DWORD)。
4258“'FOR'语句中的表达式没有具有写访问权限的变量”
将计数器变量替换为具有写入访问权限的变量。
4259“'FOR'语句中的起始值没有具有写访问权限的变量”
“FOR”指令中的起始值必须与计数器变量的类型兼容。
4260“'FOR'语句的结束值必须为'INT'类型”
“FOR”指令中的结束值必须与计数器变量的类型兼容。
4261“'FOR'语句的增量值必须为'INT'类型”
“FOR”指令中的增量值必须与计数器变量的类型兼容。
4262“'EXIT' 在循环之外”
仅在“FOR”、“WHILE”或“UNTIL”指令中使用“EXIT”。
4263“期待数字,'ELSE'或'END_CASE'”
在“CASE”表达式中,您只能使用数字或“ELSE”指令或结束指令“END_CASE”。
4264“'CASE' 需要整数类型的选择器”
确保选择器是整数或位字符串数据类型(例如 DINT、DWORD)。
4265“','之后的预期数字”
在 CASE 选择器的枚举中,必须在逗号后插入另一个选择器。
10-136 CoDeSysV2.3版本
附录 K:-编译器错误和警告
4266“至少需要一份声明”
插入一条指令,至少一个分号。
4267“功能块调用需要功能块实例”
功能块调用中的标识符不是实例。声明所需功能块的实例或使用已定义实例的名称。
4268“预期的表达式”
插入表达式。
4269“'END_CASE'应在'ELSE'分支之后”
在“ELSE”部分之后用“END_CASE”终止“CASE”指令。
4270“'CASE'常量'<name>'已使用”
“CASE”选择器在“CASE”指令中只能使用一次。
4271“范围的下边界大于上限。”
修改选择器的区域边界,使下边框不高于上边框。
4272“在调用'<name>'时,在位置<位置>期待参数'<>name'!”
您可以以这种方式编辑函数调用,同时包含参数名称,而不仅仅是参数值。但是,参数的位置(序列)必
须与函数定义中的位置(顺序)相同。
确保 CASE 指令中使用的选择器区域不重叠。
一个 CASE 指令不能包含多个“ELSE”指令。
4300“Jump 需要'BOOL'作为输入类型”
CoDeSysV2.3版本 10-137
附录 K:-编译器错误和警告
4303“'<name>' 不是运算符”
将“<Name>”替换为有效的运算符。
4320“与联系人一起使用的非布尔表达式'<name>'”
触点的开关信号必须是布尔表达式。
4321“与线圈一起使用的非布尔表达式'<name>'”
4330“在'<name>框的输入'EN'时预期的表达式”
4331“在'<名称'框的输入'<number>'时应有表达式>”
4332“在'<Name>'框的输入'<name>'处应有表达式”
4333“预期跳转中的标识符”
给定的跳转标记不是有效的标识符。
4334“跳转输入时预期的表情”
将布尔表达式分配给跳转的输入。如果为 TRUE,则将执行跳转。
4335“返回输入时预期的表达式”
4336“输出输入时预期的表达式”
为输出框分配合适的表达式。
4337“预期输入的标识符”
在输入框中插入有效的表达式或标识符。
10-138 CoDeSysV2.3版本
附录 K:-编译器错误和警告
4338“框'<名称>'没有输入”
4339“输出时的类型不匹配:无法将'<name>'转换为'<name>'。
输出框中的表达式类型与应分配给它的表达式的类型不兼容。
4340“Jump 需要'BOOL'作为输入类型”
确保跳转的输入是布尔表达式。
4341“返回需要布尔输入”
确保 RETURN 指令的输入是布尔表达式。
4342“在'<name>'框的输入'EN'处应有表达式”
将有效的布尔表达式分配给框的 EN 输入。
4343“常量的值:'<name>'”
在 Setresp.Reset 指令后插入一个有效的布尔表达式。
4345“'<name>' 的参数'<name>'的类型无效:无法将'<type>'转换为'<type>'。”
4346“不允许使用常量作为输出”
您只能将输出分配给具有写入访问权限的变量或直接地址。
4347“'VAR_IN_OUT'参数需要具有写入访问权限的变量作为输入”
4348“程序名称'<name>'无效。已存在同名变量。
CoDeSysV2.3版本 10-139
附录 K:-编译器错误和警告
适当更正 POU。
4350“证监会行动不能从外部访问!”
4351“步骤名称不是标识符:'<name>'”
重命名步骤或选择有效的标识符作为步骤名称。
4352“有效步骤名称后面的额外字符:'<Name>'”
删除步骤名称中无效的字符。
4353“步骤名称重复:'<名称>'”
重命名其中一个步骤。
4354“跳转到未定义的步骤:'<名称>'”
选择一个现有的步骤名称作为跳转的目标,插入名称为“<name>”的步骤。
4355“过渡不得有任何副作用(分配、FB-Calls 等)”
转换必须是布尔表达式。
4356“在没有有效步骤名称的情况下跳转:'<Name>'”
使用有效的标识符作为跳跃的目标(标记)。
4357“找不到 IEC 库”
4358“未宣布的行动:'<名称>'”
4359“无效的限定符:'<name>'”
10-140 CoDeSysV2.3版本
附录 K:-编译器错误和警告
4360“限定符'<name>'之后的预期时间常数”
在操作名称左侧的框旁边输入限定符后面的时间常量。
4361“'<名称>'不是行动的名称”
在限定符右侧的框旁边输入操作的名称或项目中定义的变量的名称。
4362“操作中使用的非布尔表达式:'<name>'”
插入布尔变量或有效的操作名称。
4363“IEC 步骤名称已用于变量:'<名称>'”
请重命名步骤或变量。
4364“转换必须是布尔表达式”
4365“限定符'<name>'之后的预期时间常数”
打开步骤“<名称>”的“步骤属性”对话框,然后输入有效的时间变量或时间常数。
4366“并行分支的标签不是有效的标识符:'<名称>'”
在标记跳转标签的三角形旁边输入一个有效的标识符。
4367“标签'<name>'已被使用”
已存在具有此名称的跳转标签或步骤。请相应重命名。
4368“动作'<name>'用于多个步骤链,其中一个步骤链包含另一个步骤链!”
4369“转换只需要一个网络”
4370“在正确的 IL 转换后找到的其他行”
删除过渡结束时不需要的行。
4371“有效表达式后面的无效字符:'<name>”
删除过渡结束时不需要的字符。
CoDeSysV2.3版本 10-141
附录 K:-编译器错误和警告
4372“步骤'<name>':时间限制需要键入'TIME'”
4373“IEC操作仅允许使用SFC-POU”
4374“预期步骤而不是转换'<名称>'”
SFCPOU 已损坏,可能是由于任何导出-导入操作所致。
4375“预期转换而不是步骤'<name>'”
SFCPOU 已损坏,可能是由于任何导出-导入操作所致。
4376“转换'<名称>'后预期的步骤”
SFCPOU 已损坏,可能是由于任何导出-导入操作所致。
4377“步骤'<名称>'之后的预期转换”
SFCPOU 已损坏,可能是由于任何导出-导入操作所致。
4400POU'<name>'的导入/转换包含错误或不完整。
确保仅访问定义为输入或输出的变量。
相应的IEC定时器没有复位输入。
10-142 CoDeSysV2.3版本
附录 K:-编译器错误和警告
4408“计时器或计数器字的位访问不可转换为 IEC61131-3。”
特殊定时器/计数器命令不能转换为 IEC61131-3。
导入被调用的 POU。
4411“全局变量列表中的错误。”
4412“内部错误编号11”
4413“数据块中行的格式错误”
在应该导入的代码中,有一个错误的日期。
4414“FB/FX 名称缺失。”
4415“不允许在区块结束后进行指令。”
无法导入受保护的 POU。
4416“无效的命令”
S5/S7 命令无法反汇编。
4417“评论未关闭”
用“*)”结束评论。
CoDeSysV2.3版本 10-143
附录 K:-编译器错误和警告
(扩展的)POU 的符号名称太 。
相应地更正该行。
检查 POU。
4421“FB/FX 参数类型无效”
检查 POU。
检查 POU。
检查POU的接口。
4424“警告:FB/FX 用于调用缺失或参数无效或具有”0“参数”
4425“标签缺失的定义”
未定义跳跃的目标(标签)。
修改 TO 名称。
4427“未声明计时器类型”
在全局变量列表中添加计时器的声明。
您不能使用超过七个开放括号。
4429“形式参数名称错误”
参数名称不能超过四个字符。
10-144 CoDeSysV2.3版本
附录 K:-编译器错误和警告
4431“STEP5STL 中的调用的'VAR_OUTPUT'参数过多”
A 不能包含超过 16 个形式参数作为输出。
4432“不允许在表达式中使用标签”
在 IEC61131-3 中,跳线标签不得插入任何所需位置。
4434“标签太多”
A 包含的标签不得超过 100 个。
4435“跳转/呼叫后,必须开始一个新的表达式”
4436“位结果未定义,不可转换为 IEC61131-3。”
4437“指令类型和操作数不兼容”
A 命令用于单词操作数,反之亦然。
4438“未打开数据块(之前插入指令 CDB)”
插入“ADB”。
4500“无法识别的变量或地址”
4501“有效监视表达式后面的额外字符”
去除多余的标志。
4520“Pragma 中的错误:在'<Name>'之前应显示标志!”
编译指示不正确。检查“<Name>”是否为有效标志。
4521“Pragma 中的错误:意外元素'<Name>'!”
检查编译指示是否正确。
CoDeSysV2.3版本 10-145
附录 K:-编译器错误和警告
第4522章 “FlagOff'PragmaExpected!”
Pragma 尚未终止,请插入“flagoff”指令。
4550“索引超出定义范围:可变 OD”编号>,行<行数>”。
确保索引位于目标设置/网络功能中定义的区域内。
4551“子索引超出定义范围:变量 OD”数字>,行<行数>”。
确保子索引位于目标设置/网络功能中定义的区域内。
4552“索引超出定义范围:参数 OD”number>,行<行号>”。
确保索引位于目标设置/网络功能中定义的区域内。
确保子索引位于目标设置/网络功能中定义的区域内。
4554“变量名称无效:变量 OD<number>,行<行号>。”
4555“空表条目,输入非可选:参数 OD<编号>,行<行号>
您必须在此字段中输入。
4556“空表条目,输入非可选:变量 OD<number>,行<number>”
您必须在此字段中输入。
4557“所需的参数内存太大”
已超过可通过Parameters类型的参数列表加载到控制器的最大数据大小。此大小由目标系统定义。有关
数据大小的信息在编译时显示在消息窗口中。减小参数列表大小。
4558“所需的变量内存太大”
已超过可通过变量类型的参数列表加载到控制器的最大数据大小。此大小由目标系统定义。有关数据大小
的信息在编译时显示在消息窗口中。减小参数列表大小。
10-146 CoDeSysV2.3版本
附录 K:-编译器错误和警告
4560
无效值:字典'<名称>',列'<名称>',行'<行号>'”
检查此条目。这取决于当前使用的列(属性)定义,哪些条目对此字段有效。此定义由参数管理器的特定
于目标的 XML 描述文件或标准设置给出,如果没有描述文件,将使用该设置。
4561
“列未定义:'<Name>'”
参数列表的某一列中的条目引用另一列,但未定义该列。列定义由当前目标的参数管理器的描述文件(
XML)给出。如果描述文件不可用,则使用标准设置。
4562
“已使用的索引/子索引:字典'<名称>',行'<行号>'”
索引/子索引组合在所有参数列表中必须是唯一的,因为它可用于参数访问。相应地更正索引。
4563
“标识符'<Name>'已使用:字典'<Name>',行'<行号>'”
该名称在所有参数列表中必须是唯一的,因为它可用于参数访问。
4564
“索引'<名称>'超出范围:字典'<名称>',行'<行号>'”
输入在目标设置中定义的范围内的索引,在字段“索引范围...”中类别网络功能用于相应的列表类型(变
量、参数、映射)。
4565
“子索引'<Name>'超出范围:字典'<Name>',行'<行号>'”
输入在目标设置中定义的范围内的子索引,在字段“子索引范围”中对网络功能进行分类。
4566
“导入参数管理器时出错”
您已导入一个导出文件,其中包含有关参数管理器的错误信息。检查 *.exp 文件。
4600
“Networkvariables: '<name>' 表达式不是来自 bool 类型!”
确保在选项“事件时传输”的网络变量列表的属性对话框中定义的变量的类型为 BOOL。
4601“
“网络变量'<name>':未找到网络变量交换的循环或随心所欲的任务”
在使用给定列表的CAN或UDP类型的网络变量的项目中,没有循环或自由PLC_PRG任务(仅声明是不够
的!您必须注意在适当的任务或PLC_PRG中使用变量。如果要在多个任务中使用它们,请注意,在数据
交换时,将考虑具有最高优先级的任务。
CoDeSysV2.3版本 10-147
附录 K:-编译器错误和警告
4602
“'<网络变量列表的名称>':对象使用 UDP 端口'<端口号>而不是'<端口号>'”
在命名网络变量列表的“设置”中,使用的端口号与全局变量文件夹中的第一个网络变量列表中使用的端口
号不同。请注意,所有网络变量列表都使用相同的端口!
4604
“网络变量'<name>':基本标识符已被多次使用。”
在多个网络变量列表的配置设置(“对象”、“属性”)中使用相同的 COB-ID。分配唯一 ID。
4605
“网络变量'<name>':重复的 CANCOBID。”
在网络变量列表(“对象”“属性”)的配置中,使用了COB-ID,该ID也在CANPLC配置中指定。分配唯一
ID。
4620
在项目中发现了未使用的变量。请参阅第 4.3 章,了解命令“Project”“检查”未使用的变量的描述。
4621
通 过 “AT” 声 明 将 变 量 分 配 给 内 存 区 域 时 存 在 重 叠 。 参 第 4.3 章 , 了 解 命 令 'Project' 'Check'
'Overlappingmemoryareas' 的描述。
4622
分配给同一内存区域的 IEC 地址在多个任务中被引用。有关命令“Project”、“Check”、“ConcurrentAccess”
的描述,请参 第 4.3 章。
4623
项目在多个位置获得对同一内存区域的写入访问权限。有关命令“Project”、“Check”、“Multiplewritetooutput”的
描述,请参 第 4.3 章。
4650“AxisGroup'<Name>':任务'<Name>'不存在。
在 PLC 配置中,在轴组的定义中(对话框“模块参数”,列“值”),为任务定义了一个名称,用于控制该
轴组的数据传输,这在任务配置中是未知的。正确的任务配置和相应的PLC配置。
4651
“AxisGroup'<Name>':未设置周期时间(dwCycle)。
在轴组的“模块参数”对话框中,输入循环时间(dwCycle)的值。
4656
“驱动器'<name>':缩放因子不得为 0。
打开 PLC 配置并检查驱动器配置对话框中的 Scale 条目。所有字段的条目必须不等于“0”。
4670
“CNC 程序'<名称>':找不到全局变量'<名称>'。”
10-148 CoDeSysV2.3版本
附录 K:-编译器错误和警告
在CNC程序中,使用全局变量(例如$glob_var$),该变量未在项目中定义。添加适当的声明或更正
CNC程序中变量的赋值。
4671“CNC 程序'<名称>':变量<名称>'具有不兼容的类型。”
在CNC程序的指令中分配了一个变量,该变量被声明为在这个地方无效的数据类型。使用另一个变量或
更正类型规范。
4686“CAM'<名称>':CAM 点超出数据类型范围。
在可视化的配置中,使用了一个变量,该变量不是数字,正如这里所要求的那样(例如,在配置 XOffset
或 Angle 值等时)。
可视化包含无效变量。
4704“'<Name>'('<Number>'):监视列表'<Name>'中的初始值无效。
4705“'<名称>'('<编号>'):未为警报表分配有效的警报组。
在告警表(类别告警表)的配置对话框中输入有效的告警组。
4706“'<名称>'('<编号>'):使用报警表需要激活目标设置'控制器中的报警处理'。
在“资源”选项卡中打开目标设置,在“可视化”对话框中激活选项“PLC中的报警处理”。否则,警报表元
素将无法在目标可视化中工作,该目标可视化当前也在目标设置中激活。
CoDeSysV2.3版本 10-149
附录 K:-编译器错误和警告
4707“'<Name>' ('<Number>'):当前目标不支持警报表。请从目标可视化中删除这些元素。
目标系统不支持报警处理(无法激活目标设置“PLC 中的报警处理”)。因此,要运行目标可视化(当前
在“可视化”选项卡的目标设置中激活),必须从可视化中删除警报表元素。
4709“'<Name>' ('<Number>'):当前目标不支持趋势。请从目标可视化中删除这些元素。
4712“'<Name>'('<number>'):所选目标不支持密码输出””
4900“转换类型无效”
您正在使用当前选择的代码生成器不支持的类型转换。
4901“内部错误:阵列访问溢出!”
对于 32 位变量,数组边界很大。减小数组索引范围。
10-150 CoDeSysV2.3版本
11 - 索引
11 指数
8
ALARM_TASK 10-97
8.3 文 件 格 式 10-97 PLC 中的报警处理 10-97 报警
8051 10-91 6-9
别名10-37
一个 指针访问处的对齐方式 10-35 备选分
支 2-21SFC 中的备选分支 2-21,
接受访问权限 4-42 接受更改 4-41 接受更改的项 5-42 表 达 式 分 析 10-61 分 析 New.lib
目 4-41 接受属性 4-41 访问冲突 4-45 访问保护 10-61
4-24, 4-46 访问权限 4-46DeviceNet-Slave参数
的访问权限 6-49 访问权限 4-58 确认 6-10 警报确
和 10-4AWL 中的 AND 运算
认 6-9 证监会中的行动助理 5-47 作业控制中的操
符 2-9 附加程序调用 6-54 附
作 2-7、2-16、4-59 作业控制中的操作添加 5-43 加任务 6-51、6-52 反余弦
缩放 5-44 超时错误时的操作 6-48 操作隐藏程序 10-23 反正弦 10-2610-23
4-12 激活心跳消费者 6-43 激活心跳消费者 6-39 反正切 10-23 过刊浏览
激活心跳生成 6-43 激活心跳制作器 6-39 激活系 10-72 过刊浏览 ZIP4-25 参
统变量 CurrentVisu10-97 激活 6-33 活动步骤 数 2-1、2-3 参数 2-5 排列符
2-17 号 4-83“数组声明”对话框
5-8
阵列10-33
数组\Access10-33 数组\初始化 10-33
参数管理器中的数组 6-73 步骤属性
5-45 、 5-46 跟 踪 的 ASCII 格 式 6-69
ASD 文件4-4
ASIN 10-23
添加 10-1 添加配置文件 6-24 为并行分支添 询 问 项 目 信 息 4-5 asl.-file \*
加标签 5-43 添加对象 4-54, 4-55AWL 中 MERGEFORMAT4-5 作业
的 ADD 运算符 2-9 添加共享对象 4-52 加入 2-11, 5-33 作 业 梳 理 5-33
查看列表 6-61 其他 CoDeSys 功能 1-2 附加 FBD 中的作业 5-31 作业运算符
在 线 功 能 1-1 地 址 DeviceNet-Master 6-45 2-13
DeviceNet-Slave6-46PLC配置地址检查
10-94 地址10-29
AT5-6AT 声明5-6
阿坦10-23
附加手表变量 6-61 自动清除
模式 6-30 自动删除 6-48 自动
加载 4-5 自动复位 6-48 自动
保存 4-4 编译前自动保存 4-5
自动声明 4-6, 5-8 自动套用
ADR10-13 实例地址10-13 格式 4-6 自动启动 6-43 自动
启动 6-30 可用连接
DeviceNet-Slave 6-49
阿德林斯特10-13
报警确认 6-10 报警等级 6-13 报警等级
6-10 报警配置 6-10、6-13 报警配置设置
6-16 报警配置\在线设置 6-16 报警停用
6-13 报警评估停用 6-16 报警事件 6-9 报
警组 6-13 报警信息 6-13 报警优先级
6-9、6-13 报警保存 6-15 报警状态 6-9
报警类型6-13
B
返回一个宏级别 5-59 自动备
份 4-4 烘焙文件 4-4 基本参数
DeviceNet-Master6-45 基本
参数位通道 6-29CAN主机
6-36CAN模块 6-37 通道
CoDeSysV2.3版本 命令行界面
11 - 索引
BCD_TO_INT 10-50
二进制应用程序文件 4-12 二进
制符号信息 4-20ST算子的绑定
2-11 位寻址 10-28 位选通 6-48
位访问5-13, 10-28 位寻址变量
5-29 位寻址变量5-22
比塔德尔10-13
位通道 6-29 位函数
10-50 位值4-7
眨眼10-57
5-39座
布尔10-31
BOOL 常数 10-25BOOL_TO 转换 10-14 启动项目
4-5、 4-7 、 4-12 、 4-71 、 4-82 、 10-76 、 10-94 框 5-32
LD 中带 EN 输入的框 5-38 断点删除 5-24 设置 5-23 断
点 1-1、2-24、5-22 断点 5-24“断点”对话框 4-73 断点
位置 4-72 文本编辑器中的断点位置 5-23 广播 6-3 浏览
器 ini-文件 6-81 构建 4-11, 4-30、4-69、10-71 总线标
识符 6-42 总线参数 DP 主站 6-31BusDiag.lib6-26 总线 案例2-14
诊断 6-26BY2-14 字节 10-31 字节对齐 10-86 字节常量 CASE指令 2-14CASEFOR循环 2-11CFC 返回一个/所有宏级
别 5-59 更改连接 5-54 连接标记 5-54 复制元素 5-53 创建宏
10-26 字节寻址模式 10-94 字节函数10-50 5-58 创建连接 5-53 光标位置 5-49 删除连接 5-54 显示顺序
5-55 编辑宏 5-58EN/ENO5-52 扩展宏 5-59 反馈路径 5-59 插
入框 5-50 插入注释 5-51 插入引脚 5-51 插入输入 5-50 插入框
的输入 5-51 插入输入/输出 5-55 插入跳转 5-50 插入标签 5-51
插入销 5-51 插入输出 5-50 插入返回 5-51 移动元件 5-53 否定
5-51 顺序-一个向后 5-56 顺序-一个前进 5-56 顺序-到开头
5-56 顺序-到最后 5-56 根据数据流排序 5-56 执行顺序 5-55 拓
扑顺序 5-55POU的特性 5-52 选择元素 5-53 设置/重置 5-51 氟
氯化碳 2-21 在线模式下的 CFC5-59CFG 文件 6-24 状态变更
6-48 在线更改值 2-24通道 6-28通道通道参数 6-29 自定义参数
6-29 通道 6-28 通道 ID6-28 通道参数 6-29 字符曲线 10-59 检
查 10-71 登录时检查 4-8 自动检查 4-13 检查重叠地址 6-23 入
住 4-19 入住 4-49 退房 4-18 退房 4-49 检查 DeviceNet-Slave
的产品代码 6-46 检查 DeviceNet-Slave 的产品版本 6-46 检查
项目并发访问 4-45 输出上的多个写入访问 4-45 重叠的内存区
域 4-44 未使用的变量 4-44检查项目 4-44 检查
DeviceNet-Slave 的 供 应 商 ID 6-46 检 查 边 界 10-34
CheckDivReal 10-2 CheckPointer 函 数 10-35
CheckPointerAligned 函数 10-35 检查范围已签名 10-37 检查
范围无符号 10-37 检查 DeviceNet-Slave6-46 校验和 4-82CI
文件 4-25 空白 10-71 全部清理 4-31 全部关闭 4-83 关闭文件
4-23 CMS 优 先 级 组 6-39 COB-ID 6-36 、 6-39 COB-ID 6-4
CoDeSys1-1 线圈 2-22、5-38 颜色 4-9PLC-Browser中的命令
条目 6-81 命令文件 10-70命令行 10-69 嵌套注释 4-11 注释
I/O 模块 6-25 注释 5-1、5-9、5-27CFC 中的注释 5-51 通信
DDE8-1 符号接口 4-15 通讯 4-15 通讯周期 6-36 通讯参数登
录时检查 4-8 对话框 4-81, 4-82 不保存在项目中 4-8 快速检
查 4-82 使用项目保存 4-8 通讯参数 4-78 通讯超时 4-8 下载通
讯超时 4-8 比较 4-38 比较项目在比较中工作模式 4-41 比较项
目 4-41 比较项目 4-38、4-39 与ENI-Project比较 4-38 比较项目
4-38 比较结果 4-39 编译 4-69 编译 10-71 编译文件选项 4-19
编 译 文 件 目 录 4-10 编 译 器 版 本 4-12 压 缩 6-68 压 缩 10-98
CONCAT10-40 串联 10-40 并发访问 4-45 配置文件 6-24 配置
文件目录 4-10CAN模块的配置 6-36Profibus模块的配置 6-29
配置弹性网卡 4-17 配置符号文件 4-15 配置的输入连接
DeviceNet-Slave 6-49 CFC 中 的 连 接 标 记 5-54 连 接 5-54
CFC 中的连接 5-53、5-54 常数 5-5 联系方式 2-22、5-37 内容
C 运算符 10-14、10-34 上下文菜单 4-3 上下文相关帮助 4-84 连
续功能图编辑器 2-21 连续功能图编辑器(CFC) 5-49 受控变
量 10-54、10-55 控制器索引 6-4 控制器状态 4-82 整数类型的
C 2-9 中的 C 修饰符 转换 10-16 的转换类型 10-14 转换对象 4-56 转换旧的 PLC 配
置 6-24 将 S5 转换为 IEC1131-310-80 复制 4-62 复制对象
CAL 10-14
命令行界面 CoDeSysV2.3版本
11 - 索引
4-56, 10-73 复制 CFC 中的元素 5-53 在 FBD 中复制 5-34COS10-22 余弦 10-22 创建备
份 4-4 创建应用程序的二进制文件 \*MERGEFORMAT4-12 创建二进制符号信息 4-20 创建
启动项目 4-20, 10-76 创建启动项目 4-82 在 CFC 中创建宏 5-58 创建翻译文件 4-32 创建基
础 SDO6-39 创建通信 6-39 创建映射SDO6-39 交叉引用列表 4-60 交叉引用列表 4-59,
6-59 交叉引用列表 5-2CTD10-46CTU10-45CTUD10-46 当前Visu10-97FBD 中的光标
位置 5-30CFC 中的光标位置 5-49LD 编辑器中的光标位置 5-36FBD 中的光标设置 5-31 自
定义参数 I/O 模块 6-28 自定义参数 6-24, 6-29 切割 4-61FBD 切割 5-34 循环独立强迫)
10-94 循环 6-48 循环任务6-53
CoDeSysV2.3版本 CLIII系列
11 - 索引
D
数据库链接添加共享对象 4-52 签
入 4-49 签出 4-49 定义 4-48 获取
所有最新版本 4-51 获取最新版本
4-49 标签版本 4-52 登录 4-48 多
次签入 4-51 多次签出 4-51 多次定
义 4-51 多次撤消签出 4-51 项目版
本历史 4-51 刷新状态 4-53 显示差
异 4-49 显示版本历史记录 4-49 撤
消签出 4-49 数据库链接 4-46 数据
类型 5-7 数据类型名称 10-105 数
据类型 2-8、4-2 数据库项目 4-17
数据控制时间6-31
日期10-32
DATE 常 量 10-25 报 警 日 志 文 件 中 的 日 期 / 时 间 6-16
DATE_AND_TIME 10-32 DATE_AND_TIME 常 数 10-26
DATE_TO 转换 10-18DCF 文件 6-36 用于创建全局变量列表的
DCF 文件 6-3DCF 写入 6-38DDE8-1DDE 查询数据的一般方法
8-1DDE 查询 8-1DDE 接口使用 Intouch 访问变量 8-2 激活 8-1
使用 EXCEL 链接变量 8-2 使用 WORD 链接变量 8-1 可以读取哪
些变量? 8-1DDE接口 8-2 在线模式下停用告警评估 6-16 停用任
务生成 10-98 停用变量 6-13 调试任务 6-57 调试 1-1、2-23、
4-11、5-22、5-29 在多任务环境中调试 10-85 声明 10-103 声明
克利夫 CoDeSysV2.3版本
11 - 索引
E
编辑自动声明 4-66 复制 4-62
在 CFC 中复制/粘贴 5-53 剪切
4-61 在 FBD 中剪切 5-34 删除
4-62 查找 4-63 查找下一个
4-63 输入助手 4-64 宏 4-67 下
一个错误 4-67 粘贴 4-62 粘贴
FBD5-34 上一个错误 4-67 重
做 4-61 删除库 6-18 替换 4-63
撤消 4-61 编辑许可信息 9-1 在
CFC 中编辑宏 5-58 编辑功能
4-61 编辑器正文 5-1 评论 5-1
声明部分5-1
其 他 2-13 , 2-14
ELSIF 2-13
紧急电报 6-39、6-43EN 输入
2-23、5-38、5-39
EN POU 2-23 CFC 中 的 EN/ENO
5-52 启用任务 6-57 加密的
CoDeSys 项目 4-24 加密的外部
库 4-24 加密的内部库 4-24 加密
4-14 加密 4-24 项目的加密4-46
CoDeSysV2.3版本 CLV型
11 - 索引
2-11、2-16号出口
退出操作 2-17 退出指
令 2-16 退出操作5-43
经验10-24
DeviceNet-Slave6-48 的扩展设置
DeviceNet-Slave6-46 的扩展设置
外部5-5
外部事件 6-53 外部库 4-23、6-17 外
部跟踪配置从文件 6-66、6-70 加载
从 PLC 加载 6-66 从目标 6-70 加载 EN/ONE 和 CFC 5-52
保存到文件 6-66、6-69 保存到目标 附加功能 CFC5-52 中的属性附加功能在 CFC 中
6-70 设置为项目配置 6-70 外部变量 全选 5-53 附加功能 CFC 中的连接标记 5-54 附加
5-5 功能在 CFC 中显示顺序 5-55 附加功能在 CFC
中按拓扑顺序排序 5-55 附加功能顺序-一个转发
5-56 附加功能顺序-一个向后 5-56 附加功能顺
序-到开头 5-56 附加功能顺序-到最后 5-56 附加
功能根据数据流对所有内容进行排序 5-56 附加功
能在 CFC 中创建宏 5-58 附加功能在 CFC 中编
摘录10-50 辑宏 5-58 附加功能将宏展开到CFC5-59 附加功
附加功能显示交叉引用 5-2 附加 能返回一个宏级别 5-59 附加功能在 CFC 中缩放
功能接受访问权限 4-42 接受更 到 POU5-61 附加功能制作 Docuframe 文件 6-8
改 4-41 接受更改的项目 4-41 接 附加功能制作 Docuframe 文件 6-8 附加功能链接
受属性 4-41 下一个区别 4-41 打 文档文件 6-8 附加功能报警配置设置 6-16 附加功
开实例 5-2 以前的区别 4-41 缩 能库的属性 6-18 附加功能替换元素 6-22 附加功
放到 POU5-2 附加功能监控选项 能计算地址 6-24 附加功能添加配置文件 6-24 附
5-22 附加选项 5-27 附加功能在 加功能标准配置 6-24 附加功能转换 6-24 附加功
FBD 中否定 5-33 附加功能在
FBD 中设置/重置 5-33 附加功能
能设置调试任务 6-57 附加功能启用/禁用任务
在 FBD 中查看 5-34 附加功能在
6-57 附加功能调用堆栈...6-57 额外内容加入查
FBD 中打开实例 5-34 附加功能 看列表 6-61 额外内容进入新的查看列表 6-62 额
在 LD5-40 附加功能中粘贴在 外内容重命名监视列表 6-62 额外内容保存监视列
LD5-40 附加功能中粘贴粘贴在 表 6-62 额外内容加载监视列表 6-62 额外内容监
LD5-40Extras 中 LD5-40 中的 控活动 6-62 额外内容编写食谱 6-62 额外内容阅
否定 Extras 在 LD5-40Extras 读食谱 6-63 额外功能开始跟踪 6-66 额外功能读
中 设 置 / 重 置 Paste Parallel 取跟踪 6-66 额外功能外部跟踪配置 6-66 附加功
Branch (右) 5-43Extras 将标 能停止跟踪 6-67 附加功能光标模式 6-67 附加功
签添加到并行分支 5-43Extras 能多通道 6-68 附加功能显示网格 6-68 附加功能
在 5-44Extras 缩放操作/过渡后 Y 缩放 6-68 附加功能拉伸 6-68 附加功能压缩
粘贴 5-44Extras 清除操作/过渡 6-68 附加功能保存跟踪值 6-69 附加功能保存跟
5-44 Extras 步 骤 属 性 5-45
CLVI型 CoDeSysV2.3版本
11 - 索引
F
F_TRIG 10-44
F_TRIG in LD 5-39
F4 4-8
F4 忽略警告 4-8 下降沿
10-44 下 降 沿 检 测 5-39
FBD 分配 5-31 框 5-32 复制
5-34 光标位置 5-30 剪切
5-34 删除 5-34 输入 5-33
跳转 5-31 否定 5-33 输出
5-33 粘贴 5-34 返回 5-32
设置光标5-31
找到 4-63,10-42
查找下一个 4-63 标志 5-11 浮球处理
器 10-85、10-86、10-88 流量控制
FBD5-35IL5-25
流量控制 4-77 文
件夹 4-53、4-54
字体 4-6 字体
10-97
FOR2-14FOR 循环 2-14 力
值 4-75, 6-64 分段超时
6-48 随心所欲的任务 6-53
CoDeSysV2.3版本 CLVII型
11 - 索引
冻结模式 6-30,6-35
FREQ_MEASURE 10-57
频率测量 10-57 功能插 5-21 功能 2-1 功能
块 5-18 功能块插 5-22 实例 2-3 功能块 氟氯化碳 5-49FBD5-30LD5-35 图形
2-3 功能块 2-3 功能块调用 2-4 功能块图在线 编辑器 5-26DP 从站的组分配 6-35 组
模式 5-35 功能块图(FBD) 2-21 功能块图 DP 从站 6-35 组6-30
编辑器 5-30LD中的功能块 2-23 功能块实例
地址 10-13 功能块实例 2-3 功能块名称
10-105 梯形图中的功能块 2-23 函数调用
2-1 功能声明 2-1 函数名称10-105
GT10-11AWL2-9 中
GT 操作员保护时间6-39
H
硬件扫描 6-50 心跳 6-39 心跳消
费者时间 6-43 心跳大师 6-36 心
跳制作时间 6-43 心跳设置 6-43
心跳率 DeviceNet-Slave6-49 帮
助 上 下 文 相 关 4-84 日 立 SH
10-90
FUNCTION_BLOCK 2-3
参数管理器中的功能块6-73
G 滞后10-60
CLVIII型 CoDeSysV2.3版本
11 - 索引
索引10-4
Infineon C16x 10-87
DeviceNet-Slave 信息 6-46 抑制时间
6-40INI 运算符 10-24 初始化 5-6,
5-11 保留变量的初始化 10-24 初始化
运算符 10-24 零初始化 10-94 初始化
输入 10-94 初始化零 10-94 引脚内
5-51 引脚内 CFC5-51 输入地址
6-25、6-37 输入输出变量 5-4 输入助
手 6-60 输入助手结构化 4-64 结构显
示 4-65 非结构化 4-64 非结构化显示
4-64 输入助理 4-64 可视化中的输入
处理 10-98CFC 输入 5-50FBD 输入
5-33CFC 中盒子的输入 5-51 输入变
量 5-3 DP 从 站 的 输 入 / 输 出 6-34
DeviceNet-Slave 的输入字节 6-48 输
入 DeviceNet-Slave6-49 输入/输出配
置 DeviceNet-Slave6-47 插入添加入
口操作 5-43 添加退出操作 5-43 附加
库 6-17 所有实例路径 6-7 备用分支(
左) 5-42 备用分支(右) 5-42 附加
程序调用 6-54 附加子元素 6-22 追加
任务 6-52 分配 5-31 附加监视变量
6-61CFC 中的盒子 5-50FBD 中的盒
子 5-32EN 的盒子 5-39LD 中带有
EN 的盒子 5-38 线圈 5-38 评论
5-27, 5-28 在 CFC 中的评论 5-51 插入10-41
联系方式 5-37 声明关键字 5-6 下降沿 插入地址范围 6-62 插入声明 5-9 插入功
检测 5-39 功能 5-21 功能块 5-22、 能 5-21 在文本编辑器中插入功能块 5-22
5-38 引 脚 内 5-51 CFC 输 入 5-50 文本编辑器中的插入功能 5-21 在 CFC 中
FBD 输入 5-33CFC 中盒子的输入 插入输入/输出 5-55 在文本编辑器中插入
5-51 在块 5-39 插入元件 6-22插入新 操作数 5-21 插入程序调用 6-51、6-54 插
入标准命令 6-81 插入任务 6-51、6-52 插
的监视列表 6-61 插入程序调用 6-54 入监视变量 6-61 插入变量 5-2 实例打开
插入任务 6-52 插入监视变量 6-61 跳 5-2, 5-34 实例 2-3 实例 6-73 实例名称
入 CFC 5-50 跳 入 FBD 5-31 跳 入 LD 2-3, 2-4VAR_CONFIG的实例路径 6-7
5-40 跳入 SFC5-43CFC 标签 5-51 指令 2-9, 2-11 指令列表 2-3 指令列表(
网络(后) 5-29 网络(前) 5-29 新 IL) 2-9 指令列表编辑器5-25
声明 5-10 新观察列表 6-61 操作数
5-21 运算符 5-21 引脚外 5-51CFC
输出 5-50FBD 输出 5-33 平行分支(
左) 5-43 平行分支(右) 5-42 平行
触 点 5-37 返 回 在 氟 氯 化 碳 中 5-51
FBD 中的返回 5-32LD 中的返回
5-40 上升沿检测 5-39 阶跃过渡(之
后) 5-42 阶跃过渡(之前) 5-42LD
中的计时器 5-39 过渡跳跃 5-43 类型
5-7
INT10-31INT 常数
10-26
INT_TO_BCD10-50
积分10-52
英特尔 38610-85Intel 字节
顺序 10-88、10-90 英特尔
StrongARM 10-88
Intellisense 函 数 5-2
Intellisense 函数 4-6 内部库
4-23, 6-17 间隔
DeviceNet-Slave6-49 任务
6-53 的间隔进入新的监视列
表6-62
J
AWL 中的 JMP 运算符
CoDeSysV2.3版本 克利克斯
11 - 索引
K
键 4-14、4-24 组合键 10-99 表
10-75 的键盘用法表 10-98 键盘
使用 10-99 关键字5-6
L
标签 5-43 网络标签 5-27CFC 标签
5-51 标签版本 4-52 梯形图插入注释
5-28 梯形图 2-22 梯形图(LD) 2-22
在线模式下的梯形图 5-41 梯形图编辑
器 5-35 语言 10-75 语言“显示项目已
翻 译 ”4-35 “ 切 换 翻 译 ” 4-36
限位 10-10 限位报警
10-61 LIN_TRAFO
10-52
行号字段 4-77 文本编辑器中的行号字段
5-23 文本编辑器中的行号 5-24 声明编
辑器中的行号 5-9 链接文档文件 6-8 链
接杂注 5-13 链接 POU5-13 使用
语言6-16 EXCEL 链接变量 8-4 列表组件 4-6 列
语言文件 10-74 语言文件开/关 10-74 可视 表标识符 6-4 列表类型6-73
化语言 10-75 语言切换 4-32 语言 2-9LD 光
标位置 5-36 插入块 5-39 带 EN 输入的插入
框 5-38、5-39 插入线圈 5-38 插入触点
5-37 插入功能块 5-38 插入跳转 5-40 插入
平行触点 5-37 插入返回 5-40 粘贴 5-40 在
LD5-40 后粘贴粘贴 5-40 以下
LD 2-22 LD 作 为 FBD
2-23 LD 编 辑 器 5-35
AWL 中的 LD 操作员2-9 日志 2-25、4-10 日志 10-21
项目日志文件 6-18 日志菜单
6-19 对数 10-21 登录 10-71
EL10-11AWL 中的 EL 登录 4-69、10-70 登录数据
运 算 符 2-9 lecsfc.lib 2-17 库 4-48 登录弹性网卡数据库
4-17 注销 4-71、10-70、
左 10-39 左 10-71 循环2-11
10-39
度(字节) 6-49DeviceNet-Slave 的连接 度
6-49 库目录 4-10 库分析New.lib10-61 定义
6-17 外部 4-23, 6-17 插入 6-17 内部 4-23,
6-17 许可 4-25 链接 10-73 属性 6-18 删除 6-18
标准.库 6-17 用户定义 6-17 图书馆 2-8 库声明部 LREAL10-31LREAL
分 5-13 库元素 10-63 库管理器用法 6-17 库管理 作 为 REALs 4-12
器 6-16 库路径 6-17 图书馆专用 5-13 公共图书 LREAL 常数 10-26LREAL_TO
馆 5-13 许可证信息 4-43许可证信息 6-18 许可证 转换 10-17LT10-11LTAWL 中
CLX系列 CoDeSysV2.3版本
11 - 索引
的运算符2-9
M 移动10-3
宏 4-13、4-20 编译后的宏 4-13 编 CFC5-53 中的移动元件
译前的宏 4-13CFC 中的宏 5-58 宏 MUL10-2AWL 中的 MUL 算子 2-9
库 4-21 宏 4-67PLC-Browser中的 多通道 6-68 组播轮询 6-48 多次签入
宏 6-83 主程序 2-7 制作文档框文件 4-51 多次检出 4-51 多重定义 4-51
4-28 制作文档框文件 6-8 管理项目 多次撤消检出 4-51 输出 4-45 多任务
4-22 操纵变量 10-54, 10-55 映射 处理环境 10-85 多用户操作7-1
索引范围 6-44 映射 6-73, 10-96
标记 4-7SFC 中的标记块 5-41 主
布局4-57
多路复用器10-10
N
AWL2-9 中的 N 修饰符可视化
最大 10-9 最大重试限制 6-31 最大站延迟 6-31 最 的名称 10-106 标识符的命名
大评论大小 5-27 最大全局数据段数 10-92 最大 10-103
POU 数 10-92MDI 表示 4-8 内存布局 10-92 内存 NE10-12AWL 中的 NE 运
位置 10-30 菜单日志 6-19 在线菜单 4-67 合并 算符 2-9CFC 中的否定
4-42 消息文件 10-71 消息窗口 4-2、4-43、4-83 5-51 FBD 中 的 否 定 5-33
消息 10-71 消息4-83
LD 中的否定 5-40 嵌套注释
4-11
NetVarUdp_lib_V23.lib6-5
网络评论 5-27 网络 5-27 网
络 5-30 网络(后) 5-29 网
络(之前) 5-29 网络评论
5-27 网络编辑器在线模式
5-29 网络功能 6-2FBD 中
的网络 2-21LD 中的网络
2-22 间作业控制中的网
络 2-16 网络编号 5-27 网络
中度 10-40 分钟 10-9 分钟从站间隔 6-31 分钟 编号字段 4-77 网络类型
/DeviceNet-Slave 参数的最大值 6-49 最小站延迟 6-4 网络变量编辑 6-5 网络
6-31 最小评论量5-27 变量 6-2, 6-3 网络变量
6-6 网络变量 10-96 网络功
能 10-96 新声明 5-9 新声明
5-10 模板 4-22 新增内容监
MIPS 10-89 视列表 6-61 下一个错误
MOD 10-3 4-67 未初始化 6-38 节点
修饰符 2-9IL 中的修饰符和运算符 ID6-42 节点编号 6-25 节
2-9 模数 ID6-37 模块诊断 6-50 模块 点守卫电报 6-43 节点守卫
ID 6-25 模 块 参 数 DeviceNet-Slave 6-39 节 点 ID 6-38 节 点 ID
6-49DP主站 6-30DP从站 6-36I/O模 6-36 非持久性5-18
块 6-28 模块参数 CAN主控 6-37 设备
网主站 6-46 模块状态 6-50 监控声明
编辑器 5-10 编译指示 5-11 文本编辑
器 5-22 监视和食谱管理器 6-63 监控
2-24 监控活动 6-62 复杂类型的监控
4-7 监控选项 5-22 更多设置
DeviceNet-Slave 6-48 摩 托 罗 拉 68K
10-86
NOT10-6
CoDeSysV2.3版本 CLXI系列
11 - 索引
CFC5-59 声明编辑器
5-10
O FBD5-35LD5-41 网络
对象访问权限 4-58 添加 4-54 转换 编辑器 5-29PLC 配置
4-56 复 制 4-56 删 除 4-54 6-49
DeviceNet-Slave6-49 拖放 4-53 文件
夹 4-53, 4-54 管理项目中的对象 间作业控制 5-47 任务配置 6-55 文本编辑器
4-53 打开 4-56 属性 4-57 重命名 4-55 5-22 报警配置的在线设置 6-16 从 PLC4-22 打
工具提示 4-53 对象 2-1 对象 4-53 对象 开项目打开实例 4-59, 5-2 在 FBD 中打开实例
4-53 对象管理器折叠节点 4-54 展开节 5-34 打开对象 4-56 打开 POU4-59 操作数
点 4-54 新建文件夹 4-54 对象管理器 2-1, 5-21 文本编辑器中的运算符 5-21 优化
4-2 对象属性 4-57 对象模板4-55 10-87 优化 6-31 优化跳转 10-85 优化加载操作
10-85 使用常量 10-85 优化操作可选设备 6-38
生成选项 4-11 颜色选项 4-9 目录选项 4-10编辑
器 选 项 4-6 加 载 和 保 存 选 项 4-4 日 志 选 项
4-10“宏”选项 4-20 项目选项 4-3 项目对象选项
4-16 项目源代码管理选项 4-16“符号配置”选
项 4-15 桌面选项 4-7 用户信息选项4-5
P
包装10-51
包装变量 6-4 并行分
支 2-21SFC 中的并
CLXII系列 CoDeSysV2.3版本
11 - 索引
PLC_PRG 2-7
PLC-浏览器取消命令 6-84 命令 6-81 功能 6-80 历史 6-84ini-文件
6-81 宏 6-83 打印最后命令 6-84 保存历史记录列表 6-84PLC浏
览器 6-80PLC浏览器 10-94PLC浏览器选项 6-83 指针地址检查
10-35 对齐检查 10-35 指针 10-34 轮询 6-48 轮询超时 6-31
POU(程序组织单位) 1-1、2-1、4-2POU 名称 10-105 电源电
脑 10-88 编译说明 Bitaccess5-13 链接 5-13 非持久性 5-18 符号
5-12 编译指示 5-11 编译指示 5-13 编译指示 5-14编译指示 5-11
库声明部分的编译指示 5-13 非持久数据类型的编译指示 5-18 参
数管理器的编译指示 5-14 抢占式多任务处理 10-94 先前的区别
4-41 先前的错误 4-67 打印 4-28 打印边距 5-1 打印范围 4-8 打印
机设置 4-28 打印机设置 10-71PRM文件 6-79Profibus 地址 6-30
模式 6-30Profibus 通道 6-34Profibus 主总线参数 6-31DP参数
6-30 模块参数 6-30ProfibusSlaveBase 参数 6-32DP参数 6-33
分组作业 6-35 输入/输出 6-34 模块参数 6-36 属性 6-36 用户参数
6-35 程序 2-5 程序调用 2-5 程序名称 10-105 项目添加操作 4-59
添加对象 4-54 构建 4-30 勾选 4-44 全部清理 4-31 比较 4-38、
4-39 转换对象 4-56 复制对象 4-56 数据库链接 4-46 删除对象
4-54 文档 4-36 导出 4-37 全局替换 4-44 全局搜索 4-43 导入
4-37 加载下载信息 4-31 合并 4-42 对象访问权限 4-58 打开实例
4-59 打开对象 4-56 选项 4-3 项目信息 4-42 属性 4-57 全部重建
4-31 重命名对象 4-55 显示调用树 4-59 显示交叉引用 4-59
子导入 4-37 翻译成另一种语言 4-31 用户组密码 4-46 项目 1-1,
2-1 项目代码 4-82 项目数据库 7-1 项目数据库类别 7-2 项目数据
库 7-2CoDeSys 中的项目数据库使用 7-2CoDeSys 中的项目数据
库 7-2项目目录 4-10 项目信息 4-5, 4-42 项目对象选项 4-17 项
目源代码管理 4-16 项目版本 1.54-23 项目版本 2.04-23 项目版本
2.14-23 项目版本历史记录 4-51CFC属性 5-52DP从站在
Profibus从站操作中的属性 6-36 库的属性 6-18 任务的属性 6-53
工具的属性 6-84 项目保护 4-24,4-46
持久性5-4
持久性全局变量 6-6 持久变量
5-4 持久性变量 6-6PI 控制器
10-56
PID的
CoDeSysV2.3版本 CLXIII系列
11 - 索引
普比特10-51
Q
限定符 2-17、2-18
查询 10-72 安静时
间6-31
R
R 2-9 中的 R 运算符
R_TRIG 10-44
R_TRIG in LD 5-39
RAMP_INT 10-59
RAMP_REAL 10-60
读取配方 6-63 读
取跟踪6-66
真实10-31
REAL 常数 10-26REAL_TO 转换 10-17 全部重建
4-31 地址的重新计算 6-32 模块地址的重新计算
6-24, 6-30 配方 6-60 配方管理器 6-57 配方值
6-58 重做 4-61 刷新状态 4-53 释放力 4-75 剩余
变量 5-4 退出时提醒启动项目 4-5 删除库 6-18 重
命名对象 4-55 重命名监视列表 6-62 重复 2-11,
2-15 重复循环 2-15 替换 4-44、4-63、10-41 替
换常量 4-11 更换PLC配置中的元件 6-22 重设
4-72 复位(冷) 4-72 复位(原件) 4-72FBD 复
位 5-33 复位节点 6-38LD复位输出 5-40 资源全局
变量 6-2 库管理器 6-16 日志 6-18 网络变量 6-2 变
量配置 6-2, 6-6 资源 2-8, 4-2, 6-1 保留 2-3,
5-4 保留强制 10-94 保留变量 5-4 返回 2-11、
2-13、5-32 以 CFC 返回 5-51 以 LD 返回 5-40 返
回指令 2-13 返回标准配置 6-24 版本控制 7-1RI
文件 4-31、4-71、4-82 右 10-39 上升沿 10-44 上
升沿检测 5-39ROL10-7ROR10-8 旋转 10-7、
10-8RS10-43RTC10-49 运行 4-71,10-70
CLXIV的 CoDeSysV2.3版本
11 - 索引
S
S 2-9 中的 S 运算符 证监会 2-16 证监会编辑器
S510-80 采样迹线 6-64 保存(强制) 5-41 证监会标志 2-19 证监会
10-94 另存为 4-23 另存为模板 4-55 在 库 2-17 SFCctionType 2-19
SFCC 客 户 步 骤 2-19
项目中保存配置文件 6-23 保存弹性网卡 SFCEnableLimit2-19SFC错
凭据 4-5 保存文件 4-23 保存邮件/存档 误 2-19 SFCError 分 析 2-19
4-25 保存跟踪值 ASCII 文件中的值 SFCErrorPOU2-19SFCError
6-69 保存跟踪值 6-69 保存监视列表 步 骤 2-19 SFC 标 准 2-19
6-62 保存警报 6-15 使用项目保存 4-8 SFCPause 2-19
扫 描 模 块 配 置 6-50 屏 幕 分 隔 器 4-2 SFCQuitError 2-19
SDB 文件4-20 SFCReset 2-19
SFCStepType 2-19 SFCTip
2-19 SFCTipMode 2-19
SFCTrans2-19 共享对象
4-16 共享对象选项 4-19 移位
10-6
SIN10-22 正弦 10-22
单周期 2-24, 4-74 单步
CoDeSysV2.3版本 CLXV系列
11 - 索引
MIPS10-89型
目标系统 InfineonC16x10-87 目标系统
Intel386 兼容 10-85 目标系统摩托罗拉
68K10-86 目标系统 TriCore10-91 目标系
统 PowerPC10-88 目标可视化 10-97 目标
支持包 6-79 任务 6-51 任务属性 6-52 任务
配置追加任务 6-52 调用堆栈 6-57 执行顺
序 6-57 插入程序调用 6-54 插入任务 6-52
设置调试任务 6-57 系统事件 6-55 在 6-51
中工作任务配置 6-51 任务启用 6-57 任务
优先级 6-52 任务属性 6-53 任务类型 6-53
在线模式下的任务配置 6-55 任务状态
6-55 时间流 6-55EDS 文件模板 6-42、
6-73EDS 文件模板 6-42 对象模板 4-55 文
本编辑器断点 5-23 文本编辑器 5-23 可视
化文本 4-32 连续功能图编辑器(CFC)
2-21 标准2-26
CLXVI系列 CoDeSysV2.3版本
11 - 索引
然后2-13
瓷砖水平 4-83 瓷砖
垂直4-83
时间:10-32
TIME 常 量 10-25 任 务 看 狗 的 时 间 6-54
SFC 中的时间管理 5-45SFC 中的时间扫描
2-19TIME_OF_DAY10-32TIME_OF_DAY
常数 10-25TIME_TO 转换 10-17TIME-函数
10-30 超时 4-8 超时 DeviceNet-Slave6-48,
6-49 定时器 10-47LD 中的定时器 5-39TLT
文件 4-32TNF 文件 6-79 至 2-14TO_BOOL
转 换 10-15 TOD 10-32 TOD_TO 转 换 10-17
TOF10-49 切换断点 4-72 切换平移 4-36 吨
10-48 吨 LD5-39工具栏 4-7 工具创建新的快
捷方式 6-87 执行快捷方式 6-88 常 问题
6-88 对象属性 6-84 保存工具快捷方式 6-88
快捷方式 6-84 工具 6-84 工具提示 SFC5-47
工具提示 4-53、5-22、5-29、5-35、5-41 注
释 工 具 提 示 5-1 标 识 符 工 具 提 示 5-2 TP
10-47 跟踪从文件加载 6-70 从目标加载 6-70
保存到文件 6-69 保存到目标 6-70 保存跟踪值
6-69 设置为项目配置 6-70 跟踪 10-94 跟踪
缓冲区 6-64, 6-67 跟踪配置 ASCII 文件
6-69 压缩 6-68 光标模式 6-67 负载值 6-69
多通道 6-68 读取跟踪 6-66 保存值 6-69 跟踪
变量的选择 6-66 显示网格 6-68 开始跟踪
6-66 停止跟踪 6-67 拉伸 6-68 跟踪缓冲区
6-67ASCII 文件中的值 6-69Y 缩放 6-68 跟
踪变量 6-66 转换 10-52 过渡条件 5-44 转换
条件 2-17SFC 缩放中的过渡 5-44SFC 中的
过渡 2-17 转换名称 5-42 过渡超时 6-48 过渡-
跳跃 5-43 翻译成另一种语言 4-31 翻译项目(
翻译成另一种语言) 4-35 翻译文件 4-32 翻译
文件制作 4-32 编辑 4-34 翻译文件 4-31 传输
类型 6-40 将LREAL视为真实 4-12 趋势数据
10-97TREND_TASK10-97TriCore10-91
触发变量 6-15 截断 10-19TSDR6-33 茶匙
6-79 关 断 延 迟 10-49 开 启 延 迟 10-48
DeviceNet-Slave参数典型值 6-49 类型 5-7 类
型 10-35, 10-36, 10-37 类型转换 10-14 类
型文字5-5
U
UCMM 6-46
UDINT 10-31
UDINT 常量 10-26 网络变量列表的 UDP 设置
6-4UINT10-31UINT 常量 10-26 撤消 4-61
撤消检出 4-49 开箱 10-51 直到 2-15 未使用的
变量 4-44 更新任务 6-42 上传文件目录 4-10
上传参数列表 6-78 使用输出位 6-49 使用源代
码管理(ENI) 4-16 使用
VISU_INPUT_TASK10-98 用户组 4-45 用户
组密码 4-46 用户信息 4-5 用户等级 10-74 用
户参数 DPslave6-35 用户密码 10-74用户定
CoDeSysV2.3版本 CLXVII系列
11 - 索引
V
DeviceNet-Slave参数值6-49
VAR 5-4 VAR 持 久 性 5-4 , 6-6 虽然2-15
VAR 保 留 5-4 , 6-6 WHILE 循环 2-11、2-15 窗口排
VAR_CONFIG 6-2 , 6-6 列符号 4-83 级联 4-83 全部关闭
VAR_CONSTANT 5-5 , 6-6 4-83 库管理器 6-16 日志 6-18
VAR_EXTERNAL 5-5 消息 4-83 水平平铺 4-83 垂直平
VAR_GLOBAL 6-2 铺 4-83 窗口 4-83 窗口设置
VAR_IN_OUT 5-4 , 10-94 4-83 带参数 2-5 字 10-31 字常
VAR_INPUT5-3VAR_INPUT常 量 10-26 工作空间 4-2 写访问权
数 5-52VAR_OUTPUT5-4 编 限 4-16 将文件写入控制器 4-82
辑器中的变量插入 5-2 变量 5-2 写保护 4-24、4-46 写保护密码
变量配置插入实例路径 6-7 变量 4-13 编写配方 6-62 写入值
配置 6-6 变量声明编译指示 4-74, 6-64 写入/强制对话框
5-13 变量声明 5-11 变量声明 4-76
5-14 变量名称 5-6 变量 6-73,
10-96 变量声明5-6
方差10-53
供应商 ID9-1 在
FBD5-34 中查看
X
VISU_INPUT_TASK 10-97 AWL2-9 中的 XE1-1XML
VISU_TASK 10-97 编码 4-8XOR 运算符
视觉设置 10-74 可视 WebVisu激活开/关
10-75 可视化 10-97 可视化名称 10-106
可视化文本 4-32 无主布局的可视化4-57
Y
Y 缩放6-68
Z
W
用 于 Web 可 视 化 的 zip 文 件 10-98
观察和食谱管理器添加到观察列 SFC 中的缩放操作 5-44 放大图形编
表 6-61 附加监视变量 6-61 创建 辑器 5-26 缩放到 POU5-2 缩放到
监视列表 6-59 交叉引用列表 POU 5-2 缩 放 到 CFC 中 的 POU
6-59 删除监视变量 6-61 强制和 5-61 缩放过渡5-44
写入值 6-64 插入地址范围 6-62
插入新的监视列表 6-61 插入监视
变量 6-61 进入新的监视列表
CLXVIII系列 CoDeSysV2.3版本
11 - 索引
CoDeSysV2.3版本 CLXIX系列