1.PLC启动
(1)硬件组态 首次送电,在STEP7软件中完成机床PLCCPU的硬件组态配置,包括信号模块的地址分配。
1)根据NC卡的版本选择合适的PLC程序版本。常用的PLC版本为6.5及7.4。先将系统的组态下载,与实际配置进行对照。
2)将计算机与840D系统连接上后,打开STEP7,建立新项目。
3)选择PLC,Upload Station to PG,在弹出的对话框中按下“VIEW”按钮,再按“OK”键,有需要覆盖的地方选择“YesToAll”。
4)上载后,打开SIMATIC300(1)中的Hardware,查看系统组态与实际配置模块上的地址是否一致,不一致的话进行修改。组态修改完成后,可以将基本程序进行下载传输。
5)将需要传输的程序复制到SIMATIC300(1)\PLC(型号与具体PLC有关)\S7Pro- gram(1)\Blocks中,然后按上方的“Download”将程序传输至PLC中。
6)打开程序中的模块,根据实际配置进行修改。
(2)PLC基本程序 PLC基本程序主要承担PLC用户程序与NCK、HMI、MCP之间的数据和信号交换任务(循环信号、事件信号、消息)。SINUMERIK840D系统,西门子已为用户提供了一些标准的功能块,同时也占用了部分DB数据块。
1)组织块概述:在840D中,通常有OB1、OB40、OB100这三个组织块,见表4-2,所有的用户程序FC/FB都是在组织块中调用。FC/FB0~30西门子保留。
OB1循环地执行,当有其他事件触发中断OB1时,则保护断点去执行OB40,OB40执行一次后,再返回断点继续执行OB1。OB40是触发事件的组织块,有中断事件发生时,则立即执行OB40。
OB100是热启动模式通电时执行一次的组织块。在OB100中可以实现系统初始化以及NC/PLC同步等功能。
组织块(OB)是操作系统和用户程序之间的接口。它们由操作系统调用并控制着循环和中断驱动的程序的执行以及可编程控制器的启动。它们还处理对错误的响应。
表4-2 组织块
注意:用于循环程序处理的组织块(OB1)在可编程控制器上循环程序处理是程序执行的“普通”类型。操作系统循环调用OB1,并用这个组织块启动用户程序的循环执行。用户可以通过使用STEP7在OB1中编写用户程序以及在OB1调用的块中编写程序来循环程序处理。启动程序无错执行一结束,循环程序处理就立即开始。
起动后,操作系统将调用启动组织块OB100。一般用OB100对一些数据或状态进行初始化。
当下列事件发生后,CPU执行起动功能:电源通电后将CPU的状态选择开关从“STOP”拨动到“RUN/RUN-P”后从通信功能来的请求后新建一个块。
2)数据块概述:数据块(DB)与逻辑块不同,在数据块中没有STEP7的指令。它们用于存放用户数据,换句话说,数据块中存放用户程序工作时所需的变量数据。共享数据块用于存放所有除数据块之外都可以访问的用户数据。DB的大小可以不同。用户可以用任意方式来建立数据块的结构,以适合其不同的需求。数据块分配根据NC_MD,只建立许多必要的DB。用户可以分配无效通道进给轴/主轴C编程,刀具管理的数据块。数据块见表4-3。
表4-3 数据块
(3)PLC基本启动 西门子提供的TOOLBOX工具盘,包含了840D系统的PLC基本程序、数控硬件添加到STEP7的组态、NC符号添加器等,借助于PLC基本程序可以启动840D数控系统的PLC。
PLC程序结构:在下拉菜单中新建一个工程,然后,在PLC的下拉菜单中上传一个PLC站,如图4-5所示。
1)上传一个站。管理器将机床上的PLC所有资源上传至计算机中,可以看见PLC程序结构,如图4-6所示。
2)新建一个程序块。在管理器中可以方便地新建一个块,在管理器的左窗口中,单击Block图标,再按下鼠标右键,将弹出菜单,或在管理器的右窗口中,不选中任何对象,按下鼠标右键,也将弹出同样的菜单,在弹出的菜单中可新建FB、FC、DB、OB等程序块,如图4-7所示。
图4-5 上传一个站
图4-6 S7-300项目结构
由此可看出STEP7-300的PLC程序的结构由程序块(Block)组成。
3)交叉表。若要查找某一使用数据在程序中的使用情况,可使用交叉表快速查找。在管理器下拉菜单Option→Reference Date→Filter and Display,启动交叉表过滤器,如图4-8所示。
图4-7 在项目中插入块
图4-8 在管理器中启动交叉表过滤器
过滤器的复选框是所要查找的数据区域,其后的输入框是数据的地址。DataType则是查找的数据类型,位、字节、字、双字或所有类型。如图4-9所示,查找M区域,所有与0地址有关的数据有M0.0~M0.7、MB0、MW0、MD0等。
4)程序编辑器。LAD/STL/FBD编辑器是编写和修改程序的工具,也是在线监控的窗口之一。双击一个Block,将启动编辑器,如图4-10所示。
图4-9 交叉表中的过滤器
图4-10 编辑调用一个程序块
5)程序的下载。修改后的程序只有下载到PLC的CPU才能真正起作用。单击下载图标,程序将下载至机床中,如图4-11所示。
6)程序的在线监控。在LAD/STL/FBD编辑器中,先打开要监控的程序段,然后,单击监控图标,管理器将与PLC的CPU通信,并在编辑器里显示出程序执行的逻辑或状态值,如图4-12所示。
图4-11 程序的下载
图4-12 程序的在线监控
(4)理解启动组织块OB100 基本程序OB100里主要调用了功能块FB1,FB1用于PLC/NCK在启动过程中的同步,对系统进行初始化。
注:粗黑字体标出的参数为常修改的参数,根据所用系统修改上面的参数。
2.PLC高级功能应用
(1)NC/PLC信号通信的几种常用方法
1)标准的PLC接口信号(如DB2、DB10、DB21、DB31等),包括NC给PLC的状态信号和PLC给NC的控制信号。
2)使用PLC基本程序功能块FB2/FB3。FB2用于PLC读NC变量;FB3用于PLC写NC变量。
3)使用PLC基本程序FB5。FB5用于从NCK中读取GUD中用户自定义的变量
4)使用PLC基本程序功能块FC21。在PLC中用FC21读写公共缓冲区;在NC中用$A_DBB/$A_DBW等变量访问公共缓冲区。
5)使用NCK快速IO。
(2)使用PLC基本程序功能块FB2/FB3 PLC基本程序中FB2/FB3用来读写NC的系统变量(如机床数据、坐标位置、R参数等)。PLC调用FB2/FB3的大致步骤如下:
1)用TOOLBOX中带的NCVARIABLESELECTOR选择要读写的NC系统变量,生成数据块源文件。
2)编译源文件得到需要的数据块,可以下载到PLC中。
3)编写PLC程序,调用FB2/FB3。
下面以读取R参数为例,说明使用FB2的过程。
①启动NC变量选择器。
②新建。
③选择ncv_NCData.mdb打开(启动NC变量选择器并新建文件)。
④查找变量(通过查找功能把所需变量找出来)。
⑤OK。
⑥选中R参数变量(rpa[]),双击。
⑦OK,记住S7Alias name,即C1_RP_rpa1_1。
⑧选择数据块块号,单击菜单Code中的Selection项。
⑨输入最后要生成的数据块块号,如输入120,最后会生成DB120。
⑩保存变量文件,如文件名“r.var”。
⑾单击菜单code中的Generate,生成数据块源文件。
⑿选择保存数据块源文件目录和文件名,如“r.awl”,关闭NC变量选择器。
⒀进入STEP7,打开项目,选中S7程序中的源文件。
⒁单击右键,选择External Source...项。
⒂选择刚才生成的数据块的源文件,本例为r.awl。
⒃打开。
⒄单击Edit菜单中的Compile进行编译。
⒅编译无错误后,会生成数据块DB120。
⒆在s7程序中的符号表中为DB120添加符号名,如REPA。
⒇编写PLC程序,调用FB2如下:
(21)将OB100中的NCKomm改为TRUE(允许NC和PLC之间交换数据)。
(22)下载DB120、DB130、OB100、OB1。
(23)NCK复位。
(24)每当启动I7.7时,就会将R0读到MD110中。
FB3的写过程的调用与FB2相同。
(3)使用PLC基本程序FB5读取GUD中的变量 主要分成以下两步:在HMI上定义用户变量,编写PLC程序。
1)在HMI上定义用户变量。按“Yes”激活,至此就定义出了全局用户变量;如果要查看或者修改这些变量,应切换到参数区;按水平软功能键“User Data”。
如果定义的是NCK用户变量,按Global User Data。
如果定义的是CHAN用户变量,按Channel User Data。
然后按“GUD+”和“GUD-”键切换到窗口右上角显示MGUD。(www.xing528.com)
2)在PLC程序中调用FB5。
Area=0表示读取NCK用户变量1,通道变量。
Unit=1读NCK用户变量设成1。
程序下载后,当按用户定义键I7.6时,用户变量TEST1的数值便会被读到MD160中。
(4)使用PLC基本程序功能块FC21
1)NC程序:
N10$A_DBR[4]=R1: 把R1的值写到缓冲区(byte4~7)。
N20$A_DBR[8]=R2: 把R2的值写到缓冲区(byte8~11)。
N30$A_DBR[12]=R3: 把R3的值写到缓冲区(byte12~15)。
2)PLC编程:
结果:将R1~R3的值分别给MD100~MD108。
3)NC程序:
N40R4=$A_DBR[16]:将缓冲区byte16~19的值读入到R4。
N50R5=$A_DBR[20]:将缓冲区byte20~23的值读入到R5。
N60R6=$A_DBR[24]:将缓冲区byte24~27的值读入到R6。
结果:将MD150~MD158分别写入R4-R6。
(5)使用NCK快速IO 840D常用DMP模块作为NCK的快速IO。DMP模块的种类分为数字量的输入输出和模拟量的输入输出。840DNCU板上有4个数字量NCK输入和4个数字量NCK输出。840D最多可接两块NCKI/O扩展机架,每个机架上可接8个模块。840D最大可扩展的NCKI/O数量:
32个数字量NCK输入(地址9~40)
32个数字量NCK输出(地址9~40)
8个模拟量NCK输入(地址1~8)
8个模拟量NCK输出(地址1~8)
定义NCKI/O(数字量/模拟量)数量:
MD10350数字量输入字节数max:5 最大地址:5∗8=40
MD10360数字量输出字节数max:5 最大地址:5∗8=40
MD10300模拟量输入字节数max:8
MD10310模拟量输出字节数max:8
实际硬件上如果没有DMP模块也可以使用它们的地址进行操作。
NC编程指令:
PLC对应的数据块为DB10
应用例子:
PLC中加入程序段
AI7.1
=DB10.DBX123.1
NC编写如下程序
N10 G0X100
N20 REPEAT
N30 UNTIL$A_IN[10]==1
N40 Y100
N50 M30
结果:程序执行N10后暂停,直到输入信号I7.1为1,满足判断条件$A_IN[10]=1,程序继续向下执行。
3.PLC机床数据的应用
PLC机床数据是在通用数据中设定的,它在下次NCKRESET或重新通电后,被传送到PLC的数据块DB20中,NC/PLC之间可以交换数据。
1)设定如下参数:
MD14504MAXNUM_USER_DATA_INT=3
MD14506MAXNUM_USER_DATA_HEX=4
MD14508MAXNUM_USER_DATA_FLOAT=5
根据需要在下面数据中添入要传送到PLC的数据:
MD14510USER_DATA_INT[0]=1 //整形数据的值
MD14510USER_DATA_INT[1]=2
MD14510USER_DATA_INT[2]=3
MD 14512USER_DATA_HEX[0]=11H //十六进制数据的值
MD 14512USER_DATA_HEX[1]=22H
MD 14512USER_DATA_HEX[2]=33H
MD 14512USER_DATA_HEX[3]=44H
MD 14514USER_DATA_FLOAT[0]=1.111 //浮点数数据的值
MD 14514USER_DATA_FLOAT[1]=2.222
MD 14514USER_DATA_FLOAT[2]=3.333
MD 14514USER_DATA_FLOAT[3]=4.444
MD 14514USER_DATA_FLOAT[4]=5.555
2)NCK RESET或重新通电后上面设定数据生效。
3)用变量监控可以看到:
不同的数据使用的数据类型不同(MD14510的数据占用1个字;MD14512的数据占用1个字节,而MD14514的数据占用一个双字)。
MD14510[n]&MD14512[n]&MD14514[n]设定的数值存储在PLC数据块DB20中,这样可以在PLC程序中进行读取,但是不能写入,所以使用这种方法传输的数据只是单向的,即NC传给PLC。
4.840D的接口信号及其应用
PLC与NCK之间是通过数据接口和功能接口进行数据交换的,数据接口是DB块。
(1)PLC与MCP的接口 由于840D系统集成了PLC,MCP已经占用了I/O地址,根据MCP定义为车床或铣床,其对应地址的意义也有所不同。
表中“IBn+0/QBn+0”中的“n”是由功能块FB1定义的I/O点的起始地址。通常为0,例如操作方式按键AUTO的输入地址为I0.0。
(2)PLC/NCK接口信号 PLC/NCK接口信号完成PLC与NC之间的数据交换,其接口信号传输有两种方式:从NC到PLC和从PLC到NC,接口信号为状态信号和控制信号,它们是有方向的。
接口信号细分为下列几组:
PLC报警信息接口DB2
NCK特定接口DB10
方式组特定接口DB11
PLC机床数据接口DB20
通道特定接口DB21-DB30
轴/主轴/驱动特定接口DB31-DB61
数据接口信号的详细含义可参见《西门子SINUMERIK840D简明调试手册》PLC接口信号简表。
5.PLC用户报警
(1)NCK报警范围 NCK报警范围见表4-4。
表4-4 NCK报警范围
(2)MMC报警/信息范围 MMC报警/信息范围见表4-5。
表4-5 MMC报警/信息范围
(3)611D报警范围 611D报警范围见表4-6。
表4-6 611D报警范围
(4)PLC报警信息范围 PLC报警信息范围见表4-7。
表4-7 PLC报警信息范围
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。