ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:136.91KB ,
资源ID:18623359      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18623359.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北邮现场总线实验报告文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北邮现场总线实验报告文档格式.docx

1、2、学习USBCAN-2A接口卡的使用及安装,安装USBCAN-2A接口卡的驱动程序。3、根据实验指导书中的手动设置iCAN模块MACID的方法手动设置各模块的MACID。4、使用提供的iCANTest测试软件工具来测试各模块的功能及用法,利用测试工具与模块之间通信。5、学习了解iCAN主站函数库中的主要操作函数及其应用。6、学习利用VC或者VB编程来对iCAN系列各模块进行操作。四:实验过程:1、驱动程序安装: USBCAN-2A接口卡的驱动程序需要自己手动进行安装,驱动程序已经存放于实验准备内容中。找到驱动程序,直接点击进行安装即可。安装完成后,在“管理-设备管理器-通用串行总线控制器”中

2、查看驱动是否安装成功。注意:安装驱动程序过程中PC机不能连接USB电缆。2、iCANTEST安装与运行: 连接设备后,打开iCANTEST软件,点击“系统配置”,设置设备类型为USBCAN2,点击“启动”-“上线”,试验各模块的功能。点击“全部下线”,将断开主机与所有模块的连接。3、各种iCAN模块的测试4、指示灯,按钮,温湿度传感器的连接5、测试运行记录与截屏图:iCAN模块测试运行记录与截图。图(1) iCANTEST界面 iCAN4055模块界面如图(2)。DI输入由测控设备箱中的开关控制,DO输出控制设备箱上的灯泡亮灭。图(2) iCAN4055模块界面 iCAN4210模块如图(3)

3、。iCAN4210模块为2路模拟量输出模块。将该模块的输出通道0与iCAN4017模块的输入通道3相连,可观察到改变iCAN4210的通道0设定值时,iCAN4017的通道3显示值会随之变化。(通道0为0x8000时,通道3显示为5.000V。)图(3) iCAN4210模块界面 iCAN4017模块如图(4)。iCAN4017模块为8路模拟量输入模块。将该模块的通道0与通道1与测控设备箱的温湿度传感器相连,可由通道0和1的电压值推导出传感器测出的环境温度和湿度。由于实验时使用的温湿度传感器温度测量部分故障,所以通道0显示0.000V,湿度测量部分正常,通道1显示为6.182V。图(4) iC

4、AN4017模块界面6、自编程序主要功能(1)添加一个输入编辑框和一个按钮控件,通过输入0x00-0xFF之间的十六 进制数来控制iCAN4055的DO通道的输入;再设置一个编辑框edit控件来读取iCAN4055的8位数字量输入通道的状态。(2)设置两个输入编辑框控件,来分别设置iCAN4210两个通道的输出。(3)设置4个编辑框edit控件来分别读取iCAN4017前四个通道ch0、ch1、ch2、 ch3的模拟量输入值。7、自编程序运行结果与截图(课上未做,课下做了界面和程序)图(5) iCAN4055模块界面 图(6) iCAN4017模块界面8、主要程序部分(1) 有关iCAN405

5、5功能模块的简单功能的实现的整体代码如下:首先在生成的类头文件Sample4055dlg.h中的类CSample4055中添加申明变量:public: unsigned char buf1;/发送数据的数据缓存区 unsigned char recbuf1;/接受数据的数据缓存区 unsigned long len; int outvalue; int count; CString str;在Sample4055.cpp文件中编写控制代码:首先添加对变量的定义:ROUTECFG cfg;HANDLE hRoute=0; /新的ICAN网络HANDLE hSlave4055=0;/数字量输入输出

6、模块4055,MACID=1CSample4055:CSample4055(CWnd* pParent /*=NULL*/) : CDialog(CSample4055:IDD, pParent) buf0=0; recbuf0=0; count=0; len=0; str=;(2)添加每个控件消息响应函数的代码:void CSample4055:OnStartsysButton1() / TODO: Add your control notification handler code here cfg.iCardType=4;/使用usbcan2接线口 cfg.iCardInd=0;/卡序号

7、 cfg.iCANInd=0;/CAN通道选择(0表示0通道;1表示1通道) cfg.wCANBaud=0x001c;/波特率的设定0x001c(500kbps) cfg.iMasterCycle=500;/主站循环周期 cfg.wMasterID=0; /主站ID Mgr_AddRoute(cfg,&hRoute);/添加iCAN网络 if(Mgr_StartSys()!=ICANOK)/调用Mgr_StartSys()函数对CAN网络是否启动进行判断,返回为ICANOK MessageBox(系统启动失败); elseCAN网络已启动OnLink4055Button2() if(Mgr_I

8、sStarted()!=1) MessageBox(系统未启动或启动失败,请先启动CAN网络 Route_AddSlave(hRoute,1,&hSlave4055);/添加从站4055,MACID=1 if(Slave_Connect(hSlave4055)!=ICANOK)/判断从站4055是否连接成功4055连接失败4055连接成功 SetTimer(1,1000,NULL);/设定开启定时循环,1代表消息事件id,1000表示1000ms即1sOnTimer(UINT nIDEvent) /Timer事件函数 Add your message handler code here and

9、/or call default if(nIDEvent=1) len=1;Slave_GetDIData(hSlave4055,recbuf,&len); /读取4055数字量输入端口数据str.Format(0x%02x:%d,recbuf0,count); m_getDI.SetWindowText(str); count=count+1; CDialog:OnTimer(nIDEvent); OnButtonSetvalue() /设定4055数字量输出端口值 if(Mgr_IsStarted()=1)&(Slave_IsConnected(hSlave4055)=1) UpdateD

10、ata(true); outvalue=strtol(m_invalue,NULL,16);/按十六进制进行读取 if(outvalue = 0 & outvalue =0.0&m_setch08;提示:请输入010V电压 if(m_setch1m_setch1 Slave_SendData(hSlave4210,0x60,buf,4);(4)8路模拟量输入模块iCAN4017首先,在生成的.h头文件中添加使用到的变量的申明。 unsigned char recbuf16;在.cpp文件中首先添加iCAN网络定义和申明以及变量的初始化操作。HANDLE hSlave4017=0;/AI模块40

11、17,MACID=3CSample4017:CSample4017(CWnd* pParent /*=NULL*/) CDialog(CSample4017: /AFX_DATA_INIT(CSample4017) m_valuech0 = 0.0; m_valuech1 = 0.0; m_valuech2 = 0.0; m_valuech3 = 0.0; m_counter = 0; /AFX_DATA_INIT recbuf1=0; recbuf2=0; recbuf3=0; recbuf4=0; recbuf5=0; recbuf6=0; recbuf7=0;void CSample40

12、17:OnButtonLink4017() Route_AddSlave(hRoute,3,&hSlave4017); if(Slave_Connect(hSlave4017)!4017连接失败4017连接成功OnTimer(UINT nIDEvent) Slave_GetAIData(hSlave4017,recbuf,& m_valuech0=(double)(recbuf0*16*16+recbuf1)-0x8000)*10/(double)0x8000; m_valuech1=(double)(recbuf2*16*16+recbuf3)-0x8000)*10/(double)0x8000; m_valuech2=(double)(recbuf4*16*16+recbuf5)-0x8000)*10/(double)0x8000; m_valuech3=(double)(recbuf6*16*16+recbuf7)-0x8000)*10/(double)0x8000; m_counter=count; UpdateData(false);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1