PLC编程5大步骤

PLC编程5大步骤

接线完成后,便可以开始PLC编程了。

需要说明的是,程序语言选梯形图,也可以编制SFC程序,这样编制的SFC程序可以通过转换为SFC程序块,不过转换效果并不是很好,所以一开始选一种编程方法即可。如图(注:此处是GX Works2版本,如使用GX Developer8.86等版本界面会有所不同):

本文以梯形图形式的SFC程序进行说明:

SFC程序一般以M8002开始,M8002是特殊辅助继电器,开机产生一个脉冲,该脉冲引导初始步S0,S0中可以设置初始值、置位、复位等,同时手动程序、单循环和自动程序,都在S0中触发,如三档选择开关分别对应之。本程序只有手动和自动,且由X0的常开和常闭对应之(见上图)。原因是节省PLC输入点数(此项目选用FX3U-16MT,只有8个输入点)。

手动程序在S20中执行,主要包括由伺服控制的行程的进给和退回,油缸的下压和抬起,还有用于触摸屏上的信息提示,包括按钮盒上两个按钮同时用于油缸的下压/抬起和工件的进给/退回(即两个按钮当四个按钮用,这种技巧常常用于PLC输入点不够的时候),这时需要在触摸屏上设置一个切换触摸按钮,用于切换上述两个功能,触摸屏上的触摸切换按钮是M2(参触摸屏程序)。而此处PLC程序还可以通过按下X2(本身功能是“自动运行”,这里赋予它在手动模式下另一个功能:切换油缸升降和工件进退,与M2等同)来使M2置位和复位,这里要学习一条新指令:ALT M2,X2每按一次(上升沿),M2由置位切换到复位,再按一次,由复位切换到置位,M2复位和置位分别控制M29和M30接通,而M29和M30则是用于触摸屏上【简易指示灯】指示信息的,M29接通会在左边显示信息:“操作按钮用于压抬”。M30接通会会在右边显示信息:“操作按钮用于进退”。

油缸的下降和上升操作,操作按钮X3、X4以及触摸屏触摸按钮M5、M6均可操作,需注意的是,X3、X4同时还能操作油缸的下降和上升,是通过M2来切换的,请参考上述PLC程序。

同上,工件进给和退回的操作也可由操作箱上的按钮和触摸按钮操作的。

如何将需要进给或退回的行程(比如给进100cm)转换成脉冲数(即PLC需要发多少个脉冲给伺服驱动器)?首先我们要知道减速机变比、驱动轮(带动工件进给或后退的滚轮)直径,以及伺服驱动器的电子齿轮比(或电机每旋转一圈所需要的指令脉冲),本系统减速机为80:1,驱动轮直径为22.6cm,电机每旋转一圈所需要的指令脉冲数(Pr0.08)是500。

注意:速度值设定D204,乘数是K177,是因为速度单位为mm/s而不是cm/s之故。该段程序位于开始位置,因为进给行程和速度因产品规格不同一天中要设置(变更)数次,设置后要将最新数据更新,在触摸屏上配置一个触摸按钮,每次设置后按一次该触摸按钮,固然可以,能否不用该“多余”的步骤,而利用每一次手动进给/退回、手动油缸升/降、手/自动切换、自动运行等按键动作,就完成新设置的数据的更新呢?答案是肯定的,这就是上述程序各按钮的功能所在。上述程序中还有一个中间辅助继电器M0,用它来控制单程和往返两种模式进给行程的设置,往返时,是从工件中间开始进给,故将“半程”数据当作进给脉冲数(“全程”数据当作返程脉冲数);单程时将“全程”数据当作进给脉冲数(无返程脉冲数据)。请注意:反程脉冲D210是通过D200乘以-1770(写成K-1770而不是-K1770)得到的,也就是D210是个负值,这是DDRVI指令规定的,如果是负值则伺服电机反转。

