项目17柔性自动线立体仓库站控制.docx

上传人:b****1 文档编号:14754898 上传时间:2023-06-27 格式:DOCX 页数:30 大小:435.52KB
下载 相关 举报
项目17柔性自动线立体仓库站控制.docx_第1页
第1页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第2页
第2页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第3页
第3页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第4页
第4页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第5页
第5页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第6页
第6页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第7页
第7页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第8页
第8页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第9页
第9页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第10页
第10页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第11页
第11页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第12页
第12页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第13页
第13页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第14页
第14页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第15页
第15页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第16页
第16页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第17页
第17页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第18页
第18页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第19页
第19页 / 共30页
项目17柔性自动线立体仓库站控制.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

项目17柔性自动线立体仓库站控制.docx

《项目17柔性自动线立体仓库站控制.docx》由会员分享,可在线阅读,更多相关《项目17柔性自动线立体仓库站控制.docx(30页珍藏版)》请在冰点文库上搜索。

项目17柔性自动线立体仓库站控制.docx

项目17柔性自动线立体仓库站控制

项目17柔性自动线立体仓库站控制(S7-300PLC结构化编程)

一、学习任务单

柔性自动线立体仓库站的控制(S7-300PLC的结构化编程)的学习任务单见表5-27。

表5-27“柔性自动线立体仓库站的控制(S7-300PLC结构化编程)”学习任务单

单元五

西门子S7-300PLC中型机的应用(柔性自动线控制)

学时

24

项目17

柔性自动线立体仓库站的控制(S7-300PLC的结构化编程)

学时

6

工作任务

RS-M02柔性自动线立体仓库站的控制

学习项目

S7-300PLC的结构化编程

项目描述

是S7-300PLC结构化程序设计方法的典型工作项目。

用S7-300PLC实现自动线立体仓库站的控制,掌握S7-300PLC的相关功能块及结构化程序设计方法。

控制要:

立体仓库站共有20个工位。

载料台由X轴步进电机与Y轴步进电机两个步进电机驱动,能够进行X轴方向与Y轴方向的移动;载料台的伸出取件与缩回是由汽缸驱动;每个工位在立体仓库站的位置由行与列两个光电传感器来定义。

当确定要取要取的零件位置后,载料台在步进电机驱动下进行运动,当运动到指定位置后,载料台伸出去取件,取件完成后,载料台在X轴与Y轴步进电机的驱动下,进行回原点运动。

回到原点后,等待柔性自动线的传输站的机械手把取到的零件取走,则一个取件工作就完成了。

学习要:

在项目的进行过程中,了解立体仓库站的结构组成与工作过程、学会S7-300结构化程序设计方法,学会根据需要设置FC和FB的参数,学会设置SFB49来控制步进电机;学会用PLCSIM软件进行项目的运行与调试,最后完成整个立体仓库站的运行。

学习目标

知识

1.明确结构化编程的原理;

2.明确块的分类与作用;

3.明确块的结构与参数设置;

4.明确SFB49参数设置的含义及使用方法。

能力

1.熟练使用STEP7V5.3软件;

2.掌握结构化编程的设计方法;

3.会根据电气原理图与气动原理图进行PLCI/O地址分配;

4.能够根据控制要求编写控制程序和输入程序;

5.会使用PLCSIM软件调试程序。

素质

1.学习活动中态度积极,有团队精神;

2.能够借助于软件的帮助系统,具有自主学习能力;

3.调试过程中,严谨、细致;

4.现场操作行为规,符合5S管理要求。

项目进程

要求

1.学习S7-300的结构化编程

1.明确块的概念与分类;

2.明确FC与FB的结构与参数设置;

3.明确结构化程序设计方法;

4.明确SFB49的使用。

2.分析立体仓库站的结构组成与工作过程

1.了解立体仓库站的结构组成;

2.理解立体仓库站的工作过程;

3.完成立体仓库站的I/O地址分配。

3.设计立体仓库站控制功能图

画出立体仓库站控制功能图。

4.编写立体仓库站控制程序

1.根据流程图设计控制程序;

