SEW减速机参数查询 2-2 实践

ops/2024/11/14 13:35:20/

首先说说结论:在不和SEW官方取得沟通之前,你几乎无法直接通过查阅SEW官方文档得到相关减速机的所有技术参数:比如轴的模数和齿数,轴承的参数。我在周一耗费了一个上午,最终和SEW方面确认后才知晓相关技术参数需要凭借销售合同查询。不过,也把我做的搜集和尝试列在后面。

前面的参数查询里,漏掉了一种减速机,就是行星齿轮减速机。这个产品的故障频点需要另行分析。

1.一个失败的尝试 

案例一 Gear reducer 32.38:1 ST77DT100L4-KS 二手价 290刀
这个减速机是在bing.com上搜索"SEW gearbox ratio 35.5 tag",随机找到一个铭牌:
 

注意sn = 890036862.08.07.001

1.1 SEW资料库的资料全集:

首先在SEW资料库里找到,因为有序列号。

https://www.sew-eurodrive.cn/os/dud/?tab=productdata&country=CN&language=zh_cn1

1.1.1 产品参数:

从产品参数页面可以知道:

  • 变速比32.38
  • 460V/60Hz的电压是美标电机
Catalog designationST77DT100L4-KS
Product data 
Serial number                       890036862.08.07.001
Gear ratio                          32.38
Output speed                        52
Mounting position                   M4B
Shaft diameter                      NP-NS
Terminal box position               0
Cable entry at terminal box         X
Output torque (lb-in)               5375
Service factor                      1.7
Motor power                         5
Motor voltage                       230YY/460Y
Frequency                           60
Wiring diagram                      DT79
Rated current                       13.6/6.8
KVA Code                            G
Thermal class                       F
Other                               CB@0, CE X, Bore Size=1 5/8  
Weight on request

2.原始资料搜集和故障频点计算.py程序(片段)

频点计算部分可以自动进行。我现在的做法是使用.json搜集相关信息,然后使用python自动计算,请参见附录A,附录B.

最终我们需要计算出相关的故障频点有多少,分别隶属于哪根轴,哪个齿轮,那个轴承。在故障发生后,还需要反向查询这个故障频点表,来搜索出可能出问题的故障源。这个过程,无需人工参与,是可以自动计算的。

附录A 机械设备相关振动配置信息搜集(.json)

仅仅是一个示例

{"author": "fengxh","desc": "产品的一级参数录入,注意不要混入任何可以自动计算的结果","json_format": "1.0","created": "Apr16,2024","last_modify": "Apr16,2024","CAD_file": "xxxxx.pdf","unit": {"engine": {"type": "xxxx","manualfacture": "xxxx","PinKw": 30,"type_rpm": 730},"gearbox": {"type": "xxxxx","ratio": 75.577,"shaft_in": {"desc": "变速箱输入轴","memo": "输入轴 - 一个外齿轮,一个输入大齿轮,一个输出小齿轮,2个轴承","gear": [{"type": -1,"memo": "外齿轮","module": -1,"tooth": -1},{"type": -1,"memo": "输入大齿轮","module": -1,"tooth": -1},{"type": -1,"memo": "输出小齿轮","module": -1,"tooth": -1}],"bearing": [{"type": -1,"memo": "动力端轴承","outer_edge_D_in_mm": -1,"inter_edge_D_in_mm": -1,"ball_D_in_mm": -1,"ball_cnts": -1},{"type": -1,"memo": "随动轴承","outer_edge_D_in_mm": -1,"inter_edge_D_in_mm": -1,"ball_D_in_mm": -1,"ball_cnts": -1}]},"shaft_inter": [{"sn": 1,"desc": "变速箱二级输入轴","memo": "中间轴 - 一个输入大齿轮,一个输出小齿轮,2个轴承","gear": [{"type": -1,"memo": "输入大齿轮","module": -1,"tooth": -1},{"type": -1,"memo": "输出小齿轮","module": -1,"tooth": -1}],"bearing": [{"type": -1,"memo": "动力端轴承","outer_edge_D_in_mm": -1,"inter_edge_D_in_mm": -1,"ball_D_in_mm": -1,"ball_cnts": -1},{"type": -1,"memo": "随动轴承","outer_edge_D_in_mm": -1,"inter_edge_D_in_mm": -1,"ball_D_in_mm": -1,"ball_cnts": -1}]},{"sn": 2,"desc": "变速箱三级输入轴","memo": "中间轴 - 一个输入大齿轮,一个输出小齿轮,2个轴承","gear": [{"type": -1,"memo": "输入大齿轮","module": -1,"tooth": -1},{"type": -1,"memo": "输出小齿轮","module": -1,"tooth": -1}],"bearing": [{"type": -1,"memo": "动力端轴承","outer_edge_D_in_mm": -1,"inter_edge_D_in_mm": -1,"ball_D_in_mm": -1,"ball_cnts": -1},{"type": -1,"memo": "随动轴承","outer_edge_D_in_mm": -1,"inter_edge_D_in_mm": -1,"ball_D_in_mm": -1,"ball_cnts": -1}]}],"shaft_out": {"desc": "变速箱输出轴","memo": "输出轴 - 一个输入齿轮,2个轴承","gear": [{"type": -1,"memo": "输入大齿轮","module": -1,"tooth": -1}],"bearing": [{"type": -1,"memo": "动力端轴承","outer_edge_D_in_mm": -1,"inter_edge_D_in_mm": -1,"ball_D_in_mm": -1,"ball_cnts": -1},{"type": -1,"memo": "随动轴承","outer_edge_D_in_mm": -1,"inter_edge_D_in_mm": -1,"ball_D_in_mm": -1,"ball_cnts": -1}]}},"final_output": {"name": "齿轮齿条摇架","gear": [{"type": -1,"memo": "输入外齿轮","module": 20,"module_scale": "mm","tooth": 16},{"type": -1,"memo": "齿条","module": 20,"module_scale": "mm","length": 4631}]},"smooth_oil": {"desc": "润滑液","std_tempeature": -1,"deadline_tempeature": -1}}
}

