【动手学电机驱动】 STM32-FOC(7)MCSDK Pilot 上位机控制与调试

STM32-FOC(1)STM32 电机控制的软件开发环境
STM32-FOC(2)STM32 导入和创建项目
STM32-FOC(3)STM32 三路互补 PWM 输出
STM32-FOC(4)IHM03 电机控制套件介绍
STM32-FOC(5)基于 IHM03 的无感FOC 控制
STM32-FOC(6)基于 IHM03 的无感方波控制
STM32-FOC(7)MCSDK Pilot 上位机控制与调试

【动手学电机驱动】 STM32-FOC(7)MCSDK Pilot 上位机控制与调试

    • 1. 准备工作
      • 1.1 开发环境
      • 1.2 硬件连接
    • 2. 基于 IHM03 的无感FOC 控制
      • 2.1 配置电机控制包
      • 2.2 图形化配置
      • 2.3 代码编辑、编译与调试
    • 3. 使用 MCSDK Pilot 控制与调试
      • 3.1 加载上位机 GUI
      • 3.2 从上位机控制电机运行
      • 3.3 从上位机监控电机运行
    • 4. 速度环控制器
      • 4.1 电流环 PI 控制器
      • 4.2 速度电流双闭环 PI 控制器


P-NUCLEO-IHM03 STM32电机控制套件,为三相、低压和低电流的 BLDC 或 PMSM 电机提供电机控制解决方案。此前我们已经学习了使用 IHM03 电机控制套件开发无感 FOC 电机控制程序的基础操作。
本节在使用 IHM03 电机控制套件开发无感速度环电机控制程序的基础上,详细介绍基于 MCSDK6.0 的速度环控制与调试方法。


1. 准备工作

1.1 开发环境

  1. 硬件要求
  • Windows PC
  • X-NUCLEO-IHM16M1 电机驱动扩展板
  • STM32 Nucleo 开发板
  • 直流电源,输出电压 12 VDC
  • 三相无刷电机
  • USB Type-A 或 Type-c 至 Micro-B 连接线缆
  1. 系统要求:
  • Windows 操作系统(Windows 7、Windows 8 和 Windows 10)、Linux 64-bit 或 macOS
  • USB Type-A 或 Type-c 至 Micro-B 连接线缆,用于将STM32 Nucleo板连接到 PC
  1. 开发工具
  • STM32 电机控制 SDK:X-CUBE-MCSDK
  • STM32 图形化配置工具:STM32CubeMX
  • 集成开发环境 IDE,可以选择一下三者之一:
    • STM32 集成开发环境(STM32CubeIDE)
    • Keil 开发套件(MDK-ARM-STR)
    • IAR 嵌入式开发环境(IAR-EWARM)

1.2 硬件连接

硬件连接的操作步骤简述如下。详细操作过程可以参见 STM32-FOC(5)基于 IHM03 的无感FOC 控制 第2部分。

  1. 根据使用的 STM32 Nucleo 开发板和操作模式,检查跳线位置和安装选项。
  2. 通过 ST-morpho连接器连接(CN7、CN10)X-NUCLEO-IHM16M1 驱动板与 STM32 NUCLEO 开发板。
  3. 将 3-pin 插接端子插入连接器 CN1 的 3/4/5 输出端,以连接无刷电机。
  4. 使用 USB 连接线将 STM32 Nucleo 开发板连接到 PC,并下载相应的预编译代码。
  5. 使用 12V 直流电源为电路板供电,可以选择以下二者之一:
    – 使用连接器 CN1 的 2(VIN)和 1(接地)接入 12VDC电源;
    – 使用 J4 插孔(2.1/2.5 mm,尖端正极)接入12VDC电源。
  6. 使用 STM32 电机控制 SDK(X-CUBE-MCSDK)开发和运行应用程序。

2. 基于 IHM03 的无感FOC 控制

基于 IHM03 的无感FOC 控制的操作步骤简述如下。详细操作过程可以参见 STM32-FOC(5)基于 IHM03 的无感FOC 控制 第3部分。

