在 TIA PORTAL V15.1中出现了一个新功能“软件单元”
首先看软件单元的主要元素
可以看出了 除了程序块/PLC变量/PLC数据类型/PLC监控与报警/PLC报警文本列表外,还多了一个“关系表”这特殊的元素,下面会介绍 关系表这元素
谈下自己的一些看法;
1:和以前版本相比,现在每个软件单元的程序,可以单独进行编辑和下载。
在初用博途时,很多坛友反应,程序怎么不能单独下载了,每次在线/下载程序时博途STEP7都会比较离线和在线程序,当你下载时,软件会同步不一致的程序,将PG中的程序下载到控制器中。但是有了软件单元,情况不一样了各个软件单元里的程序可以单独编辑和上/下载了。
2:在软件单元中的程序块,现在已经强制使用“优化块的访问”方式。
如果你要觉得软件单元挺好的,那么请改变以前的编程习惯,用软件单元内的数据块只能用“优化块的访问”。并且,软件单元程序也只能访问全局数据块中的优化方式访问的数据块了。优化数据块与非优化数据块相比有一定的优势,同时不建议在优化与非优化数据块之间拷贝数据。详情可以参见本人另外一个帖子
慢慢习惯块的优化访问方式
3:某种程度上体现了OOP编程的一些思想,比如,封装
下图,展示了软件单元中的程序,如何访问软件单元之外的程序,这里涉及到一个重要的元素关系表。
关系表决定了该软件单元中,可以访问软件单元外全局数据块/工艺块,是否可以访问其它软件单元中的程序块。
在关系表中,可以建立该软件单元与外部三种不同对象之间的关系
⑴其它软件单元
一旦建立了与其余软件单元之间关系,在该软件单元中,就可以访问被建立联系的软件单元里的相关程序块等(被建立联系的软件单元并不是所有程序块等都可以在该软件单元中使用。可以选择性地把相关程序块,数据类型等访问属性设置为发布状态,见下图)
需要注意的是:
软件单元不能与自己建立关系;
软件单元之间的关系是单向的!比如 在软件单元A的关系表中定义与软件单元B的关系,那么在软件单元B的关系表中就不能建立与A的关系了结果就是软件单元A可以访问软件单元B中的程序块,但是软件单元B中不能够使用软件单元A中程序块了,那怕软件单元A中的程序块访问属性也被设置为“已发布”状态。有点类之间的继承关系的味道了?
⑵全局数据块
软件单元中只能访问非软件单元中的全局数据块,软件单元外的FB,FC,UDT等无法在软件单元中使用。
同时,访问全局数据块时还有一下限制条件:
数据块中不能含有任何PLC数据类型(为什么这样做?技术限制?)
非优化的数据块(前面已提及)
数组DB(为什么?)
全局故障安全数据块
⑶TO
4:软件单元必须只能在S7-1500 CPU并且CPU固件版本大于等于V2.6中使用
要想使用软件单元,那赶紧升级博途到15.1吧。
5.每个软件单元都可以有自己的组织快。
与早些版本的一个程序主循环+中断不一样,整个CPU中存在着多个主循环组织块在运行,有点AB PLC里的多任务概念了
简单介绍完软件单元后,大家觉得西门子推出软件单元出现的目的是什么?
1:进一步模块化的编程思想?
2:不同风格标准的程序员合作编程?(手册中提到尽可能封装好软件单元,不发布程序,保持软件单元内的程序的独立性)
欢迎大家发布自己的一些看法!