西门子PLC模块6ES7318-3EL01-0AB0
通讯机在系统中起着承上启下的作用。它接收Pentium166插补得出的各坐标轴位置指令,通过并行口把这些指令分发给位控板。通讯机还提供对数控面板按键及指示灯的管理功能。通讯机的设计见图2。图中的仿ISA总线,提供了通讯机与位控板之间传输信息的通道。这时的“仿ISA总线”是根据位控板及常用控制插卡的需要而设计的,它重建了标准ISA总线的部分信号,包括:I/O操作所需的各种信号线、中断信号线、就绪控制、电源线等。按照“仿ISA总线”设计的位控板与标准的ISA总线完全兼容。这样做有两个好处:①在系统开发阶段,通讯机与位控板的设计和调试工作可借助微机各自单独完成,两者之间无先后依赖关系;②在控制轴数较少的系统中,可以采用图1中的第一种结构,把位控板直接插到工控机的底板上,方便地实现对系统的重组。
图2 通讯机设计原理
在设计过程中,在通讯机与位控板之间,我们曾采用了自定义的专用总线。专用总线效率高,但根据专用总线设计的位控板与工控机不兼容,互换性较差,开发、调试与维护都比较麻烦。为此,我们对这一部分进行重新设计,走开放化道路,采用“仿ISA总线”向标准总线靠近,收到了良好的效果。
3 数控系统软件的开放化设计
开放化数控系统的软件设计需要选择合适的操作系统和软件开发工具。目前常用的操作系统如DOS、bbbbbbs 3.1、bbbbbbs95、bbbbbbsNT等均被应用到数控系统中。DOS本质上是一种单任务操作系统,在DOS下的多任务只能通过中断技术来实现。数控系统各软件功能模块一般不能执行,若要执行,需自行解决模块之间的调度问题。但DOS的规模很小,人们对DOS的了解比较多,在DOS上开发应用程度相对容易。bbbbbbs3.1是一种非抢先多任务操作系统,可完成多个任务。其缺点在于某个任务,如任务A得到CPU资源时,其它任务是否能顺利执行完成取决于A是否能及时处理完其本次事件,实时性没有保证。bbbbbbs95和bbbbbbsNT都是性能优异的抢先式32位多任务操作系统,操作介面良好,就功能而言,适合数控系统的需要。但在工业场合使用,其稳定性有待证实。综合考虑的结果,我们选择了DOS操作系统。与此相应,我们选择TurboC++ 3.0作为软件开发工具。
软件设计工作分为三个部分:主机软件、通讯机软件和位置控制卡软件。制订完善的通讯协议是其首要问题。为了保证可靠传输数据,通讯机构件采用分时处理的方法分别完成与主机及位控卡的信息传输。其时间上的同步关系见图3。时间片的划分及三部分之间的同步关系由通讯机进行控制。第一时间片开始时,通讯机向主机及位控卡发出同步信号,通知主机向双口RAM中写入新的数据,使位控卡开始位置控制运算。第二个时间片内,通讯机从双口RAM中取出位置指令,分发给各个位控卡,从各位控卡采集实际位置数据,写入双口RAM。
图3 数控系统各进程之间的关系
主机软件主要由NC程序编辑模块、手动操作、电气控制模块、通讯模块、自动加工、机床参数调整、系统定位、螺矩补偿等功能模块构成。下面以电气控制模块为例说明软件模块的开放化设计方法。
电气控制是所有机床必不可少的一部分。在数控机床中,其实现方法有三种:外装式PLC、嵌入式PLC和虚拟PLC。市场上现有的各种PLC一般具有通讯功能,可以通过通讯接口与数控系统构成一个整体,这种电气控制方式称为外装式PLC;也可以设计一个智能型I/O接口卡,通过总线直接与数控系统构成一体,卡上带有CPU,完成开关逻辑运算与控制,这种方式为嵌入式实现。也可以直接利用数控系统主机CPU周期性地进行逻辑运算,配合普通的开关量I/O卡实现对电气开关的控制,这种方式称为虚拟PLC。
如果采用常规的程序设计方法,对于以上三种电气控制方式,就得设计不同的软件接口,数控系统软件主体就会直接涉及到电气控制的实现方式及其细节,一旦控制方式发生变化,将不得不对软件进行大量修改。这样编写出的软件通用性较差,难以适应预料之外的变化。为了增加软件与硬件之间的相互独立性,我们运用面向对象技术对系统进行了开放化设计。
显然,不论哪一种控制方式,其目标都是相同的。经认真分析,我们找出了三者之间的共同点,由此得出一抽象类CPlc,它提供了数控机床电气控制所有的外部特征,为数控系统主体软件提供了完备的消息处理函数,数控系统中其它部分只需向PLC对象发送消息(message)就可使电气开关做出相应的动作。该部分不涉及电气操作过程中的细节。
在抽象类CPlc的基础上,针对三种方式分别定义了派生类CExernalPlc、CbbbbbPlc和CVirtualPlc,在这些类中,完成消息的解释及硬件的操作。按照这种设计思想得到的电气控制部分软件具有图4所示的结构。由图中可以看出,这种设计方法在数控系统主体软件与电气控制硬件之间加入了抽象类层次,使其相互依赖性减弱,成为相对独立的两部分。运用这种方法得到的数控系统软件具有与设备无关的特征。当有新的硬件设备出现时,只需在原抽象类上派生出新的对象类,按照共同的标准对消息进行解释,操纵硬件做出相应的动作即可,无需对软件其它部分做任何修改,大大提高了软件设计的效率,实际上,在对消息的数据结构及其意义做出明确的规范后,其它任何人都可以参照该规范设计出新的电气控制硬件及相应的驱动程序,集成入系统中。这也是软件开放化设计的主要目的。
图4 电气控制软件的抽象化设计
上面以PLC为例说明了数控系统软件开放化设计的思想。我们按照这种思路完成了数控系统的软件设计。在开发初期反复做了多次分析讨论,但在系统结构确定后,软硬件开发还是比较顺利的。从开发过程和联机调试情况来看,开放化设计可以有效缩短软件的开发周期,提高数控系统软件的质量
正在运行的纺织机因故障、交班等其他原因需要停机后,再开机时就会出现纬线之间不均匀现象,不是2条纬线之间间隙过大,就是间隙太小,结果都会使所织布匹出现次品,一次停机造成损失不太大,但由于停机是经常性的,积累起来的损失就大了。需要在每次重新开机前对纬线进行松紧调整,由于其精度高,手动调整很难调到**状态,且费时费力。本控制器基于PIC16F874单片机设计了纺织机松紧度调整控制器,成功地解决了该问题。具有精度高、运行可靠方便、****等优点。
1控制器工作原理
松紧度调整控制器是一个独立的控制部件,安装在纺织机的机身上,其控制系统由检测电路、输出控制电路、设定显示电路等几部分组成。控制器原理框图如图1所示。
纺织机在正常运行时,调整离合器在单片机PIC16F874的控制下,处于可靠分离状态,以保证纺织机的正常运行。当因故停机后需开机时,按下调整按钮,系统发出调整信号使调整离合器控制电路工作,调整离合器处于啮合状态,此时调整电机在系统的控制下进行正转、反转、正反转和反正转,调整纬线松紧量使其疏密合适(其松紧量由工人根据所织物的不同事先设定,并存储在E2PROM中),调整结束后,使调整离合器由回到分离状态,并显示松紧调整结束信号。当启动纺织机时调整离合器被锁定在分离状态。
2硬件电路设计
根据系统的功能,可靠控制是前提,精度是关键。硬件力求结构简单提高可靠性,而精度通过精密变速机构和检测电路保证。以下将对控制系统的微处理器(MCU)的选择及检测部分、控制部分、设定与显示部分的设计进行介绍。部分硬件电路如图2所示。
2.1MCU选择
由于系统的调整精度要求高,能方便地设定调整量并能起掉电保护作用。美国Microchip公司的PIC16F874单片机能满足系统的这些要求。PIC16F874内含10b A/D转换,速度高,价格便宜,他带有128B的电可擦写的E2PROM存储器,能方便写入调整量以备后用。16F874还有看门狗,保证系统程序运行的可靠性,同步串行模块(SSP)为以后与工控机联网奠定基础。
2.2检测电路
检测部分主要完成对调整离合器的状态、纺织机等检测,采用光电编码器提高了检测精度,为了保证MCU的安全,所有检测信号都通过光耦和MCU连接。其电路如图2所示。
2.3调整量设定与显示
为了提高调整精度,采取了以下措施:采用精密的齿轮减速机构;提高PIC16F74工作频率为20MHz,一条指令执行时间只有1μs,从而提高了调整精度。如图3所示。显示电路用于显示设定调整量。单片机的RD0~RD6作为数码管段选信号,RE0~RE2作为数码管片选信号,DS1用于显示正转、反转、正反转和反正转;DS2,DS3显示设定的调整量。具体调整量通过S1,S2,S3,S4按键设定来实现。
2.4控制电路
本系统完成的控制有主电机锁定、离合电机、调整电机。分别由单片机I/O端口RA0,RA1,RA2和RA3输出控制。为了保证单片机的安全,所有输出的控制信号经过光耦隔离、三极管放大驱动控制继电器和场效应管,使纺织机达到快速可靠的控制,以保证调整精度。
3软件设计
在软件设计中,采用模块化结构。整个程序由主程序及各个功能子程序、中断服务程序组成。系统软件流程图如图4所示,主要包括初始化调整量设定、显示,检测控制离合器的工作状态,调整电机工作状态控制。
该系统结构简单,运行稳定可靠,控制精度高,具有完善的保护功能,并为以后的技术改进留有一定的资源,成本低,经用户使用后反映良好。