2.按照S7-300PLC系统的硬件要求完成组态;

3.正确输入程序;

4.保存下载控制程序。

5.完成立体仓库站的调试与运行

1.用PLCSIM进行仿真;

2.观察仿真结果是否满足控制要求;

3.系统进行运行与调试。

教学资源

设施条件:

1.RS-M02柔性自动线立体仓库站;

2.计算机;

3.STEP7V5.3软件和PLCSIM软件;

4.西门子S7-300PLC;

5.S7-300PLC用户手册;

6.任务单、工作记录单、考核表等。

学生已有基础(课前准备):

1.S7-300PLC的知识;

2.S7-300PLC程序设计的基本能力;

3.气动系统基本知识;

4.位置检测基本知识;

5.课代表及学习小组。

二、实务知识——S7-300PLC结构化编程

1.S7-300程序结构

为了容易阅读和理解,在编程中常常将程序分为若干部分。

每个程序部分具有其技术和功能基础,称之为块。

块是程序中真正有用的部分,包括用户块和系统块。

它们在功能、使用方法和结构上各个不同。

(1)用户块

根据逻辑功能的不同,用户块分为组织块(OB,OrganizeBlock),功能块(FB,FunctionBlock),功能(FC,Function)和数据块(DB,DataBlock)。

1)组织块(OB)

OB是操作系统和用户程序之间的接口。

组织块只能由操作系统来启动。

见图5-52。

各种组织块由不同的时间启动,具有不同的优先级,而循环执行的主程序则在组织块OB1中。

OB100为初始化程序块,0B10~OB17为日期时间中断组织块,0B20~OB23为延时中断组织块,OB30~OB38为循环中断组织块,OB40~OB47为硬件中断组织块,OB80~OB82为异步错误组织块(时间错误,电源故障处理,诊断中断),OB86为机架故障组织块等等。

2)功能(FC)和功能块(FB)

FC和FB都是用户自己编写的程序块,用户可以将具有相同控制过程的程序编写在FC或FB中,然后在主程序OB1或其他程序块中(包括组织块和功能、功能块)调用FC或FB。

FC或FB相当于子程序的功能,都可以定义自己的参数。

图5-52组织块的编程

3)数据块DB

数据块分为背景数据块和共享数据块。

背景DB是和某个FB或SFB相关联,其部数据的结构与其对应的FB或SFB的变量声明表一致。

共享DB的主要目的是为用户程序提供一个可保存的数据区,它的数据结构和大小并不依赖于特定的程序块,而是用户自己定义。

需要说明的是,背景DB和共享DB没有本质的区别,它们的数据可以被任何一个程序块读写。

(2)系统块

系统块包含在操作系统中,包括:

SFC(SystemFunction),SFB(SystemFunctionBlock),SDB(SystemDataBlock)。

SFC和SFB是预先编好的可供用户调用的程序块,它们已经固化在S7PLC的CPU中,其功能和参数已经确定。

一台PLC具有哪些SFC和SFB功能,是由CPU型号决定的。

具体信息可查阅CPU的相关技术手册。

通常SFC和SFB提供一些系统级的功能调用,如通讯功能、高速处理功能等。

注意:

在调用SFB时,需要用户指定其背景数据块(CPU中不包含其背景数据块),并确定将背景数据块下载到PLC中。

(3)块的结构

块是由变量声明表和程序组成。

1)变量声明表

变量声明表中放着参数(形参)。

参数是在调用块和被调用块之间传递的数据,包括输入,输出和输入输出变量。

变量声明表结构如图5-53。

①输入(IN):

为调用逻辑块提供数据,输入给逻辑块.

②输出(OUT):

从逻辑块中输出数据结果

③输入/输出(IN/OUT):

参数值可以输入,也可以输出。

④静态变量(STAT):

存储于背景数据块中,块调用结束后,变量被保留

⑤临时变量(TEMP):

存储于堆栈中,块执行结束后,变量消失。

为了保证功能或功能块对同一类设备的通用性,在编程中不能使用实际对应的存储区地址参数,而是使用抽象参数,也就是形参。

