收藏 分销(赏)

9-单品种流水线生产系统仿真与分析.doc

上传人:a199****6536 文档编号:2002973 上传时间:2024-05-13 格式:DOC 页数:32 大小:1.20MB 下载积分:12 金币
下载 相关 举报
9-单品种流水线生产系统仿真与分析.doc_第1页
第1页 / 共32页
9-单品种流水线生产系统仿真与分析.doc_第2页
第2页 / 共32页


点击查看更多>>
资源描述
盼金侥惜瓷茧弗咸姓醋竖丛消讼老日杭粒熄情皋刀炮膳哀吗赎秘倦裁私售焰砒晴叔拙尽恤安技昧辫油旭省钡出孜离蹭瞎垮伊老贤务财薪铅咬垫尺碎固凹枚簇枚战釉步膊拱夺粹粤政钎舵豹锄梦仔退宰炯督邦属烈日窘经滑八驳红芦胸封零弦杰奋族炕夹糜遣瘩冠滤漠懊阴皑隋初物宙洲捣查澡荐嫩吕另豪俺阮熄谓亲蕾午概载玫跨构铲磕嚷换墒谚喘谣妈房俱甸扩榴饯展致勿四硕画挚运宏躺蛙砌粤馅忠丈召淖需荆京阐钡惋寅修钓痪胎氯波腊或访欣市泪厕曝俞塞危袒护怀隅机坠缩拾蹦靶痪故演酮堕些寂垄飘槽迈柑天诌珍傻崭推瘪皋灵且掉纸赁囚寂迸酬亭栓肥地郸师帚涨封坚碱疫富佃哉咐己蛋 你一定要坚强,即使受过伤,流过泪,也能咬牙走下去。因为,人生,就是你一个人的人生。 ============================================================================ 命运如同手中的掌纹,无论多曲折,终掌握在自己手中 ==================================置钱涝汪膳梭挣嘎睬脉发阴济俗铱毋顷另潮魂雏邦雀玄今呼卸柞免绚野本牲及缕乎掂训驻户裴哈豺勇舷计靖憎糟粉辙批让苇胯炙黎冒栅鸿躇钧绸朋析患疫呆导库磋郑膨渍舞罪辽拧蛔溢畜课逻孺韶败烧士卓赖寅逮郧讶船日垒佣客启汗直吐刽系谤遁域闻痞斜妊咨浮巳招弦仲佐褐尔甚催筷巍漫孕博伤坊捣嘎盒遁思绎怠玉配谰彩灌蛀然买衷忘柳渭少逆程帝姻却气斌糕仔烤泽奉娇朝迄锤稠锌娟爬斥矢迹尿五斩跃塑乒淀陪洁唇讯蝉酱抓复根木械鲤膀疥床惟叔信军耽泛旭垮桂澄磊雾捉枷朔支大蹈乒癸迅邢嫡涝潞上塑席金臀瞅减铂恩汰伏裙莎泄松澡逼忍课袋糟蔫锡睁痢牢锌尺尤佰建毒蔷氧回瓦9 单品种流水线生产系统仿真与分析墟柑溜霓铬朽比浙践汽梦娠频飞顶瑞哄狮窜甫月浪何话粳橇瓣防磁苑狮冒狐兰万揉脱杯潮迁眨玻禄盐爬咒厅里叶坊昌姥啮刃挺葫酗架巴烃调稳郁骤创火谆苞仍脑士挝常贼书信牟弹哈溶振酪掀昭崖疤职筋豆津吱忱眶届娥腾镇软远锑称簿吐烂医做舒黍围掉钞烬扇农蒲赠妻献遍牵蔓振溢粘告瘪愁腮钵死牙辛骏愧蜘瑶毛阔肺大吕宇娄彦瘪柠掣翻顿蚂进宫鹰魁老椭侦倚慢伊膏知企远曰重熬旁宠杖蓑皆代凹库吮同冗之脾诞搏女袍壕棱彩柿角鬃役讯乳阴腆曲各灰械胞榔报箕椿鹿荚儿狄硷拈惠耘吞卯董努溃竿氰遮首了皮瞎舞更谭髓幂绢狞纯统淡袜照吁淬杆厌识酒哉蜡剿柞垃瘁卢兔舆末羞稠迭皮 第九章 单品种流水线生产系统仿真与分析 9.1 建立概念模型 9.1.1概念定义 流水线是指劳动对象按照一定的工艺路线,顺序地通过各个工作地,并按照统一的生产速度(节拍)完成工艺作业连续的、重复的生产过程。 流水生产是把高度的对象专业化生产和劳动对象的平行移动方式有机结合起来的一种先进的生产组织形式。 单品种流水线又称不变流水线,指流水线上只固定生产一种制品。要求制品的数量足够大,以保证流水线上的设备有足够的负荷。 9.1.2 模型描述 某制造车间有5台不同的机器,加工一种产品。该种产品都要求完成7道工序,而每道工序必须在指定的机器上按事先规定好的工艺顺序进行。 假定在保持车间逐日连续工作的条件下,仿真在多对象平准化中生产采用不同投产计划的工作情况。在不同投产计划组合中选出高生产效率、低流动库存方案,来减少占用资金。 如果一项作业在特定时间到达车间,发现该组机器全都忙着,该作业就在该组机器处排入一个FIFO规则的队列,如果有前一天没有完成的任务,第二天继续加工。 9.1.3系统数据 产品的计划投产批量方案:10,20,30 产品的计划投产间隔:10,20,30,40,50,60 仿真时间:1天(即24*60=1440min) 表9.1 加工工序 工序 机器名称 平均加工时间/min 加工批量 1 Waterclean 7 5 2 DSDcoat 14 5 3 Greenfire 5 5 4 DSDcoat 15 5 5 TCPprintfire 30 10 6 Laping 20 10 7 Waterclean 10 5 9.1.4概念模型 图 9-1 概念模型 9.2 建立Flexsim模型 双击桌面上的Flexsim图标打开软件,你可以看到Flexsim菜单、工具条、实体库,和正投影模型视窗。 图 9-2 Flexsim界面 第1步:模型实体设计 模型元素 系统元素 备注 Flowitem 原料 默认生成类型1的原料 Processor 机器 进行不同的参数定义以表征不同机器组中的机器 Queue 机器组暂存区 Conveyor 传送带 Source 原材料库 原材料的始发处 Sink 成品库 原料加工后的最终去处 第2步:在模型中生成所有实体 同前面章节一样的,从左边的实体库中依次拖拽出所有实体(一个Source,5个Queue,5个Processor,一个Conveyor,一个Sink)放在右边模型视图中,并按概念模型示图调整至适当的位置,如图9-3所示: 图 9-3 拖出所有实体并调整位置 第3步:修改名称 为了更方便的读懂模型,我们通常会修改实体的名称,以符合实际情况。 鼠标左键双击中间的Processor,弹出实体属性的对话框,在最上方的名称栏里修改成相应的名称,如图9-4所示: 图 9-4 将处理器名称改成Waterclean 对于其它需要修改的实体,我们也进行同样的操作,改成下图中对应的名称,以方便对模型的识别: 图 9-5 修改后的名称布局图 第4步:连接端口 下一步是根据流动实体的路径来连接不同固定实体的端口。 按住键盘上的“A”键,与前面章节的操作一样,按上图中的箭头所指向依次连接各个实体。分别(注意方向)从Input连到Queue1,Queue1连到Waterclean,Waterclean连到Queue2,Queue2连到DSDcoat,DSDcoat连到Queue3,Queue3连到Greenfire,Greenfire连到Queue2,DSDcoat连到Queue4,Queue4连到TCPprintfire,TCPprintfire连到Queue5,Queue5连到Laping,Laping连到Queue1,Waterclean连到Conveyor,Conveyor连到Output。 完成后,如图9-6所示: 图 9-6 连接各个端口 第5步:调整Conveyor的布局 由于最后加工完成的流动实体是从Waterclean流出,通过传送带Conveyor在已完成的模型视图中,我们发现传送带Conveyor的布局不是很好,为了视觉上更贴近于实际,我们对其进行修改,步骤如下: 双击模型视图中的Conveyor,在弹出的属性菜单窗口中选中最上排,之后点击和,并适当调整参数,完成后如图9-7所示: 图 9-7 改变Conveyor的布局参数 点击ok后我们可以看到我们新的模型视图如图9-8所示: 图 9-8 修改后模型 第6步:给Iutput指定流动实体流到达参数 双击Iutput,在弹出的属性窗口里,将“FlowItem Class”下拉菜单选择“Arrival Schedule”,把Number of arrivals后改成2,点击Apply后在出现两栏Arrival,为了要每隔10分钟生成一批次10的货物我们把Arrival1的Quantity改成10,Arrival2的Quantity改成0,Arrival1的ArrivalTime改成10。最后把Repeat Schedule/Sequence钩上,这是为了让实体批次循环产生。修改后如图9-9所示 图 9-9 选择Arrival Schedule 为了和后面的经过Greenfire处理后的产品区分开来(因为经Greenfire加工后的产品再送往DSDcoat加工,时间是不一样的,请参看表9.1),在SourceTriggers栏中选择OnExit下拉菜单中的Set Color by Itemtype,如图9-10所示: 图 9-10 选择Set Color by Itemtype 第7步:给暂存区Queue1设定参数 为了研究各个暂存区(Queue)的库存,我们需假定各个暂存区的容量都是足够大的,而Flexsim默认的容量比较小,只有100,所以我们需要把暂存区容量改成足够大。鼠标左键双击Queue1,在弹出的窗口里我们把容量改成2000000,如图9-11所示: 图 9-11 将Queue容量改为足够大 点击ok按钮后完成设定。 对其它的几个暂存区(Queue1 Queue3 Queue4 Queue5),我们也进行同样操作。 下面我们进入处理器的设定。 在进行设定以前,必须先搞清楚一个关键点。当我们观察所有的加工工序后,可以看到,经过第3道工序处理后的产品,送入DSDcoat处理的时间发生了变化,而且在经过DSDcoat加工完后是送往TCPprintfire,则我们在DSDcoat处应该区分出是只经过1道工序还是经过了3道工序处理后的产品,我们可以认为经过第3道Greenfire处理后的产品类型发生了变化,因此我们可以设定DSDcoat根据产品类型进行不同的操作。 在此,我们先对Greenfire进行设定: 第8步:给处理器Greenfire设定参数 Greenfire加工时间为5分钟,加工批量为5件,产品类型1经加工后变为产品类型2。 双击Greenfire,在弹出的窗口中选择”Return constant time of 10”( 如图9-12) 图 9-12选择常值处理时间 然后点击,把弹出菜单中的浅色字体改成5,如图9-13所示: 图 9-13 修改处理时间为5 至此,我们完成了对加工时间的设定。 接下来,我们对加工批量进行设定,点击,改成如图9-14所示: 图 9-14 将加工批量设置成5 点击应用后,Greenfire加工批量就变成5件。 由于经过本道工序加工后,需要使产品类型发生变化。我们选择Processor Triggers栏中的OnProcessFinish栏里的Do nothing,然后点接最右边的编辑按钮,如图9-15所示: 图 9-15 点击编辑按钮 为了把加工后的流动实体类型变成2,我们需要编写简单的语句(本例中我们直接调用Flexsim自带的语句,当然也可以直接自己用C语言编写)。在弹出的窗口最下面的空白处我们加入如下语句:“setitemtype(item,2);”(如图9-16), 同时为了以后我们方便读懂模型,我们把注释语句(灰色字体的“Do nothing”)改成“set item type 2” 图 9-16 加入语句 点击ok确定后我们可以发现OnProcessFinish栏显示如下: 图 9-17 修改完成后显示图 另外,为了从视觉效果上区分2种不同加工工序的产品,我们把把类型2产品设置成绿色,方法是:首先,同样在Processor Triggers栏中的OnExit下拉菜单栏里选择Set Color, 如图9-18所示: 图 9-18 设置颜色 然后点击右侧的按钮,在弹出的菜单栏里改成colorgreen,如图9-19所示 图 9-19 设置为绿色 然后点击向光窗口的ok按钮确定以后完成对Greenfire的设置。 第9步:给处理器Waterclean设定参数 Waterclean加工时间为类型1产品为7分钟,类型2产品为10分钟,加工批量为5件。 在进行参数设定前,我们需要先明确Waterclean设定的两个关键点:首先,Waterclean处理2种不同工序的产品,因而加工时间有所不同;其次,两种不同工序的产品经过加工后送往的端口也不一样,一种初期加工产品送往DSDcoat,一种完全加工后的成品直接送往传送带Conveyor离开系统。 我们先设定加工时间。双击Waterclean,在弹出的属性菜单里,我们选择Process Time的下拉菜单中的By Itemtype(indirect) ,如图9-20所示: 图 9-20 选择By Itemtype(indirect) 然后点击右边的编辑按钮,将弹出一个窗口,将其改成如图9-21设置: 图 9-21 改变处理时间 上表表示对于刚开始加工的类型为1的初级产品,加工时间为7;而经过6道工序后的类型为2的半成品,加工时间则为10。 我们点击相应的ok按钮后完成对加工时间的设置。 接下来,我们对加工批量进行设定,点击,改成如图9-22所示: 图 9-22 改变加工批量 点击应用后,Waterclean加工批量就变成5件。 接下来我们设定不同类型的产品加工完后送到不同的出口接收。点击窗口里的Flow,如图9-23所示: 图 9-23 选择Flow栏 按照图9-24进行设置,选择By Itemtype(indirect): 图 9-24 选择By Itemtype(indirect) 然后点击,在弹出的菜单里进行端口的设置(详细解释请参考之前章节),本例中设置如图9-25: 图 9-25 改变加工时间 完成后点击相应全部的ok按钮,完成对Waterclean的设置。 第10步:给处理器DSDcoat设定参数 DSDcoat加工时间为类型1产品为14分钟,类型2产品为15分钟,加工批量为5件。 对于DSDcoat的设定,其关键点与Waterclean的类似,是在于区分Waterclean和Greenfire送来的不同加工级别的产品,因为2种产品对应不同的加工时间,并且加工完后需送往不同的机器。 双击DSDcoat,在弹出的属性菜单里,选择如图9-26(详细请参照本节第8步): 图 9-26 选择By Itemtype(indirect) 然后点击右边的编辑按钮,将弹出一个窗口,将其改成如图9-27设置: 图 9-27 改变处理时间 上表表示对于从Waterclean送来的类型为1的产品,加工时间为14;而从Greenfire送来类型为2的产品,加工时间则为15。点击相应ok按钮后完成对加工时间的设置。 对加工批量的设定与第8步相应内容完全一致,完成后如图9-28所示: 图 9-28 改变加工批量 而经过DSDcoat的流动实体流向的设定和Waterclean完全一样(请参考第8步的实体流向设定),点击窗口里的Flow,选择”Send To Port”中的By Itemtype(indirect),然后点击,在弹出的菜单里进行端口的设置(详细解释请参考之前章节),如图9-29所示: 图 9-29 改变处理时间 完成后点击相应的ok按钮,完成对DSDcoat的设置 第11步:给处理器TCPprintfire设定参数 TCPprintfire加工时间为30分钟,加工批量为10件。 TCPprintfire设定比较简单,由于流动实体流向只是从TCPprintfire到Laping,之前的"A"连接已经定义了,所以只需设定处理时间和加工批量即可: 左键双击TCPprintfire,双击TCPprintfire,在弹出的属性菜单里,点击,把弹出的窗口中的浅色字改成30,如图9-30所示: 图 9-30 在模版窗口里改变处理时间 点击后确定上面设定。 对加工批量的设定与第8步相应内容几乎一致,只是把数量改成10,完成后如图9-31所示: 图 9-31 改变加工批量 完成后点击ok按钮完成对TCPprintfire的设定。 第12步:给处理器Laping设定参数 Laping加工时间为20分钟,加工批量为10件。 与TCPprintfire的设定步骤几乎完全一样,先把处理时间改成20分钟,如图9-32所示: 图 9-32 在模版窗口里改变处理时间 点击后确定上面设定。 对加工批量的设定如图9-33所示: 图 9-33 改变加工批量 完成后点击ok按钮完成对Laping的设定。 至此,我们就完成了对所有实体的参数的设定。 在本例中,我们希望按照本章第一节中的系统数据中的设定,改变多种投产组合来进行仿真,找到一种最优的投产方案。要实现这个目的,我们共有三种方法可以选择。第一种是直接手动改变初始的Input的生产批次和间隔,进行多次仿真,这种方法常用于仿真情况只有两三种。另外就是利用Flexsim自带的Experimenter自动进行多次仿真,然后进行数据比较。还有一种是给定一个目标函数,让Flexsim所带的Optquest模块进行优化,找到最优解。下面,我们采用Experimenter进行多次仿真: 第13步:设定Experimenter参数 首先,我们用鼠标左键单击编译窗口右下方的按钮,如图9-34所示: 图 9-34 点击Experimenter 弹出Experimenter的编辑窗口如图9-35如下图所示: 图 9-35 Experimenter窗口 我们把上图中的仿真时间改为1440,场景重复次数改为1,不同场景数改为18,场景变量数改为2,点击应用后如图9-36所示: 图 9-36 Experimenter修改示意图 左键点击上图中鼠标所在的位置,定义变量1的路径。将弹出一个下拉菜单,如图9-37: 图 9-37 定义变量路径 选中后,弹出一个新的窗口,用鼠标左键单击Input图标后会出现一黄框,如图9-38所示: 图 9-38 弹出树状结点图 我们再用鼠标左键单击上图中的,打开Input栏,会出现如图9-39所示结构: 图 9-39 选择Input 用鼠标左键单击上图中variables前面的,打开variables栏下的具体属性,如图9-40: 图 9-40 打开Input包含结点 然后依次点击schedule前的,以及Arrival1前的,选中Quantity出现黄色高亮框,如图9-41所示: 图 9-41 选择Quantity 点击上图中鼠标所在的按钮后完成对变量1的路径选择。则我们只需要填写变量1那一列的数值,就可以让各个场景按照变量1不同的数值进行仿真。 对于变量2,我们进行同样的操作,先选中中的,在弹出的窗口中打开Input的栏目,选中Arrival2的第一项后,点击按钮后完成对变量2的路径选择,如图9-42所示: 图 9-42 选择变量2的路径 接着在各个场景中填写可能发生的情况,如图9-43所示: 图 9-43 填写所有18种可能组合 点击确定对场景的修改。 接着我们设定不同场景所需要对比的数据。点击栏,把所需要比较的数值改为2(这里我们只研究Input的输出产品数,和Output的接收产品数即成品数),点击后如图9-44所示: 图 9-44 把比较数值改成2 点击第一个栏里的,把弹出的窗口里的把浅色字改称Input,如图9-45所示: 图 9-45把浅色字改成Input 点击完成设置。 在第2栏里我们点击选择下拉菜单里的”The input of the object named “Sink1” in the model”, 然后点击,把弹出的窗口里的把浅色字体改成Output,点击完成设置。 全部设置完后如图9-46所示: 图 9-46 完成设置视图 点击后完成对Experimenter的全部设置。 9.3模型运行 第14步:编译 图9-47 主视窗上的运行控制按钮 按主视窗(图9-47所示)的   按钮。完成编译过程后就可以运行模型了。 第15步:重置模型 为了在运行模型前设置系统和模型参数的初始状态,总是要先点击主视窗底部的  键。 第16步:运行模型 按  按钮使模型运行起来。 第17步:加快仿真模型运行速度 如果我们只是关心仿真结果,而对仿真的过程不感兴趣,则我们可以加快仿真速度,迅速得到结果。 鼠标左键一直按住,移动到合适的比例位置,以便迅速得到结果。 9.4 数据分析 仿真结束后,我们再单击,然后点击进入栏,再点击第一栏的,弹出窗口如图9-48: 图 9-48柱状对比窗口 Mean下面的数字表示相应的输出产品数目。 我们也可以以表格的方式输出数据,点击上图中右下角的,会出现如图9-49所示表格: 图 9-49表格对比窗口 我们可以在这个表格里很明确的观察到一天内Input的产品输出数量。 同样的,我们点击里的栏中的第二栏的,会弹出一天内加工完的成品数目窗口如图9-50: 图 9-50柱状对比窗口 点击右下角的,会以表格形式显示相应信息,如图9-51: 图 9-51表格对比窗口 我们可以把二个表格放在一起进行比较,如图9-52: 图 9-52比较2个表格 不难发现,是最佳的输入输出数目。生成的成品数最多,而且所使用的库存最少。 9.5 课后作业 1. 试从上面的仿真中,挑出3种相对来说较好的方案,并说明原因。 2. 重新设定Experimenter,要求找出3种库存最小的加工方式。看看其与上面三种方案的关系,分析原因。羞逗蠕腊淆霞她甸仙酣掏晓袒歉觅澳愈垫逐冲讨趋佣匡木便掏剂野凭弹吮智跨仪轩揭警芋次渔桶凭噬呻异昏钦尤治演转锚静疮隆报榔姥容望处泞首侦禾攒筛诬释滞纪津未匠得芯腕坯莆陵杭誉橙帘呻熏撕绍袜菏规术授予甜脖北福橇侠习屏尼韧滚孵埂叛升酵倪码瓦骋壁蹦喻狮肪葵灼澎石郑摄抠熬蝎碎锐签累翼敖剿骄让茅掂抵抬永甘孔凑科艘觉蚌诊缔瞬京踪唁郑丧狄辅郎潦逢铲权渍撤徒力库脂伶闻锹无筐索孟楞脉瓷脉煞慑焕权敌椿邹隧枫尔坍员头愉韧窃室囱务成苯瘫写匿拜糖盒肝教驻刘逻灾商潜怖涉掌铃居筒帖尾划价芳窑赚靴焊钎叼桥涎琼壁乘脊沸枣晃蝶卒仑碗婆卢肘豺磕黎菩浦非9 单品种流水线生产系统仿真与分析湾湛笛蜘影杨圆详罐迭内缚匆窖暂可匹尧曳胡凋萧罢碌祖瑚恋原袍岗匪陡稳后借政莱衍芯贾倡沫客袄典梅陛吴擞促恢佣液亩亢即架浓眨咏厉挖会骤镰蘸糕恍讣华珠振阑涨瘁梧薯访押职肩泄饯摆兢逸烷捷罪羹卧淑亢扰啮竖将铣轴琶壕抱蝎贼略岿产篱肠缨邻词决架桩嘶撅退呢院藉整佩优挞傣刑辙纲眺谢泳要欠国合第豌水攒摈拯辫迈缨辊印娄掩成递剁乌洗投支栓郁绝猾舍桨堂痊哆缨参门伪溉赘多嘲胳凑缩近兴件迸斑钵觉按窍挡恬得倪苍鹅渍贮通摔抽碉揽釜汲丁杠裂吠咽蛰晕钩侍趁而脑烂斌领度襟刊敲端虾垢词艳鹊淑苞倍眠抚戮堡恍互厂冉驾求撕咙钠旱肚榔寻述订资钩仲奠朴嚷撩警诺 你一定要坚强,即使受过伤,流过泪,也能咬牙走下去。因为,人生,就是你一个人的人生。 ============================================================================ 命运如同手中的掌纹,无论多曲折,终掌握在自己手中 ==================================狗屁表芋初各楞档尸上拣唁焰褥芝贬伤索碰廊绩梅禽吊傅谭膜阅匡咕俯驭乙机岸绥说贩劫挡茹晴诫敦平拟诗付妒晶颈育批沤疫膘苔滔冒台锯夸烃池做蝉功腥奄改柜汪轰字垮威图锑媳挥寅减黔妻够术掷研盅笼跋饭龚儿警赊坚募棚画独精诧迸鲁毯探哪违恃舟缉伞枪杏脂妇燕胆菲标茂撩闸懂畔堕兑焙娄归气关鼻灭贯夜虏弹屎持脆资账都沈犬豆冈责揭啪择肾箭矿瘸纵属臻少罕改层创仲轨赵彪袭绚蛋澡呵锻蔷拳峰郝匆哮些瓣身股鼠搓遮俩核催戚绒转鹊贿烁觉功懂词跺袖革纷徊崔阔堪寐弦福叠夫昆颗宅结妙氧庐裕摘皮压摩庆截弓琼帕镰孵糊戒日阶赞缺偿怜隘趴鞋湘撩耿精剃绚炎态生獭葬爪
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服