S21中M16、M17、M18、M21为触摸屏上运行状态提示(报警提示信息但不限于报警),如这里的“自动模式”提示,手动模式下,油缸初始位置不在最上面则会提示:“油缸不在上位”、在自动模式下操作了手动按钮开关也有信息提示:“自动模式下此开关无效”等,这些提示信息的触摸屏编程请参考“报警设置”。SFC程序每一个S步(如S20、S21等)有入口,同时必须至少有一个出口,否则程序永远停在这一程序段内,S21内条件满足将跳转至S22,那就是等待“运行”按钮的按下(M1为触摸按钮,功能等同于X2),运行按钮按下,进入S22:

S22中包含了两个主要动作:油缸下压和工件进给。本来两个独立动作要分在两个S步中,即先油缸下压,压牢工件后再启动伺服使工件进给,但实际调试时如果先压牢再进给,工件上一开始压牢位置会有一个压痕,这是客户不认可的,于是想到让油缸下压到刚接触工件表面伺服即开始进给,也就是一边下压一边进给,压到位(具体位置由弯曲半径决定)后断开油缸电磁阀,这样实行的结果压痕没有了,满足了客户的要求,但是什么时候开始进给却很关键,早了,没压上,形成空进给,定位精度无法保证,压晚了会有压痕,因此我们通过下降位置行程开关(光电开关)X5启动伺服进给,同时开始定时(T4触摸屏可设置),定时时间到断开油缸电磁阀,X7作为下降极限位开关,如果油缸下降到达X7位置,即使延时还未到,也断开下降油缸电磁阀。这里X5行程开关位置的调试要反复调节,直至刚一接触工件,伺服马上进给。至此,S22中采用两个动作联动解决了有压痕的难题。从这里大家也了解到,并不是SFC的一个S步中只能有一个动作,要根据实际情形来编程。

S23中动作比较简单,就是工件返回,这里说明一下特殊辅助继电器M8029的使用,M8029是伺服驱动完全部脉冲(这里当然就是D210设置的数值)后,产生的一个脉冲,该脉冲紧接驱动指令(这里时DDRVI)之后,既然M8029是驱动结束脉冲,用它来进入下一个S步是最好不过了,M8029接通进入S24:油缸抬起:

本程序段中,油缸抬起,到上限位时断开油缸电磁阀,同时通过M24,触摸屏提示信息:油缸抬起。班产量、月产量、年产量在这里统计,注意使用的是S24的上升沿,而班车量统计使用D20,月产量和年产量则是D222和D224,是因为班产量是当天的数据,更准确的说是本次通电期间的数据,断电则清除,而月产量、年产量则每天都需要统计,故使用断电保持型继存器,月产量一月清零一次,年产量一年清零一次。至此,一次加工结束,如果再按【运行】(按钮X2或触摸M1),进行下一次加工,如果一天下班了,选择开关打到X0,当天加工结束。SFC程序最后的RET指令不要忘记,否则程序编译时会出错。

上述程序中,先把年月日等数据读到D50-D56中,因此D50是“年”数据,如今年是2018,D50=18;D51中是“月”数据,现在是3月,D51=3。

弹出的画面勾选画面编号,再在弹出画面中设置寄存器,这里为D0,D0中的数值是几,触摸屏上就会显示第几号画面。而D0的数字则由PLC程序控制:

上述程序当X0上升沿(手动)时将K2送D0中,下降沿(自动)时将K3送D0,而2号画面即手动画面,3号画面即自动画面。从而完成了按钮控制的画面切换。

上述程序是统计通电时间的程序,PLC通电,M8000一直接通,HOUR累计接通时间,D228中存放以小时为单位的数值,多出的不满一小时的时间以秒为单位存放在D229中,满了一小时D228加1,当D228中的值大于32767时Y7输出报警信号,D228不再计时,需要复位后才能继续。当然如果使用32位指令DHOUR,则可计时4294967296个小时。至于统计自动运行时间,则需要采用自动期间接通的触点,不过不能是选择开关(如X0常闭),因为打到自动模式,但没运行,是不能作为自动运行时间统计的。可以用各S步接通时间来统计:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181019A17AMU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券