当前位置: 首页 > news >正文

七天学会plc加机器视觉之AI 接入 外设模块开发全详细操作文档(全程配套视频按文档实操)

本文分为三部份,
第一部份,什么是模块,模块在西门子的软件梯形图和硬 件处设
第二部份,本地plc 源码模型训练,让ai更正常可工程化代码
第三部分,怎么调用ai 功能快速参与模块开发,提高个人开发能力

以下详细流程


西门子模块与 Openness 上位机开发完整文档

第一部分:西门子模块基础
1. 什么是西门子模块?

模块是 PLC 系统的硬件功能单元,通过标准化接口与 CPU 或背板总线连接,扩展 PLC 的输入输出、通信、工艺等能力。例如 S7-1200 的信号板、ET200SP 的分布式模块等。

2. 为什么需要模块?(三大核心原因)
  • 弥补 CPU 原生功能不足:CPU 通常集成 TTL 电平的数字量接口,但无法直接驱动远距离通信。RS485 模块通过差分信号转换(将单端信号转为两根线的电压差),抗干扰能力提升,支持 1000 米以上通信,解决了 CPU 原生接口的距离限制。
  • 支持多样化协议与场景:工业通信需适配 Modbus、Profinet 等协议,Modbus 模块封装了协议解析逻辑(如 CRC 校验、数据帧格式),用户无需手动编写串口通信代码,直接通过梯形图调用模块功能块即可实现数据交互。
  • 扩展系统容量与灵活性:当 CPU 自带 I/O 点数不足(如 S7-1214C 仅 14DI/10DO),可通过数字量 / 模拟量扩展模块(如 SM 1223)增加输入输出通道;或通过通信模块(如 CM 1241 RS485)扩展多协议通信接口。
3. 常用模块功能与梯形图使用
  • RS485 通信模块(如 CM 1241 RS485):功能:支持 Modbus RTU/ASCII、自由口通信,实现 PLC 与变频器、仪表等设备的双向数据传输。梯形图使用:直接拖拽模块对应的功能块(如 MB_COMM_LOAD、MB_MASTER),配置波特率、奇偶校验等参数,通过数据缓冲区(如 DB 块)读写数据。
  • Modbus TCP 模块(如 CM 1243-1):功能:支持 Modbus TCP 协议,通过以太网实现高速通信(100Mbps),适用于工业以太网组网。梯形图使用:调用 MB_CLIENT 功能块,填写 PLC IP、端口号、从站地址,实现与 Modbus TCP 从站的数据交互。
第二部份 如何利cursor 训练公司老代码,
首先我们要有针对这个plc的老代码,最好有有几个文件,有基础功能的,类似如下
然后安装cursor ,选择 你喜欢的,你觉得好用的大模型,让他学习一下自己项目的源码
最后提需求,生成工程源码,最后导到工程

第一步:准备外部 SCL 源码文件

1. 编写 SCL 代码(假设以下代为为ai 生成)

新建文本文档,写入测试代码(简单加减运算),演示标准格式:

scl

// 外部SCL文件示例:加法运算功能块 FUNCTION FC_Add : Void VAR_INPUT IN1: Int; IN2: Int; END_VAR VAR_OUTPUT OUT_RESULT: Int; END_VAR // 逻辑体 OUT_RESULT := IN1 + IN2; END_FUNCTION

2. 修改文件后缀

  1. 保存文本文件;
  2. 将后缀.txt改为.scl,例如:FC_Add.scl

注意:系统需显示文件扩展名,避免变成FC_Add.scl.txt


三、第二步:TIA Portal 导入外部 SCL 文件,生成程序块

场景前提

已打开 S7-1200 项目,CPU 设备已组态完成。

完整操作步骤

  1. 打开项目树 → 选中 PLC 程序块文件夹项目树 →PLC 变量 / 程序块→ 右键【程序块】文件夹。

  2. 右键菜单选择:导入 → 外部源文件

  3. 在弹窗中,浏览选中刚才准备的FC_Add.scl文件,点击导入

  4. 导入规则说明(讲课重点)

    • SCL 文件内第一行FUNCTION / FUNCTION_BLOCK决定生成块类型:
      • FUNCTION→ 生成FC 功能(无静态变量)
      • FUNCTION_BLOCK→ 生成FB 功能块(带静态变量、有记忆)
    • 块名称、IO 引脚、变量会自动解析生成,无需手动创建引脚。
  5. 导入完成校验回到【程序块】列表,能看到新生成的FC_Add,双击可打开查看 SCL 源码。

  6. 编译块(必做)选中该块 → 点击工具栏编译(灯泡图标),无报错代表导入成功。


