840D_810D的PLC启动与PLC高级功能应用 下载本文

第7章 840D/810D的PLC启动与PLC高级功能应用

启动SINUMERIK 840D/810D数控系统的PLC必须借助于西门子提供的TOOLBOX工具盘,TOOLBOX工具盘提供了与系统版本相匹配的基本程序库以及硬件信息,同时还提供了一个NC变量选择器用于选择NC变量。在本章中,主要介绍如何启动数控系统的PLC以及应用PLC基本程序块。 7.1 PLC调试

SINUMERIK 840D系统的组件通过OPI接口连接在一起,传输速率为1.5Mbaud(810D只能连接MPI接口传输波特率为187.5Kbaud),所有部件都被给予一个预定的MPI地址如图7-1所示。只有当多个MMC和多个NC相连接(M:N连接器)才需要改变地址。

图7-1 SINUMERIK 840D系统组件的连接

SINUMERIK 840D提供了2个接口。当使用MPI接口(X122)时必须设MPI=2,而对OPI接口(X101)则MPI=13,在PG/PC上对传送速度进行正确的设置。 上装站点项目到PC;通过菜单Destination station -> Load station to PG 可将PLC程序保存到SIMATIC项目中。程序块和硬件组态都传到项目中。在屏幕表格“Select station addres“中,要选择机架0和槽位0。传送速度为187.5Kbit/s时选MPI地址2,而在1.5Mbit/s选OPI地址13。

7.1.1 TOOLBOX的介绍

840D/810D集成了PLC模块,PLC程序分为基本程序和用户程序,用户的程序是在基本程序的基础上建立的。数控系统的TOOLBOX包含了840D系统地PLC基本程序,可以从Step7的SIMATIC管理器下打开,并下装到PLC中。它包含的是SIEMENS编写的现成的块,这些块采用结构化编程,具有通用性,可以实现代码共用,对于用户来说只需要了解其形参的含义并正确地给它赋实际参数值。

TOOLBOX6.4/6.5版本之后增加了PLC符号表生成器,TOOLBOX包括PLC基本程序、数控硬件SINU HW ADD ON STEP7、NC VAR SELECTOR、做用户扩展界面的例子。NC系统版本要与TOOLBOX版本对应,TOOLBOX向下兼容。

图7-2是TOOLBOX光盘的所有目录。安装TOOLBOX工具盘时,点击“setup”,出现画面如图7-3所示,安装的时候,有3项内容可选择安装。

PLC Basic Program for 8x0D V6.5:PLC基本程序,必须安装。

SINUMERIK 810D/840D Add-on for STEP7 V5.2.1.0:硬件信息,必须安装。 NCVar Selector:NC变量选择器,如果用到PLC读写NC变量的功能(比如FB2/FB3),需要安装,否则,可不安装。

如果TOOLBOX是其它版本的则可以在“\\8x0d”目录下选择合适的版本,如图7-4所示。

图7-2 TOOLBOX工具盘的内容

图7-3 TOOLBOX工具盘的安装

图7-4 选择兼容的版本安装

子目录BSP_PROG中存放的是一些PLC例程,比如带显示屏的手持操作单元的标准例程、mini手持的标准例程等。

子目录PLC_BP是PLC基本程序(使用根目录下的SETUP.EXE进行安装)。

子目录PLCALARM中存放的PLCALARM.ZIP是用户编写PLC文本的框架。(使用PCU20的用户可在此文件的基础上编写报警文本,之后通过串口电缆传入PLC20)。

CERTIFICATE目录下存放的是安全集成功能认证的文本及样例。 EXAMPLES_TOOLS目录

? COMPA子目录:低版本系统升级,修改备份数据用工具 ? OP17子目录:使用OP17面板时,可用的OP17组态文件。 ? QFK.MPF子目录:过象限补偿用程序。

? WIZARD.BSP:扩展用户接口(Expanding the Operator Interface)功能实例,包括

HMI Advancedh和HMI Embedded的实例。 NCVAR目录:NC变量选择器软件。

