CoDeSys编程手册中文版第一稿

更新时间:2023-04-11 03:09:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

用户编程手册

CoDeSys 2.1 上海派恩科技有限公司工程技术部

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

上海派恩科技有限公司工程技术部

我们已经作了大量的工作以保证本手册的正确性和完整性。由于水平有限,文档中缺点错误在所难免,请广大读者对不妥之处给于指出。

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Content

Contents

上海派恩科技有限公司工程技术部

1 CoDeSys简介_____________________________________________________ 1-1

1.1什么是 CoDeSys1-1

1.2功能概述1-1

2 CoDeSys _主要内容__________________________________________________________ 2-1

2.1项目构成2-1

2.2编程语言2-10

2.2.1指令表 (IL)2-10

2.2.2结构化文本(ST2-12

2.2.3顺序功能图 (SFC)2-19

2.2.4功能块图(FBD)2-25

2.2.5梯形图 (LD)2-25

2.3调试,联机功能2-27

2.4标准2-29

3 We Write a Little Program __________________________________________________________ 3-1

3.1控制一个交通信号单元3-1

3.2观察交通信号单元3-15

4 The Inpidual Components _________________________________________________________ 4-1

4.1The Main Window4-1

4.2Options4-4

4.3Managing Projects4-13

4.4Creating and Deleting Objects, etc.4-26

4.5General Editing Functions4-34

4.6General Online Functions4-40

4.7Window set up4-50

4.8Help when you need it4-50

5 Editors in CoDeSys ________________________________________________________________ 5-1

5.1The Declaration Editor5-1

5.2The Text Editors5-8

5.2.1The Instruction List Editor5-12

5.2.2The Editor for Structured Text5-13

5.3The Graphic Editors5-14

5.3.1The Function Block Diagram Editor5-16

5.3.2The Ladder Editor5-22

5.3.3The Sequential Function Chart Editor5-28 CoDeSys 2.1 1-i

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Content

5.3.4 The Continuous Function Chart Editor (CFC) 5-36

6 The Resources _____________________________________________________________________ 6-1

6.1 Overview of the Resources

6-1 6.2 Global Variables

6-1 6.2.1 Access Variables 6-2 6.2.2 Global Variables

6-3 6.2.3 Variable Configuration 6-3 6.2.4 Document Frame 6-5 6.3 PLC Configuration

6-6 6.3.1 Hardware dependent Configuration 6-6 6.3.2 Configurable PLC Configuration 6-8 6.3.3 CAN Configuration 6-9 6.4 Task Configuration 6-16 6.5 Sampling Trace

6-19 6.6 Watch and Receipt Manager

6-25

7 Library Manager __________________________________________________________________ 7-1

8 Visualization ______________________________________________________________________ 8-1

8.1 Create Visualization

8-1 8.2 Visualization Elements, Insert

8-2 8.3 Working with Visualization Elements 8-4 8.4 Visualization Elements, Configure

8-5 8.5 Additional Visualization Element Functions

8-14

9 DDE Interface _____________________________________________________________________ 9-1

10 Appendix ________________________________________________________________________ 10-1

Appendix A: Using the Keyboard_______________________________________________________ 10-1

Use of Keyboard 10-1 Key Combinations

10-1

Appendix B: Data types _______________________________________________________________ 10-5

Standard Data types 10-5 Defined Data Types

10-6

Appendix C: I EC Operators __________________________________________________________ 10-11

IEC Operators 10-11 Bitstring Operators 10-13 Bit-Shift Operators 10-15

1-ii

CoDeSys 2.1

上海派恩科技有限公司工程技术部

电话:021-58871153传真:021-58871140

地址:上海市浦东东方路8号 良丰大厦27G

Content

Selection Operators 10-18 Comparison Operators 10-20 Address Operators 10-22 Calling Operator

10-23 Type Conversion Functions 10-23 Numeric Functions 10-28

Appendix D: Standard Library Elements _______________________________________________ 10-33

String Functions

10-33 Bistable Function Blocks 10-37 Trigger 10-38 Counter 10-40 Timer

10-42

Appendix E: T he UTIL.LIB Library ___________________________________________________ 10-47

BCD conversion 10-47 Bit/byte functions

10-48 Mathematical help functions 10-49 Controllers

10-50 Signal generators 10-52 Function manipulators 10-53 Analogue value processing

10-55

Appendix F: O perands in CoDeSys ____________________________________________________ 10-57

Constants 10-57 Variables 10-59 Addresses 10-60 Functions

10-61

Appendix G: C ommand Line/Command File Commands _________________________________ 10-63

Command Line Commands 10-63

Command File (cmdfile) Commands

10-63

Appendix H: S iemens Import _________________________________________________________ 10-67

Appendix I: Error messages __________________________________________________________ 10-77

11 Index ________________________________________________________________________ 11-1

CoDeSys 2.1 1-iii

上海派恩科技有限公司工程技术部

电话:021-58871153

传真:021-58871140

地址:上海市浦东东方路8号 良丰大厦27G

Chapter 1 - A Brief Introduction to CoDeSys

上海派恩科技有限公司工程技术部

1 CoDeSys简介

1.1 什么是 CoDeSys

CoDeSys是用于可编程控制器的完整开发环境(适用于各种控制系统)

CoDeSys使plc编程员能简单易行的使用IEC 编程语言进行开发。编辑和

编译的功能建立在和高级编程语言(例如Visual C++).的开发环境上

1.2 功能综述

项目的结构

第一个建立的编程组织单元(POU)会自动命名为PLC-PRG。其它pous可

以获得同一个通道。一旦已经定义了p。

如果你已经对任务配置进行过定义,就不必创建一个PLC_PRG程序。相关

内容在任务配置章节有更详细的介绍。

一个项目由几个部分组成:POUs,数据类型,显示元素(可视化)以及资

源。.

如何建立自己的

项目

首先你需要对PLC进行配置以准确检测项目里所用到的地址。

然后创建POUs解决问题。

现在你可以用自己擅长的语言编写POUs。

程序完成之后进行编译,对可能出现的错误进行改正。

如何检测项目

所有错误改正之后进行仿真(simulation ),仿真plc(login),并把项目下载到

PLC里。现在你就可以联机模式中检测项目。

CoDeSys 2.1 1-1电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Overview of CoDeSys Functions

上海派恩科技有限公司工程技术部

现在打开PLC Configuration 窗口并检测项目运行结果是否正确。输入变量

值检测输出是否正确。也可以检测项目里局部变量的运行情况。你可以在

Watch and Receipt Manager 窗口创建需要检测的数据值档案。

调试

你可以在程序错误处设置断点,这样就可以在断点处及时检测项目所有的变量

值。用(single step)顺序运行可以检测程序的逻辑正确性

其它联机功能

你可以为程序的输入输出变量指定一个特殊值。你可以用流动控制检测程

序的哪一段正在运行。在Sampling Trace 窗口可以跟踪并显示变量在整个

程序运行时期的变化情况。

如果项目已经建立并测试完毕,硬件部分就可以下载并测试完成。你就可

以用同样的联机功能进行仿真了。

CoDeSys附加特性

在任何时候都可以对整个项目进行备份或者以文本文件进行导出。

概要

CoDeSys是一个完备的PLC开发工具,能节省你大量的程序开发时间。

1-2 CoDeSys 2.1电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Chapter 2 - What is What in CoDeSys

上海派恩科技有限公司工程技术部

2 What is What in CoDeSys

这章包含大量重要的概念需要您了解,以使你的上手简单易行。

2.1 项目构成

项目一个项目包括PLC程序的所有部分。在项目建立后将被命名。一个项目包含以下各个部分:程序组织单元(POUs),数据类型,可视化部分,资源

以及库函数。

程序组织单元(POUs)

有三种类型的POU:功能Functions(功能),function blocks(功能块),

programs(程序)Functions, function blocks, and programs are POUs.

每一个POU由代码部分(主体)和变量说明部分组成。代码部分由IEC编程

语言编写,有五种不同类型的编程语言:IL(指令表),ST(结构化文本),

SFC(顺序功能图),FBD(功能图),LD(梯形图)。CoDeSys支持所有IEC标准

POU。如果你需要在项目中使用这些POU,必须把标准库导入在项目里。

POU也可以调用其它POU。然而递归调用不允许。

Function

功能

功能这种类型的POU在运行时可以产生一个准确的数据元素(由几个部分

组成,如场和结构等),用文本语言对功能进行调用可以产生一个功能

值。

不能忘记在功能的说明部分进行类型说明。也就是说,在功能名之后加上

类型,你必须键入一个冒号并写上相应的类型。一个正确的功能说明有如

一下这个示例:

FUNCTION Fct: INT

另外,一个结果必须赋值给这个功能,也就是说功能名就是输出变量。

一个功能说明白部分由关键字FUNCTION 开始,以END_FUNCTION 结

束。

以下是一个用IL编写的一个功能示例,内容是有三个输入变量,用前两个

的乘积除以第三个变量,结果返回到功能名

CoDeSys 2.1 2-1

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Project Components

上海派恩科技有限公司工程技术部

Image 2.1: Function

用ST语言调用功能就如一个数学表达式一样。

Functions 没有静态变量(没有记忆),也就是说当以相同的输入参数调用

时,它总是生成相同的结果作为输出。

调用Functions 的例子如下:

in IL:

LD 7

Fct 2,4

ST Result

in ST:

Result := Fct(7, 2, 4);

in FBD:

只能在跳变或转换的时候用SFC(顺序功能图)调用Functions 。

function的执行例子如下。

2-2 CoDeSys 2.1

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Chapter 2 - What is What in CoDeSys

上海派恩科技有限公司工程技术部

Image 2.2: Example of the Implementation of the Function CheckBounds

下面这个标准程序定义了一个数组来检测当CheckBounds function超出界

限值的情况。CheckBounds function可以保证正确值不是赋给A[10],而是

赋给仍然有效的A[7]。可见,CheckBounds function可以用于确认数组

界限值。

Image 2.3: Test Program for the CheckBounds Function

CoDeSys 2.1 2-3

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Project Components

上海派恩科技有限公司工程技术部

Bild 2.4: Example for the implementation of the funciton CheckDivReal

操作符DIV用function CheckDivReal 作为Divisor (除数)。在下面这个程

序里避免了除数为零的情况,pisor (d)除数被设置成0或1,因此相除结果

为799。

Bild 2.5: Example program of the function CheckDivReal

Functionblock

功能块

功能块类型的POU在程序执行过程中可以提供一个或多个值。对比于

function功能来说,一个function block 功能块并不提供返回值。function

block 的说明部分以关键字FUNCTION_BLOCK 开始,以

END_FUNCTION_BLOCK 结束。

子Example in IL of a function block with two input variables and two

output 以下以IL语言编写的一个例子:两个输入变量,两个输出变量,一

输出值为两输入变量值的乘积,一个输出值为两输入变量的等值比较结

果。

2-4 CoDeSys 2.1

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Chapter 2 - What is What in CoDeSys

Image 2.6: Function Block

Function Block 实例 可以创建一个function block 的拷贝。Reproductions or instances (copies) of a

function block can be created.每一个实例拥有自己的标识符(实例名),数据结构包含它的输入输出及内部变量。实例被说明为局部或全局变量,然而function block 的名字被指示为标识符类型。

例:定义实例名为INSTANCE ,类型为FUB 的function block 。

INSTANCE: FUB;

function block 作为一个实例调用如上所示。

只有输入输出参数可以通过function block instance 读取。function block 的内部变量对使用者透明(不可见)。

Example 例:读取输入变量 for accessing an input variable:

The function block FB has an input variable in1 of the type INT.

PROGRAM prog

V AR

inst1:fb;

END_V AR

LD 17

ST inst1.in1

CAL inst1

END_PROGRAM

function blocks 和 programs 的说明部分包含实例说明。实例说明在 functions.中是不允许的。

能否对functions block 实例进行访问受限于POU 是否对其进行说明,除非实例已经被定义为全局变量。.

CoDeSys 2.1 2-5 上海派恩科技有限公司工程技术部

电话:021-58871153传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Project Components

上海派恩科技有限公司工程技术部

一个function block 实例的实例名可以做为function 和function block的输

入。

调用功能块

可以通过键入实例名来使用function block 变量。

如果你想在打开function block 时对参数进行设置,可以用IL和ST语言在实例

名后用括号给参数赋值(这种方式代替了在初始化变量的说明部分中用=号赋

值的用法)。

上例中描述:乘积结果存放在变量ERG中,比较结果存放在QUAD.

function block FUB的实例名为INSTANCE。

下面的图片为用IL语言编写的一个function block 调用。

下面的例子中调用用ST编写,说明部分与IL编写相同。

Image 2.8: Function Block Call in ST

2-6 CoDeSys 2.1

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Chapter 2 - What is What in CoDeSys

在FBD 中function block 实例的调用如下所示。(说明部分与IL 相同)

Image 2.9: Function Block Call in FBD 用SFC 语言编写的function block 只能在单步模式里调用。

程序

一个Program 类型的POU 在运行过程中可以返回多个值。Program 代表主程序,整个程序中的所有赋予物理地址的变量必须在这个POU 或其上层予以说明。所有program 的值都在程序执行之后都将保存知道程序的下次执行。

Image 2.10: Example of a program Programs 可以被调用。Programs 被用于function 调用是不允许的。Programs 中没有实例。. 如果一个POU 调用了一个Programs ,并且因此Programs 里的数据发生了改变,那么这些改变了的值将保存到下一次Programs 被调用,即使之前这个Programs 已被其它POU 调用过。 这不同于function block 的调用。Function block 的实例值只有当相同的实例发生调用才会改变。 因而,发生改变的情况只有在相同实例被调用的情况才能发生。 program 说明部分以关键字PROGRAM 开头以END PROGRAM 结束。 CoDeSys 2.1 2-7 上海派恩科技有限公司工程技术部电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Project Components

上海派恩科技有限公司工程技术部

Program调用如上例

CAL PRGExample

LD PRGexample.PAR

ST ERG

in ST:

PRGExample;

Erg := PRGexample.PAR;

In FBD:

Example for a possible call sequence for PLC_PRG:

LD 0

ST PRGexample.PAR (*Default setting for PAR is

0*) CAL IL call (*ERG in IL call results in 1*)

CAL ST call (*ERG in ST call results in 2*)

CAL FBD call (*ERG in FBD call results in 3*)

如果首先变量P AR在program PRGexample里被初始化为0,然后以下的几个程

序都一个接一个调用PRGexample,那么ERG在程序里的数据将是1,2,和3。

如果其中一个调用发生改变,那么结果将发生相应的变化。

PLC_PRG

PLC_PRG是一个预先定义的POU,每一个项目必须包含PLC_PRG。

PLC_PRG在每一个控制周期都被调用一次。

第一次建立"Project" "Object Add" 时,POU建立对话框里默认的POU

名为PLC_PRG.。这个默认设置不能改动。

如果任务已经定义,projiect中将不包含任何PLC_PRG ,这种情况程序执行取

决于任务配置。

delete or rename the POU PLC_PRG

(如果你还没有有使用过任务配置,可以阅读Task Configuration章

节!)PLC_PRG在单个任务程序中生成主程序。

Action

行为

Actions可以定义一个function blocks和programmes。Actions代表一种高层应

用,它可以完全用另一种语言创建为底层应用。每一个action赋有一个名

字。

action处理属于function block或programme的数据。Action如普通应用一样使

用输入输出变量和局部变量。.

2-8 CoDeSys 2.1

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Chapter 2 - What is What in CoDeSys

Image 2.11:Example for an action of a function block

如例中所示,调用function block Counter 是增加或是减小输出变量“out ”,取决于变量“in ”的值。调用此功能块的action Reset 给输出变量赋值为0。两个示例中都有相同变量“out ”。

一个action 用.或者

.调用。如果调用的action 包含有自己的块,只需使用文本编辑的action 名并在图表中形成function block 调用。An action is called up with . or

..

示例上述action 调用。

Declaration for all Examples:

PROGRAM PLC_PRG

V AR

Inst : Counter;

END_V AR

In AWL:

CAL Inst.Reset(In := FALSE)

LD Inst.out

ST ERG

In ST:

Inst.Reset(In := FALSE);

Erg := Inst.out;

In FUP:

注意Note: actions 在块和顺序功能图表中有重要作用,阅读2.2.3

CoDeSys 2.1 2-9 上海派恩科技有限公司工程技术部

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Languages

上海派恩科技有限公司工程技术部

IEC标准不认可action以及顺序功能图表。

资源

你需要资源以配置

可用于整个项目的全局变量。 对硬件进行配置

任务配置,用于通过任务引导程序

采样描图,用于对变量值的图表显示。

观察和接受管理,用于显示变量值和设定默认变量值。

阅读“The Resources”章节。

你可以在项目里添加一系列POUs、数据类型、以及全局变量作为自己定

义的变量使用。处理程序时你可使用标准库函数"standard.lib"做为标准程

序的一部分请阅读章节"Library Manager"。.

数据结构

除了标准的数据类型之外,用户也可以定义自己的数据类型,例如结构,

枚举类型等。

详细请在附录中阅读"Standard" and "Defined data types"。

可视化

CoDeSys 提供了可视化编程功能以使你的项目更为形象。你可以在可视化

功能里不联机状态下创建几何图元,通过相应的变量值,你可以在联机状

态下改变他们的形式。

详见“可视化”一章。

2.2 Languages语言

2.2.1 Instruction List (IL)指令表(IL)

一个指令表由一系列的指令组成。每一个开始开始于新的一行,包含操作

数,并且根据不同的操作数,用逗号将其分开。

在指令之前可以写上标志,用冒号分隔起来。

注释写在一行的最后,在指令之间可以插入空行。

2-10 CoDeSys 2.1

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Chapter 2 - What is What in CoDeSys

上海派恩科技有限公司工程技术部

Example:

LD 17

ST lint (* comment *)

GE 5

JMPC next

LD idword

EQ istruct.sdword

STN test

next:

使用IL

C with JMP, CAL, RET: 指令只在前面表达式为真时

执行

N with JMPC, CALC, RETC:指令只在前面表达式为假时执行。

N otherwise: 否定操作数

以下表格是IL语言的一些操作数和其含义

Operator Modifiers Meaning

把当前值装载进操作数

LD N

ST N把当前值装载进操作数

S当前值为真时把布尔量置为真

R当前值为假时把布尔量置为假

AND N,(按位与

N,(按位或

XOR N,(按位异或

ADD (加

SUB (减

MUL (乘

DIV (除

GT ( >

GE ( >=

EQ ( =

NE ( <>

LE ( <=

LT ( <

JMP CN跳转到标志

CAL CN调用子程序

RET CN返回 .

)

.

CoDeSys 2.1 2-11

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Languages 示例 LD TRUE 装载TRUE 入累加器 ANDN BOOL1 (* BOOL1与BOOL1相反值按位与*) JMPC mark (如果结果为真,跳转到“mark ”)

LDN BOOL2 保存BOOL2的相反值

ST ERG 将BOOL2 装载进

ERG(*BOOL2 in ERG*)

label:

LD BOOL2 (*save the value of

*) ST ERG *BOOL2 in ERG*)

IL 中也可以在操作数后加圆括号,圆括号里的数值也被当成一个操作数

For example:

LD 2

MUL 2

ADD 3

ST ERG

Here is the value of Erg 7. However, if one puts parentheses:

LD 2

MUL 2

(

ADD 3

)

ST ERG

ERG 的值为10,在括号里计算出乘数MUL 为5。

2.2.2 结构化文本ST

结构化文本由一系列描述语句组成,类似高级语言。如("IF..THEN..ELSE")或循环语句(WHILE..DO) 都可被执行。

Example: IF value < 7 THEN WHILE value < 8 DO value:=value+1; END_WHILE; END_IF; 表达式

一个表达式在运算之后有返回值。表达式由操作符和操作数组成 操作数可以是常量,变量或其他表达式。

2-12 CoDeSys 2.1 上海派恩科技有限公司工程技术部

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Chapter 2 - What is What in CoDeSys

表达式计算

表达式在运算中遵循优先规则。优先级高的将先被执行。

以下按优先级从高到低排列。 Operation Symbol Binding strength Put in parentheses (expression) Strongest binding Function call Function name (parameter list) Exponentiation EXPT Negate Building of complements Multiply Divide Modulo Add Subtract - NOT * / MOD + - Compare <,>,<=,>= Equal to = Not equal to <> Boolean AND AND Boolean XOR XOR Boolean OR OR

Instruction type Example Assignment A:=B; CV := CV + 1; C:=SIN(X); Calling a function block and use of the FB output CMD_TMR(IN := %IX5, PT := 300); A:=CMD_TMR.Q RETURN RETURN; IF D:=B*B; IF D<0.0 THEN C:=A; ELSIF D=0.0 THEN C:=B; ELSE C:=D; END_IF;

CoDeSys 2.1 2-13 上海派恩科技有限公司工程技术部电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

Languages

上海派恩科技有限公司工程技术部

CASE CASE INT1 OF

TRUE;

:=

1: BOOL1

TRUE;

:=

2: BOOL2

ELSE

BOOL1 := FALSE;

BOOL2 := FALSE;

END_CASE;

FOR J:=101;

FOR I:=1 TO 100 BY 2 DO

IF ARR[I] = 70 THEN

J:=I;

EXIT;

END_IF;

END_FOR;

WHILE J:=1;

WHILE J<= 100 AND ARR[J] <> 70

DO

J:=J+2;

END_WHILE;

REPEAT J:=-1;

REPEAT

J:=J+2;

UNTIL J= 101 OR ARR[J] = 70

END_REPEA T;

EXIT EXIT;

Empty instruction ;

顾名思义,结构化文本用于结构程序设计,S T语言为编程提供各

种经常需要使用预定义结构如l o o p循环语句等。

举个例子说明ST与IL语言的不同

A loop for calculating powers of two in IL:

Loop:

LD Counter

JMPC end

LD V ar1

MUL 2

ST V ar1

LD Counter

SUB 1

ST Counter

JMP Loop

2-14 CoDeSys 2.1

电话:021-58871153

传真:021-58871140地址:上海市浦东东方路8号 良丰大厦27G

本文来源:https://www.bwwdw.com/article/7orl.html

Top