基于CAN总线的分布式位置伺服系统设计

[09-13 16:55:12]   来源:http://www.88dzw.com  接口定义   阅读:8580

文章摘要:3.1 PLC控制程序系统选用的PLC的软件开发环境是CoDeSys,它是德国3S公司开发的一种可视化PLC编程环境,支持IEC11311-3标准的指令表、梯形图、功能模块图、顺序流程图、结构化文本、连续功能图等6种编程语言,用户可在同1个项目中选择不同的语言编写程序。CoDeSys以工程文件的形式组织程序的各个对象。1个工程文件包含PLC程序里的所有对象:POUs(Program Organization Units)、数据类型和资源。1个POUs包括主程序(PLC_PRG)、子程序(PRG)、功能块(FB)、函数(FUN)及语句,其中主程序必须命名为PLC_PRG。子程序可以调用函数和功能

基于CAN总线的分布式位置伺服系统设计,标签:接口技术,微机原理与接口技术,http://www.88dzw.com

  3.1 PLC控制程序

  系统选用的PLC的软件开发环境是CoDeSys,它是德国3S公司开发的一种可视化PLC编程环境,支持IEC11311-3标准的指令表、梯形图、功能模块图、顺序流程图、结构化文本、连续功能图等6种编程语言,用户可在同1个项目中选择不同的语言编写程序。CoDeSys以工程文件的形式组织程序的各个对象。1个工程文件包含PLC程序里的所有对象:POUs(Program Organization Units)、数据类型和资源。1个POUs包括主程序(PLC_PRG)、子程序(PRG)、功能块(FB)、函数(FUN)及语句,其中主程序必须命名为PLC_PRG。子程序可以调用函数和功能块,但函数和功能块不能调用子程序,且当程序在线运行时,子程序中的中间变量值是可视的。另外,CoDeSys还具有丰富的库文件资源,编程过程中可以灵活调用,大大节省了软件开发时间。

  根据CoDeSys程序编写的特点,系统的PLC程序是用结构化文本语言编写的。程序的主要功能是把由AI口输入的油门控制脚踏板的模拟电压进行一定调理后通过CAN总线发送给各个被控节点,并从CAN总线上接收各节点的状态信息,进行判断后对操作人员给出提示或报警信号。PLC的CAN总线通信初始化的主要设置有:波特率等相关参数、报文滤波参数、创建接收报文的数据缓存区等,这些设置都可以直接调用CAN2.0的库函数实现,十分方便。PLC在发送数据时,调用库函数CAN_IITX(),设置ID、DLC等参数,把数据打包给每帧数据段的相应字节即可;接收数据时,需要先调用库函数CAN_II_GET_MSG()创建接收数据缓存区,设置OBJ、ID等参数(OBJ是缓存初始化序号, ID是接收数据的标识符),实现报文过滤。然后调用库函数GET_MSG(),其参数MESSAGE必须与缓存区初始化序号OBJ相等,才能读入相应缓存区的数据。函数GET_MSG()读数据是分字节读取的,可以很容易实现数据的字节操作和位操作,可为数据的计算和处理提供方便。顺序循环执行PLC程序,本系统设计的循环周期为10 ms,可以满足控制系统实时性的要求。

  3.2 单片机程序

  单片机的主程序流程如图3所示,包括单片机与82527的初始化程序和各子程序。对反复执行的程序段利用主程序调用子程序的方式实现。子程序主要有闭环控制子程序、故障处理子程序和参数修改子程序[6]。


  系统的闭环控制采用的是Bang-Bang算法。该算法是一种时间最优控制,且算法简单,便于单片机实现,又能满足系统控制精度的要求。设精度允许的推杆位置误差带为[-Δ1,Δ2],当前偏差为e(t),-Δ1≤e(t)≤Δ2时,可认为推杆当前位置即为给定要求的位置。若把控制量u(t)归一化处理,则此算法可以表示为:


  由于伺服电机正转和反转时推杆运动的惯性不同,所以正、反向最大误差允许值Δ2和Δ1一般是不相等的。图4是Bang-Bang算法子程序流图。



  故障处理程序处理的故障包括CAN通信中断故障、位置反馈断线故障、电机堵转故障等,通过对这些故障的自动处理或给出提示信息提高了系统的可靠性。控制器在不同场合使用时,对一些参数的要求也不相同,如控制器CAN报文的ID、通信波特率、控制死区、位置标定等参数的值都可以通过CAN总线报文进行人工修改。本设计选用的X5045芯片带有512字节的E2PROM,可由单片机对其存储空间进行串行读写,因此,X5045芯片除了实现单片机的上电复位和看门狗功能外,还可把需要进行修改的参数存放在其E2PROM空间中。对故障处理和参数修改子程序的具体编写这里不再详述。

上一页  [1] [2] [3]  下一页


Tag:接口定义接口技术,微机原理与接口技术接口定义
分类导航
最新更新
热门排行