S7HW目录:SINUMERIK 810D/840Di/840D Add-on for STEP 7,用于增加STEP7硬件列表中SINUMERIK 840D/810D 的硬件器件。安装过程中,硬件列表中的TYPE, GSD 和 Meta 文件将被升级。

从Toolbox 06.03.03和STEP 7 版本5.1开始,可以在SIMATIC 管理器中可直接创建PLC系列文档(series archive)。 7.1.2 PLC基本程序 在810D/840D中,通常有OB1, OB40, OB100这3个组织块,跟普通的PLC 300一样,操作系统根据不同的触发事件主动到内存中寻找相应的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-1 PLC基本程序中组织块

图7-5 PLC基本程序结构

由于PLC基本程序提供了很多FC/FB用于实现数控系统中的功能,用户在定义自己的功能时,建立的FC/FB或者是DB块都不能够与基本程序冲突,否则有可能导致系统运行不正常或无法启动。表7-2~表7-4为PLC基本程序中提供的FC、FB以及DB的简要介绍。

表7-2 PLC基本程序中提供FC的简要介绍

表7-3 PLC基本程序中提供FB的简要介绍

另外,FB15是西门子出厂自带的功能块,是利用高级语言编写的,不能够清除掉,必须在系统上才能够正常运行。

表7-4 PLC基本程序中提供DB的简要介绍

7.2 PLC启动 通常,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单元上。 在Function Manual Basic Functions上的PLC basic program pl可以查看到PLC基本程序的详细描述。 7.2.1 硬件组态 在STEP 7软件中完成机床PLC CPU的硬件配置,包括信号模块的配置。 在PG/PC上装载工具盘;在STEP7 SIMATIC管理器下建立新项目;插入硬件站进行硬件组态并保存编译,如图7-6所示。

图7-6 PLC硬件组态

7.2.2 PLC基本启动

利用PLC基本程序启动数控系统的PLC按照如下步骤:

? 将Toolbox光盘放入光驱中,点击setup,系统会自动安装最新版的PLC标准程序,

如果想安装其他版本的程序需自己选中相应版本的文件夹手动安装; ? 运行STEP7软件,新建(或打开)一个Project;

? 选择File Open Library 选择Gp8X0d65 OK;

? 将Gp8x0d65中的gp8x0d文件夹复制到刚才新建(或打开)的项目下,如图7-7

所示(注:复制完毕后立刻关闭 Gp8x0d65项目,不可以在Gp8x0d65的项目下修改任何文件);

? 打开复制后的gp8X0d 文件夹, 选中Bausteine(德文,=Blocks),Download(建

议下载之前将PLC设置为STOP);

? 下装成功后,将PLC设置为RUN ,MCP上LED不再闪烁。

图7-7 拷贝基本PLC程序

此时,虽然PLC项目启动起来了,但是机床控制面板还不能够操作,这是由于PLC项目并没有处理机床控制面板。根据实际情况启动机床控制面板,在这里已标准铣床控制面板为例。打开OB1,在CALL FC2指令下面新建一个Network,键入以下程序: CALL FC19

BAGNo: =B#16#1 //模式组 in CHANNo: =B#16#1 //通道数 in

Spindle IFNo: =B#16#3 //主轴轴号,把哪个轴作为主轴 in Feed Hold: =DB21.DBX6.0 //禁止进给的接口信号 out,

Spindle Hold: =DB33.DBX4.3 //主轴停止进给的接口信号 out ,

保存OB1,然后把OB1下装到PLC,此时机床控制面板上有LED亮(如JOG,Ref,Feed_OFF,SP_OFF),代表机床控制面板启动正常。

但是到目前为止,运行轴的话会有一个轴使能丢失的提示信息,只要把轴的PLC使能加上去就可以了。这里在CALL FC19 后面再插入一个新的Network并编程: SET

=DB31. DBX1.5 //测量系统,每个轴最多有两个位置测量系统,encoder或

