西门子模块6ES7517-3TP00-0AB0
台达运动控制器20Pm在线缆裁割机上的应用
摘要:
本文主要介绍台达20PM运动控制器在线缆裁切行业的数控裁割机中的应用,线缆裁割机以前都是利用传统的PLC通过中断的形式来完成裁割,跟随误差比较大,为了解决这个问题,利用台达20PM内置飞剪功能出色完成了各项需求,实现输送和裁切速度同步,并阐述了设备的工作原理、工艺要求及飞剪功能的应用概要。
关键字:台达20PM专用控制器 程序设计 凸轮功能 飞剪 动态CAM曲线,平滑加减速
一:概述
高速裁线机是应用于线缆行业的定长裁切设备,在线缆行业,有很多客户需要把生产出的线缆在高速送线的情况下按照一定长度定长切断,以便做各种接插件等。由于目前的电缆原材料价格不断上涨,对裁线机的效率和**度的要求不断提高。过去,普通的控制方式就很难达到要求,比如在速度200M/MIN情况下,误差基本在5MM-10MM,其控制方式是利用PLC的高速计数功能,采集编码器的频率信号及长度,在长度达到的情况下,产生中断,发一脉冲信号,这个脉冲的频率就是采集的编码器的频率,控制切刀伺服动作。由于每次切刀动作总是在滞后动作,产生误差不可避免。本文叙述的方法是采用20PM自动生成飞剪凸轮曲线控制,实际控制精度达到1MM.以内。
二 高速裁线机结构和原理
1实际机械结构及外形
如上图所示,左图为一测米轮,右图为切刀,侧米轮后带一2000线的编码器,
2,电气控制原理
上图所示为电气控制原理,图中分为送料单元和剪切单元,送料单元通过20PM上的DA卡,给变频器一0--10v的信号控制送料速度,剪切单元由20PM,根据TP设定的长度,以及编码器反馈的物料的速度和位置,控制剪切伺服动作,对线缆进行定长裁切。20pm硬件具有500K的高速输入与输出脉冲,完全适应高速的响应与控制。
三 电子凸轮旋切原理
在旋切过程中,重要的是速度同步,比如在切刀接触到物料时一定要与物料速度同步,如果接触时切刀速度大于同步速度,出现对物料一个向前牵扯的力,会照成物料切面不平,如果速度低于物料速度,会出现堵料的现象。
速度同步区的规划很重要,一般同步区越大,就越容易保证速度同步,但设置较大的同步区就会使加减速曲线更陡,即主从轴间速度倍率增大,特别是在裁切长度小于刀周长的情况下更加严重,这使电机、机台、切刀的冲击都很大,而且容易导致伺服过流报警,设备无法正常运行。因此必须有适合的同步区和倍率设置才能保证设备优化运行,在20PM中设置有倍率上限限制参数,可按照设备机械参数设置上限倍率,当超过上限时,会自动调整同步区与倍率参数,保证设备正常运行。
由下图比较可以看出同步区与倍率的关系。点划线部分表示速度的面积积分为位置需要相等。
其次,对需要裁切的长度与切刀的周长也有很大关系。分述如下,
在剪断长小于刀周长的情况下,在同步区(定义为切刀与材料接触的前后一段),切刀线速度与物料同步,过了同步区以后,为了赶上下一次切断切刀加速。
在剪断长大于1倍刀周长并小于2倍刀周长的情况下,剪断动作完成后,切刀减速,根据长度,不一定减速到停,然后再加速到同步进行下一次剪切。做为特例在剪断长度等于刀周长时切刀匀速运动
在剪断长大于2倍刀周长情况下(这也是常见的一种情况),在一个周期中,刀刃在剪断同步完成后,减速到停止,等待一定长度过去后,启动下次裁切。
其对应的主从轴电子速度曲线分别如下图
需要对这个图加以说明的是这是主从轴的速度关系图,在实际程序中,实际的电子凸轮关系
完全应是主从轴位置对位置一一对应关系。通过速度关系生成电子凸轮,是20PM一项很实用的功能,这项功能可通过填表手动生成,也可通过指令自动生成。
下图为切刀周长与设定长度完全一致是主从轴的位置关系
同步完成
下图为设定长度大于切刀周长时的电子凸轮
下图为设定长度小于切刀周长时的电子凸轮
从上述我们可以看到,一旦主从轴关系对应好,在20PM内部就有一定长度的数据区对应
主从轴的数据,实际运行时完全按照这个凸轮表运行,不需经过程序扫描,响应速度及时。
四 程序设计介绍
整个程序结构包括初始化、参数计算、裁切曲线动态调整、原点回归和点动等等。
在介绍程序之前需要将一些与飞剪相关的特殊寄存器作个简单介绍
D1816:X轴基本参数设定,包括单位系、脉冲型式、坐标系、原点回归方式等设定
D1846:X轴控制命令,根据不同的值执行不同命令动作,裁板机用到H40(回原点)、H2000(连续CAM模式)
D1864:主轴脉冲输入方式及倍频设置、响应时间设置
D1799:输入点极性设置
D1800:输入点状态
M1035:置位后将内部定义输入点释放作为普通点
D1832:原零点(PG0)信号数N
D1828:原点回归速度
D1830:原点回归减速速度
D1812:CAM数据初始化完毕
D1813:CAM运动周期完成
M1748:CAM运动周期暂停
裁切参数计算介绍
参数计算部分主要包含裁切长度脉冲数、切刀脉冲数、同步区脉冲数、倍率等参数的计算,下面以倍率计算为例介绍:
假设:
送料轮编码器线数S1,直径D1,线速度V1,脉冲频率F1,减速比J1
切刀轮编码器线数S2,直径D2,线速度V2,脉冲频率F2,减速比J2
根据线速相同的条件,可计算出主从轴之间倍率关系,得出如下:
V1=F1*π*D1*J1/S1
V2=F2*π*D2*J2/S2
所以,F2/F1=S2*D1*J2/S1*D2*J1,将机械参数带入即可计算出倍率。
裁切曲线动态调整介绍
裁切曲线动态调整是通过FROM/TO指令来完成,只要在裁切周期完成之前写入即可在下一个周期自动变换。
以下是自動生成CAM表的相關參數。
D0=k10000 _ 建立飛剪CAM data
D101..D100 _ 整數格式主軸長度,
D103..D102 _ 整數格式從軸長度
D105..D104 _ 整數格式從軸同步長度
D107..D106 _ 浮點格式從軸同步倍率
D109..D108 _ 浮點格式從軸高倍率限制
D110 _ 曲線選擇(0 const speed,1 const Acc,2 SingleHypot,3 Cycloid)
D111 結果(0 ok, 1 條件無法滿足, 2 CAM長度不足)
所以实际程序做飞剪时只需把以上参数根据机械及工艺算出,执行指令即可
下图为机械及工艺算出的D100-D108的值
下图为建立动态飞剪指令及执行
五 结束语
目前设备已调试完成并正常运行,20PM飞剪功能成功应用于数控裁线机。通过这个案例,我们可以把它推广到其他类似需要物料持续进给不停机情况下实现定长或定位裁切功能
场合。比如对钢卷,铝带定长裁切,对瓦楞纸旋切木板旋切等。
1引言
产量监控查询系统系统对整个工厂所有生产线进行实时监控,对每一条生产线的产量进行实时的存储,存储的数据通过组态王连接PLC,将PLC中掉电保持区的数据读到组态王自定义的相应变量当中,每分钟通过标准的SQL语言对数据进行存储(每分钟向SQLSERVER数据库中存储26条数据,即26条生产线的当前产量)。用户可以通过:日期、时间、时间段、车间、生产线对任何车间、任何生产线进行产量的查询;能够对任何车间、任何生产线进行月产量的统计。同时在查询出满足条件的记录后,将结果通过报表的组态显示在相应的表格当中,可以对该结果进行存储和打印。
2 系统设计
2.1系统框图(图1)
图1 产量监控查询系统框图
2.2设备选型设计
3 系统分析
3.1功能要求
可以任意查询一车间、二车间任何生产线(共26条生产线)任何时段的产量。具体明
细如下:
(1)每条生产线产量的数据至少能够保存四个月的储存期,以便对历史数据进行查询。
(2)要求能够查询每条生产线任意每月、任意每天、任意每小时、任意每分钟的产量。
(3)要求能够对任意每条生产线在任意时段的产量进行查询。
(4)查询出来的任何结果要以特定的格式在报表中进行组态,同时将结果打印。
(5)各生产线任意每月产量、任意每天产量、任意每小时产量、任意每分钟产量可以在电脑上用柱状图、实时趋势曲线的形式表现出来
3.2查询方式
(1)能够按照日期进行查询(格式:Year/Month/Day)
(2)能够按照时间进行查询(格式:Hour/Minute/Second)
(3)能够按照生产线进行查询(一车间:1-1、1-2;2-1,2-2;3-1,3-2;4-1,4-2;
5-1,5-2;6-1,6-2;7-1,7-2;8-1,8-2 二车间:1-1,1-2;2-1,2-2;3-1,3-2;4-1,4-2,4-3,4-4)
(4)能够按照任意时间段进行查询(格式:Year/Month/Day Hour/Minute/Second To Year/Month/Day/ Hour/Minute/Second)
(5)能够按照班次进行查询(格式:早班,中班,晚班)早班:7:30—15:30
中班:15:30—23:30 晚班:23:30—7:30
(6)能够查询任意每月任意车间、任意生产线的产量
(7)能够运用
步:在控制面板下选择 管理工具->ODBC数据源,双击图标 出现图2界面。
图2 ODBC数据源管理器界面
第二步:在用户DSN 选项卡片上,单击添加按钮,出现创建新数据源 对话框,选择SQL Server(图3)。
图3 创建新数据源
第三步:单击第二步的完成按钮,出现创建到SQL Server的新数据源。如图4所示。
图4 创建SQL服务器的新数据源(1)
输入数据源名称、数据源描述和SQL Server 所在的服务器名称或者IP地址。服务器名称可以是SQL Server所在的机器名称,也可以是IP地址。单击下一步按钮。
第四步:选择登录SQL Server时的身份验证方式。并输入登录SQL Server时所用到的用户名和密码。如图5所示。
图5创建SQL服务器的新数据源(2)
这里的用户名和密码是在SQL Server中建立的。在SQL Server数据库中选择 安全性->登录,新建用户,如图6所示。
图6创建SQL服务器的新数据源(3)
第五步
一定要选择 选项,否则默认数据库是master。然后选择您想要连接的数据库。其余的按
默认设置,如图7所示。然后单击下一步按钮。
图7创建SQL服务器的新数据源(4)
第六步:按默认设置,单击完成按钮(图8)。
图8创建SQL服务器的新数据源(5)
第七步:图9给出了数据库连接的摘要信息,如果想测试一下是否能够连接到数据库,可以单击“测试数据源”按钮,会出现测试结果。
图9创建SQL服务器的新数据源(6)
单击确定完成连接。接下来的工作就是在组态王王建立记录体、表格模板。其中连接数据库的时候,一定要输入和刚才数据源名称一致的DSN。如 dsn = wuhandsn.
4.3 表格名称创新
即使使用大型的数据库,SQL Server或Oracle,由于每天的数据量多达37440条记录,
如果将一个月,甚至是四个月的记录全部写入同一个数据库的同一个表格,则所有的数据量大的将使表格崩溃,即使数据库能够管理,查询的速度也是可想而知的。将会非常的慢。经过作者反复的思索,想出了一个巧妙的办法,就是以系统的日期作为当天的表格名称。当系统时间为00:00:00时刻时,新建一个表格,通过SQLCreateTable( DeviceID, "TableName", "TemplateName" )函数建立不同的表格。因为组态王支持字符串函数,如下所示:
StrASCII( Char );// 此函数返回某一指定的文字变量首字符的ASCII值
StrChar( ASCII );// 此函数返回某一指定ASCII码所对应的字符
StrFromInt( Integer, base );// 此函数将一整数值转换为另一进制下的字符串表示
StrFromReal( Real, Precision, Type );// 此函数将一实数值转换成字符串形式
StrFromTime( SecsSince1-1-70, bbbbbbType );// 此函数将一个时间值转换为字符串
StrInStr( Text, bbbbbbFor, StartPos, CaseSens );// 此函数用于查找文本
StrLeft( Text, Chars );// 此函数返回指定文字变量的开始(或左的)若干个字符
StrLen( Text );// 此函数返回某一指定的文字变量的长度
StrLower( Text );// 此函数将指定文字中的所有大写字母转换为小写字母
StrMid( Text, StartChar, Chars );// 此函数从指定的位置开始,从一个文字变量中返回指定个数的字符
StrReplace( Text, bbbbbbFor, ReplaceWith, CaseSens, NumToReplace, MatchWholeWords );
//此函数替换或改变所提供字符串的指定部分
StrRight( Text, Chars );// 此函数返回指定文字变量的末端(或右)若干个字符
StrSpace( NumSpaces );// 此函数在文字变量中或表达式中产生一个空格串
StrToInt( Text );// 此函数在文字变量中或表达式中产生一个空格串
StrToReal( Text );// 此函数将一个由数字组成的字符串转换成一个能用于数字计算的实数值
StrTrim( Text, TrimType );// 此函数删除文字变量中无用的空格
StrType( Text, TestType );// 此函数检测文字变量的首字符以确定其是否为某一类型
StrUpper( Text );// 此函数将一指定文字变量中所有的小写字符转换成大写字符
在组态王中建立内存型字符变量Nabbbbble="A"+StrFromInt( \\本站点\$年, 10)+StrFromInt( \\本站点\$月, 10)+StrFromInt( \\本站点\$日, 10);Nabbbbble的构成为字母A+系统日期。将系统提供的整型变量转换成字符型变量。这样可以在数据库中建立每天的表格。每当系统日期由23:59:59跳变到00:00:00时,执行SQLCreateTable()函数,建立当天的表格,如图10所示,在SQL Server中组态王建立了A2006619日的表格,
图10建立当天的表格
4.4 基于Active控件的组态王条件查询
为了完成如此复杂的查询,使用了Active控件,因为组态王支持第三方控件,将所有的条件罗列出来进行排列组合,将每一种情况都考虑在内。然后通过程序来实现选择条件转换成SQLSELECT()函数工作的条件。
(1)任意查询任意生产线在任意时段的产量。因为工艺要求能够任意查询任意生产线在任意时段的产量,为了能够实现该功能,新建\\本站点\CX_Hour,\CX_Minute1变量。在以时间段进行查询时,先将以前两个变量输入的时间做为条件进行查询,将查询出记录的数据赋给在过程中自定义的中间变量。然后再以后两个变量输入的时间为条件进行查询,将查询出的结果同样赋给自定义的中间变量。将两次查询的结果求差然后,将日期,时间,车间,生产线,产量通过报表的组态添到表格当中。
(2)对于月产量的查询。需要判断输入的月份有几天,然后从该月的天开始到后进行查询,查询的时刻为每的23:59分时各生产线的产量。然后对查询出的数据进行累加,直到该月的后,然后按照特定的格式将数据填写到报表当中。在该过程中需要灵活的运用循环语句:While{}以及深刻的体会组态王的变量与数据库进行数据交换的过程。
查询的条件比较复杂,有些条件不能同时成立,因此在选择条件时,应该要互相限制,以避免出现混乱的现象。具体的程序在应用程序命令语言运行时写如下程序: