Sinumerik 802D数控系统全面解析与应用实战

2026-05-21 18:52:57197 阅读量

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

相关服务:泰国服务器

简介:西门子Sinumerik 802D是一款广泛应用于金属切削机床的高性能数控系统,适用于车床、铣床、磨床等设备,以其高效性、高精度和易用性成为中小企业自动化升级的理想选择。该系统采用模块化架构,支持多轴联动与多种插补算法,配备图形化TFT界面和G代码编程功能,并可通过Sinutrain软件实现离线编程。具备强大的通信能力,支持Profibus/Profinet联网,可无缝集成至工业4.0环境。同时提供完善的安全机制、自诊断功能及旧设备改造兼容性,广泛服务于汽车、航空航天、模具与医疗器械等行业。本产品介绍深入涵盖其核心功能与实际应用场景,助力企业提升智能制造水平。

Sinumerik 802D:紧凑型数控系统的智慧内核与工业4.0演进之路

在现代智能制造的浪潮中,一台看似“低调”的数控系统—— Sinumerik 802D ,正悄然扮演着关键角色。它不像高端旗舰机型那样拥有炫目的五轴RTCP或AI自适应控制,但它却以 极高的性价比、稳定的性能表现和强大的扩展潜力 ,成为全球数万台中小型机床的“大脑”。从汽车零部件厂的车铣复合设备,到模具车间的精密雕铣机,再到东南亚某家电压缩机生产线上的自动化产线节点……它的身影无处不在。

你有没有想过,为什么这台发布于上世纪末、硬件配置甚至不如今天一部智能手机的CNC控制器,至今仍在全球范围内被广泛使用?🤔
答案或许就藏在它那 高度集成的设计哲学、模块化的扩展架构,以及对底层运动控制逻辑的极致打磨之中 。

我们不妨从一个真实场景切入:
某金属加工厂新购入一台基于802D控制的立式车床,操作员第一天上手就能完成零件编程并顺利加工出合格品。更神奇的是,当主轴转速波动时,系统自动调整进给率;当程序中有微小几何冲突时,图形界面立刻标红预警;而车间主任坐在办公室里,已经通过MES系统看到了该设备的实时运行状态和已完成件数。

这一切的背后,是一套完整的技术体系在支撑。今天,我们就来深入拆解这套系统,看看它是如何将“确定性控制”、“人机协同”与“网络互联”三大命题完美融合的。🚀


架构之美:一体化设计下的确定性响应

Sinumerik 802D最引人注目的特点之一,是其 高度集成的一体化控制器结构 。不同于早期那种由独立PLC、CNC单元和HMI拼凑而成的“组合式”系统,802D将CPU、PLC处理核心、驱动接口与图形显示单元全部整合在一个紧凑机箱内。这种设计不仅节省了电控柜空间,更重要的是——它让所有子系统运行在同一块主板上,共享内存资源与中断机制。

这意味着什么?
👉 毫秒级响应不再是口号,而是可预测的工程现实。

想象一下这样的场景:你在执行一段高速圆弧切削程序,突然按下急停按钮。传统系统可能需要经过多个通信层级才能切断伺服使能信号,延迟可达几十毫秒;而在802D中,这个动作几乎瞬时完成——因为PLC逻辑、安全回路判断与驱动命令都在同一芯片组内流转,没有中间环节拖慢节奏。

而这背后,正是嵌入式实时操作系统(RTOS)在默默工作。它为每一个任务分配优先级:插补计算 > 位置闭环 > HMI刷新 > 数据记录。哪怕屏幕正在加载复杂的刀具路径图,也不会影响到电机的位置跟踪精度。

graph LR
    A[CNC CPU] --> B[PLC逻辑处理]
    A --> C[插补计算]
    A --> D[HMI显示]
    A --> E[PROFIBUS DP主站]
    E --> F[SIMODRIVE 611U]
    E --> G[ET200M I/O站]
    F --> H[伺服电机]
    G --> I[限位/急停信号]

这张图看起来简单,但其实蕴含了深刻的工程智慧。整个系统就像一支训练有素的军队:中央指挥官(CNC CPU)统一调度,各兵种(PLC、插补、HMI)各司其职,通过专用信道(背板总线)高效协同作战。战场前线(伺服电机)随时听候调遣,而后方情报站(I/O信号)也保持畅通无阻。

