ST
STRUCT
Parenthesisforelementarydatatypesandotherstructures(nestingdepth:
8)
T
TIMEOFDAYorTOD
Timer
32
Tl
TIME
Duration
32
TR
TIMER
NumberofanS7timer
16
T5
S5TIME
DurationinS5formal
16
W
WORD
Sequenceof16bits
16
块的实例---blockinstanee
当把某个类型的块从块的库里面拖出来放到CFC的chart里面的时
候,就已经为这个类型的块创建了一个实例了。
有点类似于C++里面的类的概念。
这样做的好处是,当对某个类型的块进行了升级之后,原来程序中已经创建了的块的实例也会全部被升级到新的代码。
复杂的块---complexblock
能够利用很多的子功能组合完成复杂的功能。
而这些子功能本身由是由很多不同的块的实例组合来完成的,把这些组合块一起按块编译就生成了自己创建的块。
这个技术可以灵活的应用于应用程序的编写,相当于把很多的块组织起来完成某个功能,然后编译成自定义一个块。
块的分类---blockfamily
块可以根据其功能特性来进行分类成不同的类别。
组织块---organizationblock
CPU上运行的操作系统和用户程序的接口由各种任务组成,在S7中
称为组织块。
利用这些组织块,可以规定特定的程序在特定的时刻或者特定的情况下执行。
有CPU冷启动时执行的OB块,热启动时执行的OB块,有过程中断时执行的OB块,还有周期执行的OB块。
组织块与一般的块在概念上有很大的区别,组织块是指抽象的,而一般的块是具体的。
块的运行时属性run-timepropertiesofblocks
参考第二章第一节第5段“修改CFC程序”
theCatalog
是用来放“块”(blocks),chart,libraries的一个容器。
程序创建的基本步骤
1)创建工程结构(CPU->program->chartfolder->CFCchart)
2)利用自己创建块,并将它们引入工程中(blocksfrom
libraries,otherprogramorself-createdblocks;Import)
3)把块拖入chart中(insert)
4)为块配置必须的参数并把它们相互连接起来
(parameters/interconnect)
5)调整块的运行时属性(run-timeproperties)
6)编译程序(compile)
7)下载程序(download)
8)调试程序(commissionandtesting)
第二章实例演示
本章目的是让初学者通过演示实际的例子尽快熟悉CFC的编程过程
创建一个闭环控制系统模拟过程控制
创建工程
使用SIMATICMANAGER的菜单命令创建新的工程;
使用Hwconfig配置系统的硬件,这一步必须在下载程序之前完成。
(昨天凌智已经讲解了!
)
步骤:
A)FILEnew;输入工程名称“CFCEXA_2”
B)选中工程文件夹,insertprograms7program;
C)选中s7program文件夹,inserts7softwarechartfolder
D)选中chart文件夹,inserts7softwareCFC;CFC
(1)chart就被创建了,把它命名为control;
E)双击controlchart打开。
配置chart
模拟过程控制,用两个块“SAMP_AVE”和“CONT_C”实现。
关于”SAMP_AVE”和“CONT_C”的信息参考在线帮助。
插入块的步骤:
A)打开theCATALOG
B)定位到CFCLIBRARY,这个库里面就是我们编程需要的块的
集合
C)打开ELEM_400
D)拖入CONT_C
E)拖入SAMP_AVE
F)从sheetoverviewSheetview;optioncustomizeblock/sheet
barwidth
连接块的步骤:
改变块的外观:
通过修改块的属性来实现,
属性页1:
general
Name:
Comment:
属性页2:
inputs/outputs
Inivisable
Watched
Moreinformationblockobjectpropertyhelp给块的输入输出设定参数步骤:
完成默认值的输入,设置调试时需要监控的输入输出的watched属性。
编译和下装
A)chartcompilechartasprogram
B)PLCdownload
测试程序
测试的目的:
通过监控块的输入和输出,或者改变块的输入,来调整程序满足用户的要求。
?
没法强制块的输出!
替代的方法是:
如果某一个关键的控制量需要进行强制,只能利用Nsw来实现。
测试模式相关命令和选项
Testmodeon/off(on二激活测试模式,off=激活编辑模式)
Testsetting(监控画面的更新周期定义)
Processmode(所有块的输入输出都不能被监控)
Laboratorymode(所有块的输入输出都被监控)
修改CFC程序
一个chart上面的块都有特定的运行时属性。
这些属性决定了这些块在CPU中什么时候以什么顺序运行。
在S7中,是用OB块来组织CPU中各种运行序列(runsequenee的。
在TDC中,是用11~18,以及T1~T5来组织CPU中各种运行序列
(runsequenee的。
OB块就是s7的CPU的操作系统和用户程序之间的接口。
11~18,以及T1~T5就是TDC的CPU的操作系统和用户程序之间的接口。
当在program文件夹中插入一个CFCchart对象时,系统将自动会创建一个以该chart对象为名字的运行时间组。
可以自己定义运行时间组。
举例实现。
运行时间组包含的所有的块必须包含在一个运行序列中(run
sequence。
运行时间组可以被动态的enable/disabla举例实现。
块可以不属于任何运行时间组。
举例实现。
运行时间组可以定义扫描率scanrate和计算偏移时间phase
offset。
创建一个带I/O的chart
带I/O的chart可以被用来圭寸装已经编写好的CFCchart,以作为以后调用。
Add4实例演示;
单独CPU,并且去掉@sima系统chart
新建的chart必须要定义相应得chartIO
新建的chart上面所有的块必须要属于同一个T运行周期。
把带IO的chart放到另外一个chart中
Add4插入另外一个chart的实例演示;
把带IO的chart编译成一个块
Add4编译成一个块的实例演示;
单独CPU,并且去掉@sima系统chart
新建的chart必须要定义相应得chartIO
新建的chart上面所有的块必须要属于同一个T运行周期。
第三章介绍虚拟连接和通讯的实现
虚拟连接的概念和作用
为了完成通讯过程,用来把数据打包的成虚拟连接。
TDC的通讯过程
CFC中建立虚拟连接由各种通讯模板上的数据接口提供交换缓存机制CTV、CRV通过数据通道进行虚拟连接的传送和接收
TDC的通讯方式
@LOCAL
@GLOB
@PRODP
@TCPIP
@SRACK
WinCC和TDC之间的通讯
实际举例
SRACK1的实际例子