PCS7使用笔记
初次探索
- PCS 和 PLC的区别:
- PCS侧重在组态
- PLC侧重在自控
- OS object 里面的单站和多站系统:
- 单站系统,Singal station system -> 单个电脑
- 多站系统,Mulple station system -> 多个电脑
- 在PCS7搭建一个OS站;在SCE上组态实际的PC站:
- 在多AS和多OS的项目中,AS是如何被指定给对应OS:
- CFC和SFC是什么:
- CFC控制组态
- SFC控制流程
- PCS项目案例,换热器控制:
正式使用 - 组态AS站
- 硬件组态配置:CPU,分布式IO站,子网(可以使用向导建立硬件组态,然后在向导的基础上修改)
- 在向导中组态的内容:
- 语言选择CFC和SFC
- OS Project选择PCS7OS
- 工厂层级默认选择3
- 选择单站,或者多站系统
- Preview可以预览
- 向导创建完成后的视图(如果不使用向导,那么视图里面的层级关系、Pic、CFC、SFC等等都要自己手动创建)
- 向导完成后,先去组件视图,打开硬件组态,修改组态信息为实际目标组态信息,(注意拖拽硬件时,版本库从PCS7库中选,标准库可能没有那么全面)
- OS 站的网络应该和AS站的网络隔离,使用CP或者PLC的其他网卡连接OS站。
- 组态完成后,在工厂视图层级,打开CFC,任意拖拽一个功能块出来,然后点击编译。(编译会自动生成必要的OB和其他功能块,以此保证PLC的基本运行)编译完成之后就完成了一个最小系统的PCS AS站。
- 任意拖拽一个功能块以供编译:
- 编译后自动生成的块:
- 任意拖拽一个功能块以供编译:
- 如需下载,注意下载PCS7系统需要硬件和软件分别并单独下载。
正式使用 - 组态OS站
-
OS就是操作员站,利用Wincc作为和工作人员交互的上位而存在:
-
OS实现软层面的模块化:
-
实际硬件,对应实际PC的组态。利用站组态编辑器SCE设置:
-
OS组态操作设置:
- 修改OS站的名字,需要和实际的电脑的名一致(如果多台电脑,一一对应计算机名和OS名即可)(此处修改完成,wincc那头的计算机名也已经被同步修改了):
把实际电脑名粘贴到此处
- 点击OS站下的configuration,可以插入组态层面的模块化组态信息:
- 实际OS硬件安装,打开SCE,对照组态信息安装:
如果实际wincc和PLC之间仅通过TCP/IP的方式组态,组态实体SCE不是必须的。但是如果用上了OPC/S7/或者其他的通讯方法,则必须在SCE中组态出来。
- 若不想打开SCE上,下面方法也可以用于实际硬件安装:
- OS编译:让Wincc变量,消息,归档,画面层级一键生成。
- 编译完成后Wincc自动建立的变量画面等:
- 下载组态:
- 回到网络视图,设置AS和OS之间的连接
- 关于设置AS和OS之间的通信,修改完成之后OS站和AS站的连接都要重新下载,才能生效:
- 通信连接总结:
- 通信连接总结:
- 修改OS站的名字,需要和实际的电脑的名一致(如果多台电脑,一一对应计算机名和OS名即可)(此处修改完成,wincc那头的计算机名也已经被同步修改了):
工厂视图
- 下图用于配置OS project的显示属性:
多显示器显示用来分屏显示
- 设置工厂层级(最多设置8层)和画面对应关系如下:
Process cell(1)--->Unit(1)--->Function(1)均为一一对应关系
在工厂视图中,每一个层级都会被默认建立一个picture用于显示当前层级(手动也可以添加层级,但是一个层级只能添加一张picture)
- 修改OS默认显示的层级,设置如下:
- 点击设置:
- 工厂视图层级和实际画面的对应关系:
- 点击设置:
更改和OS所有相关的内容之后,都需要重新编译OS
对于自己创建的层级,如果想要它在OS中显示出来,那么必须手动给自己创建的层级创建一个画面
- 更改OS显示区域为第二层之后的效果:
- 工厂视图下,每个层级都可以建立CFC/SFC,并且不限制数量。这些CFC/SFC对应着该层级的AS信息:
- 对于OS对应多个AS的情况,建立CFC/SFC的时候会出现弹窗,手动选择具体把图表放在哪个AS下:
若要创建更多的AS站(比如这里的AS2),在组件视图中手动创建
同样的,对于那种一个AS对应多个OS的情况,建立Pic的时候会出现弹窗,手动选择具体把Pic放在哪个Os下
- 把CFC块图标显示在Wincc画面上:
- 把Create block icon 勾选上:
- 把Create block icon 勾选上:
- 让不具备块图标的层级默认显示下级的块图标(下级包括块图标):
- 虽然有些层级没有块图标,可以设置为显示它的下级块图标:
- 虽然有些层级没有块图标,可以设置为显示它的下级块图标:
选择块图标包含的层级,默认是1,可以修改
- 工厂视图总结:
使用CFC
- PCS7中,IO数据的刷新通过分配不同的PIP给不同的循环中断来被获取和管理,以此来优化数据刷新的结构,降低PLC的负载。
- 值得提到的一点是:PCS7中,OB1不像FA中使用那么频繁(甚至可以理解为不怎么使用),PCS7大部分周期性功能靠循环中断(0B30-OB38)来执行。
- PCS7的程序处理基本靠OB3x完成
- 常规应用使用APL库足够,如果一些特殊功能,可以使用一些行业特定库。
- 把常用的块保存到自己的常用库:
- 在文件中选择标准库(如APL库),然后打开:
- 把需要用的块拖拽到自己的库中:
- 最后在CFC编程界面中就可以找到刚拖拽的块:
- 在文件中选择标准库(如APL库),然后打开:
- 单个CFC编辑页面一共有6个区域,双击可以打开单个区域,再次双击可以回到主视图
- CFC的模拟量编程举例:
- 模拟量标定需要使用的功能块:
- 功能块连接IO变量(IO变量需要在组态时新建变量名才会被索引出来),右键管脚连接变量:
PV_OUT也是同样的方式更改
- 模拟量模块可以更改量程范围等等
包括模拟量的mode,type,range,单位等等很多参数和属性都是可以从对应的管脚修改的,具体修改方法参考对应块的帮助文档
- 模拟量IO被连接并编译之后,诊断管脚也会被自动连接,这是PCS7自动生成和组态的诊断
双击左边自动生成的诊断,可以往前找到对应的诊断块。@开头的CFC都是系统生成的
- 如何更改CFC执行的循环中断(修改运行组):
- 点击打开运行组:
- 把需要改变的运行组拖拽到目标OB所对应的文件夹下:
- 回到CFC,发现运行组已经被改变
运行组从OB35改变至OB34,改变完成后编译即可
- 点击打开运行组:
- 需要监视CFC,点击以下按钮
- 点击监视CFC:
- 右键功能块选择watch on:
- 点击对应的管脚右键选择添加IO或者移除IO,可以做到添加或者移除某个管脚的监视:
- 点击监视CFC:
- 模拟量输入块和模拟量输出块管脚互连,只需要点击起点和终点:
模拟量输入输出的单位也可以互连,互连则表示它们具有相同的物理单位
- 功能块带有Create block icon选项的,则可以在OS中生成一个图标,如下:
生成的块图标效果展示,包括趋势图等等都是随图标一起生成的,点击打开即可用
- 模拟量标定需要使用的功能块:
- CFC中,常见的4种驱动块如下:
- CFC中,常用的控制块(如PID):
- CFC中,常见的监视块(用于在OS中做监视,通常分为监视模拟量和监视数字量):
- CFC中,常用的外部驱动块(如阀门,电机块):
- 第三方IO(gsdml)使用驱动块时需要注意的地方:
- 第三方IO连接驱动块的时候通常不会像西门子自带的设备一样自动生成诊断等信息,通常需要手动操作:
三方设备没有诊断信息,但是不影响使用
输入的变化并没有引起输出的变化,因为三方设备Mode和DataXchg管脚需要手动设置。- 修改管脚Mode和DataXchg后,功能块有了输出:
具体改的值的内容所表示的含义,可以通过帮助得到
- 第三方IO连接驱动块的时候通常不会像西门子自带的设备一样自动生成诊断等信息,通常需要手动操作:
- CFC不能从PLC中上载,PLC中存的仅是基础的OB,FB,FC。
CFC中使用Shared DB
- 在OS层面,有一些按钮,文本框等等信息需要手动输入给AS站,这时候就需要自己手动建立DB来创建这些变量。
- PCS7也可以自己定义共享DB和FC。
- 供用户自用的DB和FC范围,在CFC的编辑器中可以看到,如下:
系统供给用户的DB和FC如上,但是在使用DB的时候建议从DB3开始使用,因为DB1和DB2在有冗余IO的情况下,系统会用来做一些配置,从DB3开始使用可以避免产生冲突。
- 使用共享DB,直接在组件视图中手动插入共享DB即可,需要给共享DB分配符号名。
- 共享DB的变量若想上传至WINCC,则要进行特别的设置(插旗),设置如下:
- 右键变量,打开变量属性,把属性设置为
S7_m_c
,值设置为true。设置完毕后变量旁边会出现插旗标识:
- 右键DB块,把
Operator Control and Monitor
属性勾选上:
- 完成以上两步之后编译OS,之后打开Wincc,就可以看到刚才新建的共享DB变量被自动创建至Wincc了:
- 在CFC中使用自己建立的共享DB:
因为自建立DB变量是bool类型,但是XV101块的PV_In管脚需要接一个结构体类型变量,所以使用
StruDiIn
和StruDiOu
功能块来转换- CFC中关联DB后的效果
- 共享DB建立的作用:在WINCC上做按钮或者文本框,用于做设置值和控制:
创建按钮或者文本框,可以手动在Wincc上创建
wincc的画面,必要的时候也需要手动绘画以来做一些定制化的画面 - 右键变量,打开变量属性,把属性设置为
CFC中设置报警信息和消息归档
- 在CFC中设置报警消息
- 双击打开IO的功能块,打开
Message
:
- 更改报警级别和消息文本
更改完成之后,编译OS,就可以在Wincc的报警消息中看到自己更改的消息文本了
- 双击打开IO的功能块,打开
- 在CFC中设置变量归档
- 点击需要归档的变量管脚,找到属性,找到归档选项
设置完成之后依旧需要编译OS,就可以在Wincc上看到自动生成的归档变量了
- 点击需要归档的变量管脚,找到属性,找到归档选项
SFC的使用
- 类似于graph,做顺控用的,叫做连续功能图
SFC和CFC配合使用,以此来完成系统级别的应用
- SFC的编程样例:
- 在实际使用中,需要自己考虑跳转条件,以及实现和CFC变量和管脚的互连:
参数回读
- 参数回读:
一般整体下载时才会提示参数回读
出现参数回读是因为在线PLC程序在运行过程中,一些设置参数(比如PID)已经被改变,参数回读就是保证在下载过程中不修改实际正在运行的在线值
- 参数回读一般操作步骤
CFC中程序的运行顺序
- CFC中通过运行组来确定功能块的先后运行顺序
运行组在指定OB中执行,按照运行组的顺序,从上到下运行
- 块的运行属性:
2/3中,2表示该CFC在OB3x中是第二个被运行的,3表示在该功能块在CFC中是第三个被运行的