在PLC虚拟化中,PLC I/O总线被高速网络功能所取代,SDN允许在I/O结构上创建灵活的虚拟通道,以适应vPLC实例和I/O模块之间的连接流,例如传感器接口或运行控制器,并且基于SDN的控制可以提供灵活的业务隔离。此外,由于近年来在现场可编程门阵列(FPGA)和专用集成电路(ASIC)技术方面的进展,这种I/O模块可以使用FPGA或ASIC模块以更低的复杂度来构建。在这种架构中,SDN重新配置是通过SDN控制器经由与其北向接×××互的高可用性(HA)服务器(图中未示出)来管理的。HA服务器连续监视SDN交换机统计信息和路径可达性,在性能下降或故障的情况下触发重新配置过程。
这种PLC虚拟化架构的实现主要考虑的网络因素是,这种分散式模型与远程或分布式I/O PLC拓扑具有相似之处,其中网络I/O模块充当PLC机架的扩展。在直通交换中的进步以及远程直接存储器访问技术(RDMA)中,特别是在融合以太网情形中,已经允许在10G以太网交换结构中端口到端口的延迟缩小到百分之几纳秒以及应用延迟缩小到微秒级。此外,诸如英特尔的数据平面开发工具包(DPDK)、思科的VPP等资源允许实现绕过内核的低延迟、高吞吐量数据包处理机制,将网络堆栈带入用户空间,并使适配器能够执行直接内存访问操作到应用程序内存。这使得满足在以数微秒的单位时间内,传输的抖动和闪断的要求成为可能,从而允许在商用服务器硬件上实现裸机性能。
这种PLC虚拟化架构的实现主要考虑的计算因素是,首先,由于采用了硬件辅助虚拟化等技术使得服务器近乎利用原始性能,低延迟I/O机制或适用于数字信号处理任务的ISA扩展的可用性的提高,现代x86或ARM处理器已经能够替代独立PLC应用中的微控制器。其次,诸如Jailhouse(西门子),Xtratum、PikeOS等实时静态分区管理程序的可用性支持为实时工作负载托管RTOS客户VM。即在计算方面,PLC虚拟化主要考虑实时性、安全性和性能要求。在针对PLC虚拟化上,其运行的实时静态分区管理程序,在考虑工业控制系统的这些特性上,其虚拟化管理程序设计需要同时考虑一下几种模式的混合:
1、完全虚拟化模式,其中操作系统完全未经修改在安全分区中运行。在此模式下,虚拟化管理程序确保其中运行的操作系统不会以任何方式损害或影响并行运行的其他操作系统,并且其上运行的操作系统不经任何修改即可运行在虚拟化管理程序上。但是,这是以牺牲轻微的性能损失为代价的。这种模式主要运行与实时性不强的工业应用或企业应用。
2、半虚拟化模式,为了保证实时代码或实时操作系统的硬实时性和稳定性,虚拟机管理程序还具有称为“特权模式或半虚拟化”的部署模式。在特权模式或半虚拟化模式下,操作系统保留完整的硬件访问权限并使用虚拟机管理程序提供的半虚拟化接口。这允许操作系统以原生速度运行,而不需要虚拟机管理程序添加任何延迟。
3、即在工业控制系统环境中,其设计的虚拟化管理程序必须是具有半虚拟化特征的虚拟化管理程序,所以在物联网或工业互联网时代,Xen具有的先天优势又开始远远领先与其他虚拟化管理程序。
在查看了目前国外厂家的工业控制系统虚拟化管理程序的设计后,其典型的情况大都是使用完全虚拟化模式和半虚拟化模式的混合,其中一些实例运行监控级功能,另一些实例运行硬实时控制功能。半虚拟化模式或特权模式不会引入任何延迟,因此使其适用于实时性应用程序。操作系统之间的通信通过虚拟网络或SDN网络、共享内存来实现。
而软件定义架构的PLC更强调的是一种体系,一种实现思想。即和软件定义网络、软件定义世界一样,PLC设备的智能化和标准化的体现就是典型的软件定义的PLC,包括PLC轻松连接至互联网;将APP和分析结果嵌入机器和云,实现智能化和自我意识;无需更换PLC硬件即可改变和升级PLC设备功能,为用户提供智能,实现持续改进;通过API和生态系统扩大工业互联网平台应用。
一个典型的实现架构是:首先具有一台工业机器,可以用来测试整个生产过程。这台机器可以看作是一套可以通过OT控制协议控制的输入和输出。这是理想的实时协议,因为它确保消息在一定的时间窗内到达。然后开发一个雾计算或边缘计算层,通过工业控制协议在运行时间内与机器进行通信。其运行时会将读取的数据从机器发送到虚拟PLC,然后将PLC的输出返回给机器。如下图3所示:
图3 软件定义架构下的PLC实现
国外根据这个技术框架测试的技术方案实现,
图4 技术方案