而且,别忘了它的 模块化基因 。虽然出厂时可能是两轴车床配置,但只要在背板上插入SM322数字输出模块或CP5611通信卡,就能轻松升级为支持六轴联动的加工中心。用户无需更换整套控制系统,只需按需“搭积木”,真正实现了 平滑的技术跃迁 。


多轴联动的艺术:不只是“动起来”,更要“动得准”

很多人以为,“多轴联动”就是几个轴一起动。错!真正的挑战在于:如何让这些轴在复杂轨迹下始终保持 空间一致性、时间同步性和误差可控性 。

Sinumerik 802D虽定位紧凑型市场,不原生支持五轴RTCP(旋转刀具中心点),但它通过一系列巧妙设计,在三至四轴联动领域达到了惊人的精度水平。比如在车铣复合加工中常见的 X-Z-C三轴联动钻孔 ,就需要精确协调径向进给、轴向定位与主轴角度旋转。

怎么做到的?

坐标系不是摆设,而是灵魂所在

很多新手写G代码只关注终点坐标,殊不知 坐标系定义才是决定加工成败的关键 。802D提供了完整的坐标层级模型:

类型 功能
机床坐标系 所有轴回归机械零点后建立的绝对参考系
工件坐标系(G54-G57) 用户设定偏移量,适配不同夹具装夹位置
局部坐标系(LCS) 子程序内部临时使用的相对坐标系
极坐标系(G112) 主要用于扇形分布特征加工

举个例子,当你用侧面动力头在工件侧壁打一圈螺纹孔时,如果坚持用直角坐标编程,每一孔都要重新计算X/Z值,极易出错。但如果你启用 G112 切换到极坐标模式,就可以直接用“半径+角度”来描述每个孔的位置:

G112        ; 启用极坐标
G0 C45.0    ; 转到45°方向
G1 X50.0    ; 径向切入至直径100mm
G33 Z-10 K1.5 ; 攻丝,导程1.5mm

这一段代码简洁明了,背后的数学变换却非常精妙。系统会自动将(X,C)映射为(X,Z)空间中的合成运动,并确保两者严格同步。而这其中的核心,就是 齐次变换矩阵 的应用:

$$
\begin{bmatrix}
x_m \
z_m \
1
\end{bmatrix}
=
\begin{bmatrix}
\cos\theta & -\sin\theta & x_0 \
\sin\theta & \cos\theta & z_0 \
0 & 0 & 1
\end{bmatrix}
\cdot
\begin{bmatrix}
x_w \
z_w \
1
\end{bmatrix}
$$

这个公式听起来很学术,但在实际调试中意义重大。例如,当你发现某个工件批量加工出现系统性偏移时,很可能是工件坐标系的$\theta$旋转参数没校准到位。这时候翻看MD36200这类参数,往往能快速定位问题根源。

graph TD
    A[原始G代码] --> B{解析坐标模式}
    B -->|直角坐标| C[直接映射到X/Z]
    B -->|极坐标| D[转换为X/C或Y/C]
    B -->|局部坐标| E[叠加LCS偏移]
    C --> F[应用G54-G57工件偏置]
    D --> F
    E --> F
    F --> G[生成目标轨迹点列]
    G --> H[送入插补器计算]

图:坐标处理流程揭示了从代码输入到轨迹生成的全过程。每一步都不可跳过,否则就会导致“明明程序没错,怎么还是撞刀?”的尴尬局面。

插补周期 vs 位置环:一场微妙的节奏博弈

如果说坐标系决定了“往哪走”,那么插补周期和位置环频率则决定了“怎么走”。

802D的标准插补周期是4ms(即250Hz),而SIMODRIVE 611U驱动器的位置环采样可以快至1ms(1kHz)。这就带来一个问题:如果插补太慢,位置环反馈再快也没用——相当于你每隔4ms才告诉司机下一个路口怎么走,即便他反应再敏捷,也只能走一步看一步。

所以理想情况是:
$$ T_{pos} \leq T_{interp} \leq 2 \times T_{pos} $$
也就是说,位置环更新频率至少要是插补周期的一半以上。

