GX Works2中ST语言实战:从基础语法到混合编程与高级应用
1. 项目概述为什么是GX Works2与ST语言在工业自动化领域尤其是三菱电机PLC的编程世界里GX Works2是一个绕不开的集成开发环境。很多工程师朋友特别是从梯形图LD或指令表IL入门的一听到“ST语言”可能会觉得有点距离感认为那是“高级”或“复杂”的应用才需要。其实不然。我干了十几年自动化项目从早期的GX Developer到现在的GX Works2深刻体会到ST结构化文本语言在处理复杂运算、流程控制、数据管理时的巨大优势。它能让你的程序逻辑更清晰代码复用性更高尤其是在配方管理、复杂算法实现、设备状态机等场景下效率提升不是一星半点。这个项目就是想和大家系统地聊聊在GX Works2这个熟悉的“主场”里如何玩转ST语言。我会从最基础的软件环境配置、ST语言的核心语法要素讲起一直深入到如何将ST与梯形图混合编程以及在实际项目中如何规避那些教科书上不会写的“坑”。无论你是想从梯形图平滑过渡到结构化编程还是已经接触过其他品牌的ST语言想快速上手三菱的体系这篇文章都能给你提供一份可直接参考的“实战手册”。我们的目标很明确在GX Works2中让ST语言从“可选项”变成你的“得力工具”。2. GX Works2中ST语言的环境搭建与核心概念2.1 软件准备与工程创建要点首先确保你的GX Works2版本支持ST语言。一般来说GX Works2 Version 1以上版本都内置了ST编辑器。创建一个新工程时在“PLC系列”和“PLC类型”选择完毕后关键一步在于“程序语言”的选择。这里不要直接选“梯形图”而是选择“结构化工程”Structured Project。只有选择了结构化工程你才能在后续的程序部件POU中自由选择ST、梯形图、SFC等多种语言。创建完成后项目树中会出现“程序部件”。右键点击“程序部件” - “新建”在弹出的窗口中你可以给这个程序块命名如MainLogic并在“语言”下拉菜单中明确选择“ST”。这一步是很多新手容易忽略的他们可能创建了结构化工程却还在默认的梯形图块里试图写ST代码结果当然是无法识别。注意GX Works2中的ST编程单元是“程序部件”或“函数/功能块”。对于主循环逻辑通常创建为“程序”对于可复用的算法模块强烈建议创建为“功能块”FB或“函数”FC。这是结构化编程思想的起点。2.2 ST语言基础语法要素精讲ST语言的语法类似于Pascal或C对于有计算机基础的朋友来说上手很快。但在PLC环境中有一些特殊的约定和数据类型需要特别注意。1. 数据类型Data Types这是与普通计算机语言差异最大的地方。GX Works2 ST支持三菱PLC的所有数据类型你必须精确声明。位BitBOOL 表示一个开关量如bStart: BOOL;字节/字/双字BYTE,WORD,DWORD。注意在PLC中这些通常用于表示无符号整数或单纯的位集合。整数INT16位有符号,DINT32位有符号,UINT16位无符号等。实数REAL单精度浮点数,LREAL双精度浮点数GX Works2中常用REAL。时间TIME 用于定时器值如tDelay: TIME : T#2S;声明一个初始值为2秒的时间变量。字符串STRING 有长度限制需注意。数组ARRAY[1..10] OF INT 声明一个包含10个整数的数组。2. 变量声明区每个ST程序/功能块的开头都需要一个VAR...END_VAR区域来声明局部变量。对于功能块还有VAR_INPUT,VAR_OUTPUT,VAR_IN_OUT用于声明输入、输出和输入输出变量。全局变量则在“软元件注释”或“全局标签”中定义在ST中通过标签名直接访问。3. 赋值与表达式赋值运算符是:而不是等号。这是初学者常犯的错误。// 正确 nCounter : nCounter 1; bStatus : (nValue 100) AND (bEnable); // 错误 nCounter nCounter 1;表达式支持标准的算术运算符,-,*,/、比较运算符,,,和逻辑运算符AND,OR,NOT,XOR。4. 控制语句这是ST语言强大逻辑能力的体现。IF...ELSIF...ELSE...END_IF条件分支。IF nTemperature 80 THEN bCooler : TRUE; bHeater : FALSE; ELSIF nTemperature 20 THEN bCooler : FALSE; bHeater : TRUE; ELSE bCooler : FALSE; bHeater : FALSE; END_IF;CASE...OF...END_CASE多路选择。CASE nMode OF 1: strMode : 手动; 2: strMode : 自动; 3: strMode : 校准; ELSE strMode : 未知; END_CASE;FOR...TO...BY...DO...END_FOR循环。这里有个大坑PLC是循环扫描机制一个扫描周期内如果FOR循环次数极大会导致看门狗超时PLC报错停机。务必谨慎使用或确保循环次数在可控范围内。FOR i : 1 TO 10 BY 1 DO arrData[i] : i * 2; END_FOR;WHILE...DO...END_WHILE当型循环。同样需要注意扫描周期超时问题。REPEAT...UNTIL...END_REPEAT直到型循环。3. ST语言在GX Works2中的高级应用与混合编程3.1 功能块FB与函数FC的封装艺术这是ST语言提升编程效率的核心。将常用的、功能独立的逻辑封装成FB或FC可以实现“一次编写多次调用”。函数FC无静态内存纯算法。输入相同输出必然相同。像计算平均值、单位换算、限幅滤波等非常适合用FC实现。// 一个限幅滤波函数FC_LimitFilter FUNCTION FC_LimitFilter : REAL VAR_INPUT rInput: REAL; // 输入值 rMin: REAL; // 下限 rMax: REAL; // 上限 END_VAR BEGIN IF rInput rMin THEN FC_LimitFilter : rMin; ELSIF rInput rMax THEN FC_LimitFilter : rMax; ELSE FC_LimitFilter : rInput; END_IF; END_FUNCTION // 调用 rFilteredValue : FC_LimitFilter(rInput:rSensorValue, rMin:0.0, rMax:100.0);功能块FB有静态内存VAR区变量在调用间保持用于有状态的功能。电机控制、阀门控制、PID调节器等天然适合用FB。// 一个简单的电机控制功能块FB_MotorCtrl FUNCTION_BLOCK FB_MotorCtrl VAR_INPUT bStart: BOOL; bStop: BOOL; bFaultReset: BOOL; END_VAR VAR_OUTPUT bRun: BOOL; bFault: BOOL; END_VAR VAR // 静态变量保持状态 iState: INT; // 状态机变量 tRunTimer: TON; // 定时器实例 END_VAR BEGIN // 状态机逻辑实现... CASE iState OF 0: // 停止态 bRun : FALSE; IF bStart THEN iState : 10; END_IF; 10: // 启动中 tRunTimer(IN:TRUE, PT:T#2S); IF tRunTimer.Q THEN iState : 20; END_IF; 20: // 运行态 bRun : TRUE; IF bStop THEN iState : 0; END_IF; END_CASE; // 故障处理... END_FUNCTION_BLOCK // 实例化并调用 fbMotor1: FB_MotorCtrl; fbMotor1(bStart:bBtn1, bStop:bBtn2, bFaultReset:bReset); bMotor1Running : fbMotor1.bRun;实操心得在设计FB时一定要清晰地区分VAR_INPUT、VAR_OUTPUT和内部的VAR。内部状态变量是FB的“记忆”不要通过输入输出参数来传递状态这会破坏封装性。另外为重要的FB和FC编写详细的注释说明其功能、输入输出含义、内部状态机定义几个月后你自己回头看会感谢这个习惯。3.2 ST与梯形图LD的混合编程实战GX Works2最大的优势之一就是允许在同一个工程中混合使用多种语言。最常见的模式是主流程和简单的联锁用梯形图复杂的计算、数据处理和专用设备控制用ST编写的FB/FC。如何在梯形图中调用ST编写的功能块非常简单。在梯形图中你可以像使用线圈或触点一样插入一个“功能块”。在梯形图编辑界面找到“工具”-“触点/线圈”-“功能块”然后选择你之前用ST编写好的FB或FC实例。你可以将梯形图中的变量软元件或标签连接到功能块的输入输出引脚上。混合编程的最佳实践接口清晰ST功能块的输入输出尽量使用有意义的标签名而不是简单的M、D寄存器地址。在梯形图中调用时连接关系一目了然。分工明确梯形图擅长处理位逻辑和简单顺序控制画面直观。ST擅长处理数据运算、复杂条件判断和状态机。让它们各司其职。数据交换区对于需要频繁在LD和ST之间交换的大量数据可以定义一个全局的数据结构STRUCT或数组。LD负责写入触发条件和读取最终状态ST负责处理这个数据区内的所有运算逻辑。这能有效降低耦合度。例如一个温控系统梯形图负责读取急停按钮、启动按钮等安全信号并调用一个名为FB_TemperaturePID的ST功能块。这个FB的输入是设定温度和实际温度来自模拟量输入输出是加热器控制信号。梯形图只需要关注“使能”这个FB并监控其输出的“故障”信号即可所有复杂的PID算法都封装在ST内部。4. 典型应用场景与程序结构设计4.1 场景一配方管理数据块与数组操作在注塑机、贴片机等设备中经常需要存储多组工艺参数压力、温度、时间等。用ST语言实现配方管理非常优雅。设计思路定义一个Recipe结构体STRUCT包含所有工艺参数。TYPE ST_Recipe : STRUCT rInjectionPressure: REAL; // 注射压力 rHoldPressure: REAL; // 保压压力 tInjectionTime: TIME; // 注射时间 rBarrelTemp: ARRAY[1..5] OF REAL; // 料筒温度组 END_STRUCT END_TYPE声明一个该结构体的数组作为配方库。VAR_GLOBAL arrRecipeDB: ARRAY[1..50] OF ST_Recipe; // 50组配方 nCurrentRecipeNo: INT; // 当前配方号 END_VAR编写ST函数用于配方的加载、保存和搜索。// 加载配方到当前参数 FUNCTION FB_LoadRecipe VAR_INPUT nRecipeNo: INT; END_VAR VAR_IN_OUT // 注意设备当前参数作为IN_OUT传入 stCurrentPara: ST_Recipe; END_VAR BEGIN IF (nRecipeNo 1) AND (nRecipeNo 50) THEN stCurrentPara : arrRecipeDB[nRecipeNo]; ELSE // 报错处理 END_IF; END_FUNCTION优势所有配方数据在内存中结构清晰加载速度快可以通过HMI方便地修改任意配方的任意参数。相比用多个连续的D寄存器来存储可维护性天差地别。4.2 场景二设备运行状态机CASE语句的精髓复杂的设备如机械手、装配站其自动运行流程非常适合用状态机描述而ST语言的CASE语句是实现状态机的绝佳工具。设计模式VAR iMainState: INT; // 主状态机定义常量便于阅读 CONSTANT STATE_IDLE: INT : 0; STATE_LOADING: INT : 10; STATE_PROCESSING: INT : 20; STATE_UNLOADING: INT : 30; STATE_ERROR: INT : 99; END_CONST END_VAR BEGIN CASE iMainState OF STATE_IDLE: bConveyorRun : FALSE; IF bStartAuto AND NOT bAnyFault THEN iMainState : STATE_LOADING; END_IF; STATE_LOADING: bConveyorRun : TRUE; fbPositioning(bEnable:TRUE, rTargetPos:100.0); IF fbPositioning.bInPosition AND (tLoadingTimer.Q) THEN iMainState : STATE_PROCESSING; tLoadingTimer(IN:FALSE); // 复位定时器 ELSE tLoadingTimer(IN:TRUE, PT:T#5S); END_IF; STATE_PROCESSING: // 调用具体的加工处理FB fbProcessStation(bStart:TRUE); IF fbProcessStation.bDone THEN iMainState : STATE_UNLOADING; ELSIF fbProcessStation.bFault THEN iMainState : STATE_ERROR; END_IF; STATE_UNLOADING: // ... 卸载逻辑 STATE_ERROR: // 错误处理等待复位 IF bFaultReset THEN iMainState : STATE_IDLE; END_IF; END_CASE; END_PROGRAM注意事项状态切换的条件必须明确且互斥。每个状态内部的操作要完整并确保在下一个扫描周期能顺利评估到跳出条件。为关键状态添加超时监控是一个好习惯可以防止程序因传感器故障而“卡死”在某个状态。5. 调试技巧、常见问题与避坑指南5.1 GX Works2中ST程序的调试方法在线监视连接PLC后可以像监视梯形图一样监视ST程序。双击打开ST程序部件点击“在线”-“监视”。变量当前值会直接显示在代码旁边。这是最直观的调试方式。写入值/强制值在监视模式下右键点击某个变量可以选择“当前值更改”写入值或“强制”来修改其值用于测试逻辑。切记测试完毕后取消强制。断点调试GX Works2支持在ST语句行设置断点。程序运行到断点处会暂停你可以查看此时所有变量的状态。这对于调试循环、复杂条件分支非常有用。设置方法在行号左侧灰色区域点击即可。交叉引用善用“查找/替换”菜单下的“交叉引用”功能。可以快速找到某个标签或软元件在ST程序、梯形图程序中的所有使用位置对于排查变量被意外修改的问题至关重要。5.2 常见问题与解决方案速查表问题现象可能原因排查与解决思路编译错误“未定义的标识符”1. 变量名拼写错误。2. 变量在错误的区域声明如在局部VAR中声明却试图在全局访问。3. 未导入功能块或函数的定义。1. 仔细检查拼写注意大小写ST语言通常不区分但最好一致。2. 确认变量声明位置。局部变量只能在所属POU内使用。3. 确保使用的FB/FC已在工程中正确定义或通过“库”管理正确添加。程序逻辑正确但输出无动作1. ST程序块未被调用。2. 输出变量被梯形图或其他程序块重复赋值后者覆盖了ST的输出。3. 扫描周期问题条件在下一周期才成立。1. 检查主程序或调用程序是否确实执行了该ST程序块。2. 使用交叉引用查找该输出变量检查是否有其他地方对其进行了写操作。3. 对于边沿检测等逻辑确保使用R_TRIG或F_TRIG功能块而不是直接用IF (bSignal AND NOT bSignalLast)这种可能因扫描顺序失效的方式。PLC运行时看门狗超时WDT错误1. ST程序中存在死循环如WHILE TRUE DO ... END_WHILE且无退出条件。2. FOR循环次数设置过大单次扫描耗时过长。3. 执行了极其耗时的运算如大型数组排序。1. 彻底检查所有循环语句确保有明确的退出条件。2. 限制FOR循环的最大次数或将大循环任务拆分成多个扫描周期执行使用状态机分段处理。3. 优化算法避免在PLC单周期内进行超大规模数据处理。必要时将数据上传到上位机处理。ST中修改了全局变量但梯形图侧未感知1. 扫描顺序导致。GX Works2中程序部件的执行顺序会影响最终结果。2. 变量地址冲突如ST中用了标签梯形图中用了直接地址D100但指向的不是同一物理地址。1. 在“程序部件”中调整执行顺序确保ST程序块在依赖其输出的梯形图逻辑之前执行。2. 统一使用标签管理变量避免直接使用软元件地址。在标签表中建立唯一的映射关系。功能块FB实例状态异常1. FB的静态变量VAR未正确初始化。2. 同一个FB实例在多个地方被调用导致状态混乱。3. FB内部状态机设计有缺陷存在无法跳出的状态。1. 在FB的VAR区为变量设置合理的初始值如iState: INT : 0;。2.一个FB实例只应在程序的一个位置被调用。如果需要多个相同的控制对象应声明多个FB实例如fbMotor1, fbMotor2。3. 仔细审查状态机每个状态的进入和退出条件添加超时和故障恢复路径。5.3 独家避坑技巧初始化的重要性PLC上电或从STOP切换到RUN时非保持型变量会清零但保持型变量会保留上次的值。对于控制逻辑中的关键状态变量如状态机状态iState我强烈建议在ST程序的第一扫描周期使用SM400或FirstScan标志进行显式初始化而不是依赖声明时的初始值。这能避免因PLC异常断电再上电导致的不可预知行为。IF bFirstScan THEN // bFirstScan 是一个在第一个扫描周期为TRUE的全局标志 iMainState : STATE_IDLE; nCounter : 0; // ... 复位其他关键变量 END_IF;边沿检测的标准化在ST中实现上升沿/下降沿检测不要自己用变量去缓存上一周期状态很容易出错。直接使用系统提供的R_TRIG和F_TRIG功能块。它们已经处理好了扫描周期的问题可靠得多。VAR trigStart: R_TRIG; // 声明一个上升沿检测功能块实例 END_VAR trigStart(CLK:bStartButton); // 每个周期执行 IF trigStart.Q THEN // 这里处理启动按钮的上升沿动作每个上升沿只执行一次 nCounter : nCounter 1; END_IF;善用注释与文档ST代码可以写得很紧凑但可读性可能下降。在复杂逻辑旁、状态机每个状态处、功能块接口处务必添加清晰的注释。GX Works2支持在“声明”区为每个输入输出变量添加注释这些注释会在你调用该功能块时显示在引脚旁极大提升了代码的可维护性。版本管理与备份ST代码是文本文件虽然GX Works2工程是二进制格式但你可以将重要的ST程序部件单独导出为.txt或.exp文件用Git等版本管理工具进行管理。这比备份整个工程文件更轻量也便于对比不同版本的代码差异。

