北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8635507

西门子S7-1500新的程序架构——软件单元

从博途V15.1开始,S7-1500固件版本V2.6及以上的CPU可以使用软件单元功能。软件单元可以将项目程序划分成不同的逻辑功能块,比如驱动、流程控制、外部通信等都可以单做作为一个软件单元,也可以将程序划分成不同的子站,比如Station1、Station2等,每一个子站作为一个软件单元。软件单元不仅在架构上让程序逻辑更加清晰,更重要的是:每个软件单元都可以分别编辑和下载,这样极大的方便了多个用户在同一台设备上进行调试。今天这篇文章,我们来详细介绍下软件单元功能。

cover.png

在博途V15.1以上版本添加S7-1500型CPU模块,在项目树中会出现“软件单元”一栏。双击“添加新的软件单元”,添加一个默认名称“Unit_1”的软件单元,如下图所示:

软件单元-新添加.png

每个软件单元都包含如下元素:

  • 关系;

  • 程序块;

  • 外部源文件;

  • PLC变量;

  • PLC数据类型;

  • PLC监控和报警;

  • PLC报警文本列表;

其中:

  1. 关系:用来定义软件单元可访问的外部资源,比如:①其它软件单元中的函数/函数块、PLC变量、数据类型等;②软件单元之外的全局数据类型;③工艺对象;

  2. 程序块:可创建本软件单元中使用的组织块、函数块、函数、数据块;每个软件单元都可以有一个或几个程序循环组织块,操作系统会按照其编号顺序依次调用;

  3. 外部源文件:将外部SCL源文件导入该文件夹,可生成相应的函数块/函数/数据块或数据类型;

  4. PLC变量:可创建本软件单元的PLC变量和常量;

  5. PLC数据类型:可创建用户自定义数据类型;

  6. PLC监控和报警:可监控PLC的变量或函数块;

  7. PLC报警文本列表:可编辑PLC报警文本列表;

软件单元具有如下一些特点:

  1. S7-1500固件版本V2.6及以上支持该功能;

  2. 每个CPU最多可创建255个软件单元;

  3. 软件单元中的数据块必须采用优化的块,无法禁用;

  4. 若想在一个软件单元中使用另一个软件单元中的函数/函数块/数据块等资源,则必须首先与目标软件单元建立关系,并且被使用的资源是已经发布的块。资源的发布是指在其属性的“常规”选项卡中勾选“访问:已发布”,比如下图的数据块S1PublicDB所示:

    发布选项.png

举个例子:

创建两个软件单元,分别命名为Station1和Station2。

在软件单元Station1的程序块中添加程序循环组织块Main_1(OB123)、函数S1Function1(已发布)、数据块S1PrivateDB(未发布)和数据块S1PublicDB(已发布),如下图所示:

Station1.PNG

在软件单元Station2的程序块中添加程序循环组织块Main_2(OB124)、函数S2Function1(未发布)、数据块S2PrivateDB(未发布)和数据块S2PublicDB(已发布),如下图所示:

Station2.PNG

在Station2的关系表中新创建指向软件单元Station1的关系,如下图所示:

Staiton2的关系.PNG

注意该关系的指向是单向的,即:Station2可使用Station1中已经发布的程序块,反过来并不成立。并且该关系一旦建立,不允许在Station1中再创建指向Station2的关系,即不允许双向关系。

由于Station2已经创建与Station1的关系,并且Station1的S1Function1和S1PublicDB均为已发布状态。因此,可以在Station2的S2Function1中调用S1Function1和使用S1PublicDB中的数据,如下图所示:

示例.png

在Station2中不能使用Station1中的S1PrivateDB,因为该数据块未发布。

好了,关于S7-1500使用软件单元的功能就先介绍到这里。我之前还写过一篇S7-1200/1500新程序架构的文章,链接如下:

西门子S7-1200/1500 PLC新的程序架构

我的微信视频号以视频的方式分享工控知识,欢迎扫描下面的二维码观看:

founderchip.png

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论