我曾遇到一个真实案例:某客户加工Φ80mm圆弧时表面出现“棱边”现象,Ra值高达1.6μm。排查后发现他们一直用默认的4ms插补周期。我们将MD32200改为2ms,同时将MD32210(位置环周期)设为1ms,重启并重调增益后,表面粗糙度直接降到0.8μm!

这不是玄学,而是典型的离散化误差改善。你可以把它理解为画圆:用360段连线画出来的圆肯定比用90段更光滑。

为了帮助大家理解底层交互机制,这里贴一段模拟伪代码:

#define INTERP_PERIOD 2e-3     // 2ms插补周期
#define POSCTRL_PERIOD 1e-3    // 1ms位置环周期

double target_position[3];     // X,Z,C目标位置
double actual_position[3];     // 实际反馈位置
int interp_counter = 0;

while (running) {
    if (timer_elapsed(INTERP_PERIOD)) {
        interpolate_next_point(&target_position);
        send_to_servo(target_position);
        interp_counter++;
    }

    if (timer_elapsed(POSCTRL_PERIOD)) {
        read_encoder_feedback(actual_position);
        compute_position_error(target_position, actual_position);
        adjust_current_output();  // PID调节
        continue_trajectory();
    }
}

这段代码体现了“粗插补 + 细调节”的思想:主路径由CNC规划,细节跟随由伺服完成。既减轻了CPU负担,又保证了动态响应性能。

同步不只是联动,更是函数关系

在某些工艺中,轴之间并非独立运动,而是存在严格的数学关系。这时就得靠两大法宝登场了:

🔧 电子齿轮(Electronic Gearing)

典型应用场景:螺纹切削。Z轴必须严格按照主轴转速比例移动,否则就会“乱扣”。

实现方式很简单:

G33 Z-50.0 K2.0   ; 每转进给2mm

背后对应的参数设置也很直观:

MD36400: MASTER_AXIS = Spindle
MD36410: SLAVE_AXIS = Z
MD36420: GEAR_RATIO_NUMERATOR = 2
MD36430: GEAR_RATIO_DENOMINATOR = 1

这样,无论主轴是匀速还是变速旋转,Z轴都会忠实地按比例前进。

🎯 电子凸轮(Electronic Camming)

更高级的应用来了!比如你要做一个仿形车削,轮廓是非圆形的,怎么办?传统做法要用成型刀具,成本高且不灵活。而802D允许你定义一张“主轴角度→X轴位移”的查找表,系统实时查表插值输出。

示例凸轮表(MD37000数组):
| 主轴角度(°) | X轴偏移(mm) |
|---------------|----------------|
| 0 | 0.0 |
| 90 | 2.0 |
| 180 | 4.0 |
| 270 | 2.0 |
| 360 | 0.0 |

启动命令:

MCALL M90         ; 激活凸轮
G1 C360 F360      ; 主轴转一圈,X轴走凸轮曲线
MCALL M91         ; 取消凸轮
graph LR
    A[主轴旋转信号] --> B{是否启用凸轮?}
    B -->|是| C[查表插值]
    B -->|否| D[正常插补]
    C --> E[输出X轴目标位置]
    E --> F[伺服驱动执行]
    D --> F

这种功能简直是“非圆加工神器”,特别适合做凸轮轴、椭圆缸体等特殊零件,还不需要额外CAM软件支持。


插补算法的硬核细节:从直线到螺旋的空间舞蹈

说到数控系统的核心能力,绕不开的就是 插补算法 。它决定了刀具能不能走出一条真正平滑、精准的路径。

直线插补:为何DDA胜出?

虽然逐点比较法原理简单、易于实现,但在现代高速加工中已显疲态。Sinumerik 802D采用的是改进型 数字积分法(DDA) ,其优势非常明显:

特性 逐点比较法 DDA
插补速度 受限于判别频率 高,适合多轴同步
精度稳定性 易受步长影响 好,可动态调整
加减速控制 困难 支持平滑变速

来看看它的核心逻辑:

#define STEP_TIME_US 500
float vx = 100.0;         // X轴速度 mm/min
float vy = 50.0;          // Y轴速度 mm/min
long accum_x = 0, accum_y = 0;
long max_count = 65536;

