很多做电气的小伙伴还一直迷糊于什么是上位机,今天这篇文章就来聊聊上位机那些事儿。
首先看上面这张图,这是一个非常典型的工业控制系统模型,可能大家的工作大多数是处于现场设备层或者现场控制层,因为这两块都是工业控制的基础。
如果我们往上看,发现还有三层,分别是过程监控层、生产管理层和企业决策层,这三层,就是我们说的上位机。
如果你们的系统并没有这三层,也是可能的,因为上位机功能主要在于监控管理,并不是最终的执行者。
所以,从广义上来说,上位机指的就是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。
怎么学上位机这个问题其实不太好回答,上位机要学好,有两个阶段,第一阶段是从0到1的过程,第二阶段是从1到∞的过程。
很多人困就困在一直处于零的阶段,无法突破,想要快速突破,有这么几个点,要逐个突破:
- 编程基础
- 通信方式
- 项目经验
这个过程,到底要多久,是要看个人的,有的人2个月,有的人可能要2年。
其实学历、英语、年龄这些都不是问题,问题就在于够不够勤奋。
也许我们的资质不够聪颖,我们的起点没有别人高,我们的精力已经不再充沛,越是如此,越应该用后天努力去弥补。
世界上最可怕的事就是比你优秀的人,比你还努力。这不是鸡汤,这是事实!,