上位是什么?
很多做电的小伙伴还在混淆什么是上位,今天这篇文章是来谈上位的。(莎士比亚)。
首先看上面这张图,这是一个非常典型的工业控制系统模型,可能大家的工作大多数是处于现场设备层或者现场控制层,因为这两块都是工业控制的基础。
如果我们往上看,发现还有三层,分别是过程监控层、生产管理层和企业决策层,这三层,就是我们说的上位机。
如果你们的系统并没有这三层,也是可能的,因为上位机功能主要在于监控管理,并不是最终的执行者。
所以,从广义上来说,上位机指的就是SCADA/MES/ERP,从狭义上来说,上位机指的就是SCADA。
总而言之,上位机就是基于PC(PC-Based)开发的监控管理系统。
上位机用什么语言
上位机是一种系统概念,与开发语言无关,所以,大部分的编程语言都可以开发上位机,只是适不适合而已。
看语言适不适合,主要看几个方面:
- 学习成本,说白了,就是难易程度
- 资源成本,说白了,就是网上资料多不多
- 人员基数,说白了,就是使用的人多不多
- 可持续性,说白了,就是能用多久
- 应用范围,说白了,就是应用是否单一化
所以,我们常说的LabView/C++/Java/Python,它们可能在某一方面比较突出,而C#在任一方面都不突出,但是综合来说,我认为还是C#最合适你们。
并不是因为我们教C#,才说C#合适,而是因为我们认为C#最合适,才选择教C#,语言没有好坏之分,只有适不适合。
上位机与下位机
从广义上来说,上位机和下位机是一个相对的概念,比如SCADA对于PLC来说,SCADA是上位机,PLC是下位机,但是如果MES相对于SCADA来说呢,可能SCADA又成了下位机的角色。
从狭义上来说,目前我们做的上位机主要是对接PLC、仪表、运动控制卡、视觉等,通信方式包括通信协议、OPC、API或SDK,如下图所示:
通信协议与通信API
1、通信协议
上位机和下位机之间的通信协议有很多,只要能完成通信的协议都可以用在上位机与下位机之间。比如:通信协议(通信方式):RS232/RS485串行通信、USB、蓝牙、网络UDP/TCP 这个通信协议(通信方式)是实现上位机与下位机之间数据交换的基本通道。
2、通信API
很多时候,我们会把数据做好封装,提供接口给外部应用,这就涉及到API。
API全称为Application Programming Interface。
API的命令格式,是自定义的一种固定的数据组合格式,不受任何通信方式和通信平台的限制,我们常用的API方式包括WebApi和WebService。