光栅,用DB31. DBX1.5/6指定,NC在同一时刻只能选择一个测量系统,因此必须通过NC判断来选择切换反馈测量系统。 =DB31. DBX2.1 //Control enable控制器使能信号

=DB31. DBX21.7 //脉冲使能信号,可以在service中查看service drive信号,

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,其主要参数注释如下: CALL FB 1, DB7

MCPNum :=1 // 机床操作面板MCP 的数量

MCP1IN :=P# I0.0 // 第一机床操作面板的输入起始地址 MCP1 OUT :=P#Q0.0 // 第一机床操作面板的输出起始地址 MCP1 StatSend :=P#Q8.0 // 第一机床操作面板发送状态双字

MCP1 StatRec :=P#Q12.0 // 第一机床操作面板接受状态双字MCP1 BUS Adr :=6 //第一机床操作面板的总线地址

MCP1 Timeout :=S5T#700MS // 第一机床操作面板循环扫描监控时间 MCP1 Cycl :=S5T#200MS // 第一机床操作面板循环扫描时间 MCP2IN := // 第二机床操作面板的输入起始地址 MCP2 OUT := // 第二机床操作面板的输出起始地址 MCP2 StatSend := // 第二机床操作面板发送状态双字 MCP2 StatRec := // 第二机床操作面板接受状态双字 MCP2 BUS Adr := //第二机床操作面板的总线地址

MCP2 Timeout := // 第二机床操作面板循环扫描监控时间 MCP2 Cycl := // 第二机床操作面板循环扫描时间 MCPMPI := // 所有机床操作面板通过MPI 连接

MCP1Stop := // =0: 传送第一面板信号;=1 停止传送第一面板信号 MCP2Stop := // =0: 传送第二面板信号;=1:停止传送第二面板信号 MCP1NotSend := //=0 发送,接收第一面板信号;=1:只接受,不发送信号 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.3 PLC高级功能的应用

除了前面提到的利用基本程序启动PLC,涉及到FC2、FC3、FC19以及FB1等。事实上,在PLC基本程序库中,提供了大量的程序块,可以实现用户的功能。比如读写NC变量、PI服务任务、读取GUD变量、PLC轴的控制等,在本节中通过一些简单的例子来说明常用的PLC程序块的高级工能应用。 7.3.1 FB2的应用

在SINUMERIK 840D/810D的PLC基本程序中提供了FB2(Read GET NC variable)和FB3用于读写NC的系统变量。FB2是PLC基本程序提供的程序块,用于从NCK读取变量。比如用FB2读出当前正在执行程序的行号,并写到R参数中,记录下来。这样,用户可以在突然断电后根据R参数中的数值,便知道程序执行到哪里了,然后利用程序段搜索功能,继续从被中断的程序段开始加工。

要使用好FB2功能块,需要了解功能块的接口参数,包括参数名称、接口类型、参数类型、参数取值范围以及参数含义。表7-5所示为FB2的接口参数说明。

表7-5 FB2的接口参数说明

信号

接口类型

参数类型

参数值

参数说明

上升沿任务启动 需要读取的变量个数

对应于Addr1到Addr8

从NC变量选择器得到的变量标识 区域地址,可选变量寻址 列地址,可选变量寻址 行地址,可选变量寻址

O O O

任务或执行有故障

任务正常执行,且读取到数据 查看错误标识 读取数据的目标区域

FB2执行有故障的话,在参数Error中有输出,可以通过错误标识参数查询故障的类型,如表7-6所示。

表7-6 FB2执行的故障代码

状态 描述 备注

访问错误 任务错误 任务未执行

本地用户存储空间不足

读取变量时在高字节发生错误的个数 任务的变量编译错误 内部错误,NC RESET

读取变量的长度超过在RD1~RD8中指定长度,在高字节中显示有哪个变量出现错误

格式转换错误 FIFO满 选项未设置 目标区域错误 传送忙 变量寻址错误 变量地址无效

变量转换错误,DOUBLE变量类型不属于S7 REAL 类型 任务必须重新启动

基本程序OB100中参数NCK omm未设置 RD1-RD8可能是局部数据 任务必须重新启动

参数Unit, column, line包含0值 检查地址(变量名,区域,UNIT参数) 检查参数NumVar

利用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-10 NC变量的帮助系统

图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菜单中的External Source选项,如图7-17所示。

图7-17 在项目中插入源文件

选中插入刚才通过NC变量选择器生成的数据块源文件Act_Pos.awl,并打开。打开Act_Pos.awl源文件,并编译。如果编译不出错误将会生成数据块DB120。可以为DB120在符号表中编辑一个符号,比如Act_Position。

在用户PLC项目中调用FB2,比如在OB1中调用FB2,分配背景数据块为DB121。 CALL FB 2 , DB121

Req :=E7.5 NumVar :=1

Addr1 :=\ 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.2 FB3的应用

FB3 PUT,写NC变量,通过PLC用户程序FB3把变量写到NCK区域中。FB3的用法与FB2的调用类似,当调用FB3时,需要一个上升沿的请求任务信号Req,任务启动之后,PLC数据SD1到SD8,将会写到对应的NC变量Addr1到Addr8中。表7-7所示为FB3的接口参数说明。

表7-7 FB3的接口参数说明 信号

接口类型

参数类型

参数值

参数说明

上升沿任务启动 需要读取的变量个数

对应于Addr1到Addr8

从NC变量选择器得到的变量标识 区域地址,可选变量寻址 列地址,可选变量寻址 行地址,可选变量寻址

O O O

SD1-SD8

任务或执行有故障

任务正常执行,且读取到数据 查看错误标识 读取数据的目标区域

FB3执行有故障的话,在参数Error中有输出,可以通过错误标识参数查询故障的类型,如表7-8所示。

在这里以用FB2读出当前正在执行程序的行号,并通过FB3写到R参数中,记录下来,通过这个例子来说明FB2/FB3如何应用。

事实上,这个例子在实际应用中也是有价值的,比如操作者在突然断电后根据R参数中的数值,便知道程序执行到哪里了,然后利用程序段搜索,继续被中断的加工。 CALL \ Req :=M240.1 NumVar :=1

Addr1 :=DB140.C1_SPARP_actLineNumber Unit1 :=B#16#1 Column1:=

Line1 :=W#16#1 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 :=M200.0 NDR :=M200.1 State :=MW202

RD1 :=DB142.DBD0 RD2 := RD3 := RD4 := RD5 := RD6 := RD7 := RD8 :=

AN M 240.1 S M 240.1 O M 200.0 O M 200.1 R M 240.1 CALL \ Req :=M240.2 NumVar :=1

Addr1 :=DB140.C1_RP_rpa2_1

Unit1 := Column1:= Line1 := 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 :=M200.2 Done :=M200.3 State :=MW220

SD1 :=DB142.DBD4 SD2 := SD3 := SD4 := SD5 := SD6 := SD7 := SD8 :=

AN M 240.2 S M 240.2

O M 200.2 O M 200.3 R M 240.2

L DB142.DBD 0

DTR //Dword transfer to Real

T DB142.DBD 4

表7-8 执行FB3的错误代码

状态 描述 备注

访问错误 任务错误 任务未执行

本地用户存储空间不足

读取变量时在高字节发生错误的个数 任务的变量编译错误 内部错误,NC RESET

读取变量的长度超过在RD1~RD8中指定长度,在高字节中显示有哪个变量出现错误

格式转换错误 FIFO满 选项未设置 目标区域错误 传送忙 变量寻址错误 变量地址无效

变量转换错误,DOUBLE变量类型不属于S7 REAL 类型 任务必须重新启动

基本程序OB100中参数NCK omm未设置 RD1-RD8可能是局部数据 任务必须重新启动

参数Unit, column, line包含0值 检查地址(变量名,区域,UNIT参数) 检查参数NumVar

