在没有“软件单元”之前,我们的控制系统一般按照下图划分结构。分别通过文件夹功能将同一工艺单元或者区域的设备归纳到一起,各工艺单元或者区域都基于标准库进行编程。
图1 TIA V15.1之前的项目结构
这种结构对项目效率提升很大,但是也不是没有缺点。其*显著的缺点就是多人协作时对各个单元的数据访问没有限制,任何一个单元都可以随意的访问另一个单元的数据和模型。这种结构需要在事先制定规则进行限制,如果大家都基于这个规则那么是没有问题的。但不可否认的是,对于欠缺经验的工程师来说还是有一定的隐患。
“软件单元”的出现可以有效的避免这一问题。因为每个软件单元里的模型和数据是私有的,彼此无法访问。只有分配到这一单元的工程师建立了关系,开放权限后,其它单元才可以访问本单元的模型和数据。
图2 TIA V15.1之后的项目结构
在新的项目结构中,供各个单元使用的标准库放到单独的一个软件单元中,其它软件单元只要建立了和公共软件单元的关系后就可以随意调用公共软件单元中的模型。
图3 为软件单元建立关系
然后和公共软件单元建立了关系的工艺单元就可以调用公共软件单元中标准库里的模型。
图4 调用公共单元中的模型
在新的项目结构中,主程序的任务就是协调各单元来一起工作。“单元软件”无需在主程序中调用即可工作,他们的关系就好比软件开发中的主线程和子线程的关系。
前面有说过,软件单元中的数据彼此是私有的,不可以随意访问。但它们对HMI是开放的,软件单元的中数据可以直接拖放到面板接口中。
图5 配置面板接口
分别下载程序至PLC及运行WINCC。通过WINCC画面可以直接控制软件单元中的设备。
图6 通过HMI控制软件单元中的设备
需要注意的是,我这里主程序中的Main是空的。
图7 主程序中的Main
每个软件单元好比一个独立的用户线程,他们和主线程(主程序)同时运行,由PLC的操作系统进行调度。
综上所述,软件单元的意义在于:
1、更加清晰的程序结构;
2、多用户协同工作;
3、对私有程序及变量的保护;