铝电解生产控制系统中CAN通讯技术程序设计
CAN总线通信系统设计1

电子技术课程设计总结报告题目: 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模块方案一、介绍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通信的功能。
CAN通讯协议实操技术

通讯协议的设计规范和数据格式
协议帧:采用扩展的数据帧
通讯协议的设计规范和数据格式
仲裁段定义:功能码、地址和数据类别
4bits
11bits 4bits
功能码
ID段(CAN协议的仲裁段)
3bits
4bits
18bits 7bits
CAN2总线的IP地址
CAN1总线的IP地址
7bits 数据类别
功能码:为0~15,通过它,可以区别数据传输的时候的不同 功能。在选取时要根据重要性来选取,相对重要的功能要选 取小的功能类型号,这样其优先级则比较高
通讯的处理过程
常规处理
确定自身IP:如果设备的IP地址不是自身设备可以确定的(比如内 机),则需要先申请IP,并进行IP冲突检测,在冲突时要进行冲突报 警。 通讯波特率:CAN1通讯BPS为20K;CAN1通讯BPS为50K CAN通讯位定时采样点:位定时采样点设定为85%至87.5%;每位时间 片数量设置为16至20;同步跳转宽度设置为2 CAN模块的初始化:CAN协议控制器进入离线模式后需要复位CAN模 块,对CAN模块进行完整的初始化,以确保CAN模块的设置参数与上 电初始化参数保持一致 检测出总线的新设备:通过监听总线的数据,挖掘出新IP,并获取IP 对应的设备信息 状态数据发送: CAN1:时序主控检测总线上有100ms的空闲,则认为新一轮的通讯开 始,在本轮通讯中,每个节点只能发一次同帧数据 CAN2:服务设备节点在数据有改变时发送数据,且两次发送的间隔时 间不能小于2秒,每一次发送可发多帧。40S更新一遍所有的数据
CAN1、CAN2、NET3、Intranet/LAN
CAN1:外机与内机之间,模块化机组外机与外机之间的通讯网络,实现内外机 之间数据交换的控制网络。我们通常所说的通讯故障基本指的就是这一层网络
铝电解工艺流程及处理方法

铝电解工艺流程及处理方法下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!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大功能模块组成,屏幕显示模块主要是实时显示电解槽工作电压,系列电流,故障信息以及系统的工作状态:数据处理模块包括模拟量数据采集,数字量数据采集和数字滤波。
电解槽控制系统讲义

LOGO
CPU板 板
PC104-386EX CPU 板是一块与PC104总线兼容的单板 计算机,它主要由大规模集成芯片intel 80386EX、控制逻 辑电路、程序存储器、数据存储器、PC104总线接口等 部分组成。其中核心部件80386EX包括了静态80386SX、 片选逻辑、定时器、中断、串口、看门狗等部件。 CPU芯片采用386EX 主频20MHZ(最高可达25MHZ)。 存储器:一片28脚EPROM插座(U15):带有系统监控程 序的27C512、一片32脚SRAM插座(U9带掉电保护,当 当 CPU板不使用时,应断开跳线器 以免电池耗掉 板不使用时, 以免电池耗掉):板 板不使用时 应断开跳线器JP以免电池耗掉 上自带512Kbyte SRAM芯片628512、一片32脚EPROM 插座(U14):可选27010/27020/27040,容量从最小128 字节到最大512K字节。
LOGO
SV INPUT 2#VFC SPD SV INPUT 1#VFC
VP
PC104 VP
PC104
IP
IP SIP
VP
DISPLAY MDULE
CPU MODULE
VCN1 MCN1
ICN1 CAN SCN1 1RPT 1SPD
IP/SIP CAN
TO COMMUNICATION CARD
LOGO
槽控系统保护
缺相保护检查 当槽控机进行阳极升降时,三相保护器进行检查,起到缺相 保护功能。 自诊断
(1)软件自诊断功能:每8个时,槽控机便可以进行一次自诊断检 查,如果没有故障,说明槽控机正常,若有故障显示故障编号。 (2)人工自诊断:将CPU板上JP1的1与2短接且CPU板上K3的第8 位设为OFF时,CPU通电或CPU通电情况按一下复位时,便自动 运行位于27C512中的调试软件进行自检。
CAN通讯基本设置

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的接收中断⾥做如下处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
铝电解生产控制系统中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开始);。