图5-53功能FC和功能块FB的变量声明表

2)FC和FB的变量声明表的差别:

①FC和FB参数赋值不同;

②FC没有自己的背景数据块;

③FB有自己的背景数据块;

④FC的参数必须指定实参;

⑤FB的参数可根据需要决定是否指定实参。

2.S7-300的程序设计方法

S7-300程序设计方法主要有三种:

线性化编程、模块化编程、结构化编程。

见图5-54。

图5-54程序设计三种方法示意图

(1)线性化编程

线性化编程是将整个用户程序放在循环控制组织块OB1中,在CPU循环扫描时执行OB1中的全部指令。

特点是结构简单。

但由于所有的指令都在一个块中,结构不清晰,扫描时间过长。

线性化编程示意图见图5-55。

线性程序的结构简单,分析起来一目了然。

这种结构适用于编写一些规模较小,运行过程比较简单的控制程序。

图5-55线性化编程图5-56模块化编程

(2)模块化编程

模块化编程是将程序根据功能分为不同的逻辑块,且每个逻辑块完成的功能不同。

在OB1中可以根据条件调用不同的功能或功能块。

其特点是易于分工合作,调试方便。

由于逻辑块是有条件调用,所以可以提高CPU的利用效率。

模块化程序结构见图5-56。

分块程序有更大的灵活性,适用于比较复杂、规模较大的控制工程的程序设计。

(3)结构化编程

 

结构化编程是将控制要求中类似或相关的任务归类,在功能或功能块中编程,形成通用解决方案。

通过不同的参数调用相同的功能或通过不同的背景数据块调用相同的功能块。

特点是:

编写通用模块,对不同的设备代入不同的地址和参数,使更多的设备或过程可以使用此通用模块,因此具有很高的编程和程序调试效率。

程序结构层次清晰,标准化程度高。

结构化编程结构见图5-57。

结构化程序比分块程序有更大的灵活性,继承性。

适用于比较复杂、规模较大的控制工程的程序设计。

3.结构化编程

为了支持结构化编程,在操作系统中包含了用户程序和系统程序。

其中用户程序常包括OB,FB,FC,DB。

系统程序包括SFC,SFB,SDB。

在块的调用中,调用者可以是各种的逻辑块,而被调用者是除OB块外的逻辑块。

块的调用即为子程序的调用,块可以嵌套调用,嵌套的层数与CPU的型号有关。

(1)FC的调用

功能是用户编写的无固定存储区的块,它是不带记忆的逻辑块,即没有背景数据块。

当完成操作后,数据不能保存。

调用功能时,需用实参来代替形参。

例1控制要自动线有三台电机A,B,C需要分别控制。

A电机:

启动I0.0,停止I0.2,线圈Q0.0;B电机:

启动I0.3,停止I0.4,线圈Q0.1;C电机:

启动I0.5,停止I0.6,线圈Q0.2。

采用FC调用的方法来实现控制要求。

结构化编程步骤如下:

这三台电机的运行方式是一样的,都是由一个按钮启动,一个按钮来停止。

所以先设计一个电机运行的通用程序。

①在组态窗口插入一个FC,见图5-58。

图5-58插入一个FC

②双击FC1,进入编程环境,在变量声明表里设置形参,见图5-59。

图5-59FC1变量声明表及通用程序

③编写三台电机通用控制程序,保存下载,见图5-60。

④双击0B1,进入主程序编写环境。

不同的电机用不同的实参来取代形参来调用FC1。

见图5-60。

图5-60FC调用主程序

(2)FB的调用

功能块是用户编写的有固定存储区的块,它是带记忆的逻辑块,有一个数据结构与功能块参数表完全相同的数据块(BD),称为背景数据块。

当功能块被执行时,数据块被调用,功能块结束,调用随之结束,存放在背景数据块中的数据在块结束以后,仍能继续保持,具有记忆功能。

一个功能块可以有多个背景数据块,使功能块可以被不同的对象使用。

例2控制要自动线上有两台电机,A,B。

按下I0.0,A电机启动(Q0.0得电),运行3秒后停止。