2.1 配置电机控制包

  1. 打开 电机控制软件开发套件(Motor Control WorkBench),创建新项目。
    单击"New Project"按钮,弹出"New Project"对话框。
    在 “General Info” 菜单中,设置项目名称为 IHM03_03,选择单电机(1 Motor)、FOC驱动控制算法、Modular 模式。

  2. 硬件配置。
    在 “Motors” 菜单选择电机为 GimBal GBM2804H-100T,在 “Power board” 菜单选择驱动板为 X-NUCLEO-IHM16M1 电机驱动板,在 “Control board” 菜单选择控制板为 NUCLEO-G431RB 控制板。

  3. 修改配置的电路板和电机的信息。
    如果配置的硬件信息与实际产品参数有差异,可以点击相应的模块(蓝色模块),进入该模块的参数配置页面进行修改。
    在本例中,电机 GimBal GBM2804H-100T 的默认设置(具体参数与SDK版本有关)为最大电压 10Vdc、最大电流 0.8Apk。这与本套件的配置不一致,因此要点击图中 Motor 蓝色模块,进入电机参数设置页面,将最大电压设为 14.8Vdc、最大电流设为 2.1Apk。

  4. 完成项目配置后,自动生成一个电机控制项目,并显示项目视图。


在这里插入图片描述


  1. 配置速度位置控制方案。

点击项目视图中的 “Speed Sensing” 蓝色模块,进入速度位置管理界面。在 Main Sensor – Sensor Selection 选项中,选择 Sensor-less(Observer+PLL),即采用无传感器(使用位置观测器+PLL获取实时的转子位置)进行控制。


  1. 项目生成。

选择菜单 “Generate the project” 按键,根据配置参数生成项目。
跳出 “Project generation” 窗口,选择 STM32CubeMX 版本、固件版本(Firmware Package Version),Target Toolchain 为 STM32CubeIDE。
默认使用 HAL 驱动。
点击 “GENERATE” 按键,生成代码。


2.2 图形化配置

项目生成完成后,点击 “RUN STM32CubeMX” 按键,打开 STM32CubeMX 进行图形化配置。

  1. 将PA5 管脚设置为 GPIO_Output,可以控制 LD2 灯的开关闪烁。
    LD2 闪灯与电机控制无关,但可以用来确认程序烧录和运行是否正常,帮助初学者分析和排除故障。

  2. 点击 “Project Manager” 菜单按钮,进入工程配置界面。

  • 输入项目名称为 “IHM03_03”,选择项目的保存路径。
  • 将Toolchain / IDE 设为 STM32CubeIDE(根据用户安装和使用的 IDE 选择,也可以选择 EWARM、MDK-ARM、MakeFile、CMake 等IDE工具)。
  • 点击右上角 “GENERATE CODE” 生成代码。

加载完毕后,弹出代码生成提示窗口。点击“ OPEN PROJECT”,进入 STM32CubeIDE。


2.3 代码编辑、编译与调试

  1. 打开 STM32CubeIDE,导入 IHM03_03 项目。
    如果是从 CubeMX 代码生成提示窗口点击“ OPEN PROJECT”,则进入 STM32CubeIDE后自动打开 IHM03_03 项目。

  2. 在左侧 Project Explorer 中,选择 IHM03_03 – Application – User,打开主程序 main.c ,中断服务程序 tm32g4xx_it.c,stm32g4xx_mc_it.c ,如下图所示。

加入 LED2 闪烁功能,只要在 while(1) 循环中添加以下程序(这与电机控制无关,只供参考):

    /* USER CODE BEGIN 3 */
	HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
	/* Insert delay 500 ms */
	HAL_Delay(500);

在这里插入图片描述

  1. 程序编译与下载
  • 用 USB连接线,连接 PC 与 NUCLEO-G431RB 开发板。
  • 点击工具栏中 “Build Debug” 按键对程序代码进行编译。
  • 点击工具栏中 “Debug” 按键,将程序下载烧录到目标板 NUCLEO-G431RB 。

程序烧录完成后,显示内容如下。

STMicroelectronics ST-LINK GDB server. Version 7.8.0
...


Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 19]
Download in Progress:

File download complete
Time elapsed during download operation: 00:00:01.011

Verifying ...
Download verified successfully 
Shutting down...
Exit.
  1. 程序的运行与调试
  • 对照 2.1 检查 IHM03 套件硬件连接和电源连接。
  • 接通 12Vdc电源。
  • 点击工具栏中 “Resume” 按键 或 F8 快捷键,运行程序。
    • LED2 灯闪烁(如果加入闪灯程序)。
    • 按下蓝色按键 B1,电机开始运行。
    • 按下黑色按键 B2,电机停止运行。

