1、TwinCAT PLC 编程手册,德国倍福电气有限公司 2005 年5月,TwinCAT PLC Control 简介,TwinCAT PLC Control 定义:1、为PLC设计的一种完整的开发环境2、可自由处理功能强大的IEC语言,为PLC编程提供一种简便的3、编辑器和调试功能的使用则基于先进编程语言和已验证的程序开发环境,概述,项目新建及构成 step1:打开一个默认的“Task Configuration” step2:在项目中新建第一个POU(程序组织单元)(main主程序) 项目包含不同类型的对象:POU、数据类型资源和软件库。对象管理器(Object Organizer)使用一
2、个表包含项目中的对象。,新建项目步骤,step1:选择目标系统 step2:配置任务 step3:建立你的问题所需的POU,(可以使用期望的编程语言) step4:编译该项目,修改可能的错误。,测试项目,下载项目程序后,联机模式下通过测试发现是否为正确顺序。 1、使用Watch and Receipt Manager(监视和接收管理器) 2、程序出现错误可设置断点检查逻辑的正确性 3、Sampling Trace(抽样跟踪) (以上可配合手动设置输入变量观察对应的输出) 4、LOG(日志),其他功能,整个项目可随时进行文档化或输出到一个文本文件,也可以将它翻译成其他语言(?)。 ENI接口(工
3、程接口):可以将编程系统连接到外部数据库。在那你可以存储创建一个自动化项目过程中所需要的各种数据。外部数据库的使用保证了数据的一致性,这些数据以后可以被多个用户、项目和程序所共享。,TwinCAT项目组成,TwinCat项目包含以下对象: POU(程序组织单元):功能、功能块和程序。他们可以使用动作(Action)加以补充。 数据类型:除了标准数据类型,还支持用户自己定义的数据类型。建立结构、枚举类型和子类型 资源:为了配置和组织项目以及葛总变量值 软件库:通过在项目中加载软件库,用户可以像使用自定义变量那样使用这些库的POU、数据类型和全局变量,POU(程序组织单元),功能、功能块和程序都是
4、POU ,可以使用菜单中动作Action在项目中增加。 每个POU由一个声明部分和一个程序本体组成。 可是使用IEC编程语言中的一种语言编写。(IL、ST、SFC、FBD、LD或CFC) 还可以从标准库(standard.lib)调用。注:一个POU可以调用其他POU,但是不允许进行递归调用。,功能,当对它进行处理时,它可准确地生成数据元素(诸如由几个字段或结构等元素组成),并在文本语言调用时作为表达式内法人一个操作符出现。 功能声明:功能声明必须返回一个类型。 示例:,关键词,功能实例名,类型,由ST(结构化文本)编写的一个功能可作为表达式中的一个操作数。功能没有任何内部条件。意味着,由相同
5、(输入参数)调用的一个功能总是产生相同的值(输出)。在功能内声明一个保持型的本地变量是没有意义的,变量不会保存在保留区。,功能,功能调用 示例:使用SFC时,一个功能调用只出现在一个步或一个转换内。,功能块,功能块提供程序运行过程中的一个或多个值,功能块不提供返回值。 功能块声明:功能块名作为标识符类型予以指示,实例名,功能块名,功能块调用,功能块调用 存取功能块变量输入和输出变量使用“:=”进行输入参数赋值 特别的POU的输入/输出变(VAR_IN_OUT) 将变成为一个指针不能对他们赋值常数不能进行外部读写操作。,处理功能块后所有值直到下一次处理前都加以保留,通过相同变元的功能块调用并不总
6、是返回相同的输出值。 如果至少有一个功能块变量是一个保留变量,则全部实例都存储在保留区(?)。,功能块,示例,1,2,3,程序,程序在运行中返回若干个值,并全局识别整个项目的程序。从上一次运行程序直到下一次运行程序,一直保留所有值。 程序可以被调用,不允许在一个功能内调用一个程序。 如果一个POU调用一个程序,而且程序值随之改变,那么这些改变将被保留到下一次调用程序。(即使从其他POU内已调用了改程序),程序声明,程序声明 以关键字PROGRAM开始,以END_PROGRAM结束。 示例:,如果从程序PRGexample来的变量PAR是通过一个带有0的主程序初始化,然后以上述命名的程序调用逐一
7、调用其他程序,那么,程序中的ERG结果将有值1、2和3。如果交换调用顺序,那么,给定结果参数的值相应的变化。,功能、功能块和程序区别与联系,功能与功能块: 功能声明时必须返回一个类型,功能块不提供返回值 相同变元(输入参数)调用的一个功能总是产生相同的值(输出。) 功能块名是作为标识符类型予以指示的,通过实例调用(作为本地或全局变量声明);功能名坐为输出变量使用的。,功能、功能块和程序区别与联系,处理功能块后所有值直到下一次处理前都加以保留,通过相同变元的功能块调用并不总是返回相同的输出值。 特别的POU的输入/输出变(VAR_IN_OUT) 将变成为一个指针不能对他们赋值常数不能进行外部读写
8、操作。 如果一个POU调用一个程序,而且程序值随之改变,那么这些改变将被保留到下一次调用程序。(即使从其他POU内已调用了改程序) 不同于调用功能块,只改变功能块给定实例中的值,因此仅当调用相同实例时这些改变才会起作用。,功能、功能块和程序区调用关系,功能不能调用程序 程序不存在实例,POU,动作,作为功能块和程序的附加特性,可以定义各种动作,一个动作是使用步实现的。 一个动作是与关联的功能块或程序的数据一起工作的,与常规实现体一样,使用相同的输入输出变量和局部变量。 .和.调用动作。,动作,调用,资源,“全局变量(Global Variable)”,它可以在整个项目中使用。 用来配置硬件的“
9、PLC配置(PLC Configuration)” 引导程序执行各种任务的“任务配置(Task Configuration)” 用于变量图形化显示的“抽样跟踪(Sampling Trace)” 用来显示变量和设置默认变量的“监视和接收管理器(Watch and Receipt Manager)”,编程语言,支持所有IEC61131-3编程语言,两种文本编程语言和三种图形编程语言。 文本编程语言: 指令表(IL) 结构化文本(ST) 图形编程语言: 功能块图(FBD) 连续功能图(CFC) 梯形图(LD) 顺序功能图(SFC),指令表,编程语言实例,结构化文本(ST),编程语言实例,连续功能图(CFC),功能块图(FBD),编程语言实例,顺序功能图(SFC),梯形图(LD),调试,联机功能,抽样跟踪:允许跟踪20个布尔变量64KB环形缓冲区 调试:查找错误所在 断点:在程序内特定位置观察变量值 单步:逐步操作 单循环:每次循环后执行被停止。 联机情况下改变值:Write Variable xy手动设定值 监视:联机工作方式 仿真:只用于Buscontroller (BCxx00),不需物理硬件 LOG(日志):日志按时间顺序记录用户动作、内部过程、状态改变和异常事件,