对于A-B PLC编程,Logix5000一直以其技术成熟、结构简单、稳定可靠和应用广泛而著称,但也存在一些缺点,如v16.0版本以前无法实现子程序块的调用。面对大量相似的设备,不得不重复性的工作降低了工作效率。为了提高效率
CONTROL ENGINEERING China版权所有
,也有人在编写程序时使程序编写标准化、模块化,但都因为无法实现参数赋值,而只能逐条修改,虽然提高了些工作效率www.cechina.cn,但其块功能问题依然未能解决。当前,汽车的普及及档次的不断提高对现代化的汽车厂的要求越来越高,而PLC程序无疑成为对其直接影响的最主要、最直接、最直观的要素,也是广大用户对于PLC程序设计提出的最强烈的要求。现代化汽车厂要求PLC程序必须具有调试时间短、性能稳定、修改方便、维护便捷、程序短小精悍以及通用性强等特点。自Logix5000 v16.0版本后,A-B公司增加了ADD ON功能www.cechina.cn,从而解决了子程序块的调用问题。
系统建立
1.任务的建立
首先应先新建任务。点击菜单FILE下的NEW(或快捷键NEW),弹出对话框:根据所选PLC类型选择Type,在Revision中选择下拉菜单16;在Name中给程序起名(本例中程序名称为TEST)
图1 新文件创建完成
2.I/O模块配置
接下来要配置I/O模块。在图1所示信息中www.cechina.cn,右键点击图中蓝色部分,在新弹出的对话框中选择New Module,于是出现新对话框。选择相应的I/O模块,例如可选择一个以太网模块、两个IB16输入模块、两个OB16E输出模块以及一个Profibus模块(本例中名称为Sst1),得到图2所示信息,则I/O模块配置完成。
图2 I/O模块配置完成
建立数据类型
在创建子程序前,应先创建数据结构(如图3所示)。右键单击Data Types下的User-Dfines(图中蓝色部分),选择New Data Type。在弹出的对话窗口中,在Name中给所定义的数据类型起名,在Members下定义本类数据类型所包含的参数。这里所定义的数据类型即是在子程序中所调用的形参。Members下的Name为参数的名称,Data Type为参数的类型,Style为参数选择进制,Description内加入文字说明。
图3 创建数据结构
如图4所示,本案例中参数名称Name为UD_FLDP,数据类型为现场IP67输入模块控制工程网版权所有,其中参数为所有进入IP67输入模块的信号。点击Apply,点击OK,则本条数据结构建立完成。同时,本数据结构也可以作为其他数据类型的一个参数,而被其他数据结构所调用。如此www.cechina.cn,可以根据需要建立不同名称、不同类型的数据类型以方便程序应用。
图4 数据结构详解
建立子程序
1.工艺流程
在编写子程序前应首先明确工艺流程。以汽车工厂焊装车间机械化输送系统为例,焊装车间机械化输送系统多为滑橇输送,以普通辊床为主,辅以旋转辊床、升降辊床、移行机和升降机等,其输送方式为连续输送www.cechina.cn,即下一工位出现空位时,本工位即向下一工位输送。普通辊床直接输送,旋转辊床则需要经自身旋转后接件或送件,移行机需要经过平移后接件或送件
控制工程网版权所有
,升降机则需要经过上升及下降过程接件或送件等。图5所示为普通辊床的输送方式,输送方向为从辊床GN132向辊床GN133输送。图中绿色靶型图形为辊床上开关
CONTROL ENGINEERING China版权所有
,本例中普通辊床各设两个现场检测开关www.cechina.cn,分别为从左向右到位开关与超程开关。当辊床GN132有车,即辊床GN132到位或超程开关任何一个检测到高电平,即认为本辊床有车(或为不带车空滑橇)占位。如果此时其下一辊床GN133处无车,即辊床GN133到位及超程开关未检测到任何一个高电平,即认为本辊床无车(或为不带车空滑橇)空位。此时,辊床GN132向辊床GN133输送。当车身(或为不带车空滑橇)完全脱离辊床GN132后(此时辊床GN132到位及超程开关未检测到任何一个高电平,即为空位),辊床GN132停止运行。当车身(或为不带车空滑橇)完全进入辊床GN133后(此时辊床GN133到位或超程开关检测到任何一个高电平),辊床GN133停止运行。以上为辊床GN133完成一次进车过程。同理,当辊床GN133占位,而辊床GN134空位时,辊床GN133向辊床GN134上输送,当辊床GN133空位停止而辊床GN134输送到位后,辊床GN133完成一次出车过程。此时,普通辊床完成其全部动作过程。
图5 普通辊床的输送方式