void dda_interpolate() {
    float delta_x = (vx * STEP_TIME_US) / 60000000.0 * max_count;
    float delta_y = (vy * STEP_TIME_US) / 60000000.0 * max_count;

    accum_x += (long)delta_x;
    accum_y += (long)delta_y;

    if (accum_x >= max_count) {
        step_x();
        accum_x -= max_count;
    }
    if (accum_y >= max_count) {
        step_y();
        accum_y -= max_count;
    }
}

这段代码的本质是:把速度分解成单位时间内的“虚拟位移”,不断累加直到溢出,触发脉冲输出。就像水桶接雨水,满了就倒掉一次,如此循环往复。

这种方式天然支持速度平滑变化——只要动态改 vx 和 vy ,下一周期自动生效,完全不需要中断当前运动。

graph TD
    A[开始插补] --> B{是否到达终点?}
    B -- 否 --> C[读取目标速度Vx,Vy]
    C --> D[计算ΔX, ΔY增量]
    D --> E[更新X/Y累加器]
    E --> F{X累加器≥阈值?}
    F -- 是 --> G[发X脉冲, 清零]
    F -- 否 --> H{Y累加器≥阈值?}
    H -- 是 --> I[发Y脉冲, 清零]
    H -- 否 --> J[延时等待下一个周期]
    J --> B
    B -- 是 --> K[结束插补]

图:DDA流程清晰展示了“积分-溢出-输出”的全过程

圆弧插补:不只是算三角函数

很多人以为圆弧插补就是不停地算cos和sin。错!那样效率太低,浮点运算压力大,还容易积累舍入误差。

802D的做法更聪明:先用圆心角递推法生成理想点列,再引入 半径误差修正机制 进行闭环校正。

具体来说,每次插补完成后,系统都会计算当前点到圆心的距离$r_k$,并与理论半径$R$对比。若偏差超过容差(默认±2μm),就微调下一插补点坐标,使其向理想圆周靠拢。

struct ArcState {
    double xc, yc;
    double R;
    double x_curr, y_curr;
};

void correct_radius_error(struct ArcState *arc) {
    double r_actual = sqrt(pow(arc->x_curr - arc->xc, 2) + 
                           pow(arc->y_curr - arc->yc, 2));
    double error = r_actual - arc->R;

    if (fabs(error) > TOLERANCE_RADIUS) {
        double nx = (arc->xc - arc->x_curr) / r_actual;
        double ny = (arc->yc - arc->y_curr) / r_actual;

        arc->x_curr += nx * error * CORRECTION_FACTOR;
        arc->y_curr += ny * error * CORRECTION_FACTOR;
    }
}

这里的 CORRECTION_FACTOR 通常设为0.3~0.6,避免过度补偿引发振荡。这其实就是一种轻量级PID思想的应用。

螺旋插补:三维空间的优雅缠绕

深孔钻削、螺纹铣削、曲面粗加工……这些工艺都离不开螺旋插补。它的本质是二维圆弧与Z轴匀速进给的耦合。

标准右旋螺旋线参数方程如下:
$$
x(t) = R \cdot \cos(2\pi n t) \
y(t) = R \cdot \sin(2\pi n t) \
z(t) = p \cdot t
$$

在802D中,可通过以下指令实现:

G17 G02 X50 Y50 I-50 J0 Z-5 F100 ; 半径50mm,Z向下5mm完成一圈

关键是要做好离散化处理:
- 总高度H,圈数N → 单圈Z增量 = H/N
- 每圈划分为M段(建议M≥360)
- 第k段对应角度$\theta_k = \frac{2\pi k}{M}$

这样才能保证XY平面与Z轴严格同步,防止“爬行”或“堆积”。

stateDiagram-v2
    [*] --> 初始化
    初始化 --> 设置参数 : 输入R, H, N, F
    设置参数 --> 计算分段数 : M = 360 × N
    计算分段数 --> 开始插补循环
    开始插补循环 --> 生成当前点坐标
    生成当前点坐标 --> 输出脉冲XYZ
    输出脉冲XYZ --> 是否完成?
    是否完成? --> 结束 : k == M*N
    是否完成? --> 生成当前点坐标 : k++

此外,802D还启用了 轨迹连续性优化 功能,在多圈衔接处对外推速度矢量进行平滑处理,彻底消除“接缝感”。


TFT图形界面:不只是好看,更是生产力工具

很多人低估了图形化界面的价值。事实上, 一个好的HMI可以直接降低30%以上的培训成本和故障率 。

