Welcome五分时时彩为梦而年轻!

您现在的位置:中国传动网  >  技术频道五分时时彩  >  典型应用  >  蓝海华腾变频器与贝加莱人机界面的CANOPEN通讯

蓝海华腾变频器与贝加莱人机界面的CANOPEN通讯

2019年08月12日 15:53:52 中国传动网

一、介绍

从OSI网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。

CAN(ControllerAreaNetwork)现场总线仅仅定义了第1层、第2层(见ISO11898标准);实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software)或固件(Firmware)。同时,CAN只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29位标识符、8字节数据的使用。而且,基于CAN总线的工业自动化应用中,越来越需要一个开放的、标准化的高层协议:这个协议支持各种CAN厂商设备的互用性、互换性,能够实现在CAN网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。

应用层(Applicationlayer):为网络中每一个有效设备都能够提供一组有用的服务与协议。

通讯描述(Communicationprofile):提供配置设备、通讯数据的含义,定义数据通讯方式。

设备描述(Deviceproflile):为设备(类)增加符合规范的行为。

下面将介绍基于CAN的高层协议:CAL协议和基于CAL协议扩展的CANopen协议。CANopen协议是CAN-in-Automation(CiA)定义的标准之一,并且在发布后不久就获得了广泛的承认。尤其是在欧洲,CANopen协议被认为是在基于CAN的工业系统中占领导地位的标准。大多数重要的设备类型,例如数字和模拟的输入输出模块、驱动设备、操作设备、控制器、可编程控制器或编码器,都在称为“设备描述”的协议中进行描述;“设备描述”定义了不同类型的标准设备及其相应的功能。依靠CANopen协议的支持,可以对不同厂商的设备通过总线进行配置。在OSI模型中,CAN标准、CANopen协议之间的关系如下图所示:

蓝海华腾变频器.jpg 

图1CAN、CANopen标准在OSI网络模型中的位置框图

二、CAL协议

CAL(CANApplicationLayer)协议是目前基于CAN的高层通讯协议中的一种,最早由Philips医疗设备部门制定。现在CAL由独立的CAN用户和制造商五分时时彩CiA(CANinAutomation)协会负责管理、发展和推广。

CAL提供了4种应用层服务功能:

CMS(CAN-basedMessageSpecification)

CMS提供了一个开放的、面向对象的环境,用于实现用户的应用。CMS提供基于变量、事件、域类型的对象,以设计和规定一个设备(节点)的功能如何被访问(例如,如何上载下载超过8字节的一组数据(域),并且有终止传输的功能)。CMS从MMS(ManufacturingMessageSpecification)继承而来。MMS是OSI为工业设备的远程控制和监控而制定的应用层规范。

NMT(NetworkManagemenT)

提供网络管理(如初始化、启动和停止节点,侦测失效节点)服务。这种服务是采用主从通讯模式(所以只有一个NMT主节点)来实现的。

DBT(DistriBuTor)

提供动态分配CANID(正式名称为COB-ID,CommunicationObjectIdentifier)服务。这种服务是采用主从通讯模式(所以只有一个DBT主节点)来实现的。

LMT(LayerManagemenT)

LMT提供修改层参数的服务:一个节点(LMTMaster)可以设置另外一个节点(LMTSlave)的某层参数(如改变一个节点的NMT地址,或改变CAN接口的位定时和波特率)。

CMS为它的消息定义了8个优先级,每个优先级拥有220个COB-ID,范围从1到1760。剩余的标志(0,1761-2031)保留给NMT,DBT和LMT,见下表。

 

映射到CAL服务和对象的COB-ID(11位CAN标识符)服务或对象
0NMT 启动/停止服务
1 - 220CMS对象 优先级0
221 - 440CMS对象 优先级1
441 - 660CMS对象 优先级2
661 - 880CMS对象 优先级3
881 - 1100CMS对象 优先级4
1101 - 1320CMS对象 优先级5
1321 - 1540CMS对象 优先级6
1541 - 1760CMS对象 优先级7
1761 - 2015NMT 节点保护
2016 - 2031NMT,LMT,DBT服务

三、变频器与贝加莱人机界面连接如下

 蓝海华腾变频器应用.jpg

图2

四、CPS_ModbusRTUGateway(I-7232D)配置

在计算机上安装I-7232DUTILITY配置软件,并运行如下图所示

 蓝海华腾变频器的应用.jpg

图3

运行配置软件后显示如下图,I-7232D上电时将INT脚与GND短接,使I-7232D工作在配置模式