相关新闻

行空板K10 MicroPython开机自启动与摄像头调用全攻略

行空板K10 MicroPython开机自启动与摄像头调用全攻略

1. 项目概述与核心价值最近在折腾行空板K10,想用它做个能自动启动、自动拍照的小玩意儿,比如智能门铃、环境监测站或者简单的安防监控。行空板K10作为一款面向教育和物联网开发的国产开源硬件,集成了Wi-Fi、蓝牙、丰富的GPIO和摄像头接口&…

2026/7/29 17:11:16 阅读更多 →
Qwen3.5模型技术解析与工程实践指南

Qwen3.5模型技术解析与工程实践指南

1. Qwen3.5模型家族的技术演进剖析 阿里云通义千问团队最新发布的Qwen3.5系列模型,标志着国产大模型技术路线的重要突破。这次更新包含14B、9B、7B和5B四个中量级版本,其中最引人注目的是14B模型在MT-Bench英文评测中超越Llama3-70B的表现。作为长期跟踪…

2026/7/29 17:11:16 阅读更多 →
独立开发者 2026 生存指南:技术选型、产品方向与运营节奏的趋势判断

独立开发者 2026 生存指南:技术选型、产品方向与运营节奏的趋势判断

独立开发者 2026 生存指南:技术选型、产品方向与运营节奏的趋势判断 一、独立开发者正在面临的三个结构性压力 2026 年对独立开发者而言不是最坏的时代,但一定是最需要策略的时代。三个结构性压力正在同时挤压独立产品的生存空间: 第一&#…