四、第三步:在主程序 OB1 中调用该 SCL 块

OB1 是 S7-1200 主循环组织块,PLC 上电后循环执行,作为主函数。

方式 1:梯形图(LAD)调用(最常用,学员易理解)

  1. 双击打开OB1 (Main),切换到梯形图视图
  2. 在指令库 →程序控制中,直接拖拽FC_Add到网络段中。
  3. 分配变量 / 地址:
    • IN1、IN2:填写常量(如 10、20)或 PLC 变量(M、DB、I、Q)
    • OUT_RESULT:绑定输出变量(如DB1.DBD0MW0
  4. 示例接线逻辑:

    plaintext

    IN1 := 10 IN2 := 20 调用 FC_Add OUT_RESULT = 30

方式 2:SCL 语言调用(如果 OB1 也用 SCL)

若 OB1 切换为 SCL 编辑,调用语法:

scl

// OB1 主程序内调用外部导入的FC FC_Add( IN1 := 10, IN2 := 20, OUT_RESULT => MW0 );

五、第四步:下载程序到 PLC + 在线监控验证

  1. 编译整个项目(快捷键 Ctrl+B),确保无错误、无警告。
  2. 连接 PLC(以太网 / PN),点击在线 & 下载,将程序下载到 S7-1200。
  3. 进入在线监控
    • 查看引脚数值变化,验证 SCL 逻辑正常执行。
    • 证明:外部 SCL 文件 → 导入成块 → 主程序调用 全流程生效。

六、补充:导入 FUNCTION_BLOCK(FB 块)示例

1. 外部 SCL 源码(FB 格式)

scl

FUNCTION_BLOCK FB_Count VAR Counter: Int; // 静态变量,断电保持状态 END_VAR VAR_INPUT Add_Pulse: Bool; END_VAR VAR_OUTPUT Count_Out: Int; END_VAR IF Add_Pulse THEN Counter := Counter + 1; END_IF; Count_Out := Counter; END_FUNCTION_BLOCK

同样改后缀为.scl,按上面步骤导入,会自动生成FB 功能块,调用方式和 FC 完全一致。

第三部分:Openness 开发环境配置(C# 上位机)
1. 软硬件环境要求(视频部分根据粉丝需要讲c#还是python调整 )
  • TIA Portal 版本:V17(推荐,稳定支持.NET 4.8)或 V18/V19(支持.NET 6+)。
  • Visual Studio 版本:VS 2019(V17)或 VS 2022(V18/V19)。
  • .NET 框架:.NET Framework 4.8(V17)或.NET 6+(V18/V19)。
  • PLC 型号:西门子 S7-1200(需确保 CPU 固件版本与 TIA Portal 兼容)。
  • cursor 千问等编程,利用ai 参与工程设计和开发,
2. TIA Portal 权限配置
  1. 以管理员身份启动 TIA Portal。
  2. 依次点击【选项】→【设置】→【常规】→【专家设置】。
  3. 勾选【通过外部程序启用 TIA Portal 的访问】,点击【确定】后重启 TIA Portal。
3. Visual Studio 项目配置
  1. 创建 C# 控制台应用(.NET Framework 4.8)。
  2. 引用 Openness 核心 DLL(路径示例:C:\Program Files\Siemens\Automation\Portal V17\PublicAPI\V17):
    • Siemens.Engineering.dll(核心 API)
    • Siemens.Engineering.HW.dll(硬件组态)
    • Siemens.Engineering.SW.dll(软件对象如程序块)
  3. 设置 DLL 属性:右键每个 DLL→【属性】→【复制到本地】设为False
4. 操作系统权限与防火墙配置
  • 权限设置
    • 开发时,Visual Studio 需以管理员身份运行(右键 VS 图标→【以管理员身份运行】)。
    • 编译后的 EXE 文件,右键→【属性】→【兼容性】→勾选【以管理员身份运行此程序】。
  • 防火墙配置
    • 允许 TIA Portal 通过防火墙:控制面板→【Windows Defender 防火墙】→【允许应用通过防火墙】→找到Siemens.Automation.Portal.exe并勾选 “专用” 和 “公用” 网络。
    • 允许上位机程序通过防火墙:同上步骤,添加编译后的 EXE 文件。
第三部分:C# 上位机操作 S7-1200 示例(Openness)
功能:通过 Openness 连接 TIA Portal,读取 S7-1200 的程序块信息

csharp

using System; using Siemens.Engineering; using Siemens.Engineering.SW; class OpennessDemo { static void Main(string[] args) { // 1. 创建TIA Portal实例(无界面模式) using (var tiaPortal = new TiaPortal(TiaPortalMode.WithoutUserInterface)) { try { Console.WriteLine("正在连接TIA Portal..."); // 2. 打开现有项目(替换为你的TIA项目路径) var project = tiaPortal.LoadProject(@"C:\Siemens\Projects\S7-1200_Demo.ap17"); Console.WriteLine($"成功打开项目: {project.Name}"); // 3. 遍历项目中的设备,找到S7-1200 CPU foreach (var device in project.Devices) { if (device.Type.Contains("S7-1200")) { Console.WriteLine($"\n找到S7-1200 CPU: {device.Name}"); // 4. 获取CPU的程序块(OB、FB、FC等) var software = device.Software as PlcSoftware; if (software!= null) { Console.WriteLine("程序块列表:"); foreach (var block in software.Blocks) { Console.WriteLine($"类型: {block.GetType().Name}, 名称: {block.Name}"); } } break; } } } catch (Exception ex) { Console.WriteLine($"操作失败: {ex.Message}"); } } Console.WriteLine("\n按任意键退出..."); Console.ReadKey(); } }
代码说明
  1. TIA Portal 连接:通过TiaPortal类创建实例,支持有界面(WithUserInterface)或无界面模式。
  2. 项目操作LoadProject打开现有项目,SaveProject保存修改,CreateNewProject创建新项目。
  3. 硬件与软件访问:通过Devices遍历设备,Software属性获取 PLC 程序块,支持读写变量、修改程序块逻辑等高级操作。
第四部分:常见问题与注意事项
  1. 版本兼容性:确保 TIA Portal 版本、.NET 框架、VS 版本严格匹配(参考本文第二部分第 1 点),否则会出现 DLL 加载失败。
  2. 权限问题:若提示 “无法访问 TIA Portal”,检查是否以管理员身份运行 TIA Portal 和 VS,以及 “专家设置” 中的外部访问权限是否开启。
  3. PLC 在线连接:若需通过 Openness 控制 PLC 在线(如下载程序、监控变量),需确保 TIA Portal 已通过以太网连接 S7-1200(IP 地址需在同一网段)。
http://www.jsqmd.com/news/968234/

相关文章:

  • 78系列三端稳压器深度解析:从参数解读到实战选型与散热设计
  • C# + VisionPro9.0 + 汇川PLC通过ModbusTCP硬触发工业相机实拍方案
  • 大语言模型能搞定AI虚拟细胞?
  • MuleSoft+LangChain企业AI集成实战:打通数据管道与大模型落地
  • 硬件工程师的伊斯坦布尔观察:从城市架构到消费电子市场的技术隐喻
  • 工程师思维觉醒:从理论焦虑到常识与推理的实战应用
  • 3步掌握VideoDownloadHelper:浏览器视频下载终极指南
  • AKShare深度解析:构建Python量化金融数据生态的5大核心技术
  • 写作压力小了!2026年好用AI论文网站榜单,免费生成高质初稿无忧
  • 单片机模块化编程实战:从Keil软仿真到工程架构设计
  • 【Java】String 全套高频面试题详解
  • 别再手动拼接字符串了!XXL-Job参数传递的3种优雅方案(附SpringBoot实战代码)
  • 技术博客创作指南:从获奖案例看高质量内容的价值与创作方法
  • EMS行业转型:从人力依赖到自动化与供应链韧性构建
  • 芯片测试基石:Open/Short测试原理、实践与陷阱全解析
  • OBS虚拟摄像头终极指南:如何在5分钟内让所有软件用上专业级视频特效
  • HarmonyOS原子化服务开发指南:免安装、跨设备流转与实战避坑
  • 嵌入式Linux开机自动登录root并启动应用:原理、配置与避坑指南
  • 梁灿彬广义相对论习题解答LaTeX源码包(XeLaTeX+VS Code一键配置)
  • 告别副本动画等待:FFXIV ACT CutsceneSkip插件终极指南
  • 好用还专业!AI论文写作工具2026最新测评与推荐
  • 轻松下载B站视频:从大会员4K到充电专属内容
  • 如何快速掌握AKShare:面向新手的完整Python财经数据接口指南
  • Android Studio本地化架构优化:分布式协作方案实现47%效率提升
  • caj2pdf终极指南:轻松实现CAJ转PDF的完整解决方案
  • 普通工程师的七年成长路:从零资源学习到项目驱动求职
  • U盘芯片揭秘:原片、白片、黑片如何影响数据安全与选购
  • KeyboardChatterBlocker:彻底终结键盘连击问题的终极免费解决方案
  • 10美元鼠标秒变苹果妙控板:Mac Mouse Fix如何彻底改变你的Mac鼠标体验
  • SD卡挂载成功却无法访问?从硬件到软件的完整排查与修复指南