按下I0.1,B电机启动(Q0.1得电),运行5秒后停止。

任何时候按下急停按钮I0.2,两台电机全停。

采用FB调用的方法来实现控制要求。

结构化编程步骤如下:

①在组态窗口插入一个FB,见图5-61。

图5-61插入FB

②双击FB1,进入编程环境,在变量声明表里设置形参。

见图5-62。

图5-62FB1变量声明表及通用程序设计

③编写两台电机通用控制程序,保存下载。

见图5-62。

④双击0B1,进入主程序编写环境。

不同的电机用不同的实参来取代形参来调用FB1。

见图5-63。

因为在调用FB1时,需要背景数据块,背景数据块会自动生成。

在调试运行时,注意别忘了将背景数据块下载。

见图5-64。

图5-63“FB调用”的主程序

图5-64下载背景数据块

4.S7-300PLC产生高频脉冲控制步进电机

采用S7-313C-2DP控制步进电机的运行和停止。

在设计过程中,需调用SFB49脉宽调制功能块实现脉冲序列的输出控制,并通过Q0.3的输出控制步进电机的转动方向。

在CPU313C-2DP模块的0通道通过软件门单独控制,产生周期为20ms,占空比为1:

4最小脉宽为1ms的高频脉冲,延时时间为2秒钟。

设置步骤如下:

(1)硬件设置

1)创建项目(取名为高频脉冲输出练习),选择CPU型号为CPU313C-2DP

2)打开该项目中的硬件组态工具并双击count进行属性-计数器话框。

见图5-65。

图5-65脉宽调制属性窗口

3)在属性-计数对话框中选择channel:

0;operating:

pulseWidthmodulation,并在弹出的对话框中选择OK键进行确定。

4)选择最后一个标签pulsewidthmodulation(脉宽调制标签)并进行operationparameter(操作参数)设置。

①Outputformat(输出格式):

选择permile。

输出格式为Permill或S7analog,

若输出格式选择Permill,则脉宽(Pulseduration)=Outp_val/1000*脉冲周期(Periodduration)。

若输出格式选择S7analog,则脉宽(Pulseduration)=Outp_val/27648*脉冲周期(Periodduration),该种形式适合S7模拟量转化成脉冲输出。

Outp_val是SFB49中的一个变量,可以在程序中随时修改脉冲宽度。

若Outp_val设置为500,则表示SFB49设置输出的高频脉冲为方波。

②timebase(时基):

选择0.1ms

③On-delay(接通延时):

20000

④period(周期):

10

⑤Minimumpulseperiod(最小脉宽):

2

⑥输入参数选择时,不选硬件门。

硬件门表示用模块所带输入点触发脉冲输出,相比软件门,硬件门用于更精确的要求。

产生中断调用OB40(必须在basicparameters选择中断)。

设置效果如图5-65。

5)按OK键确认设置,并双击DI6/DO16将CPU313C-2DP自带的输入输出点的地址由系统默认的124字节开始,修改为从0字节开始。

(2)编写程序调用系统功能块SFB49

1)打开组织块OB1,在library->standardlibrary->systemFunctionBlocks菜单下双击SFB49进行调用。

2)指定SFB49背景数据块为DB1(如果数据块不存在,程序编辑器将自动产生数据块中的变量,使其与SFB49的参数保持一致,成为SFB49的背景数据块)。

图5-66SFB49参数设置

3)对SFB49参数进行设置,结果如图5-66。

①参数CHANNEL:

通道号,表示从那个输出端子输出高频脉冲。

对不同的CPU,可以选择的通道数量也是不一样的。

CPU312C:

0to1;CPU313C:

0to2;CPU314C:

0to3。

若设置为0,表示从Q0.0输出高频脉冲;设置为1,表示从Q0.1输出高频脉冲;若设置为2,表示从Q0.2输出高频脉冲;若设置为3,表示从Q0.3输出高频脉冲。

②参数SW-EN:

软件门控位。

当I1.4为1时,启动脉冲输出。

③参数OUTP_VAL:

用来设置占空比的,若设置为500,则输出脉冲为方波。

4)在组织块OB1的Network2中添加如下语句,完成步进电机的方向控制功能。

见图5-67。

图5-67步进电机方向控制程序

对程序进行保存,下载组织块OB1和指定的数据块DB1到PLC。

注意由于数据块是用户据需要设置的,因此在使用时必须先下载到PLC中,否则在执行程序时,一旦PLC执行到需要访问数据块时,CPU将发生出错并停机,系统功能块SFB49集成在PLC的CPU中,因此不需要下载。

(3)进行联机调试

1)将PLC工作模式选择开关拨到RUN,按下I1.4(控制按钮(保持2秒钟以上),观察0通道的状态,可以看到0通道在等2秒之后,有高频脉冲输出。

对程序进行在线监控,观察M0.0,M0.2的状态,可以看到M0.0的状态与I1.3的状态一致,M0.2的状态与0通道的状态一致。

2)在电机运转过程中,切换I1.5的状态,观察电机驱动方向的不同。

三、项目实施-立体仓库站控制程序设计

1.立体仓库站结构组成与工作过程分析

立体仓库站它有20个存储工位,一个两轴的存取托盘,控制系统使用西门子S7-300PLC,上位机使用组态王进行仓库管理和监控,系统由步进电机驱动。

该站用来储存原材料和工件。

(1)立体仓库站外部结构组成

该工作站外部组成,见图5-68所示。

主要包括:

1)两轴的存取托盘,可以X轴,Y轴移动,由步进电机驱动;

2)立体仓库架子,20个存储工位;

3)载料台,由电磁阀驱动;

4)X轴,Y轴各5个光电传感器。

图5-68立体仓库站外部结构图

(2)立体仓库站控制系统组成

控制系统主要包括:

1)一套西门子PLC,及其编程软件

2)一套上位监控计算机和组态监控软件

3)工业现场总线接口与以太网接口

4)人机交换界面及其编程软件

5)I/O接口

6)硬件急停装置

7)按钮的输入界面

(3)气动回路原理图

立体仓库站的气动系统,主要包括空气压缩机、减压过滤装置、载料台驱动汽缸及两个磁性限位开关。

见图5-69。

图5-69立体仓库站气动系统原理图

(4)立体仓库站工作过程分析

立体仓库站共有20个工位。

载料台由X轴步进电机与Y轴步进电机两个步进电机驱动,能够进行X轴方向与Y轴方向的移动;载料台的伸出取件与缩回是由汽缸驱动;每个工位在立体仓库站的位置由行与列两个光电传感器来定义。

上电后,系统首先复位,X轴Y轴驱动载料台回原位,载料台处于缩回位置。

复位完成后,确定要取的零件位置,然后按下启动按钮,载料台在步进电机驱动下进行运动,当运动到指定位置后,Y轴步进电机驱动载料台先下降一段距离,使载料台低于零件平面,然后载料台伸出,伸出到位后,载料台在Y轴步进电机驱动下上升,把零件托起后,载料台缩回。

取件完成后,载料台在X轴与Y轴步进电机的驱动下,进行回原点运动。

回到原点后,把等待柔性自动线的传输站的机械手把取到的零件取走,则一个取件工作就完成了。

任意时刻,按下停止按钮,停止取件。

在设计过程中的注意事项:

1)Q0.0、Q0.1端口的输出脉冲周期不能小于0.5MS

2)自行设计仓位的状态信息(工件的有无建议用辅助寄存器M的位状态表示)

3)运行程序时要核对各仓位的实际情况与自己设置的是否一致。

4)确保控制电机运行时气缸没有伸出。

(5)立体仓库站I/0地址分配

立体仓库站I/0地址分配见表5-28。

表5-28立体仓库站I/0地址分配

输入

输出

符号

功能

地址

符号

功能

地址

XB1

第一列传感器

I0.0

CHANNEL0

X轴步进脉冲输出

Q0.0

XB2

第二列传感器

I0.2

CHANNEL1

Y轴步进脉冲输出

Q0.1

XB3

第三列传感器

I0.3

