今天跟大家讨论一个话题——上位机开发的核心是什么?
核心
自动化行业,越来越偏向于软件行业。
随着智能制造的发展,上位机在自动化领域的占有率越来越高,同时,很多企业对上位机的需求和要求也越来越高。
我们可以看到很多行业的细分市场,不同厂商的差异化主要是软件的差异,很多厂家使用同样的硬件,但是开发不同的软件功能,形成不同的产品,这类的软件可以统称为上位机。
那么上位机开发的核心是什么?
这个问题我曾经跟一些学员探讨过,有很多人说是C#编程或通信协议,但是我不这么认为。
我觉得上位机开发的核心是工艺和业务。
大家如果做过一些中大型的上位机,你会发现更多的精力主要是集中在定制功能、工艺要求、流程梳理和用户体验上,而通信只是一个敲门砖而已。
并不是通信不重要,只是我觉得通信不是核心,核心是业务。
很多时候我们的上位机是需要对接很多设备的,比如PLC对接、IO设备对接、扫码追溯、相机采集、MES对接、第三方软件对接等等,如何将这些设备联合起来,实现我们的自动化流程,这是上位机软件的核心。
通信的重要性在于通信相当于基础建设,没有基础建设,谈何空中阁楼?
为什么说通信不是核心呢?因为通信是固化的,只要学会了,就可以一直重复使用,并且逐步形成框架。
唯有变化的东西,才是核心的东西。
通信
但是我们在学习通信之前,需要先学习编程语言,编程语言相当于工具,当你有了工具,你就可以去干活了。
有了编程语言,有了通信协议,我们就可以去开发通信驱动,实现与各种下位机之间的通信,才可以拿到下位机中的一些数据。
有了这些数据,我们就可以利用这些数据做文章,根据用户的需求,开发出让客户满意的上位机软件。
那么通信应该如何去学习?
现在工控领域的通信协议种类繁多,导致很多人一下子慌了神,不知道从何学起,大家都知道语言之间是相通的,其实各种通信协议之间也是有相似之处的,选择其中一种协议,认真去研究,深度去剖析,这样即可触类旁通。
应用
上位机通信会分两个层次,一种叫通信测试,一种叫通信应用。
所谓通信测试,就是我们可以通过代码读取到变量数据,可以写入变量数据,验证通信的可行性。
所谓通信应用,就是如何集成到项目中进行开发应用,如何结合多线程及数据类型转换,实现项目级开发。
前者是通信库的功能,后者在实际项目开发中才会有所体现。
当通信应用到一定层面后,必然会形成框架。所谓框架,就是对固化和重复的代码进行封装,基于框架开发,会大大提高开发效率,同时降低出错的概率。