PLC
按行业筛选
请选择行业
----------------------
-全部行业
------------------
-机床与金属加工设备
-刀具/量具/夹具/磨具
-模具设计与制造
-塑料机械/橡胶机械
-通用机械/化工机械
-工程机械/建材机械
-交通运输/海工装备
-农业机械
-食品机械/烟草机械
-包装机械
-印刷机械/广告设备
-纺织机械
-木工/造纸/环保/医疗设备
-物流设备
-智能楼宇/安防设备
-炉窑/热处理设备
-五金工具
------------------
-工业自动化
-佳工激光网
-仪器/仪表/衡器
-电力设备
-电子/通讯/办公文具
-家电/照明/健康设备
------------------
-基础件/通用件
-标准件
-工业原材料
-电子元器件及材料
-包装材料
------------------
-CAD/CAM/PDM/PLM
-ERP/制造业信息化
-管理咨询/认证
-服务/培训/工业设计
按产品筛选
----------------------
-本行业全部文章
--------------------
-变频器
-PLC
-伺服与运动控制
-工业安全产品/工业
-人机界面
-传感器
-机器视觉
-工业PC/工控机
-现场总线/工业以太
-数据采集/无线通讯
-嵌入式系统/自动化
-工业机器人
查看本类全部文章
子程序块在Logix5000中的应用
作者:机械工业第九设计研究院 段锐
对于A-B PLC 编程,Logix5000一直以其技术成熟、结构简单、稳定可靠和应用广泛而著称,但也存在一些缺点,如v16.0版本以前无法实现子程序块的调用。面对大量相似的设备,不得不重复性的工作降低了工作效率。为了提高效率,也有人在编写程序时使程序编写标准化、模块化,但都因为无法实现参数赋值,而只能逐条修改,虽然提高了些工作效率,但其块功能问题依然未能解决。
当前,汽车的普及及档次的不断提高对现代化的汽车厂的要求越来越高,而PLC程序无疑成为对其直接影响的最主要、最直接、最直观的要素,也是广大用户对于PLC程序设计提出的最强烈的要求。现代化汽车厂要求PLC程序必须具有调试时间短、性能稳定、修改方便、维护便捷、程序短小精悍以及通用性强等特点。自Logix5000 v16.0版本后,A-B公司增加了ADD ON功能,从而解决了子程序块的调用问题。
系统建立
1.任务的建立
首先应先新建任务。点击菜单FILE下的NEW(或快捷键NEW),弹出对话框:根据所选PLC类型选择Type,在Revision中选择下拉菜单16;在Name中给程序起名(本例中程序名称为TEST);在Chassis Type中选择所选的机架,本例选择的为10槽机架;在Solt中选择控制器所在机架的位置,默认为0槽。点击OK,出现图1所示信息(请注意图中蓝色部分),则本PLC程序创立完成。
图1 新文件创建完成
2.I/O模块配置
接下来要配置I/O模块。在图1所示信息中,右键点击图中蓝色部分,在新弹出的对话框中选择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,则本条数据结构建立完成。同时,本数据结构也可以作为其他数据类型的一个参数,而被其他数据结构所调用。如此,可以根据需要建立不同名称、不同类型的数据类型以方便程序应用。
图4 数据结构详解
建立子程序
1.工艺流程
在编写子程序前应首先明确工艺流程。以汽车工厂焊装车间机械化输送系统为例,焊装车间机械化输送系统多为滑橇输送,以普通辊床为主,辅以旋转辊床、升降辊床、移行机和升降机等,其输送方式为连续输送,即下一工位出现空位时,本工位即向下一工位输送。普通辊床直接输送,旋转辊床则需要经自身旋转后接件或送件,移行机需要经过平移后接件或送件,升降机则需要经过上升及下降过程接件或送件等。
图5所示为普通辊床的输送方式,输送方向为从辊床GN132向辊床GN133输送。图中绿色靶型图形为辊床上开关,本例中普通辊床各设两个现场检测开关,分别为从左向右到位开关与超程开关。当辊床GN132有车,即辊床GN132到位或超程开关任何一个检测到高电平,即认为本辊床有车(或为不带车空滑橇)占位。如果此时其下一辊床GN133处无车,即辊床GN133到位及超程开关未检测到任何一个高电平,即认为本辊床无车(或为不带车空滑橇)空位。此时,辊床GN132向辊床GN133输送。当车身(或为不带车空滑橇)完全脱离辊床GN132后(此时辊床GN132到位及超程开关未检测到任何一个高电平,即为空位),辊床GN132停止运行。当车身(或为不带车空滑橇)完全进入辊床GN133后(此时辊床GN133到位或超程开关检测到任何一个高电平),辊床GN133停止运行。以上为辊床GN133完成一次进车过程。同理,当辊床GN133占位,而辊床GN134空位时,辊床GN133向辊床GN134上输送,当辊床GN133空位停止而辊床GN134输送到位后,辊床GN133完成一次出车过程。此时,普通辊床完成其全部动作过程。
图5 普通辊床的输送方式
2.子程序建立
打开RSLogix 5000,在左侧任务栏中右键单击Add-On Instructions,选择New Add-On Instruction,然后在新弹出的对话窗口中给所要建立的子程序起名字。本例中子程序名为RollerBed_GN,说明为“普通滚床程序块”。点击确定,在弹出的对话框中多了几个选择,但此时的Parameters中仅有两条,而Local Tags下面为空,没有任何Tag。
在Parameters中建立Name为BedThis的参数,其中Usage选择InOut,在Data Type中选择UD_INPUT(在前面已建立的数据类型),将Req与Vis选项选中,点击应用并确定(见图6)。
图6 在Parameters中建立数据
同理,建立Name为BedBefor与BedAfter的参数,分别为BedThis辊床的前一辊床和后一辊床。点击应用并确定后,在RollerBed_GN下出现Logic(见图7)。双击Logic,进入子程序编辑框。新建一条程序,点击RUNG,加入一个常开点(Examine On),双击常闭点的“ ?”,选择下拉菜单下的BedThis.SXFLDP.SxArrive_ss。同理,按照前面工艺流程继续完善程序,完成后的程序如图8所示,子程序建立完毕。
图7 在RollerBed_GN下出现Logic
图8 子程序建立完毕
子程序的调用
子程序建立完成后,我们观察到在Add-On Instruction下多了条分支RollerBed_GN,即为我们所建立之子程序,可以被复调用。在选中RUNG条件下,键入RollerBed_GN,则出现图9所示对话框,此处的普通辊床程序块即为前面所建立的程序块,其数据结构即为前面所建立的模式。右键单击RollerBed_GN后的“?”,在下拉列表中选择New Tag,如以GN133为例,新Tag名称为GN133ADDON。由于GN133前一工位为GN132,后一工位为GN134,则在BedThis中填入GN133,BedBefor中填入GN132,BedAfter中填入GN134。
此时,本条语句尚处在编辑状态,由于GN133、GN132和GN134三个Tag尚未编辑,应对其进行编辑。右键选中GN133,选择New Tag,在DataType中选中前面所建立的UD_INPUT类型(GN132、GN134、GN133),则此子程序调用完毕。如此,可以继续反复调用此子程序,以满足工作需要。
子程序的修改
当子程序建立完毕,并在实际工作中运行后,如果需要对子程序进行修改,首先应进入编辑状态,然后在左侧对话框中双击需要修改的子程序块(Logic),方可对子程序进行修改。需要注意的是,在线状态如无法对子程序进行修改,则应先下线,在Offline状态下对子程序进行修改。
图9 此处的普通辊床程序块即为前面所建立的程序块
结语
本文提出的对于A-B PLC编程Logix5000子程序的方案,在实际应用中得到了大量尝试,并获得了成功,彻底解决了目前传统的A-B PLC编程无法实现的程序编写的模块化、系统化和产业化的问题。(end)
文章内容仅供参考
(投稿 )
(如果您是本文作者,请点击此处 )
(7/10/2009)
对 PLC 有何见解?请到 PLC论坛 畅所欲言吧!