2026/7/29 17:11:16 阅读更多 →

最新新闻

【独家首发】AI面试问题生成黄金三角模型(语义深度×岗位粒度×伦理权重):经27家世界500强验证,仅开放3场闭门工作坊名额

【独家首发】AI面试问题生成黄金三角模型(语义深度×岗位粒度×伦理权重):经27家世界500强验证,仅开放3场闭门工作坊名额

更多请点击: https://intelliparadigm.com 第一章:AI面试问题生成黄金三角模型总览 AI面试问题生成并非简单地堆砌题库或随机采样,而是一个融合领域知识、评估目标与生成可控性的系统性工程。黄金三角模型正是为此构建的结构化框架&#xff…

2026/7/29 17:25:22 阅读更多 →
Python面试核心考点解析:从语法特性到内存管理的50道经典题

Python面试核心考点解析:从语法特性到内存管理的50道经典题

1. 项目概述:为什么我们需要一份“有答案”的面试题集?如果你正在准备Python相关的面试,无论是校招、社招还是转行,手头大概率已经攒了一堆从网上各处搜罗来的“Python面试题大全”。但问题来了:题目是有了&#xff0c…

2026/7/29 17:25:22 阅读更多 →
终极虚拟显示方案:Parsec VDD完全指南与性能调优

