s = std(z); /* arithmetic std dev of log(X) */ GM2 = exp(m); /* same answer as GEOMEAN function */ GSD = exp(s); /* geometric std dev */ GCV = sqrt(exp(s**2) - 1); /* geometric CV */ print GM2 GSD GCV; quit ; Output: GM 5.476 GM2 GSD GCV 5.476 1.648 0.301 你可以看到,用两种方法计算的几何平均数是一样的,而且我们还得到了几何标准差和几何变异系数
GSD文件为开放式配置工具提供了一种自动获取设备特性的方式。 GSD是可读的ASCII文本文件,它包含用于通信的通用的和设备专用的规范。 GSD结构 GSD的结构 GSD分成三部分: 通用规范(General specifications) 此部分包含有关制造商的信息,设备名称,硬件和软件版本,所支持的传输速率,用于监控时间的可能的时间间隔 有两种方法使用GSD: 1.紧凑型设备的GSD ,在设备交付时已经知道了它的模块配置。此GSD可以完全由设备制造商创建。 2.模块化设备的GSD,在设备交付时它的模块配置还未最后指定。 一般设备的供应商都会提供GSD文件: 当然一些开放的机构也会收集整理部分GSD文件: 来源:http://www.gsd-db.org/ GSD文件具有标准文件格式,该格式在PROFIBUS指南中进行了描述 PNO开发了一个GSD编辑器,以协助制造商为PROFIBUS DP从设备设置GSD文件。编辑器包括根据GSD规范的语法和语义检查。
、首先我们先了解一下GSD文件的作用:GSD文件,它的全称是“GeneralStationDescription”,中文翻译为“通用站描述文件”。 GSD文件的主要作用是对PROFINET或PROFIBUS设备的资源进行描述,以便组态工具能够正确对其进行解析。PROFIBUS总线的GSD文件和PROFINET实时以太网的GSD文件描述方式不同。 PROFINET的GSD文件采用XML语言描述,后缀名为xml。 文件的发布日期请注意不要随意修改GSD文件名称,增加或删除一些文字都可能会导致在组态工具中导入GSD文件报错。 如果无法升级组态工具,在网关配置中提供了一个“使用传统模式”选项,勾选后就可以使用上一代网关的GSD文件,多为V2.3版本,基本上组态工具都可以顺利导入该版本GSD文件。
说明:本文内容基于 GSD 新旧两个仓库(gsd-build/get-shit-done、open-gsd/get-shit-done-redux)的源码、README.md 和架构文档分析整理而成,数据来自笔者本地仓库版本的源码统计 GSD 做对了什么先说结论:GSD 踩中的不是某个技术风口,而是一个几乎所有 AI 编码用户都会遇到的痛点。 Redux 版引入了 6 个命名空间路由器(gsd-workflow、gsd-project、gsd-quality、gsd-context、gsd-manage、gsd-ideate),每个命名空间内部有自己的路由表 适合用 GSD 的场景中型以上项目,多文件协同开发。GSD 的核心优势是上下文隔离和并行执行。如果你的项目只有三五个文件,直接用 AI 编码助手的原生对话就够了,GSD 的编排开销反而是负担。 相关资源GSD 旧版仓库:https://github.com/gsd-build/get-shit-doneGSD Redux 版仓库:https://github.com/open-gsd/get-shit-done-reduxGSD
处于offline [grid@linux2 ~]$ crs_stat -t | grep OFFLINE ora.gsd ora.gsd.type OFFLINE OFFLINE ora.linux1.gsd application OFFLINE OFFLINE ora.linux2.gsd application one GSD process per node. GSD与rac的管理工具dbca srvctl oem进行交互,用来完成实例的启动关闭等管理任务。 为了保证这些管理工具运行正常必须在所有的节点上先启动 gsd。 一个GSD进程支持在一个节点的多个rac.gsd进程,位于$ORACLE_HOME/bin目录下。 其log文件为$oracle_home /srvm/log/gsdaemon.log。
这就是 GSD 诞生的初衷。 项目简介 GSD 本质上是一个轻量级但功能强大的元提示、上下文工程和规范驱动开发系统。 快速模式 /gsd:quick 对于不需要完整规划的临时任务,GSD 提供了快速模式: /gsd:quick > What do you want to do? 完整工作流 GSD 的工作流设计得非常清晰,分为 6 个核心步骤: 第一步:初始化项目 /gsd:new-project 一个命令,一个流程。 第六步:重复 → 交付 → 完成 → 下一个里程碑 /gsd:discuss-phase 2 /gsd:plan-phase 2 /gsd:execute-phase 2 /gsd:verify-work /gsd:complete-milestone /gsd:new-milestone 或者让 GSD 自动找出下一步: /gsd:next # 自动检测并运行下一步
1.2 CLI 工具层GSD 的底层是 gsd-tools.cjs,包含 19 个领域模块,覆盖了从文件操作到安全校验的各种工具函数。 GSD 工作流全貌2.1 六步循环GSD 把一个完整项目的开发周期拆成六个阶段,形成闭环:/gsd-new-project → 初始化(提问 → 调研 → 需求 → 路线图)/gsd-discuss-phase N → 讨论(捕获实现偏好)/gsd-plan-phase N → 规划(调研 → 计划 → 验证)/gsd-execute-phase N → 执行(并行波次,原子提交)/gsd-verify-work 多 Agent 编排架构这是 GSD 区别于其他 AI 编程工具的核心设计。3.1 Orchestrator → Agent 模式GSD 把协调和执行彻底分开。 通过 /gsd-set-profile inherit 可以让 GSD 直接使用当前运行时的模型选择,不强制指定 Opus/Sonnet/Haiku。
导入/导出 这里是我们对于软件的管理接口,通过这可以导入GSD文件、长文本、配置等 这里我详细说一下GSD的导入,因为很多朋友都会涉及到这个操作。 什么时候需要导入GSD? 当我们需要在机器人的总线系统中挂载从站设备时,必须将从站设备的GSD导入到WrokVisual中 什么是GSD? 去哪获得? GSD实际上是个不完全的称呼,或者说是个不算标准的称呼,准确的来说应该叫设备说明文件。 GSD只是其中一种(ProfiBUS)文件名是xxx.gsd,在ProfiBUS盛行的时代这个文件是网络配置的必需品,长期以来大家就习惯了把设备说明文件叫做GSD文件了。 GSD文件在设备的官网都会有下载的,例如beckhoff的EK1100 Configuration files | 倍福 中国 (beckhoff.com.cn) 下载后你会得到一个压缩包,这里面是一系列模块的说明文件
后期添加安全机制往往成本更高:可能需要重构已有代码某些设计决策不可逆落地实践:以GSD为例理论有了,如何落地?以GSD(GetShitDone)为例,看看规范驱动开发如何付诸实践。 (命令行执行一次)npxget-shit-done-cc@latest安装后,在ClaudeCode对话框中输入:展开代码语言:TXTAI代码解释/gsd-new-project#提问→研究→需求→路线图 /gsd-discuss-phase1#收集实现决策/gsd-plan-phase1#研究+规划+验证/gsd-execute-phase1#并行执行计划/gsd-verify-work1#用户验收测试 /gsd-ship1#创建PR注意:/gsd-*是斜杠命令,在ClaudeCode等AI编程工具的对话框中执行,不是命令行。 GSD支持ClaudeCode、GeminiCLI、Cursor、Copilot、Windsurf等12个运行时。
使用 STEP 7,可以通过将已组态的智能设备导出到 GSD 文件,为其它项目或工程组态系统组态一个智能设备。像处理其它 GSD 文件一样,将此 GSD 文件导入其它项目或工程组态系统中。 其中,用于数据交换的传送区存储在此 GSD 文件中。 组态项目中的智能设备 将一个 PROFINET IO 控制器从硬件目录拖放到网络视图中。 通过 GSD 文件组态智能设备 如果在其它项目或其它工程组态系统中使用智能设备,请按上述步骤组态上位 IO 控制器和智能设备。之后,需将该智能设备导出为 GSD 文件。 在其它项目中,所生成的 GSD 文件代表已组态的智能设备。 为此,需遵循“导出 GSD 文件”中的说明。 而必须导出 GSD 文件。使用该 GSD 文件可在其它项目中设置所有的 PROFIsafe 参数,并通过 PROFIsafe 功能对 IO 控制器上的智能设备进行操作。
2125 0.0 1.2 745352 51832 tty1 Sl+ 12:07 0:00 /usr/libexec/gsd-powergdm 2109 0.0 1.2 809320 51508 tty1 Sl+ 12:07 0:03 /usr/libexec/gsd-colorgdm 2094 0.0 1.2 646964 51092 tty1 Sl+ 12:07 0:00 /usr/libexec/gsd-xsettingsgdm 2146 0.0 1.2 581116 50628 tty1 Sl+ 12:07 0:00 /usr/libexec/gsd-wacomgdm 2115 0.0 1.2 645832 50520 tty1 Sl+ 12: 07 0:00 /usr/libexec/gsd-keyboardgdm 2103 0.0 1.2 496092 50064 tty1 Sl+ 12:07 0:00
首先,开展新的项目文件构建工作,并将对应的GSD文件予以导入。需把MODBUS转PROFINET网关的GSD文件复制后置于任意选定位置。之后,开启博图软件,开展新项目的创建工作。 进入设备与网络界面,选中“管理通用站描述文件”这一选项,进而开展GSD文件的安装工作。 开展对GSD文件存放文件夹的搜索工作,待搜索到GSD文件后,选择执行安装操作,随后等待安装完成。 GSD文件安装完成后,开启硬件目录,把已安装的GSD文件添加至组态里。此时,网关与PLC尚未连接,处于未分配状态。
仿真软件支持两种不同的从站组态配置方式,一种是和标准PLC主站一样通过导入从站的GSD方式进行组态;另外一种则更为简单方便,不需要导入从站GSD文件,可以自动扫描模块使用的默认IO输入输出配置,快速连接测试点击上图标识 仿真软件能够自动上传模块的厂商标识和IO输入输出配置,并建立起IO周期性通讯下图1处标识出了设备的厂商ID,如果是标准的PROFIBUS设备且通过PI的一致性测试认证,那么此厂商ID是全球唯一的,可以通过该厂商ID匹配对应的GSD 文件,这个功能能够有效帮助系统调试人员进行GSD文件的验证匹配下图2处标识出了设备默认使用的IO输出输出模块的组态数量和顺序,如果系统调试人员不知道如何在PLC中组态模块的IO,可以查看此处进行比对GSD 处显示了从站设备传递给主站的输入输出数据的实时值,测试人员可以在这里查看设备的输入数据是否正确,并进行打点输出测试复杂的从站设备如果仅使用默认的IO数据配置是不能正常工作的,这种情况下就需要获取到从站的GSD 描述文件,并使用主站仿真软件的GSD启动方式进行测试首先,需要导入从站的GSD文件,并按照设备的具体要求进行IO数据的槽位配置其次,如果从站需要进行站参数或者模块参数的配置,还需选择设备或者相应的模块进行参数配置可选的
3463271 /home/hc gsd-print 2871 hc cwd DIR 253,0 4096 3463271 /home/hc gsd-rfkil 2874 hc /home/hc gsd-smart 2880 hc cwd DIR 253,0 4096 3463271 /home/hc gsd-wacom 2881 hc cwd 4096 3463271 /home/hc gsd-a11y- 2912 hc cwd DIR 253,0 4096 3463271 /home/hc gsd-a11y- 3463271 /home/hc gsd-color 2916 hc cwd DIR 253,0 4096 3463271 /home/hc gsd-datet 2921 hc /home/hc gsd-keybo 2924 hc cwd DIR 253,0 4096 3463271 /home/hc gsd-media 2927 hc cwd
目前市场上的工具可以归为六类: 类型 代表 核心回答 流程编排型 GitHub Spec Kit、GSD、Ralph Loop 如何走通 Spec→Code 的流程? GSD(Get Shit Done) 3 阶段漏斗,~700 token。把复杂度藏在系统里。适合 Solo 快速迭代。 Ralph Loop 每次启新 Agent + git 记忆层。 维度 1:产出形态 类型 产出 消费者 代表 流程规范 流程定义、阶段划分 开发者按流程执行 Spec Kit、GSD、Ralph Loop 内容模板 文档模板、写作指南 开发者写文档、AI 读文档 PRD 和 Kiro 几乎在所有维度上都相反——GSD 轻到极致(Prompt 嵌入 / 信任模型),Kiro 重到极致(独立平台 / 信任检查)。 流程的重量 工具 设计哲学 优点 代价 Spec Kit 标准化流程确保质量 团队产出一致 小变更摩擦大 GSD 极致精简 上手零成本 依赖个人能力 BMAD AI 模拟团队分工 审计证据完整 贵、慢、
1.核心数学原理1.1地面分辨率与航高关系H=aGSD×fH:相对航高(m)GSD:地面采样距离(m/像素)f:相机焦距(mm)a:像元尺寸(mm)1.2基线与重叠度关系航向基线长度:Bx=W×(1 ,定位精度±1cmPOS精度直接影响空三精度与控制点数量云台两轴增稳,精度±0.1°三轴增稳,精度±0.01°云台精度避免影像旋偏角过大2.2系统性能指标指标工业级高精度级作业效率0.5km²/架次(GSD =5cm)5km²/架次(GSD=5cm)最大作业高度500m1000m平面精度±15cm±5cm高程精度±20cm±8cm影像旋偏角≤10°≤5°3.工程化作业流水线3.1航飞规划重叠度:城市建成区航向 ≥85%,旁向≥75%;一般地形航向≥80%,旁向≥70%飞行速度:≤15m/s(GSD=5cm),≤10m/s(GSD=2cm)航高误差:≤±5m航线间距:根据旁向重叠度计算,误差≤±1m3.2外业采集控制点布设 ,高程中误差≤3×GSD模型精度:平面中误差≤3×GSD,高程中误差≤4×GSD检查点合格率:≥95%(误差≤3倍中误差)4.2误差控制误差来源量级控制方法POS漂移0.5-5m使用RTK固定解数据;增加地面控制点密度控制点误差
4.下载完成后,点击“Generate GSDML File”生成 GSD 文件,导入到其他设备中组态。先点击下载工程,再生成 GSD 文件。 5. 7.加了设备后,要添加 Input Module,Output Module 其他说明 1.如果工程配置有修改,修改完成后需要重新下载工程,并成成 GSD 文件。 2.如果博图添加过 GSD,需要先删除旧 GSD,重新导入 GSD,重新添加设备。 3.西门子 plc 下面挂多个网关,则每个网关的设备名称不能相同。
其中,通过下载更新GSD的方式,无论两个CPU是不是在同一项目中的组态方法是一样的。这与PN/PN耦合器V3.0版本以前的组态方式是一致的。 要组态PN/PN Coupler,需要使用以下组件: STEP 7 TIA Portal V15 或更高版本 PN/PN Coupler 的 GSD 文件。 GSD 文件可通过 Internet (https://support.industry.siemens.com/cs/ww/zh/view/23742537) 进行下载。 组态实例: 1.安装GSD文件: 打开博途项目,依次打开“选项--管理通用站描述文件(GSD)”; 图05.打开GSD管理 源路径中选择本地下载的GSD文件所在的文件夹,选择需要安装的GSD文件,点击 文件: 图25.导出GSD01 图26.导出GSD02 在CPU2侧安装X2的GSD文件,方式如上文所示。
图10 步骤3 生成GSD文件 点击软件生成的 GSDML 文件,自动保存到当前路径的子文件 bluedatabase 里面, 这个文件是西门子软件需要的。 步骤4 导入GSD文件到博途里面 打开博途软件的 选项-> 管理通用站描述符文件(GSDML) 菜单,找到刚才生成的GSD文件,点击确定。 图11 图12 也可以将GSD文件直接放在 “工程目录\AdditionalFiles\GSD”下,这样项目启动时候,可以自动加载GSD文件。 但唯一不足,就是模块越用越多,GSD文件也的越来越多,文件还比较难找。几年下来,需要在一堆设备中,找到刚导入的设备。也不太容易。 图17
如1500 CPU V1.1 及以上版本或 1200 CPU V4.1 及以上版本 ● 组态为智能设备的 CPU 可用作共享设备,需要在 STEP 7 中导出 GSD 文件,再将该 GSD 文件导入其它项目中并指定 可访问控制器数量 2.3、还是图7界面路径,点击智能设备通信,新建4个传输区,设置传输区地址及长度,编译通过后导出GSD文件存储后以供后续使用,如下图9所示。 图9. 智能设备通信 3、添加智能设备 3.1、点击菜单栏“选项”下的“管理通用站描述文件(GSD)”,安装步骤2.3导出的GSD文件,如下图10所示。 图10.安装GSD文件 3.2、在硬件目录下查找刚刚安装的GSD文件,“其它现场设备>PROFINET IO>PLCs&CPs>SIEMENS AG>PLC_I-Device",将其拖拽至网络视图并未智能设备分配 只有在智能设备操作模式中选择“PN接口的参数由上位IO控制器进行分配”后导出的GSD文件中的实时设定选项中才能进行同步设置。 2、智能设备最多可由多少IO控制器访问?