没有合适的资源?快使用搜索试试~ 我知道了~
首页CoDeSys手册CoDeSys手册
CoDeSys手册CoDeSys手册
需积分: 50 328 浏览量
更新于2023-05-31
评论 2
收藏 2.28MB PDF 举报
CoDeSys手册CoDeSys手册CoDeSys手册CoDeSys手册CoDeSys手册CoDeSys手册CoDeSys手册CoDeSys手册CoDeSys手册CoDeSys手册
资源详情
资源评论
资源推荐

CoDeSys 2.3 PLC 编程 1
1. CoDeSys 的简要介绍
1.1 什么是 CoDeSys
CoDeSys 是可编程控制器的完整开发环境(它代表了控制的开发系统),在 PLC 程序员编程时,CoDeSys
为强大的 IEC 语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程语言的基础
上(如 visual c++)。
1.2 CoDeSys 功能总览
怎样构造一个工程文件?
工程命名之后,内容添加到工程中,新工程中将自动创建第一个名为 PLC_PRG 的 POUs,程序从这里
开始执行(和 C 程序中的主要功能类似),从相同的点能够访问其它的 POUs(程序,功能模块,功能集)。
一旦定义了一个任务配置,就不必创建程序PLC_PRG 了。在任务配置章节将讲到更多的内容。
在工程中有不同的对象:POUs、数据类型、可视化和资源。
对象管理器中包含了工程中的所有对象。
怎样建立工程文件?
为了保证在工程文件中使用的地址的精确性,首先应该配置可编程控制器。
然后创建解决问题所需要的 POUs。
此刻可以用你所喜欢的编程语言来编写这些 POUs。当程序编写完成时,可以编译这些工程文件并去
除所有的错误。
怎样测试工程文件?
一旦排除了所有的错误,激活模拟器,登录仿真模式的 PLC 并在 PLC 中加载工程文件,此时处于联
机模式。
现在打开一个 PLC 配置的窗口,按合适的顺序来测试工程文件,手动的输入输入变量,观察输出变
量是不是所期望的。你也可以观察 POU 中的局部变量的序列值,在观察和接收器中可以配置你希望检查
的值的数据记录。
调试
你可以在程序出错的地方设置断点,如果程序在这个地方执行停止,你可以及时的检查在这个点的
所有变量的值,通过一步一步的检查你可以找出程序中的所有逻辑错误。
联机功能
更多的调试功能:
你可以设置程序变量并输入输出特定的值。
你可以通过流程控制来检查那些程序行在运行。
日志文件按照时间的顺序记录了联机模式下的运行以及用户操作和内部进程的情况。
如果在目标设置中激发了采样追踪,那么它允许你在一个较长的过程中来追踪和显示变量值的真实
变化过程。
PLC 浏览器是对象的一个特殊功能,它能够响应 PLC 中特定信息的请求。
当程序建立和测试完成后,它也能够装载在硬件中并测试。和模拟方式下有相同的联机功能。
CoDeSys 的特色
工程文件能够文档化或着导出到一个文本文件中。
为了通讯的目的,CoDeSys 有一个符号接口和一个动态数据交换接口。网关服务器和 OPC 服务器和
动态数据交换服务器是 CoDeSys 的标准安装包。
恰当的目标设置的使用能够把相同的 CoDeSys 工程文件加载到不同的对象系统中,可以通过对象文
件来加载这些对象设置。
通过当前的对象设置来激活网络全局变量和变量管理器。可以在网络内部的控制器中交换数据。
通过 ENI 服务器,工程接口能够访问任何我们所期望的源代码管理程序。ENI 服务器是个独立运行
的程序,CoDeSys 的程序组织单元和编译文件可以以文档方式存于数据库中,它们能够被 ENI 服务器的
PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn

2 CoDeSys 2.3 PLC 编程
客户端访问到。这个允许在处理一个工程文件的过程中进行多用户操作,它提供了一个除 CoDeSys 外的
对其它工具的一个公用数据缓冲池而且它使版本管理成为可能。
工具:这个功能性也是由对象决定的,它允许启动 CoDeSys 中的特殊对象的执行文件,除此之外还
可以定义文件,文件被装载到控制器中,它与外部工具的联系可以在对象文件中预定义或者插入到工程
文件资源树中。
CoDeSys 的可视化可以处理象网页可视化或对象可视化那样的对象,这样可以通过因特网或者 PLC
监视器的运行来查看可视化。
1.3 用户文档总览
模块 文档内容 文件名
CoDeSys 编程系统
通过帮助菜单在编程系统中
获得联机帮助和用户文档
编程第一步的例子
Manual_V23_D.pdf
First Steps with CoDeSys
V23.pdf
网关服务器
概念、安装、用 户接口:通过
网关菜单来获得联机帮助(通
过在系统图标上单击网关符
号来获得帮助)
Gateway Manual.pdf
OPC 服务器
OPC 服务器 V2.0 版本的安装
和使用
OPC_20_How_to_use_E.pdf
CoDeSys 的可视化
CoDeSys 的可视化文档包括
了 HMI、目标和 WEB 可视化
CoDeSys_Visu_E.pdf
库文档
手册中将讲述 standard.lib
和 util.lib 库
对于每个库CoDeSys中都用一
个对应这个文件名字的文档
<library name>.pdf
<SysLib-Name>.pdf
UserManual_V23_E.pdf
SOFTMOTION
怎样使用和描述 SOFTMOTION
库模块
SoftMotion_Manual_V23_E.pdf
ENI 服务器
在 外 部 数据库中对于
CoDeSys 工程的源控制部分
安装和配置 ENI 服务器
ENI 服务器的配置:参看用户
手册
ENI 管理、ENI 控制和 ENI 浏
览器:参看联机帮助
EniServerQuickstart_E.pdf
UserManual_V23_E.pdf
PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn

