在一个大型项目的开发中,往往会有一些重复的代码。比如,需对生产线上的10台行走电机进行控制,而其控制的方式是相同的。如果对每一台电机都分别写控制程序,就会出现大量的重复代码。
为了减少代码重复编写造成的时间和人力的浪费,可以把电机的控制方式写成一个功能块(Function Block)。主程序通过多次调用该功能块,就可以实现对多台电机的控制,这就是我们之前介绍的模块化程序设计的概念。更多内容可以参考这篇文章:STEP7 & 博途(TIA Portal)如何实现模块化程序设计?
今天这篇文章,我们想介绍另外一个提高编程效率的方法:在博途环境下使用库文件来共享程序代码和数据。
还以电机控制功能块为例,之前写好的功能块,都是在同一个项目中使用的。如果另一个项目也有类似的控制需求,我们是要重新编写代码?还是有一种在不同项目之间共享代码的方法呢?
我在实际的项目开发中,有两种共享代码的方法:一种是通过源代码重新编译的方式来共享;另一种是通过库文件的方式来共享。本文介绍后者。
首先,我们来认识下库(Library)。
博途(TIA Portal)有两种库:项目库(Project Library)和全局库(Global Libraries)。
可以把项目中需要重复使用的代码或数据保存到项目库中。项目库属于项目的一部分,同项目一起打开、关闭和保存。
项目库中的代码只能被本项目使用,如果要在多个项目之间共享代码,要使用全局库。
全局库可以分为三类:系统库(System libraries)、协作库(Corporate libraries)和用户自定义库(User libraries)。
系统库(System libraries)是西门子提供的全局对象,包括程序代码、数据类型及用于触摸屏的图形文件等等,用户不能修改系统库的内容。系统库在博途V13中如下图:
协作库(Corporate libraries),顾名思义,是多人协作的全局库,一般用于公司内部多人协作开发项目的情况。当其中一人更新了协作库的代码或数据时,其它人会得到版本更新的通知,以便及时更新到最新的版本。
用户自定义库(User libraries)是用户自己创建的全局库,它不属于某个具体的项目,可以在其它项目中调用用户自定义库并使用其中的代码和数据。
创建用户自定义库的步骤如下:
1)在全局库中点击右键,选择“新建库(New library)”,如下图:
2)设定新创建的库的路径:
3)点击“创建(Create)”,可以看到全局库中新增加了“FDCP_Lib”库,如下图:
怎样在用户库中创建共享的程序块呢?
其实很简单,只需要拖拽即可。
举个例子,假设我们在项目中创建了电机控制的功能块“FC_Motor_Control”。创建用户库代码只需要左键选中该功能块并将其拖拽到用户库的“超级拷贝(Master Copies)”中即可。如下图:
几乎所有的对象都可以放到超级拷贝中,比如:FB、FC、用户自定义数据类型等,甚至可以把整个PLC文档直接拖拽到超级拷贝中作为库文件。
在新项目中,如果想要使用用户自定义库中的程序和数据,也只需要拖拽即可,十分方便。
好了,关于使用库文件在多个项目之间共享程序和数据就先介绍到这里。欢迎扫描下方的二维码关注我们的微信公众号。
发表评论