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

2024-04-17 13:44

本文主要是介绍SEW减速机参数查询 2-2 实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先说说结论:在不和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)

这篇关于SEW减速机参数查询 2-2 实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/911956

相关文章

mybatis-plus 实现查询表名动态修改的示例代码

《mybatis-plus实现查询表名动态修改的示例代码》通过MyBatis-Plus实现表名的动态替换,根据配置或入参选择不同的表,本文主要介绍了mybatis-plus实现查询表名动态修改的示... 目录实现数据库初始化依赖包配置读取类设置 myBATis-plus 插件测试通过 mybatis-plu

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固 通俗易懂版)

《MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固通俗易懂版)》本文主要讲解了MySQL中的多表查询,包括子查询、笛卡尔积、自连接、多表查询的实现方法以及多列子查询等,通过实际例子和操... 目录复合查询1. 回顾查询基本操作group by 分组having1. 显示部门号为10的部门名,员

mysql关联查询速度慢的问题及解决

《mysql关联查询速度慢的问题及解决》:本文主要介绍mysql关联查询速度慢的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql关联查询速度慢1. 记录原因1.1 在一次线上的服务中1.2 最终发现2. 解决方案3. 具体操作总结mysql

SpringBoot接收JSON类型的参数方式

《SpringBoot接收JSON类型的参数方式》:本文主要介绍SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、jsON二、代码准备三、Apifox操作总结一、JSON在学习前端技术时,我们有讲到过JSON,而在

JAVA虚拟机中 -D, -X, -XX ,-server参数使用

《JAVA虚拟机中-D,-X,-XX,-server参数使用》本文主要介绍了JAVA虚拟机中-D,-X,-XX,-server参数使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录一、-D参数二、-X参数三、-XX参数总结:在Java开发过程中,对Java虚拟机(JVM)的启动参数进

Nginx实现高并发的项目实践

《Nginx实现高并发的项目实践》本文主要介绍了Nginx实现高并发的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用最新稳定版本的Nginx合理配置工作进程(workers)配置工作进程连接数(worker_co

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板