上位机通信究竟难在哪里?
大家好!我是付工。
前几天,有个学员反馈了这样的一个问题:

很多人觉得上位机的通信很难。
上位机本质
我一直提到过,上位机学习无非三个点,编程+通信+项目。
这三点中,我认为通信是最简单的。
先不要着急反驳我,听我娓娓道来。
编程是基础,编程对于我们很多做PLC开发的人来说,是一个从0到1的过程,很多人没有学习下去的原因就是因为第一关编程就没过,但是编程又是一个工具,没有这个工具,纵使你有再多的想法,也无济于事。
项目是目标,我们学习上位机的目的就是为了能够独立开发项目,但是项目的范畴很广,项目的难点在于变化,不同项目的需求程度是不一样的,客户的要求也越来越高,既要界面好看,又要使用稳定。
通信是媒介,只有通信,是一个有律可循,相对固定的东西。只要是固定的东西,就不会太难,难的东西一定是不确定的。
学习上位机,就是用编程语言这个工具,通过通信这个媒介,实现客户项目要求的过程。
通信框架
上位机通信有五个层面。
第一个层面是了解通信的基础知识:通信的三要素,通信介质、通信协议和通信角色,这些基础的概念一定要弄明白。
第二个层面是编写通信库的过:编写通信库的本质是使用编程语言结合通信协议开发一个通信工具库,便于后续直接使用,这个过程也是对通信协议理解的进一步加深。
第三个层面是实现通信配置:很多人认为有了通信库就够了。其实不然,通信一定要结合配置,将通信变量等参数通过可视化的方式配置出来,而不是把所有的变量地址都在代码中写死,这个也不符合面向对象的思想。
第四个层面是实现异常处理:比如断线重连、重连次数、超时时间、报警处理,这些跟通信相关的业务逻辑都可以在框架中写好。
第五个层面是实现通信解析:大部分协议的解析过程都是相似的,批量读取、挨个解析。
为什么说通信简单,因为通信是可以形成框架的,通过可视化的方式进行配置,使用通信库,将数据解析和异常处理过程封装好,拿到一个新项目,都可以开箱即用。
框架应用
当我们有了通信框架之后,不同的项目无非就是配置不同。
更重要的是,框架会越来越成熟。
因为每个项目都会增加你的经验值。
我从2017年开始研发这个通信框架,已经使用这个通信框架开发了上百个项目,最终我们的代码会很简单,这样我们就可以专心编写项目业务逻辑了。