终极虚拟显示方案:Parsec VDD完全指南与性能调优

终极虚拟显示方案:Parsec VDD完全指南与性能调优 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd Parsec VDD(Virtual Display Driver)是一款基…

2026/7/29 17:25:22 阅读更多 →
Mac上Python开发环境搭建:PyCharm与pyenv最佳实践指南

Mac上Python开发环境搭建:PyCharm与pyenv最佳实践指南

1. 项目概述:为什么Mac上的Python开发环境值得精心搭建 如果你刚拿到一台Mac,准备开始学习或进行Python开发,那么PyCharm和Python的组合几乎是绕不开的黄金搭档。我用了快十年的Mac做开发,从学生时代写脚本到后来做大型项目&…

2026/7/29 17:25:22 阅读更多 →
专科生论文降AI率工具测评与技巧指南

专科生论文降AI率工具测评与技巧指南

1. 项目概述:为什么专科生更需要关注降AI率工具?作为一名在学术写作领域摸爬滚打多年的老手,我见过太多专科同学在论文查重环节栽跟头。去年帮某职业技术学院做论文辅导时,有个数字让我印象深刻:使用常规降重方法的学生…

2026/7/29 17:25:22 阅读更多 →
终极指南:5分钟掌握Bodymovin插件,将After Effects动画一键转换为Web原生格式

终极指南:5分钟掌握Bodymovin插件,将After Effects动画一键转换为Web原生格式

终极指南:5分钟掌握Bodymovin插件,将After Effects动画一键转换为Web原生格式 【免费下载链接】bodymovin-extension Bodymovin UI extension panel 项目地址: https://gitcode.com/gh_mirrors/bod/bodymovin-extension 你是否曾为After Effects动…

2026/7/29 17:24:22 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