前言之前写了一篇文章,关于上位机能不能代替PLC实现控制: “上位机能不能代替PLC实现控制?” 这篇文章引发了很多小伙伴的讨论,我摘取几个比较典型的:
个人理解首先,我个人认为上位机是可以替换PLC的,但并不一定可以代替全部PLC。 其实工业现场已经有很多这样的应用,尤其是在一些运动控制、机器视觉的项目里,在没有PLC的情况下,所有的逻辑都是在上位机来实现的。 可能有些小伙伴理解有误,其实我写那篇文章的目的,并不是说要使用上位机来代替PLC,这个我在文章里也说明了。 因为上位机的宗旨不是为了取代PLC,而且为了和PLC更多地融合,PLC发展这么长时间,事实证明,是一个非常成功的工业控制器。然而,PLC只是控制器的一种,是使用频率比较多,应用场合比较多,而且性价比比较高的一种,但这并意味着所有的项目必须要使用PLC,比如很多小型项目,可能自己做单片机的成本更低,运动控制视觉项目,可能采用运动控制卡的方式实现起来性价比更高。
其次,上位机并不意味着就是C#,也并不意味着就一定是Windows系统。 除了我们常规的PLC模块,还有一种称为软PLC。 这个其实倍福做的一直都是,后面西门子等其他大厂也一直在致力于做这样的产品。 软PLC也被称为软件控制器,它是一套软件系统,可以根据需要安装到不同的硬件环境中。其实就相当于把常规PLC的软件部分单独拿出来,适配到不同的硬件中,从而形成新的PLC。 因此,软PLC需要基于某种操作系统(比如Windows或Linux),它至少包括两个部分:编程开发环境和运行时(runtime),编程开发环境用于编写/编译/下载PLC程序;运行时将原操作系统改造成PLC实时环境,并运行用户下载的程序。 CODESYS是典型的软PLC,当然,西门子也有软PLC产品——SIMATIC S7-1500软件控制器。S7-1500软件控制器(软PLC)必须安装到西门子的工业计算机上,它是一套运行在Windows系统上的软件产品。准确来说,S7-1500软件控制器采用Hypervisor技术,将工业计算机的资源分成两部分,一部分用于运行Windows系统及其程序;另一部分用于运行软PLC。两者之间保留SIMATIC通信功能,但Windows系统及其程序无权访问软PLC的资源。 我认为,如果使用C#结合Windows系统,来代替PLC,最大的瓶颈在于实时性,而不是可行性,因为Windows操作系统本身是一个多用户多任务操作系统,并不是一个实时系统,但是如果我们不使用Windows系统呢,所以,未来,还有很多东西,值得我们去探索。 测试实时性另外,还有小伙伴比较关心,上位机读取IO的实时性,借此机会,给大家测试一下,不同环境,不同配置电脑可能有所不同,测试结果仅供参考: 连续读取100次: 连续读取1000次: 连续读取10000次: 测试了很多次,基本上结果都是比较稳定的,单次读取大约在0.38ms,对于要求不是特别高的项目来说,一般是可以满足要求的。 |
|