3. 使用 MCSDK Pilot 控制与调试

3.1 加载上位机 GUI

MC SDK 提供 UI 库,用于界面调试通讯使用,与 Workbench 之间的交互。

  1. 打开电机控制软件开发套件(Motor Control WorkBench),单击工具栏的 “Motor Pilot” 按钮,启动电机导向应用程序 ST Motor Pilot。

  2. 在 ST Motor Pilot 中,点击菜单 “GUI – Load GUI”,根据项目内容选择相应的 QML 图形界面文件,加载上位机程序。

QML(Qt Meta-Language)是一种基于JavaScript的声明性语言,用于描述用户界面和应用程序的行为。它是Qt框架的一部分,广泛应用于跨平台应用程序开发。QML由于其高度的模块化和可重用性,特别适合于嵌入式系统的开发。在QML能够帮助开发者以声明性的方式构建用户界面,这样就可以在不需要深入了解底层图形渲染机制的情况下,创建出性能良好的界面。

如下图所示,加载上位机 GUI 文件 MC_FOC_SDK.qml。

请添加图片描述

  1. 连接上位机。

P-NUCLEO-IHM03 STM32电机控制套件 通过串口与上位机(PC)通讯。
3.1 打开上位机(PC)的设备管理器,查看 ST Link 对应的串口的端口号(例如下图中串口为 COM3)。
在这里插入图片描述

3.2 在 ST Motor Pilot 中,在 “Port” 设置 ST Link 对应的串口位置,再点击按键 “Connect” 连接。
3.3 连接成功后,ST Motor Pilot 显示电机的运行状态和参数,包括:电机转速,直流母线电压,温度,功率,运行状态,故障代码等。如下图所示,电机处于 “IDLE” 状态。

在这里插入图片描述


3.2 从上位机控制电机运行

在 ST Motor Pilot 的左下角的 “Control” 布局框内,设有电机运行的控制按钮。

  • 控制环路包含 “SPEED”、“TORQUE” 两个选项。默认选项为 “SPEED”,采用速度环控制;可选选为 “TORQUE”,采用力矩环(电流环)控制。
  • 点击 “Start” 按钮,启动电机运行;
  • 点击 “Stop” 按钮,停止电机运行;
  • 点击 “Stop ramp” 按钮,停止爬坡。
  1. 点击 “Start” 按钮启动,电机旋转。点击 “Stop” 按钮,停止电机运行。

左侧运行状态栏 显示运行状态为 “RUN”,故障灯全灭 指示无故障;
电机转速表(Speed Control)显示当前的转速测量值;
指示计(Measures)显示电压、温度、功率值;
状态栏(Global Configuration)显示运行状态。

在这里插入图片描述

  1. 寄存器
    点击菜单栏中的 “Registers” 按钮,切换到寄存器显示界面,显示设定的寄存器参数的实时值。

在这里插入图片描述


3.3 从上位机监控电机运行

  1. 实时监控

在 寄存器显示界面,选择需要实时监控的参数,点击该参数所在行的 “Configure” 按钮,可以绘制实时变化图。

  • 选择速度参考值 SPEED_REF(ID=153),点击对应的 “Configure” 按钮,选择 “Send to new plot” 后按 “Apply”,自动建立绘图框 plot1,将 SPEED_REF 绘制到 plot1 绘图框。
  • 选择速度测量值 SPEED_MEAS(ID=89),点击对应的 “Configure” 按钮,选择 “plot1” 后按 “Apply”,将 SPEED_MEAS 也绘制到 plot1 绘图框。

点击 “Start” 按钮启动,点击 “Stopt” 按钮停止,plot1 绘图框实时显示 速度参考值 SPEED_REF、速度测量值 SPEED_MEAS 的运行曲线如下图所示。

在这里插入图片描述

  1. 调节电机运行速度

在上位机调节电机运行的速度参考值,通过电流环可以控制电机转速。

在 ST Motor Pilot 的转速表下方的 “Speed Ramp” 布局框内,用户可以设置电机速度参考值(Target Speed RPM)和斜坡时间(Speed ramp duration),控制电机运行。

6.1 在电机运行过程中,在 “Target Speed RPM” 选框输入转速参考值,斜坡时间不修改(默认值为0),在 plot1 绘图框观察实时显示的 速度参考值 SPEED_REF、速度测量值 SPEED_MEAS 的运行曲线,如下图所示。

