在一个大型项目的开发中,往往会有一些重复的代码。比如,需对生产线上的10台行走电机进行控制,而其控制的方式是相同的。如果对每一台电机都分别写控制程序,就会出现大量的重复代码。

为了减少代码重复编写造成的时间和人力的浪费,可以把电机的控制方式写成一个功能块(Function Block)。主程序通过多次调用该功能块,就可以实现对多台电机的控制,这就是我们之前介绍的模块化程序设计的概念。更多内容可以参考这篇文章:STEP7 & 博途(TIA Portal)的模块化程序设计​www.founderchip.com

今天这篇文章,我们想介绍另外一个提高编程效率的方法:在博途环境下使用库文件来共享程序代码和数据。

还以电机控制功能块为例,之前写好的功能块,都是在同一个项目中使用的。如果另一个项目也有类似的控制需求,我们是要重新编写代码?还是有一种在不同项目之间共享代码的方法呢?

我在实际的项目开发中,有两种共享代码的方法:一种是通过源代码重新编译的方式来共享;另一种是通过库文件的方式来共享。本文介绍后者。

首先,我们来认识下库(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文档直接拖拽到超级拷贝中作为库文件。

在新项目中,如果想要使用用户自定义库中的程序和数据,也只需要拖拽即可,十分方便。

好了,关于使用库文件在多个项目之间共享程序和数据就先介绍到这里。如果你喜欢这篇文章,可以去官网(http://www.founderchip.com)下载本文PDF版本。

关于文章配图是使用中文还是英文,欢迎去公众号(founderchip)投票,希望听到你的宝贵意见:

小程序【李工谈工控】提供方便的文章检索功能,欢迎体验:

西门子博图怎么导入库文件_如何在博途环境下使用库文件来共享代码?相关推荐

  1. vs code c语言json文件配置,解析VScode在Windows环境下c_cpp_properties.json文件配置问题(推荐)...

    前言继承是OOP设计中的重要概念.在C++语言中,派生类继承基类有三种继承方式:私有继承(private).保护继承(protected)和公有继承(public).一.继承规则继承是C++中的重要特 ...

  2. 博图14软件安装顺序_请教关于博途软件中各个部分的安装顺序和注意事项。

    电脑上装了一个TIA V13,第一次使用博途,以为装好一个就行了,后发才发现还有其他的也要装,现在准备重新安装一下,最好安装齐全点,之前的是 STEP 7 Professional V13 SP1 U ...

  3. JAVA中useDrlimiter方法_今天来讲讲分布式环境下,怎么达到对象共享,以及实现原子性(atomic),以Redis中的Redisson为例(实现分布式锁、分布式限流等)...

    相信各位对redis肯定是不陌生的,一个高吞吐量的内存型结构存储数据库.可用用于很多业务场景,能够有效的解决很多复杂的并发问题,分布式问题. 下面粘一下中文官网介绍: 关于解决对象共享问题,很多方式, ...

  4. window环境下AES加密文件无法解密问题记录

    最近在做项目中遇到需要对数据进行AES加密,加密文件用openssl命令行解密. 在linux/unix 环境下测试没有问题,但在windows环境下一直解密失败,由于AES解密数据要求解密数据需16 ...

  5. windows环境下新建.txt文件,使其默认以UTF-8编码

    问题的引出: windows环境下新建.txt文件,默认以ANSI格式编码.这种格式编码的文件,放到ubuntu上很可能会乱码. 于是我就想,如何设置windows,才能使新建的.txt文件默认以UT ...

  6. Python3.5在Windows7环境下Scrapy库的安装

    Python3.5在Windows7环境下Scrapy库的安装 忙活了一下午,总算是把Scrapy库给装完了,记下来给需要帮助的人 首先安装的环境:Windows7 64位 Python的版本是:3. ...

  7. Oracle-11g-R2 RAC 环境下 GPnP Profile 文件

    GPnP Profile 文件的作用: GPnP Profile 文件是一个保存于 $GRID_HOME/gpnp/<hostname>/profiles/peer 目录下的小型 XML ...

  8. 服务器c盘有个inetpub文件夹,Win10怎么删除c盘下的inetpub文件夹

    Win10怎么删除c盘下的inetpub文件夹 Win10怎么删除c盘下的inetpub文件夹?升级Win10系统之后,很多用户发现c盘多了一个名为"inetpub"的文件夹,那么 ...

  9. IBM内存分析工具JCA在windows环境下打开dump文件报错问题:Cannot find any thread dumps

    问题描述:IBM内存分析工具JCA在windows环境下打开dump文件报错问题:Cannot find any thread dumps 原因:dump文件编码格式问题 解决:修改dump.txt文 ...

最新文章

  1. PyTorch中的MIT ADE20K数据集的语义分割
  2. Hyperloop 让发布简洁高效
  3. 面了小 100 人,90% 都背了面试题......
  4. 0428(字典,列表,循环)
  5. Node.js-sublime text3 配置node.js(ERROR: The process node.exe not found.)
  6. 【树莓派】小空间树莓派镜像系统备份方法img镜像文件压缩方法
  7. mysql 数据目录迁移_MySQL数据库数据文件路径迁移步骤
  8. 构造类斐波那契数列矩阵(矩阵
  9. (2)双机调试+符号文件
  10. 密钥登陆Linux服务器
  11. C# 对get和set的理解
  12. java中求5的阶乘
  13. python的river安装
  14. 必知必会的MySQL基础知识
  15. Js 之 递归,闭包
  16. 卡巴斯基终生免费使用方法
  17. java web项目_一个完整JavaWeb项目开发总结
  18. 直角三角形用计算机怎么做,‎App Store 上的“直角三角形计算器”
  19. 植物大战僵尸花瓶终结者(砸罐子)无尽模式47波通关小技巧攻略
  20. web常用模块测试用例

热门文章

  1. 高阶函数HoF:用filter()方法编写一个素数生成函数primes()
  2. 过度取悦谷歌不如撰写好的博文
  3. SQL INSERT INTO 语句(在表中插入)
  4. 浅谈2022梧桐杯乡村、城市赛道双TOP1——从数据分析的角度
  5. java内存过高_Java应用问题定位系列——内存占用过高
  6. excel导出多重表头utils_java excel复杂表头和复杂数据导出
  7. html5 hidden标签怎么用,html如何使用hidden隐藏标签
  8. win10远程桌面连接设置方法
  9. lhgDialog弹窗提示窗口组件
  10. r5 4600h和i5 10300h有什么区别 r54600h和i510300h处理器哪个好