7.3.3 FB4/FC9的应用

FB4 PI_SERV可以用于在NCK区域中启动一个程序任务服务。某些程序需要实现特殊的功能,比如刀具管理功能中在刀库里面搜索一个空刀位,这种功能可以在NCK中通过PI服务来实现启动。当调用FB4,通过上升沿信号Req启动一个任务,任务执行正常且没有错误,则参数Done输出为1,否则可以查看错误代码确定错误类型,表7-9所示为FB4的参数说明。

表7-9 FB4的参数说明

信号

接口类型

参数类型

参数值

参数说明

上升沿任务启动 PI服务任务

默认为\

区域数量 根据PI服务任务

整形或字的变量,根据PI服务任务 任务没有正常执行 任务正常执行

从PLC启动的PI服务任务可以由表7-10查询,详细地说明需要具体查看功能手册。在FB4中输入变量Unit, Addr ..., WVar...的含义取决于PI服务的任务。

表7-10 PLC启动的PI服务任务 PI 服务 ASUB CANCEL CONFIG DIGION DIGIOF FINDBL LOGIN LOGOUT NCRES SELECT SETUDT PI 服务 CRCEDN CREACE CREATO SETUFR DELECE DELETO MMCSEM TMCRTO TMFDPL TMFPBP TMMVTL TMPOSM TMPCIT 功能描述 分配中断任务 执行取消任务 重新配置机床数据MD的值 在指定的通道激活数字化 在指定的通道取消数字化 激活段搜索功能 激活密码服务 触发NC RESET 选择通道中的加工程序 设置当前的用户数据,比如刀具偏置、坐标变换、可设定坐标系等 激活用户坐标变换功能 刀具管理服务 通过指定刀沿号建立新刀沿 建立下一个未分配的刀沿号 通过指定T号建立刀具 激活用户坐标变换 删除刀沿 删除刀具 各种PI服务的信号指示,用于MMC和PLC 建立刀具 搜索用于装刀的空刀位 搜索空刀位 准备用于装载/卸载刀具的刀位 刀位或刀具的位置 设置工件计数器的增量值 错误代码

TMRASS TRESMO TSEARC 复位激活状态 复位监控值 用于搜索屏幕表格的复杂搜索 比如,在某些机床上,需要在执行加工程序的同时监控某个外部条件,当条件满足时调用相应的处理子程序。这个功能的实现就可以通过FB4来实现,先调用FB4将中断号与子程序做个连接(机床上电后,只需要执行一次即可),当条件满足后调用FC9触发中断。这也就是所谓的异步子程序功能。

任意准备一个主程序和一个子程序,本例中准备DEMO.MPF和ASYN.SPF,装载到NC RAM中,并选择DEMO.MPF。

DEMO.MPF

G0 X0 Y0 Z50 G1 X200 F100 Y200 X0 Y0 M30 ASYN.SPF

G0 X150 Y150 G4 F5 M17

新建一个项目,然后建立一个数据块DB100,如图7-18所示,在PLC用户程序中调用FB4,如图7-19所示。

图7-18 建立FB4使用的数据块DB100

图7-19 在PLC程序中调用FB4

调用FC9触发中断,FC9 ASUB,用于从PLC中启动一个异步子程序,FC9的参数说明如表7-11所示。

表7-11 FC9的参数说明

信号 Start ChanNo IntNo Active Done Error StartErr Ref 类型 输入 输入 输入 输出 输出 输出 输出 数据类型 BOOL INT INT BOOL BOOL BOOL BOOL WORD 值 1-10 1-8 描述 NC的通道号 中断号 1=激活 1=ASUB完成 1=中断关闭 1=中断号未分配 全局变量(MW, DBW) FC9内部使用的字 在OB1中继续调用FC9,如图7-20所示。

图7-20 调用FC9触发中断

