大家好,今天小编关注到一个比较有意思的话题,就是关于自动编程基础教程的问题,于是小编就整理了2个相关介绍自动编程基础教程的解答,让我们一起看看吧。
谁来介绍下什么是自动编程呢?
这里所说的自动编程,是运用人工智能技术来自动生成程序,尽量免除人类劳动。 在自动产生程序之前,先要知道需求是什么吧?要能把需求准确地描述给机器,这就需要一种需求描述语言。***如我们制造了这种需求描述语言,它进一步发展,越发规范,成为了一种DSL(领域特定语言)。嗯,这就变成了DSL编程。 ***如要生成一个应用程序,要选择一些开发框架、中间件和技术方案吧?人类开发时要考虑开发成本和效益的权衡,但是机器既然已懂得多种技术方案,对它来说开发成本为0,那么选择最好的那一个技术方案就行了。这就相当于存在一套最好(也可能最复杂)的框架,用DSL在框架之上编程。 闹了半天就是DSL和框架啊?智能到哪去了? 要想真正发挥人工智能的作用,我有两个思路:
自动提问
就算有了需求描述语言,人类就能准确描述需求吗?如果描述得不好,机器能否通过一些分析,针对不足之处,向人类提问,用答案来完善需求描述呢? 2. 自主学习 人工智能的精髓是自主学习。如果机器能学习世界上现有的代码,不需要人类特意为它提供需求描述语言和技术方案,就方便多了。最好是人类直接说需求,机器自己思考,有问题就提问。有一个有趣的事——最初的自动编程是什么呢?当编译器技术刚发明时,它就是自动编程:自动把高级语言代码转化成汇编码或机器码。我个人认为,凡是能给人类省事的技术,哪怕是if-else,也可以算是某种人工智能。现在要求高了,编译器是硬编码的智能,而我们还要可扩展、甚至自动扩展的智能。现在的自动编程主要有两个流派:基于规则推理的、基于机器学习的(包括统计学习、深度学习等)。学术界对自动编程有一个更特别的说法——程序合成(Program Synthesis)。由于机器学习的火爆,比较流行的似乎是基于机器学习(+深度学习)的自动编程,其中一种是通过学习输入输出数据的样本,自动“猜”出一个能处理这些数据的程序。 对此,摘录马毅教授的一条微博:数学告诉我们,无论overfit了多大的样本数据,经验事实如何震撼,也取代不了逻辑严格的推理证明——这是唯一能将结论从有限样本扩展到无限的方法。例如一个递归程序,只有数学归纳法能准确生成它,任何有限样本都无法准确生成它(只能近似猜测)。对于有一点小bug就能出大事的程序,不能松懈啊。因此我不是很赞成基于机器学习的自动编程,即使要用,也只是***手段吧。啊哈哈~自动编程相对与手动编程而言它是利用计算机专用软件来编制数控加工程序,编程人员只需根据零件图样的要求,使用数控语言,由计算机自动地进行数值计算及后置处理,编写出零件加工程序单,加工程序通过直接通信的方式送入数控机床,指挥机床工作,自动编程使得一些计算繁琐、手工编程困难或无法编出的程序能够顺利地完成。
用PLC编程,一个动作的手动自动该怎么写?
我想题主的大概意思是当设备动作了一半突发停电时,有些设备因为没有自复位功能(比如没有自复位功能的执行机构),导致再次来电时这些设备没有恢复到初始状态。
如果是以上情况的话,其实也简单,PLC的非保持寄存器在断电时都会自动归0,利用这一特性写一段指令,当上电时即判定当前为停机状态,并自动复位设备。
还有一个方法则是利用断电保持性寄存器来判断设备的非正常停机状态,比如当设备运行时给一个保持性参数赋值1,正常停机或手动停机时则赋值0。当停电再上电时则可根据该参数的值和当前设备的状态来判断上一次是否为非正常停机,如果是则执行复位指令。
另外很多PLC本身也有上电初始化指令,比如S7-200PLC的SM0.1,根据PLC的这一功能也能达到类似的效果。
到此,以上就是小编对于自动编程基础教程的问题就介绍到这了,希望介绍关于自动编程基础教程的2点解答对大家有用。