XDIR

X轴方向控制

Q0.2

XB4

第四列传感器

I0.5

YDIR

Y轴方向控制

Q0.3

XB5

第五列传感器

I0.6

1Y1

载料台伸出

Q0.4

YB1

第一层传感器

I1.0

1Y2

载料台缩回

Q0.5

YB2

第二层传感器

I1.1

YB3

第三层传感器

I1.2

YB4

第四层传感器

I1.7

YB5

载料台取件下降限位传感器

I0.7

1B1

载物台伸出位置

I0.1

1B2

载物台缩回位置

I1.6

SB1

启动按钮

I1.3

SB2

复位按钮

I1.4

SB3

停止按钮

I2.1

SB4

上电

I2.0

注:

光电传感器为PNP输出;X轴方向信号为1时,载料台前进;Y轴方向信号为1时,载料台上升

2.立体仓库站功能图设计

根据立体仓库站的工作过程分析及I/O地址分配,进行功能图的设计,见图5-70。

图5-70立体仓库站功能图

3.立体仓库站控制程序设计

(1)立体仓库站程序设计

1)程序设计要点:

①步进电机由SFB49实现控制

②采用结构化程序设计方法,设计一个取件的FB,通过参数调用的方法实现取不同位置的工件。

③复位操作的完成最好也设计一个FB来实现

④每个仓位由一个部位来标记。

可参见图5-71。

图5-71立体仓库站仓位标记表

2)程序设计

①脉宽调制参数设置,见图5-72。

将输出脉冲的频率设置为500HZ。

图5-72立体仓库站脉宽调制参数设置

②主程序,见图5-73。

主程序只编写了取6个件的控制程序。

若取完20个件,就按照仓位标记表调用FB2即可。

图5-73立体仓库站控制主程序OB1

③复位程序FB1。

见图5-74。

图5-74立体仓库站复位程序FB1

④取件控制程序FB2。

见图5-75。

图5-75立体仓库站取件控制程序FB2

(2)立体仓库站硬件组态

按照项目15介绍的硬件组态步骤,用SIMATICManager组态立体仓库站的硬件系统。

管理窗口见图5-76。

图5-76立体仓库站管理窗口

(3)立体仓库站程序输入

在OB1、FB1、FB2块进行程序输入。

输入完成后保存下载。

4.系统仿真

打开S7-PLCSIM仿真窗口,按照调试需要打开相应的输入、输出及中间继电器存储器。

见图5-77。

按照控制要求进行仿真调试,观察仿真结果是否满足设计要求。

若没有错误,则系统通电运行。

图5-77立体仓库站仿真窗口

四、立体仓库站运行

当系统上电后,需先按下“上电”按钮,这时复位灯开始闪动,按下“复位”按钮,待完全复位后,前按下“开始”按钮,系统可开始工作。

确定要取的零件的位置后,X轴电机与Y轴电机在程序的控制下运行到各自目标光电开关处停止,载料台下降至下限位后,载料台伸出,到位后,载料台在Y轴电机驱动下上升至Y轴目标位置,把零件托起后停止,然后载料台缩回,X轴电机与Y轴电机回原点后,取一个零件的任务完成。

然后按下启动按钮,再准备取下一个零件。

五、项目考评

1.考评方案

参见单元二项目1:

“五、项目考评”中“1.考评方案”。

2.考核评分表

柔性自动线立体仓库站控制考核评分表见表5-29。

表5-29柔性自动线立体仓库站考核评分表

项目序号与名称

项目17柔性自动线立体仓库站控制(S7-300PLC结构化编程)

班级

组号

总分

类别

序号

考核容

分值

工作记录

自评

小组

互评

教师

综合

知识问答

(30分)

1

S7-300PLC块的分类

5

2

S7-300PLC块的结构

5

3

S7-300PLC脉宽调制参数设置

5

4

SFB49参数设置功能

5

5

步进电机工作原理

5

6

FB与FC的区别

5

知识考核合计

30

项目实施(40分)

7

工作过程分析

8

8

功能图的设计

8

9

程序设计

8

1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2