测试时,上电之后按下I7.5键,启动DEMO.MPF程序,运行过程中,随时按下I7.7都可以中断掉DEMO.MPF程序,而转去执行ASYN.SPF程序,之后返回DEMO.MPF程序,如果要恢复到被中断的那一句,则在子程序M17前用REPOS指令。 7.3.4 FB5的应用

通过FB5 GETGUD程序,在PLC用户程序中可以从NCK中读取GUD用户自定义的变量,FB5的参数说明如表7-12所示。

表7-12 FB5的参数说明

信号

接口类型 参数类型

参数值

参数说明

上升沿任务启动

GUD变量名称,数据类型为STRING 区域地址:0-NCK 2-通道

NCK区域: Unit=1 通道区域: 通道号

域索引 1-变量,如果没有使用域索引,变量值为0

域索引 2-变量,如果没有使用域索引,变量值为0

激活产生一个变量令牌 10个字节的令牌地址

任务没有响应或任务执行错误

任务执行正常 错误标识号 须要写入的数据

如果FB5执行有故障的话,在参数Error中有输出,可以通过错误标识参数查询故障的类型,如表7-13所示。

在系统中事先定义好用户变量,假设变量TEST1为用户定义的GUD。创建一个PLC项目,然后插入一个数据块DB101,数据块分配符号为read_GUD,如图7-21所示。

图7-21 创建用于FB5数据块DB101

在PLC用户程序OB1中调用FB5,如图7-22所示。

图7-22 在OB1中调用FB5

下装程序,当按下I7.7时,用户变量TEST1的数值便会读到MD110中。

表7-13 执行FB5的错误代码 状态

描述

访问错误 任务错误 任务未执行

任务的变量编译错误 内部错误,NC RESET

备注

数据区域或数据类型不符 FIFO满 选项未设置 目标区域错误 传送忙 变量寻址错误

变量地址无效

检查RD读入的数据 任务必须重新启动

基本程序OB100中参数NCK omm未设置 -RD可能是局部数据 任务必须重新启动 参数Unit包含0值

检查地址(变量名,区域,UNIT参数)

7.3.5 FB7的应用

FB7功能的详细说明可以参照FB4,FB7 PI_SERV2与FB4的区别在WVar1的数量以及参数序列,所有的FB4的功能都可以通过FB7实现,FB7的参数说明如表7-14所示。

创建PLC项目,通过TOOL BOX启动基本PLC功能,建立一个数据块DB110,如图7-23所示。

图7-23 建立用于FB7的数据块DB100

表7-14 FB7的参数说明

信号

接口类型

参数类型

参数值

参数说明

上升沿任务启动

[DBName].[VarName] 默认为\

PI服务任务 区域数量 根据PI服务任务

整形或字的变量,根据PI服务任务

任务没有正常执行 任务正常执行 错误代码

在OB1中调用FB7,分配背景数据块DB111,如图7-24所示。

图7-24 FB7的调用例程

编写一个DEMO.MPF程序并下装到NC RAM中,按下I7.7则选择了DEMO.MPF程序。

7.3.6 PLC轴的控制

PLC轴的运动可以与其它的NC轴运行不同步,运动位移的产生与路径和同步无关,在任何操作模式下,PLC轴运动的方式,、运动位移的距离以及运动位移的速度可以直接通过PLC直接处理,而不受NC程序的控制。PLC轴属于非插补轴,可以与加工同时执行运动,一般并不参与世纪的加工过程。通常用于刀库的控制、工作台的交换、分度工作台以及其他的外围装置等,从而可以大量的减少非生产时间。PLC控制轴的运动方式、运动位移距离和运动位移速度可以直接由PLC程序给出而不执行系统的插补指令。

FC15 POS_AX用于线性轴以及旋转轴的定位功能,其参数功能如表7-15所示。FC15的功能在系统软件版本SW3.6之后都已经集成在FC18中,所以对于新的应用场合,不再需要调用FC15。

为了能够通过PLC功能运行NC轴,必须在PLC中执行激活操作,比如FC15 POS_AX程序块具有激活功能的参数。

表7-15 FC15的参数功能

信号

类型

