铝电解生产控制系统中CAN通讯技术程序设计
- 格式:doc
- 大小:25.00 KB
- 文档页数:5
电子技术课程设计总结报告题目: CAN总线通信系统设计姓名:程思锐、肖亚原、吴辉、寻雪瓶院系:机械工程学院专业班级:测控081班指导教师:袁锋伟、王玉林2011.12.14摘要:CAN总线是控制器局域网总线(contr01ler AreaNetwork)的简称。
属于现场总线的范畴,是一种有效支持分布式控制或实时控制的串行通信网络。
由于其高性能、高可靠性及独立的设计而被广泛应用于工业现场控制系统中。
SJAl000是一个独立的CAN控制器,PCA82C200的硬件和软件都兼容,具有一系列先进的性能,特别在系统优化、诊断和维护方面,因此,SJAl000将会替代PCA82C200。
SJAl000支持直接连接到两个著名的微型控制器系列80C51和68xx。
下面以单片机STC89C52和SJAl000为例,介绍CAN总线模块的硬件设计和CAN通信软件的基本设计方法。
关键字:CAN总线 STC89C52 SJA1000Summary:CAN bus is controller LAN bus (contr01ler AreaNetwork) for short. Belongs to the category of field bus, is a kind of effective support distributed control or real-time control of serial communication network. Because of its high performance, high reliability and the independent design and is widely used in the industrial field control system. SJAl000 is an independent CAN controller, PCA82C200 hardware and software are compatible with a series of advanced properties, especially in system optimization, diagnosis and maintenance, therefore, SJAl000 will replace PCA82C200. SJAl000 support directly connected to the two famous micro controller series 80 C51 and 68 xx. The STC89C52 and SJAl000 with the single chip processor as an example, this paper introduces the hardware design of CAN bus module and CAN the communication software basic design method.Key words: CAN bus STC89C52 SJA1000目录1、系统方案设计1.1 设计要求1.2 系统基本方案1.2.1 51单片机1.2.2 CAN总线控制器1.2.3 CAN总线收发器1.2.4 显示电路2、系统的硬件设计与实现2.1 系统硬件的基本组成部分2.2 主要单元电路设计2.2.1 单片机电路设计2.2.2 CAN总线控制器电路设计2.2.3 CAN总线接口电路设计2.2.4 显示电路设计3、系统测试与编程调试3.1 电路测试与编程调试3.2 系统实现的功能4 结论4.1 评价4.2 心得5 参考文献6附录6.1 器件清单6.2 系统原理图6.3 程序代码1.系统方案设计1.1 设计要求(1)设计一套CAN总线通信系统(包括1发送板和1接收板),发送板需显示拨码开关的状态并通过CAN总线发送出去,接受板通过CAN总线接受并动态显示开关的状态以验证通信的正确性。
CAN模块方案一、介绍CAN(Controller Area Network)是一种用于通信和控制的串行通信协议,广泛应用于汽车、工业控制等领域。
CAN模块方案是设计和实现CAN通信功能的方法和方案。
本文将介绍一个基于ARM微控制器的CAN模块方案。
二、硬件设计1. CAN芯片选择选择一款具有高性能和稳定性的CAN芯片非常重要。
在本方案中,我们选择了XXX型号的CAN芯片,它具有高速传输和广泛的工作温度范围,适用于各种环境。
2. 硬件连接将CAN芯片与ARM微控制器进行连接。
根据芯片的引脚定义,正确地连接CANH和CANL线路,同时连接供电和地线。
3. 外部电路在CAN通信中,还需要添加电阻电容来滤波和保护电路。
通过正确选择和布局这些元件,可以提高电路的性能和稳定性。
三、软件设计1. 编程语言选择在本方案中,我们选择了C语言来编写CAN通信的软件代码。
C语言是一种高效且广泛使用的编程语言,适用于嵌入式系统的开发。
2. 驱动程序编写CAN芯片的驱动程序是实现通信功能的关键。
通过调用CAN芯片的寄存器,配置和控制CAN通信参数,实现数据的发送和接收。
3. 数据传输CAN通信使用报文的方式进行数据的传输。
在软件设计中,需要定义数据帧结构,包括标识符、数据长度和数据内容等。
通过编写相应的函数,将数据封装成CAN报文,并发送到总线上。
四、测试与验证设计完成后,需要进行测试和验证,确保CAN模块的正常工作。
可以通过以下几个方面进行测试:1. 通信稳定性测试:在不同的工作环境下,长时间进行CAN通信,观察通信的稳定性和可靠性。
2. 数据传输测试:发送和接收不同类型和长度的数据,验证CAN模块的数据传输功能是否正常。
3. 性能测试:测试CAN模块的最大传输速率、带宽和处理能力,评估其性能是否符合设计要求。
五、总结在本文中,我们介绍了一个基于ARM微控制器的CAN模块方案。
通过正确的硬件设计和软件编程,实现了CAN通信的功能。
铝电解工艺流程及处理方法下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!铝电解工艺是一种利用电化学反应从氧化铝中提取纯铝的工业过程,主要采用冰晶石-氧化铝融盐电解法。
包头新恒丰能源有限公司600KA电解铝工程计算机控制系统招标技术条件1.总则本技术条件使用于包头新恒丰能源有限公司600KA电解铝工程计算机控制系统。
本技术条件仅提出一些基本的要求,乙方应提供技术先进、性能完善、成熟可靠的产品以满足用户的需要。
本次招标范围:(252)台槽控机及上位机系统。
2.地理环境年平均环境温度: 4.8 °C海拔高度:1377-1401.7m最高温度:38.6 C最低温度:36.1 C电源相数:3相安装方式:壁挂式安装3.工作环境温度:-36.1~60C相对湿度:<80%磁场强度:150咼斯供电电源:隔离交流380V±10%, 50Hz士2% 二相五线制隔离交流220V+ 10%, 50Hz± 2% 二相二线制模拟电流信号:4~20mA 和0~5V一、主要技术要求铝电解槽计算机控制系统是铝电解生产的关键技术装备,是铝电解槽技术不可分割的组成部分,是铝电解槽技术经济指标能否实现的关键技术因素之一。
本电解生产系列的槽型为600KA预焙阳极铝电解槽。
根据该电解槽的技术要求,铝电解槽计算机控制系统与槽控机必须与该槽型的原则要求相适应。
控制系统应采用集散式多级分布控制和决策管理相结合的结构形式;控制系统应将数据采集、过程监控和生产管理有机结合起来,保证系统可靠性高,适应性强,实用,维护灵活方便;本工程拟采用的铝电解槽计算机控制系统与槽控机投运后应确保本电解生产系列采用的600KA铝电解槽能达到国内领先的技术经济指标。
二、控制系统的主要技术要求2.1控制结构:2.1.1 一台槽控机控制一台电解槽,每63台槽为一个工区,每个车间分为二个工区,每个车间由一台上位机进行数据通讯。
上位机至电解厂房之间的通讯采用单模光缆为通信介质(通讯使用的光-CAN 转换(或者以太网)设备采用通用设备)。
2.1.2上位管理级由环型网络结构组成以太网,并通过交换机接入公司局域网和以太网。
第一章铝电解计算机控制系统的设计一般的工业生产过程都是连续进行的,而相对办公室而言,铝电解的车间环境现场的条件相对恶劣得多,因此,工业过程控制计算机系统必定是具备实时控制功能的高可靠性系统,并且,作为控制系统的核心部件——工业控制机,理所当然地应能适应特殊应用场合的环境要求。
铝电解计算机上位机管理系统主要是完成对历史数据的管理、实时数据的采集、故障的处理、数据图表显示;实现实时查询、历史查询、故障查询、数据报表的打印以及对各槽的数据记录进行总体浏览,从而体现出管理软件真正的价值所在。
本次毕业设计采用结构化软件设计的方法,控制软件大体上可分为三个层次,主控模块、功能模块和子程序模图4-1控制软件功能框图块,(如上图4-1所示)为铝电解计算机控制系统控制软件功能框图。
由于铝电解过程控制比较复杂,再加上计算机控制系统所检测和控制的点很多,对控制的要求比较高。
所以在设计控制软件时采用结构化程序设计方法。
其原则是:自上而下,逐步细化,模块化,结构化编程。
软件设计从上层即主模块开始向下逐步细化,每层都由若干个模块组成,程序采用结构化编程。
第一层是主模块层,是控制程序的主体部分,它根据铝电解过程不同的工作状态调用相应字模块,是软件的核心部分。
第二层是子模块层,是程序的主体部分,主要完成各部分细化模块的调用或直接实现子模块功能。
其中主要包括故障处理模块,数据处理模块,屏幕显示模块,控制模块和打印模块。
第三层是细化子模块,在最低层,主要完成程序的具体功能。
在模块的划分中,将同性质的功能模块归类,每个功能构成一个模块使模块的“耦合程度”尽量小,“内聚程度”尽量大。
这样,在修改某一个模块是不涉及到其他模块,增强了模块的相对独立性。
铝电解控制软件采用Visual Basic 6.0—程序设计语言开发设计,整个软件设计采用结构化,模块化设计方法,如图4-2所示为主程序流程图。
图4-2主程序流程图由上图可知,主程序主要由5大功能模块组成,屏幕显示模块主要是实时显示电解槽工作电压,系列电流,故障信息以及系统的工作状态:数据处理模块包括模拟量数据采集,数字量数据采集和数字滤波。
CAN通讯基本设置A节点pelican协议下,扩展帧单滤波⽅式A节点的接收滤波器 ID号设置为 0x19881205设置过程 (1) pelican模式设置设置时钟分频寄存器CDR.7 =1 使SJA1000⼯作在pelican模式(2) 是单滤波模式单滤波模式设置模式寄存器的第3位 MOD.3 为 1 表⽰是单滤波⽅式(3) 接收器的接收的是扩展帧实际上选择了pelican 模式接收缓冲器就变为了13个字节。
就是接收的扩展帧的格式。
(4)验收代码寄存器和验收屏蔽寄存器的设置ACR0ACR1ACR2ACR300ACR0ACR1ACR2ACR300我制作的pelican协议,扩展帧格式单滤波⽅式程序调试的时候,相⽐于以前的 pelican 协议标准帧模式单滤波⽅式之前在标准帧的⽅式下,是从第4个字节开始读数据标准帧数据存放格式如下图:对应从第四帧读数据如下图现在我⽤的是 pelican协议扩展帧格式单滤波⽅式对应的程序修改:试验过程:主机发送帧的ID号为 0X19881205从机接收的帧的单滤波器为 0X 19881205则主机发送的数据从机均可以正常接收。
(2)若更改从机的ID号为 0x19900424更改从机的程序以后,刷写程序,发现主机按下按键发送数据,从机不接收总结:对最终的程序总结以及调试⽅式进⾏总结:可以把这个程序上传到淘宝或者咸鱼上卖出去,我觉得是可以的。
⼀⽅⾯也是给⾃⼰积累经验。
也是把经验换成钱。
我最终把⽂件存放的路径C:\can_prictise\20180218分为主机和从机⽂件夹⾸先主机和从机均采⽤pelican协议扩展帧格式单滤波⽅式主机发送⼀个字节的ID 是0X19881205主机接收器单滤波接收器的ID号是0x19900424从机发送⼀个字节的ID是0X19900424从机接收器单滤波接收器的ID号是 0X19881205主机程序设置的相关部分1. 在置位复位请求的时候顺便使能了单滤波⽅式(2)在复位模式下,是SJA1000⼯作在pelican模式(3)由于采⽤了pelican模式,所以接收器和发送器都是扩展帧格式(4)设置主机单滤波器的验收代码寄存器ACR(4个) 和接收屏蔽寄存器AMR(4个)使主机的接收邮箱是0x19900424(5) 由于是扩展帧所以在SJA1000的接收中断⾥做如下处理。
(汇编及语言)通讯程序调试好的(汇编及语言)程序,与大家分享!************************************程序功能***************************************************节点向节点发送数据,数据的头两个字节分别是:节点的和要求节点回复的数据长度节点收到节点的信息后,立即按照节点的要求回复数据******************************************************************************* *****************存储器定义头文件子程序文件显示头文件字符串函数***************************头文件***************************************************(); 初始化单片机(); 初始化******************************************************************************* *****; 配置标志; 发送命令标志[]{}; 显示""[]{}; 显示""[]{}; 显示""[][]; 发送和接收数组; 保存中断寄存器值; 延时记数用^; 接收中断标志^; 错误中断标志******************************************************************************* ****(){; 配置出现错误时,重新初始化{();}();();; 保存中断寄存器值清零{(){; 接收标志位清零(); 接收数据(); 释放接收缓冲区; 发送命令置位}(){; 发送位清零[][]; 接收到的"发送方"[][]; 接收到的"发送方"和要求的数据长度[];[];(); 发送数据(); 置位发送请求位(<)(); 延时显示""}() 错误中断{(<)(); 错误显示""; 错误标志位清零(); 初始化}(); 显示""}}() 外部中断{; 指针指向中断寄存器*; 保持中断寄存器值}() 单片机初始化,开放外部中断{;;}(){(); 自测(); 进入复位(); 设置波特率(); 设置地址(); 设置输出方式,禁止输出(); 退出复位模式; 地址指针指向控制寄存器*; 开放错误\接收\发送中断}******************以下为汇编程序*********************************************************************系统地址为,用于系统测试,应用定时器每隔向总线发送一组数据:数据长度为个字节, 首字节为,第二个字节为累加变量,每秒钟数值增加,******************************************************************************* **************************的片选地址;成功的接收一帧标志;一秒到标志;监测到错误标志;保存中断寄存器的内容;发送缓冲区;接收缓冲区;错误状态表示;测试发送数据;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;程序开始;运行主程序;中断方式访问程序;定时器中断;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;程序开始:,$;设置退出硬件复位模式;初始化;点亮指示灯成功接收一帧,通知处理:;一秒时间到,每秒发送一次;点亮指示灯:;错误标志,错误处理: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;调用接口测试函数,;设置波特率为, 0A ;设置接收报文,, ;设置输出控制、时钟分频;正常输出模式, ;使能内部比较器、禁止;;退出复位状态;开放内部功能中断;中断开放;;;;;;;;;;;;;;;;;;;;;;错误信息处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; :;进入复位模式;;;;;;;;;;;;;;;;;;;;;;;;接收数据处理部分;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; :;微处理器接收首地址;调用接收数据子程序;释放接收缓冲区;;;;;;;;;;;;;;;;;;;控制向总线发送数据处理部分;;;;;;;;;;;;;;; :,,,,,,,;将要发送的数据送入发送缓冲区,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;定时器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; :0F工作在方式;定时周期;;;;;;;;;;;;;;;;;;;;;;;;;;;;;外部中断;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:入栈;应用寄存器第组;读中断寄存器;;保存中断寄存器的内容;接收中断;置位接收标志:;错误中断;置位错误标志:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;定时器中断;;;;;;;;;;;;;;;; :、入栈;设置定时周期;判断秒时间是否到;测试发送的数据,每秒加;置位秒到标志::, ;控制寄存器访问, ;, ;置位复位请求, ;, ;验证复位是否写入,;复位不成功::, ; 控制寄存器访问, ;, ;清零复位请求,进入工作状态,,, ;验证是否退出复位状态::, ;读取状态寄存器, ;判断上次发送是否完成, ;正在发送退出, ;判断发送缓冲区是否锁定,, ;锁定则跳出;, 号的低位\位\数据长度;恢复指针指向发送数据的首地址, ;发送缓冲区首地址, ;远程帧;数据帧, ;计算发送数据的长度,,;:, ;写入发送缓冲区数据长度为:, ;开始写入,, ;校验写入的是否正确,;写入错误退出;正确写入继续, ;没有写完继续::,,, ;判断报文是否有效, ;接收报文的号的低位\位\数据长度,, ;接收缓冲区的首地址, ;接收到的是远程帧;数据帧, ;计算接收到的数据长度, ;计算报文的长度,:, ;远程帧: ;开始读取数据,,,::, ;判断波特率的值是否存在, ;;输入的值大于则不正确,, ;查表找出相应的预设第一个值,, ;将数据保存, ;找出第二个值,, ;保存值, ;装入波特率预设值,同步跳转宽度;位宽度,,,, ;判断写入是否正确;不正确,,,, ;判断写入是否正确::, 的预设值, 的预设值, 的预设值, 的预设值, 的预设值, 的预设值, 的预设值, 的预设值, 的预设值, 的预设值, 的预设值, 的预设值, 的预设值:, ;写寄存器,,,, ;检验写入是否正确;写寄存器,,,, ;检验写入是否正确:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; :,, ,;发送请求命令, ; 地址指向命令寄存器, ;写入命令字:, ,夭折发送命令, ;地址指向状态寄存器, ;判断是否有正在发送的状态,::, ,;释放接收缓冲区, ; 地址指向命令寄存器, ;写入命令字, ;判断是否释放成功,, ;不成功跳转::, ,;清除超载状态, ; 地址指向命令寄存器, ;写入命令字, ;判断清除超载是否成功,, ;不成功跳转::, ,;进入睡眠状态命令, ; 地址指向命令寄存器, ;写入命令字:*********************************************************************本人同时提供实验开发板给初学者控制器为,驱动器为,电源隔离;提供详尽的源程序,可根据用户需求编写程序联系我:(短信联系详谈):说明、实验板分为主节点和从节点通讯波特率设置为;最高可设置为1M,用户根据自己的需要进行设置.、从节点每隔秒钟向主节点发送一组个字节的数据,数据格式为;其中变量的范围是,他随着每发送一次数据而累加递增;从节点指示灯表示实验板工作正常,指示灯以的频率闪烁,表示发送数据正常.、主节点的为,每当收到从节点发送的数据后,主节点便以波特率把收到的数据通过串口发送给计算机,计算机上安装的用户界面可以实时显示接收到的数据,此数据用户可以存储于计算机上. 主节点指示灯表示实验板工作正常,指示灯以的频率闪烁,表示接收和串口发送数据正常.、单片机为89c,适用于实验板; 主控单片机为,适用于工程应用通过自带的位精度的采集传感器信号后,将采集结果通过总线传输到“主控节点”,主控节点将数据通过串口传输给计算机;指示灯显示状态;可以通过串口给主控节点发送指令,来完成对某一节点的控制;通过串口下载程序到单片机(详见用户手册),可以不用编程器。
浅谈铝电解计算机控制系统优化升级摘要:分析了铝电解控制系统的主要控制思想、软件、硬件等方面的基础知识,现在开发出的辅助分析软件,对未来控制系统的展望。
关键词:铝电解智能控制系统、能量平衡、物料平衡、磁场平衡引言铝电解计算机控制技术是一门以电子技术、自动控制技术、计算机应用、计算机控制技术为基础,以计算机控制技术为核心,综合可编程控制技术、单片机技术、计算机网络技术,从而实现生产技术的精密化、生产设备的信息化、生产过程的自动化及机电控制系统的最佳化的专门学科。
目前国内采用的控制系统有:自适应控制系统、模糊控制系统、三度寻优控制等等。
铝电解生产目前国内普遍采用服务器、计算机、信号分配箱、CANBUS通讯协议(或其他协议)、槽控机、电流信号、电压信号、网络构成铝电解集散式控制系统来控制电解生产。
随着计算机技术的成熟和强大,铝电解工艺技术的不断完善,铝电解控制系统也在不断升级,目前国内有的控制系统已经取得了良好的成果。
近现代的电解生产已经进入数字化时代,不论是哪种控制系统,控制的都是能量平衡、物料平衡、磁场平衡和辅助分析系统的数据分析,所有控制的数据就是控制精度的依据,数据就是生产的重要依据,铝电解生产数据越准确、越精细化,生产就越稳定高效,数据之间的相互影响关系考虑的越周密,影响因素大小判断越精确,我们就能取得好的电流效率和低的消耗、低的电耗,低的成本控制就能实现,才能取得较大的利润空间,企业才能长治久安,才能不断做大做强。
下边我们就围绕电解控制数据展开说明谈谈铝电解控制系统技术的优化升级。
1 能量平衡如何保持能量平衡是控制系统的重中之重,能量平衡包括能量收入和能量支出。
能量收入就是槽电阻(槽电压)产生的能量,怎么精确的采集槽压数据与精确控制是控制系统升级优化的重点。
目前存在的问题是槽子控制系统能量平衡很难控制好,原因就是槽压的精细化控制不够完美,操作质量不稳定等。
单台电解槽电压直接在电解槽母线上采集,然后连接到槽控机,通过槽控机的VFC转换模块通过CANBUS通讯线联网到计算机,通过槽号设定,软件自动识别对应槽子的槽电压,槽电压是整个控制的重点。
铝电解过程的生产流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
本文下载后可定制随意修改,请根据实际需要进行相应的调整和使用。
并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Downloaded tips: This document is carefully compiled by the editor. I hope that after you download them, they can help yousolve practical problems. The documents can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts,other materials and so on, want to know different data formats and writing methods, please pay attention!铝电解过程是一种重要的工业生产方式,其生产流程包括原料准备、电解反应、产物处理等多个环节。
电梯控制系统中的CAN总线通讯设计1 前言电梯,作为一种楼宇运输设备使人类加快了进人文明时代的步伐。
它必须具有高度的安全性和科学性,因此它的控制系统受到广泛的关注。
电梯控制系统需要与电梯外围设备的各种信号进行大量的通讯,如电梯的位置信号、轿厢内的选层信号、应答选层的指示灯信号、显示电梯当前楼层数的显示信号和厅外呼梯信号等,这些信号随着楼层的增多而迅速增多。
因此,电梯中各个子系统之间的通讯有以下4个主要特点:①节点多;②距离长;③信号1变化慢;④对抗干扰能力的要求高。
目前电梯通讯主要有并行和串行两种方式。
一般而言,并行通讯方式速度快,无需额外的控制器,实现简单,但使用的线路多,对电梯控制器的I/O节点数量和性能要求高,电梯安装和维护麻烦。
典型的使用并行通讯的电梯为PLC控制电梯,其采用PLC上的I/O口进行通讯。
当楼层数增加时,要求PLC的I/O口数相应增加,导致成本的大幅提高,也提高了安装和维护的难度,并且电梯产品通用性不强。
串行通讯方式则只需要-对信号线,可将系统的控制功能进行分化,其成本低,通讯距离远,易实现模块化的设计,通用性强,但系统结构较复杂,并且牵涉到总线冲突问题。
RS485作为微机系统中常用的串行通讯方式之一,通过差分信号通讯,消除了共模干扰,可采用中继器延长通讯距离,在电梯控制系统中也得到了一定的应用。
但RS485采用主从式的通讯方式,只能采取轮询的通讯方式,当主机通讯出现故障时,通讯无法进行下去,因此并不适用于对安全性能要求较高的电梯控制系统。
近年来现场总线成为自动化技术中的一个热点。
现场总线是指安装在制造或过程区域的现场装置与控制室内的自动控制装置之间的数字式、串行、多点通信的数据总线,亦称“通用现场通信系统”。
由于它在减少系统线缆、简化系统安装、维护和管理,降低系统的投资和运行成本,增强系统性能等方面的优越性,其发展和应用日渐成熟。
目前在国际上应用的总线类型约有40多种,而CAN总线则被公认为是最有前途的现场总线之一。
铝电解生产控制系统中CAN通讯技术的程序设计摘要:在铝电解计算机控制系统中,槽控机与接口机之间是采用can总线进行通信。
文章介绍了can总线在铝电解控制系统中的应用,叙述了基于can总线的系统结构、组成以及can总线通讯接口软件设计方案。
关键词:can总线、can通讯、电解铝、槽控机
中图分类号:tf821 文献标识码: a 文章编号:
引言
can(control area network)德国bosch公司为解决汽车上众多控制器和传感器之间的数据交换而开发的一种串行通信网络,由于其具有抗干扰能力强、可靠性高、实时性好和易于使用等特点,已经广泛应用于工业自动化、交通工具、医疗仪器、楼宇自动化等多个领域,是公认为最有前途的现场总线技术之一。
现代电解铝生产自动化控制系统中槽控机与接口机之间的信息交互主要是依靠can总线技术实现。
1 系统组成
铝电解控制系统主要由智能槽控机、监控接口机和can总线三部分组成。
系统结构如图1-1所示。
其中槽控机直接控制生产过程,负责采集电解槽槽电压和氧化铝浓度。
监控接口机由一台工业控制pc机构成。
主要功能是对现场槽控机进行参数据设置,通过总线网络实时获取槽控机实时数据,实放槽异常报警、报表输出等功能。
can总线部分主要由智能pc-can总线适配卡、通讯介质、光电转换
器以及通讯软件组成。
pc-can 总线适配卡上带有微处理以及1kb
和2kb高速ram,直接映射到主机内存,pc-can总线适配卡上还带有光电隔离器,保护pc机避免由于地环流的损坏;pc-can接口控制器上还带有可配置的hilon 协议及windows驱动程序,可插于计算机(工业控制机)的isa插槽。
随着光纤技术的发展,pc-can配卡嵌入光纤∕can转换模块,使can总线可以用光纤作为通信传输介质。
这项技术的突破使电解铝控制系统的防电磁干扰,抗雷击等优点。
图1-1:铝电解控制系统
can总线工作原理
can总线数据收发由can控制器和can收发器完成。
主机通过isa接口控制电路来访问can控制器,最终完成数据通信。
为了提高系统的抗干扰能力,在can控制器和can收发器增加了隔离电路,隔离电路采用光电隔离技术,isa卡自带dc/dc转换模块,无需外界电源cand原理框图如下所示。
图2-1 can原理框图
can总线通讯控制器初始化的程序设计
can通信实现数据通信基本包括sja1000初始化、数据发送和数据接收3部分。
can通讯系统的初始化就是在复位模式下进行
sja1000初始化。
初始化程序编写如下:
can_init ( void){ mode = 0x09; 进入复位模式, 对sja1000 进
行初始化;cdr= 0x88; 选择pelican ;cmr= 0x0c; 清除数据溢出和释放接收缓冲器;ier= 0x03; 开放接收中断和发送中断;acr0=
0x66; 根据具体的协议定义设置验收码寄存器;acr1= 0x66;acr2= 0x66;acr3 = 0x66;amr0 = 0xff; 根据具体的协议定义设置验收屏蔽寄存器;amr1 = 0xff;amr2 = 0xff;amr3 = 0xff;btr0 = 0x41;btr1 = 0x1b;12 mhz 晶振下, 设置速率为200 kb/s;ocr = 0xaa; 输出控制寄存器ocr ;mode= 0x08; 单向滤波方式, 进入正常模式;} 系统接口机通讯程序设计
铝电解系统接口机通讯软件的设计基于microsoft visual basic 6.0集成环境开发,采用模块化的设计结构,共分为三大独立模块:通信模块、接口机显示模块和主机数据库模块。
模块之间采用tcp/ip通信。
通信模块通过pc-can适配卡与网络上每个槽控机进行通信。
pc-can卡自身可实现can协议的物理层和数据链路层功能,因此我们只需对应用层进行编程即可。
在上位机通信软件的设计中,有8个can函数可供调用,通讯模块通过调用这些函数可以对系统网络进行监控和管理。
4.1 打开pccan卡public declare function can_open lib “win32mab” (byval address as integer, byval card as byte) as integer
入口参数: address指定的双口ram的段地址(范围为:
0xc000--0xe000);
card板卡索引号(从0开始);
出口参数: 1 —成功;
0 —失败;
-1: 指定的双口ram地址对应的卡已经存在
说明:card 只能为0~3之间的值;双口ram段地址为板卡address跳线指定的地址,详细设置参见设置说明部分。
4.2 初始化函数:public declare function can_init lib “win32mab”(byval mode as byte, byval address as byte, byval baudrate as integer, byval card as byte) as integer 入口参数:mode模式(‘n’,’m’,’s’);
address本卡地址;
baud rate位速率选择因子;
card板卡索引号(从0开始);
出口参数:1 —打开pccan卡成功;
0 —打开pccan卡失败
-1 —设定的pccan板卡不存在
说明: card用以选择操作的pccan板卡。
can控制器的波特率的设定以16mhz晶振为参考,参见表4-1.
表4-1 波特率与baudrate参数对照表
表4-2 工作模式mode的选择
4.3 设置中断号函数:public declare function
can_inquiry_status lib “win32can” (byval card as byte) as integer
入口参数:板卡索引号(从0开始);
出口参数:16 bit 值 ;
高位字节:高字节为cpu状态(0aah)
低位字节:can状态寄存器内容
说明:此函数读取cpu状态和can状态寄存器内容。
4.4 发送函数:public declare function can_ptrans lib “win32mab”(byval desaddr as byte, byval number as integer, data as byte, byval card as byte) as integer
入口参数:desaddr发送目标地址(s模式不需要);
number发送内容字节数;
data发送内容缓冲区指针;
card板卡索引号(从0开始);。