附录B 故障频点自动解析程序(.py)

并不完整,仅显示部分逻辑。可以逆推处理的方法。

''''
''''class GpGearDesc:def __init__(self, module, tooth, ratioOfShaft):self.module = moduleself.tooth = toothself.ratioOfShaft = ratioOfShaftself.ratioOfGear = ratioOfShaft*toothdef __hash__(self):# 返回一个哈希值,通常可以使用内置类型的哈希值,比如元组return hash((self.module, self.tooth))def __eq__(self, other):# 定义相等性判断逻辑return isinstance(other, GpGearDesc) and (self.module == other.module) and (self.tooth == other.tooth)def __str__(self):return str("gear.errFreq:%8.3f, with(shaftRatio=%8.3f, module=%8.3f, tooth=%8.3f" (self.ratioOfGear, self.ratioOfShaft, self.module, self.tooth))def __repr__(self):return f"GpGearDesc('moudle = {self.module}', tooth = {self.tooth})"''''
''''
def getVibrationSensorList_v1(filename):# 读取JSON文件sensor_data={}with open(filename, 'r', encoding='utf-8') as file:sensor_data = json.load(file)# 初始化温振型传感器数量total_temperature_vibration_sensors = 0# 遍历每个单元sensor_location = []for unit in sensor_data["sensors"]:# 获取当前单元的温振型传感器数量unit_temperature_vibration_sensors = sum(unit["sensors"]["温振型"].values())locations =  unit["sensors"]["温振型"].keys();cntOfLocation =  unit["sensors"]["温振型"].values();for loc in unit["sensors"]["温振型"]:for j in np.arange(unit["sensors"]["温振型"][loc]):sensor_location.append(unit["unit"] + "\\" + loc + "\\" + str("%02d" %j))# 将当前单元的数量添加到总数中total_temperature_vibration_sensors += unit_temperature_vibration_sensors# 打印总数print("总温振型传感器数量:", total_temperature_vibration_sensors)     print(sensor_location)return sensor_locationdef doGearsOfShaft(gearsArray, shaftRpm, shaftName, arGear, last_gear_tooth):gearIdx = 1for gear in gearsArray:gearName = str(shaftName+"\\gear\\%d" %gearIdx)gearRpmRatio = shaftRpm;gearTooth = gear["tooth"]gearModule = gear["module"]arGear |= {gearName: GpGearDesc(gearModule, gearTooth, gearRpmRatio)}gearIdx=gearIdx+1last_gear_tooth = gearToothreturn last_gear_toothdef doBearingsOfShaft(bearingArray, shaftRpm, shaftName, arBearing):bearingIdx = 1for bearing in bearingArray:bearingName = str(shaftName +"bearing\\%d" %bearingIdx)outer_edge_D_in_mm = bearing["outer_edge_D_in_mm"]inner_edge_D_in_mm = bearing["inter_edge_D_in_mm"]ball_D_in_mm = bearing["ball_D_in_mm"]ball_cnts = bearing["ball_cnts"]arBearing |= {"bearingName": GpBearingDesc(outer_edge_D_in_mm*1e-3, inner_edge_D_in_mm*1e-3, ball_D_in_mm*1e-3, ball_cnts, shaftRpm)}bearingIdx += 1def getVibrationUnitsOf(arJsonFiles):ret=[]# 遍历每个单元arShaft = {}arGear = {}arBearing = {}for filename in arJsonFiles:# 读取JSON文件sensor_data={}with open(filename, 'r', encoding='utf-8') as file:sensor_data = json.load(file)# 初始化温振型传感器数量total_vibration_units = 0last_gear_tooth = -1for unit in sensor_data["unit"]:if "gearbox" == unit:shaftRpm = 1.0;if("shaft_in" in sensor_data["unit"]["gearbox"].keys()):si = sensor_data["unit"]["gearbox"]["shaft_in"]shaftName = filename + "\\gearbox\\shaft_in";shaftRpm = shaftRpm*si["gear"][0]["tooth"]/si["gear"][1]["tooth"]arShaft |= {shaftName:shaftRpm}last_gear_tooth = doGearsOfShaft(si["gear"], shaftRpm, shaftName, arGear, last_gear_tooth)doBearingsOfShaft(si["bearing"], shaftRpm, shaftName, arBearing)if("shaft_inter"):rpmUpdated = False;for si in sensor_data["unit"]["gearbox"]["shaft_inter"]:if not (rpmUpdated):shaftRpm = shaftRpm*si["gear"][0]["tooth"]/last_gear_toothrpmUpdated = TrueshaftName = filename + "\\gearbox\\shaft_inter";arShaft |= {shaftName:shaftRpm}last_gear_tooth = doGearsOfShaft(si["gear"], shaftRpm, shaftName, arGear, last_gear_tooth)doBearingsOfShaft(si["bearing"], shaftRpm, shaftName, arBearing)if("shaft_out" in sensor_data["unit"]["gearbox"].keys()):si = sensor_data["unit"]["gearbox"]["shaft_out"]shaftRpm = shaftRpm*si["gear"][0]["tooth"]/last_gear_toothshaftName = filename + "\\gearbox\\shaft_out";arShaft |= {shaftName: shaftRpm}last_gear_tooth = doGearsOfShaft(si["gear"], shaftRpm, shaftName, arGear, last_gear_tooth)doBearingsOfShaft(si["bearing"], shaftRpm, shaftName, arBearing)# 打印总数#return (arShaft, arGear, arBearing)