数据类型

取值范围

描述

须要运行的轴号 0-绝对,1-增量

1=手轮调修

线性轴位置:mm,旋转轴:deg 线性轴速率:mm/min,旋转轴:deg/min 1=到位信号 1=激活 轴不能被启动

运行过程中的错误信息,需要在PLC中由用户诊断

FC16 PART_AX用于索引轴的定位,其参数功能如表7-16所示。FC16的功能在系统软

件版本SW3.6之后都已经集成在FC18中,所以对于新的应用场合,不再需要调用FC16。

表7-16 FC16的参数功能

信号

类型

数据类型

取值范围

描述

需要运行的轴号 0-绝对,1-增量

0=指定方向,1=最短路径,当DC=1,则参数IC,Minus,Plus必须为0 0=旋转轴作为线性轴运行,1=旋转轴负向运行

0=旋转轴作为线性轴运行,1=旋转轴正向运行 索引轴位置 进给率:

线性轴:mm/min,旋转轴:deg/min 1=到位信号 1=激活 轴不能被启动

运行过程中的错误信息,需要在PLC中由用户诊断

FC18 SpinCtrl,用于控制从PLC控制轴或主轴,支持主轴定位、主轴旋转、主轴摆动、索引轴以及定位轴,表7-17~表7-22所示为各种功能的参数说明。

表7-17 FC18用于主轴定位的参数说明 Start Funct Mode AxisNo Pos FRate InPos Error State 初始化信号 1=主轴定位 定位模式1,2,3,4 机床轴号 位置 定位速度,如果FRate=0,则使用MD35300的值 当定位达到精确准停,则被置位为1 定位错误时,被置位为1 错误代码 表7-18 FC18用于主轴旋转的参数说明 Start Stop Funct Mode AxisNo FRate InPos 启动旋转的初始化信号 停止旋转的初始化信号 2=主轴旋转 定位模式5,旋转方向M4;定位模式不等于5,旋转方向M3 机床轴号 定位速度 当定位启动没有故障 Error State 定位错误时,被置位为1 错误代码 表7-19 FC18用于主轴摆动的参数说明

Start Stop Funct AxisNo Pos InPos Error State 启动摆动的初始化信号 停止摆动的初始化信号 3=主轴摆动 机床轴号 设置齿轮级 设定速度输出 定位错误时,被置位为1 错误代码 表7-20 FC18用于索引轴运行的参数说明 Start Funct Mode AxisNo Pos FRate InPos Error State 启动初始化信号 4=索引轴 定位模式0,1,2,3,4 机床轴号 索引轴 定位速度,FRate=0,则使用机床数据POS_AX_VELO中的值 当定位达到精确准停,则被置位为1 定位错误时,被置位为1 错误代码 表7-21 FC18用于定位轴运行的参数说明 Start Funct Mode AxisNo Pos FRate InPos Error State 启动初始化信号 5-8=定位轴 定位模式0,1,2,3,4 机床轴号 定位 定位速度,FRate=0,则使用机床数据POS_AX_VELO中的值 当定位达到精确准停,则被置位为1 定位错误时,被置位为1 错误代码 表7-22 FC18用于具有自动档位选择的主轴旋转的参数说明 Start Stop Funct Mode AxisNo FRate InPos Error State 启动旋转的初始化信号 停止旋转的初始化信号 9=带有档位选择的主轴旋转 定位模式5,旋转方向M4;定位模式不等于5,旋转方向M3 机床轴号 定位速度 设定速度输出 定位错误时,被置位为1 错误代码 表7-23 FC18用于具有恒定切削速率的主轴旋转的参数说明 Start 启动旋转的初始化信号 Stop Funct 停止旋转的初始化信号 B#16#0A=具有恒定切削速率的主轴旋转,m/min B#16#0B=具有恒定切削速率的主轴旋转,feet/min Mode AxisNo FRate InPos Error State 定位模式5,旋转方向M4;定位模式不等于5,旋转方向M3 机床轴号 定位速度 设定速度输出 定位错误时,被置位为1 错误代码 以FC18控制PLC轴的定位轴功能为例,说明FC18的应用。建立用户项目程序,在OB1中调用FC18,如图7-25所示。

