840D810D的PLC启动与PLC高级功能应用Word格式.docx
《840D810D的PLC启动与PLC高级功能应用Word格式.docx》由会员分享,可在线阅读,更多相关《840D810D的PLC启动与PLC高级功能应用Word格式.docx(45页珍藏版)》请在冰豆网上搜索。
●COMPA子目录:
低版本系统升级,修改备份数据用工具
●OP17子目录:
使用OP17面板时,可用的OP17组态文件。
●QFK.MPF子目录:
过象限补偿用程序。
●WIZARD.BSP:
扩展用户接口(ExpandingtheOperatorInterface)功能实例,包括HMIAdvancedh和HMIEmbedded的实例。
NCVAR目录:
NC变量选择器软件。
S7HW目录:
SINUMERIK810D/840Di/840DAdd-onforSTEP7,用于增加STEP7硬件列表中SINUMERIK840D/810D的硬件器件。
安装过程中,硬件列表中的TYPE,GSD和Meta文件将被升级。
从Toolbox06.03.03和STEP7版本5.1开始,可以在SIMATIC管理器中可直接创建PLC系列文档(seriesarchive)。
7.1.2PLC基本程序
在810D/840D中,通常有OB1,OB40,OB100这3个组织块,跟普通的PLC300一样,操作系统根据不同的触发事件主动到内存中寻找相应的OB块执行,而不需要用户调用。
所有的用户程序FC/FB都是在组织块中调用,CPU在执行OB块的过程中按照调用的顺序执行FB/FC。
PLC程序的结构决定于OB1和OB100,在OB1、0B100中必须调用基本的PLC程序,用于MCP控制、车床PLC程序、刀具管理以及机床辅助功能等。
OB1循环地执行,在执行OB1的过程中,有其他事件触发中断OB1,则保护断点、执行OB40,OB40执行一次,然后返回断点,执行OB1。
PLC基本程序包含在GP8X0D上。
OB1扫描循环开始,基本的PLC程序必须在用户程序之前执行,先要建立起与NCK进行数据交换,进行通讯。
所有的NCK/PLC接口信号在循环程序OB1中执行,为了减小循环时间,仅把控制和状态相关的接口信号传输到循环程序中,其它的辅助功能、G功能仅在需要的时候由NCK触发。
OB40是触发事件的组织块,有中断事件发生,则立即执行OB40。
OB100是暖启动模式上电时执行一次的组织块,在NC中由于有DB块的数据需要保存,所以只能是执行OB100暖启动,而不可能执行冷启动,否则DB数据无法保存。
比如刀库换刀之后,刀库映像保存在DB块中,执行换刀指令后,要刷新DB块,使之与实际刀库一致,断电之后刀库数据不能丢失,否则无法正确换刀。
在OB100中可以实现系统初始化以及NC/PLC同步等功能。
比如,在OB100中调用FB1(对应的背景DB7)用于系统通讯的NC/PLC同步初始化动作。
表7-1所示为PLC基本程序中组织块的介绍。
PLC的基本程序结构如图7-5所示。
表7-1PLC基本程序中组织块
图7-5PLC基本程序结构
由于PLC基本程序提供了很多FC/FB用于实现数控系统中的功能,用户在定义自己的功能时,建立的FC/FB或者是DB块都不能够与基本程序冲突,否则有可能导致系统运行不正常或无法启动。
表7-2~表7-4为PLC基本程序中提供的FC、FB以及DB的简要介绍。
表7-2PLC基本程序中提供FC的简要介绍
表7-3PLC基本程序中提供FB的简要介绍
另外,FB15是西门子出厂自带的功能块,是利用高级语言编写的,不能够清除掉,必须在系统上才能够正常运行。
表7-4PLC基本程序中提供DB的简要介绍
7.2PLC启动
通常,PLC基本程序在用户编写的程序之后执行。
PLC基本程序主要承担PLC用户程序与NCK,HMI,MCP之间的数据和信号交换任务(循环信号、事件信号、消息)。
循环信号包括指令(PLC->
NCK,比如start,stop指令)和状态信息(来自NCK,比如程序正在运行,中断等)。
在OB1循环中执行。
事件驱动信号(NCK->
PLC),PLC完成工件加工程序中的辅助功能,如果这些辅助功能被执行,那么这些辅助功能块将会决定NCK是否处于等待状态(比如换刀过程),还是处于同步执行。
数据传输过程必须要快速并且安全,为了减少对NC加工过程的影响,数据传输通过“报警”和“确认”来控制。
PLC基本程序评估这些信号,并向NCK发送确认信号,在循环程序开始时传输数据。
事件驱动信号(PLC->
NCK),PLC向NCK发送请求(比如运行辅助轴),这种类型的信号通过FB,FC来出发执行。
消息,用户消息也是通过基本PLC程序来实现的,用户消息存储在PLC的诊断缓冲区中,同时也可以通过人机界面显示在OP单元上。
在FunctionManualBasicFunctions上的PLCbasicprogrampl可以查看到PLC基本程序的详细描述。
7.2.1硬件组态
在STEP7软件中完成机床PLCCPU的硬件配置,包括信号模块的配置。
在PG/PC上装载工具盘;
在STEP7SIMATIC管理器下建立新项目;
插入硬件站进行硬件组态并保存编译,如图7-6所示。
图7-6PLC硬件组态
7.2.2PLC基本启动
利用PLC基本程序启动数控系统的PLC按照如下步骤:
●将Toolbox光盘放入光驱中,点击setup,系统会自动安装最新版的PLC标准程序,如果想安装其他版本的程序需自己选中相应版本的文件夹手动安装;
●运行STEP7软件,新建(或打开)一个Project;
●
选择FileOpenLibrary选择Gp8X0d65OK;
●将Gp8x0d65中的gp8x0d文件夹复制到刚才新建(或打开)的项目下,如图7-7所示(注:
复制完毕后立刻关闭Gp8x0d65项目,不可以在Gp8x0d65的项目下修改任何文件);
●打开复制后的gp8X0d文件夹,选中Bausteine(德文,=Blocks),Download(建议下载之前将PLC设置为STOP);
●下装成功后,将PLC设置为RUN,MCP上LED不再闪烁。
图7-7拷贝基本PLC程序
此时,虽然PLC项目启动起来了,但是机床控制面板还不能够操作,这是由于PLC项目并没有处理机床控制面板。
根据实际情况启动机床控制面板,在这里已标准铣床控制面板为例。
打开OB1,在CALLFC2指令下面新建一个Network,键入以下程序:
CALLFC19
BAGNo:
=B#16#1//模式组in
CHANNo:
=B#16#1//通道数in
SpindleIFNo:
=B#16#3//主轴轴号,把哪个轴作为主轴in
FeedHold:
=DB21.DBX6.0//禁止进给的接口信号out,
SpindleHold:
=DB33.DBX4.3//主轴停止进给的接口信号out,
保存OB1,然后把OB1下装到PLC,此时机床控制面板上有LED亮(如JOG,Ref,Feed_OFF,SP_OFF),代表机床控制面板启动正常。
但是到目前为止,运行轴的话会有一个轴使能丢失的提示信息,只要把轴的PLC使能加上去就可以了。
这里在CALLFC19后面再插入一个新的Network并编程:
SET
=DB31.DBX1.5//测量系统,每个轴最多有两个位置测量系统,encoder或光栅,用DB31.DBX1.5/6指定,NC在同一时刻只能选择一个测量系统,因此必须通过NC判断来选择切换反馈测量系统。
=DB31.DBX2.1//Controlenable控制器使能信号
=DB31.DBX21.7//脉冲使能信号,可以在service中查看servicedrive信号,PLC的控制如何让NC获知,就是通过接口信号DB31.DBX21.7。
复制2份并修改为(根据用户自己,需要启动多少根轴,这里启动3根轴):
=DB32.DBX1.5
=DB32.DBX2.1
=DB32.DBX21.7
=DB33.DBX1.5
=DB33.DBX2.1
=DB33.DBX21.7
保存之后,把程序块下载到PLC中,轴及主轴可以运转。
7.2.3理解启动组织块OB100
在启动组织块OB100中,默认调用了FB1,FB1用于实现PLC/NCK在启动过程中的同步,也正是由于在启动过程中PLC/NCK之间同步,整个系统才能够正常工作运行。
FB1是一个非常关键的基本程序,用户必须要理解其各个参数的含义及用途。
基本程序OB100里主要调用了功能块FB1,其主要参数注释如下:
CALLFB1,DB7
MCPNum:
=1//机床操作面板MCP的数量
MCP1IN:
=P#I0.0//第一机床操作面板的输入起始地址
MCP1OUT:
=P#Q0.0//第一机床操作面板的输出起始地址
MCP1StatSend:
=P#Q8.0//第一机床操作面板发送状态双字
MCP1StatRec:
=P#Q12.0//第一机床操作面板接受状态双字MCP1
BUSAdr:
=6//第一机床操作面板的总线地址
MCP1Timeout:
=S5T#700MS//第一机床操作面板循环扫描监控时间
MCP1Cycl:
=S5T#200MS//第一机床操作面板循环扫描时间
MCP2IN:
=//第二机床操作面板的输入起始地址
MCP2OUT:
=//第二机床操作面板的输出起始地址
MCP2StatSend:
=//第二机床操作面板发送状态双字
MCP2StatRec:
=//第二机床操作面板接受状态双字
MCP2BUSAdr:
=//第二机床操作面板的总线地址
MCP2Timeout:
=//第二机床操作面板循环扫描监控时间
MCP2Cycl:
=//第二机床操作面板循环扫描时间
MCPMPI:
=//所有机床操作面板通过MPI连接
MCP1Stop:
=//=0:
传送第一面板信号;
=1停止传送第一面板信号
MCP2Stop:
传送第二面板信号;
=1:
停止传送第二面板信号
MCP1NotSend:
=//=0发送,接收第一面板信号;
只接受,不发送信号
BHG:
=//=0:
没有手持单元=1:
手持单元通过MPI连接(SDB210)
BHGIn:
=//手持单元输入起始地址
BHGOut:
=//手持单元输出起始地址
BHGStatSend:
=//手持单元发送状态双字
BHGStatRec:
=//手持单元接收状态双字
BHGInLen:
=//手持单元接收的数据长度
BHGOutLen:
BHGCycl:
=//手持单元循环扫描时间
BHGRecGDNo:
=
BHGRecGBZNo:
BHGRecObjNo:
BHGSendGDNo:
BHGSendGBZNo:
BHGSendObjNo:
BHGMPI:
=//=1:
手持单元通过MPI连接
BHGStop:
BHGNotSend:
NCCyclTimeout:
=S5T#200MS
NCRunupTimeout:
=S5T#50S
ListMDecGrp:
=//扩展M译码的数量
NCKomm:
=//允许NC和PLC之间交换数据
MMCToIF:
=//传送MMC信号到接口
HWheelMMC:
=//=1,通过MMC选择手轮
MsgUser:
=//用户信息区的数量
UserIR:
=//
IRAuxfuT:
IRAuxfuH:
IRAuxfuE:
UserVersion:
MaxBAG:
=//方式组数
MaxChan:
=//通道数
MaxAxis:
=//轴数
ActivChan:
=//当前生效的通道
ActivAxis:
=//当前生效的轴
UDInt:
=//PLC机床数据,整数格式
UDHex:
=//PLC机床数据,十六进制格式
UDReal:
=//PLC机床数据,实数格式
7.3PLC高级功能的应用
除了前面提到的利用基本程序启动PLC,涉及到FC2、FC3、FC19以及FB1等。
事实上,在PLC基本程序库中,提供了大量的程序块,可以实现用户的功能。
比如读写NC变量、PI服务任务、读取GUD变量、PLC轴的控制等,在本节中通过一些简单的例子来说明常用的PLC程序块的高级功能应用。
7.3.1FB2的应用
在SINUMERIK840D/810D的PLC基本程序中提供了FB2(ReadGETNCvariable)和FB3用于读写NC的系统变量。
FB2是PLC基本程序提供的程序块,用于从NCK读取变量。
比如用FB2读出当前正在执行程序的行号,并写到R参数中,记录下来。
这样,用户可以在突然断电后根据R参数中的数值,便知道程序执行到哪里了,然后利用程序段搜索功能,继续从被中断的程序段开始加工。
要使用好FB2功能块,需要了解功能块的接口参数,包括参数名称、接口类型、参数类型、参数取值范围以及参数含义。
表7-5所示为FB2的接口参数说明。
表7-5FB2的接口参数说明
查看错误标识
任务正常执行,且读取到数据
任务或执行有故障
行地址,可选变量寻址
列地址,可选变量寻址
对应于Addr1到Addr8
上升沿任务启动
需要读取的变量个数
从NC变量选择器得到的变量标识
区域地址,可选变量寻址
信号
O
参数说明
参数值
参数类型
接口类型
读取数据的目标区域
FB2执行有故障的话,在参数Error中有输出,可以通过错误标识参数查询故障的类型,如表7-6所示。
表7-6FB2执行的故障代码
备注
描述
状态
检查参数NumVar
检查地址(变量名,区域,UNIT参数)
变量地址无效
参数Unit,column,line包含0值
变量寻址错误
任务必须重新启动
传送忙
RD1-RD8可能是局部数据
目标区域错误
基本程序OB100中参数NCKomm未设置
选项未设置
FIFO满
变量转换错误,DOUBLE变量类型不属于S7REAL类型
格式转换错误
读取变量的长度超过在RD1~RD8中指定长度,在高字节中显示有哪个变量出现错误
本地用户存储空间不足
内部错误,NCRESET
任务未执行
任务的变量编译错误
读取变量时在高字节发生错误的个数
任务错误
访问错误
利用FB2读取NC变量的操作步骤:
●利用NC变量选择器选择需要读取的NC变量,得到所生成的数据块的源文件,该源文件包含系统变量信息。
●编译源文件得到用户数据块,可以下载到PLC中。
●在用户PLC项目程序中编写程序调用FB2。
●在OB100中,把FB1的参数“NCKomm”修改为1。
●保存项目并下载到PLC中。
在这里以读取坐标系当前值为例子,介绍如何使用NC变量选择器,以及如何调用FB2编程序。
启动NC变量选择器,NC变量选择器在系统的TOOL-BOX光盘中,可以单独安装运行。
点击“新建”图标,出现一个“打开”对话框,如果安装了多个版本的NC变量选择器,那么根据系统版本的要求选择变量的软件版本,比如本例中安装了Ver6.4和Ver7.2版本,则有两个变量版本可以选择,SW64以及SW72,根据系统版本选择SW64,如图7-8所示。
选择ncv_NcData.mdb打开,如图7-9所示。
在各类变量中,如果不确定如何找到自己所需要的变量,则可以通过帮助菜单查询,如图7-10所示。
根据变量的分类说明可以容地找出所需要的变量。
确定需要哪个变量之后可以通过查找功能把这个变量找出来,如图7-11所示。
比如要查找坐标位置值,因为坐标位置值位于SMA组,通过查找功能查找SMA组,如图7-12所示。
选中轴的实际位置值变量,并双击打开,出现一个对话框,对话框中Unit-No为通道号,Line为轴号。
可以在这里直接根据实际情况修改通道号与轴号,也可以在Unit-No和Line中写入0,当PLC程序调用FB2时,再指定通道号与轴号,如图7-13所示。
本例中在Unit-No和Line中写入0,然后点击OK。
图7-8启动NC变量选择器并新建文件
图7-9选择NC变量ncv_NcData.mdb
图7-10NC变量的帮助系统
图7-11查找NC变量
图7-12查找NC变量组
图7-13指定Unit-No和Line
选择数据块号,点击菜单Code中Selection选项,输入最后要生成的数据块号,比如输入120,即生成DB120,如图7-14所示。
图7-14选择数据块号
保存变量文件名,比如Act_Pos.var,如图7-15所示。
图7-15保存NC变量
点击菜单Code中Generate选项,生成数据块的源文件,如图7-16所示。
图7-16生成数据块的源文件
选择存储数据块源文件的路径与文件名,比如命名为Act_Pos.awl,退出NC变量选择器。
打开STEP7项目,选中S7程序中的源文件,点击Insert菜单中的ExternalSource选项,如图7-17所示。
图7-17在项目中插入源文件
选中插入刚才通过NC变量选择器生成的数据块源文件Act_Pos.awl,并打开。
打开Act_Pos.awl源文件,并编译。
如果编译不出错误将会生成数据块DB120。
可以为DB120在符号表中编辑一个符号,比如Act_Position。
在用户PLC项目中调用FB2,比如在OB1中调用FB2,分配背景数据块为DB121。
CALLFB2,DB121
Req:
=E7.5
NumVar:
=1
Addr1:
="
Act_Position"
.C0_SMA_actToolBasePos0_2
Unit1:
=B#16#1
Column1:
=
Line1:
=W#16#2
Addr2:
Unit2:
Column2:
Line2:
Addr3:
Unit3:
Column3:
Line3:
Addr4:
Unit4:
Column4:
Line4:
Addr5:
Unit5:
Column5:
Line5:
Addr6:
Unit6:
Column6:
Line6:
Addr7:
Unit7:
Column7:
Line7:
Addr8:
Unit8:
Column8:
Line8:
Error:
=M160.0
NDR:
=M160.1
State:
=MW162
RD1:
=MD180
RD2:
RD3:
RD4:
RD5:
RD6:
RD7:
RD8:
7.3.2FB3的应用
FB3PUT,写NC变量,通过PLC用户程序FB3把变量写到NCK区域中。
FB3的用法与FB2的调用类似,当调用FB3时,需要一个上升沿的请求任务信号Req,任务启动之后,PLC数据SD1到SD8,将会写到对应的NC变量Addr1到Addr8中。
表7-7所示为FB3的接口参数说明。
表7-7FB3的接口参数说明
SD1-SD8
行地址,可