http://www.ppmy.cn/ops/9622.html

相关文章

针对窗口数量多导致窗口大小显示受限制的问题,使用滚动条控制窗口

建议:首先观察结果展示,判断是否可以满足你的需求。 目录 1. 问题分析 2. 解决方案 2.1 界面设计 2.2 生成代码 2.3 源码实现 3. 结果展示 1. 问题分析 项目需要显示的窗口数量颇多,主界面中,如果一次性显示全部窗口&#x…

rst文件是什么?如何阅读rst文件

左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。 公众号:一点sir,关注领取编程资料 如果有阅读过Python源码的同学一定知道,Python社区的相关的帮助文件是用rst结尾的文档格式…

kafka 的零拷贝原理

在实际应用中,如果我们需要把磁盘中的某个文件内容发送到远程服务器上,那么它必须经过几个拷贝的过程。 从磁盘中读取目标文件内容拷贝到内核缓冲区CPU 控制器再把内核缓冲区的数据赋值到用户空间的缓冲区中接着在应用程序中,调用 write(&am…

文心一言与GPT-4全面对比——人工智能语言模型的新纪元

随着人工智能领域的快速发展,各种高级语言模型相继问世,它们在文本生成、自然语言理解、对话系统等多个方面展示了惊人的能力。其中,最为瞩目的便是OpenAI发布的GPT-4和国内百度的文心一言。这两个模型都被设计用来处理复杂的语言理解和生成任…

Stable Diffusion模型介绍

在深度学习和人工智能领域,Stable Diffusion模型作为一项前沿技术,已经引起了广泛的关注。本文将深入探讨Stable Diffusion模型的种类、特点以及它们在不同场景下的应用。 1. CheckPoint模型 Checkpoint模型是Stable Diffusion系列中的主模型&#xff…

【C++ STL序列容器】array 数组

文章目录 【 1. 基本原理 】【 2. array 的创建 】2.1 不赋初值2.2 赋默认值2.3 赋指定值 【 3. array 的成员函数 】实例 【 1. 基本原理 】 array 是在 C 普通数组的基础上添加了一些成员函数和全局函数。在使用上,它 比普通数组更 安全,且效率并没…

r-tree 总结

R树是一种用于空间搜索的空间索引结构。它们特别适用于索引多维数据,尤其是在地理信息系统(GIS)和空间数据库中。R树(R-tree)是一种用于高维空间索引的数据结构,经常用于数据库和地理信息系统(GIS)中。下面是R树的总结: 基本概念:R树将空间对象组织成一个包含多个边界…

RTT设备驱动框架学习(CAN设备)

RTT设备框架属于组件和服务层,是基于RTT内核之上的上层软件。 设备框架是针对某一类外设,抽象出来的一套统一的操作方法及接入标准,可以屏蔽硬件差异,为应用层提供统一的操作方法。 RTT设备框架分为三层:设备驱动层、…