图7-25 FC18控制PLC轴的定位轴功能

如果 FC18 (使用轴定位功能时) 和Reset (通道或方式组复位)同时生效, 可能会导致使用FC18定位的这根轴不能再次运动。在这种情况下,状态会在轴信号DB3x.dbb68=1010 0001上反映出来并且不能恢复,只有重新上电。

这种情况可能发生在下列情况:

- 在执行FC18前正好刚刚执行过RESET ,而RESET还未执行完。 - 在启动FC18的同时或1个PLC扫描周期后执行了RESET。 解决办法就是防止在执行复位时调用FC18。

7.4 PLC机床数据的应用

PLC机床数据是一种非常简单,并且使用方便的NC/PLC之间交换数据的方法,用途也很广泛。比如机床厂可以通过PLC机床数据来实现第一测量系统和第二测量系统的切换。

再比如,机床厂生产机床时经常会有同一个类型的机床所配的附件不同的情况,可能这台有排屑器,而另外一台没有。但从机床PLC程序的调试和管理上来说,一个类型的机床最好使用同一个PLC程序,这样便于优化PLC程序,也方便机床调试和服务人员的工作。 调试时,调试人员只需要设置某些机床数据,就可以激活或关闭某个机床功能。

PLC机床数据就正好适应这种模块化PLC程序的应用,所谓PLC机床数据,实际上是在通用数据(General MD)中设定的,但它会在下次NCK RESET之后,或重新上电后,被

传送到 PLC的数据块DB20中,这样PLC就可以使用了,比如根据某些设定位决定某些PLC程序是否执行。具体使用方法如下:

? 根据需要设定下列数据

MD 14504 MAXNUM_USER_DATA_INT // 整型数据的数量

MD 14506 MAXNUM_USER_DATA_HEX // 十六进制数据的数量 MD 14508 MAXNUM_USER_DATA_FLOAT //浮点数数据的数量

MD14504/MD14506/MD14508设定的数量决定了MD14510/MD14512/MD14514下

标的个数,比如设置为4则下标为[0]~[3]。

? NCK RESET使所设数据生效

如果是修改了MD14504/MD14506/MD14508,则在复位之前删除PLC内存中的DB20。 ? 根据需要在下面数据中添入要传送到PLC的数据

MD 14510 USER_DATA_INT [n] // 整型数据的值 MD 14512 USER_DATA_HEX [n] // 十六进制数据的值 MD 14514 USER_DATA_FLOAT [n] //浮点数数据的值 比如,这里设置如下:

MD14510 USER_DATA_INT [0] = 1 MD14510 USER_DATA_INT [1] = 2 MD14510 USER_DATA_INT [2] = 3 MD14510 USER_DATA_INT [3] = 4 MD14510 USER_DATA_INT [4] = 5 MD 14512 USER_DATA_HEX [0] = 11H MD 14512 USER_DATA_HEX [1] = 22H MD 14512 USER_DATA_HEX [2] = 33H MD 14512 USER_DATA_HEX [3] = 44H MD 14512 USER_DATA_HEX [4] = 55H MD 14514 USER_DATA_FLOAT [0] = 1.111 MD 14514 USER_DATA_FLOAT [1] = 2.222 MD 14514 USER_DATA_FLOAT [2] = 3.333 MD 14514 USER_DATA_FLOAT [3] = 4.444 MD 14514 USER_DATA_FLOAT [4] = 5.555 ? NCK RESET使上面所设数据生效 ? 用变量监控DB20的变量值

不同的数据使用的数据类型不同(MD14510的数据占用1个字;MD14512的数据占用1个字节,而MD14514的数据占用一个双字。)可以取MD14512数据中其中的某一位来实现一个软开关的动作,例如DB20.DBX10.4 = 1。