昆仑通态MCGSpro,自定义配方功能
最近在做一个机床的控制系统,是用来打磨轴承滚子的,用到了昆仑通态触摸屏,西门子1200,以及1个台达变频器,五个私服电机。大致就是下面这个设备。
对于西门子1200运动控制的相关内容,以及调试过程中遇到的坑,改天再写一个文章。这里重点介绍配置文件的功能。
控制界面上需要做一个工件加工参数读写功能,见下图。实际上就是配方功能。奈何mcgspro自带的配方功能,界面实在是太丑了。于是想自己做一个。
既然自己做一个,就完全脱离软件自带的配方功能。自带的配方功能,应该是数据库保存的。找了半天,没有发现软件有提供数据库操作的函数接口。也就是说,没法像软件自带的配方那样,弄到数据库里面。既然使用数据库不行,那就直接写到文件。
按照每行一个配方,第一列是配方名称,后面是配方值,逗号隔开,也就是csv文件格式。见下图。---表示没有配方。
首先是配方初始化,在软件启动的时候,对配方进行初始化,见下面代码。大致原理就是如果配置文件不存在,就创建一个。注意FileAppend,不会创建文件。所以之前必须有FileWriteByStr.
dim i as INTEGER
dim r as INTEGER
dim str as STRING
r=!FileReadByStr("$MCGS_DIR_USER/qcfg.csv",0,-1,str,TEXT_UTF8) '尝试去读配置文件
if r<0 then '如果读取不到,就给文件初始化了。!FileWriteByStr("$MCGS_DIR_USER/qcfg.csv","---,",FILE_TRUNC,TEXT_UTF8) '强制创建新的文件i=2 '第一行写了,第二行开始WHILE i<=50 '循环写剩下的49行!FileAppend("$MCGS_DIR_USER/qcfg.csv","---,\n")I=i+1ENDWHILE
ENDIF
其次在,参数列表页面。需要创建50个用于显示参数名称的标签,以及创建50个用于显示参数名称的变量,变量都是字符串类型。
标签绑定显示变量:
在列表页面,启动脚本,添加代码,主要原理是读取配置文件。然后用SplitString,换行符,分割为一个字符串数组。每一行一个配置。
然后根据第一个逗号位置,给配置名称提取出来,名通过DataSetString给声明的名称变量赋值,以达到显示配置名称的功能。具体代码如下:
dim names(100) as STRING
dim str as STRING
DIM r as INTEGER
dim i as INTEGER
dim p as INTEGER
dim nm as STRING
dim vn as STRING
dim v as STRING
r=!FileReadByStr("$MCGS_DIR_USER/qcfg.csv",0,-1,str,TEXT_UTF8) '读取配置文件r=!SplitString(str,names,"\n") '按换行分割为字符串数组i=1
while i<=50 '循环所有配置p= !InStr(1, names[i],",") '查找第一个逗号位置nm=!left(names[i],p-1) '截取配置名称vn="NM"+!Format(i-1,"000") '拼接变量名称,!DataSetString(vn,nm ) '写入已经声明的变量i=i+1
ENDWHILE
有列表页面,还得加一个编辑页面,见下图。是一个弹出窗口。
辑页面的逻辑是,用户从列表页面点击,记录当前点击的项目下标到全局变量。然后打开编辑页面,编辑页面读取配置文件,按换行符进行分割,然后找到对应的下标,找到对应的行,进行逗号分割,按固定的顺序转换为变量值,显示到表格中。
从列表页面跳转到编辑页面的代码:
Index.Value=0'对应的配置下标存储一下
参数编辑.Open()'打开参数编辑页面
参数编辑.BringToTop()'置顶
下面是编辑页面,从文件找到对应的配置行,并转换为变量值的代码:
dim str as STRING
dim names(100) as STRING
dim ss as STRING
dim r as INTEGER
dim i as INTEGER
DIM val(60) as STRING
r=!FileReadByStr("$MCGS_DIR_USER/qcfg.csv",0,-1,str,TEXT_UTF8) '读取配置文件
if r < 0 then '如果没用读取到,就用默认值i=1WHILE i<=50names[i]=","i=i+1ENDWHILE
ELSEr=!SplitString(str,names,"\n")'对读取的配置文件进行分割
ENDIFss = names[index+1] '获取对应下标的行 r=!SplitString(ss,val,",") '分割配置行i=1 '下面全是字符串转换为对应的变量值T压轮转速A0.Value=!Val(val[i+1])T压轮转速A1.Value=!Val(val[i+2])T压轮转速A2.Value=!Val(val[i+3])T压轮转速A3.Value=!Val(val[i+4])T压轮转速A4.Value=!Val(val[i+5])
保存配置文件的逻辑,读取配置文件,分割成配置行。然后给当前页面的所有值,再按顺序拼接成字符串。然后循环写入配置,当前行的配置,使用新拼接的字符串。代码如下:
dim str as STRING
dim names(100) as STRING
dim ss as STRING
dim r as INTEGER
DIM I AS INTEGER
dim con as STRING
r=!FileReadByStr("$MCGS_DIR_USER/qcfg.csv",0,-1,str,TEXT_UTF8)
if r < 0 then '如果没有文件,就使用默认值i=1WHILE i<=50names[i]="---,"i=i+1ENDWHILE
ELSEr=!SplitString(str,names,"\n")ENDIFss=Name.Valuess=ss+","+!Str(T压轮转速A0.Value)ss=ss+","+!Str(T压轮转速A1.Value)ss=ss+","+!Str(T压轮转速A2.Value)ss=ss+","+!Str(T压轮转速A3.Value)ss=ss+","+!Str(T压轮转速A4.Value)ss=ss+","+!Str(T砂轮转速A0.Value)ss=ss+","+!Str(T砂轮转速A1.Value)ss=ss+","+!Str(T砂轮转速A2.Value)ss=ss+","+!Str(T砂轮转速A3.Value)ss=ss+","+!Str(T砂轮转速A4.Value)ss=ss+","+!Str(T震动速度A0.Value)ss=ss+","+!Str(T震动速度A1.Value)ss=ss+","+!Str(T震动速度A2.Value)ss=ss+","+!Str(T震动速度A3.Value)ss=ss+","+!Str(T震动速度A4.Value)ss=ss+","+!Str(T油石压力A0.Value)ss=ss+","+!Str(T油石压力A1.Value)ss=ss+","+!Str(T油石压力A2.Value)ss=ss+","+!Str(T油石压力A3.Value)ss=ss+","+!Str(T油石压力A4.Value)ss=ss+","+!Str(T加工时间A0.Value)ss=ss+","+!Str(T加工时间A1.Value)ss=ss+","+!Str(T加工时间A2.Value)ss=ss+","+!Str(T加工时间A3.Value)ss=ss+","+!Str(T加工时间A4.Value)ss=ss+","+!Str(T压轮转速B0.Value)ss=ss+","+!Str(T压轮转速B1.Value)ss=ss+","+!Str(T压轮转速B2.Value)ss=ss+","+!Str(T压轮转速B3.Value)ss=ss+","+!Str(T压轮转速B4.Value)ss=ss+","+!Str(T砂轮转速B0.Value)ss=ss+","+!Str(T砂轮转速B1.Value)ss=ss+","+!Str(T砂轮转速B2.Value)ss=ss+","+!Str(T砂轮转速B3.Value)ss=ss+","+!Str(T砂轮转速B4.Value)ss=ss+","+!Str(T震动速度B0.Value)ss=ss+","+!Str(T震动速度B1.Value)ss=ss+","+!Str(T震动速度B2.Value)ss=ss+","+!Str(T震动速度B3.Value)ss=ss+","+!Str(T震动速度B4.Value)ss=ss+","+!Str(T油石压力B0.Value)ss=ss+","+!Str(T油石压力B1.Value)ss=ss+","+!Str(T油石压力B2.Value)ss=ss+","+!Str(T油石压力B3.Value)ss=ss+","+!Str(T油石压力B4.Value)ss=ss+","+!Str(T加工时间B0.Value)ss=ss+","+!Str(T加工时间B1.Value)ss=ss+","+!Str(T加工时间B2.Value)ss=ss+","+!Str(T加工时间B3.Value)ss=ss+","+!Str(T加工时间B4.Value)i=1con="" '最终存储的字符串WHILE i<=50if i=Index.Value+1 then '使用新拼接的字符串con=con+ss+"\n"ELSE '使用原有的配置文件con=con+ names[i]+"\n"ENDIFi=i+1ENDWHILE!FileWriteByStr("$MCGS_DIR_USER/qcfg.csv",con,FILE_TRUNC,TEXT_UTF8)'写入配置文件数据读写.Refresh()
参数编辑.Close()
设置为当前配置,就是把已经读取的配置文件,赋值给正在加工的变量里面,主要就是赋值,代码省区。从备份当前配置,是把当前的的配置,赋值给编辑页面,代码也不贴了。
导入和导出,就是给这个配置文件拷贝到u盘,或者从u盘拷贝到触摸屏。用的FileCopy。
如果有更好的方法,欢迎来指导。由于项目涉及到商业问题,代码暂时不能上传,可以私信。
相关文章:
昆仑通态MCGSpro,自定义配方功能
最近在做一个机床的控制系统,是用来打磨轴承滚子的,用到了昆仑通态触摸屏,西门子1200,以及1个台达变频器,五个私服电机。大致就是下面这个设备。 对于西门子1200运动控制的相关内容,以及调试过程中遇到的坑…...
工业视觉高精度测量利器——Halcon卡尺工具深度解析
Halcon中的卡尺工具(Caliper Tool)是工业视觉中用于高精度边缘检测和几何测量的重要功能,尤其在尺寸测量、定位和对象分析中广泛应用。以下从原理、实现到优化的深度解析: 1. 卡尺工具实现原理(步骤分解)…...
2025毕业论文与答辩资料精选汇总
毕业季来临,对于即将毕业的大学生来说,毕业论文和答辩无疑是毕业季的“重头戏”。尤其是对于IT行业的学生来说,毕业论文不仅需要扎实的专业知识,还需要良好的表达能力和清晰的逻辑思维。今天,我为大家整理了一份涵盖IT…...
「数智化聚合分销生态系统」定制开发:重构全渠道增长引擎
在数字经济深度重构全球商业格局的时代,企业亟需突破传统分销体系的效能边界,构建具有核心竞争力的现代化营销网络。我们以行业前沿技术为驱动,提供全栈式聚合分销系统定制开发服务,通过深度融合数字化、智能化解决方案࿰…...
【物联网】 ubantu20.04 搭建L2TP服务器
部署篇 序言 为了是两个客户端在同一个网络内,需要找一台服务器,搭建一个L2TP服务器,通过L2TP使两个客户端在同一个网络内,为什么要搭建,主要是解决例如员工出差后,还需要连接公司内网资源的问题,本文主要…...
std::ranges::iota
std::ranges::iota_view 和 std::views::iota 是 C23 Ranges 库中的一部分,用于生成一系列递增的值,类似 Python 的 range() 或传统的 for 循环生成器。 一 原形 Defined in header <numeric> Call signature template< std::input_or_output…...
物联网简介:万物互联的未来图景
物联网简介:万物互联的未来图景 引言 在科技飞速发展的今天,我们身边的一切似乎都在悄然发生变化。从清晨智能闹钟根据你的睡眠状态自动唤醒,到厨房里的咖啡机在你起床前已经煮好咖啡;从城市交通系统通过实时数据优化红绿灯时长…...
Python类方法解析:从字节序列重构Vector2d实例
这篇文章将详细解析Python中的classmethod装饰器,并通过一个实际案例——为Vector2d类实现frombytes方法,展示如何从字节序列重构对象实例。 类方法基础 classmethod是Python中一个重要的装饰器,它用于定义类方法。与普通实例方法不同&…...
list.forEach(s -> countService.refreshArticleStatisticInfo(s.getId())); 讲解一下语法
这段代码使用了Java中的forEach方法结合Lambda表达式来遍历一个列表,并对列表中的每个元素执行特定操作。具体来说,它会遍历列表中的每一个元素,并调用countService.refreshArticleStatisticInfo(s.getId())方法来刷新每个文章的统计信息。下…...
linux服务器与时间服务器同步时间
内网部署服务器,需要同步时间 使用系统内置的systemctl-timesyncd进行时间同步 1.编辑配置文件 sudo nano /etc/systemd/timesyncd.conf修改添加内容入下 [Time] NTP10.100.13.198 FallbackNTP#说明 #NTP10.100.13.198:你的主 NTP 时间服务器 IP #Fall…...
通过低功耗蓝牙通信实例讲透 MCU 各个定时器
📖 在嵌入式开发中,“定时器”几乎无处不在。但大多数人一说起定时器,要么只会 HAL_Delay(),要么搞不清楚硬件、虚拟、协议定时器到底有啥区别。 今天我们不讲纯理论,而是直接通过一个完整的 BLE 通信实例,带你一次性搞清楚 MCU 各类定时器的真实用途和工作机制。 📚…...
Spring_Boot(一)Hello spring boot!
新建项目加入 spring_web 依赖,生成如下 pom.xml文件,即为代码配置。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XML…...
MySQL故障排查与生产环境优化
目录 一、前置知识点:MySQL 逻辑架构解析 (一)客户端和连接服务层(最上层) (二)核心服务层(第二层) (三)存储引擎层 (四…...
mysql故障排查与环境优化
一、mysql运行原理 mysql的运行分为三层 客户端和连接服务 核心服务功能(sql接口、缓存的查询、sql的分析和优化以及部分内置函数的执行等。) 存储引擎层(负责mysql中数据的存储和提取。) 二、示例 1、实验环…...
博图1200硬件组态与启保停程序编写步骤详解
一、前言 在工业自动化控制领域,西门子S7-1200 PLC因其性能稳定、编程灵活而广受欢迎。本文将详细介绍使用TIA Portal(博图)软件进行S7-1200 PLC硬件组态以及编写基本启保停程序的完整步骤,帮助初学者快速掌握这一基础而重要的技…...
深入解析Java微服务架构:Spring Boot与Spring Cloud的整合实践
深入解析Java微服务架构:Spring Boot与Spring Cloud的整合实践 引言 随着云计算和分布式系统的快速发展,微服务架构已成为现代软件开发的主流模式。Java作为企业级应用开发的核心语言,结合Spring Boot和Spring Cloud的强大生态,…...
AM32电调学习解读九:ESC上电启动关闭全流程波形分析
这是第九篇,前面的文章把各个模块的实现都介绍了一轮,本章是从运行的角度结合波形图,把整个流程走一遍。 先看下一运行的配置,我把一些配置关闭了,这样跑起来会好分析一些,不同配置跑起来效果会有差异。使用…...
迅联文库开发日志(三)登陆注册
目录 一、注册 Controller层 Service层 二、登录 其他需要注意的: 需要实现 Serializable 的场景 一、注册 先思考我们需要哪些参数: 邮箱、昵称、密码、邮箱验证码 (图片验证码会调用checkCode()验证) Controller层 Req…...
Oracle 数据库的默认隔离级别
Oracle 数据库的默认隔离级别 默认隔离级别:READ COMMITTED Oracle 默认使用 读已提交(READ COMMITTED) 隔离级别,这是大多数OLTP(在线事务处理)系统的标准选择。 官方文档 https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/da…...
PDF 合并测试:性能与内容完整性
我们一直在改进 PDF 合并工具 JPedal,并希望通过测试对比其与其他工具的表现。该工具支持合并包括大文件在内的完整文档。 如何测试 PDF 合并输出 我们在示例文件上进行了对比测试,您也可以用自有文件复现。 测试中使用的方法之一是借助 Adobe Reader&a…...
白杨SEO:不到7天,白杨SEO博客网站百度搜索显示和排名恢复正常!顺带说说上海线下GEO聚会分享和播客红利
大家好,我是白杨SEO,专注SEO十年以上,全网SEO流量实战派,AI搜索优化研究者。 5月开始,明显就忙起来了,不管是个人陪跑还是企业顾问,不管是需要传统SEO还是新媒体流量,还是当下这个A…...
docker介绍与常用命令汇总
docker简介 docker是什么? Docker 是一个开源的应用容器引擎,它可以让开发者将应用与运行环境打包成一个标准的、可移植的容器(Container),在任何地方都可以快速部署和运行,无需关心底层环境是否一致。 …...
Axure设计数字乡村可视化大屏:构建乡村数据全景图
今天,让我们一同深入了解由Axure设计的数字乡村可视化大屏,看看它如何通过精心的布局和多样化的图表类型,将乡村的各类数据以直观、易懂的方式呈现出来,为乡村管理者提供有力的数据支持。 原型效果预览链接:Axure数字乡…...
c#基础01(.Net介绍)
文章目录 .Net平台介绍.Net平台简介跨平台开源.Net Core.Net Framework开发工具安装选项 创建项目 .Net平台介绍 .Net平台简介 .NET是一种用于构建多种应用的免费开源开放平台,例如: Web 应用、Web API 和微服务 云中的无服务器函数 云原生应用 移动…...
GraphQL在.NET 8中的全面实践指南
一、GraphQL与.NET 8概述 GraphQL是一种由Facebook开发的API查询语言,它提供了一种更高效、更灵活的替代REST的方案。与REST不同,GraphQL允许客户端精确指定需要的数据结构和字段,避免了"过度获取"或"不足获取"的问题。…...
开源音视频转文字工具:基于 Vosk 和 Whisper 的多语言语音识别项目
背景介绍 随着短视频、播客等音视频内容的爆发式增长,快速将音视频内容转换为文字的需求也越来越大。无论是内容创作者需要的字幕,还是企业需要的会议记录,都需要一个可靠的语音转文字解决方案。 技术架构 本项目采用双引擎架构࿰…...
Playwright 多语言一体化——Python_Java_.NET 全栈采集实战
在现代 Web 自动化领域,Playwright 通过其多语言支持可在 Python、Java 及 .NET 三大生态中共享同一底层实现,简化了跨团队协作与维护成本 。然而,若忽略代理IP等必要配置,很容易导致功能异常或被目标网站限制,本文将以…...
【Linux网络】传输层协议UDP
🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12891150.html 目录 传输层 再谈端口号 端口号范围划分 认识知名端口号(Well-Know Port Number…...
VAPO:视觉-语言对齐预训练(对象级语义)详解
简介 多模态预训练模型(Vision-Language Pre-training, VLP)近年来取得了飞跃发展。在视觉-语言模型中,模型需要同时理解图像和文本,这要求模型学习二者之间的语义对应关系。早期方法如 VisualBERT、LXMERT 等往往使用预先提取的图像区域特征和文本词嵌入拼接输入,通过 T…...
自制操作系统day4(c指针)(指针和数组)(CLI和STI)(EFLAGS)
day4 关于c指针的理解(结合汇编) int i; char *p; p(char *) i; *pi &0x0f;p(char *) i; *pi &0x0f;MOV ECX,i MOV BYTE [ECX],(i &0x0f) 如果一开始不给p赋值,p的内存地址不确定,也就是这个ECX里的值不确定&#x…...
计算机视觉与深度学习 | Python实现ARIMA-WOA-CNN-LSTM时间序列预测(完整源码和数据
以下是一个结合ARIMA、鲸鱼优化算法(WOA)、CNN和LSTM进行时间序列预测的Python实现框架。由于完整代码和数据量较大,此处提供核心代码结构和示例数据集,您可根据需求扩展。 1. 数据准备(示例数据) 使用airline-passengers.csv(航空乘客数据集): import pandas as pd…...
SCGI 服务器详解
1 协议与报文格式 项目说明连接类型长连接,单条 TCP/UnixSocket 可传多请求;由前端(Nginx 等)维护 keep-alive。报文分段"<len>:" <header netstring> "," <body><len> 计数10 进…...
Linux问题排查-找到偷偷写文件的进程
在 Linux 系统中,若要通过已修改的文件找到修改该文件的进程 PID,可以结合以下方法分析,具体取决于文件是否仍被进程打开或已被删除但句柄仍存在: 一、文件仍被进程打开(未删除) 如果文件当前正在被某个进…...
Linux的权限问题
引入:权限的意义是什么? 权限就是为了让人能做某些事或不能做某些事 一:Linux下的用户种类 Linux下只有两种用户:root 和 普通用户 root:拥有至高无上的权限,任何的权限都不能限制root 普通用户…...
WPF技巧-BindingProxy
WPF技巧-BindingProxy 文章目录 WPF技巧-BindingProxy🔍 分析与解释1. **继承 Freezable**2. **重写 CreateInstanceCore 方法**3. **定义 DependencyProperty:Data** ✅ 使用场景场景说明:解决方案:示例 XAML: &#…...
深度解析:Redis 性能优化全方位指南
Redis 作为当前最流行的内存数据库之一,以其高性能、低延迟和丰富的数据结构支持,被广泛应用于缓存、消息队列、实时统计等场景。然而,随着业务规模的增长,Redis 可能面临性能瓶颈,如高延迟、内存不足、吞吐量下降等问…...
OpenHarmony外设驱动使用 (五),Fingerprint_auth
OpenHarmony外设驱动使用 (五) Fingerprint_auth 概述 功能简介 指纹认证是端侧设备不可或缺的功能,为设备提供用户认证能力,可应用于设备解锁、支付、应用登录等身份认证场景。用户注册指纹后,指纹认证模块就可为设…...
.NET外挂系列:2. 了解强大的 harmony 注解特性
一:背景 1. 讲故事 上一篇我们简单的聊了下harmony外挂的基本玩法,让大家宏观上感受到了外挂在 .NET高级调试 领域的威力,这一篇我们从 注解特性 这个角度继续展开。 二:harmony 注解特性 1. HarmonyPatch 解读 在harmony支持…...
【Arm】应用ArmDS移植最小FreeRTOS系统
一、文档背景 FreeRTOS(Free Real-Time Operating System)是一个开源的实时操作系统内核,广泛应用于嵌入式系统。它具有小巧、灵活、低功耗等特点,支持多任务调度、信号量、队列等实时操作系统基本功能。 将FreeRTOS移植到特定硬…...
Python----目标检测(labelimg和labelme的安装与使用,Pycharm配置教程)
一、labelimg labelimg是一款开源的图像标注工具,标签可用于分类和目标检测,它是用python写的,并使用Qt作为其图形界面,简单好用(虽然是英文版的)。其注释以 PASCAL VOC格式保存为XML文件,这是I…...
Axure跨页面交互:利用IFrame和JS实现父子页面菜单联动
在 Axure 中使用内联框架(IFrame)进行父子页面间的通信是一个非常有效的技巧,尤其是在需要实现复杂交互逻辑时。通过 JavaScript 直接操作 DOM 元素,可以突破 Axure 基础元件的限制,实现更灵活的页面联动。以下是对你描…...
百度飞桨OCR(PP-OCRv4_server_det|PP-OCRv4_server_rec_doc)文本识别-Java项目实践
什么是OCR? OCR(Optical Character Recognition,光学字符识别)是一种通过技术手段将图像或扫描件中的文字内容转换为可编辑、可搜索的文本格式(如TXT、Word、PDF等)的技术。它广泛应用于文档数字化、信息提取、自动化…...
救生衣穿戴检测数据集VOC+YOLO格式2171张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2171 标注数量(xml文件个数):2171 标注数量(txt文件个数):2171 …...
JAVA请求vllm的api服务报错Unsupported upgrade request、 Invalid HTTP request received.
环境: vllm 0.8.5 java 17 Qwen3-32B-FP8 问题描述: JAVA请求vllm的api服务报错Unsupported upgrade request、 Invalid HTTP request received. WARNING: Unsupported upgrade request. INFO: - "POST /v1/chat/completions HTTP/1.1&…...
信号量基础入门:并发控制的核心概念
问题的复杂性产生的根本原因在于,如 2.2 节所述,共享变量的访问始终是“单向信息流”。也就是说,一个进程可以分配新值或检查当前值,但这种检查不会为其他进程留下任何痕迹。结果是,当一个进程想要对共享变量的当前值作…...
物联网之使用Vertx实现HTTP/WebSocket最佳实践
小伙伴们,你们好呀,我是老寇,跟我一起学习使用Vertx实现HTTP-Server和WebSocket-Server 实现Http/WebSocket【响应式】 Vertx-Web地址 实现过程 查看源码 代码比较简单,懒得讲解啦 代码比较简单,懒得讲解啦 代码…...
【神经网络与深度学习】GAN 生成对抗训练模型在实际训练中很容易判别器收敛,生成器发散
引言部分 在深度学习领域,生成对抗网络(GAN)是一种强大的数据生成方法,它通过生成器(G)和判别器(D)之间的博弈来不断优化模型。然而,在实际训练过程中,GAN 往…...
使用 NGINX 的 `ngx_http_secure_link_module` 模块保护资源链接
一、模块简介 版本:自 NGINX 0.7.18 起引入 功能: 签名校验:对请求 URI 中的签名进行校验,保证链接未经篡改。时效控制:根据请求中携带的过期时间,判断链接是否仍在有效期。 启用方式:编译 NG…...
5月19日day30打卡
模块和库的导入 知识点回顾: 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致) 作业:自己新建几个不同路径文件尝试下如何导入 一、导入官方库 …...
NW860NW894美光闪存颗粒NX770NX789
在数字化浪潮席卷全球的当下,数据存储技术的革新正以惊人的速度推动着硬件性能的边界。美光科技作为半导体存储领域的领军者,其NW860、NW894、NX770、NX789系列闪存颗粒凭借前沿架构与精密工艺,成为高性能存储解决方案的核心载体。本文将深入…...