怎么做CANopen开发

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

怎么做canopen开发我现在要做DSP2812与驱动器的通信,使用CANopen协议?应该怎么着手,没有基础。谢谢!1.先看看协议介绍,周立功网站上有些;对CANopen有个大致了解,分析一下是否适合自己的方案应用。2.去cia下载301协议看看3.下载个简单的协议栈代码(论坛上有),结合协议文件仔细分析,并把它移植到你的DSP上。4.根据功能要求编写和完善自己的协议栈。、、我可以提供F2812CANopen源代码301+402联系bluestar_nj@htomail.comSDO访问对象字典的问题SDO的帧格式中,先是命令字,然后是Index和Sub-index,那如果我要访问一个没有子索引的入口,例如当我要修改SYNC的COB-ID,SDO的帧格式是怎样的?刚在DS301里找到这句话:ForsingleObjectDictionaryentriessuchasanUNSIGNED8,BOOLEAN,INTEGER32etc.thevalueforthesub-indexisalwayszero.那是不是子索引的值为0就可以了?由于分析仪还没买回来,没试过。没有子索引的,子索引号就是0请问远方,EDS文件是如何导入的?谢谢是不是在记事本中写好EDS文件后,将后缀txt改为eds就可以导入了?是的,按EDS文件規范編寫好文件,擴展名為EDS,然後就可以使用支持EDS文件的組態配置軟件來導入。对象字典的值的问题对象字典中的参数是不是要赋予一个实际的值啊,这个值是用户设定还是设备已经定好的?比如第二个TPDO(索引0x1801,子索引3)的禁止时间如果在对象字典中的值是0x3FE,那在初始化第二个TPDO时也要为0x3FE?要是想改变这个禁止时间,是不是对象字典中的值也要变?是啊那请问对象字典的参数是不是由设备厂商已经定好了,用户根据相应的参数来初始化,但也可以更改参数?谢谢如果要更改应该是通过默认的SDO对对象字典的访问来更改的,如果不更改就使用制造商默认的参数或者上次保存的参数,在系统启动的时候加载的。是不是用SDO进行更改之后还要再次进行参数的初始化?改过之后就可以使用NMT:StartRemoteNode了。还有些不明白,比如说我要更改TPDO的禁止时间,对象字典中更改之后,设备就已经更改了相应的参数吗?不需要在TPDO的初始化中进行更改吗SDO改完後,參數就已經被改了,立即生效。CANOPEN从站对象字典的配置对CANOPEN从站的配置是否要写一个配置软件,或者在开发时将端口(比如8通道)映射到对象字典(比如60000108),并将EDS文件交给PLC来进行二次开发??不知我是否说得准确,请高手指正。谢谢,请尽量详细点。就CANopen本身的功能,是不需要其它配置軟件的,上電時主站都會通過SDO來對從站做相應的配置,不過如果你有其它功能需要配置,有些廠商也提供從站的配置軟件的EDS提供給用戶,用戶在使用的時候導入到主站的配置軟件就可以使用了,不存在二次開發。谢谢你的回答,我想问一下,是否不同的从站都有不同的对象字典,还是从站可以按一个对象字典来配置,然后在主站中加载不同的对象字典并通过SDO来对从站的对象字典进行配置。请问我的理解对否,请指正,谢谢。對象字典=參數集亞洲人說參數組,歐洲人說對象字典,只是文字游戲,所謂的對象字典就是從站所擁有的參數集。從站有哪些參數,除了CANopen協議要求必需的參數(Index1000,1001,1018)外,其它的都是開發從站的廠商根據自己從站的功能來設置的,比如一台變頻器,上面有100多個參數可供用戶設定,這些參數放在一起就是對象字典。而EDS文件就是對從站所擁有的這些參數的描述,主要是供主站的配置軟件能很方便的配置這些參數而已,所以EDS文件裡的參數要與從站程序裡實現的參數相一致。主站都可以通過SDO對從站的參數進行讀和寫(允許寫)。主站需要Node-ID吗?DS301里关于预定义连接集部分有这句话,“Thisallowsapeer-to-peercommunicationbetweenasinglemasterdeviceandupto127slavedevices.”这是不是意味着主站可以不需要Node-ID,可以连接127个从站?按照默认的模式,COB-ID中使用的都是自己的Node-ID,主站只要能识别就可以了?可以如果主站要支持SDOServer就必須要NODE-ID同步和RPDO的问题1如果一个节点可以处理同步TPDO和同步RPDO,那这个节点收到同步报文后,要先进行TPDO的采样发送还是进行RPDO的处理接收?2看了DS301协议,RPDO也有传输类型,TPDO的传输类型规定什么时候发送,那RPDO传输类型作用是什么?说明什么时候处理接收吗?补充上面的第二个问题:如果RPDO的传输类型是规定了什么时候处理接收,那是怎么规定的?谢谢1.收到SYNC进行TPDO的处理发送就好了,RPDO不用关2.从我的理解上,RPDO的传输类型没多少用处,反正我的协议栈不去管它。PDO的传输类型[这个贴子最后由2468在2009/03/1304:23pm第2次编辑]看了下DS301关于PDOtransmissiontype的解释,不知道下面的理解是否正确:传输类型0:TPDO的发送跟同步对象有关,但是不是周期性的。仅仅是当收到同步对象之前有某个事件发生(事件由设备子协议决定)。传输方类型1-240:TPDO的发送跟收到的同步对象的次数相关(1-240)。对于RPDO来说不依赖于这个参数,在收到数据后,下一个同步对象就会触发RPDO的数据(即此时就要更新数据并执行)。传输类型241-251:保留传输类型252-253:对于TPDO来说,当收到远程请求的时候TPDO才会发送。252:当收到同步对象后数据会被更新,但不会发送,只有收到远程请求的时候才会发送(最后一句是我自己的推测);253:当收到远程请求后数据会被更新,并且发送(注:我自己的推测)。传输类型254:TPDO的发送是由设备制造商特定的事件决定的。传输类型255:TPDO的发送是由设备子协议决定的。对于在这种传输类型(252-255)的RPDO来说,一收到数据就立即执行(区别于传输类型1-240)。0:非周期性的,仅接收到第一个SYNC发送PDO1-240:RPDO收到数据立即刷新关于心跳数据的问题。目前在用canopen的so-877做应用,在调试心跳数据的时候(设备为canopen从设备),在源代码的数据字典里面的定义0x1017的值是0,但是我修改OBD_BEGIN_INDEX_ROM(0x1017,0x01,HbpCbConfigHeartbeat)OBD_SUBINDEX_RAM_VAR(0x1017,0x00,0x06,0x83,tObdUnsigned16,Producer_Heartbeat_Time,0x0)中的Producer_Heartbeat_Time,0x0)为Producer_Heartbeat_Time,0x5)结果canopen初始化过去不了。怎么能在源代码中修改HBP的发生间隔时间呢?另外,master是怎么来修改这个值的呢?我在源码中跟了很久都没有找到其中的奥秘。这个源码我放狗咬了一下是北京博控的,没有接触过,因此对你的描述不是太清除:1.它的源码不提供OD的生成工具么,要手动改?2.你改成0x5就是每个5ms发送一次心跳,理论上是可以,但是一般没有这么干的,是不是它的源代码有这方面的限制,导致初始化不过,有相关的出错提示么。3.也可能跟其他的OD对象有关联,比如nodeguard也被使能了,它们是不能同时用的。4.master的修改,一般是通过SDO协议实现的。最好是用OB生成工具生成对象词典来解决。初始化协议栈后m_bActErrProtocoll=kNmtErrNo;不会启动Hbp的用CcmConfigHbp配置Hbp时间master一般是通过Sdo配置的OBD_SUBINDEX_RAM_VAR创建的od,只会把m_pDefault(//pointsalwaystoROM)的值初始化请教一个对象字典的问题[这个贴子最后由fcrane在2009/03/1207:46am第1次编辑]各位好:请教一个问题。附图中是用ProCanOpen配置结点的图片,请问图片中的对象字典8000是在哪个协议中定义的?还是用户自定义的?图呢求助!!!请问CiADSP402PDF文档怎样获得在你买的CANOPEN协议文本里有的。谢谢远方的及时回复,CiADSP402PDF文档CANopendeviceprofilefordrivesandmotioncontrol在cia官方网站上要下载的话,必须是会员才可,请问远方,有没有什么地方能找到,就不用特地买了。我想开发开发基于canopen的分布式系统,步进电机的驱动通信接口采用canopen协议的节点。可是你不買協議的話,也拿不到CANOPEN協議啊,只有DSP402是無法開發CANOPEN從站的,因為DSP402只是一個類似行規的文件,真正的CANOPEN協議編號是DS301V4.02這本。DS301V4.02和DS401在cia网站上有非会员下载,我已经有了,而且实现了简单模式的canopen-IO从站,只是不知道要做个步进电机驱动通讯节点,是不是一定要DS402呢我傳一份給你下載吧真是太感谢远方了,谢谢,我会继续努力,经常来这里,有什么技术问题大家商量,还请以后多多关照阿!请问楼上:你那里用的什么CANOPEN主站呢,好用不?我们也正想做一个简单得CANOPEN节点,非商业目的,纯粹练习……以后,大家切磋一下啊minn:记得前面看过,你们已经作出来了嘛不是,怎么又要做新的啊?这不轻车熟路了呀。还记得你提醒大家买BECKHOFF的东西要代买软件什么的(哪个帖子里讲的我找不到了)。^_^上次的东东全是买的,为了节省时间,我只是搭了一下。现在要重新设计,想拿个原创。不好意思,让大家误会了!支持原創,共同努力!!!请教远方大哥:CANopen有用作列车控制网络的案例吗?现在多数地铁、轻轨、列车的控制都是用TCN的,CANopen的好像不多。但是TCN的开发太难,协议也不公开!所以我们想用CANopen,因为至少协议公开,源代码可以买到。但是,不知道CANopen做车辆的控制网络行不行!另外,如果买到源代码,我们想将我们自己做的节点,连接到整个CANopen网络上,是不是只需修改不多的东西就可以实现呢?谢谢!你想把用於汽車控制的CANopen節點接到其它的CANopen網絡,基本是不需要改任何的東西就可以實現,汽車行業只是CANopen眾多應用行業中的一種而已,所以所有通訊相關的東西都是一樣的,只是對某些特定Index的定義不同。哦,那就是只需要根据自己需要,在客户可以修改的index区域改成我们自己需要的量就可以直接用了吧!CANopen應用於汽車控制應該能找到些應用案例,在CANopen協議中,Index2000-5FFFH是由廠商自己定義的,你都可以將你要的參數定義到這一塊裡面。设备子协议的问题?如果自己要开发的设备目前还没有相关的设备子协议,是不是必须要用到制造商特定子协议区域?还是可以部分使用标准的设备子协议(功能比较类似的)然后部分使用制造商特定子协议区域?这个会带来兼容性的问题吗?都可以。但如果你確實不支持某個profile,那你就不要聲明支持他,尤其是EDS檔案,不然有些組態軟件會自動按profile來組態設定。PDO的COBID问题版主,你好!我想问你有关PDO的COBID问题,按照CANopen标准每个节点默认TPDO和RPDO只有4个COBID,但我发现有好多公司说他们产品支持多于4个COBID,例如支持32个TPDO和32个RPDO,请问他们是怎么做到的??默认是那些,实际可以占用其他节点的默认资源呀那应该不是用的预定义主/从连接集吧。节点数目不会有127个了。新手的理解啊,错了请勿拍砖也是有可能的,只要有足够的PDO够分配

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功