从博途V15.1开始,S7-1500固件版本V2.6及以上的CPU可以使用软件单元功能。软件单元可以将项目程序划分成不同的逻辑功能块,比如驱动、流程控制、外部通信等都可以单做作为一个软件单元,也可以将程序划分成不同的子站,比如Station1、Station2等,每一个子站作为一个软件单元。软件单元不仅在架构上让程序逻辑更加清晰,更重要的是:每个软件单元都可以分别编辑和下载,这样极大的方便了多个用户在同一台设备上进行调试。今天这篇文章,我们来详细介绍下软件单元功能。
在博途V15.1以上版本添加S7-1500型CPU模块,在项目树中会出现“软件单元”一栏。双击“添加新的软件单元”,添加一个默认名称“Unit_1”的软件单元,如下图所示:
每个软件单元都包含如下元素:
关系;
程序块;
外部源文件;
PLC变量;
PLC数据类型;
PLC监控和报警;
PLC报警文本列表;
其中:
关系:用来定义软件单元可访问的外部资源,比如:①其它软件单元中的函数/函数块、PLC变量、数据类型等;②软件单元之外的全局数据类型;③工艺对象;
程序块:可创建本软件单元中使用的组织块、函数块、函数、数据块;每个软件单元都可以有一个或几个程序循环组织块,操作系统会按照其编号顺序依次调用;
外部源文件:将外部SCL源文件导入该文件夹,可生成相应的函数块/函数/数据块或数据类型;
PLC变量:可创建本软件单元的PLC变量和常量;
PLC数据类型:可创建用户自定义数据类型;
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新程序架构的文章,链接如下:
我的微信视频号以视频的方式分享工控知识,欢迎扫描下面的二维码观看:
发表评论