8 上、下位机的通讯
本系统采用双CPU控制的方式,上位机采用工业控制微机、下位机采用深圳摩信公司的McT8000S4控制器。上、下位机通讯是实现加工控制的重要环节。上位机通过摩信公司所提供的软件包和动态库中的相应函数实现加工数据和标示信息的互传,再由下位机调用相应的轨迹控制函数控制电机运动实现实时控制。下位机采用c语言和摩信公司提供的编程开发环境实现。
8.1标志位的定义
为了表明上位机对下位机的控制要求和体现上位机的控制时序,需要系统定义标志位。标志位实际上是单个单位或连续的多单位的下位机内存空间,这些内存空间中所动态写入的值和加工数据代表了不同的控制内容,下位机实时检测这些内存空间中重要的几个。再根据被检测内存中的内容或直接控制硬件动作或读取另外一些内存空间中的数据,根据数据进行运动控制。
这些标志位主要有:主循环标志位、参数块首地址存储位、位置块首地址存储位、程序块1首地址存储位、程序块2首地址存储位、预热标志位、加减速标志位、移动方式标志位、切割速度标志位、开始加工标志位等标志位。
这里需要单独说明的是两个程序缓存的设定。下位机的内存空间有限,能容纳的加工数据也是有限的,为了突破这个限制系统定义了两个大小相同的内存空间用于存储加工数据。如果加工程序很长,系统首先会把两个程序缓存多写满数据,当第一个程序缓存读取完毕时,上位机将继续在第一个程序缓存中写入余下的加工数据,当第二个程序缓存读取完毕时,上位机将继续在第二个程序缓存中写入余下的加工数据,如此往复直到所有的加工数据都被写完。这样,系统就不会受到内存大小的限制,可加工任意长度的零件加工程序了。
8.2上位机控制的实现
上位机能够实现对下位机的控制主要解决以下几个问题:
(1)对下位机这个非标准硬件的内存的驱动和访问;
(2)对下位机一些内存的实时检测;
(3)从下位机内存中写入和读出数据。对于第(1)和第(3)项,由于采用的控制卡是摩信公司开发的智能化较高的板卡,该公司已经提供了对该硬件驱动的必要技术和资料,同时也提供了可以对板卡进行各种控制和访问的动态库,动态库中具有丰富的控制和访问函数,在许多编程环境中可以随意调用;可以说实现上还是很容易的。检测任务的功能主要是在进入相应的控制功能后检测下位机的状态,然后根据这些状态来判断当前的功能是否需要退出。如果没有这个任务的存在,系统的交互状态很容易混乱,造成严重错误。
下位机的控制实现是通过一个上电后的不间断的while循环,连续监测其内存空间中的标志位的状态,并根据这些状态进入相应的子函数实现系统的控制。
8.3 系统的下载以及初始化表
当系统启动时上位机必须保证下位机的驱动程序下载到下位机,这就需要系统启动时上位机调用摩信提供的动态库函数将相应的程序下载。
系统启动时还有另一项很重要的任务,就是将上次加工或调节的参数设置恢复,这就需要系统建立一个数据备份文件即初始化表;每当系统启动时都会从该文件中读取系统的参数设置,完成初始化上位机和下位机的工作。
9 结束语
本系统在原有的功能模块的基础上,采用LabVIEw平台实现了系统界面和并行任务处理的快速开发,是较为方便快捷的一种开发思路。