1.1 CoDeSys 是什么..................................................................................................................................... 4
1.2 CoDeSys 功能一览 ................................................................................................................................. 4
2. CoDeSys 组成 ................................................................................................................................................... 7
2.1 工程组件 ................................................................................................................................................ 7
程序 .......................................................................................................................................................11
2.2 语言 ...................................................................................................................................................... 14
2.2.1 指令表 ...................................................................................................................................... 14
2.2.2 结构化文本 .............................................................................................................................. 16
2.2.3 顺序功能图(SFC)................................................................................................................ 21
2.2.4 功能模块图 .............................................................................................................................. 25
2.2.5 连续功能图表编辑器 ..............................................................................................................25
2.2.6 梯形图 ...................................................................................................................................... 25
2.3 调试、联机功能.................................................................................................................................. 27
2.4 标准化.................................................................................................................................................. 28
3. 我们来编写一个小程序 ................................................................................................................................ 29
3.1 控制一个交通灯信号单元.................................................................................................................. 29
3.2 可视化交通信号单元.......................................................................................................................... 38
4. 各个单独的组件............................................................................................................................................ 43
4.1 主窗口.................................................................................................................................................. 43
4.2 工程选项 .............................................................................................................................................. 45
4.3 管理工程 .............................................................................................................................................. 62
4.3.1 '工程' '数据库连接'............................................................................................................ 85
4.4 管理工程中的对象 .............................................................................................................................. 91
4.5 编辑功能 .............................................................................................................................................. 98
4.6 联机功能 ............................................................................................................................................ 104
4.7 设置窗口 ............................................................................................................................................ 117
4.8 帮助 .....................................................................................................................................................118
5. CoDeSys 中的编辑器................................................................................................................................... 119
5.1 关于所有的编辑器 ............................................................................................................................. 119
5.2 声明编辑器........................................................................................................................................ 120
5.3 声明编辑器中的预处理 pragma 指令 ..............................................................................................129
5.4 文本编辑器........................................................................................................................................ 135
5.4.1 指令表编辑器 ........................................................................................................................ 139
5.4.2 结构化文本编辑器 ................................................................................................................ 140
5.5 图形化编辑器 .................................................................................................................................... 140
5.5.1 功能模块图编辑器 ................................................................................................................ 143
5.5.2 梯形图 .................................................................................................................................... 147
5.5.3 顺序功能图表编辑器 ............................................................................................................153
5.5.4 连续功能图表编辑器 ............................................................................................................161
6. 资源 ...............................................................................................................................................................172
6.1 全局变量、变量配置、文件框架 ....................................................................................................172
6.1.1 全局变量 ................................................................................................................................ 172
6.1.2 变量配置 ................................................................................................................................ 176
6.1.3 文档框架 ................................................................................................................................ 177
6.2 报警配置 ............................................................................................................................................ 178
6.3 库管理器 ............................................................................................................................................ 185
CoDeSys V2.3
-
-
1
6.4 日志记录 ............................................................................................................................................ 187
6.5 任务配置 ............................................................................................................................................ 189
6.6 监控和配方管理器 ............................................................................................................................ 195
6.7 工作空间 ............................................................................................................................................ 197
6.8 对象系统设置 .................................................................................................................................... 197
6.9 PLC 配置 ............................................................................................................................................ 198
6.9.1 综述 ........................................................................................................................................ 198
PLC 配置中的工作............................................................................................................... 199
6.9.2
PLC 配置中的一般设置.......................................................................................................199
6.9.3
6.9.4 定制特定的参数的对话框....................................................................................................200
I/O 模块配置....................................................................................................................... 201
6.9.5
6.9.6 通道配置 ................................................................................................................................ 203
Profibus 模块的配置 .........................................................................................................204
6.9.7
CAN 模块的配置.................................................................................................................. 211
6.9.8
6.9.9 Can 驱动器的配置 .................................................................................................................215
6.9.10 在线模式中的 PLC 配置 .......................................................................................................218
6.9.11 来自 PLC 的硬件扫描/状态/诊断信息 ................................................................................ 219
6.10 采样追踪 ........................................................................................................................................... 219
6.10.1 综述和配置............................................................................................................................ 219
6.10.2 采样追踪的显示.................................................................................................................... 220
6.10.3 保存采样追踪 ........................................................................................................................ 222
6.10.4 外部采样追踪配置 ................................................................................................................ 222
6.11 参数管理器....................................................................................................................................... 223
6.11.1 参数管理器的编辑 ..............................................................................................................224
6.11.2 参数列表的导出、导入 ......................................................................................................228
6.11.3 在线模式下的参数管理 ......................................................................................................228
6.12 PLC 浏览器....................................................................................................................................... 229
6.13 工具 .................................................................................................................................................. 232
7. ENI.................................................................................................................................................................237
8. DDE 接口....................................................................................................................................................... 239
8.1 CoDeSys 程序设计系统的 DDE 接口 .................................................................................................239
8.2 DDE 网关服务器的 DDE 信息 ............................................................................................................. 240
9. CoDeSys 的许可证管理器........................................................................................................................... 243
10. 附录 ............................................................................................................................................................ 244
附录 A:IEC 操作符和额外的标准扩展功能块 ................................................................................................244
10.1 算术操作符.................................................................................................................................... 244
10.2 位串操作符.................................................................................................................................... 247
10.3 移位操作符.................................................................................................................................... 249
10.4 选择操作符.................................................................................................................................... 251
10.5 比较操作符.................................................................................................................................... 253
10.6 地址操作符.................................................................................................................................... 255
10.7 调用操作符.................................................................................................................................... 256
10.8 类型变化 ........................................................................................................................................ 257
10.9 数字操作符.................................................................................................................................... 262
10.10 初始化操作符 ................................................................................................................................ 265
附录 B:CoDeSys 中的操作数.......................................................................................................................... 266
-
CoDeSys V2.3
2
10.11 常量 .............................................................................................................................................. 266
10.12 变量 .............................................................................................................................................. 268
10.13 地址 .............................................................................................................................................. 270
10.14 功能 .............................................................................................................................................. 271
附录 C:CoDeSys 中的数据类型 ...................................................................................................................... 272
10.15 标准数据类型 ................................................................................................................................ 272
10.16 已定义的数据类型 ...................................................................................................................... 273
附录 D:CoDeSys 程序库.................................................................................................................................. 279
standard.lab 标准库................................................................................................................. 279
10.17.1 字符串功能...................................................................................................................... 279
10.17.2 双稳功能程序.................................................................................................................. 283
10.17.3 触发器.............................................................................................................................. 284
10.17.4 计数器.............................................................................................................................. 285
10.17.5 定时器.............................................................................................................................. 287
Util.lib 库 ............................................................................................................................... 290
BCD 转换.......................................................................................................................... 290
10.18.1
10.18.2 位/字节功能 .................................................................................................................... 290
10.18.3 数学辅助功能.................................................................................................................. 291
10.18.4 控制器.............................................................................................................................. 293
10.18.5 信号生成.......................................................................................................................... 294
10.18.6 功能操作器...................................................................................................................... 296
10.18.7 模拟值的处理.................................................................................................................. 297
AnalyzationNew.lib 库 .............................................................................................................298
CoDeSys 系统程序库................................................................................................................... 299
附录 E:操作符及程序库模块总结 ................................................................................................................. 299
CoDeSys 中的操作符:................................................................................................................. 299
Standard.lib 库的元素:...........................................................................................................302
Util.lib 库的元素:................................................................................................................... 303
附录 F:命令行/命令文件 ............................................................................................................................... 303
10.24 命令行相关命令 ............................................................................................................................ 303
10.25 命令文件(cmdfile)命令..........................................................................................................304
附录 G:导入 Siemens 产品数据 ..................................................................................................................... 310
10.26 导入一个 SEQ 符号文件 ................................................................................................................ 311
10.27 将 S5 转换成 IEC 61131-3........................................................................................................... 311
10.28 导入一个 S5 工程文件 ...................................................................................................................314
附录 I 应用键盘 ............................................................................................................................... 315
10.34 应用键盘 ........................................................................................................................................ 315
10.35 组合键 ............................................................................................................................................ 315
CoDeSys 中的关键字......................................................................................................................................... 318
CoDeSys 文件 .................................................................................................................................................... 321
附录 K 关于编译错误和警告........................................................................................................................... 323
10.41 警告 ................................................................................................................................................ 323
10.42 错误 ................................................................................................................................................ 327
10.21
10.22
10.23
10.19
10.20
10.17
10.18
1.
CoDeSys V2.3
-
-
3
1.
CoDeSys 简要介绍
1.1 CoDeSys 是什么
CoDeSys 是可编程逻辑控制 PLC 的完整开发环境(CoDeSys 是 Controlled Developement System
的缩写),在 PLC 程序员编程时,CoDeSys 为强大的 IEC 语言提供了一个简单的方法,系统的编辑器和
调试器的功能是建立在高级编程语言的基础上(如 Visual C++)。
1.2 CoDeSys 功能一览
如何构建一个工程?
一个工程放在以工程命名的文件中,新工程中创建的第一个程序组织单元 POU 自动命名为
PLC_PRG,程序从这里开始执行(相当于 C 程序中的主函数),从这一点能够访问其它的 POUs(程序, 功
能块 和 功能)。
一旦定义了一个任务配置,就不必创建程序 PLC_PRG 了。在任务配置章节将讲到更多的内容。
在工程中有不同的对象:POUs、数据类型、可视化和资源。
对象管理器中包含了工程中的所有对象。
如何建立一个工程?
首先,为了保证在工程文件中使用的地址的正确性,应该配置 PLC。
然后创建解决问题所需要的 POUs。
当程序编写完成时,可以编译这个工程并去除所有的错误。此刻可以用你所喜欢的编程语言来编
写这些 POUs。
如何测试自己的工程?
一旦排除了所有的错误,激活仿真模式,登录入仿真的 PLC 并在 PLC 中“加载”工程文件,此时
处于联机模式。
现在打开一个 PLC 配置的窗口测试工程的时序正确性,手动为此输入输入变量,观察输出变量是
不是所期望的。你也可以观察 POU 中的局部变量的序列值,在监视和接收管理器中可以配置你希望检
查的值的数据记录。
调试
你可以在程序出错的地方设置断点。当程序运行后停在断点处时,你可以及时检查在这个点处所
有变量的值,通过一步一步(单步) 执行,你可以检查程序的逻辑正确性。
附加的联机功能
更多的调试功能:
你可以设置程序变量并输入输出某些值。
你可以通过流程控制来检查那些程序行已完成运行。
日志文件按照时间的顺序记录了联机模式下的操作以及用户行为和内部进程的情况。
如果在目标设置中激发了采样追踪,那么它允许你在一个较长的过程中来追踪和显示变量值的真
实变化过程。
PLC 浏览器是目标系统的一个特殊功能,它能够用来向 PLC 请求某些信息。
当工程完成了建立和测试后,它也能够装载到硬件中并进行测试。和仿真模式 式下有相同的联机
功能。
附加的 CoDeSys 功能
整个工程可以在任何时候文档化或导出到一个文本文件中。
为了通讯的目的,CoDeSys 有一个符号接口和一个动态数据交换(DDE)接口。网关服务器和 OPC
服务器和动态数据交换服务器是 CoDeSys 的标准安装软件包的组件。
-
CoDeSys V2.3
4
使用恰当的目标设置能够把相同的 CoDeSys 工程加载到不同的目标系统中,可以通过目标文件来
加载这些目标设置。
通过当前的目标设置来激活网络全局变量和参数管理器。可以在控制器网络中交换数据。
通过 ENI 服务器,用工程接口能够访问任何我们所期望的源代码管理程序。ENI 服务器是个独立
运行的程序,CoDeSys 的程序组织单元和编译文件可以以文档方式存于数据库中,它们能够被 ENI 服
务器的客户端访问到。这允许在一个工程文件的工作过程中进行多用户操作,它为 CoDeSys 和其它工
具提供了一个公用数据缓冲池而且它使版本管理成为可能。
工具:这个功能性也是与目标有关的,它允许启动 CoDeSys 工程中的特殊目标执行文件,除此之
外还可以定义要被装载到控制器中的这些文件,它与外部工具的联系可以在目标文件中预定义或者插
入到工程资源树中。
CoDeSys 的可视化可以处理象网页可视化或目标可视化,这样可以通过因特网或者 PLC 监视器的
运行来展示可视化。
CoDeSys V2.3
-
-
5
2. CoDeSys 组成
2.1 工程组件
工程
一个工程包含了 PLC 程序中的所有对象,工程存储在以工程命名的文件中,工程中包含下列对象:
POU,数据类型,可视化,资源和库
POU(程序组织单元)
功能、功能块、程序是程序组织单元,它们能够通过动作来增补,每一个程序组织单元都包含一个
定义部分和主体部分,主体部分可以用 IEC 的语言来编写,这些语言包括指令列表,结构化文本,顺序
功能图,功能模块图,梯形图或连续功能图表。
CoDeSys 支持所有 IEC 标准的 POU,如果你想在你的工程文件中使用这些 POU,必须在你的工程文件
中包含标准库文件 standard.lib。
POU 可以调用其它的 POU,但递归调用是不允许的。
功能
一个功能是一个 POU,它正确地产生一个数据元素(可以包含若干元素,比如,字段或者结构体)
在处理过程中,可以用文本化语言中的表达式中的一个操作数来调用它。
在声明一个功能的时候,一定要给它一个类型,这就是说,在功能名后面加上一个冒号然后跟一个
数据类型。
一个正确的功能声明可以参考下面的例子:
FUNCTION Fct: INT
另外,必须分配给功能一个结果,即把功能名作为一个输出变量
功能的声明从关键字 FUNCTION 开始。推荐的声明方式。
下例是在指令列表(IL)中的一个功能,它声明了三个输入变量:
前两个变量的相乘然后除以第三个变量。功能返回此操作的结果。
声明部分:
FUNCTION Fct: INT
VAR_INPUT
PAR1:INT;
PAR2:INT;
PAR3:INT;
END_VAR
程序部分:
LD PAR1
MUL PAR2
DIV PAR3
ST Fct
在结构文本中功能的调用可以作为表达式中的一个操作数。
功能不会有任何内部条件,这就是说,调用带有相同的输入变量功能将会返回相同的输出结果。
下面是调用功能的例子:
in IL:
LD 7
Fct 2,4
CoDeSys V2.3
-
-
7
Ergebnis
ST
in ST:
Ergebnis := Fct(7, 2, 4);
in FUP:
功能不会保持内部状态,对于不包含全局变量和地址的功能,每次在它被调用的过程中,给它传递
相同的输入变量,它将返回相同的值 。
注意:如果一个局部变量在一个功能中被声明为 RETAIN,这也没有任何影响,为此变量将不会写到保留区。
如果你定义了一个功能名为 CheckBounds,你可以用它来检验工程中的溢出的范围,定义地功能名
是它的仅有的标识符,更详细的内容请参考 10.1 章节中关于数学运算符中的 DIV。
如果在工程中你定义了 CheckDivByte, CheckDivWord, CheckDivDWord 和 CheckDivReal 功能, 如
果你用了除法算式,你可以用它们来检查除数的值,可以避免分母为零。
如果你定义了功能名 CheckRangeSigned 和 CheckRangeUnsigned,超出变量定义范围的数据类型被
截取。
所有这些检验功能名作为特定的用途保留下来。更多的知识请参考 Defined Datatype,Array。
在 SFC 中,一个功能的调用只能发生在一个单步操作或变换之内。
功能块
一个功能块是一个程序组织单元,在程序中提供一个或多个值,与功能相反,一个功能块没有返回
值。
功能块的声明用关键字 FUNCTION_BLOCK 开始.推荐的声明方式。
可以创建功能块的复制或实例。
调用功能块是通过功能块实例实现的。
下面是一个在指令列表中功能块的例子,在指令列表中功能块中包含两个输入变量和两个输出变量,
一个输出的是两个输入变量的乘积,另一个是两个输入变量的是否相等的比较。
声明部分:
FUNCTION_BLOCK FUB
VAR_INPUT
PAR1:INT;
PAR2:INT;
END_VAR
VAR_OUTPUT
MELERG:INT;
VERGL:BOOL;
END_VAR
在 IL 的执行部分:
LD PAR1
MUL PAR2
ST MULERG
LD PAR1
EQ PAR2
ST VERGL
功能块实例
-
CoDeSys V2.3
8