蓝海华腾变频器的原理.jpg 

图4

选择正确的通讯COM口,点击“CONNETCT”连接I-7232D,连接成功后,点击CAN-bus将出现如下窗口图所示:

蓝海华腾变频器的工作原理.jpg 

图5

I-7232D的CANopen端:

波特率:250KBPS

节点号为:1

然后点击RS-485按钮如下图

 蓝海华腾变频器的型号.jpg

图6

I-7232D的RS-485端:

波特率:19200BPS

数据长度:8

奇偶校验:无

停止位:1

超时:50ms

在配置完通讯端口参数后击点“NEXT”弹出如下窗口,如图所示

蓝海华腾变频器的维修.jpg 

图7

然后点击“ADD”按钮添加MODBUS地址映射,”ModbusDeviceNodeID”,这里输入被映射的变频器RS-485节点地址,”RelayAddress”,本栏里选择MODBUSRTU功能码,这里五分时时彩只用两个功能码:AnalogOutput(写入)和AnalogInput(读取),“Register/RelayAddress”此处填入要读/写的变频器寄存器地址,“DataLength”这里设置读/写变频器寄存器的数据长度。在这里五分时时彩的映射地址如下表所示。在完成映射后点击“ModbusInformation”和“PDOInformation”可以察看映射参数列表如下图所示

 

nstance NO.Modbus Device NodeIDRelay AddressRegister/Relay AddressData Length
11Analog Output327691
21Analog Output327701
31Analog Input330361
41Analog Input330791
51Analog Input330811
62Analog Output327691
72Analog Output327701
82Analog Input330361
92Analog Input330791
102Analog Input330811

蓝海华腾变频器的价格.jpg 

图8

 蓝海华腾变频器作用.jpg

图9

完成以上操作后点击“NEXT”出现如下窗口

蓝海华腾变频器说明书.jpg 

图10

然后点击“Finish”保存配置的参数到I-7232D同时在应用程序根目录下生成EDS文件,保存成功后返回主窗口。完成配置后掉电重启I-7232D。

PP45CANopen程序:

CAN通讯口初始化程序

(*initprogram*)

CANopen_0.enable=1

CANopen_0.baud_rate=25;250k

CANopen_0.cob_anz=20

CANopen_0.error_adr=adr(ERR)

CANopen_0.device="SS1.IF3";设备名称

CANopen_0.info=0

CANopen_0FUBCANopen();初始化CAN

NMT_Data[0]=1;CANOPEN命令01-

NMT_Data[1]=0

;requstcobcofg

UserType.RTR_COB[1]=$281;COB-ID281读取

UserType.RTR_COB[2]=$381;......

UserType.RTR_COB[3]=$481

;cmmdcobcofg

UserType.Send_COB[1]=$301;COB-ID301写入

UserType.Send_COB[2]=$301;......

UserType.Send_COB[3]=$401;......

;nodeidcofg

UserType.Node[1]=$01;RS-485节点地址

UserType.Node[2]=$02;..

UserType.Node[3]=$03

PDO程序;

(*cyclicprogram*)

loopi=1to3do

m[i]=workstep[i]

selectworkstep[i]

stateSend_NMT

CANwrite_NMT[i].enable=1

CANwrite_NMT[i].us_ident=CANopen_0.us_ident

CANwrite_NMT[i].can_id=NMT_COB;0

CANwrite_NMT[i].data_adr=adr(NMT_Data[0])

CANwrite_NMT[i].data_lng=sizeof(NMT_Data)

CANwrite_NMT[i]FUBCANwrite()----使I-78232D进入运行状态

whenCANwrite_NMT[i].status<>MSG_BUSY;1

nextSend_Data1

stateSend_Data1

(*PDO1RX*)

CANwrite_data1[i].enable=1

CANwrite_data1[i].us_ident=CANopen_0.us_ident

CANwrite_data1[i].can_id=UserType.Send_COB[i]

CANwrite_data1[i].data_adr=adr(UserType.Txdata[i].Data[0])将要写入的数据

CANwrite_data1[i].data_lng=sizeof(UserType.Txdata[i])

CANwrite_data1[i]FUBCANwrite()

whenCANwrite_data1[i].status<>MSG_BUSY;1

nextSend_Data2

stateSend_Data2(*PDO1TX*)

(*读取模式为异步RTR*)

CANrtr_01[i].request=notCANrtr_01[i].request

CANrtr_01[i].enable=1

