1. STEP7库功能简介
在《TIA博途的管理功能_程序块的管理》中介绍了一点库功能,从中可以看出TIA博途的库功能既是新功能又带有管理功能,例如企业库和版本控制等,本编文章将详细介绍TIA博途的库功能。
在介绍TIA博途的库功能之前,先回顾一下原STEP 7项目中的库功能。打开STEP7,点击菜单“File”->“New...”,通过标签可以选择创建一个项目或者库,如图1所示,注意类型和存储的位置与项目是不一样的。
图1
在库中可以创建程序块,包括FB、FC、OB和DB,简单的理解就是没有硬件配置的项目,所以在库中只能插入“S7 Program”,如图2所示。
图2
库与项目的文件类型是有区别的, 库文件的存储文件后缀是*.S7L,而项目文件是*.S7P,所以不能直接移植STEP 7 的库到TIA博途平台,移植方法可以参考工程师故事《怎样将S7-300400的库移植到S7-1500》。库的基本功能都是用于分享的(项目也可以分享,但是不能保护知识产权),STEP 7的库只是程序块的简单复制,不能区分模板(程序块中没有全局变量)和程序块的副本(Copy),不能记录编辑的不同阶段即版本控制,也不能包含程序块的帮助文档。既然库是分享的,在用户新的需求中还希望将参数化的硬件包括CPU、模块和站点存放于库中,由于STEP7 的功能都已经固化,不能再满足这些需求了,所以在TIA博途中,库的功能发生了根本的变化,尽可能地满足各种需求。
2. TIA博途库功能基本信息
2.1. 项目库与全局库
TIA博途对库功能重新进行了设计,将库划分为项目库和全局库。如图3所示。
图3
项目库
项目库主要用于创建对象。项目库与一个项目关联,一个项目只能有一个项目库。可以存储在项目中多次使用的对象,项目库总是随项目打开、保存和关闭。项目中的类型(后续介绍)只与项目库的类型关联,如果将全局库中的类型复制到项目中,该类型自动再复制到项目库中。项目中的类型具有版本管理功能,生成带有版本的类型可以复制到全局库中,用于分享。
全局库
全局库主要用于对象的分享。全局库与项目无关,可以独立创建和保存。可以将项目和项目库中对象复制到全局库中,然后再将全局库复制到其它PC中用于分享,企业库也是全局库的一种展现形式。不能将项目中的类型复制到全局库中,只能通过项目库复制类型到全局库中。在一个项目中可以同时打开多个全局库,将需要的对象复制到编辑的项目中。
展开“全局库”,参考图3,点击全局库的“创建新全局库”按钮,可创建一个新的全局库。在弹出的窗口中为该全局库定义一个名称,选择保存路径,并根据需要,添加注释,作者等信息,如图4所示。这样一个全局库创建完成,可以看到全局库独立于项目。
全局库文件类型为 *.al17或者*.zal17(压缩),17为博途的版本号。可以将全局库复制到其它PC用于共享使用,通过菜单栏按钮打开、保存和关闭一个全局库。
图4
2.2. 类型与模板副本
无论是项目库还是全局库,打开后都包含类型和模板副本(全局库中还包含“公共数据”、“语言和资源”)。
模板副本
模板副本就是master copies 的翻译,其实翻译为原版拷贝或者原件复制比较好理解,基本上所有的对象都可保存在模板副本中,例如一个程序块、DB、符号表或PLC数据类型,也可以是一个分布式I/O站或一整套PLC系统,甚至可以是HMI的一幅画面,或者是一幅画面上的某几个图形元素的组合。几乎所有的对象都可以成为库元素,之后可在项目中多次使用该模板副本。模板副本中存储的是对象的一个拷贝,所以模板副本中的对象不能进行二次开发,也没有版本号。
类型
运行用户程序所需的元素(例如块、PLC 数据类型、画面模板)可作为类型,例如一个FB块,将FB块从程序中拖放到类型中,这个FB块就成为一个类型,这个FB块通常需要有形参,并且不能带有全局变量(系统会检查并提示)。类型有版本号,支持后续的更新迭代,可以对类型进行版本控制。 类型中的元素有新版本时,通过“版本发行”功能,将更新项目中所有使用这些类型的程序。只能在项目库中创建类型,也就是说一个FB块只能拖放到项目库的类型中才能作为一个类型并带有版本信息,然后才能将该类型复制到全局库的类型中。不能直接拖放FB块到全局库的类型中,必须通过项目库进行传递,后续介绍操作的流程。
3. TIA博途库类型的使用
下面以示例方式介绍如何将程序块添加为库中的类型,如何使用该类型,以及如何对类型进行版本控制。
在下面的示例项目中,站点PLC_1的程序块“块_3 [FB4] ”的内部程序如图5所示。
图5
使用鼠标将项目树下的程序块“块_3 [FB4] ”直接拖放至右侧的库工具栏->项目库->类型文件夹目录下,此时会弹出一个对话框,如图6所示。
图6
在此对话框中,可以定义该类型的名称,版本号,并为其添加注释。点“确定”按钮后,就可以看到该块已被成功添加到项目库的类型中,如图7所示。
图7
在项目树下,可以看到“块_3 [FB4] ”右上角有一个黑色的小三角符号,如图8所示。代表该程序块是库中的一个类型,并与库中的类型进行了关联,会随库中类型的更新而更新,如果删除库类型中的块,也会删除项目中的块。
图8
通过“列显示”功能还可以查看到与类型中的哪一个块进行了关联(项目与库中块的名称可以不同)以及当前使用的版本,缺省情况下为最高版本(默认)。
如果在项目树下其它PLC站点中也需要使用该程序块,可以直接将项目库->类型下的“块_2”拖放至该站点程序块中使用,同样也可以看到该程序块的右上角带有黑色的小三角符号。
由于项目中的程序块与库类型中的块进行了关联,在项目中打开该程序块只能查看而不能进行编辑,在块顶部有黄色醒目的提示,提醒该程序块已不能在当前界面中进行编辑和修改。如果需要更改,则必须选择“编辑类型”对项目库中的类型进行再编辑,如图9所示。
图9
通常在项目库的类型中对块进行再次编辑,选择该块,右键点击“编辑类型”进行编辑,如图10所示。
图10
作为类型的块编辑完成并关闭后并不会作为一个正式版本发布,而是作为一个测试版本存在,如图11所示。
图11
测试版本符合一个程序块更新迭代的流程,也是程序块标准化的一个过程,这个测试过程包括程序的改编、扩展、现场再调试、审查等一系列的流程后才能作为一个新的版本发布。一个程序块版本更新大体的流程如图12所示。
图12
选择测试的程序块,右键快捷菜单中选择“发布版本”,这样一个程序块完成了一次版本的更新迭代。也可以选择“丢弃更改并删除版本”删除所做的修改。版本更新后将自动更新项目中与之关联的程序块。
版本号由三位数字组成,例如X.Y.Z。发布新版本时,系统自动在Z增加一个小版本,例如原来的版本为1.0.0,发布新版本自动为1.0.1,再次发布时变为1.0.2,版本号的最后一位是由系统自动增加,不能手动修改。版本号X和Y都可以手动修改,如果更改X或者Y的版本,Z自动从0开始。版本号设置完成后也可以再次指定,右键快捷菜单中选择“指定版本”,可以直接指定需要的版本,如图13所示。
图13
版本指定后作为默认的版本,其它版本将删除,这里需要注意!版本号的制定也需要有相关的标准,例如哪些是小版本号的修改,哪些是大版本号的修改等。
带有版本的类型创建完成后,有两种方法可以将类型传递到全局库的类型中:第一种方法是直接复制该类型并粘贴到全局库中;第二中方法是选择类型,右键快捷菜单选择“更新类型”->“库”,然后选择全局库即可,如图14所示。
图14
这里注意,打开全局库时需要去使能“以只读方式打开”,否则全局库不能修改。
保存修改的全局库并关闭,这样可以复制到其它PC用于分享了。在其它PC打开分享的全局库,将类型中的程序块拖放到项目中的同时,也自动存储于项目库的类型中,这样项目与项目库类型中的程序块也自动关联。如果项目中的版本比全局库的低,可以选择全局库中的类型,右键快捷菜单选择“更新类型”->“项目”,这样高版本的块将替代低版本的块。如果块的接口发生变化,还需在调用块中进行更新替换,如图15所示。
图15
有的程序块不能通过项目整体编译自动更正块接口的变化(FB块站只能更正接口增加的变化),必须手动一个一个确认,所以接口的设计需要仔细考虑,例如使用UDT、预留不确定参数空间的方法等,否则给后期的更新带来不必要的麻烦。
通过全局库类型可以更新项目库的类型,但是不能间接更新项目中的块,直接更新项目中得的块,可以间接更新项目库类型中的块。
全局库包含“公共数据”文件夹,通过全局库进行类型的更新会被记录到“公共数据”文件夹中的“日志”中,便于查询,如图16所示。
图16
如果不需要项目中的程序块随库中的类型自动更新或者关联,可以选中该程序块,点右键选择“终止到类型的连接”,之后该程序块右上角的黑色小三角符号消失,表示该程序块已变为普通块,与库中的类型再无关联,操作页面如17所示。
图17
4. TIA博途库模块副本的使用
模板副本是对象的一个拷贝,没有版本控制。所有可以添加为类型的对象均可以添加到模板副本,但反之不然。除程序块之外,硬件等对象也可以添加到模板副本,所以模板副本的对象范围更广。
下面以示例的方式介绍如何将一个分布式I/O站添加到模板副本,I/O站如图18所示。要在多个项目中使用具有相同硬件及参数设置的一个分布式I/O站点,可以将该I/O站添加到模板副本,这样其它项目或PLC可以直接使用该分布式I/O模板副本,无需重新做配置。
图18
切换到网络视图,鼠标点击选中该分布式IO站,并将其拖放到项目库模板副本下,即可完成一个元素的添加任务,操作页面如图19所示。
图19
如果需要使用该模板副本中的分布式I/O站,只需在网络视图中将模板副本下的该分布式I/O站直接拖放到相应位置,并连接到其控制器即可。
程序块、PLC变量以及PLC数据类型等对象的添加与此类似,不再单独阐述。
项目库与全局库模板副本有什么区别呢?从我的观点上看功能是相同的。在项目库中增加模板副本功能主要是在组态、编程过程中非常方便地将所有可能复用的对象添加到项目库中,在调试完成并确保无误后可以将项目库模板副本中的对象复制到全局库中用于分享,其实这个过程与类型是一样的。从库这个层级的角度来看,在库的开发阶段,项目是数据源,全局库是数据的目标,而项目库则是中间件;在对象更新或者复用阶段,全局库是数据源,项目是数据的目标,数据是直接传递,项目库没有实际的作用,但是如果类型中的对象因功能增加而进行版本更新,则项目库又与开发阶段的功能一样。只有这样才能完成类型对象版本不停地更新迭代,控制功能越来越强大,设备也会越来越智能,提高整体的控制质量。
5. 企业库的使用
企业库是全局库的一种管理工具。通常的情况下,将全局库存放到一个存储空间供其他工程师分享,这可能就是最简单的使用方式,还谈不上管理。如果要对全局库进行管理,会要到下列问题:
- 全局库存放的路径
- 版本号的制定规则
- 专人管理上传更新的类型
- 怎样保护库中对象,防止他人的篡改
- 怎样将更新的类型自动通知到使用者
- 库中对象的帮助文档
大概列出了几点通用要求,对于这些需求,可以使用TIA博途软件自带的企业库功能将全局库存放到一个服务器中,作为一个只读文件链接到网络PC中安装的TIA博途上,当工程师打开TIA博途软件后,系统自动打开存放在服务器中的全局库。库的更改也会推送到TIA博途,企业库的具体实施步骤参考先前的文档《TIA博途的管理功能_程序块的管理》。
【声明:本文/视频版权归西门子1847工业学习平台所有,未经允许,不得转载。】