1 可编程计算机控制器
20世纪90年代,可编程控制器技术随着计算机技术、网络通信技术、自动控制技术的飞速发展而不再是传统意义上的可编程控制器,由于其数学处理能力、网络通信能力、智能控制能力等得到发展,因此, 1994年开始被称为可编程计算机控制器(PCC)。随着PCC的不断发展,它与3C(Comput-er ,Control ,Communication) 逐渐融为一体。目前的PCC已从小规模的单机顺序控制,发展到包括过程控制、位
2 PCC的CAN总线
传统的串行通信传输方式包括RS-232 、RS-485等。RS-232是点对点的通信方式,传送速度比较慢,距离比较短; RS-485的数据信号采用差分传输方式,传送速度较快,但由于通信结构采用单主站总线访问形式,应用有一定的局限性[4]。CAN的应用范围现已遍及工厂自动化、机床、医疗设备、建筑环境控制,从高速网络到低成本的多线路网络。CAN总线具有强有力的错误检测能力及差分驱动功能CONTROL ENGINEERING China版权所有,速度快、传送距离长等优点。CAN具有下列主要特性:多主站依据优先权进行总线访问;无破坏性的基于优先权的仲裁;借助接收滤波的多地址帧传送;远程数据请求;配置灵活性;全系统数据相容性;错误检测和出错信息;发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发送;暂时错误和永久性故障节点的判别以及故障节点的自动脱离[5]205 。相对传统传输方式, PCC中采用CAN总线实现变量传输,具有的传输距离远、准确率高以及传送速率快等特点,编程简单,修改容易控制工程网版权所有,十分利于工程应用。
3 PCC实现单变量的传输
CAN总线进行数据通信时,用CANopen( )进行初始化,用CANwrite( )以及CANread( )实现两个站点间单变量的传输[5]207 。
两个PCC站点的站号分别为100 ,200;波特率为50 。站点200为写数据, 站点100为接收数据,在循环程序部分对CAN 接口进行编程如下:
CANopen(1,50,8,adr(error - adr),"CAN",0,us-ident,rc-open)
CANwrite(1,us-ident,200,adr(wr-dat),8,rc-write)
CANread(1,us-ident,100,adr(rd-dat),rd-len ,rc-read)
在WA TCH 窗口进行变量调试。当站点200里面发送单变量数据时,站点100里面就能马上读到该变量数据控制工程网版权所有,这样就实现了单变量的传输。
4 PCC实现变量表的传输
CAN总线实现变量表传输,需先在数据文件中进行变量表的定义,定义每个变量的变量地址、变量名、变量使能以及读写标志。
在初始化程序部分先给变量表中的变量以及使能变量赋初值(初值皆为0),然后对CAN接口进行初始化,处理方法与传输单变量一致,在初始化程序中调用CANopen()既可。使用DA-ident 函数,获得变量表cantable 的地址,如果地址为0(使用ifendif 语句实现) 则执行DA-info函数,获得变量表的相关信息(如首地址,数据长度,内存变量类型等)用CANdftab()[5]210 创建一个包含CAN总线数据的变量列表,用户可以通过事件变量(事件过程变量) 来进行数据读写。在写数据时,如果事件变量设为1 ,则发送变量数据;在CAN信息发送后www.cechina.cn,事件变量复位为0。当读数据时,此事件变量值设为1 。为了避免循环时间的问题,该功能仅在任务的初始化子程序中调用。周期性的读、写操作是由功能函数CANrwtab()[5]214进行处理的。
在循环程序部分将本站点的使能变量置1 ,用CANrwtab()对CAN接口进行读写操作,实现变量表传输。该功能处理由上一个功能函数定义的变量列表,且必须对其在循环任务中进行调用。如果总线没有准备好,则CAN控制器在每一次调用次功能时,重新初始化。
CAN总线实现两个站点间变量表的传输。其中,两个站点的站号分别为100 ,200;波特率50;
定义