《自动化生产线安装与调试》(高教版)同步教学

资源下载
  1. 二一教育资源

《自动化生产线安装与调试》(高教版)同步教学

资源简介

(共14张PPT)
自动化生产线安装与调试
项目十一 S7-300工作站网络组态
网络组态实例
硬件需求
物理连接
硬件网络组态
一、硬件需求
本节将通过一个项目实例来说明利用STEP 7建立和组态PROFIBUS和网络的方法。
项目实例要求:将CPU 315-2DP和CPU 313C-2DP连接并组态为PROFIBUS网络,前者作为主站,后者作为从站,并设定传输速率为1.5Mbit/s。具体步骤如下:
1)CPU 315-2DP和CPU 313C-2DP
2)插入PROFIBUS网卡CP5611的PC
3)PROFIBUS电缆及三个DP插头
二、物理连接
首先用工具制作带有三个街头的PROFIBUS电缆,并将两端街头上的拨码拨至ON,中间的接头拨码拨至OFF。然后利用这根电缆将PC、CPU 315-2DP和CPU 313C-2DP建立PROFIBUS网络物理连接。见图11-2。
图11-2 PROFIBUS网络物理连线
三、硬件网络组态
(1)新建项目
在STEP 7中创建一个新项目,插入两个SIMATIC 300 station,并重新命名为SIMATIC 315和 SIMATIC 313。用同样的方法插入一个PROFIBUS网络,双击图5-81中的PROFIBUS(1)对象,打开图形组态工具NetPro,在这个窗口显示出一条紫色的PROFIBUS线。选中这条线并右击打开快捷菜单,选择命令“对象属性(Object Properties)”,打开设置PROFIBUS网络参数对话框,选择“网络设置(Network Settings)”选项页,见图11-3。此时可以设置所有有关网络的参数,在此设置传输速率为“1.5Mbit/s”,行规为DP。
图11-3 插入PROFIBUS网络
三、硬件网络组态
图11-4 设定相关参数
三、硬件网络组态
(2)组态主站
硬件基本组态:双击SIMATIC 315的“Hardware”选项,按硬件安装次序和订货号依次插人机架、电源、CPU等进行硬件组态。设置MPI地址为2。
设置PROFIBUS地址:CPU 315-2DP是集成了DP接口的CPU,所以在机架上插入CPU时,会自动弹出PROFIBUS的属性对话框,如图所示。现在可设定PROFIBUS地址为2,并在“Subnet”中选择CPU要连接的PROFIBUS网络:PROFIBUS(1)(在实例中已经建立了一个PROFIBUS子网络)见图11-5。在此对话框中,还可以建立一个新的PROFIBUS网络参数或是删去一个已经存在的PROFIBUS网络。
图11-5 将CPU315主站连接到PROFIBUS(1)网络上
组态完成后一定要编译保存,这样一方面保存了组态设置,另一方面及时更新了系统数据。
三、硬件网络组态
(3)组态从站
硬件基本组态:双击SIMATIC 313的“Hardware”选项,按硬件安装次序和订货号依次插人机架、电源、CPU等进行硬件组态。
设置PROFIBUS地址:CPU 313-2DP也集成了DP接口,所以方法与组态主站时相同,设定PROFIBUS地址为3,并选择CPU要连接的PROFIBUS子网络:PROFIBUS(1)。注意: PROFIBUS子网络的地址要与前者一致,这样才能使两个站点在同一网络中通信。见图11-6。
设置从站方式:双击机架上CPU的DP栏,在网络属性窗口选择“Operation Mode”打开属性设置界面,选择“DP Slave”,如图11-7所示。
图11-6 从站PROFIBUS连接
图11-7 DP属性界面设置从站方式
三、硬件网络组态
(4)连接主站和从站
为了将CPU 313-2DP作为CPU 315-2DP的一个从站,在主站的硬件组态窗口中,打开硬件目录,选择“PROFIBUS DP”,并打开“Configuration Station”文件夹,选择CPU31x,将其拖拽到DP主站系统的PROFIBUS总线上,从而将其连接到DP网络上,此时自动弹出“DP-slave Properties”对话框,见图11-8,图11-9。在其中的“Connection”标签中选择已经组态过的从站,如果有多个从站时,要一个一个连接,上面已经组态完的S7 313C-2DP从站可在列表中看到,点击“Connect”按钮将其连接至网络。
图11-8 连接DP网络上的从站
图11-9 在主站中连接对应的从站
三、硬件网络组态
图11-10从站输出通信区的状态设置
为了使主站和从站能够正确通信,需要组态通信区。在“DP-slave Properties”对话框中点击:“Configuration(组态)”标签,设置主站的通信接口区,如图11-10、图11-11所示,务必确保DP主站的一个输出区域分配给DP从站的一个输入区域,反之亦然,这样数据的一发一送才能得到正确的数据。其中某些选项的设置与意义如下:
图11-11组态通信区的设置
①地址类型(Address type):选择输出(Output),表示将CPU 313-2DP从站作为数据的输出接口区;
②地址(Address):填入数据接收区的起始地址;
③长度(Length):设置传输数据长度为2B(最多32B);
④单位(Unit):传输单元为字节(Byte)数据。
三、硬件网络组态
(5)检查PROFIBUS通信设置是否完成
4.网络组态的硬件下载
点击 configure network 图标可以看到网络组态状态,主站和从站都挂在PROFIBUS(1)上,地址分别为2和3,达到要求。
第一次下载项目的硬件组态时,必须使用MPI编程电缆,将站的MPI地址作为下载入口,在下载时,首先设置PG/PC interface ,见图11-12。
图11-12 设置通信接口
先下载从站硬件组态:关主站和从站电源后,将编程电缆插在S7-300 CPU的MPI通信槽中,只打开从站电源,在硬件组态窗口中点击下载图标,将MPI地址为2、PROFIBUS地址为3的站的硬件组态下载到CPU 313-2DP。同样方法下载硬件组态到CPU 315-2DP。
重新打开主站和从站的电源,并将开关拨至RUN位置,这时两个CPU的指示灯都应为绿色,说明网络组态正常。
三、硬件网络组态
5.网络通信的检测
通过以下两个方法检查PROFIBUS网络通信是否正常。
(1)在设置PG/PC interface对话框中,设置为“S7ONLINE(STEP 7)CP5611(PROFIBUS)”,点击按钮“Diagnostics…..”打开“SIMATIC MET Diagnostics”对话框,点击按钮“Read”,观察到Bus Nodes 中地址为0、2、3的位置打了对勾,表示通信正常。0是PROFIBUS地址,2和3分别是主站和从站的地址。
(2)在SIMATIC管理器窗口中,点击按钮Accessible Nodes,打开所有在线的站,显示处PROFIBUS地址为2和3的站已经在线,表示通信正常。
谢 谢!(共22张PPT)
自动化生产线安装与调试
项目十 柔性自动线立体仓库站控制
S7-300PLC结构化编程
S7-300程序结构
S7-300程序设计方法
结构化编程
S7-300 PLC产生高频脉冲控制步进电机
一、S7-300程序结构
1、用户块
根据逻辑功能的不同,用户块分为组织块(OB,Organize Block),功能块(FB,Function Block),功能(FC,Function)和数据块(DB,Data Block)。
为了容易阅读和理解,在编程中常常将程序分为若干部分。每个程序部分具有其技术和功能基础,称之为块。块是程序中真正有用的部分,包括用户块和系统块。它们在功能、使用方法和结构上各个不同。
1)组织块(OB)
OB是操作系统和用户程序之间的接口。组织块只能由操作系统来启动。见图5-52。各种组织块由不同的时间启动,具有不同的优先级,而循环执行的主程序则在组织块OB1中。OB100为初始化程序块,0B10~OB17为日期时间中断组织块,0B20~OB23为延时中断组织块,OB30~OB38为循环中断组织块,OB40~OB47为硬件中断组织块,OB80~OB82为异步错误组织块(时间错误,电源故障处理,诊断中断,机架故障组织块OB86等等。
一、S7-300程序结构
1、用户块
根据逻辑功能的不同,用户块分为组织块(OB,Organize Block),功能块(FB,Function Block),功能(FC,Function)和数据块(DB,Data Block)。
为了容易阅读和理解,在编程中常常将程序分为若干部分。每个程序部分具有其技术和功能基础,称之为块。块是程序中真正有用的部分,包括用户块和系统块。它们在功能、使用方法和结构上各个不同。
1)组织块(OB)
OB是操作系统和用户程序之间的接口。组织块只能由操作系统来启动。见图5-52。各种组织块由不同的时间启动,具有不同的优先级,而循环执行的主程序则在组织块OB1中。OB100为初始化程序块,0B10~OB17为日期时间中断组织块,0B20~OB23为延时中断组织块,OB30~OB38为循环中断组织块,OB40~OB47为硬件中断组织块,OB80~OB82为异步错误组织块(时间错误,电源故障处理,诊断中断,机架故障组织块OB86等等。
一、S7-300程序结构
3)数据块DB
数据块分为背景数据块和共享数据块。
背景DB是和某个FB或SFB相关联,其内部数据的结构与其对应的FB或SFB的变量声明表一致。
共享DB的主要目的是为用户程序提供一个可保存的数据区,它的数据结构和大小并不依赖于特定的程序块,而是用户自己定义。需要说明的是,背景DB和共享DB没有本质的区别,它们的数据可以被任何一个程序块读写。
FC和FB都是用户自己编写的程序块,用户可以将具有相同控制过程的程序编写在FC或FB中,然后在主程序OB1或其他程序块中(包括组织块和功能、功能块)调用FC或FB。 FC或FB相当于子程序的功能,都可以定义自己的参数。
2)功能(FC)和功能块(FB)
2、系统块
系统块包含在操作系统中,包括:SFC(System Function),SFB(System Function Block),SDB(System Data Block) 。
SFC和SFB是预先编好的可供用户调用的程序块,它们已经固化在S7PLC的CPU中,其功能和参数已经确定。一台PLC具有哪些SFC和SFB功能,是由CPU型号决定的。具体信息可查阅CPU的相关技术手册。通常SFC和SFB提供一些系统级的功能调用,如通讯功能、高速处理功能等。注意:在调用SFB时,需要用户指定其背景数据块(CPU中不包含其背景数据块),并确定将背景数据块下载到PLC中。
一、S7-300程序结构
变量声明表中放着参数(形参)。参数是在调用块和被调用块之间传递的数据,包括输入,输出和输入输出变量。变量声明表结构如图10-3。
①输入(IN):为调用逻辑块提供数据,输入给逻辑块.
②输出(OUT):从逻辑块中输出数据结果
③输入/输出(IN/OUT):参数值可以输入,也可以输出。
④静态变量(STAT):存储于背景数据块中,块调用结束后,变量被保留
⑤临时变量(TEMP):存储于堆栈中,块执行结束后,变量消失。
为了保证功能或功能块对同一类设备的通用性,在编程中不能使用实际对应的存储区 地址参数,而是使用抽象参数,也就是形参。
3、块的结构
块是由变量声明表和程序组成。
1)变量声明表
图10-3功能FC和功能块FB的变量声明表
一、S7-300程序结构
2)FC和FB的变量声明表的差别:
①FC和FB参数赋值不同;
②FC没有自己的背景数据块;
③FB有自己的背景数据块;
④FC的参数必须指定实参;
⑤FB的参数可根据需要决定是否指定实参。
二、S7-300的程序设计方法
S7-300程序设计方法主要有三种:线性化编程、模块化编程、结构化编程。见图10-4。
图10-4 程序设计三种方法示意图
二、S7-300的程序设计方法
(1)线性化编程
线性化编程是将整个用户程序放在循环控制组织块OB1中,在CPU循环扫描时执行OB1中的全部指令。特点是结构简单。但由于所有的指令都在一个块中,结构不清晰,扫描时间过长。线性化编程示意图见图10-5。
模块化编程是将程序根据功能分为不同的逻辑块,且每个逻辑块完成的功能不同。在OB1中可以根据条件调用不同的功能或功能块。其特点是易于分工合作,调试方便。由于逻辑块是有条件调用,所以可以提高CPU的利用效率。模块化程序结构见图10-6。
图10-5线性化编程
线性程序的结构简单,分析起来一目了然。这种结构适用于编写一些规模较小,运行过程比较简单的控制程序。
(2)模块化编程
图10-6 模块化编程
分块程序有更大的灵活性,适用于比较复杂、规模较大的控制工程的程序设计。
二、S7-300的程序设计方法
3、结构化编程
结构化编程是将控制要求中类似或相关的任务归类,在功能或功能块中编程,形成通用解决方案。通过不同的参数调用相同的功能或通过不同的背景数据块调用相同的功能块。特点是:编写通用模块,对不同的设备代入不同的地址和参数,使更多的设备或过程可以使用此通用模块,因此具有很高的编程和程序调试效率。程序结构层次清晰,标准化程度高。结构化编程结构见图10-7。
图10-7结构化程序结构
结构化程序比分块程序有更大的灵活性,继承性。适用于比较复杂、规模较大的控制工程的程序设计。
三、结构化编程
为了支持结构化编程,在操作系统中包含了用户程序和系统程序。其中用户程序中通常包括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,见图10-8。
图10-8 插入一个FC
②双击FC1,进入编程环境,在变量声明表里设置形参,见图10-9。
图10-9 FC1变量声明表及通用程序
三、结构化编程
④双击0B1,进入主程序编写环境。不同的电机用不同的实参来取代形参来调用FC1。见图10-10。
③编写三台电机通用控制程序,保存下载,见图10-10。
图10-10 FC调用主程序
三、结构化编程
功能块是用户编写的有固定存储区的块,它是带记忆的逻辑块,有一个数据结构与功能块参数表完全相同的数据块(BD),称为背景数据块。当功能块被执行时,数据块被调用,功能块结束,调用随之结束,存放在背景数据块中的数据在块结束以后,仍能继续保持,具有记忆功能。
一个功能块可以有多个背景数据块,使功能块可以被不同的对象使用。
例2 控制要求是自动线上有两台电机,A,B。按下I0.0,A 电机启动(Q0.0得电),运行3秒后 停止。按下I0.1,B 电机启动(Q0.1得电),运行5秒后 停止。任何时候按下急停按钮I0.2,两台电机全停。采用FB调用的方法来实现控制要求。
2、FB的调用
结构化编程步骤如下:
①在组态窗口插入一个FB,见图10-11。
图10-11 插入FB
三、结构化编程
②双击FB1,进入编程环境,在变量声明表里设置形参。见图10-12。
图10-12FB1变量声明表及通用程序设计
③编写两台电机通用控制程序,保存下载。见图10-12。
④双击0B1,进入主程序编写环境。不同的电机用不同的实参来取代形参来调用FB1。见图10-13。因为在调用FB1时,需要背景数据块,背景数据块会自动生成。在调试运行时,注意别忘了将背景数据块下载。见图10-14。
三、结构化编程
图10-13 “FB调用”的主程序
图10-14 下载背景数据块
四、S7-300 PLC产生高频脉冲控制步进电机
(1)硬件设置
1)创建项目(取名为高频脉冲输出练习),选择CPU型号为CPU313C-2DP
采用S7-313C-2DP控制步进电机的运行和停止。在设计过程中,需调用SFB49脉宽调制功能块实现脉冲序列的输出控制,并通过Q0.3的输出控制步进电机的转动方向。
在CPU313C-2DP 模块的0通道通过软件门单独控制,产生周期为20ms,占空比为1:4最小脉宽为1ms的高频脉冲,延时时间为2秒钟。
设置步骤如下:
2)打开该项目中的硬件组态工具并双击count进行属性-计数器话框。见图10-15。
图10-15 脉宽调制属性窗口
四、S7-300 PLC产生高频脉冲控制步进电机
3)在属性-计数对话框中选择 channel :0;operating:pulse Width modulation,并在弹出的对话框中选择OK键进行确定。
4)选择最后一个标签pulse width modulation(脉宽调制标签)并进行operation parameter(操作参数)设置。
① Output format(输出格式):选择per mile。
输出格式为Per mill 或S7 analog,
若输出格式选择Per mill,则脉宽(Pulse duration)=Outp_val/1000*脉冲周期(Period duration)。
若输出格式选择S7 analog,则脉宽(Pulse duration)=Outp_val/27648*脉冲周期(Period duration),该种形式适合S7模拟量转化成脉冲输出。
Outp_val是SFB49中的一个变量,可以在程序中随时修改脉冲宽度。若Outp_val设置为500,则表示SFB49设置输出的高频脉冲为方波。
②time base(时基):选择0.1ms
③On-delay(接通延时):20000
④period(周期): 10
⑤Minimum pulse period(最小脉宽):2
⑥输入参数选择时,不选硬件门。
硬件门表示用模块所带输入点触发脉冲输出,相比软件门,硬件门用于更精确的要求。
产生中断调用OB40(必须在basic parameters选择中断)。
四、S7-300 PLC产生高频脉冲控制步进电机
5)按OK键确认设置,并双击DI6/DO16将CPU313C-2DP自带的输入输出点的地址由系统默认的124字节开始,修改为从0字节开始。
(2)编写程序调用系统功能块SFB49
1)打开组织块OB1,在library->standard library->system Function Blocks菜单下双击SFB49进行调用。
2)指定SFB49背景数据块为DB1(如果数据块不存在,程序编辑器将自动产生数据块中的变量,使其与SFB49的参数保持一致,成为SFB49的背景数据块)。
图10-16SFB49参数设置
3)对SFB49参数进行设置,结果如图10-16。
①参数CHANNEL:通道号,表示从那个输出端子输出高频脉冲。对不同的CPU,可以选择的通道数量也是不一样的。CPU 312C:0 to 1;CPU 313C:0 to 2;CPU 314C:0 to 3。若设置为0,表示从Q0.0输出高频脉冲;设置为1,表示从Q0.1输出高频脉冲;若设置为2,表示从Q0.2输出高频脉冲;若设置为3,表示从Q0.3输出高频脉冲。
②参数SW-EN:软件门控位。当I1.4为1时,启动脉冲输出。
③参数OUTP_VAL:用来设置占空比的,若设置为500,则输出脉冲为方波。
四、S7-300 PLC产生高频脉冲控制步进电机
4)在组织块OB1的Network 2中添加如下语句,完成步进电机的方向控制功能。见图10-17。
图10-17步进电机方向控制程序
对程序进行保存,下载组织块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的状态,观察电机驱动方向的不同。
谢 谢!(共16张PPT)
自动化生产线安装与调试
项目十 柔性自动线立体仓库站控制
立体仓库站控制项目实施
立体仓库站控制要求
I/O地址分配
立体仓库站功能图设计
立体仓库站控制程序设计
一、立体仓库站控制要求
立体仓库站共有20个工位。载料台由X轴步进电机与Y轴步进电机两个步进电机驱动,能够进行X轴方向与Y轴方向的移动;载料台的伸出取件与缩回是由汽缸驱动;每个工位在立体仓库站的位置由行与列两个光电传感器来定义。上电后,系统首先复位,X轴Y轴驱动载料台回原位,载料台处于缩回位置。复位完成后,确定要取的零件位置,然后按下启动按钮,载料台在步进电机驱动下进行运动,当运动到指定位置后,Y轴步进电机驱动载料台先下降一段距离,使载料台低于零件平面,然后载料台伸出,伸出到位后,载料台在Y轴步进电机驱动下上升,把零件托起后,载料台缩回。取件完成后,载料台在X轴与Y轴步进电机的驱动下,进行回原点运动。回到原点后,把等待柔性自动线的传输站的机械手把取到的零件取走,则一个取件工作就完成了。任意时刻,按下停止按钮,停止取件。
在设计过程中的注意事项:
1)Q0.0、Q0.1端口的输出脉冲周期不能小于0.5MS
2)自行设计仓位的状态信息(工件的有无建议用辅助寄存器M的位状态表示)
3)运行程序时要核对各仓位的实际情况与自己设置的是否一致。
4)确保控制电机运行时气缸没有伸出。
二、立体仓库站I/O地址分配
表10-1 立体仓库站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 注:光电传感器为PNP输出;X轴方向信号为1时,载料台前进;Y轴方向信号为1时,载料台上升
YB4 第四层传感器 I1.7
YB5 载料台取件下降限位传感器 I0.7
1B1 载物台伸出位置 I0.1
1B2 载物台缩回位置 I1.6
SB1 启动按钮 I1.3
SB2 复位按钮 I1.4
SB3 停止按钮 I2.1
SB4 上电 I2.0
三、立体仓库站功能图设计
根据立体仓库站的工作过程分析及I/O地址分配,进行功能图的设计,见图10-18。
图10-18立体仓库站功能图
四、控制程序设计
1、程序设计要点:
①步进电机由SFB49实现控制
②采用结构化程序设计方法,设计一个取件的FB,通过参数调用的方法实现取不同位置的工件。
③复位操作的完成最好也设计一个FB来实现
④每个仓位由一个内部位来标记。可参见图10-19。
图10-19 立体仓库站仓位标记表
四、控制程序设计
2、程序设计
①脉宽调制参数设置,见图10-20。将输出脉冲的频率设置为500HZ。
图10-20立体仓库站脉宽调制参数设置
四、控制程序设计
②主程序,见图10-21。
主程序只编写了取6个件的控制程序。若取完20个件,就按照仓位标记表调用FB2即可。
四、控制程序设计
图10-21 立体仓库站站控制主程序OB1
四、控制程序设计
③复位程序FB1。见图10-22。
图10-22 立体仓库站站复位程序FB1
四、控制程序设计
④取件控制程序FB2。见图10-23。
四、控制程序设计
四、控制程序设计
四、控制程序设计
图10-23 立体仓库站取件控制程序FB2
谢 谢!(共22张PPT)
自动化生产线安装与调试
项目十 柔性自动线立体仓库站控制
S7-300PLC结构化编程
S7-300程序结构
S7-300程序设计方法
结构化编程
S7-300 PLC产生高频脉冲控制步进电机
一、S7-300程序结构
1、用户块
根据逻辑功能的不同,用户块分为组织块(OB,Organize Block),功能块(FB,Function Block),功能(FC,Function)和数据块(DB,Data Block)。
为了容易阅读和理解,在编程中常常将程序分为若干部分。每个程序部分具有其技术和功能基础,称之为块。块是程序中真正有用的部分,包括用户块和系统块。它们在功能、使用方法和结构上各个不同。
1)组织块(OB)
OB是操作系统和用户程序之间的接口。组织块只能由操作系统来启动。见图5-52。各种组织块由不同的时间启动,具有不同的优先级,而循环执行的主程序则在组织块OB1中。OB100为初始化程序块,0B10~OB17为日期时间中断组织块,0B20~OB23为延时中断组织块,OB30~OB38为循环中断组织块,OB40~OB47为硬件中断组织块,OB80~OB82为异步错误组织块(时间错误,电源故障处理,诊断中断,机架故障组织块OB86等等。
一、S7-300程序结构
1、用户块
根据逻辑功能的不同,用户块分为组织块(OB,Organize Block),功能块(FB,Function Block),功能(FC,Function)和数据块(DB,Data Block)。
为了容易阅读和理解,在编程中常常将程序分为若干部分。每个程序部分具有其技术和功能基础,称之为块。块是程序中真正有用的部分,包括用户块和系统块。它们在功能、使用方法和结构上各个不同。
1)组织块(OB)
OB是操作系统和用户程序之间的接口。组织块只能由操作系统来启动。见图5-52。各种组织块由不同的时间启动,具有不同的优先级,而循环执行的主程序则在组织块OB1中。OB100为初始化程序块,0B10~OB17为日期时间中断组织块,0B20~OB23为延时中断组织块,OB30~OB38为循环中断组织块,OB40~OB47为硬件中断组织块,OB80~OB82为异步错误组织块(时间错误,电源故障处理,诊断中断,机架故障组织块OB86等等。
一、S7-300程序结构
3)数据块DB
数据块分为背景数据块和共享数据块。
背景DB是和某个FB或SFB相关联,其内部数据的结构与其对应的FB或SFB的变量声明表一致。
共享DB的主要目的是为用户程序提供一个可保存的数据区,它的数据结构和大小并不依赖于特定的程序块,而是用户自己定义。需要说明的是,背景DB和共享DB没有本质的区别,它们的数据可以被任何一个程序块读写。
FC和FB都是用户自己编写的程序块,用户可以将具有相同控制过程的程序编写在FC或FB中,然后在主程序OB1或其他程序块中(包括组织块和功能、功能块)调用FC或FB。 FC或FB相当于子程序的功能,都可以定义自己的参数。
2)功能(FC)和功能块(FB)
2、系统块
系统块包含在操作系统中,包括:SFC(System Function),SFB(System Function Block),SDB(System Data Block) 。
SFC和SFB是预先编好的可供用户调用的程序块,它们已经固化在S7PLC的CPU中,其功能和参数已经确定。一台PLC具有哪些SFC和SFB功能,是由CPU型号决定的。具体信息可查阅CPU的相关技术手册。通常SFC和SFB提供一些系统级的功能调用,如通讯功能、高速处理功能等。注意:在调用SFB时,需要用户指定其背景数据块(CPU中不包含其背景数据块),并确定将背景数据块下载到PLC中。
一、S7-300程序结构
变量声明表中放着参数(形参)。参数是在调用块和被调用块之间传递的数据,包括输入,输出和输入输出变量。变量声明表结构如图10-3。
①输入(IN):为调用逻辑块提供数据,输入给逻辑块.
②输出(OUT):从逻辑块中输出数据结果
③输入/输出(IN/OUT):参数值可以输入,也可以输出。
④静态变量(STAT):存储于背景数据块中,块调用结束后,变量被保留
⑤临时变量(TEMP):存储于堆栈中,块执行结束后,变量消失。
为了保证功能或功能块对同一类设备的通用性,在编程中不能使用实际对应的存储区 地址参数,而是使用抽象参数,也就是形参。
3、块的结构
块是由变量声明表和程序组成。
1)变量声明表
图10-3功能FC和功能块FB的变量声明表
一、S7-300程序结构
2)FC和FB的变量声明表的差别:
①FC和FB参数赋值不同;
②FC没有自己的背景数据块;
③FB有自己的背景数据块;
④FC的参数必须指定实参;
⑤FB的参数可根据需要决定是否指定实参。
二、S7-300的程序设计方法
S7-300程序设计方法主要有三种:线性化编程、模块化编程、结构化编程。见图10-4。
图10-4 程序设计三种方法示意图
二、S7-300的程序设计方法
(1)线性化编程
线性化编程是将整个用户程序放在循环控制组织块OB1中,在CPU循环扫描时执行OB1中的全部指令。特点是结构简单。但由于所有的指令都在一个块中,结构不清晰,扫描时间过长。线性化编程示意图见图10-5。
模块化编程是将程序根据功能分为不同的逻辑块,且每个逻辑块完成的功能不同。在OB1中可以根据条件调用不同的功能或功能块。其特点是易于分工合作,调试方便。由于逻辑块是有条件调用,所以可以提高CPU的利用效率。模块化程序结构见图10-6。
图10-5线性化编程
线性程序的结构简单,分析起来一目了然。这种结构适用于编写一些规模较小,运行过程比较简单的控制程序。
(2)模块化编程
图10-6 模块化编程
分块程序有更大的灵活性,适用于比较复杂、规模较大的控制工程的程序设计。
二、S7-300的程序设计方法
3、结构化编程
结构化编程是将控制要求中类似或相关的任务归类,在功能或功能块中编程,形成通用解决方案。通过不同的参数调用相同的功能或通过不同的背景数据块调用相同的功能块。特点是:编写通用模块,对不同的设备代入不同的地址和参数,使更多的设备或过程可以使用此通用模块,因此具有很高的编程和程序调试效率。程序结构层次清晰,标准化程度高。结构化编程结构见图10-7。
图10-7结构化程序结构
结构化程序比分块程序有更大的灵活性,继承性。适用于比较复杂、规模较大的控制工程的程序设计。
三、结构化编程
为了支持结构化编程,在操作系统中包含了用户程序和系统程序。其中用户程序中通常包括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,见图10-8。
图10-8 插入一个FC
②双击FC1,进入编程环境,在变量声明表里设置形参,见图10-9。
图10-9 FC1变量声明表及通用程序
三、结构化编程
④双击0B1,进入主程序编写环境。不同的电机用不同的实参来取代形参来调用FC1。见图10-10。
③编写三台电机通用控制程序,保存下载,见图10-10。
图10-10 FC调用主程序
三、结构化编程
功能块是用户编写的有固定存储区的块,它是带记忆的逻辑块,有一个数据结构与功能块参数表完全相同的数据块(BD),称为背景数据块。当功能块被执行时,数据块被调用,功能块结束,调用随之结束,存放在背景数据块中的数据在块结束以后,仍能继续保持,具有记忆功能。
一个功能块可以有多个背景数据块,使功能块可以被不同的对象使用。
例2 控制要求是自动线上有两台电机,A,B。按下I0.0,A 电机启动(Q0.0得电),运行3秒后 停止。按下I0.1,B 电机启动(Q0.1得电),运行5秒后 停止。任何时候按下急停按钮I0.2,两台电机全停。采用FB调用的方法来实现控制要求。
2、FB的调用
结构化编程步骤如下:
①在组态窗口插入一个FB,见图10-11。
图10-11 插入FB
三、结构化编程
②双击FB1,进入编程环境,在变量声明表里设置形参。见图10-12。
图10-12FB1变量声明表及通用程序设计
③编写两台电机通用控制程序,保存下载。见图10-12。
④双击0B1,进入主程序编写环境。不同的电机用不同的实参来取代形参来调用FB1。见图10-13。因为在调用FB1时,需要背景数据块,背景数据块会自动生成。在调试运行时,注意别忘了将背景数据块下载。见图10-14。
三、结构化编程
图10-13 “FB调用”的主程序
图10-14 下载背景数据块
四、S7-300 PLC产生高频脉冲控制步进电机
(1)硬件设置
1)创建项目(取名为高频脉冲输出练习),选择CPU型号为CPU313C-2DP
采用S7-313C-2DP控制步进电机的运行和停止。在设计过程中,需调用SFB49脉宽调制功能块实现脉冲序列的输出控制,并通过Q0.3的输出控制步进电机的转动方向。
在CPU313C-2DP 模块的0通道通过软件门单独控制,产生周期为20ms,占空比为1:4最小脉宽为1ms的高频脉冲,延时时间为2秒钟。
设置步骤如下:
2)打开该项目中的硬件组态工具并双击count进行属性-计数器话框。见图10-15。
图10-15 脉宽调制属性窗口
四、S7-300 PLC产生高频脉冲控制步进电机
3)在属性-计数对话框中选择 channel :0;operating:pulse Width modulation,并在弹出的对话框中选择OK键进行确定。
4)选择最后一个标签pulse width modulation(脉宽调制标签)并进行operation parameter(操作参数)设置。
① Output format(输出格式):选择per mile。
输出格式为Per mill 或S7 analog,
若输出格式选择Per mill,则脉宽(Pulse duration)=Outp_val/1000*脉冲周期(Period duration)。
若输出格式选择S7 analog,则脉宽(Pulse duration)=Outp_val/27648*脉冲周期(Period duration),该种形式适合S7模拟量转化成脉冲输出。
Outp_val是SFB49中的一个变量,可以在程序中随时修改脉冲宽度。若Outp_val设置为500,则表示SFB49设置输出的高频脉冲为方波。
②time base(时基):选择0.1ms
③On-delay(接通延时):20000
④period(周期): 10
⑤Minimum pulse period(最小脉宽):2
⑥输入参数选择时,不选硬件门。
硬件门表示用模块所带输入点触发脉冲输出,相比软件门,硬件门用于更精确的要求。
产生中断调用OB40(必须在basic parameters选择中断)。
四、S7-300 PLC产生高频脉冲控制步进电机
5)按OK键确认设置,并双击DI6/DO16将CPU313C-2DP自带的输入输出点的地址由系统默认的124字节开始,修改为从0字节开始。
(2)编写程序调用系统功能块SFB49
1)打开组织块OB1,在library->standard library->system Function Blocks菜单下双击SFB49进行调用。
2)指定SFB49背景数据块为DB1(如果数据块不存在,程序编辑器将自动产生数据块中的变量,使其与SFB49的参数保持一致,成为SFB49的背景数据块)。
图10-16SFB49参数设置
3)对SFB49参数进行设置,结果如图10-16。
①参数CHANNEL:通道号,表示从那个输出端子输出高频脉冲。对不同的CPU,可以选择的通道数量也是不一样的。CPU 312C:0 to 1;CPU 313C:0 to 2;CPU 314C:0 to 3。若设置为0,表示从Q0.0输出高频脉冲;设置为1,表示从Q0.1输出高频脉冲;若设置为2,表示从Q0.2输出高频脉冲;若设置为3,表示从Q0.3输出高频脉冲。
②参数SW-EN:软件门控位。当I1.4为1时,启动脉冲输出。
③参数OUTP_VAL:用来设置占空比的,若设置为500,则输出脉冲为方波。
四、S7-300 PLC产生高频脉冲控制步进电机
4)在组织块OB1的Network 2中添加如下语句,完成步进电机的方向控制功能。见图10-17。
图10-17步进电机方向控制程序
对程序进行保存,下载组织块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的状态,观察电机驱动方向的不同。
谢 谢!(共15张PPT)
自动化生产线安装与调试
项目九 S7-300PLC控制拆卸分拣站
拆卸分拣站项目实施
拆卸分拣站工作过程分析
拆卸分拣站I/O地址分配
拆卸分拣站功能图设计
拆卸分拣站控制程序设计
一、拆卸分拣站工作过程分析
拆卸分拣站的工作过程主要包括两个内容:工件拆卸和小件分检传送。
系统上电后,按下复位按钮,系统先复位,6个汽缸回到初始工作状态:拆卸缸上升,回位,放大工件缸伸出,夹爪缸张开,伸出缸缩回,下降缸上升。当碰到相应限位开关时,复位完成,开始灯亮。复位时放大工件缸伸出的目的是为了接收生产线的传输机构传送过来的要进行拆卸的工件。复位完成后,按下开始按钮,放大工件缸先缩回,缩回至回位限位开关后,拆卸缸下降,1S后,拆卸缸上升,拆卸完成。当拆卸缸上升至上极限,放大工件缸伸出,至伸出位,然后放大工件缸缩回。放大工件缸这次伸出的目的是将拆卸下来的小零件推出到传送带上。当放大工件缸缩回至回位限位后,电机运行,拖动传输带输送小件。10S后,将小零件运送至指定位置,电机停止运行。放大工件缸再次伸出,至伸出位,将拆卸好的工件送出,同时接收将要拆卸的工件。
1、工件拆卸工作过程分析
一、拆卸分拣站工作过程分析
当小件被推到输送带上时,颜色传感器就对其颜色进行检测,若是蓝色的小件,当工件通过传感器有信号输出时,则挡料缸伸出,在输送带运行过程中,将小件挡在挡料缸位置;挡料缸伸出到限位开关处,机械手伸出,伸出到位后,机械手开始下降,1S后,机械手夹爪爪关,夹取小零件,1S后,机械手下降缸开始夹着小件上升,至上升位时,机械手缩回缩回,至缩回位,机械手再次下降,1S后,下降至预定高度,机械手爪开,放开小零件,小件落入料筐中;当夹爪缸至张开位,下降缸再次上升,当下降缸至上升位,结束。若是黑色的小件,挡料缸与机械手都不动作,小件随着输送带运行,直至落入放黑色小件的料筐中。
2、小件分检传送工作过程分析
二、拆卸分拣站I/O地址分配
表9-14 拆卸分拣站I/0地址分配
输入 输出
符号 功能 地址 符号 功能 地址
1B1 放大工件缸缩回位 I0.0 1Y1 放大工件缸缩回 Q0.0
1B2 放大工件缸伸出位 I0.1 1Y2 放大工件缸伸出 Q0.1
2B1 拆卸缸上升位 I0.2 2Y1 拆卸缸向下伸出 Q0.2
3B1 挡料缸缩回位 I0.3 3Y1 挡料缸伸出 Q0.3
3B2 挡料缸伸出位 I0.4 3Y2 挡料缸缩回 Q0.4
B1 工件通过传感器 I0.5 4Y1 伸出缸伸出 Q0.5
4B1 伸出缸缩回位 I0.6 4Y2 伸出缸缩回 Q0.6
4B2 伸出缸伸出位 I0.7 5Y1 下降缸向下伸出 Q0.7
5B1 下降缸上升位 I1.0 6Y1 夹爪缸爪关 Q1.0
6B1 夹爪缸张开位 I1.1 6Y2 夹爪缸爪开 Q1.1
B2 颜色传感器 I1.2 K1 电机继电器 Q1.2
SB1 开始按钮 I1.3 L1 开始灯 Q1.4
SB2 复位按钮 I1.4 L2 复位灯 Q1.5
SB4 停止按钮 I1.6 L3 上电 Q1.6
SB5 上电 I1.7
三、拆卸分拣站功能图设计
根据拆卸分拣站的工作过程分析及I/O地址分配,进行功能图的设计,见图9-18与9-19。
图9-18拆卸分拣站功能图(1)
三、拆卸分拣站功能图设计
图9-19 拆卸分拣站功能图(2)
四、拆卸分拣站控制程序设计
1、拆卸分拣站程序设计
根据功能图进行控制程序设计,见图9-20。
四、拆卸分拣站控制程序设计
四、拆卸分拣站控制程序设计
图9-20拆卸分检站控制程序
四、拆卸分拣站控制程序设计
图9-21 拆卸分检站硬件组态
2、拆卸分拣站硬件组态
按照项目21介绍的硬件组态步骤,用SIMATIC Manager组态拆卸分拣站的硬件系统。见图9-21。
3、拆卸分拣站程序输入
在OB1块进行程序输入。输入完成后保存下载。
四、拆卸分拣站控制程序设计
4.系统仿真
打开S7-PLCSIM仿真窗口,按照调试需要打开相应的输入、输出及内部继电器存储器。见图9-23。按照控制要求进行仿真调试,观察仿真结果是否满足设计要求。若没有错误,则系统通电运行。
图9-23 拆卸分拣站仿真窗口
四、拆卸分拣站控制程序设计
谢 谢!

展开更多......

收起↑

资源列表