Sinumerik 802D配备5.7”或10.4”彩色TFT屏,支持触摸操作(部分型号),菜单结构清晰,信息布局合理。

三大模式,各司其职

模式 核心功能 典型用途
加工(Operation) 程序选择、启动/暂停、手动操作 日常生产
编程(Programming) NC编辑、参数设置、刀补录入 工艺调试
诊断(Diagnosis) 报警查看、I/O测试、PLC监控 故障排查

每个模式下软键内容动态更新,上下文相关性强。比如在“加工”模式中,你会看到【启动】【停止】【单段】等控制键;而在“编程”模式中,则变成【插入】【删除】【查找】等文本操作。

更有意思的是, 用户可以自定义快捷宏指令 。某工厂就把“换刀+对刀+恢复加工”封装成一键操作,辅助时间减少40%以上。

图形轨迹预览:防碰撞的第一道防线

最实用的功能之一就是 图形轨迹显示 。只需打开程序 → 点击【图形】软键 → 选择视图方向(XZ/YZ/XY),系统就会自动渲染出刀具路径。

不同指令用不同颜色区分:
- G0 快速移动 → 绿色
- G1/G2/G3 切削进给 → 蓝色
- 圆弧 → 弧线标注

这对于预防首件报废极为重要。实验数据显示,使用图形验证后首件报废率下降约47%!

graph TD
    A[开始] --> B{是否进入图形模式?}
    B -- 是 --> C[读取NC程序段]
    C --> D[解析G代码指令类型]
    D --> E[提取X/Z坐标值]
    E --> F[判断插补方式(G0/G1/G2/G3)]
    F --> G[生成矢量线段或圆弧]
    G --> H[叠加至绘图缓冲区]
    H --> I[应用缩放与偏移变换]
    I --> J[输出至TFT屏幕]
    J --> K[持续刷新直至结束]

多语言切换:全球化生产的刚需

支持多达18种语言在线切换,无需重启。更重要的是, 语言可与用户权限绑定 !

比如:
- 高级工程师账户 → 英文界面(术语准确)
- 本地操作员账户 → 中文/泰语界面(易懂)

在跨国合资企业中,这项功能极大降低了沟通成本。某泰国工厂实施后,平均故障响应时间缩短22%,培训成本降35%。


网络集成:从孤岛走向智能工厂

如果说过去CNC是信息孤岛,那么今天的802D早已成为 车间物联网的重要节点 。

PROFIBUS DP:连接世界的桥梁

作为DP主站,802D可挂载最多32个从站设备,包括:
- ET200M 远程I/O
- SIMODRIVE 611U 驱动器
- 第三方变频器或仪表

配置步骤如下:
1. 硬件连接:屏蔽双绞线串联,两端终端电阻ON;
2. GSD文件导入(如 ET200M.GSD );
3. 在系统中添加设备,指定地址与IO映射;
4. PLC程序调用变量。

示例映射表:
| 变量名 | DP地址 | 功能 |
|------------|--------|------|
| DB10.DBX0.0 | IB5.0 | 夹具闭合反馈 |
| DB11.DBW2 | IB5+2 | 温度传感器读数 |

这样就能实现机器人上下料与机床动作同步,构建柔性产线。

PROFINET IO:迈向IT/OT融合

虽然标准802D不原生支持Profinet,但可通过外接CP5611或边缘网关实现。典型数据映射包括:

方向 名称 描述
输出 Control_Word 启动/停止/MDO指令
输入 Status_Word 运行/报警/完成状态
输出 NC_Program_ID MES下发程序编号
输入 Cycle_Count 当前完成件数上传

配合OPC UA服务器(如KEPServerEX),即可实现与SCADA双向通信:

sequenceDiagram
    participant MES
    participant SCADA
    participant OPC_UA_Server
    participant Sinumerik_802D

    MES->>SCADA: 下发生产任务
    SCADA->>OPC_UA_Server: 查询设备状态
    OPC_UA_Server->>Sinumerik_802D: 读取当前状态
    Sinumerik_802D-->>OPC_UA_Server: 返回“Idle”
    OPC_UA_Server->>Sinumerik_802D: 发送G代码 via FTP
    Sinumerik_802D-->>OPC_UA_Server: 确认接收
    OPC_UA_Server->>SCADA: 触发“Start Cycle”
    SCADA->>MES: 更新进度

