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

78 篇文章 0 订阅
42 篇文章 1 订阅

首先说说结论:在不和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 = module
        self.tooth = tooth
        self.ratioOfShaft = ratioOfShaft
        self.ratioOfGear = ratioOfShaft*tooth
    
    def __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_location

def doGearsOfShaft(gearsArray, shaftRpm, shaftName, arGear, last_gear_tooth):
    gearIdx = 1
    for 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+1
        last_gear_tooth = gearTooth
    return last_gear_tooth

def doBearingsOfShaft(bearingArray, shaftRpm, shaftName, arBearing):
    bearingIdx = 1
    for 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 += 1


def 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 = 0
    
        last_gear_tooth = -1
        for 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_tooth
                             rpmUpdated = True
                        shaftName = 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_tooth
                    shaftName = 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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子正

thanks, bro...

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值