(1)楼主帖子的主题非常好,所以借贵地谈一点自己的体会。我的观点不一定正确,欢迎大家讨论和批评指教。 教学是铁打的老师流水的学生,每一次学生对我都是新生,所以我经常被学生(计算机语言考试成绩很高的)问到:这个程序的每一条语句我都懂,但是我不知道它怎么就实现了那个功能。 我更经常被学生问到,我会计算机语言,要解决的问题我也知道,但是不知道怎么写个程序来实现,也不知道如何下手。 我通常的回答是: 1)认真了解你要解决的问题在计算机界属于什么范畴,这样你好确定去查找知识。 2)先掌握解决你的问题的计算机原理与方法:就像中学解应用题,已知哪些数据和条件,用什么公式和算法,最后给出什么样的结论。 3)选择一个合适的编程语言、编程工具和专业库(比如图形图像处理库)。 4)自上而下地设计整个程序框架:要解决的问题在上,已知的条件和人机输入在下,从输出(结果)到它依赖的输入(数据、条件)写出任务框架。 5)自下而上地编写程序。就像盖房子,先打地基,再做模块,最后组建成建筑。写复杂的大型的程序也一样,先编程测试库函数和基本解决方法(这也就是本论坛在回答坛友问题时反复强调用户先要测试和读懂STC范例程序)和解决自己问题的基本程序,最后再总装为最终程序。 按照我的理解,上面的这5个方面就是现代编程的认知模型:对你要解决的问题的认知,对解决问题的方法的认知,对解决问题使用的工具的认知,对程序结构的认知和对编程方法的认知。 (2)一段论述或者一个结论是否正确,依赖于它们应用在什么对象上,应用在什么问题上以及应用的时代是哪个时代。楼主的第1和第2段原则上是对的,只是与现在的STC单片机编程无关,比如一个只会写“Word文档,PPT文档,CAD制图文档”的“高级应用软件程序员”,我看不出来怎么就能实现一个“HEX”供STC-ISP烧录。不过随着AI的发展,也许将来会有一天某个支持WORD的编程软件内嵌了一个GPT,用WORD编写STC单片机程序也就成为可能的了。 (3)楼主的第3段的第一句“那么什么是嵌入式系统更高级的编程工具呢。”应该是一个问句,但我看不出楼主的答案,下面谈点我的看法。 1)按照共识,工业1.0是蒸汽机时代,工业2.0是电气化时代,工业3.0是信息化时代,工业4.0则是利用信息化技术促进产业变革的时代,也就是智能化时代。工业3.0时代将计算机技术应用到机械制造和各种工业领域,PLC就是最主要的嵌入式系统的硬件部件,PLC的编程工具也是最主要的嵌入式系统的编程工具。 楼主第3段的后半部分的观点我赞同,随着工业4.0的到来,PLC的局限性就日益表现出来了。 2)什么是工业4.0时代的嵌入式系统的更高级的编程工具? 首先代替PLC的是“分布式控制系统”(DCS)。PLC和DCS在有些方面是相同的,但是区别还是很明显的,有兴趣的读者可以查相关资料。最重要的差别是“DCS是一种“分散式控制系统”,而PLC(可编程控制器)只是一种控制“装置”,两者是“系统”与“装置”的区别。系统可以实现任何装置的功能与协调,PLC装置只实现本单元所具备的功能”以及“DCS系统所有I/O模块都带有CPU,可以实现对采集及输出信号品质判断与标量变换,故障带电插拔,随机更换。”(引自网络资料)。 DCS使用的编程工具主要由DCS的硬件厂家开发提供,比如松下和施耐德等公司的软件,这些编程工具除了图形化功能外,也还提供了基于编程语言的功能,比如“FBD”、“ST”、“SFC”等,DCS也支持用C和VB语言开发。 其次工业4.0的智能制造不仅仅是一台设备的智能化,而是整个社会的智能化,因此嵌入式系统的更高级的编程工具是面向整个社会的编程工具。这个编程工具在全世界已逐步形成标准,就是“数据采集与监视控制系统”(SCADA)。
|