(*enablethefunctionblockCANrtr*)

CANrtr_01[i].us_ident=CANopen_0.us_ident

(*setus_idwiththevaluefromCANopen*)

CANrtr_01[i].data_adr=ADR(UserType.Rxdata[i].Data[0]);存储读入的数据

(*setthedestinationadress*)

CANrtr_01[i].can_id=UserType.RTR_COB[i]

(*setcan_id*)

CANrtr_01[i]FUBCANrtr();发送请求读取数据

(*callCANrtr*)

whenCANrtr_01[i].status<>MSG_BUSY;1

nextSend_Data1

endselect

endloop

数据转换程序:

(*cyclicprogram*)

loopi=1to2do

ifi=1then

memcpy(adr(mActFreq[i]),adr(UserType.Rxdata[i].Data[2]),2)

MotorApp[i].rActFreq=real(mActFreq[i])/100.0;actfreqence

memcpy(adr(MotorApp[i].rStatus),adr(UserType.Rxdata[i].Data[0]),2);statusword

UserType.Txdata[i].Data[0]=byte(MotorApp[i].wCtrlWord);setcontrlword

UserType.Txdata[i].Data[1]=byte(lsr(MotorApp[i].wCtrlWord,8))

UserType.Txdata[i].Data[2]=byte(uint(MotorApp[i].wSetfreq*100));setFreqence

UserType.Txdata[i].Data[3]=byte(lsr(uint(MotorApp[i].wSetfreq*100),8))

UserType.Txdata[i].Data[4]=UserType.Txdata[i+1].Data[4]

UserType.Txdata[i].Data[5]=UserType.Txdata[i+1].Data[5]

UserType.Txdata[i].Data[6]=UserType.Txdata[i+1].Data[6]

UserType.Txdata[i].Data[7]=UserType.Txdata[i+1].Data[7]

else

memcpy(adr(mActFreq[i]),adr(UserType.Rxdata[i].Data[0]),2)

MotorApp[i].rActFreq=real(mActFreq[i])/100.0;actfreqence

memcpy(adr(MotorApp[i].rStatus),adr(UserType.Rxdata[i].Data[2]),2);statusword

UserType.Txdata[i].Data[4]=byte(MotorApp[i].wCtrlWord);setcontrlword

UserType.Txdata[i].Data[5]=byte(lsr(MotorApp[i].wCtrlWord,8))

UserType.Txdata[i].Data[6]=byte(uint(MotorApp[i].wSetfreq*100));setFreqence

UserType.Txdata[i].Data[7]=byte(lsr(uint(MotorApp[i].wSetfreq*100),8))

UserType.Txdata[i].Data[0]=UserType.Txdata[i-1].Data[0]

UserType.Txdata[i].Data[1]=UserType.Txdata[i-1].Data[1]

UserType.Txdata[i].Data[2]=UserType.Txdata[i-1].Data[2]

UserType.Txdata[i].Data[3]=UserType.Txdata[i-1].Data[3]

endif

status_1=UserType.Rxdata[1].Data[1]

status_2=UserType.Rxdata[1].Data[7]

endloop

注意:在MODBUS地址映射时没有按COB-ID对齐(节省空间地址)如在写入时COB-ID为0X301一次可写入4个字,前两个字为#1号变频器的MODBUS地址,后两个字为#2号变频器MODBUS地址,读取地址原理相同,具体查看I-7232D的PDO的参数列表

声明:本文为转载类文章,如涉及版权问题,请及时联系五分时时彩删除(QQ: 2737591964),不便之处,敬请谅解!

供稿:蓝海华腾

本文链接:/tech/detail.aspx?id=37661

中国传动网

官方微信

扫一扫,信息随手掌控

运动与控制

官方微信

扫一扫,运动与控制信息随手掌控

  • 地 址:深圳市光明区同观大道7号路科诺工业园科诺大厦
  • 电 话:0755-26580810
  • 网 址:
  • 传 真:0755-26580821

相关文章

联系五分时时彩

广告联系:0755-82048561
展会合作:0755-83736589
杂志投稿:0755-82048562

网站简介|会员服务|联系方式|帮助信息|版权信息|网站地图|友情链接|法律支持|意见反馈

版权所有 2006-2016 中国传动网(jmjgreen.com)

  • 经营许可证
    粤B2-20150019

  • 粤ICP备
    14004826号

  • 不良信息
    举报中心

  • 网络110
    报警服务

网站客服热线

0755-82949061

网站问题客服