1、CFC基础知识培训第一章CFC必备基础本章目的是介绍关于CFC的基本信息:1)介绍CFC是如何结合到STEP7软件包中的;2)描述了块的概念;3)创建工程、测试工程的基本步骤。什么是CFC?CFC(continuous function chart)是与STEP软件包结合使用的一个可视化图形编辑工具。类似的其他的编程工具有:SCL、STL、LAD、FBD等。利用已经创建好的块来为某个CPU创建整个特定功能的软件框架基本过程就是把块拖入功能图表,赋给一定参数,然后把块相互连接起来.(所谓块与块的相互连接就是把某个块的输出的值通过各种通讯方式传递给其他一个或多个块的输入)用CFC编程你不再需要自己
2、去关注算法以及计算机资源的分配和管理(如定义变量时分配内存地址等),而只需要把注意力集中到应用程序的工艺逻辑方面。(实际上这样做的坏处是把计算机资源完全与用户隔离起来,也就是开发程序必须以siemens已经提供的块为基础,其他的计算机资源用户是无法访问到的。这样也就把很多原来的Plc编程时候常用的编程技术给废除了。)某个块或者一组块可以一起拷贝或者移动,而不会破环它们相互之间的连接,这可以为编程省下很多的时间。(方法:选上、ctrl+鼠标拖动)名词解释ProjectCPUProgramCharts folderChart chart partitionsSheets sheet barsOve
3、rflow pageNested chartChart overview sheet viewCFC中的块块-block块类型定义规定了这个块的算法,块的名字,以及数据接口(即输入输出参数)块的名字一般是块功能的简化缩写.块的数据接口,即输入输出参数的数据类型有:实型、整型、布尔型等。如下表示S7块的实例-block instance当把某个类型的块从块的库里面拖出来放到CFC的chart里面的时候,就已经为这个类型的块创建了一个实例了.有点类似于c+里面的类的概念。这样做的好处是,当对某个类型的块进行了升级之后,原来程序中已经创建了的块的实例也会全部被升级到新的代码.复杂的块-complex
4、 block能够利用很多的子功能组合完成复杂的功能。而这些子功能本身由是由很多不同的块的实例组合来完成的,把这些组合块一起按块编译就生成了自己创建的块。这个技术可以灵活的应用于应用程序的编写,相当于把很多的块组织起来完成某个功能,然后编译成自定义一个块。块的分类-block family块可以根据其功能特性来进行分类成不同的类别.组织块-organization blockCPU上运行的操作系统和用户程序的接口由各种任务组成,在S7中称为组织块。利用这些组织块,可以规定特定的程序在特定的时刻或者特定的情况下执行。有CPU冷启动时执行的OB块,热启动时执行的OB块,有过程中断时执行的OB块,还有
5、周期执行的OB块。组织块与一般的块在概念上有很大的区别,组织块是指抽象的,而一般的块是具体的.块的运行时属性 run-time properties of blocks参考第二章第一节第5段“修改CFC程序”the Catalog是用来放“块(blocks),chart,libraries的一个容器.程序创建的基本步骤1)创建工程结构(CPU-program-chart folder-CFC chart)2)利用自己创建块,并将它们引入工程中(blocks from libraries,other program or selfcreated blocks; Import)3)把块拖入char
6、t中(insert)4)为块配置必须的参数并把它们相互连接起来(parameters/interconnect)5)调整块的运行时属性(run-time properties)6)编译程序(compile)7)下载程序(download)8)调试程序(commission and testing)第二章实例演示本章目的是让初学者通过演示实际的例子尽快熟悉CFC的编程过程。创建一个闭环控制系统模拟过程控制创建工程使用SIMATIC MANAGER的菜单命令创建新的工程;使用Hwconfig配置系统的硬件,这一步必须在下载程序之前完成.(昨天凌智已经讲解了!)步骤:A)FILEnew ; 输入工程
7、名称“CFCEXA_2”B)选中工程文件夹,insertprograms7 program;C)选中s7 program文件夹,inserts7 software chartfolderD)选中chart文件夹,inserts7 softwareCFC;CFC(1) chart就被创建了,把它命名为control;E)双击control chart打开。配置chart模拟过程控制,用两个块“SAMP_AVE”和“CONT_C实现。关于”SAMP_AVE” 和“CONT_C”的信息参考在线帮助。插入块的步骤:A)打开the CATALOGB)定位到CFC LIBRARY,这个库里面就是我们编程需
8、要的块的集合C)打开ELEM_400D)拖入CONT_CE)拖入SAMP_AVEF)从sheet overviewSheet view;optioncustomizeblock/sheet bar width连接块的步骤:改变块的外观:通过修改块的属性来实现,属性页1:generalName:Comment:属性页2:inputs/outputsInivisableWatchedMore informationblock object property help给块的输入输出设定参数步骤:完成默认值的输入,设置调试时需要监控的输入输出的watched属性。编译和下装A)chartcompile
9、chart as programB)PLCdownload测试程序测试的目的:通过监控块的输入和输出,或者改变块的输入,来调整程序满足用户的要求。?没法强制块的输出!替代的方法是:如果某一个关键的控制量需要进行强制,只能利用Nsw来实现。测试模式相关命令和选项Test mode on/off (on=激活测试模式,off=激活编辑模式)Test setting(监控画面的更新周期定义)Process mode(所有块的输入输出都不能被监控)Laboratory mode (所有块的输入输出都被监控)修改CFC程序一个chart上面的块都有特定的运行时属性。这些属性决定了这些块在CPU中什么时候
10、以什么顺序运行。在S7中,是用OB块来组织CPU中各种运行序列(run sequence)的。在TDC中,是用I1I8,以及T1T5来组织CPU中各种运行序列(run sequence)的。OB块就是s7的CPU的操作系统和用户程序之间的接口。I1I8,以及T1T5就是TDC的CPU的操作系统和用户程序之间的接口。当在program文件夹中插入一个CFC chart对象时,系统将自动会创建一个以该chart对象为名字的运行时间组。可以自己定义运行时间组.举例实现。运行时间组包含的所有的块必须包含在一个运行序列中(run sequence)。运行时间组可以被动态的enable/disable。举
11、例实现.块可以不属于任何运行时间组。举例实现。运行时间组可以定义扫描率scan rate和计算偏移时间phase offset.创建一个带I/O的chart带I/O的chart可以被用来封装已经编写好的CFC chart,以作为以后调用.Add4实例演示;单独CPU,并且去掉sima系统chart新建的chart必须要定义相应得chart IO新建的chart上面所有的块必须要属于同一个T运行周期。把带IO的chart放到另外一个chart中Add4插入另外一个chart的实例演示;把带IO的chart编译成一个块Add4编译成一个块的实例演示;单独CPU,并且去掉sima系统chart新建的chart必须要定义相应得chart IO新建的chart上面所有的块必须要属于同一个T运行周期。第三章 介绍虚拟连接和通讯的实现虚拟连接的概念和作用为了完成通讯过程,用来把数据打包的成虚拟连接。TDC的通讯过程CFC中建立虚拟连接由各种通讯模板上的数据接口提供交换缓存机制CTV、CRV通过数据通道进行虚拟连接的传送和接收TDC的通讯方式LOCALGLOBPRODPTCPIPSRACKWinCC和TDC之间的通讯实际举例SRACK1的实际例子