CoDeSys 2.3 PLC 编程 3
2 CoDeSys 的组成
2.1 工程文件的组成
工程
一个工程文件包含了 PLC 程序中的所有对象,工程存储在命名后的工程文件中,工程文件中包含下
列对象:POU,数据类型,可视化,资源和库文件
POU
功能,功能模块,程序集是程序组织单元,它们能够通过动作来增补,每一个程序组织单元都包含
一个定义部分和主体,主体部分可以用 IEC 的语言来编写,这些语言包括指令列表,结构化文本,顺序
功能图,功能模块图,梯形图或连续功能图表。
CoDeSys支持所有IEC的标准POU,如果你想在你的工程文件中使用这些POU,你必须在你的工程文件
中包含标准库文件standard.lib。
POU 可以调用其它的 POU,但递归调用是不允许的。
功能
一个功能是一个 POU,它产生一个真实的数据元素(可以包含少许的元素,比如,字段或者结构体)
在处理过程中,可以作为文本化语言中的表达式中的一个操作数。
定义一个功能的时候,一定要给它一个类型,这就是说,在功能名后面加上一个冒号然后跟一个数
据类型。
一个正确的功能定义可以参考下面的例子:
FUNCTION Fct: INT
另外,必须分配给功能一个结果,功能名作为一个输出变量
功能的定义从关键字 FUNCTION 开始。
在指令表中功能的调用被定位在单步操作或单个转换之内。
在结构文本中一个功能的调用可以作为表达式中的操作数
下面是一个在指令列表中一个功能带有三个输入变量并返回前两个变量的乘积与第三个操作数相
除的结果。
在结构文本中功能的调用可以作为表达式中的一个操作数。
功能不会有任何内部条件,这就是说,调用相同的输入变量功能将会返回相同的输出结果。
下面是调用功能的例子:
PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn

4 CoDeSys 2.3 PLC 编程
功能不会保持状态不变,对于不包含全局变量和地址的功能,每次在它被调用的过程中,给它传递
相同的输入变量,它将返回相同的值 。
注意:如果一个局部变量在一个功能中被定义为 RETAIN,这也没有任何影响,变量将不会写到保留
区。
如果你定义了一个功能名为CheckBounds,你可以用它来检验工程文件中的溢出的范围,功能名只能
定义为这个标识符,更详细的内容请参考10.1章节中关于数学运算符中的除法的讲述。
如果在工程文件中你定义了CheckDivByte, CheckDivWord, CheckDivDWord 和CheckDivReal,你可以
用它们来检查除数的值,如果你用了除法算式,可以避免分母为零。
如果你定义了功能名CheckRangeSigned 和 CheckRangeUnsigned,超出变量定义范围的数据类型被
截取。
所有这些检验功能名作为特定的用途保留下来。更多的知识请参考数组中的讲解。
在SFC中,一个功能的调用只能发生在一个单步操作或变换之内。
功能模块
一个功能模块是一个程序组织单元,在程序中提供一个或多个值,与功能相反,一个功能模块没有
返回值。
功能模块的定义是从关键字FUNCTION_BLOCK.开始
可以创建功能模块的复制或实例。
下面是一个在指令列表中功能模块的例子:
PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn

CoDeSys 2.3 PLC 编程 5
在指令列表中功能模块中包含两个输入变量和两个输出变量,一个输出是两个输入变量的乘积,另
一个是两个操作数的是否相等的比较。
功能模块实例
可以创建功能模块的复制或实例。
每一个实例都有它自己的标识符,并且一个数据结构体中包含它的输入输出和内部变量,实例可以
象变量一样被定义为局部和全局变量,然而功能模块的名称表明了标识符的类型。
FUB功能模块的实例:
INSTANCE :FUB;
功能模块通常是通过上述的实例来调用的。
只有输入输出变量能被实例之外的外部变量所调用,不能被它的内部变量调用。
下面是一个访问输入变量的例子。
功能模块FB有一个整型的输入变量in1
功能模块和程序的定义部分能够包含在实例声明,实例的声明不能包含在功能之中。
访问功能模块实例仅限于它被声明的POU中,在这里除非它被定义为全局变量。
注意:在一个功能模块处理完后的所有值将保存下来,直到下一个功能模块调用。所以,功能模块
调用相同的输入往往不返回相同的输出值。
注意:如果存在至少一个功能模块变量是一个保留的变量,整个实例模块将被存储在保留区。
调用一个功能模块
通过构造一个功能模块的实例并且用下面的语法来定义期望的变量,其它的POU能够访问这个功能模
PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
剩余216页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0