在博途V15.1以上版本添加S7-1500型CPU模块,在项目树中会出现“软件单元”一栏。双击“添加新的软件单元”,添加一个默认名称“Unit_1”的软件单元,如下图所示:
每个软件单元都包含如下元素:
关系;程序块;外部源文件;PLC变量;PLC数据类型;PLC监控和报警;PLC报警文本列表;其中:

软件单元具有如下一些特点:
S7-1500固件版本V2.6及以上支持该功能;每个CPU最多可创建255个软件单元;软件单元中的数据块必须采用优化的块,无法禁用;若想在一个软件单元中使用另一个软件单元中的函数/函数块/数据块等资源,则必须首先与目标软件单元建立关系,并且被使用的资源是已经发布的块。资源的发布是指在其属性的“常规”选项卡中勾选“访问:已发布”,比如下图的数据块S1PublicDB所示:举个例子:

创建两个软件单元,分别命名为Station1和Station2。
在软件单元Station1的程序块中添加程序循环组织块Main_1(OB123)、函数S1Function1(已发布)、数据块S1PrivateDB(未发布)和数据块S1PublicDB(已发布),如下图所示:
在软件单元Station2的程序块中添加程序循环组织块Main_2(OB124)、函数S2Function1(未发布)、数据块S2PrivateDB(未发布)和数据块S2PublicDB(已发布),如下图所示:
在Station2的关系表中新创建指向软件单元Station1的关系,如下图所示:
注意该关系的指向是单向的,即:Station2可使用Station1中已经发布的程序块,反过来并不成立。并且该关系一旦建立,不允许在Station1中再创建指向Station2的关系,即不允许双向关系。
由于Station2已经创建与Station1的关系,并且Station1的S1Function1和S1PublicDB均为已发布状态。因此,可以在Station2的S2Function1中调用S1Function1和使用S1PublicDB中的数据,如下图所示:
在Station2中不能使用Station1中的S1PrivateDB,因为该数据块未发布。
好了,关于S7-1500使用软件单元的功能就先介绍到这里。我之前还写过一篇S7-1200/1500新程序架构的文章,链接如下:
西门子S7-1200/1500 PLC新的程序架构 | 北岛夜话