在这里插入图片描述

6.2 在电机运行过程中,在 “Target Speed RPM” 选框输入转速参考值,同时在 “Duration” 选框输入斜坡时间,在 plot1 绘图框观察实时显示的 速度参考值 SPEED_REF、速度测量值 SPEED_MEAS 的运行曲线。

如下图所示,斜坡时间(Duration)主要影响转速参考值的变化时间,相应地也会影响速度参考值变化时的速度测量值的超调量。

在这里插入图片描述

  1. 调节速度环控制器参数

在 ST Motor Pilot 中,用户可以调整速度环、力矩环、磁链环的 PI 控制器参数。

  • 在 ST Motor Pilot 左下方点击 “Advanced Configuration”,打开右侧的状态栏。
  • 状态栏选择 Currents_Speed 状态,显示速度环 PI 控制器(Speed PI regulator)的参数 Kp、Ki。
  • 本项目中 Kp 默认值为 2730,将其修改为 300,Ki 默认值为 562 不变。

点击 “Start” 启动电机。在 plot1 绘图框观察实时显示的 速度参考值 SPEED_REF、速度测量值 SPEED_MEAS 的运行曲线,如下图所示。

减小 Kp 后,速度环的超调量较大。相应地,电流过冲大,容易触发过流保护。由此,速度环 控制器参数,对于电机的运行非常重要。下节将简单介绍速度环参数整定的基本原则和方法。

在这里插入图片描述
减小 Kp,超调量较大。电流过冲大,容易过流保护。

  1. 故障显示与处理

当电机运行发生故障保护时,自动停止运行,并在状态栏显示故障状态,如下图所示。

在这里插入图片描述

如果故障可以自动恢复,点击状态栏 “Ack Faults” 按钮可以使故障复位,进入空闲状态 “IDLE”。如果故障不能自动恢复,则需要断电重启。


4. 速度环控制器

本节是对电机控制速度环和参数整定的介绍。

4.1 电流环 PI 控制器

电流闭环控制,可以精确的控制电机的 Id、Iq 电流值。

电流环的主要作用是在电机启动过程中能够以最大的电流启动,同时对电网电压的波动起及时抗扰的作用,加快动态系统的响应速度,提高系统的稳定性。

在这里插入图片描述


4.2 速度电流双闭环 PI 控制器

实际应用通常期望控制电机以设定的转速变化,仅靠电流闭环不能实现。需要加入转速闭环,实现对转速的控制。转速控制器的输出为电流控制器的给定,转速控制器的输出要进行限幅,因为转速控制器的输出限幅值决定了所用电机的最大允许电流。

速度控制系统的拓扑结构,是速度外环、电流内环的双闭环控制系统,如下图所示。

在这里插入图片描述

增加𝐾𝑖对电机控制系统的影响与增加弹簧常数相似。系统的阻尼由⻓𝑝增益控制。增加阻尼将减少振荡。


### 4.3 电流环路带宽

电流回路带宽过高会导致电机承受过度的压力,因为高频电流瞬变和噪声会转化为高频扭矩瞬变和噪音。电流环路带宽还有另一个限制:采样频率。

在模拟系统中,电机反馈信号的任何变化都会立即开始对输出控制电压产生影响。但是,使用如图所示的数字控制系统,在PWM周期开始时通过ADC对电机信号进行采样,执行控制计算,并将得到的控制电压存入双缓冲PWM寄存器。这些值在PWM寄存器中处于未使用状态,直到它们在下一个PWM周期开始时被时钟记录到PWM输出。

在这里插入图片描述

由于电流控制器处理的带宽比速度回路高,因此通常是电流回路受 PWM 模块的 SH 效应影响最大。由于PWM 模块 SH与电流回路的信号路径串联,其幅度和相位贡献直接增加了电流控制器的开环响应。

在大多数设计中,可以保留 K p s 2 π L \frac{K_p^s}{2\pi L} 2πLKps至少比采样频率低一个数量级。利用这一假设以及速度环调谐过程的约束,可以编写一个通用的“经验法则”表达式:

10 L δ τ < K p s < 2 π L 10 T s \frac{10 L}{\delta \tau} < K_p^s < \frac{2 \pi L}{10 T_s} δτ10L<Kps<10Ts2πL


