其他自动化工程师都在偷偷学习AI技术,你再不学就落后了!一篇文章教会你使用AI!
哈喽,大家好,我是小叔。了解小叔的朋友都清楚,我从来都不是标题党,我只会用美女图片来吸引你们😂!
话题跑偏了,咱们言归正传,今天这个标题绝非是危言耸听。自从2023年AI大爆发以来,各行各业都面临着变革,AI已经慢慢的代替部分人的工作,AI翻译、AI绘画、AI修图、AI写作、AI编程等等,这些技术已经一点点的成熟并且应用到了各行各业!那么AI技术在自动化行业应用到了哪一步呢?
前一段时间在自控圈内热议的西门子Industrial Copilot上市以后,感觉自动化行业也已经开始变革了,不知道西门子Industrial Copilot是什么的小伙伴,请点击这里,查看完整信息。
西门子Industrial Copilot不但能编写SCL语言程序,还能像你的同事一样帮你查找自动化设备故障。目前我也没有使用过这款产品,咱也不能下定论具体好用到什么程度。但是从官方的介绍中可以得知:“西门子Industrial Copilot应用了微软Azure OpenAI 服务中的大语言模型进一步丰富其功能,如增强工厂自动化软件中代码的创建和优化等”这句是官方的原话,说白了就是西门子Industrial Copilot也是使用ChatGPT的大语言模型,跟博途TIA结合在了一起,用自然语言通过聊天的方式帮助我们编写SCL语言程序。
从目前的信息可以得知,这款软件会将自动化编程的门槛降低。只要学会了如何跟AI沟通,就可以编写出完整的自动化控制程序。听起来是不是很哇塞!
但这款产品在哪里使用?怎么才能使用?使用这款产品收不收费?目前没有介绍。官方目前只提供了一条信息:
西门子 TIA Portal Engineering 工业 Copilot 将于 2024 年夏季开始在 Siemens Xcelerator 市场上提供下载。
2024年夏季离我们也不远了,我们就耐心等待吧。
虽然西门子Industrial Copilot咱不熟,但是 OpenAI的ChatGPT那我是相当熟悉了!
访问过小叔的“智控联盟(点击进入)”平台的朋友应该都知道,平台也集成了一个AI聊天机器人,而这个AI也正是调用的OpenAI的ChatGPT大语言模型。我是在ChatGPT上线后就开始使用了,对GPT的了解已经摸索一年多了,对我个人的帮助很大,除了能帮我编写博途的SCL程序以外,WinCC的VBS脚本程序、C脚本程序、SQL语言等,都能编写,实打实的把我的工作效率提升了一大块,而且在工作中遇到的问题只要问GPT,它都能帮你解决,不用再去到处查资料了,只要问它,它都能告诉你,就像一个随时在线的高级自控工程师一样,无时无刻不厌其烦的回答你的疑难问题。
小叔我个人一直觉得,在AI大爆发的时代,我们应该抓住AI这波红利,不要害怕AI取代我们,反倒是我们应该利用AI帮助我们与时俱进,提高自身能力,利用AI在新的浪潮中站稳脚跟才是王道。
就像是我今天这个标题一样,学习AI技术是大势所趋,早学会早收益,越早掌握AI技术,越能在AI大爆发的洪流中立于不败之地。
所以小叔今天就把这一年来使用AI工具的经验分享给大家!
提前和大家说清楚,接下来的内容一半是干货一半是广告,干货是实打实的教大家学习AI技术,广告就是我自己平台的AI工具,毕竟教学AI技术肯定会用到AI工具,我是肯定会推荐自己平台的工具的,我相信大家也能理解。
熟悉我风格的人应该清楚,小叔从来都是分享干货的,从不整一些有的没的虚无缥缈的概念东西。我的平台上的AI工具也是一样,都是实打实的OpenAI原装的ChatGPT。毕竟要调用人家OpenAI的模型,人家也不能白让我使用,每次提问和回答问题,OpenAI那边都是要收费的,收费标准你在OpenAI官网上都能查得到(人家收到可是美元!)
我能做到的就是在我自己平台不会倒闭的情况下,给到大家最实惠的价格。我相信我的AI工具应该是全网最低的价格了,大家也可以多平台的互相比较着看看。
本平台“智控联盟(点击进入)”上目前有GPT3.5和4.0两个模型(目前市面上最好的模型也就更新到4.0),但在这两种模型的基础上又延伸出多个版本,如下图中所示。
有免费使用版本,也有付费版本,付费版本一定是最好的。你可以按充值次数使用,也可以包月/包年使用。
想按次数使用,充值AI币就可以,GPT3.5回答1次问题消耗1个AI币(1分钱),4.0回答1次问题消耗10个AI币(1毛钱)。积分充值有两种币种,一个是智控币,一个是AI币,充值时一定要看清楚,你要充值的是AI币。
你也可以充值VIP用户体验包月/包年无限制使用,充值VIP用户(10元包月)可以无限使用GPT3.5所有模型,包括GPT4.0基础版。
充值高级VIP可无限使用本站内所有GPT模型(包月18元,包年120元,在提供GPT4.0模型服务这块价格已经是低到极限了)
这里要跟大家说明一下,VIP用户和高级VIP仅限本站内GPT使用,其他付费产品不能使用。
好啦,AI工具介绍完了,下面我们上干货!开始AI技术教学!
我们上面也提到了,AI工具编程其实就是跟他对话,用提问的方式从AI口中套出你想要的东西。编程也是如此。
听起来是不是很简单,其实操作起来也很简单,关键在于如何提问,也就是说你是否会向AI问问题才是关键。
目前我们自动化工程师常用的AI使用方向有3种:1、专业问题求助;2、写设计方案或报告总结等;3、程序的编写、解读和纠错等。
- 我们先来学习第一个:专业问题求助
我们以GPT3.5-16K模型为例
点击进入,在输入问题之前,每个模型的介绍最好都看一下,毕竟特点都不太一样。开启新话题前先点击重置对话(不要担心重置对话后聊天记录会消失,系统会保留50条聊天记录,在每次打开对话框时点击聊天框上方“点击加载更多”即可查看聊天记录),由于此模型支持连续对话,AI会结合上下文回答你的问题,也就是说AI会结合你的聊天记录来回答你的问题,在更换新话题前需要重置一下,这样能保证AI不会访问你上一次的聊天记录来误导问题结果,使AI回答更加准确。
假设我们现场调试设备时,发现S7-300PLC故障灯亮起,不知道是什么故障。
千万不要这样提问:
提问不具体,GPT回答的就笼统。还是我上面说的,会提问题是才关键,你要尽量将问题具体化,越详细越好,GPT毕竟是机器人,它又不是神,能猜到你脑子里的真实想法。一定要细化你的问题,而且要具体,多提供关键字,少说废话。最好是要在提问之前给GPT设定一个身份,也就是让它成为你想要请教问题的那个人,并且要明确指出让它回答你问题的方法和风格。
正确的提问方式:
看到了吧,同样是一个模型,提问的方式不同,得到的信息就不同。下面我们来逐一分析一下提问的方法和格式。
提问:我希望你充当自动化工程师,帮我解答西门子S7-300PLC的故障问题**(先给GPT一个身份,并明确指定让它做的事情)。我遇到的故障是:CUP模块的SF灯红色亮起,其他灯都正常,PLC现在是停机状态,一直使用都正常,突然之间报警停机了(详细描述现在的故障情况,虽然我写了错别字,它一样能明白😂)。什么原因会出现这样的故障,我应该从那几个方向来查找故障(*明确提出你的需求*)**。
这样就得出了一个明确的答案,并且还告诉你排除故障的方法。接下来你就可以根据它告诉你的方法来排除故障了。在排除故障的过程中你还可以实时反馈你遇到的新问题让它帮你解答。接下来的提问就不需要再给GPT设定身份了,因为这个模型是支持连续问答的。并且它还会结合整个聊天记录一起分析你的问题。
我们继续提问:
看到了吧,你给GPT提供的信息越多越具体,他给你反馈的信息就越详细越精准。你只要按照这样的方法连续提问,一定会得到你想要的答案的。
如果你发现GPT给你的答案开始变得不准确或者答非所问,那么有两种可能,第一是你提出的问题有问题,不够明确或者问题本身就是错的。第二是GPT出现了“幻觉”,“幻觉”的意思就是GPT在瞎编,没错,GPT3.5这个模型是会容易犯错的,毕竟模型本身和知识储备数据没有GPT4.0优越。
如果GPT3.5出现了“幻觉”,那么你可以将同样的问题发给GPT4就会解决你的问题了。下面是GPT3.5和GPT4的能力差异对比:
对比项 | GPT-3 | GPT-4 |
---|---|---|
参数数量 | 1750亿 | 100万亿 |
模式 | 仅文本 | 文本和图像 |
性能 | 在复杂的任务上表现不佳 | 达到不同基准的人的水平 |
准确性 | 容易出现答非所问和错误 | 更加可靠,更符合事实 |
好了,接下来我们来学习第二项
- AI如何写设计方案和报告总结
这一项就比较简单了,提问思路和第一个相同,关键在于文本字数,由于GPT每次回答都有字数限制(GPT3.5限制1000字左右,GPT4限制2000字左右),所以不可能一次全部写出你想要的方案或报告。你需要多次提问然后再自己整理。
举个例子:让GPT写一个PLC恒压供水的设计方案,这次我们以GPT4.0为例,毕竟方案这东西不能乱编,最好还是找个靠谱的“人”来写。
我们来看一下示范,注意我的提问
1、先给它一个身份,然后明确需求
2、它会给我们列出设计方案的整体大纲,接下来要做的就是根据它给出的大纲细化每一项,这里要注意一下大纲的第一项中提到了“我们需要根据供水系统的具体需求来选择合适的设备”。这时我们在完善第一项时就要给GPT提供相关数据。
接下来我们就能看到它给我们继续细化了第一项的内容,我们可以从中挑选对我们有用的内容,让它继续细化或者重写。
你就这样一点点的引导GPT让它给你写出你想要的东西为止。为了保证回答准确,询问其他几项内容时,你需要把具体内容再提供给GPT,比如这样:
看到了吧,我们的方案在一点点的被完善,按照这样的方法就可以将剩下的几项内容都完善了,遇到不满意的地方以同样的方法引导它修改。是不是很简单很高效。
这里要注意的是,引导GPT修改和重写时一定要明确修改具体内容和重写目的,不然GPT它是不知道你到底要修改什么或重写到什么程度。
好啦,接下来我们学习最重要的最后一项。
- 程序的编写、解读和纠错
说实话,我用GPT主要就是写程序和修改程序,真的很好用。
下面我们先来学习程序解读。比如你看到了一段程序不知道是什么意思,你就可以直接将程序复制给GPT,让它帮你分析并解释这段程序。下面我们以GPT3.5为例,因为解释程序对GPT来说很简单,不需要用到GPT4(写程序会用到)。
发送程序时要说明一下这段程序出自哪里,用于帮助GPT更好的分析。
毕竟是GPT3.5的最基础模型,给出的答案不是很具体,我们还可以将同样的问题提交给本平台已经训练好的自动化工程师,让它帮我们解答。下面来看看效果。
是不是一下就能看出差异了,虽然都是GPT3.5,训练过和没训练过的是有本质上的区别的。
程序解读是最简单的,就是直接把程序丢给GPT就可以了。
程序编写和纠错相对来说就要复杂一点,因为GPT3.5自身的能力有限,一些复杂的程序容易写错,尤其是工业控制这块,可能是因为GPT3.5在工业控制这块的数据量不够导致的。
所以,写程序我还是建议使用GPT4.0,经过我的多次验证几乎没有错的时候,如果发现程序在编译时报错或者不好用,很可能是因为你的提问超出了PLC编程软件或组态软件的能力范围或者是超出了软件的编程规则,导致PLC编程软件或组态软件无法实现或无法理解GPT4所编写的程序。这样就需要我们一定要了解PLC编程软件或组态软件的编程规则和其所能支持的程序结构。
下面我们以GPT4为例,编程用例就用我们刚刚写的恒压供水方案来编程。
先是错误的示范:
大家可以看到由于你给出的信息不全面,就算是训练过的GPT4也不能一次就写出你想要的程序,为了更准确的写出程序,一定要注意三点:
第一、一定要给GPT详细而且准确的数据,这一点已经讲过很多次了,就不过多讲解了。
第二、一套完整的控制程序不是一次就能写出来的,首先是GPT回答字数的限制,一次回答不可能将全部程序都描述清楚,另一方面,一套完整的控制程序会分多个程序块来编写,GPT不能建立各个程序块之间的连接。
第三,就是尽可能给GPT提供准确的数据,越准确越详细越好。
所以,正确的方式就是让GPT分别编写单独功能的程序,然后需要你自己再将各个单独的程序组合起来。
正确的方法如下:
1、指定GPT的工作目标并给GPT提供关键数据,一定要提示他不需要让它回答(不然会占用回复字数)。
2、接下来提出具体程序要求,先让他编写第一个控制逻辑程序“读取压力值”。
第一个程序这不就写出来了吗,但是我们发现它只定义了一个报警输出位,我们要的是4个报警输出位,所以这里我们需要让它调整一下,这种情况就是因为我提问时没有明确说明造成的,这也是GPT写程序时经常出现的问题,提问不全面,不具体,造成的结果也是会有偏差的,但是偏差可控。下面我就让GPT调整一下这段程序,注意我的提问。
这样就成功了,以下是GPT写的程序源码,大家可以参考学习。
FUNCTION_BLOCK FB_PRESSURE_SENSOR
VAR_INPUTInput: INT; //原始模拟输入(4-20mA)Range_Min: REAL; //工程量范围最小值Range_Max: REAL; //工程量范围最大值Alarm_LL: REAL; //下下限报警值Alarm_L: REAL; //下限报警值Alarm_H: REAL; //上限报警值Alarm_HH: REAL; //上上限报警值
END_VAR
VAR_OUTPUTPressure: REAL; //实际压力值Alarm_LL_Bit: BOOL; //下下限报警位Alarm_L_Bit: BOOL; //下限报警位Alarm_H_Bit: BOOL; //上限报警位Alarm_HH_Bit: BOOL; //上上限报警位
END_VAR
BEGINVARnormalized: REAL;END_VAR//将4-20mA信号转换为0-1normalized := (Input - 27648) / (32767 - 27648);//将标准范围0-1转换为工程量范围Pressure := Range_Min + normalized * (Range_Max - Range_Min);//设定报警位IF Pressure <= Alarm_LL THENAlarm_LL_Bit := TRUE; //下下限报警ELSEAlarm_LL_Bit := FALSE;END_IF;IF Pressure <= Alarm_L THENAlarm_L_Bit := TRUE; //下限报警ELSE Alarm_L_Bit := FALSE;END_IF;IF Pressure >= Alarm_H THENAlarm_H_Bit := TRUE; //上限报警ELSE Alarm_H_Bit := FALSE;END_IF;IF Pressure >= Alarm_HH THENAlarm_HH_Bit := TRUE; //上上限报警ELSE Alarm_HH_Bit := FALSE;END_IF;
END_FUNCTION_BLOCK
然后将程序上传到博途就可以了,上传博途的方法有两种,一种是一点一点的复制到博途当中,要分批复制,先建立变量,然后再复制程序,另一种就是直接将程序上传到博途当中,具体步骤我以前做过两期教学视频,参考第一种方法点击这里,参考第二种方法点击这里。
上传至博途就是这个样子滴:
这样我们就将第一段程序编写完成,按照同样的提问方法将后面的程序全部编写出来。关键还是在于如何选择模型,如何正确的提问,在得到GPT的偏离结果后如何纠正。
由于我们刚刚的程序编写成功后,再次编写下一个程序时就需要重置对话了,否则会影响我们结果的准确性。重置完对话后,同样还是先给GPT提供数据,然后再开始提问。
大家主要看我是怎样提问的,这个是关键。实际上GPT写wincc的VBS脚本程序是最适合的,毕竟不需要这么麻烦,可以直接复制到wincc中,非常简单。我也做过一期讲解GPT写wincc的VBS脚本程序视频,点击这里查看教程
文章写到这里公众号提示我已经快到六千字了,不知道还能不能往下写了,说实话,写到这里我也累了,剩下的程序我就不做验证了,大家自己研究吧。
我们将在未来的知识分享中继续结合AI技术,与大家一起探讨智控行业的最新技术,还请大家多多支持,您随手的点赞和分享就是支持我坚持下去的最大动力,小叔在这里谢谢大家啦!拜了拜,我们下期再见!