AI画各种图及PLC编程
利用AI生成的Typora画的工作原理流程图。
提示词:请用mermaid或Typora形式表示,画个流程图,这样就会画出流程图来。将生成的代码在https://mermaid.live中解释;或者是Typora中解析;如果是对文档类进行处理,如生成docx文档,一般可以生成html格式,因为这种格式可以有很多样式上的选择,然后下载并勾选背景颜色进行打印成PDF即可。
常见的思维导图有以下八种
圆圈图Circle Map 气泡图Bubble Map 双重气泡图Double Bubble Map 树状图Tree Map 括号图Brace Map 流程图Flow Map 多重流程图Multi-Flow Map 桥状图Bridge Map
DeepSeek+Xmind:生成思维导图
使用步骤:
1.使用DeepSeek生成文件,并让其返回“xmind支持的markdown格式”
2.复制返回的文本,保存成后缀为.md的文件,并且是UTF-8的类型
3.打开Xmind,点击"文件->导入",选择上一步的md文件,即可
4.可以在Xmind软件中进行编辑修改
让AI学习一些程序后再让其写程序
- 让AI什么事情;
- 让AI怎么做事情,把要实现的动作过程精准的表达给AI;
AI学习过后给一个控制需求,看能写出怎样的一个程序。
控制过程:
初始状态:按下启动按钮,进入程序1
程序1:气缸 1导通,之后,左限位开关ON,进入程序2
程序2:气缸2导通,之后,下限位开关ON,进入程序3
程序3:气缸2断开,之后,上限位开关ON,进入程序4
程序 4:气缸 1断开,之后,右限位开关 ON,进入程序1
在VScoder中安装SCL插件
再安装MarsCode插件可以
irm https://raw.githubusercontent.com/yuaotian/go-cursor-help/master/scripts/install.ps1 | iex
不管以哪种语言编写都得新建一个新的窗口并让AI先训练一下,如:熟悉200SMART系统编程规则;
在cursor中输入让其以指令语句的方式;在Samrt中可以进行LAD和STL的转换;
可以将源程序导出为awl格式,然后再用记事本打开另存为UTF-16LE格式的txt文件,vscode的GitHub Copilot插件或者Cursor软件来学习这个txt文件。然后再提问或训练;
将AI生成的语句表粘贴到记事本中并保存为awl格式;
打开Micro/WIN SMART软件,文件—–导入——将上一步的awl格式的文件导入;这样程序就直接生成了。
如果是博途软件可以让AI先训练规则再写程序,如果写的是SCL程序,此时可以在博途软件中将表格视图改为文本视图,这样直接粘贴过来就可以使用了;选项—–设置—-PLC编程——-SCL(结构化控制语言)—–块接口将默认的表格视图改为文本视图;此时再新建SCL功能块就是文本视图模式了。这是全局有效的;
可以打开claude软件,如:
用西门子SCL语言写程序 要求: 1.所有的变量都用中文表 2.请严格按照西门子SCL标准语法,CASE分支不使用BEGIN...END 3.所有TON定时器调用都必须包含IN和PT两个参数 4.即使是复位定时器,也必须传递PT参数,不能省略 5.时间格式使用T#数值单位的格式,如T#2S(2秒)、T#s(3秒)
将编程手册或者案例程序给AI学习,将模式改为思考模式,并上传一个手册,让其学习,学习完以后让其写一个Modbus通讯程序。
如何把博途中其它项目中的程序块拷贝到当前项目中?
视图—–勾选参考项目——在左侧就会多出一个参考项目栏;此时就可以将曾备份的项目加载进来。此时就会有当前的项目和曾经的程序两个栏,这样就可以灵活的拷贝粘贴了。
博途写的梯形图程序,将图形化的LAD转换为结构化的文本格式,然后将这些文本作为上下文(Context)提供给大型语言模型(LLM),如GPT系列。
方法一:导出为源代码 (AWL/STL) – 最佳选择
AWL (Anweisungsliste) 或 STL (Statement List) 是西门子PLC的一种底层文本指令集,类似于汇编语言。TIA Portal可以将任何LAD或FBD程序块无损地转换为AWL。这种格式保留了所有的逻辑、变量名、网络注释,是AI理解逻辑的完美格式。
实现步骤:
- 打开你的TIA Portal项目,找到你想要转换的LAD程序块(例如一个FC或FB)。
- 在项目树中,右键点击该程序块。
- 选择 “生成源文件” (Generate source from blocks)。
- 在弹出的对话框中,选择一个保存位置,并确保源文件语言选择为 AWL(它通常是默认选项)。给文件取个名字,比如
MyFunctionBlock_Source.awl
。 - 点击“生成”。你会得到一个
.awl
或.stl
结尾的文本文件。
.awl
文件内容示例:
一个简单的“启动-停止”电路的LAD,转换成AWL后可能看起来像这样:
awl复制FUNCTION "MotorControl" : VOID { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_INPUT Start_Button : Bool; // 启动按钮 Stop_Button : Bool; // 停止按钮 END_VAR VAR_OUTPUT Motor_On : Bool; // 电机运行状态 END_VAR BEGIN NETWORK TITLE = 启动逻辑 // 当按下启动按钮,并且电机未运行时,启动电机。 // 使用常开触点“或”上电机自身的状态,形成自锁。 U( ; O( ; U "Start_Button"; U "Motor_On"; ) ; U "Stop_Button"; ) ; = "Motor_On"; END_NETWORK; END_FUNCTION
为什么这个格式对AI很友好?
- 结构清晰:有明确的
NETWORK
(网络)、TITLE
(标题)、变量声明和指令(U
=AND,O
=OR,=
=Assign)。 - 包含元数据:变量名、注释(
//
后面的内容)都完整保留,这些是AI理解代码意图的关键。 - 纯文本:可以直接复制粘贴给AI。
应用:代码生成
你的提问 (Prompt):
你是一位精通西门子PLC编程的专家。我现在需要编写一个功能块,实现一个简单的交通灯控制逻辑:
- 有三个输出:红灯(Red_Light)、黄灯(Yellow_Light)、绿灯(Green_Light)。
- 有一个启动输入(System_Start)。
- 流程:系统启动后,绿灯亮10秒,然后熄灭;接着黄灯亮3秒,然后熄灭;接着红灯亮15秒,然后熄灭;循环此过程。
- 请为我生成实现该功能的AWL源代码,并添加必要的注释。
AI可能的回答:
AI会为你生成一段包含定时器(TON)和逻辑判断的AWL代码。你只需将这段代码:
- 在TIA Portal中创建一个“外部源文件”。
- 将AI生成的代码粘贴进去。
- 右键该源文件,选择“根据源文件生成块”。
- TIA Portal会自动为你创建一个FB或FC,并且里面的逻辑就是梯形图!你可以直接切换视图查看。
在 TIA Portal 里面,梯形图转成文本语言需要注意几点:
- 在 TIA Portal 里 没有 LAD → SCL 的自动转换。
- 想要用 SCL,必须在建程序块时就选择 SCL 语言块(类似新建 OB/FC/FB 时,选择语言为 SCL)。因此如果你想让 AI 学习 SCL,需要:
- 手工在 TIA Portal 里新建一个 SCL 块;
- 把你的 LAD 逻辑翻译进去;
- 导出项目时,SCL 会以可读的文本形式保存
-
最稳妥的方法是:
- 在 TIA 里右键 程序块 → 生成源文件;
- 得到
.xml
或.awl
/.scl
文件; - 把这个文件给 AI,它能解析逻辑,不用再截图梯形图。