1.程序结构
PMC用户程序是编程指令的集合,编程指令的组织、管理和处理方式,称为PMC的程序结构。PMC的程序结构决定于PMC操作系统的设计,不同生产厂家的产品有所不同,线性结构和分块结构是两种常用的程序结构。
线性结构的全部程序指令都集中在一个程序块中,程序处理时严格按照从上至下的次序执行所有指令,这是小型通用PLC、CNC集成PMC常用的结构。
分块结构的程序由多个程序块组成,执行程序时可以根据外部条件和控制要求,由负责管理的主程序,选择实际需要执行的程序块,它多用于动作复杂、程序容量大的大、中型通用PLC。
线性结构的程序又有普通结构和分时管理两种类型。普通结构的线性程序最简单,其程序指令为依次排列,如果编程时没有特定的处理次序要求,程序段在程序中可任意排列,这种程序的处理可通过母线指令、跳转指令控制流程,程序的循环扫描时间固定。
分时管理的线性程序如图3-3所示,程序可分为高速扫描、普通扫描两部分。高速扫描程序的扫描时间固定,CPU必须在规定的时间里,完成程序的输入采样、程序处理和输出刷新,因此,其输入采样、输出刷新的速度大大高于正常的程序处理。
图3-3 分时管理程序
高速扫描程序一般用于高速输入(如急停、回参考点减速、刀具测量等)、高速计数、程序中断等控制,其循环时间决定于PMC生产厂家的设计,因此,对于同样的PMC,在不同机床上具有相同的循环时间。为了保证普通扫描程序的循环时间,高速扫描程序应尽可能简短。
普通扫描程序按正常速度处理,但是,在程序处理过程中,如到达了高速扫描程序规定的时间,CPU必须立即中断现行普通扫描程序的处理、保存处理结果,并立即转入高速程序的处理。当高速扫描程序处理完成后,CPU再次从中断的位置,继续执行普通程序。以上过程在普通扫描程序处理过程中,通常需要重复多次。普通扫描程序的循环扫描时间与本身的程序长度、高速扫描程序的长度等有关,即使对于同样的PMC,它在不同机床上的循环扫描时间均不同。
FANUC数控系统的集成PMC均采用了分时管理线性化结构,在0iD-PMC/L中,程序可分为一个高速扫描级(SUB1)和一个普通扫描级(SUB2);在0iD-PMC和30/31/32i中,可分为两个高速扫描级(SUB1、SUB2)和一个普通扫描级(SUB3)。0iD的高速扫描程序循环时间为8ms;30/31/32i的PMC高速扫描程序循环时间为4ms。
2.指令格式
所有PMC程序指令总是由如下操作码、操作数组成:
操作码又称指令代码,它用来定义CPU需要执行的操作;操作数又称地址,它用来定义操作对象。通俗地说,操作码告诉CPU需要做什么,而操作数则告诉CPU由谁来做。
FANUC的PMC指令代码可分基本指令和功能指令两类;采用梯形图编程时,前者可用触点、线圈、连线等基本符号表示;后者需要用功能指令框表示。不同指令代码对操作数的要求有所不同,基本指令一般只要有一个操作数;功能指令有时需要多个操作数,具体可参见后面的说明。
指令中的操作数(PMC地址)可采用绝对地址(Memory address)和符号地址(Symbol address)两种表示方式。
绝对地址是编程元件的实际存储器地址,每一编程元件都有唯一的绝对地址,例如,X1.5代表PMC输入存储器第1字节的第5位等。存储器所使用的地址符(英文字母)在不同公司生产的产品上有所不同,如FANUC以X代表输入存储器、Y代表输出存储器、R代表内部寄存器等。此外,PMC程序中可以使用的地址范围还与CNC的性能有关,具体可参见后面的说明。
符号地址是用英文字母或字符表示的编程元件地址,它可为PMC程序编辑、阅读提供方便,但不能取代绝对地址。符号地址和绝对地址可如图3-4所示,在PMC程序中混用。
符号地址由符号(Symbol)和注释(Comment)两部分组成。“符号”是编程元件的助记符,它可直接替代绝对地址在PMC程序上显示。例如,在图3-4上,当内部继电器R0501.0(绝对地址)被定义为符号“ZRN”时,在PMC程序显示时,将直接用ZRN来替代绝对地址R0501.0。如对输出线圈定义了符号地址,则其触点与线圈将同时用“符号”来替代绝对地址,例如,在图3-4中,内部继电器R0501.3(绝对地址)的线圈被定义为符号“RST 2”时,其触点和线圈都显示为“RST 2”等。
“注释”是编程元件的简要说明,其字符数比“符号”更多。在梯形图上,触点的注释可显示在触点下方;线圈的注释显示在输出线圈的右侧;输出元件只需要对线圈进行注释,触点注释可自动显示。例如,图3-4的内部继电器R0501.0的注释为“ZERO RETURN”,内部继电器R0501.3的线圈注释为“RESET 2”等。
符号地址、注释需要编制注释文件(符号表)。在不同数控系统中,可以使用的符号地址数量、长度(最大字符数)有所不同。在大多数FANUC系统上,PMC可使用的符号地址数量为1KB,符号地址的基本长度为16字符;注释的基本长度为30字符。
图3-4 符号地址的使用
3.梯形图符号
FANUC的PMC基本编程语言为梯形图,程序中常用的编程元件符号如表3-4所示。
表3-4 编程元件的常用符号表(www.xing528.com)
4.地址范围
PMC程序中所使用的输入、输出、内部继电器、数据寄存器、定时器、计数器等通称编程元件。在数控系统上,PMC作为机床辅助控制器,不但需要控制机床的辅助动作,而且还需要协调机床和CNC工作,因此,PMC程序设计时既要处理机床侧的输入/输出信号,也要处理CNC侧的内部控制信号。
以常用的FS-0iD为例,PMC程序设计时需要处理的输入/输出信号及地址范围如图3-5所示;由于PMC性能有所区别,0iD-PMC/L和0iD-PMC可以使用的编程元件数量有所不同,其地址范围也有表3-5所示的区别。
图3-5 FS-0iD的输入/输出信号
表3-5 PMC编程地址范围表
表中的输入、输出、内部继电器、数据寄存器、控制继电器、信息显示请求位等编程元件都能以二进制位信号的形式使用,地址中的每一字节实际上都代表了8位二进制信号的状态,如X0代表输入信号X0.0~X0.7等。此外,PMC程序中实际可使用的地址,还与CNC的I/O性能有关,如FS-0iMateD允许连接的最大I/O点数为256/256点,因此,来自机床侧的最大输入/输出点数不能超过32/32字节,实际可以使用的地址为X0~X31/Y0~Y31;而FS-0iD允许连接的最大I/O点数为1024/1024点,因此,来自机床侧的最大输入/输出点数可以达到128/128字节,实际可以使用的地址为X0~X127/Y0~Y127等。
5.特殊内部继电器
特殊内部继电器又称系统内部继电器,这是由内部系统管理程序生成的特殊状态信号,在用户PMC程序中可使用其触点,但不能对线圈进行输出。正确使用特殊内部继电器,可以起到简化编程的目的。PMC程序中常用的特殊内部继电器如下。
(1)系统定时器
特殊内部继电器R9091为PMC系统定时寄存器,寄存器位所代表的意义如下。
R9091.0:恒“0”状态。
R9091.1:恒“1”状态。
R9091.5:周期200ms的脉冲信号,“1”状态时间104ms、“0”状态时间96ms。
R9091.6:周期1s的脉冲信号,“1”状态时间504ms、“0”状态时间496ms。
(2)比较结果寄存器
特殊内部继电器R9000为比较指令处理结果或算术运算状态,寄存器以下二进制位为“1”所代表的意义如下。
R9000.0:执行比较指令(功能指令COMP或COMPB)时,代表输入数据和基准数据相等;执行算术运算指令时,代表运算结果为“0”。
R9000.1:执行比较指令(功能指令COMP或COMPB)时,代表输入数据小于基准数据;执行算术运算指令时,代表算术运算结果为“负”。
R9000.5:算术运算溢出。
当PMC中执行文本数据输入(EXIN)、窗口数据读入(WINDR)、窗口数据写出(WINDW)时,R9000.0用来指示指令执行的错误状态。
(3)运算结果寄存器
特殊内部继电器R9002~R9005为算术运算指令的结果输出,例如,当PMC中执行二进制除法运算指令(DIVB)时,特殊内部继电器R9002~R9005用于存储除法运算的余数等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。