canopen SDO 被中止 施耐德M340PLC与第三方伺服通讯

canopen SDO 被中止 施耐德M340PLC与第三方伺服通讯,第1张

1、首先设置对应的Can参数,比如波特率什么的。

2、导入对应设备的eds文件导入somachine。

3、如果用PDO的话就比较简单,打开对应设备,在携笑CANopen I /O Mapping 中填入对应的变量,一般就启动命令,频率,转档隐雀速什么的,就OK了。

4、如果是SDO的话,首先找到控制字对应的索引行早和子索引值,在程序中写入就可以了。

确定产品性能,选择对应的MCU,可以咨询CANopen商业版代码的供应商,让他们根据用户经验建议一两款MCU,然后评估代码占用空间的大小,结合预算和开发经验等最终选定一款MCU。

常见MCU列表如下图。

确定CANopen源代码的来源:

1、购买商业版;2、选择开源的基础上修改;

需要注意的是几个基本区别:

1、费用:商业版代码收费,开源代码免费;商业版代码节省了很多研发人员和测试人员的时间,节省了很多人力成本。

2、技术支持和文档:遇到问题,商业版有人负责解答,有完整的 *** 作文档和手册(将近五百页的详细说明书),开源无人解答--问题解决的几率小、风险不确定性大。

3、代码质量和稳定性埋迟手:商业版本有质量保证,代码的质量、优化和效率;使用开源代码存在质量风险大大提高;

4、开发难度和时间:商业版有完整的多款不同硬件平台的demo提供,大大降低开发移植难度和时间。(研发人员的薪资也是成本,产品质量和推出市场的时间也是机遇与挑战)。开源代码的研发工作量增加、后期测试难度和时间也增加。

5、研发/测试工具:商业版有完整的工具链和测试方法提供,开源代码没有。完整的测试工具包括:网络组网和管理以及测试(导入EDS文件组网并修改对应的数据,快速图形化PDO mapping)、报文分析、快速创建对象字典 生成EDS文件、USB-CAN卡采集数据等等。

6、培训:提供一天在线培训,开源代码无任何培训和技术支持

7、后期延展性很好:比如SO-877-VP或者SO-1063-VP提供30多种不同MCU平台的demo,并且每年不断更新和增加,如果项目需要更换MCU,可以快速移植,不需要额外的开发工作量。而开源代码没有这方面的资源。

如果要做serious的产品,一般用商业版的代码更有保障。

确定好CANopen源代码之后,如果是开源代码,则需要先看看代码的完整性,多做几次测试(毕竟很多人上传开源代码的时候没有想着一定要负责任,所以可能会存在一定的安全和稳定性漏洞,代码效率不一定高)。如果是选择商业版代码:则在拿到的demo中找到与自己的MCU匹配的 ,直接移植,然后再边读demo的注释,边查说明书看函数应用,最终结合产品功能添加应用部分,即在“骨架”里面去添加“肉体”就可以。

注:如果采用商业版代码,则对工程师CANopen经验的要求会大大降低。

商业版代码的ccmmain函数部分的两个小截图如下:

对象字典的创建:比如401的IO设备,402的运动控制,不同规范里面的OD是不同的,如果有商业版代码,OD可以直接复制。

申请Vendor ID:加入CiA协会后直接获取免费的Vendor ID,这个Vendor ID需要写在EDS文件里面的,有利于后面的其他测试。

完成初步编译后,先做一下功能测试:用上述提到的第三个CANopen的测试工具。通过CAN卡将移植好的CANopen设备连上,如果有条件的话,最好再连上最终可能会配备的设备,比如IO模块,PLC等,组成一个简单的CANopen网络(CAN卡可以做主站,或者用其他PLC等做主站,如果自己开发的设备是主站则测试自己的主站功能)。然后通过CANopen分析软件发送PDO/SDO等数据来测试,所开发的设备是否可以按照预期的指令执行,其他所控制的设备是否有相应的动作,看接收和记录到的PDO/SDO等返回值是否符合预期。

还可以通过CANopen网络管理软件:完成PDO映射-看是否可以正确匹配,导入EDS文件,看是否可以正确读取以及相关定义,也可以直接修改;看波特率和节点地址的设置是否正确等等。

测试工具的一些截图如下:

CANopen一致性测试:这个步骤可以放在第六步之前,也可以在之后,如果为了更旦姿完整的话,一般是放在之后,先保证基本功能没有问题再生成EDS来测试。具体的步骤就看工程师自己的看法。

一致性测试简单分为两种:

1、自测试(强制性):通过入会CiA-CANopen协会后,免费获取CANopen一致性测试工具,把EDS文件导入工具并自动生成测试结果。但是这种测试一般是完成EDS语法错误的测试,比如是否按照CANopen规范来写的一些PDO通弯嫌讯段等。

这个测试不能完成功能测试,功能测试可以参考第六步。

或者可以拿到CiA做官方测试:

2、官方测试(可选):把所有代码和移植好的设备,拿到CiA实验室,CiA的工程师会把设备放到他们实验室的平台上,完成:互 *** 作性以及兼容性的测试,如果有完成的功能需求测试文档,还可以完成完整的功能需求测试。这个好处是:CiA可能比我们自己更有经验知道应该测试什么,知道完整的CANopen规范可以测试更全面,有完整的现成的试验台和设备。

一致性测试的工具如下:

SDO使用对象字典的索引和子索引访问CAN节点的对象字典,可以读取或写入。

PDO不使用索引和子索引。它是两个can节点之间为传输数据内容而约定的对象字典索引。PDO接收到数据后,直接读写对应的对象字典索引早亩中的值。

因为SDO(general)需要索引和子索引,所以它一次最多可以传输4个闹睁昌字节,而PDO一次最多可以传输8个字节。

例如,通过PDO映射,将0x201(节点ID为1)映射到传输索引为0x6040、子索引为0x00的数据字典对象,可以通过将cobOuID设置为0x201直接向节点1的0x60400x00对象发送数据,而不必使用SDO发送包括索引和子索引的数据。

扩展资料:

CANopen设备之间的通信可以分为以下三种通信模式。

在主/从模型中,CANopen设备是主设备,负责从其他设备(称为从设备)发送或接收数据。NMT协议使用主/从模型。

客户机/服务器模型在SDO契约中定义。SDO客户端将目标字典的索引和子索引发送到SDO服务器,从而生成一个或多个需求数据的SDO包(在目标字典中,索引和子索引的对应内容)。

生产者/消费者模型用于heartbeat和节点保护协议。一个生产者发送给消息制造者的数据,以及来自同一生产者的数据可以发送给多个消息制造者。

它也可以分为两种类型:推送液扒模式:生产者会自动向消费者发送数据。拉模型:消费者需要在生产者发送数据之前发送请求消息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12433353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存