参考资料:

  1. P-NUCLEO-IHM03 STM32电机控制套件
  2. UM2505 - STM32G4 Nucleo-64 boards (MB1367), STMicroelectronics/意法半导体, 2021
  3. UM2538 - STM32 motor-control pack using the FOC algorithm for three-phase, low-voltage, and low‑current motor evaluationl, STMicroelectronics/意法半导体, 2023
  4. UM3027 - How to use STM32 motor-control SDK v6.0 workbenc, STMicroelectronics/意法半导体, 2022
  5. 许少伦等,STM32G4入门与电机控制实战,电子工业出版社,2023

版权声明:
欢迎订阅youcans@qq 原创作品 【动手学电机驱动专栏】
转载必须标注原文链接:(https://blog.csdn.net/youcans/category_12645064.html)
Copyright@youcans 2024
Crated:2024-11

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/917337.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flume1.9.0自定义Sink组件将数据发送至Mysql

需求 1、将Flume采集到的日志数据也同步保存到MySQL中一份&#xff0c;但是Flume目前不支持直接向MySQL中写数据&#xff0c;所以需要用到自定义Sink&#xff0c;自定义一个MysqlSink。 2、日志数据默认在Linux本地的/data/log/user.log日志文件中&#xff0c;使用Flume采集到…

Transformer学习笔记(一)

Transformer学习笔记 基于 3B1B 可视化视频 自注意力机制 1.每个词的初始嵌入是一个高维向量&#xff0c;只编码该单词含义&#xff0c;与上下文没有关联 2.对初始向量进行位置编码&#xff0c;在高维向量中编码进位置信息&#xff08;单词在语言序列中的位置信息&#xff…

.netcore + postgis 保存地图围栏数据

一、数据库字段 字段类型选择(Type) 设置对象类型为&#xff1a;geometry 二、前端传递的Json格式转换 前端传递围栏的各个坐标点数据如下&#xff1a; {"AreaRange": [{"lat": 30.123456,"lng": 120.123456},{"lat": 30.123456…

【ArcGIS微课1000例】0127:计算城市之间的距离

本文讲述,在ArcGIS中,计算城市(以地级城市为例)之间的距离,效果如下图所示: 一、数据准备 加载配套实验数据包中的地级市和行政区划矢量数据(订阅专栏后,从私信查收数据),如下图所示: 二、计算距离 1. 计算邻近表 ArcGIS提供了计算点和另外点之间距离的工具:分析…

【数据库系列】 Spring Boot 集成 Neo4j 的详细介绍

Spring Boot 提供了对 Neo4j 的良好支持&#xff0c;使得开发者可以更方便地使用图数据库。通过使用 Spring Data Neo4j&#xff0c;开发者可以轻松地进行数据访问、操作以及管理。本文将详细介绍如何在 Spring Boot 应用中集成 Neo4j&#xff0c;包括基本配置、实体定义、数据…

【MySQL】ubantu 系统 MySQL的安装与免密码登录的配置

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;MySQL初阶探索&#xff1a;构建数据库基础 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f4da;mysql的安装&#x1f4d5;MySQL的登录&#x1f30f;MySQL配置免密码登录 &#x1f4da;mysql的…

麒麟V10,arm64,离线安装docker和docker-compose

文章目录 一、下载1.1 docker1.2 docker-compose1.3 docker.service 二、安装三、验证安装成功3.1 docker3.2 docker-compose 需要在离线环境的系统了里面安装docker。目前国产化主推的是麒麟os和鲲鹏的cpu&#xff0c;这块的教程还比较少&#xff0c;记录一下。 # cat /etc/ky…

Docker:查看镜像里的文件

目录 背景步骤1、下载所需要的docker镜像2、创建并运行临时容器3、停止并删除临时容器 背景 在开发过程中&#xff0c;为了更好的理解和开发程序&#xff0c;有时需要确认镜像里的文件是否符合预期&#xff0c;这时就需要查看镜像内容 步骤 1、下载所需要的docker镜像 可以使…

C语言和C++的常量概念与区别分析

文章目录 &#x1f4af;前言&#x1f4af;常量的概念和作用&#x1f4af;C语言中 const 的应用与限制#define 和 enum 的使用方法 &#x1f4af;C 中 const 的计算方法和处理&#x1f4af;代码实例和应用区别&#x1f4af;C 和 C 的常量兼容性问题和负载&#x1f4af;分析 C 和…

《生成式 AI》课程 第3講 CODE TASK执行文章摘要的机器人

课程 《生成式 AI》课程 第3講&#xff1a;訓練不了人工智慧嗎&#xff1f;你可以訓練你自己-CSDN博客 任务1:总结 1.我们希望你创建一个可以执行文章摘要的机器人。 2.设计一个提示符&#xff0c;使语言模型能够对文章进行总结。 model: gpt-4o-mini,#gpt-3.5-turbo, import…

【大数据学习 | flume】flume Sink Processors与拦截器Interceptor

1. Failover Sink Processor 故障转移处理器可以同时指定多个sink输出&#xff0c;按照优先级高低进行数据的分发&#xff0c;并具有故障转移能力。 需要修改第一台服务器agent a1.sourcesr1 a1.sinksk1 k2 a1.channelsc1 a1.sources.r1.typenetcat a1.sources.r1.bindworker…

i春秋-登陆(sql盲注爆字段,.git缓存利用)

练习平台地址 竞赛中心 题目描述 先登陆再说 题目内容 就是一个登录框 测试登录 用户名&#xff1a;admin or 11# 密码&#xff1a;随便输 返回密码错误 用户名&#xff1a;随便输 密码&#xff1a;随便输 返回用户名不存在 这里就可以确定时一个bool盲注了 这里提供一个lik…

【爬虫实战】抓取某站评论

【爬虫实战】抓取某站评论 声明&#xff1a;本文中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 方式一&#xff1a;JS逆向request发…

【微软:多模态基础模型】(1)从专家到通用助手

欢迎关注【youcans的AGI学习笔记】原创作品 【微软&#xff1a;多模态基础模型】&#xff08;1&#xff09;从专家到通用助手 【微软&#xff1a;多模态基础模型】&#xff08;2&#xff09;视觉理解 【微软&#xff1a;多模态基础模型】&#xff08;3&#xff09;视觉生成 【微…

HarmonyOS ArkUI(基于ArkTS) 开发布局 (中)

HarmonyOS ArkUI(基于ArkTS) 开发布局 &#xff08;上&#xff09; 四 层叠布局 (Stack) 层叠布局&#xff08;StackLayout&#xff09;用于在屏幕上预留一块区域来显示组件中的元素&#xff0c;提供元素可以重叠的布局。层叠布局通过Stack容器组件实现位置的固定定位与层叠&…

港湾周评|鼎益丰“庞氏骗局”陨落

《港湾商业观察》李镭 在坊间有着“老鼎”之称的鼎益丰迎来了全面陨落&#xff0c;这丝毫不出人意料&#xff0c;毕竟在一年前就已经暴雷了。 同样&#xff0c;仙风道骨般神采的鼎益丰老板隋广义也迎来人生的至暗时刻&#xff0c;应了无间道那句话&#xff0c;出来混总是要还…

创建vue插件,发布npm

开发步骤&#xff1a;1.创建一个vue项目&#xff0c;2.开发一个组件。 3.注册成插件。 4.vite和package.json配置。5.发布到npm &#xff11;.创建一个vue项目 npm create vuelatest 生成了vue项目之后&#xff0c;得到了以下结构。 在src下创建个plugins目录。用于存放开发的…

用paramiko与SSH交互

# 导入paramiko库用于SSH连接&#xff0c;以及sys库用于处理命令行参数 import paramiko import sys# 定义一个函数send_command&#xff0c;用于发送命令到SSH服务器并打印输出结果 def send_command(ssh_client, cmd):# 使用exec_command方法执行命令&#xff0c;并获取输入、…

Go语言中AES加密算法的实现与应用

一、前言 在当今的软件开发领域&#xff0c;数据安全至关重要。加密技术作为保护数据机密性的关键手段&#xff0c;被广泛应用于各个方面。AES&#xff08;高级加密标准&#xff09;作为一种对称加密算法&#xff0c;以其高效性和安全性在众多加密场景中占据重要地位。本文将详…

CSS 语法规范

基本语法结构 CSS 的基本语法结构包含 选择器 和 声明块,两者共同组成 规则集。规则集可以为 HTML 元素设置样式,使页面结构和样式实现分离,便于网页的美化和布局调整。 CSS 规则集的结构如下: selector {property: value; }选择器(Selector) 选择器用于指定需要应用…