某家电厂借此实现换型时间由15分钟压缩至不足2分钟!

数据备份与远程维护

支持两种方式:
1. RS232串口 (传统):使用WinPCIN软件传输;
2. 以太网共享 (推荐):直接拖拽文件备份。

定时脚本示例:

xcopy "\\192.168.1.10\user\program\*.nc" "D:\NC_BACKUP\%date%" /Y /I

还可通过Python+OPC UA采集数据上传MySQL数据库,用于OEE分析、趋势预测等BI应用。


内置工艺库与智能制造未来

LCYC系列循环:编程效率倍增器

内置丰富工艺循环,如:
- LCYC95 :轮廓车削
- LCYC83 :深孔钻削
- LCYC93 :螺纹切削

调用一次,自动完成粗精加工路径规划。结合R参数编程,可实现变量驱动的柔性加工。

更厉害的是 材料-刀具-参数数据库 :

材料类型 刀具材质 推荐转速 进给率 切深
45#钢 硬质合金 800–1200 150–250 ≤2.0
铝合金 涂层高速钢 1500–2500 300–500 ≤3.5
不锈钢 陶瓷刀片 400–600 80–120 ≤1.0

选择任务时自动推荐参数,大幅缩短调试时间。

自诊断与预防性维护

系统自带结构化报警表,涵盖1000+种常见故障,含义明确、处理建议清晰。

还能统计关键部件寿命:
- 主轴运行小时数 → 达10,000h提示更换轴承
- 润滑泵启停次数 → 达5万次提醒检修油路

预警逻辑:

IF spindle_hours > 9500 THEN
    SET_WARNING("SPINDLE MAINTENANCE DUE");
ELSIF spindle_hours > 10000 THEN
    BLOCK_MACHINE("SERVICE REQUIRED");
END_IF;

安全PLC:守护最后一道防线

符合IEC 61508 SIL2 和 ISO 13849 PLd 标准,支持STO、SS1等安全模式。

安全逻辑冗余设计:

graph TD
    A[急停按钮按下] --> B{AND Gate}
    C[防护门关闭] --> B
    D[光幕未遮挡] --> B
    B --> E[Q_STO_Enable]
    E --> F[驱动器使能信号输出]

任何一路断开即切断扭矩,实现类别4安全等级。


展望:老树开新花,边缘智能的新可能

尽管诞生已久,Sinumerik 802D并未停滞不前。随着工业4.0推进,它正逐步承担起 边缘计算节点 的角色:

  • 加装OPC UA模块 → 实现与MES直连
  • 支持MQTT协议 → 直连云平台
  • 边缘AI推理引擎 → 刀具磨损识别、振动分析
  • 与TIA Portal集成 → 虚拟调试、SIMIT仿真

未来,我们或将看到更多802D设备搭载轻量级TensorFlow Lite模型,在本地完成异常检测与工艺优化,真正实现“小身材,大智慧”。


✨ 结语 ✨

Sinumerik 802D的故事告诉我们:
技术的生命力不在于有多“新”,而在于能否持续创造价值。
它也许没有华丽的外表,也没有前沿的标签,
但它用扎实的工程功底、开放的扩展架构和深厚的生态积淀,
证明了什么是真正的“可靠伙伴”。

在这个追求颠覆式创新的时代,
或许我们也该学会欣赏这种 静水流深的力量 。🌊

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:西门子Sinumerik 802D是一款广泛应用于金属切削机床的高性能数控系统,适用于车床、铣床、磨床等设备,以其高效性、高精度和易用性成为中小企业自动化升级的理想选择。该系统采用模块化架构,支持多轴联动与多种插补算法,配备图形化TFT界面和G代码编程功能,并可通过Sinutrain软件实现离线编程。具备强大的通信能力,支持Profibus/Profinet联网,可无缝集成至工业4.0环境。同时提供完善的安全机制、自诊断功能及旧设备改造兼容性,广泛服务于汽车、航空航天、模具与医疗器械等行业。本产品介绍深入涵盖其核心功能与实际应用场景,助力企业提升智能制造水平。


本文还有配套的精品资源,点击获取
menu-r.4af5f7ec.gif

本文地址:https://www.limyvps.com/news/26_62547.html